数据库系统概述
一、数据库发展
1. 人工发展阶段(无结构)
程序与数据之间是一一对应的关系
- 不保存数据。
- 应用程序管理数据。
- 数据不共享,冗余度大。
- 程序与数据之间不具有独立性。
2. 文件系统管理阶段(记录内有结构,整体无结构)
-
优点
- 数据可以长期保存。
- 文件系统管理数据。
- 程序与数据之间有一定的独立性。
-
缺点
- 数据共享性差,冗余度大。
- 数据独立性差。
3. 数据库系统管理阶段(整体结构化,用数据模型描述)
- 共享性高,冗余度小。
- 具有较高的物理独立性和一定的逻辑独立性。
二、数据库系统基本概念
1. 数据库
- 计算机的存储设备上存放。
- 数据库是一个数据集合。
- 数据集合是有结构的。
- 数据集合是相关联的。
- 数据集合是合理存放的。
2. 数据库管理系统(DBMS)
位于用户和操作系统之间,为用户或应用程序提供访问数据库的方法(数据定义、查询、更新等)。
DBMS总是基于某种数据模型,可分为层次数据模型、网状型数据模型,关系型数据模型和面向对象数据模型等。
3. 数据库系统
一般由数据库、数据库管理系统、应用程序、数据库的软硬件支撑环境、数据库管理员和用户等构成。
一个数据库系统有两类用户:程序员和终端用户。
三、数据库系统的特点
1. 数据结构化
数据库系统中的数据采用一定的数据模型来组织、描述和存储,数据模型不仅描述数据本身的特征,还能够描述现实世界中各种数据组织和数据间的关系。
2.数据冗余度小、共享性高,避免了数据的不一致性
数据库中的数据是面向所有用户的数据需求组织的,可以共享。因此,减少了不必要的数据冗余,节省了存储空间,也避免了数据之间的不一致性,即避免了统一数据在数据库中的重复存储**(事实上,数据库的冗余度并非越小越好)**。
3. 数据独立性高
数据库中的数据与应用程序之间相互独立、互不依赖。
-
逻辑独立性
用户的应用程序与数据库的逻辑结构相互独立,数据库的逻辑结构发生变化时,用户的程序不需要改变。
-
物理独立性
用户的应用程序与数据库的存储结构相互独立。改变数据库的存储结构时,不影响逻辑结构,只要不改变逻辑结构,就不影响应用程序。
4. 统一数据管理和控制功能
-
数据的安全性保护
防止不合法的使用造成的数据泄密和破坏。
-
数据的完整性控制
- 正确性:指数据合法性
- 有效性:指数据是否在定义的有效范围。
- 相容性:表示同一事实的两个数据应相同,不一致就是不相容。
-
并发控制
指多个用户同时存取或修改数据库时,避免因发生相互干扰而提供给用户不正确的数据,防止数据库受到破坏的各种技术。
-
数据库恢复
指将数据库从错误状态恢复到某一正确状态的正确性。
四、数据模型
1. 数据模型类型
- 概念数据模型(概念模型):按照用户的观点对数据建模,强调其语义表达能力。特点为简单,清晰,易于理解,使用户和数据库设计人员之间的交流工具,独立于计算机系统,完全不涉及计算机中的表示,是存在于人们的头脑中的信息模型。E-R模型就是一种概念模型。
- 逻辑数据模型(逻辑模型):按计算机系统的观点对数据建模,有严格的形式化定义,主要用于DBMS实现,时对现实世界的第二级抽象。逻辑模型主要包括层次模型,网状模型,关系模型和面向对象模型等。
2. 数据模型的基本组成
- 数据结构
- 数据操作:增删改查。
- 数据完整性约束:限定符合数据模型的数据库状态及状态变化,以保证数据库中数据的完整性。
- 实体完整性约束
- 参照完整性约束
3. 概念数据模型
1. 基本概念
- 实体
- 属性
- 一个实体可以有多个属性
- 属性往往不可再分
- 属性有型和值的区别,例如:学生的姓名学号等属性名是属性型,而具体数据是属性是属性值。
- 属性的取值一般受到某个条件的约束,这个约束的取值范围成为属性的域。
- 能唯一标识一个实体的属性或属性集成为实体的码。例如:学号是学生的码,课程号和学号是该名学生在该门课程取得的成绩的码。
- 联系
- 一对一联系(1:1):一个班只有一个正班长。
- 一对多联系(1:n):一个班级有若干名学生。
- 多对多联系(m:n):一个学生选若干门课程,一门课程有若干名学生选修。
2. E-R图
- 实体型:用矩形表示,矩形框内写明实体名。
- 属性:用椭圆型表示,用无向边将其与实体链接起来。
- 联系:用菱形表示,框内写明联系,用无向边链接实体。
4. 逻辑数据模型
1.层次模型
- 数据结构:树状结构。
- 有且只有一个结点没有双亲结点(成为根节点)。
- 根以外的其他结点有且只有一个双亲结点。
- 数据操作及完整性约束:
- 不能插入无双亲的子结点。
- 删除双亲结点,其子女结点也会被删除。
- 更新时,应更新所有相应的记录。
- 优缺点
- 优点
- 查询效率高。
- 结构简单,层次分明,便于在计算机内实现。
- 存取记录时,可从根节点向下寻找,查找路径就是存取路径。
- 缺点
- 现实世界很多联系是非层次的。
- 插入和删除数据时操作限制多。
- 编写程序复杂。
- 优点
2.网状模型
- 数据结构:图
- 可以有很多没有双亲的结点。
- 可以有两个或多个父结点。
- 数据操作及完整性约束
- 允许插入无双亲的子结点。
- 允许只删除双亲结点,删除后,其子节点仍在。
- 更新时,更新指定记录即可,查询操作有多种实现方式。
- 优缺点
- 优点
- 可直接描述现实世界。
- 查询方便,结构对称,查询格式相同。
- 操作功能强,速度快,存取效率高。
- 缺点
- 结构及操作极为复杂。
- 数据独立性差。
- 程序访问困难以至于程序设计困难。
- 优点
3. 关系模型
-
数据结构:用关系(即规范的二维表)来表示实体以及实体间的联系。
Sno学号 Cno课程号 Score成绩 100101 150101 60 100101 150102 73 100102 150101 82 100102 150103 76 100103 150101 95
Sno学号 Sn姓名 100101 宁毅 100102 范闲 100103 徐凤年
Cno课程号 Cn课程名称 150101 算法与数据结构 150102 数据库原理及应用 150103 WEB程序设计 -
数据操作及其完整性约束
- 操作:增删改查。关系模型的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
- 完整性约束:包括实体完整性,参照完整性,用户自定义完整性。
-
优缺点
- 优点
- 建立在严格数学概念基础上,有严格的设计理论。
- 概念单一,结构简单直观,易理解,语言表达简练。
- 描述一致,实体和联系都用关系面熟,查询操作结果也是一个关系,保证了数据操作语言的一致性。
- 利用公共属性连接,实体间的联系容易实现
- 数据独立性更高,安全保密性更好。
- 缺点:查询效率不高,速度慢,需要进行查询优化,采用静态数据模型。
- 优点
4. 面向对象模型
- 对象与封装性
- 类和继承
五、数据库系统的体系结构
1. 三级模式结构
-
外模式
外模式也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,也是与某一应用有关的数据逻辑表示。外模式由若干个记录组成。
外模式是模式的子集,一个数据库可以有多个外模式。外模式有如下优点:
- 用户不必考虑与自己无关的数据,也无需了解数据的存储结构,使得用户使用数据和设计程序的工作都得到了简化。
- 用户只能对自己需要的数据进行操作,数据库的其他数据与用户是隔离的,从而有利于数据的安全和保密。
- 由于同一模式可以派生出多个外模式,有利于数据的独立性和共享性。
-
模式
模式也称逻辑模式或概念模式,是对数据库中全部数据的逻辑结构和特征的描述,是所有用户的公共视图。一个数据库只能有一个模式。
-
内模式
内模式也称存储模式,是对数据库数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只能有一个内模式。
2. 两级映像与数据独立性
-
外模式/模式映像
定义了外模式与模式之间的映像关系。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
模式改变时,只需要修改映像,这样保证外模式不变,因为程序是根据外模式编写的,所以保证了数据与程序的逻辑独立性,即数据的逻辑独立性。
-
模式/内模式映像
定义了一个数据群居逻辑结构与存储结构之间的对应关系,说明数据的记录、数据项在计算机内部是如何组织和表示的。
数据库中的模式和内模式各有一个,所以模式/内模式映像是唯一的。数据库存储结构改变时,只需要修改映像,即可保持模式不变,所以不用修改应用程序,就能保证数据与程序的物理独立性。
六、数据库管理系统(DBMS)
数据库管理系统是专门用来管理数据库的计算机软件,为应用程序提供访问数据的各种接口,包括数据定义、数据操作、数据控制、事务管理以及数据库维护等功能。
1. DBMS的主要功能
-
数据定义功能
定义数据的外模式、模式、内模式,定义模式之间的映像,定义有关的约束条件等。
-
数据操纵
增删改查。
-
数据库运行管理功能
DBMS的核心功能。保证数据的安全性、完整性、一致性以及多用户对数据库的并发使用。
-
数据组织、存储和管理功能
分类组织、存储和管理数据库中的各种数据。实现数据之间的联系,以提高存储空间利用率和存取效率。
-
数据库的建立和维护功能
- 建立:DBMS根据数据库的定义,把实际的数据库数据存储到物理存储设备上,完成实际存放数据的数据库的建库工作。
- 维护:主要包括数据库运行时记录工作日志、监视数据库的性能、完成数据库的重组和重构功能。
- 重组:DBMS提供重组程序来重新整理凌乱的数据库,一边挥手已删除数据所占用的空间,并把记录从溢出区移到主数据区的自由空间中。
- 重构:DBMS提供重构程序来改善数据库的性能。动态环境中,数据库运行一段时间后,其使用的模式与最初设计的模式相比有了改变,此时性能会下降。为了改善性能,需要对数据库进行重构。
-
通信功能
DBMS需要提供与其他软件系统进行通信的功能。
2. DBMS的组成
- 数据定义语言及其翻译处理层序
- 数据操纵语言及其编译程序
- 数据库运行控制程序
- 实用程序
3. DBMS的工作模式和用户存取数据的过程
DBMS是DBS中对数据进行管理的软件系统,是DBS的核心组成部分。在DBS中对数据库的一切操作(数据定义、查询、更新和各种控制)都是通过DBMS进行的。