关系数据库回顾
提纲要求:
1、数据模型和关系数据模型
2、SQL(了解即可,考试不考编写SQL)
3、三级模式结构与数据独立性
一、数据库系统体系结构
ANSI/SPARC体系结构——三级模式结构+两级映像
模式:模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及类型的描述,不涉及具体的值
1.1 三级模式结构
1. 概念模式(模式、逻辑模式)
- 数据库中全体数据的逻辑结构和特征的描述
- 数据记录由哪些数据项构成
- 数据项的名字、类型、取值范围
- 数据之间的联系、数据的完整性等
- 不涉及数据物理存储的细节和硬件环境
- 一个数据库只有一个概念模式?
- 概念视图:概念模式的实例
- 通过模式DDL进行定义
2. 内模式(存储模式)
- 数据物理结构和存储方式的描述
- 记录的存储方式:顺序存储、按B树组织还是散列存储?
- 索引按什么方式组织:排序、散列?
- 数据是否加密?是否压缩存储?
- 不涉及物理块(或页)的大小,也不考虑具体设备 的柱面或磁道大小
- 一个数据库只有一个内模式
- 内部视图:内模式的实例
- 通过内模式DDL定义
3. 外模式(子模式、用户模式)
- 单个用户所看到的局部数据的逻辑结构和特 征的描述
- 用户与数据库系统的数据接口,对于用户而 言,外模式就是数据库
- 建立在概念模式之上,同一模式上可有多个 不同的外模式
- 外部视图:外模式的实例
- 通过子模式DDL进行定义
1.2 二级映像和数据独立性
二级映象实现三级模 式结构间的联系和转 换,使用户可以逻辑 地处理数据,不必关 系数据的底层表示方 式和存储方式。
外模式/模式 映象
定义了外模式与概念模式之间的对应关系
- 属性名称可能不同
- 外模式中的属性可能由模式中的多个属性运算而 得
数据的逻辑独立性:当概念模式发生改变时,只要修改外模式/模 式映象,可保持外模式不变,从而保持用户 应用程序不变,保证了数据与用户程序的逻 辑独立性。(理解一下,就是逻辑模式可以随便变化,而不影响外模式,此所谓独立)
模式/内模式 映象
定义了概念模式与内模式之间的对应关系
- 概念模式中的逻辑记录和字段在内部如何表示
数据的物理独立性:当数据库的内部存储结构发生改变时,只要修改模式/内模式映象,可保持概念模式不变,从而保持外模式以及用户程序的不变,保 证了数据与程序的物理独立性。
SQL数据库的三级体系关系
二、关系数据模型
2.1 数据模型
数据模型是对现实世界数据特征的抽象
数据模型的定义: 描述现实世界实体、实体间联系以及数据语义和一致性约束的模型
数据模型的要素:
- 数据结构:现实世界实体及实体间联系的表示和实现
- 数据操作:数据检索和更新的实现
- 数据的完整性约束:数据及数据间联系应具有的制约和依赖规则(有点难理解)
数据模型的分类:(结构数据模型简称也叫做数据模型)
1. 概念数据模型(概念模型)
- 按用户的观点对数据进行建模,强调语义表达功能
- 独立于计算机系统和DBMS
- 主要用于数据库的概念设计
2. 结构数据模型(数据模型)
- 按计算机系统的观点对数据进行建模,直接面向数据库 的逻辑结构
- 与计算机系统和DBMS相关(DBMS支持某种数据模型)
- 有严格的形式化定义,以便于在计算机系统中实现
2.2 关系模型
2.2.1 关系模型的定义
用规范化的二维表格结构表示实体集,外码表示实体 间联系,三类完整性表示数据约束的数据模型。
- 实体 ==> 表、关系
- 实体间联系 ==> 外码
- 数据约束 ==> 三类完整性
数据模型 => 结构数据模型 => 关系模型,也就是说关系模型是结构数据模型的一类。
关系模型的形式化定义
- 数据结构:关系,数据库中全部数据及数据间联系都以关系 来表示
- 数据操作:关系运算,包括关系代数和关系演算(元组关系演算、域关系演算)
- 数据的完整性约束:关系模型的三类完整性约束
2.2.2 三类码的定义
(务必准确理解)
- 超码(Super Key)
- 在关系中能唯一标识一个元组的属性集称为关系模式的超码(只要能唯一标识,加多少个属性都行)
- 候选码(Candidate Key)
- 不含多余属性的超码
- 包含在候选码中的属性称为主属性(Primary Attribute)(只要属性在某个候选码中,就是主属性)
- 不包含在任何一个候选码中的属性称为非主属性(Nonprime Attribute)
- 主码(Primary Key)
- 用户选作元组标识的一个候选码称为主码,其余的候选码称为替换码 (Alternate Key)
2.2.3 关系模式与关系数据库
关系模式(Relation Schema)
- 关系的逻辑结构和特征的描述
- 对应于二维表格的表头
- 通常由属性集和各属性域表示,不关心域时可省略域
举例:Student(Name, Age, Class)
关系:关系模式的实例,即二维表(元组的集合),理解一下就是一个关系就是一张表
关系数据库模式(Relational Database Schema):关系模式的集合。注意区别关系模式和模式
关系数据库:关系数据库模式的实例
2.2.4 关系模式的形式化定义
关系模式可以形式化定义:
R(U,D,dom,F)
- U ——属性集
- D ——属性值所来自的域(就是数据类型和范围)
- Dom ——属性和域之间的对应关系(属性到域的映射)
- F ——属性之间的依赖关系(一般只考虑函数依赖)
Student(U, D, dom, F)
U={sno, name, age}
D={CHAR, INT}
Dom={dom(sno)=dom(name)=CHAR, dom(age)=INT}
F={sno → name, sno → age}
2.2.5 函数依赖
定义: 函数依赖(Functional Dependency, FD)是指一个 关系模式中一个属性集和另一个属性集间的多对一 关系
逻辑蕴含和闭包(通俗理解,函数依赖集的闭包就是全部的能推出来的函数依赖)
Armstrong 公理
属性集的闭包(感觉很偏):某属性集能推出(决定)的所有属性的集合
最小函数依赖集
当且仅当函数依赖集 F 满足下面条件时,F 是最小函 数依赖集:
- F 的每个FD的右边只有一个属性
- F 不可约:F中的每个
X → Y,F-{X → Y}
与 F 不等价(X → Y
不可或缺) - F 的每个FD的左部不可约:删除左边的任何一个属性都会 使F转变为一个不等价于原来的F的集合
2.2.6 关系代数
关系模型中数据操作都通过关系代数表达式来表示。
难理解的:笛卡尔积(全组合)、选择(挑出横的几排)、投影(垂直划分,挑几个属性列)
三种联接
- 自然联结:相当于在R×S中选取R和S的所有公共属性值都相等的元 组,并在结果中去掉重复属性
- θ联接:注意是从笛卡尔积里挑出满足条件的记录
- 等值联接:θ联接中的条件为“=”号
删除、插入和修改
2.2.7 三类完整性
实体完整性(Entity Integrity)
- 关系模式R的主码不可以为空值
参照完整性(Referential Integrity)
- 参照关系R的任意一个外码值要么为空,要么等于被参照关系S中所参照的候选码的某个值
用户自定义完整性(User-Defined Integrity)
- 针对某一具体数据的约束条件,反映某一具 体应用所涉及的数据必须满足的特殊语义 ,由应用环境决定(比如成绩限定在0-100分)
三、SQL(不考写语句)
SQL是用户与数据库的唯一接口,即数据库语言
三类:DDL, DCL, DML