数据库基础理论-绪论
四个基本概念
数据(Data)
数据库中存储的基本单位,描述事物的符号记录
数据的含义称为数据的语义,数据和语义是不可分的
数据库(Database,DB)
长期存储在计算机内,有组织的、可共享的大量数据的集合
数据库中的数据按一定的数据模型组织、描述和存储
用途:可供进一步加工处理,抽取有用信息,转化为有价值的知识
数据库管理系统(DBMS)
位于用户应用和操作系统之间的一层数据管理系统,是计算机的基础软件
用途:科学的组织和存储数据,高效的获取和维护数据
主要功能
- 数据定义语言(DDL),可以对数据库中的数据对象的组成与结构进行定义
- 数据组织、存储和管理,采用何种方式对数据进行存储
- 数据操纵语言(DML),可以用于对数据库进行 CRUD 操作
- 数据库事务管理和运行管理,用于保证数据的完整性和一致性
- 数据库的建立和维护功能,数据库的备份、转存、恢复等功能
- 与其它软件系统进行通信的功能,不同数据库管理系统之间的数据转换
数据库系统(DBS)
由硬件平台和数据库、数据库管理系统、应用程序(以及应用开发工具)、数据库管理员组成
数据管理的三个阶段
人工管理
文件系统阶段
数据库系统阶段
数据库系统的特点
数据结构化
数据库的主要特征是实现了整体数据的结构化,也是数据库系统和文件系统的本质区别
共享性高、冗余度低且易扩展
数据共享可以大大减少数据冗余,节约空间,避免数据之间的不相容和不一致性
数据独立性高
物理独立性:用户的应用程序与数据库中数据的物理存储是独立的
逻辑独立性:用户的应用程序与数据库的逻辑结构是独立的
数据由 DBMS 统一管理和控制
- 保证数据的安全性,防止不合法使用导致数据泄露
- 保证数据的完整性,将数据控制在有效的范围内,保证数据之间满足一定的关系
- 保证并发安全,保证多个并发进程同时存取、修改数据库时,能保证数据完整性
- 数据恢复,防止由于各种故障(硬件故障、系统故障等)的发生所导致存储数据丢失
数据模型(Data Model)
数据模型是对现实世界数据特征的抽象,对现实世界的模拟
- 现实世界到概念模型(数据库设计人员完成)
- 概念模型到逻辑模型(数据库设计人员和设计工具)
- 逻辑模型到物理模型(由 DBMS 完成)
两类模型
概念模型(信息模型)
按照用户的观点对数据和信息建模,用于数据库设计
信息世界的基本概念:
- 实体:客观存在并可以相互区别的事物称为实体,可以是具体的人、事和物体
- 属性:实体所具有的某一特性,一个实体由多个属性所确定,如:
(180503,张三,28,二班,计算机专业)
表示了一个具体的学生 - 码:唯一标识实体的属性集,如学号、身份证号等
- 实体型:用实体名及其属性名集合来抽象和刻画实体,如:
学生(学号,姓名,年龄,班级,专业)
- 实体集:同一类型实体的集合,如全体学生
- 联系:实体之间的联系,如一对一、一对多和多对多
可以用实体-联系方法(Entry-Relationship approach)来表示信息
逻辑模型和物理模型
逻辑模型:按计算机系统的观点对数据建模,用于 DBMS 实现,主要包括层次模型、网状模型、关系模型
物理模型:描述数据在磁盘上的表示方法和存取方法
常用数据模型
层次模型(树状模型)
用树形结构来表示实体之间的关系,如行政机构、家族图谱等
用每个节点表示一个记录类型(实体),记录之间的联系用有向边表示
每个记录可以有多个字段,用字段来描述实体的属性
必有一个双亲节点,因此只能处理一对多实体关系
层次模型满足以下两个条件:
- 有且只有一个节点没有双亲节点,该节点称为根节点
- 根节点以外的所有节点有且只有一个双亲节点
层次模型的优点:
- 数据结构简单清晰
- 具有良好的完整性
- 查询效率比较高,只需沿着路径即可找到对应的记录
层次模型的缺点:
- 只能表示一对多的关系,不能表示另外两个
- CRUD 操作限制较多,应用程序编写复杂
网状模型
每个节点表示一个记录类型(实体),每个记录有若干字段(实体的属性),节点之间通过连线表示一对多的关系
网状模型满足以下两个条件:
- 允许一个以上的节点无双亲节点
- 一个节点可以有多于一个的双亲节点
网状模型的优点:
- 能够更加直接表示世界
- 具有良好的性能,存取效率都比较高
网状模型的缺点:
- 结构复杂,不易于用户操控
- DDL 和 DML 操作复杂,需要通过高级语言控制
- 需要找寻具体的路径
关系模型
关系模型建立在严格的数学概念上,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表
关系模型的基本术语:
- 关系:一个关系对应一张具体的表
- 元组:表中的一行记录即为一个元组
- 属性:表中的某一列即为一个属性
- 码:可以唯一确定一个元组的属性组
- 域:一组具有相同数据类型的值的集合
- 分量:元组中的某一个属性值
- 关系模式:对关系的描述,如:
关系名(属性1,属性2,属性3 ... 属性n)
,关系的每一个分量都是不可再分的数据项
关系模型的优点:
- 建立在严格的数学概念上
- 实体与实体之间的联系都通过关系表示,表结构清晰,容易使用
- 存取路径对用户透明,简化了工作
关系模型的缺点:
- 查询效率不如格式化数据模型
- 需要了解数据库内部细节,才能对其进行优化
数据库系统的结构
- 型:对某一类数据的结构和属性的说明
- 值:型的一个具体赋值
三级模式
数据库的模型由外模式、模式、内模式三级构成,模式是数据库系统模式结构的中心
- 模式:数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型的描述而不涉及具体的值,模式的一个具体值称为实例,一个数据库只有一个模型,实例可以有多个。模式是稳定的,实例是变动的,可以通过 DDL 定义模式
- 外模式:数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述,外模式可以保证不同用户看到的数据是不相同的,保证了数据的安全性,一个数据库可以有多个外模式,可以通过 DDL 定义外模式
- 内模式:数据物理结构和存储方式的描述,数据在数据库内部的组织方式,如:记录的存储方式(顺序存储,堆存储,hash 存储),索引的组织方式(B+树,Bitmap,Hash),是否加密压缩,一个数据库只有一个内模式
二级映像
二级映像的存在使得数据库中的数据具有了较高的物理独立性和逻辑独立性,数据与程序之间的独立性使得数据的定义和描述从应用程序中分离出去,简化了应用程序的编写,减少了程序的维护和修改
- 外模式/模式:定义了外模式和模式的关系,每一个外模式都有一个与之相对应的外模式/模式映像。当模式改变时,只需对外模式进行修改即可,无需修改应用程序,保证了数据的逻辑独立性
- 模式/内模式:定义了全局逻辑结构与存储结构之间的关系,模式只有一个,内模式也只有一个,因此模式/内模式映像也仅有一个。当存储结构改变时,只需对模式/内模式映像调整即可,可以保证模式不变,因此应用程序也可保证不变,保证了数据的物理独立性