第一讲 初步认识数据库系统
1、什么是数据库DB?
Database:相互之间有关联关系的Table的集合。
2、什么是数据库管理系统DBMS?
DBMS:管理数据库的一种系统软件。如SQLServer、MySQL、Oracle
(1) 从用户角度看DBMS的功能
- 数据定义语言(DDL:DataDefinition Language):定义数据库中Table的名称、标题(内含的属性名称及对该属性值的要求)等
- 数据操纵语言(DML:DataManipulation Language):向数据库Table中增加/删除/更新数据及对数据进行查询、检索、统计等
- 数据控制语言(DCL:DataControl Language):控制数据库中数据的使用---哪些用户可以使用,哪些不可以
以上就是SQL语言(结构化的数据库语言)
(2)从系统实现角度看DBMS的功能
语言编译器、查询优化和实现程序、事务处理程序、存储与索引程序、各种控制程序
3、什么是数据库系统DBS?
DBS:包括数据库、数据库管理系统、数据库应用、数据库管理员、计算机基本系统。其中数据库管理系统是核心。
第2讲 数据库系统的结构抽象与演变
1、数据库系统的标准结构
1.1 数据(视图)与 数据的结构--模式
- 视图(View)/数据(Data) :某一种表现形式下表现出来的数据库中的数据。
- 模式(Schema): 对数据库中数据所进行的一种结构性的描述即所观察到数据的结构信息 。
模式是对数据的抽象,所以说数据的结构就是模式!
1.2 三级模式
三级模式对应着三级视图
- 子模式/局部模式/外模式 ----外部视图 :某一用户能够看到与处理的数据的结构描述
- 概念模式/逻辑模式/全局模式/模式 ----全局视图 :从全局角度理解/管理的数据的结构描述, 含相应的关联约束 体现在数据之间的内在本质联系
- 存储模式/物理模式/内模式 ----内部视图:存储在介质上的数据的结构描述,含存储路径、存储方式、索引方式
一个数据库只能有一个模式、一个内模式、但可以有多个外模式!
1.3 两层映像
E-C Mapping:External Schema-Conceptual Schema Mapping
- 将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换
- 便于用户观察和使用
C-I Mapping:Conceptual Schema-Internal Schema Mapping
- 将概念模式映射为内模式,从支持实现数据概念视图向内部视图的转换
- 便于计算机进行存储和处理
1.4 两个独立性
- 逻辑数据独立性: 当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
- 物理数据独立性: 当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改 变外部模式
2、模式与模式的结构--数据模型
数据模型 :规定模式统一描述方式的模型,包括:数据的结构、数据的操作和数据的完整性约束。
数据模型是对模式的抽象,所以说模型的结构就是数据模型!
2.1 三大经典数据模型
- 关系模型:表的形式组织数据
- 层次模型:树的形式组织数据
- 网状模型:图的形式组织数据
第3讲 关系模型之基本概念
1、关系模型研究什么?
形象地说,一个关系(relation)就是一个Table
关系模型就是处理Table的,它由三个部分组成:
- 描述DB各种数据的基本结构形式(Table/Relation) (数据的结构)
- 描述Table与Table之间所可能发生的各种操作 (数据的操作)
- 描述这些操作所应遵循的约束条件 (数据的完整性约束)
就是要学习: Table如何描述,有哪些操作、结果是什么、有哪些约束等?
2、什么是关系?
2.1 “表”的基本构成要素
2.2 表的严格定义 --关系
首先定义 “列” 的取值范围为 “ 域(Domain)”
域(Domain)
- 域(Domain):是一组具有相同数据类型的值的集合。例如如整数的集合、字符串的集合、全体学生的集合
- 基数(Cardinality):集合中元素的个数
再定义 “元组”及所有可能组合成的元组为笛卡尔积
笛卡尔积(Cartesian Product)
- 一组域D1, D2,…, Dn的笛卡尔积为: D1×D2×…×Dn= { (d1, d2, …, dn) | di∈Di, i=1,…,n }
- 笛卡尔积的每个元素(d1, d2, …, dn)称作一个n-元组(n-tuple)
- 分量component) :元组(d1, d2, …, dn)的每一个值di
- 元组(d1, d2, …, dn):是从每一个域任取一个值所形成的一种组合,笛卡尔积是所有这种可能组合的集合,即:笛卡尔积是由n个域形成的所有可能的n-元组的集合 。
- 若Di的基数为mi,则笛卡尔积的基数,即元组个数为 m1*m2*…*mn。
由于笛卡尔积中的所有元组并不都是有意义的,因此…
关系(Relation) :
- 一组域D1, D2,…, Dn的笛卡尔积的子集 。
- 笛卡尔积中具有某一方面意义的那些元组被称作一个关系(Relation) 。
- 由于关系的不同列可能来自同一个域,为区分,需要为每一列起一个名字,该名字即为属性名。
这里留意,域一般就是DBMS中的属性类型、长度。
2.3 关系上的一些重要概念
候选码(Candidate key):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
全码(All-key):最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
主码 :若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
主属性: 包含在任何一个候选码中的属性
非主属性( Non-Prime attribute):不包含在任何侯选码中的属性
外码(Foreign Key)/外键 :关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键
3、关系模型中的完整性
实体完整性 :关系的主码(主键)中的属性值不能为空。
参照完整性:如果关系R1的外码Fk与关系R2的主 码Pk相对应,则R1中的每一个元组的 Fk值或者等于R2 中某个元组的Pk值, 或者为空值。
用户自定义完整性:用户针对具体的应用环境定义的完整性约束条件。
第4讲 关系模型之关系代数
- 关系代数基本操作:并、差、笛卡尔积(广义积)、选择、投影。
- 关系代数扩展操作:交、θ-连接、自然连接。 (θ是比较运算符, θ∈{ >, ≥, <, ≤, =, ≠})
- 关系代数复杂扩展操作:除、外连接
- 书写关系代数的基本思维训练:“一个集合,施加一个操作得到一个集合,依次施加关系代数操作,进而得到所需结果”“以集合为中心”
θ-连接的例子: