1.1 数据库系统概述
1.1.1 数据库的4个基本概念
-
数据 (data)
数据是数据库中存储的基本对象。描述事物的符号记录称为数据。
数据的含义称为数据的语义,数据与其语义是不可分的。
在日常生活中,人们可以直接用自然语言来描述事物;而在计算机中用记录来描述,记录是计算机中表示和存储数据的一种格式和一种方法。
-
数据库 (DataBase,DB)
数据库是存放数据的仓库。
为什么建立数据库?收集并抽取出一个应用所需要的大量数据之后,应将其保存起来,以供进一步加工处理,抽取有用信息。
数据库是长期存储在计算机内、有组织的、可共享的大量数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
-
数据库管理系统 (DataBase Management System,DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
数据库管理系统的主要功能:
-
数据定义功能
-
数据组织、存储和管理
-
数据操纵功能
(提供数据操纵语言DML,进行查询、插入、删除和修改等)
-
数据库的事务管理和运行管理
(数据库在建立、运用和维护时,由数据库管理系统统一管理和控制,以保证事务的正确运行)
-
数据库的建立和维护功能
-
其他功能
-
-
数据库系统 (DataBase System,DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
在一般不引起混淆的情况下,人们常常把数据库系统简称为数据库。
1.1.2 数据库管理技术的产生和发展
数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | |
---|---|---|---|
应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件管理 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 |
数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 某一应用 | 现实世界(一个部门、企业、跨国组织等) |
数据的共享程度 | 无共享,冗余度极大 | 共享性差,冗余度大 | 共享性高,冗余度小 |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 |
数据的结构化 | 无结构 | 记录内有结构、整体无结构 | 整理结构化,用数据模型描述 |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
1.1.2 数据库系统的特点
-
数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。
-
数据的共享性高、冗余度低且易扩充
数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
数据面向整个系统,是由结构的数据 => 数据库系统弹性大,易于扩充。
-
数据独立性高
数据独立性包括物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
数据帝理性是由数据库管理系统提供的二级映像功能来保证的。
-
数据由数据管理系统统一管理和控制
-
数据的安全性保护
数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。
-
数据的完整性检查
数据的完整性指数据的正确性、有效性和相溶性。
-
并发控制
-
数据库恢复
-
数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
1.2 数据模型
数据模型是一种模型,是对现实世界数据特征的抽象,是对现实世界的模拟,是数据库系统的核心和基础。
1.2.1 两类数据模型
通常,将现实世界抽象为信息世界,将信息世界转换为机器世界。
概念模型(信息模型)
按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型和物理模型
逻辑模型:层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型。按计算机系统的观点对数据建模,用于数据库管理系统的实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
1.2.2 概念模型
-
实体:客观存在并可相互区别的事物称为实体。
一个职工、一个学生、一个部门、一门课…
-
属性:实体所具有的某一特性称为属性。
学生实体的组成属性:学号、姓名、性别、出生年月、所在院系、时间…
-
码:唯一表示实体的属性称为码。
学号是学生实体的码。
-
实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
学生(学号,姓名,性别,出生年月,所在院系,入学时间)=> 一个实体型
-
实体集:同一类型实体的集合称为实体集。
全体学生就是一个实体集。
-
联系:现实世界中事物内部及事物之间的联系 => 实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
实体之间的联系由一对一、一对多和多对多等多种类型。
概念模型的一种表示方法 => E-R图(实体-联系方法)
1.2.3 数据模型的组成要素
数据模型是严格定义的一组概念的集合,通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
-
数据结构【第三章】
数据结构描述数据库的组成对象以及对象之间的联系。
-
数据操作【第三章】
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
-
数据的完整性约束条件【第二章+第五章】
数据的完整性约束条件是一组完整性规则。
1.2.4 常用数据模型
基本层次联系是指两个记录以及他们之间的一对多(包括一对一)的联系。
-
层次模型
层次模型满足以下两个条件:
- 有且只有一个结点没有双亲结点(根结点)
- 根结点意外的其他结点有且只有一个双亲结点
子女结点与双亲结点的联系是唯一的。
优点:
- 数据结构比较简单清晰
- 查询效率高
- 提供了良好的完整性支持
缺点:
- 不适合表示非层次性的联系(如多对多联系)
- 如果一个结点本身具有多个双亲结点,智能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。
- 查询子女结点必须通过双亲结点。
- 命令趋于程序化。
-
网状模型
网状模型满足以下两个条件:
- 允许一个以上的结点无双亲(多个根结点)
- 一个结点可以有多个双亲
子女结点和双亲结点的联系可以不唯一。
优点:
- 能够更为直接地描述现实世界。
- 具有良好的性能,存取效率较高。
缺点:
- 结构较为复杂。
- 编写需要嵌入高级语言,不易用户掌握和使用。
- 记录之间的联系是通过存取路径实现的,用户必须了解系统结构的细节,加重了编写应用程序的负担。
-
关系模型(1.2.7)
-
面向对象数据模型
-
对象关系数据模型
-
半结构化数据模型
1.2.7 关系模型
关系模型的数据结构:
- 关系:一个关系对应一张表。
- 元组:表中的一行为一个元组。
- 属性:表中的一列为一个属性,给每一个属性起一个名称即为属性名。
- 码(码键):表中的某一个属性组,可以是唯一确定一个元组。
- 域:域是一组具有相同数据类型的值的集合,属性的取值范围来自某个域。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,一般表示为 关系名(属性1,属性2,属性3,…,属性n)。
关系模型要求关系必须是规范化的,即关系必须满足一定的规范条件。其中一条为关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。
关系模型的数据操作与完整性约束:
- 数据操作是集合操作,操作对象和操作结果都是关系,主要包括查询、插入、删除和更新数据等,操作必须满足关系的完整性约束条件。
- 关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义完整性。【第二章+第五章】
优点:
- 关系模型建立在严格的数学概念的基础上。
- 概念单一,数据结构简单、清晰,用户易懂易用。
- 存取路径对用户透明,用户不需要详细说明数据的查找方式,具有更高的数据独立性、更好的安全保密性,简化了工作。
缺点:
- 存取路径对用户透明,查询效率不佳。
- 为提高性能,数据库管理系统必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
1.3 数据库系统的结构
1.3.1 数据库系统模式的概念
数据库模型中有“型”(type)和“值”(value)的概念。
模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。
模式的一个具体值称为模式的实例,同一个模式可以有很多实例。
模式是相对稳定的,而实例是相对变动的。
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成(数据的三个抽象级别)。
-
模式(逻辑模式)【数据库的中心和关键】
模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时,不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
数据库管理系统提供数据模式定义语言(模式DDL)来严格地定义模式。
-
外模式(子模式/用户模式)
外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。一个数据库可以由多个外模式。由于外模式是各个用户的数据视图,不同用户在各种方面的要求存在差异,则其外模式的描述是不同的(即使是对模式中的同一数据)。
同一外模式可以为某一用户的多个应用系统所使用,但是一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有力措施。
数据库管理系统提供数据外模式定义语言(外模式DDL)来严格地定义外模式。
外模式面向具体的应用程序,定义在逻辑模式之上,独立于存储模式和存储
-
内模式(存储模式)
内模式是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
一个数据库只有一个内模式。
内模式依赖于它的全局逻辑结构,独立于外模式,也独立于具体的存储设备。
1.3.3 数据库的二级映像功能与数据独立性
数据库管理系统在三级模式之间提供了两层映像:外模式/模式映像、模式/内模式映像。
-
外模式/模式映像
对应于同一个模式可以有任意多个外模式。
对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系,这些映像定义通常包含在各自外模式的描述中。
当模式改变时,由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
-
模式/内模式映像
模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。
由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
1.2 数据库系统的组成
- 硬件平台及数据库
- 软件
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 具有与数据库接口的高级语言机器编译系统,便于开发应用程序
- 以数据库管理系统为核心的的应用开发工具
- 为特定应用环境开发的数据库应用系统
- 人员
- 数据库管理员(DataBase Administrastor,DBA)
- 系统分析员和数据库设计人员
- 应用程序员
- 用户