1.数据库系统概述
1.1数据库的4个基本概念
1)数据:描述事物的符号记录称为数据,可以是数字、文字、图像、音频等。
数据和关于数据的解释是不可分的;数据的含义称为数据的语义,数据与其语义是不可分的。
2)数据库:存放数据的仓库。将数据按一定格式存放在计算机存储设备上。具有永久存储、有组织和可共享三个基本特点。
3)数据库管理系统:位于用户和操作系统之间的一层数据管理软件。主要功能包括:
(1)数据定义功能:提供数据定义语言,用户可通过它对数据库中的数据对象的组成和结构进行定义。
(2)数据组织、存储和管理:数据库管理系统要确定以何种文件结构和存取方式在存储集上组织这些数据,如何实现数据之间的联系。数据存储和组织的基本目标是提高存储空间利用率和存储效率。
(3)数据操纵功能:用户通过它操纵数据,实现对数据库的基本操作,如查询、存储、修改等。
(4)数据库的事务管理和运行管理:由它对数据库进行统一管理和控制,以保证事物的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及放生故障后的系统恢复。
(5)数据库的建立和维护功能:包括初始数据的输入、转换功能,数据库的存储、恢复功能,数据库的重组织功能和性能监视、分析功能等。
(6)其他功能:其他功能包括数据库管理系统与网络中其他软件系统的通信功能,一个数据库管理系统与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。
4)数据库系统:数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
其中数据库提供数据的存储功能,数据库管理系统提供数据的组织、存取、管理和维护等基础功能,数据库应用系统根据应用需求使用数据库,数据库管理员负责全面管理数据库系统。
1.2数据管理技术的产生和发展
数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。
1)数据库系统的主要特点:
(1)数据结构化:数据库的主要特征之一,也是数据库与文件系统的本质区别。
(2)数据的共享性高、冗余度低且易扩充:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
(3)数据独立性高:数据独立性包括数据的物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
(4)数据由数据库管理系统统一管理和控制
2)数据库管理系统提供以下数据控制功能:
(1)数据的安全性保护:保护数据以防止不合法使用造成的数据泄密和破坏。
(2)数据的完整性检查:数据的正确性、有效性和相容性。
(3)并发控制:多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(4)数据库恢复:将数据库从错误状态恢复到某一已知的正确状态(完整状态或一致状态)的功能。
2.数据模型
数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据核对数据进行操作的。
数据模型是数据库系统的核心和基础,应满足三方面要求:
(1)比较真实地模拟真实世界
(2)容易为人所理解
(3)便于在计算机上实现
数据模型分为两类:
(1)概念模型,也称信息模型:按用户的观点对数据和信息建模,主要用于数据库设计。
(2)逻辑模型和物理模型:前者是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现;后者是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,具体实现是数据库管理系统的任务。
人们常常将现实世界抽象为信息世界(概念模型),再将信息世界转换为机器世界(数据模型)。
2.1信息世界中的基本概念
1)实体:客观存在并可相互区别的事物称为实体
2)属性:实体所具有的某一特征称为属性。
3)码:唯一标识实体的属性集称为码。
4)实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
5)实体集:同一类型实体的集合称为实体集。
6)联系(一对一、一对多、多对多):实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
2.2概念模型的一种表示方法
实体-联系方法:使用E-R图来描述现实世界的概念模型。
2.3数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
1)数据结构:数据结构描述数据库的组成对象以及对象之间的联系,是刻画模型性质最基本的方面。
2)数据操作:数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。主要包括查询和更新两大类操作。
3)数据的完整性约束条件:是一组完整性规则,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的准确、有效和相容。
数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件;应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
2.4常用的数据模型
1)层次模型
层次模型用树形结构来表示各类实体以及实体间的联系,必须满足以下两个条件:
(1)有且只有一个结点没有双亲结点,这个结点称为根结点
(2)根以外的其他结点有且只有一个双亲结点
层次数据库系统只能处理一对多的实体联系。
层次模型的优点主要有:
(1)层次模型的数据结构比较简单清晰
(2)层次数据库的查询效率高
(3)层次数据模型提供了良好的完整性支持
层次模型的缺点主要有:
(1)现实世界中很多联系是非层次性的,不适合用层次模型表示
(2)如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙
(3)查询子女结点必须通过双亲结点
(4)由于结构严密,层次命令趋于程序化
2)网状模型
在数据库中,网状模型必须满足以下两个条件:
(1)允许一个以上的结点无双亲
(2)一个结点可以有多于一个的双亲
网状模型的优点主要有:
(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系
(2)具有良好的性能,存取效率较高
网状模型的缺点主要有:
(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
(2)网状模型的DDL、DML复杂,并且要嵌入某一种高级语言(如COBOL、C)中,用户不容易掌握,不容易使用。
(3)由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,加重了编写应用程序的负担。
层次模型和网状模型统称为格式化模型。
3)关系模型:每个关系的数据结构是一张规范化的二维表。
(1)元组:表中的一行即为一个元组。
(2)属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。
(3)码:也称为码键,表中的某个属性组,它可以唯一确定一个元组。
(4)域:域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域,如人的年龄一般在1~120岁之间,性别的域是(男,女)。
(5)分量:元组中的一个属性值。
(6)关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)
关系模型要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。
关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。
关系模型的优点主要有:
(1)关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
(2)关系模型的概念单一,无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易易用。
(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
关系模型的缺点主要有:
(1)由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。
(2)为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。
3.数据库系统的结构
3.1数据库系统模式的概念
1)型:对某一类数据的结构和属性的说明
2)值:对型的具体赋值
3)模式:数据库中全体数据的逻辑结构和特征的描述,仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例。
模式是相对稳定的,而实例是相对变动的。
数据库管理系统在体系结构上采用三级模式结构,提供两级映像功能。
3.2数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成。
1)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。
2)外模式也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,对不同用户,其外模式的描述是不同的,同一外模式为多个应用系统所使用,但一个应用系统只能有一个外模式。
3)内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
3.3数据库的二级映像功能与数据独立性
为保证数据库系统中数据的逻辑独立性和物理独立性,数据库管理系统在三级模式之间提供了两层映像:
1)外模式/模式映像
一个模式可以有多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映像,定义了该外模式与模式之间的对应关系。
模式改变时,各个外模式/模式映像必须相应改变,外模式可以保持不变。应用程序是依据数据的外模式编写的,因此应用程序不必修改,保证了数据的逻辑独立性。
2)模式/内模式映像
模式/内模式映像是唯一的。
数据库的存储结构改变时,模式/内模式映像作相应改变,模式和应用程序都不必改变,保证了数据的物理独立性。
4.数据库系统人员职责
1)数据库管理员:负责全面管理和控制数据库系统
(1)决定数据库中的信息内容和结构
(2)决定数据库的存储结构和存取策略
(3)定义数据的安全性要求和完整性约束条件
(4)监控数据库的使用和运行
(5)数据库的改进和重组、重构
2)系统分析员
(1)负责应用系统的分析需求和规范说明
(2)要和用户及数据库管理员相结合,确定系统的硬件软件配置
(3)参与数据库系统的概要设计
3)数据库设计人员:负责数据库中数据的确定以及数据库各级模式的设计
4)应用程序员:负责设计和编写应用系统的程序模块,并进行调试和安装
5)用户:通过应用系统的用户接口使用数据库