第1章 绪论
1.1 数据库系统概述⚓
1.1.1 数据库的4个基本概念⚓
- 数据。描述事物的符号记录称为数据。数据的含义称为数据的语义,数据与其语义是不可分的。
-
数据库。数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。三个特点:永久存储、有组织、可共享。
-
数据库管理系统(DBMS)。数据库管理系统是位于用户和操作系统之间的一层管理软件。管理的是结构化的数据。主要功能:
- 数据定义功能。提供数据定义语言/数据描述语言 DDL,作用是定义数据库。
- 数据操纵功能。数据操纵语言 DML。
- 数据库的事务管理和运行管理。
- 数据库的建立和维护功能。
- 数据组织、存储和管理。
要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法来提高存取效率。 -
其他功能:
- 数据通信。
-
数据库系统(DBS)。数据库系统是由计算机硬件、数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator)组成的存储、管理、处理和维护数据的系统。数据系统的核心是DBMS。特点:
- 数据共享
- 减少数据冗余
- 具有较高的数据独立性
- 增强了数据安全性和完整性保护
1.1.2 数据管理技术的产生和发展⚓
数据管理的三个阶段的比较
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | |
---|---|---|---|
数据面向的对象 | 某一应用程序 | 某一应用 | 现实世界 |
数据的共享程度 | 无共享,冗余度极大 | 共享差,冗余度大 | 共享性高,冗余度小 |
数据的独立性 | 不独立 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 |
数据的结构化 | 无结构 | 记录内有结构、整体无结构 | 整体结构化,用数据模型描述 |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
从 文件系统 到数据库系统 标志着数据管理技术的飞跃。
文件系统和数据库系统的主要区别是组织数据的方式不同。文件系统是面向应用组织数据的,而数据库系统是面向全局组织数据的,这种组织方式可以解决数据冗余问题。两者的本质区别是 数据库系统实现整体数据的结构化。
在文件管理阶段,文件之间是相互联系的,在数据库管理阶段,一个数据库可能包含多个文件,它们之间也是有联系的。
1.1.3 数据库系统的特点⚓
-
数据结构化。
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。所谓整体结构化是指数据库中的数据不再是仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是有联系的。
-
数据的共享性高、冗余度低且易扩充
-
数据独立性高。包括两个方面:
- 物理独立性 是指用户的应用程序与数据库中数据的物理存储是相互独立的。应用程序不需要了解数据在数据库中是怎样存储的。
- 逻辑独立性 是指用户的应用程序与数据库的逻辑结构是相互独立的。
-
数据由数据库管理系统统一管理和控制:
- 数据的安全性保护。防止不合法使用造成数据泄密和破坏。
- 数据的完整性检查。完整性是指数据的正确性、有效性和相容性。
- 并发控制
- 数据库恢复。具有将数据库从错误状态恢复到某一已知的正确状态的功能。
数据共享体现在以下几个方面:
- 多个应用可以使用同一数据文件的记录、数据项值
- 在同一时刻多个用户可以存取同一数据
- 当应用需求改变或增加时,只需重新选取不同子集或增加一部分数据便可满足新的需求
数据库的出现使信息系统从加工数据的程序为中心转向围绕共享的数据库未中心的新阶段。
1.2 数据模型⚓
独立于计算机系统,只用于描述某个特定组织所关心的信息结构的模型,称为概念模型;直接面向数据库的逻辑结构的模型,称为数据模型。 数据模型是信息世界中表示实体类型及实体间联系的模型。
数据模型是对现实世界数据特征的抽象。数据模型是数据库系统的核心和基础。
数据模型按照模型应用的不同目的可分为两大类:
- 概念模型。也称信息模型,从用户观点建模,用于数据库设计。
- 逻辑模型和物理模型。
逻辑模型和物理模型:
- 逻辑模型。包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。从计算机观点建模,用于数据库管理系统的实现。逻辑模型的区别是它们用不同的方式表示是数据之间的联系,比如层次模型用“树”结构,关系模型用“二维表”结构。
- 物理模型。数据如何存取,面向计算机系统,具体实现是数据库管理系统的任务。
1.2.2 概念模型⚓
概念模型属于信息世界的模型,是现实世界到机器世界的一个中间层次。 概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。 它是独立于具体的机器和 DBMS,独立于计算机系统的模型。
信息世界的的基本概念:
- 实体(entity)。客观存在并可相互区别的事物称为实体。同一类型实体是通过属性来区分的。
- 属性(attribute)。实体所具有的 某一特性称为属性。
- 码(key)。唯一标识实体的属性集称为码。
- 实体型(entity type)。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
- 实体集(entity set)。同一类型实体的集合称为实体集。
- 联系(relationship)。实体内部的联系通常是指组成实体的各属性直接的联系(数据项之间的联系),实体之间的联系通常指不同实体集之间的联系(记录间的联系,一对一,一对多,多对多)。
概念模型的表示方法很多,最为常用的是实体-联系方法
。该方法用 E-R 图来描述现实世界的概念模型,E-R 方法也称为 E-R 模型
。详见第 7 章。
1.2.3 数据模型的组成要素⚓
数据模型通常由数据结构、数据操作和数据的完整性约束条件 三部分组成。
- 数据结构。数据结构描述数据库的组成对象以及对象之间的联系。数据结构是刻画一个数据模型性质最重要的方面,是对系统静态特性的描述。
- 数据操作。数据操作是指对数据库中各种对象的实例允许操作的集合,包括操作及有关的操作规则。是对系统动态特性的描述。
- 数据的完整性约束条件。是一组完整性规则。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据库状态以及状态的变化,以保证数据的正确、有效和相容。
1.2.4 常用的数据模型⚓
层次模型和网状模型统称为格式化模型。
格式化模型中数据结构的单位是基本层次联系。基本层次联系
是指两个记录及它们之间的一对多(包括一对一)联系。
1.2.5 层次模型⚓
层次模型用树形结构表示各类实体以及实体间的联系。
层次模型的数据结构⚓
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
- 有且仅有一个结点没有双亲结点,称之为根节点。
- 根以外的其它结点有且仅有一个双亲结点。
在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。
层次模型的一个基本特点是,任何一个给定的记录值只能按其层次路径查看,没有一个子女记录能够脱离双亲记录值而独立存在。
层次模型的数据操作和完整性约束⚓
数据操作主要有 查询、插入、删除和更新。后三者操作是要满足层次模型的完整性约束条件。
层次模型的优缺点⚓
优点:
- 数据结构比较简单清晰。
- 查询效率高。
- 提供了良好的完整性支持。
缺点:
- 现实世界中很多联系是非层次的。
- 如果一个结点具有多个双亲结点,用层次模型表示这类联系就很笨拙。
- 查询子女结点必须通过双亲结点。
- 由于结构严密,层次命令趋于程序化。
1.2.6 网状模型⚓
网状模型的数据结构⚓
在数据库中,把满足下面两个条件的基本层次联系的集合为网状模型:
- 允许一个以上的结点无双亲。
- 一个结点可以有多于一个的双亲。
层次模型实际上是网状模型的一个特例。网状模型中子女结点和双亲结点的联系可以不唯一。
网状模型的数据操作和完整性约束⚓
一般来说没有层次模型那样严格的完整性约束条件。但是具体的网状数据库系统对数据操作都加了一定的限制,提供了一定的完整性约束。
网状模型的优缺点⚓
优点:
- 能够更为直接地描述现实世界
- 具有良好的性能,存取效率较高。
缺点:
- 结构比较复杂
- DDL、DML 复杂
- 由于记录之间的联系是通过存取路径实现的,用户必须了解系统结构的细节,加重了编程负担
1.2.7 关系模型⚓
一个关系模型由若干个关系模式组成,不同关系模式之间的联系是通过公共属性来实现的。
术语:
- 关系(relation):一个关系对应通常说的一张表
- 元组(tuple):表中的一行即为一个元组
- 属性(attribute)表中的一列即为一个属性,给每个属性起一个名称即属性名
- 码(key):也称码键。表中的某个属性组,可以唯一确定一个元组。
- 域(domain):一组具有相同数据类型的值的集合。属性的取值范围来自某个域。如系名的域是一个学校所有系名的集合
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,一般表示为
关系名(属性 1,属性 2,...)
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,其中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。即不允许表中还有表。
关系模型的数据操作和完整性约束⚓
查询、插入、删除和更新。操作要满足关系的完整性约束条件。完整性约束条件分为三大类:实体完整性、参照完整性和用户定义的完整性。
关系模型中的数据操作是集合操作,操作对象和结果都是关系,不像格式化模型中那样是单记录的操作方式。关系模型把存取路径向用户隐蔽起来,大大提高了数据的独立性,提高了用户生产率。
关系模型的优缺点⚓
优点:
- 建立在严格的数学概念的基础上
- 概念单一
- 存取路径对用户透明
缺点:
- 存取路径对用户是隐藏的,查询效率往往不如格式化数据模型。
- 增加了开发数据库管理系统的难度。
面向对象模型的优缺点⚓
优点:
- 能够完整描述现实世界的数据结构,具有丰富的表达力,能表达嵌套、递归的数据结构。
缺点:
- 涉及的知识面较广,用户较难理解
格式化数据库采用的数据操纵语言是过程性的语言,关系型DBMS采用的数据操纵语言是非过程性语言; 格式化数据库中记录之间的联系是采用链接方法实现的,因此存取效率较高,关系型数据库中记录之间的联系是采用关系中的公共属性实现的,存取时要做联接运算,因此存取效率较低; 关系型数据库系统采用二维表结构表示数据及联系,结构简洁。
1.3 数据库系统的结构⚓
1.3.1 数据库系统模式的概念⚓
数据模型中有”型(type)”和”值(value)”的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。
模式(schema)是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型的描述。模式的一个具体值称为模式的一个实例(instance)。同一个模式可以有很多实例。
模式是相对稳定的,实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一个时刻的状态。
虽然实际的数据库管理系统产品种类很多,但他们在体系结构上通常都具有相同的功能,即采用三级模式结构并提供两级映像功能。
1.3.2 数据库系统的三级模式结构⚓
外模式⚓
外模式也称子模式(subschema)或用户模式,它是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关数据的逻辑表示。
外模式通常是模式的子集。
数据库管理系统提供外模式数据定义语言(外模式 DDL)来严格地定义模式。
外模式 DDL 是专门定义外视图的。外视图是用户观点的数据库描述,它是数据库的局部逻辑结构。
模式⚓
模式也称逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑级上的视图。定义模式时不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
数据库管理系统提供模式数据定义语言(模式 DDL)来严格地定义模式。
IBM-database-schema:数据库模式定义如何在关系数据库中组织数据;其中包括逻辑约束,例如表名、字段、数据类型以及这些实体之间的关系。
概念模式DDL是用来描述概念视图的专用语言。概念视图是数据库的全局逻辑结构,它包括数据库中所有元素的名称、特征及其相互关系的描述,并包括数据的安全保密性和完整性以及存储安排、存取路径等信息。
内模式⚓
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
内模式DDL是用来定义内视图的数据描述语言。内视图是从物理层中分离出来的,但不是物理视图。虽然它有存储记录和块的概念,但它不受任何存储设备和设备规格(如柱面大小、磁道容量)的限制。它包括对存储记录类型、索引方法等方面的描述。
三级模式结构是对数据的三个抽象级别。
以外模式为框架的数据库是用户数据库;以模式为框架的数据库是概念数据库;以内模式为框架的数据库是物理数据库。这三层数据库中,只有物理数据库真正存在,它是存放在外存上的实际数据,其它两层数据库在外存上是不存在的,但 DBMS 能够从相应的物理数据库中构造出概念数据库和用户数据库。
1.3.3 数据库的二级映像功能与数据独立性⚓
数据库系统的三级模式是数据的三个抽象级别。为了能够在系统内部实现这三个抽象层次的联系和转换,数据库管理系统提供了两层映像,使数据库中的数据能够具有较高的逻辑独立性和物理独立性。
外模式/模式映像⚓
当模式改变时,由数据库管理员对各个 外模式/模式映像 作相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不比修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
内模式/模式映像⚓
当数据库的存储结构或存取方法发生改变时,由数据库管理员对 模式/内模式映像 做出相应改变,可以使模式保持不变,应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。
1.4 数据库系统的组成⚓
1. 硬件平台及数据库⚓
要求:
- 有足够大的内存
- 足够大的磁盘或磁盘阵列等设备存放数据库,足够大的磁带(或光盘)作数据备份
- 系统由较高的通道能力,以提高数据传送率
2. 软件⚓
主要包括:
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 具有与数据库接口的高级语言及其编译系统,便于开发应用程序
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
3. 人员⚓
-
数据库管理员
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的安全性要求和完整性约束
- 监控数据库的使用和运行
- 数据库的改进和重组
-
系统分析员和数据库设计人员。系统分析员负责应用系统的需求分析和规范说明。设计人员负责数据库中数据的确定及数据库各级模式的设计。
- 应用程序员
-
用户:
- 偶然用户
- 简单用户
- 负责用户