第一章 绪论
参考资料:《数据库系统概论(第5版)》是王珊、萨师煊
本系列文章仅供个人复习使用,仅提取一些重点,适合有一定基础的人复习用,有些细节不做详细解释
基础篇
第1章 绪论
第2章 关系数据库
第3章 关系数据库标准语言SQL
第4章 数据库安全性
第5章 数据库完整性
设计与应用开发篇
第6章 关系数据理论
第7章 数据库设计
第8章 数据库编程
系统篇
第9章 关系查询处理和查询优化
第10章 数据库恢复技术
第11章 并发控制
*第12章 数据库管理系统
第1至第11章是本科专业的基本教程
(书中有*号的部分除外)
第12至第16章是新技术篇(本科生、研究生选读)
文章目录
第一章 绪论
1.1数据库系统概述
-
4个基本概念
-
数据(Data)
-
数据库(Database):位于OS底层的数据库系统
- 定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 数据库的基本特征
-
数据库管理系统(DBMS):管理数据库的软件
- 功能:提供数据定义语言(DDL)如表操作;提供数据操纵语言(DML)如数据项操作
-
数据库系统(DBS):数据库系统的构成:
-
数据库
-
数据库管理系统(及其应用开发工具)
-
应用程序
-
数据库管理员
-
-
-
数据库管理系统提供的数据控制功能
- 数据的安全性(Security)保护
保护数据以防止不合法的使用造成的数据的泄密和破坏。 - 数据的完整性(Integrity)检查
保证数据的正确性、有效性和相容性。 - 并发(Concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。 - 数据库恢复(Recovery)
将数据库从错误状态恢复到某一已知的正确状态。
- 数据的安全性(Security)保护
1.2数据模型
数据模型是对现实世界数据特征的抽象。通俗地讲数据模型就是现实世界的模拟
①两类模型
- 概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
- 逻辑模型和物理模型
②概念模型
-
信息世界中的基本概念
-
实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。 -
属性(Attribute) :
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。 -
码(Key) :
唯一标识实体的属性集称为码。 -
实体型(Entity Type) :
用实体名及其属性名集合来抽象和刻画同类实体称为
实体型 -
实体集(Entity Set) :
同一类型实体的集合称为实体集 -
联系(Relationship) :
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多和多对多等多种类型
-
-
实体-联系方法(Entity-Relationship Approach)
- 用E-R图来描述现实世界的概念模型‘
- E-R方法也称为E-R模型
③数据模型的组成要素
- 数据结构 (对系统静态特性的描述)
- 数据操作 (对系统动态特性的描述)
- 数据的完整性约束条件
- 一组完整性规则的集合
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
- 反映和规定必须遵守的基本的通用的完整性约束条件。
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
④常用的数据模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model))
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
- 半结构化数据模型(Semistruture Data Model)
前面三个常用
⑤层次模型
层次模型是数据库系统中最早出现的数据模型
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
层次模型用树形结构来表示各类实体以及实体间的联系
- 满足下面两个条件的基本层次联系的集合为层次模型
- 有且只有一个结点没有双亲结点,这个结点称为根结点
- 根以外的其它结点有且只有一个双亲结点
- 层次模型中的几个术语:
- 根结点,双亲结点,兄弟结点,叶结点
- 层次模型的特点:
- 结点的双亲是唯一的
- 只能直接处理一对多的实体联系
- 每个记录类型可以定义一个排序字段,也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
-
层次模型的数据操纵:查询、插入、删除、更新 ;(也就是增删查改)
-
层次模型的完整性约束条件
- 无相应的双亲结点值就不能插入子女结点值
- 如果删除双亲结点值,则相应的子女结点值也被同时删除
- 更新操作时,应更新所有相应记录,以保证数据的一致性
-
优点
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
-
缺点
- 结点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询子女结点必须通过双亲结点
- 层次命令趋于程序化
⑥关系模型
关系数据库系统采用关系模型作为数据的组织方式 ,在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
- 术语定义:
关系(Relation)
一个关系对应通常说的一张表
元组(Tuple)
表中的一行即为一个元组
属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)
也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain)
是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量
元组中的一个属性值。
关系模式
对关系的描述:
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系名,年级)
- 术语说人话
-
关系必须是规范化的,满足一定的规范条件
- 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表 。图1.15中工资和扣除是可分的数据项 ,不符合关系模型要求
-
数据操作是集合操作,操作对象和操作结果都是关系:查询,插入,删除,更新
-
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
-
优点
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
-
缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
⑦网状模型
网状数据库系统采用网状模型作为数据的组织方式
典型代表是DBTG系统:亦称CODASYL系统,20世纪70年代由DBTG提出的一个系统方案
实际系统:
Cullinet Software公司的 IDMS
Univac公司的 DMS1100
Honeywell公司的IDS/2
HP公司的IMAGE
- 满足下面两个条件的基本层次联系的集合:
- 允许一个以上的结点无双亲;
- 一个结点可以有多于一个的双亲。
- 表示方法:与层次数据模型相同
- 网状模型与层次模型的区别
- 网状模型允许多个结点没有双亲结点
- 网状模型允许结点有多个双亲结点
- 网状模型允许两个结点之间有多种联系(复合联系)
- 网状模型可以更直接地描述现实世界
- 层次模型实际上是网状模型的一个特例
- 优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲
具有良好的性能,存取效率较高 - 缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
DDL、DML语言复杂,用户不容易使用
记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
1.3数据库系统的结构
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
从数据库最终用户角度看,数据库系统的结构分为:单用户结构,主从式结构,分布式结构,客户-服务器,浏览器-应用服务器/数据库服务器多层结构等
①数据库系统模式的概念
-
“型” 和“值” 的概念
-
型(Type):对某一类数据的结构和属性的说明
-
值(Value):是型的一个具体赋值
-
例如:
学生记录:(学号,姓名,性别,系别,年龄,籍贯)
一个记录值:(201315130,李明,男,计算机系,19,江苏南京市)
-
-
模式(Schema):
- 数据库逻辑结构和特征的描述
- 是型的描述,不涉及具体值
- 反映的是数据的结构及其联系
- 模式是相对稳定的
-
实例(Instance):
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
②数据库系统的三级模式结构
-
模式(Schema)(也称逻辑模式):
-
数据库中全体数据的逻辑结构和特征的描述
-
所有用户的公共数据视图
-
一个数据库只有一个模式
-
模式的地位:
- 是数据库系统模式结构的中间层
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及高级程序设计语言无关
-
模式的定义
- 数据的逻辑结构(数据项的名字、类型、取值范围等)
- 数据之间的联系
- 数据有关的安全性、完整性要求
-
-
外模式(External Schema)(也称子模式或用户模式)
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
- 外模式的地位:介于模式与应用之间
- 模式与外模式的关系:一对多
外模式通常是模式的子集
一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 - 外模式与应用的关系:一对多
同一外模式也可以为某一用户的多个应用系统所使用
但一个应用程序只能使用一个外模式
- 模式与外模式的关系:一对多
- 外模式的用途:
保证数据库安全性的一个有力措施
每个用户只能看见和访问所对应的外模式中的数据
-
内模式(Internal Schema) (也称存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等)
- 索引的组织方式
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定
- 一个数据库只有一个内模式
③数据库的二级映像功能与数据独立性
三级模式二级映像:
三级模式–>内模式,模式、外模式
二级映像–>外模式/模式映像,模式/内模式映像
- 保证数据的逻辑独立性
- 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
- 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
- 保证数据的物理独立性
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
- 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
- 数据库的二级映像
- 保证了数据库外模式的稳定性
- 从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
1.4数据库系统的组成
数据库
数据库管理系统(及其开发工具)
应用程序
数据库管理员
硬件平台及数据库
软件
人员
1.5小结
- 数据库系统概述
- 数据库的基本概念
- 数据管理的发展过程
- 数据库系统的特点
- 数据模型
- 数据模型的三要素
- 三种主要数据库模型
- 数据库系统内部的系统结构
- 数据库系统三级模式结构
- 数据库系统两层映像系统结构
程序的物理独立性,简称数据的物理独立性。
- 数据库的二级映像
- 保证了数据库外模式的稳定性
- 从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改