数据库系统原理与应用

迟庆云 姜振凤 宋传东 李增

目录

  • 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 三级数据库技术考试模拟系统
人物传记--SQL之父 Don Chamberlin

SQL 之父 Don Chamberlin

                      

Don Chamberlin 

        Don Chamberlin ,他是 SQL XQuery 的创造者之一, IBM 名士

2003 年对于 Don Chamberlin 来说,可以说是收获之年:这一年他获得了 IBM 公司技术方面的最高荣誉 IBM 名士(Fellow)称号;获得了 ACM SIGMOD 颁发的创新奖;获得了母校 Harvey Mudd 学院的杰出校友奖; 特别是,他还获得了《软件研发》英文版《Dr. Dobb'sJournal》颁发的 Dr. Dobb's 程序设计杰出奖 (Excellence in Programming Award),与 Linus TorvaldsJames GoslingAnders Hejlsberg 等一起载入史册。

Don Chamberlin 获得这些殊荣当然是无愧的:是他发起了数据查询的两次革命,他是 SQL 语言的创造者之一,也是 XQuery 语言的创造者之一。今天数以百亿美元的数据库市场的形成,与他的贡献是分不开的。

Don Chamberlin 似乎天生与数据库、信息检索有缘:小的时候,家里的一本 100 多磅重的百科全书是他的最爱,在他看来,这大概是数据库的最早形式。作为地地道道的硅谷人,他的本科是在规模很小但是声誉很高的 Harvey Mudd 学院度过的,这个学校至今仍然保持每年从 1600 多名申请者中仅招收 100 多名学生的制度。

在斯坦福大学获得博士学位以后,Chamberlin 加入了位于纽约的 IBM T.J.Watson 研究中心。那里汇聚了当时计算机界的大批精英,主要研究方向是操作系统。Chamberlin 一开始从事的项目是 System A,一年后,项目最终失败。当时担任项目经理的 Leonard Liu(后来曾担任 Cadence 公司首席运营官)很有远见地预见到数据库的美好前景,他转变了整个小组的方向。Chamberlin 从此如鱼得水,在数据库软件和查询语言方面进行了大量研究。他成了小组中最好的网状数据库 CODASYL 专家,整日徜徉在复杂指针和集合选择规则的海洋中。与此同时,20 世纪 60 年代晚期,在美国西海岸 IBM 圣何塞研究中心(Almaden研究中心的前身)工作的数学家 E.F. Codd 独自创造了关系数据库的概念。但是,由于这种思想对 IBM 本身已有产品造成了威胁,公司内部最初是持压制态度的。当然这也与 Codd 采用了太多数学方法(以谓词演算为基础),不容易理解有关。在 Codd 里程碑性的论文"A Relational Model of Datafor Large Shared Data Banks"以及许多重要的后续论文公开发表之后,IBM 研究中心从事数据库的研究人员中,还有不少人以怪异思想视之,或者半信半疑,或者完全摸不着头脑的,甚至有人做出如此轻蔑的评论:"这东西过十年再说吧。"

一天, Codd Watson 研究中心访问, 在讨论会上, 他几乎用一行语句就完成了类似于"寻找比他的经理挣得还多的雇员"这样的查询。"我的天!"Chamberlin 知道,这个查询用 CODASYL 来表示的话,可能要超过 5 页纸。这种强大的功能使 Chamberlin 醍醐灌顶,幡然醒悟,从此转向了关系数据库。

在其后的研究过程中,富于程序员气质的 Chamberlin 相信,Codd 提出的关系代数和关系演算过于数学化,无法成为广大程序员和使用者的编程工具,这个问题不解决,关系数据库也就无法普及。因此他和刚刚加盟的 Ray Boyce 设想出一种操纵值集合的关系表达式语言-- SQUARESpecifying Queries as Relational Expressions)。

1973 年,IBM 在外部竞争压力下,开始加强在关系数据库方面的投入。Chamberlin Boyce 都被调到圣何塞,加入新成立的项目 System R。当时这个项目阵容十分豪华,有 Jim Gray Pat Selinger,和 Don Haderle 等数位后来的数据库界大腕。

System R 项目分成研究高层的 RDS(关系数据系统)和研究底层的 RSS(研究存储系统)两个小组。Chamberlin RDS 组的经理。由于 SQUARE 使用的一些符号键盘不支持,影响了易用性,Chamberlin Boyce 决心进行修改。他们选择了自然语言作为方向,其结果就是"结构化英语查询语言(Structured English Query LanguageSEQUEL"的诞生。当然,后来因为 SEQUEL 这个名字英国已经被一家飞机制造公司注册了商标,最后不得不改称 SQL。有趣的是,他们的野心很大,想借此实现非程序员也就是普通大众也能广泛应用计算机的梦想(当然,那时候还没有图形界面)。因此,项目组找来了一位语言学家,她跑到圣何塞州立大学,找了许多不懂计算机的大学生,教授他们 SEQUEL SQUARE 两种语言,像白居易当年对老妪吟诗那样,寻找改进的方案。他们的梦想当然并没有实现,然而,SQL 的简洁、直观还是使它迅速成为了世界标准(1986 ANSI/ISO),30 年后仍然占据主流地位。而经过了 198919921999 2003 年四次修订,当初仅 20 多页的论文就能说完的 SQL,如今已经发展为篇幅达到数千页的国际标准。

1988 年,由于"革命性地改变了数据库系统行业的面貌"System R 和伯克利分校开发的竞争系统 INGRES 共同获得了 ACM 颁发的"软件系统奖"Chamberlin 9 位获奖者之一

此后,Chamberlin 曾一度顺应个人电脑的大潮,对桌面出版发生了兴趣。他领导了一个小组开发了一种文档编辑/格式化程序,名为 Quill。其中文档的逻辑视图是用 SGML 保存的。这是 Chamberlin 第一次接触标记语言。

20 世纪 90 年代,Chamberlin 再次返回数据库世界,开始从事对象--关系数据库的开发,其成果在 DB2 中得到了体现。其间他曾撰写过一本专门讲 DB2 的书《A Complete Guide to DB2 Universal Database》(Morgan Kaufmann1998)。在网络时代到来,XML 日益成为标准数据交换格式的时候,Don 看到了自己两方面研究经验--数据库查询语言和文档标记语言相结合的最佳时机。他成为 IBM W3C XML Query 工作组的代表,并与工作组中两位同事 Jonathan Robie Dana Florescu 一起开发了 Quilt 语言,这构成了 XQuery 语言的基础。而后者经过多年快速发展,即将成为 W3C 的候选标准。对于 Chamberlin 来说,XQuery 语言标志着自己"整个职业生涯中的又一个高峰"他深信 Web 数据技术的发展将带来第二次数据库革命。

Chamberlin 的学术成就,使他 1994 年当选为 ACM 院士,1997 年当选为美国工程院院士。他对于教育一直很有兴趣,多年来一直担任 ACM 国际大专程序设计竞赛(ICPC)的出题人和裁判。