数据库原理及应用
1.数据库的由来和发展
人工管理阶段
-
特点
- 数据不保存在计算机内
- 没有专用的软件对数据进行管理
- 只有程序(program)的概念,没有文件(file)的概念。数据的组织方式必须由程序员自行设计与安排。
- 数据面向程序。即一组数据对应一个程序
文件系统阶段
-
特点
- 数据以“文件”形式可长期保存在外部存储器的磁盘上。
- 数据的逻辑结构与物理结构有了区别,但比较简单。程序与数据之间有“设备独立性” ,通过文件名访问。
- 文件组织已多样化。有索引文件、链接文件和直接存取文件等。
- 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。
- 对数据的操作以记录为单位。因为文件中只存储数据,不存储文件记录的结构描述信息。
-
缺点
-
数据冗余(redundancy)
-
数据不一致(inconsistency)
-
数据联系弱(poor data relationship)
-
数据库阶段
-
特点
- 采用数据模型表示复杂的数据结构。
- 有较高的数据独立性。
- 数据库系统为用户提供了方便的用户接口。
- 数据库系统提供以下四方面的数据控制功能:数据库的并发控制,数据库的恢复,数据的完整性和数据安全性。
- 增加了系统的灵活性。
高级数据库技术阶段
-
分布式数据库系统(DDBS)
-
特点
-
数据库的数据物理上分布在各个场地,但逻辑上是一个整体。
-
每个场地既可以执行局部应用(访问本地DB),也可以执行全局应用(访问异地DB)。
-
各地的计算机由数据通信网络相联系。本地计算机单独不能胜任的处理任务,可以通过通信网络取得其它DB和计算机的支持。
-
-
-
对象数据库系统(ODBS)
-
特点
- 对象数据模型能完整地描述现实世界的数据结构,能表达数据间嵌套、递归的联系。
- 具有面向对象技术的封装性(把数据与操作定义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性。
-
-
Web数据库系统
-
XML数据库技术
-
现代信息集成(DW、OLAP、DM)
2.数据描述
概念设计中的数据描述
- 实体(entity):客观存在,可以相互区别的事物称为实体。
实体集(entity set):性质相同的同类实体的集合,称为实体集。
属性(attribute):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。
实体标识符(identifier):能唯一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。 字段(field):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。
记录(record):字段的有序集合称为记录。
文件(file):同一类记录的集合称为文件。
关键码(key):能唯一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。
逻辑设计中的数据描述
- 记录
- 字段(数据项)
- 文件
- 关键码
物理设计中的数据描述
- 位(bit,比特):一个二进制位称为“位”。一位只能取0或1两个状态。
字节(byte):8个比特称为一个字节,可以存放一个字符所对应的ASCII码。
字(word):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。
块(block):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为210~214字节。
桶(bucket):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。
卷(volume):一个输入输出设备所能装载的全部有用信息,称为“卷”。
数据联系的描述
-
联系(Relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。 联系有一元联系,二元联系,三元联系等。
-
一元联系
-
二元联系
- 一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。
- 一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。
- 多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。
-
三元联系
-
3.数据抽象的级别
模型(model):对现实世界的抽象。
数据模型:描述数据库的结构和语义,对现实世界的数据进行抽象。
从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程。
根据数据抽象的级别定义了四种模型
-
概念模型:表达用户需求观点的数据全局逻辑结构的模型。
-
特点
-
表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。
-
从用户需求的观点出发,对数据建模。
-
独立于硬件和软件。硬件独立意味着概念模型不依赖于硬件设备,软件独立意味着该模型不依赖于实现时的DBMS软件。
-
数据库设计人员与用户之间进行交流的工具。
-
-
ER模型:直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。ER图是直接表示概念模型的有力工具。
-
成分
- 矩形框,用于表示实体类型(考虑问题的对象)。
- 菱形框,用于表示联系类型(实体间联系)。
- 椭圆形框,用于表示实体类型和联系类型的属性。
-
优缺点
- 简单,容易理解,真实地反映用户的需求
- 与计算机无关,用户容易接受。
- 只能说明实体间语义的联系,还不能进一步说明详细的数据结构。
-
-
-
逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型。
-
特点
- 表达了DB的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述。
- 逻辑模型是从数据库实现的观点出发,对数据建模。
- 逻辑模型独立于硬件,但依赖于软件(DBMS)。
- 逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。
-
层次模型( Hierarchical Model):用树型(层次)结构表示实体类型及实体间联系的数据模型。
-
特点
- 只有一个根结点,且此结点无双亲
- 其他结点只有一个双亲且唯一
- 只表示1:N联系
- 操作复杂(层次关系)
- 查询效率较高(联系通过指针实现) ,程序的编写较复杂。
-
-
网状模型(Network Model):用有向图结构表示实体类型及实体间联系的数据模型。
- 可以有一个以上的结点无双亲
- 结点可以不只一个双亲
- 可表示M:N联系,查询效率高(联系通过指针实现)
- 结构和编程复杂
-
关系模型(Relational Model):主要特征是用二维表格表达实体集。
- 与前两种模型相比,数据结构简单,容易为初学者理解。
- 关系模型是由若干个关系模式组成的集合。
- 相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
-
对象模型(Object Model): 现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。 将属性集和方法集相同的所有对象组合在一起,构成了一个类(class)。
-
-
外部模型:表达用户使用观点的DB局部逻辑结构的模型。
-
特点
- 是逻辑模型的一个逻辑子集。
- 独立于硬件,依赖于软件。
- 反映了用户使用数据库的观点。
-
优点
- 简化了用户的观点。
- 有助于数据库的安全性保护。
- 外部模型是对概念模型的支持。
-
-
内部模型:表达DB物理结构的模型。
- 内部模型又称为物理模型,是数据库最低层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。
- 内部模型是与硬件和软件紧密相连的。
三层模式和两级映像
- 逻辑模式(logical schema)是数据库中全部数据的整体逻辑结构的描述。
- 外模式(external schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。
- 内模式(internal schema)是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
- 模式/内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。
- 外模式/模式映象存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。
高度的数据独立性
- 物理数据独立性:对内模式的修改尽量不影响逻辑模式、外模式和应用程序,我们称数据库达到了物理数据独立性(简称物理独立性)。
- 逻辑数据独立性:对逻辑模式的修改尽量不影响外模式和应用程序,我们称数据库达到了逻辑数据独立性(简称逻辑独立性)。
4.数据库管理系统(DBMS)
工作模式
- 接受应用程序的数据请求和处理请求
将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)
实现对数据库的操作
从对数据库的操作中接受查询结果
对查询结果进行处理(格式转换)
将处理结果返回给用户
主要功能
-
定义功能
- 定义DB的三级结构、两级映象。定义数据的完整性约束、保密限制等。
-
操纵功能
- 实现对数据的检索(查询)和更新(插入、删除和修改)。
-
保护功能
- 1.DB的恢复;
2.DB的并发控制;
3.数据完整性控制;
4.数据安全性控制。
- 1.DB的恢复;
-
维护功能
- 包括数据库的数据载入、转换、转储、数据库的改组以及性能监控等功能。
-
数据字典
- 存放三级结构定义的数据库称为数据字典(Data Dictionary,DD)
模块组成
-
查询处理器
- DDL编译器
- DML编译器
- 嵌入式DML的预编译器
- 查询运行核心程序
-
存储管理器
- 权限和完整性管理器
- 事务管理器
- 文件管理器
- 缓冲区管理器
5.数据库系统(DBS)
组成
- 数据库技术
- 计算机系统
DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员的集合体。
DB是与一个企业组织各项应用有关的全部数据的集合(实际应用)。
DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
-
职责
- 定义模式
- 定义内模式
- 与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。
- 定义安全性规则,对用户访问数据库的授权。
- 定义完整性规则,监督数据库的运行。
- 数据库的转储与恢复工作。
全局结构
- 数据库用户
- DBMS的查询处理器
- DBMS的存储管理器
- 磁盘存储器中的数据结构
结构的分类
- 集中式DBS(centralized DBS)
- 客户机/服务器式DBS(client/server DBS,记为C/S DBS)
- 并行式DBS(parallel DBS)
- 分布式DBS(distributed DBS )
应用程序的演变
- 应用程序从低级到高级大致经历了以下几个阶段:
(1)采用“交互式SQL”直接使用DB的方式
(2)采用“主语言+嵌入式SQL”方式编写程序
(3)采用“主语言+ODBC函数+嵌入式SQL”方式编写应用程序
(4)采用“4GL+事件和函数+嵌入式SQL”方式编写应用程序
效益
- 灵活性
简易性
面向用户
有效的数据控制
加快应用系统的开发速度
维护方便
标准化
小结
数据管理技术经历了人工管理、文件系统、数据库和高级数据库技术等四个阶段。
数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:数据的冗余、不一致性和联系弱。
在数据库领域,应该准确使用术语,深刻了解实体间1:1、1:N和M:M三种联系的意义。
数据模型是对现实世界进行抽象的工具。
从现实世界的信息到数据库存储的数据以及用户使用的数据,这是一个逐步抽象的过程。分成四个级别:概念模型、逻辑模型、外部模型和内部模型。
概念模型是对现实世界的抽象,是一种高层的数据模型。逻辑模型是用某种DBMS软件对DB管理的数据的描述。外部模型是逻辑模型的逻辑子集,是用户使用的数据模型。内部模型是对逻辑模型的物理实现。
数据库是存储在一起集中管理的相关数据的集合。
数据库的体系结构是对数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。
由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:物理数据独立性和逻辑数据独立性。
数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。
DBMS是位于用户与OS之间的一层数据管理软件。数据库语言分成DDL和DML两类。DBMS主要由查询处理器和存储管理器两大部分组成。
DBS是包含DB和DBMS的计算机系统。
DBS的全局结构体现了DBS的模块功能结构。
2021年9月16日