数据库系统原理与应用

迟庆云 姜振凤 宋传东 李增

目录

  • 1 数据库基础
    • 1.1 数据库的四个基本概念
    • 1.2 数据的价值
    • 1.3 数据模型
    • 1.4 数据模型三要素
    • 1.5 常用的数据模型—层次模型
    • 1.6 常用的数据模型—网状模型
    • 1.7 常用的数据模型—关系模型
    • 1.8 数据库体系结构
    • 1.9 数据库领域杰出贡献者
    • 1.10 数据库发展历史
    • 1.11 国产数据库的发展现状
    • 1.12 NoSQL数据库简介
    • 1.13 国产数据库:三座大山下的妥协与突围1
    • 1.14 国产数据库:三座大山下的妥协与突围2
    • 1.15 章节测验
  • 2 关系数据库
    • 2.1 关系数据结构及形式化定义
    • 2.2 关系模式与关系数据库
    • 2.3 关系操作
    • 2.4 关系完整性
    • 2.5 关系代数的集合运算1
    • 2.6 关系代数的基本运算2
    • 2.7 关系代数的4个组合操作
    • 2.8 除法运算
    • 2.9 人物传记-数据库教父E.F.CODD
    • 2.10 章节测验
  • 3 表结构及表数据的基本操作
    • 3.1 SQL概述
    • 3.2 表设计概述
    • 3.3 界面方式创建表结构
    • 3.4 命令方式创建表结构
    • 3.5 表结构的修改
    • 3.6 表数据的基本操作
    • 3.7 主题讨论:表的基本操作
    • 3.8 人物传记--SQL之父 Don Chamberlin
    • 3.9 章节测验1
    • 3.10 章节测验2
  • 4 数据完整性及完整性约束
    • 4.1 数据完整性概述
    • 4.2 主键约束
    • 4.3 检查约束
    • 4.4 外键约束
    • 4.5 默认、唯一、非空约束
  • 5 数据查询
    • 5.1 查询概述
    • 5.2 查询基础课前任务
    • 5.3 基本查询命令
    • 5.4 带where子句的查询
    • 5.5 查询结果的分组和统计(1)
    • 5.6 查询结果的分组和统计(2)
    • 5.7 连接查询概述
    • 5.8 内连接查询
    • 5.9 外连接查询
    • 5.10 不相关子查询
    • 5.11 相关子查询
    • 5.12 主题讨论:SELECT条件表达式
    • 5.13 主题讨论:聚集函数的用法
    • 5.14 主题讨论:WHERE子句与HAVING差异
    • 5.15 主题讨论:相关子查询与不相关子查询
  • 6 视图和索引
    • 6.1 视图概述
    • 6.2 视图的界面化操作
    • 6.3 命令方式操作视图
    • 6.4 索引概述
    • 6.5 界面方式操作索引
    • 6.6 命令方式操作索引
    • 6.7 主题讨论:视图与索引
  • 7 MySQL数据库编程
    • 7.1 常量与变量
    • 7.2 常用的系统函数
    • 7.3 程序控制流程语句
    • 7.4 存储函数
    • 7.5 存储过程
    • 7.6 触发器
    • 7.7 游标
    • 7.8 人物传记-Michael  Stonebraker
  • 8 数据库的安全性
    • 8.1 数据库安全性概述
    • 8.2 MySQL的安全设置
    • 8.3 微盟 “删库跑路”主角贺某被判6年有期徒刑
    • 8.4 人物传记--MYSQL的创始人—Michael “Monty” Widenius
  • 9 数据库备份和恢复
    • 9.1 数据库故障恢复概述
    • 9.2 故障分类
    • 9.3 恢复的实现技术
    • 9.4 恢复策略
    • 9.5 具有检查点的恢复技术
  • 10 事务与并发控制
    • 10.1 事务引入--转账
    • 10.2 事务与并发控制
    • 10.3 MySQL事务控制语句
    • 10.4 人物传记--MongoDB创始人——Eliot Horowitz
  • 11 数据库设计
    • 11.1 数据库设计概述
    • 11.2 数据库建模概述
    • 11.3 数据库需求分析
    • 11.4 数据库逻辑结构设计
    • 11.5 数据库物理设计
    • 11.6 数据库设计举例
    • 11.7 Power Designer&& PDMan 简介
    • 11.8 Powerdesigner建立CDM
    • 11.9 Power Designer  CDM生成PDM
    • 11.10 PowerDesigner PDM生成代码与文档
    • 11.11 PDMan-国产免费通用数据库建模工具
    • 11.12 人物传记--E-R图-Peter Pin-Shan Chen
    • 11.13 章节测验
  • 12 数据库规范化设计
    • 12.1 关系模式的异常
    • 12.2 数据依赖
    • 12.3 最小函数依赖集
    • 12.4 候选键
    • 12.5 规范化理论1
    • 12.6 规范化理论2
    • 12.7 模式分解1--无损连接
    • 12.8 模式分解2 - 函数依赖
    • 12.9 设计故事
  • 13 拓展-数据发展简史
    • 13.1 数据管理简史
    • 13.2 大数据的前世今生
    • 13.3 国外数据库十大风云人物
    • 13.4 国内数据库十大风云人物
    • 13.5 国产数据库OceanBase
    • 13.6 人物传记--MongoDB创始人——Eliot Horowitz
  • 14 数据故事
    • 14.1 啤酒与尿布
    • 14.2 健康码-疫情下的大数据实验
    • 14.3 马云谈数据是重要的生产资料
    • 14.4 大数据告诉你未来世界的模样.
    • 14.5 大数据到底有多可怕?它能找到本·拉登,也能知道你午饭想吃什么
    • 14.6 2分钟带你认识大数据
    • 14.7 国家大数据战略——习近平与“十三五”十四大战略
  • 15 CCTV记录片大数据时代
    • 15.1 宣传片
    • 15.2 数据时代
    • 15.3 转型之路
    • 15.4 决策之智
    • 15.5 商业之变
    • 15.6 未来已来
  • 16 拓展-课前准备软件安装
    • 16.1 MySQL数据库的安装与配置 (引用)
    • 16.2 MySQL数据库的安装
    • 16.3 项目技术经理谈MySQL数据库
    • 16.4 Oracle11g的安装与配置(引用)
    • 16.5 Oracle11g配置监听
    • 16.6 如何学习数据库
    • 16.7 知识点思维导图
    • 16.8 人物传记--MYSQL的创始人——Michael “Monty” Widenius
  • 17 考研复试相关
    • 17.1 计算机考研专硕初试只考一门数据库原理的院校大汇总!
    • 17.2 南航834数据库原理及应用考研真题
    • 17.3 2020年考研计算机408统考真题及答案解析
    • 17.4 2018年考研计算机408统考真题及答案(含综合题解析)
    • 17.5 2021年考研计算机408统考真题及答案解析
  • 18 求职与面试
    • 18.1 数据库工程师职业规划
    • 18.2 程序员面试技巧
    • 18.3 数据库工程师面试技巧
    • 18.4 数据库工程师常见面试题
    • 18.5 MySQL200道求职面试(笔试)真题与解析
    • 18.6 三级数据库技术考试模拟系统
