第1章 数据库概览——实例、概念与认识
数据管理 是 数据处理 的中心活动,直接影响数据处理的效率,两者密不可分。随着计算机科学与技术的发展,利用计算机进行数据管理经历了三个阶段,即人工管理阶段、文件系统阶段和数据库系统阶段。
1.1 数据管理系统的进展
- 人工管理阶段
计算机主要用于科学计算,无磁盘等直接存取的设备,无操作系统。程序员将数据处理纳入程序设计的过程中。此阶段数据不长期保存在计算机中;应用程序管理数据,数据与程序不具有独立性;数据是面向应用的。 - 文件系统阶段
计算机开始用于数据处理,外存储器有了磁盘、磁鼓等直接存取设备,软件有操作系统,且操作系统中有了专门的数据管理软件——文件系统。此阶段数据能够长期保存,反复操作;由专门软件对数据进行管理,程序与数据之间有了一定的独立性。但由于数据文件是面向应用的,数据的组织和管理直接依赖于应用程序,数据共享性差,冗余度大,数据独立性差。 - 数据库系统阶段
数据处理成为计算机应用的主要领域,数据库系统的主要特征是数据的统一管理和数据共享。数据采用统一的数据模型进行组织和存储,由数据库管理软件进行统一管控,应用程序在DBMS的控制下,采用统一的方式对数据库中的数据进行访问和操作。
数据库系统阶段的特点:
- 数据结构化
- 数据共享性高、冗余度低、易于扩充
- 数据独立性高
- 数据统一管理与控制
1.2 理解数据库系统
三个概念:数据库,数据库管理系统,数据库系统
- 数据库:长期存储在计算机内的、有组织的、可共享的数据集合。
- 数据库管理系统:位于用户和操作系统之间,对数据进行统一管理与控制的专门系统软件。
- 数据库系统:带有数据库并利用数据库技术进行数据管理的计算机系统。
1.3 数据库系统结构
数据库系统 由数据库、数据库管理系统(DBMS)、数据库管理员(DBA)、数据库应用系统和用户组成。数据库系列产品很多,它们建立于不同的操作系统之上,支持不同的数据模型,采用不同的数据库语言,但他们在体系结构上具有相同的特征,即采用 三级模式 结构,提供 两级映像 功能。
- 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。模式是面向所有用户的公共数据视图,是数据库的全局视图。一个数据库只有一个模式,它既不涉及物理存储细节,也不涉及应用程序和程序设计语言。
- 外模式也称子模式或用户模式,它是模式的子集。外模式是具体面向应用的,是数据库用户所能使用的局部数据的逻辑结构和特征的描述。由于不同应用有不同的外模式,因此一个数据库应有多个外模式。
- 内模式也称存储模式,是数据库的物理结构,是数据库在存储介质上的存储结构。内模式主要描述数据的物理结构和存储方式,一个数据库只有一个内模式。
数据库系统的三级模式是对数据的三个抽象层次,两级映像定义了三级模式间的对应关系。模式是数据库的核心和关键,独立于数据库的其他层次。内模式由DBMS定义,无需数据库设计人员设计。
三级模式两级映像的优点
- 保证数据独立性。外模式/模式映像保证了数据的逻辑独立性;模式/内模式映像保证了数据的物理独立性。
- 有利于数据共享,减少数据冗余。
- 有利于数据的安全性。不同用户在各自外模式下根据要求操作数据,只能对限定的数据进行操作。
- 简化了用户接口。用户按外模式编写应用程序或输入命令,而无需了解数据库全局逻辑结构和内部存储结构,方便用户使用。
数据库管理系统的主要功能:
- 有效地组织、存取和维护数据。
- 数据定义功能。DBMS通过数据定义语言(DDL)定义数据库的各类数对象,包括数据的结构、数据约束条件等。
- 数据操纵功能。DBMS提供数据操纵语言(DML),用户使用DML实现对数据库中的数据进行查询、增加、删除和修改操作。
- 数据库的事务管理和运行管理。DBMS提供数据控制语言(DCL),数据库管理员使用DCL实现对数据库的安全性保护、完整性检查、并发控制、数据库恢复等数据库控制功能。
- 数据库的建立和维护功能。
- 其他功能。包括:数据库初始数据输入与转换、数据库转储、数据库重组、数据库性能监视与分析、数据通信等,这些功能通常由DBMS提供的实用程序或管理工具完成。
1.4 数据模型
1.4.1 数据模型的概念
模型是现实世界特征的抽象与模拟,可分为实物模型和抽象模型。数据模型是一种抽象模型,是对现实世界数据特征的抽象,为数据库系统的信息表示和操作提供必须的抽象框架。
数据模型的选择应满足三方面要求:①能较真实地模拟现实世界②易于理解③便于在计算机上实现。根据实际问题的需要和应用目的的不同,有三种层面上的数据模型。
- 概念数据模型(概念模型、信息模型)
面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息建模,与具体的DBMS无关。概念数据模型的作用和意义在于描述现实世界的概念化结构,使数据库设计人员在设计的初始阶段能够摆脱计算机系统和DBMS具体技术的约束,集中精力分析数据及其联系。最常用的概念模型是实体-联系(E-R)模型。 - 逻辑数据模型(结构数据模型)
按计算机系统的观点对数据建模,服务于DBMS的应用实现。结构化数据数据模型包括:层次结构、网状模型、关系模型等。 - 物理数据模型
用于描述数据在存储介质上的组织结构,它与具体DBMS有关,也与操作系统和硬件有关,是物理层次上的数据模型。
1.4.2 概念数据模型
概念数据模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。因此概念数据模型的选择应具有较强的语义表达能力,同时还应简单、清晰、便于用户理解。目前使用较多的概念数据模型描述工具有E-R模型、UML等。
- E-R模型的三要素:实体、属性、联系
实体指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。属性是实体的特征,刻画了实体在某方面的特征。现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。 - 实体型和实体值
在数据库系统中,引入的对象通常都有“型”和“值”之分。“型”是对象特征的抽象描述,“值”是对象的具体内容。实体型指对某一数据结构和特征的描述,通常由实体名和属性名的集合来抽象和刻画同类实体。实体值是实体型的内容,由描述实体的各个属性值组成。实体集指具有相同实体型的若干实体构成的集合。 - 联系的分类
实体内部/之间的联系:实体集内部各实体间/不同实体集中实体间的联系。
存在性/功能性联系:学校有老师,工厂有车间/老师授课,学生选课。
两个实体型之间的联系:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)。 - E-R模型表示——E-R图
用矩形框表示实体型,框内标明实体名;用椭圆表示实体型的属性;用无向线段连接实体和属性;用菱形框表示联系,用无向边分别与有关实体连接,同时在无向边旁标注联系类型。
1.4.3 逻辑数据模型
逻辑数据模型是数据库管理系统呈现给用户的数据模型,即用户从数据库中看到的数据组织形式,它与DBMS直接相关。用概念数据模型描述的数据,必须用逻辑数据模型表示才能由DBMS管理。
-
数据模型的三要素
逻辑数据模型是严格定义的一组概念的集合,主要由数据结构、数据操作和数据完整性约束三部分组成,通常称为逻辑数据模型的三要素。 -
数据模型的类型
数据结构是刻画数据模型最重要的方面。因此在数据库系统中,通常按照其数据结构的类型来命名数据模型。数据模型的发展带动了数据库系统的更新换代。先后出现了层次模型、网状模型、关系模型、面向对象模型、对象关系模型等逻辑数据模型。其中层次模型和网状模型统称为格式化模型。 -
关系数据模型
关系模型源于数学,具有完备的关系理论作为基础,因此被普遍采用。
(1)数据结构。非形式化地讨论,关系模型地基本数据结构是表格,使用二维表来表示实体及其联系。
(2)数据操作。关系模型的数据操作主要包括查询和更新。关系数据操作有两个显著特点:操作对象和结果均为集合;关系模型将操作中的存取路径向用户屏蔽起来。
(3)数据完整性约束。对数据模型中的数据操作必须满足完整性约束规则。关系完整性约束规则包括三类:实体完整性、参照完整性和用户定义完整性。
1.5 数据库系统的发展
1.5.1 数据库系统发展的阶段
- 第一代数据库系统
采用规格化模型的数据库系统属于第一代数据库系统。层次模型数据库系统代表:IBM公司的IMS(Information Management System);网状模型的典型代表是DBTG系统。
第一代数据库系统的主要特点有:
(1)支持三级模式体系结构。
(2)用存储路径表示实体间的联系。
(3)导航式的数据操纵语言。 - 第二代数据库系统
第二代数据库系统是指支持关系数据模型的关系数据库系统。关系模型由E.F.Codd提出。支持的实验系统有System R和INGRES,商用系统有System R发展来的SQL/DS以及INGRES实验系统发展来的INGRES关系数据库软件产品。Foxpro、Access、Oracle、SQL Server、 Sybase、 DB2、 Informix。
第二代数据库系统的主要特点有:
(1)概念单一,实体以及实体之间的联系都用关系表示。
(2)以关系代数为基础,形式化基础好。
(3)数据独立性强,数据的物理存取路径对用户屏蔽。
(4)语言标准化,即创建了结构化查询语言SQL(Structured Query Language)。 - 第三代数据库系统
第三代数据库系统是指以更丰富的数据模型、更强大的数据管理能力为特征,满足更广泛更复杂的新应用需求的各类数据库系统的大家族。这些新的数据库系统包括:面向对象数据库、分布式数据库、并行数据库、统计数据库、空间数据库等。
第三代数据库管理系统的三个基本特征:
(1)第三代数据库系统应支持数据管理,对象管理和知识管理。
(2)第三代数据库系统必须保持或继承第二代数据库系统的技术。即必须保持第二代数据库系统的非过程化数据存取方式和数据独立性等特征。
(3)第三代数据库系统必须对其他系统开放。数据库系统的开放性表现在:支持数据库语言标准,支持网络标准,系统具有良好的可移植性、可连接性、可扩展性和互操作性等。
1.5.2 数据库系统主要研究领域
- DBMS软件研制。
DBMS是数据库系统的基础与核心,开发可靠性好、效率高、功能齐全的DBMS始终是数据库领域研究的重要内容。并且为了充分发挥数据库的应用功能,还需开发一些必须能在DBMS上运行的软件系统。 - 数据库应用系统的设计与开发。
在DBMS支持下,设计与开发满足用户要求的数据库应用系统,这是数据库领域研究的另一个重要内容。 - 数据库基础理论。自关系数据模型提出以来,很长一段时间内,数据库理论研究主要集中在数据理论上,包括关系数据模型、规范化理论等。随着新的数据模型的提出,近年来开始了对与新型数据库的理论研究。