1.1 数据库管理的发展
数据库:非常大的,集成的数据集合;企业相关数据的集合,用于支持应用开发。对现实进行建模(数据模型),并存储在计算机中。
数据管理系统:系统软件,存储和管理数据库。
文件系统 vs 数据库系统:
- 操作系统的文件管理的功能有限(create,open,read,write,lseak文件读写指针);DBMS底层基础性工作(包括:内外层数据交换,数据缓冲,面向物理块存取,寻址,查询算法等)。
- 文件需要定制代码去查询不同的文件。
- 数据库可以保证在大量用户并发同时访问时数据一致,文件不可以。
- 数据库可以在故障时恢复数据,文件不可以。
- 数据库可以设置更加精细的权限控制和访问控制。
- 数据库系统建立在操作系统的文件系统之上。
1.2 数据库系统
DBMS的优点:
- 高级的用户接口:用户只需利用非过程数据库语言,提出数据需求,而无需了解数据的物理存储。
- 查询处理和优化
- 数据独立性和有效访问
- 节省应用开发的时间
- 数据完整性约束(数据在语义上的约束)检查和安全性(访问权限控制)
- 统一的数据管理
- 并发访问,数据故障恢复
1.3 数据、数据模型与数据模式
数据:symbols for describing the things of the real world,existing form of information;
数据模型:描述数据的方法,如层次模型、网状模型、关系模型等;(C语言)
- 数据的静态特性:数据的基本结构、数据间的联系和数据的约束;
- 数据的动态特性:定义在数据上的操作。
- 概念数据模型,conceptual:面向用户,主要用来描述现实世界;
- 逻辑数据模型,logical:面向用户和面向实现的折衷,用户从数据库看到的数据模型,与DBMS有关;
- 物理数据模型,physical:反映数据的存储结构,与DBMS、操作系统和硬件有关。
数据模式,schema:用某种数据模型,对特定数据集进行描述的结果。(编出来的程序)
三级模式:
- 内模式/物理模式:数据在计算机上是如何存储的(堆,Hash,?)
- 逻辑模式/概念模式:基表(以某种结构存储在磁盘上)
- 外模式/视图模式:不同的用户看到的数据不同(基表映射出来的不同视图)
1.4 数据库的生命周期
数据库系统的生命周期
规划→设计→建立→加载数据→运行,管理,维护→扩展与重构
2.1 层次数据模型
Hierarchical Data Schema
基本概念:
特点:
- 层次数据模型存在多个PCRs;
- 每个记录类型只能有一个父节点;
- 每个PCR只能描述一个1:N的关系;
缺点:①多对多,②多个父节点,③多元联系无法表达
解决:虚记录(指针)
2.2 网状数据模型
基本概念:
2.3 关系数据模型
2.3.1基本概念
属性和域
关系和元组
关系(形):R=(A1/D1,A2/D2,…,An/Dn)或R=(A1,A2,…,An)
n 目,Ai 属性名,Di 域domian。
键
- 候选键,candidate key:唯一决定元组的最小的属性集合,可能有多个。(id)
- 超键,super key:唯一决定元组但非最小的属性集合。(id,name)
- 主键,primary key:指定一个候选键为主键,其他的候选键为次键,alternate key。注:若主键包含了关系中的全部属性,称之为全键,all key。
- 外键,foreign key:被引用表的主键,逻辑指针。注:参考完整性,指针不能荡空。
2.3.2约束
- 域完整性约束,domain integrity constraint:每个值符合该属性定义的值域;
- 实体完整性约束,entity integrity constraint:主键的属性值不能为空;
- 引用完整性约束,referential integrity constraint:外键要么空缺,要么引用实际存在的主键值。
- 一般完整性约束(个别数据说明)
2.3.3操作
关系专用操作的优先级(一元操作:选择投影>>二元操作,连接)高于集合操作(交并差,笛卡尔积)。
最小关系系统:支持选择,投影,连接;
关系完备系统:支持选择、投影,连接,差,并,所有的关系代数操作;
全关系系统:支持所有关系模型的特征。
2.3.4关系演算
a.元组关系演算 TCR
b.域关系演算 DCR
域变量
关系演算和关系代数的比较:
2.4 传统数据库的不足
层次、网状、关系数据模型是三大传统数据模型。
- 以记录为基础,不能很好地面向用户和应用;
- 关系模型是通过公共属性或一个表示联系的关系来体现实体间的联系,不是很自然;
- 缺乏语义信息;
- 数据类型太少,难以满足应用需要。
2.5 非传统数据模型
ER模型
- 实体(entity):可区分的对象表达为实体;
- 弱实体(week entity):为其他实体所有的实体,如职工的家属,特点:不能独立存在,不一定有自己的实体键;
- 属性(attribute):由一组属性描述(允许复合类型和多值属性);
- 联系(relationship):用实体组成的元组表示,
。
- 实体集(如,所有学生,所有雇员)
- 联系集(同类联系)
- 基数比约束(Cardinality Ratio Constraints):一对一,一对多,多对多
- 参与度约束(Participation Constraints):表示形式为(min,max),若min>0为全参与,min=0为部分参与。
ER图
广泛用于数据库的概念设计,概念模型表示实体关系,独立于实际的DBMS。
实体——长方形,属性——椭圆形,联系——菱形。
扩展ER模型
- 特殊化(Specialization)与普遍化(Generalization):类似父类与子类的继承
- 聚集(aggregation),允许实体集间的联系作为实体,再与其他实体发生联系
- 范畴(category),由不同类型实体组成的集合,银行个人账户,公司账户