国外数据库十大风云人物

国外数据库十大风云人物,你认识几个?

本文来自https://www.modb.pro/db/6365

       当今,数据库技术的重要性不言而喻,我们参考墨天轮社区数据库排行榜,盘点了十大国外数据库领域的风云人物,其中有一无所有到硅谷首富的拉里·埃里森,有从小就展现天赋的Michael “Monty” Widenius 、Bradley Joseph Fitzpatrick ,有引领时代的前辈Bob Miner等等。

        因为篇幅有限,还有很多的数据库前辈都没有提到,如果你也有崇敬的国外数据库大佬,欢迎在本文下方留言补充,与我们一起回首数据库历史!

甲骨文公司(Oracle)创始人和CEO——拉里-埃里森 

从一无所有到硅谷首富

       拉里·埃里森(Larry Ellison)是世界上最大数据库软件公司甲骨文的创始人和CEO。但是,埃里森在32岁以前还一事无成。读了三个大学,没获得一个学位文凭,换了十几家公司,最终,老婆也因他的无能离而去。

       32岁的他一无所有,到后来的硅谷首富, 只有少数人知道,这期间他经历了多么漫长的人生奋斗历程。1977年6月埃里森他们3人合伙出资2000美元成立了软件开发研究公司,当时大多数人认为关系数据库不会有商业价值,因为速度太慢,不可能满足处理大规模数据或者大量用户存取数据,但是埃里森认为这是他们的机会:决定开发通用商用数据库系统-Oracle。谁也没想到,后来的Oracle公司连续12年销售额每年翻一番,成为世界上第二大软件公司也被媒体称为最佳和利润最高的公司之一。

        2019年3月,拉里·埃里森以625亿美元财富排名2019年福布斯全球亿万富豪榜第7位。 


