第1讲-初步认识数据库系统
什么是数据库
-
关系中的概念 :
表 / 关系
表名 / 表标题(格式) / 表内容(值)
列 / 字段 / 属性 / 数据项
行 / 元组 / 记录 -
而 数据库(Database)就是 相互有关联关系的若干Table的 集合
什么是数据库系统
数据库系统(工作环境):
数据库DataBase(DB)
数据库管理系统DBMS
数据库应用DBAP
数据库管理员DBA
计算机基本系统
- 区别 :
- 数据库系统是一个这样的大的环境
- 而 数据库管理系统 只是一个管理数据库的一个软件
什么是数据库管理系统(用户角度)
用户角度看数据库管理系统的功能
- 数据库定义 :数据定义语言DDL;定义数据库中Table的名称、标题
- 数据库操作 :数据操纵语言DML;向数据库的Table中增、删、改、查
- 数据库控制 :数据控制语言DCL;控制数据库中数据的使用-哪些用户可以使用,哪些不可以
- 数据库维护 :一系列程序(实用程序/例行程序);转储/恢复/重组/性能检测/分析
数据库语言
- 使用者通过数据库语言利用DBMS操作数据库
- SQL语言 :结构化的数据库语言
- SQL语言 分为 DDL、DML、DCL
- 一条数据库语言语句相当于高级语言的一个或多个循环程序
- 数据库语言可以嵌入到高级语言(宿主语言)中使用 -> 嵌入式数据库语言
什么是数据库管理系统(系统角度)
从系统实现角度看DBMS的功能
- DBMS为完成DB管理,在后台运行着一系列程序
- DBMS系统可越过 操作系统 直接管理
第2讲-数据库系统的结构抽象与演变
数据库系统的标准结构
数据 与 数据的结构-模式
- 模式Schema :数据的结构
对数据库中数据所进行的一种结构性的描述
所观察到数据的结构信息 - 视图View/数据Data :展现的数据
某一种表现形式下表现出来的数据库中的数据
三级模式两层映像
两层映像 :
- E-C Mapping :将外模式映射为概念模式;从而支持实现 数据概念视图 向 外部视图 的转换;便于 用户观察和使用
- C-I Mapping :将概念模式映射为内模式;从而支持实现 数据概念视图 向 内部视图 的转换;便于 计算机进行存储和处理
两个独立性
- 逻辑数据独立性 :当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
- 物理数据独立性 :当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping),从而无需改变外部模式
什么是数据模型
三大经典数据模型
- 关系模型 : 表 的形式组织数据
- 层次模型 : 树 的形式组织数据
- 网状模型 : 图 的形式组织数据
关系模型
层次模型
网状模型
数据库系统的演变与发展
- 由 层次模型数据库、网状模型数据库 到 关系数据库
层次模型与网状模型数据库 :数据之间的关联关系由复杂的指针系统来维系
关系数据库 : 数据之间的关联关系由Table中属性的值来表征,结构描述简单 - 由 关系数据库 到 对象关系数据库、面向对象数据库
关系数据库 :按行按列形式组织数据 :关系的第1范式;数据项的不可再分;关系运算 :关系代数、元组演算、域演算 -> 标准SQL
面向对象数据库 :O-O 与 SQL 的结合;支持复杂的数据类型(行对象、列对象、结构对象、聚集对象),数据封装与抽象数据结构;类、继承、封装、多态
XML数据库 :半结构化数据库 ;数据交换;数据 与 数据的语义
第3讲-关系模型之基本概念
什么是关系模型
- 关系模型的三个要素 :基本结构、基本操作、完整性约束
- 关系运算 :关系代数和关系演算
- 关系演算 :元组演算 和 域演算
- 关系代数 :基于集合的运算,即,操作的对象及结果都是集合
- 元组演算 :基于逻辑的运算
- 域演算 :基于示例的运算
什么是关系
- “列”的取值范围“域” :一组值的集合,这组值具有相同的数据类型;集合中元素的个数称为 域的基数
- “元组”及所有可能组合成的元组 :笛卡尔积;笛卡尔积是由n个域形成的所有可能的n-元组集合;若 D i D_i Di的基数为 m i m_i mi,则笛卡尔积的基数,即元组个数为 m 1 ∗ m 2 ∗ m_1*m_2* m1∗m2∗
- 由于笛卡尔积中的所有元组并不都是有意义的,因此:关系 :一组域的笛卡尔积的子集
关系有什么特性
- 列是同质
- 理论上, 关系 的任意两个元组不能完全相同;现实应用中, 表Table 可能并不完全遵守
- 属性不可再分特性 :又被称为 关系第一范式(前面有举例(不能是 聚集对象 之类的))
候选码与外码
- 候选码/候选键 :关系中的一个 属性组 ,其值能唯一标识一个元组;若从该属性组中去掉任何一个属性,它就不具有这一性质了;有时,关系中有很多组候选码
- 主码/主键 :当有多个候选码(也就是说有很多组)时,可以选定一个作为主码;DBMS以主码为主要线索管理关系中的各个元组
- 主属性 :包含在 任何一个 候选码中的属性;而其他属性被称作 非主属性;最极端的,所有属性构成这个关系的候选码,称为 全码(例如,关系“教师授课”)
- 外码/外键 :不是本关系的候选码,但它与另一个关系的候选码相对应;两个关系通常是靠外码连接起来的(例如,关系”合同“中的客户号)
关系模型的完整性
- 空值 :不知道、不存在或无意义的值
- 参照完整性 :如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的Pk值,或者为空值
- 用户自定义完整性 :用户针对具体的应用环境定义的完整性约束条件
第4讲-关系模型之关系代数
什么是关系代数
- 基于集合
- 基本操作(并、差、笛卡尔积(广义积)、选择、投影和更名);扩展操作(交、连接、关系除)
并相容性的概念
- 某些关系代数操作,需满足“并相容性”
- 关系R与关系S存在相容性 当且仅当 :
1)属性数目相同
2)关系R的第i个属性的域必须和关系S的第i个属性的域相同
并操作
- R U S
- 满足并相容
- 在合并时去掉重复的元组
- “或者。。或者。。” 通常意义是 并运算 的要求
差操作
- R - S
- 满足并相容
- 出现在R中 但不出现在S中
- “是。。但不含。。” 通常意义是 差运算 的要求
广义笛卡尔积操作
- R X S
- 关系R与关系S的( 广义笛卡尔积 广义积 积 笛卡尔积) 也是一个关系
- 由关系R中的元组 与 S的元组 进行所有可能的拼接构成
选择操作
- 关系R,同时给一个选择的条件,选择运算结果也是一个关系
- 从关系R中选择出满足给定条件的 元组 构成
- 条件书写很重要,注意运算符的优先次序,从高到低为 括弧;比较;非;交;并
投影操作
- 关系R,投影运算结果也是一个关系
- 从关系R中选出属性包含在条件A中的 列 构成
交操作
- R ^ S
- 满足并相容
- 交运算可以通过差运算来实现 :R^S=R-(R-S)
- “既。。又。。” 通常意义是 并运算 的要求
theta-连接操作
- 投影和选择操作只是对单个关系(表)进行操作,对多个表之间操作就需要theta-连接操作
- 关系R和关系S的theta-连接 由 关系R和S的 笛卡尔积 中,选取 R中属性A 与 S中属性B 之间满足theta条件的 元组构成
等值连接
- 由关系R和关系S的笛卡尔积中选取R中属性A与S中属性B上 值相等 的元组构成
- 当theta-连接中运算符为“=”时,就是等值连接
自然连接操作
- 由关系R和关系S的笛卡尔积中选取 相同属性组B上值相等 的元组构成
- 自然连接是一种特殊的 等值连接
- 要求R和S必须由相同的属性组,值也必须相等 才可以连接
- 连接后去除重复的列
应用关系代数操作训练
- 第二个方案中,做了自然连接以后,还是原先三个属性,因此,仍然是不行的
除操作
外连接操作