第一章 绪论
一、数据库系统概述
1.数据库的4个基本概念
(1)数据
描述事物的符号记录称为数据
(2)数据库
存放数据的仓库
(3)数据库管理系统
主要功能:
(1)数据定义功能
(2)数据组织、存储和管理
(3)数据操纵功能
(4)数据库的事务管理和运行管理
(5)数据库的建立和维护
(4)数据库系统
由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理和维护数据的系统
2.数据库的发展
人工管理阶段——>文件系统阶段——>数据库系统阶段
3.数据库系统的特点
(1)数据(整体)结构化
这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的关系
(2)数据的共享性高、冗余度低且易扩充
数据共享——>减少了数据冗余
(3)数据独立性高
物理独立性:应用程序和数据库中数据的物理存储是相互独立的
逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的
(4)数据由数据库管理系统统一管理和控制
数据库管理系统必须提供以下几方面的数据控制功能:
数据的安全性保护
数据的完整性检查
并发控制
数据库恢复
二、数据模型
1.模型分类
(1)第一类:概念模型
概念模型是现实世界到信息世界的第一层现象
信息世界中的基本概念:
1)实体
2)属性:实体所具有的某一特性(如:性别,学号,姓名)
3)码:唯一标识实体的属性(如:学号)
4)实体型:用实体名和属性名集合来抽象和刻画同类实体,称为实体型。
如:学生(姓名,学号,性别)
5)联系:实体之间的联系通常指实体集之间的联系
有:一对一,一对多,多对多
概念模型的一种表示方法:
实体-联系方法(E-R模型)
(2)第二类:逻辑模型和物理模型
逻辑模型,包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系模型、半结构化数数据模型
物理模型,描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上存储方式和存取方法
2.数据模型的组成要素
(1)数据结构
描述对象和对象之间的联系
(2)数据操作
(3)数据的完整性约束条件
3.常用的数据模型
(1)层次模型
具体例子:
完整性约束:
插入时,若没有相应双亲结点就不能插入它的子女节点值
删除时,如果删除双亲结点值,则相应的子女节点值也将同时删除
(2)网状模型
具体例子:
(3)关系模型
一些术语:
(4)面向对象数据模型、对象关系数据模型、半结构化数据模型
三、数据库系统的结构
1.数据库系统模式的概念
型: 对一类数据的结构和属性的说明,如(学号,姓名,性别)
值: 型的一个具体赋值,如(12345,李明,男)
模式: 数据库中全体数据的逻辑结构和特征的描述,仅涉及型的描述(相对稳定)
实例: 模式的一个具体值(相对变动)
2.数据库系统的三级结构
(1)模式(逻辑模式): 数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图。
一个数据库只有一个模式,定义模式时,不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
(2)外模式(子模式、用户模式): 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
(3)内模式(存储模式): 是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
3.数据库的二级映像功能与数据独立性
(1)外模式/模式映像
(2)模式/内模式映像
第二章 关系数据库
一、关系数据结构及形式化定义
1.关系 —— 一张二维表
域: 一组具有相同数据类型的值的集合,类似数学中的值域
笛卡尔积: D1XD2XD3X……Dn
关系: 笛卡尔积的子集,表示为R(D1,D2,…Dn),R表示关系的名字,n是关系的目或度
候选码: 能唯一标识一个元组的属性组
主码: 选定一个候选码作为主码(类似身份证号)
全码: 所有属性都是候选码
基本关系的性质:
(1)列是同质的
每一列中的分量是同一类型的数据,来自同一个域
(2)不同的列可以出自同一个域
(3)列的顺序无所谓
(4)行的顺序无所谓
(5)任意两个元组的候选码不能相同
(6)分量必须取原子值,即每个分量都必须是不可分的数据项
2.关系模式——关系的描述
关系模式可以表示为
R(U,D,DOM,F)
其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性见数据的依赖关系集合
3.关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
型: 也称为关系数据库模式,是对关系数据库的描述
值: 这些关系模式在某一时刻对应的关系的集合
二、关系操作
1.基本的关系操作
常用:查询、插入、删除、修改
其中,查询可分为选择、投影、连接、除、并、差、交、笛卡尔积
基本操作: 选择、投影、并、差、笛卡尔积
2.关系数据语言分类
(1)关系代数
用对关系的运算来表达查询要求
(2)关系演算
用谓词来表达查询要求
(3)SQL(结构化查询语言)
介于关系代数与关系演算之间,是集查询、数据定义语言、数据操纵语言、数据控制语言于一体的关系数据语言
三、关系的完整性
1.实体完整性
主属性不能取空值
2.参照完整性
外码要么取空值,要么等于被参照关系某个元组的主码值
3.用户定义完整性
针对某一具体关系数据库的 约束条件
如某个属性必须取一值,某个非主属性不能取空值,等等
四、关系代数 !
1.传统的集合运算
2.专门的关系运算
(1)选择(限制)
σ F ( R ) = { t ∣ t ∈ R ∧ F ( t ) = ′ 真 ′ } \sigma_F(R)=\{t|t\in R \wedge F(t)='真'\} σF(R)={t∣t∈R∧F(t)=′真′}
其中,F表示选择条件,取逻辑值“真”或“假”
F的基本形式为 X 1 θ Y 1 X_1 \theta Y_1 X1θY1, θ \theta θ的取值如下:
参考资料
1.《数据库系统概论》王珊 萨师煊