MYSQL的创始人——Michael “Monty” Widenius

       与生俱来的编程天赋


       Monty是一位编程天才。当别人跑去聚会的时候,Monty却呆在家里编程。他把计算机从里到外都摸透了。他把BASIC的能力推到了极限。Monty说:“学校并不理解编程不是像语言或者历史这样的东西,它不是靠学就能学来的。所以学校是不够的。拔尖的黑客是万里挑一。他们奉献了所有能用的时间,10小时,16小时,每一天,年复一年周而复始。大多数人都不愿意做这样的事情。大多数人宁愿好好生活。”在Monty眼里,好的代码是写过一次就永远不需要再碰的那种。从性能角度来看它已经是最优化了,你可以不断增强,但永远都不需要重写。

       19岁的时候,他从赫尔辛基理工大学辍学开始全职工作,因为大学已经没有什么东西可以教他了。在独自一人写完除了一个库以外的全部代码之后,33岁时,他发布了MySQL,后来后者成为了全世界最流行的开源数据库。55岁时,他藐视着对老年人的歧视,仍然是自己公司最好的程序员。


MongoDB 12年创始人——Eliot Horowitz  

团队的力量成就了他

      Eliot Horowitz是MongoDB的首席技术官和联合创始人。他着手开始在2007年编写MongoDB的核心代码,并随后建立了工程和产品团队。今天,Eliot仍负责这些团队,并继续在MongoDB的驱动技术上有所创新。在MongoDB中,Eliot又共同创立了一个开创性的在线零售ShopWiki,这是一个搜索引擎。他建立了自己的技术团队,并在2010年主持了它的独立销售。在这之前,Eliot是一家DoubleClick公司的软件开发人员。


PostgreSQL社区创始人——Bruce Momjian  

历史学子到高级数据库设计师



       Bruce Momjian是Postgres社区创始人同时也是EnterpriseDB公司的高级数据库设计师,著有PostgreSQL: Introduction and Concepts一书,同时参与计划及开发多组Postgres系列数据库的功能、性能、稳定性、高可用性等程序。

       Momjian在大学时主修历史,在毕业后为高中生教授数学和计算机五年。在接下来的12年里,是一名定制软件开发人员。他并不是一名计算机程序员,但他对数据库工作的强烈兴趣使他有了解决他看到的问题的实际愿望。所以,他花了很多时间来学习更多有关开源方法和数据库如何工作的知识。

       Momjian在指导PostreSQL社区方面发挥了重要作用,该社区被认为是世界上最大的独立开源开发社区。他不是开源数据库的发明者,但是当它在18年前接近被抛弃时,他在开发项目时发挥了主导作用。


Redis之父——Salvatore Sanfilippo

副业项目可以帮助你成就更大更重要的项目

      Redis是近来得到技术社区广泛关注的NoSQL新军。Redis 之父 Salvatore Sanfilippo,一名意大利程序员,大家更习惯称呼他 Antirez。

       Salvatore Sanfilippo说:我是怎样做到停止新项目的开发,集中精力在唯一一个项目(Redis)之上的呢?回首过去的六年,实际上有无数的副业项目围绕在我的身边,有时与 Redis 相关,有时和 Redis 根本就没有关系。正是因为这些副业项目的存在,当我在主业项目上,由于连续不断的工作而导致身心疲惫,甚至极其厌烦的时候,我就可以马上做些不一样的事情。这样稍事休息和调整之后,我又能够重新聚焦于 Redis 项目了。而且,还能再一次找到与 Redis 项目愉悦相处的正确动机 - 归根结底,就是为他人创造更多的价值。


Solid Quality Mentors的首席顾问和创始人——Itzik Ben-Gan

撰写多本数据库书籍的作者

       Itzik Ben-Gan是Solid Quality Mentors的首席顾问和创始人。他从1999年以来一直是SQL Server方面的Microsoft MVP。Itzik在世界各地从事T-SQL查询、编程和查询优化相关的培训和咨询工作。他是Inside Microsoft SQL Server: T-SQL Querying和Inside Microsoft SQL Server: T-SQL Programming的作者之一,同时也为SQL Server Magazine和MSDN撰写了很多文章,并在许多业界的专题会议上发表演讲,包括Tech Ed、DevWeek、PASS和SQL Server Connections。


SAP的创始人之一——茨奇拉

