数据库技术发展阶段
- 人工管理
- 文件系统
- 数据库系统
数据库的三级模式
- 内模式
一个数据库只有一个内模式 - 模式
也称概念模式或逻辑模式
对数据库中全部数据的逻辑结构和特征的描述(数据项的名字、类型、取值范围)
一个数据库只有一个模式
位于模式结构的中间层
与硬件无关,与具体的应用程序、开发工具及高级程序设计语言无关 - 外模式
数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述
一个数据库可以有多个外模式,但是一个应用程序只能使用一个外模式
内模式-DBMS
模式-DBA
外模式-程序员
数据库-三级模式和两级映射
信息的三种世界
- 现实世界
- 信息世界(概念世界)
- 数据世界(机器世界)
概念模型
基本概念
- 实体:一名学生,一名教师
- 属性:姓名,性别,年龄,大队
- 码:学号(唯一标识符)
- 实体型:学生(学号、姓名,性别,年龄,系。。。)(用实体名及其属性名集合来抽象刻画同类实体)
- 实体集:全体学生(同型实体的集合)
- 联系:教师实体与学社工实体之间存在教和学的联系,学生和课程之间存在选课联系
两个实体型之间的联系
- 一对一联系(1:1)
一个区队只有一个区队长
一个区队长旨在一个区队任职 - 一对多联系(1:M)
一个区队中有若干名学生,每个学生只属于一个区队 - 多对多联系(M:N)
- 一门课程同时又若干个学生选修
- 一个学生可以同时选修多门课程
E-R图
- 实体-矩形
- 属性-椭圆形表示,并用无向边将其与相应的实体连接起来
- 联系-棱形,用无向边把棱形框与有关实体连接起来,在无向边旁边著名联系的类型
- 联系的属性-椭圆形表示,若联系具有属性,也要用无向边联系起来
数据模型
组成:数据结构、数据操作、数据的完整性约束
三种数据模型:
层次模型(非关系模型)、网状模型(非关系模型)、关系模型
层次模型:
用树形结构表示各类实体以及实体间的联系(无法直接表示多对多)
网状模型:
用网状结构,容易描述多对多联系
关系模型:
用二维表格表示实体及实体间的关系
一个关系对应一张二维表
二位表中的一行代表一个元组
二维表中的列称为属性,给每一个属性起一个名称即属性名
属性值是属性的具体取值
属性的取值范围称为域
关键字或码(唯一标识元组的属性)
...(不详细描述了)
关系数据库
- 数据结构:关系
- 逻辑结构:二维表
在每一个关系中,必须满足:
每一列数据类型相同,每个属性必须是单值,关系的结构不能嵌套。
关系是动态的,随时间变化的
关系模式是对关系的描述,是静态的,相对稳定的
关系完整性
- 实体完整性:关系的主码中属性具有唯一性且不能取空值
- 参照完整性:学生关系中国每个元组的“专业号”属性只能取两类值:空值和非空值
- 用户定义的完整性规则。
数据库设计
概念数据库设计
逻辑结构设计
将E-R图转换为具体DBMS所支持的逻辑数据模型
- 一个实体转化为一个关系模式
- 一个联系转换为一个关系模式
1:1联系转换
可以转换成一独立关系模式
也可以与一段模式合并
1:N联系转换
课转成一独立模式
也可以与N端模式合并
M:N联系转换
必须产生一新的独立模式