对科学的强烈喜好指引他的一生

       茨奇拉与四名前IBM的同事在1972年创办了SAP,目标是为即时数据处理开发标准化的应用软件,这种做法在当时有悖于以此为方向的系统。该公司开辟了ERP软件的基础。

       茨奇拉对科学的强烈喜好,特别是对数学和计算机科学的喜好,在一生中指引着他。因为他奠定的基础,为许多青年才俊进入科学领域开启了大门。在1988年至1998年期间,茨奇拉曾担任SAP董事会董事,并在1998年至2007年担任公司监事会监事。

       尽管SAP后来在企业资源计划软件市场的地位受到了甲骨文、微软等公司的挑战,但该公司依旧是该领域的龙头。SAP当前是欧洲最大的科技公司,2014年营收为176亿欧元(约合189亿美元),拥有超过7.4万名员工。


Teradata公司现任首席执行官——迈克尔·科勒

连续担任多个领导职务的副总裁

      迈克尔·科勒毕业于美国德勒威(Delaware)大学,享有工商管理学士学位。科勒于1975 年加入NCR公司开始其职业生涯,并连续担任多个领导职务,为NCR 数据仓库业务的迅猛增长做出了重大贡献。在2003年出任Teradata高级副总裁之前,科勒先生曾担任Teradata全球业务运营部门的副总裁,为其建立了一支世界级的销售和专业服务团队。在2000年1月NCR成立Teradata数据仓库事业部之前,科勒先生担任NCR 美洲零售事业部和 NCR 全球零售业市场营销副总裁,负责将企业级数据仓库技术打入零售市场。Teradata 的很多早期成就都是在零售市场取得的。在他的领导下,Teradata 公司连续13年被Gartner评为该领域的世界第一。


开源分布式cache系统Memcached的创始人 ——Bradley Joseph Fitzpatrick

七岁出师的编程天才

     1980年2月5日,著名的开源分布式cache系统Memcached的创始人Bradley Joseph Fitzpatrick 生于美国艾奥瓦州一个电气工程师家庭。Memcached最初开发于2003年5月22日,今天它已经广泛用于Facebook、YouTube、Twitter、Wikipedia、Mixi等各大互联网站,成为大规模互联网架构的重要组成部分。除Memcached之外,Brad Fitzpatrick还与同事合作开发了分布式文件系统MogileFS、反向代理负载均衡程序与Web服务器Perlbal、高性能XMPP服务器DJabberd、分布式协议pubsubhubbub等重要技术。

       Bradley Joseph Fitzpatric从小就表现出过人的天赋。在两岁的时候,父亲就用废弃的电脑元件自己制作了一台苹果兼容机,这是小Brad所见到的第一台电脑。5岁时,父亲开始教儿子编程,到六七岁就出师了。在进入大学前,Bradley Joseph Fitzpatrick创办了著名的博客与社会化网站LiveJournal,后出售给博客运营商Six Part(Movable Type博客软件的开发者),目前属于一家俄罗斯公司,用户近3000万,Alexa排名在70左右。


完成RDBMS的跨时代天才——Bob Miner

引领整个时代前行的DBA前辈

     Bob Miner出生于西塞罗伊朗亚述移民家庭的Bob Miner,毕业于伊利诺伊大学的数学系(University of Illinois at Urbana-Champaign)并在名为Ampex公司就职期间,接手了CIA的相关项目,并在那个时候,结识了Larry Ellsion和Ed Oates。


       三个重要人物相识之后的某一天,Ed Oates将一篇发表于IBM期刊上的E.F. Codee博士的关于RDBMS的论文给Bob和Larry借阅后,三人一致认为用RDBMS来创业,是非常可行的一件事。此后,三人又找来了另一个合作伙伴Bruce Scott并开始了创建了携手后的第一份事业——SDL。开始创业后的一年之内,Bob就成功的用汇编语言(Assembly Language)实现了RDBMS,此后,版本2,版本3的更新也几乎都是Bob一个人完成的代码编写工作。直到1992年Oracle版本7,Bob一直都是技术小组的领军人物。但非常遗憾的是在1994年,Bob因为肺癌而离世。

        Oracle的独创科技rollback segment于1988年在第6版Oracle中第一次出现,并且此项技术在今天的版本中也一直在沿用。可以说是Bob生前为Oracle DBMS留下的一笔重要遗产。

       2011年在一次讲述Oracle成功经验的座谈会上,Ed Oates谈起了昔日的老友Bob Miner。关于Oracle的成功,Ed Oates总结为Larry的行动力,Bob Miner的技术核心和自己的管理能力。Bob Miner通过自己卓越的技术,引领了整个时代的前进。