第1章 绪论
第一章 绪论
1.1数据库系统概述
1.1.1数据库的发展史
1.1.2数据库技术的基本术语
1.数据(Data)——是数据库中存储的基本对象。
2.数据库(DataBase)有时也简称DB,通俗的讲可以把数据库比作仓库。
数据库中的数据要求具有下面两个特性
(1)整体性:数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储
(2)共享性:数据库中的数据是为众多用户共享其信息而建立的,已经拜托了具体的程序的限制和制约,不同的用户可以按照各自的用法使用数据库中的数据。
3.数据库管理系统(DataBase Management System,DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。可以是SQL、Oracle、access
4.数据库系统(DataBase System,DBS)包括和数据库有关的整个系统,一般由数据库、数据库管理系统、应用程序、数据库管理员(DataBase Administrator,DBA)和用户(User)构成。
5.数据库技术和其他课程的关系
数据库技术是研究数据库的结构、存储、设计、管理和应用的基本理论和实现方法。
1.1.3 数据管理技术的发展
1.人工管理阶段
该阶段的特点:
1) 数据不保存
2) 只有程序的概念,没有文件概念
3) 数据面向应用
2.文件系统阶段
该阶段的特点:
1) 数据可以长期保存
2) 数据由文件系统管理
3) 数据冗余、不一致、联系差
3.数据库管理阶段
该阶段的特点:
1) 数据结构化
2) 数据共享性高
3) 数据独立性高
4) 数据由数据库管理系统(DBMS)统一管理和控制
5) 为用户提供了友好的接口
1.2 数据模型
模型是对现实世界中某个对象特征的模拟和提取。数据模型也是一种模型,它是对现实世界数据特征的抽取。具体来说,数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。
1.2.1 数据的3个范畴
1.现实世界
2.信息世界
为了正确、直观地反映客观事物及其联系,有必要对所研究的信息世界建立一个抽象模型,称为信息模型(或概念模型)
数据库技术常用到下列的一些术语:
1).实体(Entity):客观存在的、可以相互区别的事物称为实体。实体可以是具体的对象,例如一个学生、一辆汽车等。也可以是抽象的事件,如一次借书、一次足球赛等。
2).实体集(Entity Set):性质相同的同类实体的集合称为实体集。如所有的学生、全国足球联赛的所有比赛等。
3)属性(Attribute):实体有很多特征,每一个特征称为一个属性。每个属性有一个值域,器类型可以使整数型、实数型或字符串型等。如,学生有学号、姓名、年龄、性别等属性,相应的值域为字符串、整数和字符串型。
4).码(Key):能唯一标识每个实体的属性或属性集称为码
3.机器世界
数据化了的信息世界称为机器世界。信息世界的信息在机器世界中以数据形式存储。
机器世界中数据描述的术语有下面一些术语:
1).字段(Field):标记实体属性的命名单位称为字段或数据项。它是可以命名的最小信息单位。字段的命名往往和属性名相同。如学生有等字段。
2)记录(Record):字段的有序集合称为记录。一般用一个记录描述一个实体;如,一个学生记录有有序的字段集组成,即(学号、姓名、年龄、性别)。
3)文件(File):同一类记录的汇集称为文件。文件是描述实体集的;如,所有学生记录组成了一个学生文件。
4)码(Key):能唯一标识文件中每个记录的字段或字段集,称为记录的码。这个概念与实体的码相对应;如,学生的学号可以作为学生记录的码。
在数据库中,每个概念都有类型(type)和值(value)的区别。如,“学生”是一个实体类型,而具体的人“张三”、“李四”是实体值;又如“姓名”是属性类型,而“张三”是属性值。记录也有记录类型和记录值之分。
类型是概念的内涵,而值是概念的外延。
1.2.2 数据模型的组成要素及分类
为了用计算机处理现实世界中的具体问题,往往要对问题加以抽象,提取主要特征,归纳形成一个简单、清晰的轮廓,从而使复杂的问题变得易于处理,这个过程称为建立模型。
在数据库技术中,用数据模型(Data Model)的概念描述数据库的结构与语义,对现实世界进行抽象。
数据模型通常由数据结构、数据操作和完整性约束三要素组成。
数据结构描述的是系统的静态特性,即数据对象的数据类型、内容、属性,以及数据对象之间的联系。
数据操作描述的使系统的动态特性,是对各种对象的实例允许执行的操作集合。数据操作主要分为更新和检索两大类,更新包括插入、删除和修改。
完整性约束是一组完整性规则的集合,它是对数据模型中的数据及其联系所具有的制约和依赖性规则,用来保证数据的正确性、有效性和相容性。
第一类模型是概念模型,也称信息模型,它是按用户的关键对数据和信息建模,主要用于数据库设计。E-R方法(E-R图)或面向对象的数据模型(UML对象模型)
数据模型是数据库系统的核心和基础,在各种计算机上实现的DBMS软件都是基于某种数据模型的。
1.2.3 常用的数据模型
数据模型是数据库系统的核心和基础,在各种计算机上实现的DBMS软件都是基于某种数据模型的。目前,数据库中最常用的逻辑数据模型是层次模型、网状模型、关系模型、面向对象模型和对象关系模型。
数据结构、数据操作、完整性约束条件这3个方面的内容完整描述了一个数据模型,其中数据结构是歌华模型性质的最基本的方面。
1.层次模型
层次模型实际上是一个树形结构,它是以记录为结点,以记录之间的联系为边的有向树。在层次模型中,最高层只有一个记录,该记录称为根记录,根记录以下的记录称为从属记录。一般来说,根记录可以有多个从属记录,每一个从属记录又可以有任意多个低一级的从属记录等。
层次模型具有两个较为突出的问题。首先,在层次模型中具有一定的存取路径,它仅允许自顶向下的单项查询。其次,层次模型比较适合于表示数据记录之间的一对多联系,而对于多对多、多对一的联系,会出现较多的时间冗余。当然,不能否认层次模型是模拟现实世界中具有层次结构的一种很自然的方法。
2.网状结构
在网状模型中用结点表示实体,用系(Set)表示两个实体之间的联系。
网状模型是一种较为通用的模型,从图论的观点看,它是一个不加任何条件的无向图。
网状图与层次模型的根本区别如下:
(1) 一个子结点可以有多个父节点
(2) 在两个结点之间可以有两种或多种联系
显然,层次模型是网状模型的特殊形式,网状模型是层次模型的一般形式。
以两个结点和一个系构成的结构是网状模型中的基本结构,一个结点可以处于几个基本结构之中,这样就形成了网状结构。
网状模型对数据的查询可以用下面两种方式:
(1) 从网络中的任一结点开始查询
(2) 沿着网络中的路径按任意方向查询
3.关系模型
若把实体-联系(E-R)模型中的实体和联系均用二维表表示,其数据模型就成为关系模型。
在关系模型中,通常把二维表称为关系,数据的关系模型是由若干个关系模型(记录型)组成的集合。表中的每一行称为一个元组,相当于通常的记录值。每一列称为一个属性,相当于记录中的一个数据项。一个关系若有k个属性,则成为k元关系。
对于一个关系,它有如下性质:
(1) 没有两个元组在各个属性上的值是完全相同的。
(2) 行的次序无关
(3) 列的次序无关
关系模型具有以下特点:
(1)描述的一致性:无论实体还是联系都用一个关系来描述,保证了数据操作语言相应的一致性。对于每一种基本操作功能(插入、删除、查询等),都只需要一种操作运算即可。
(2)利用公共属性连接:关系模型中各个关系之间都是通过公共属性发生联系的。例如学生关系和选课关系是通过公共属性“学号”连接在一起,而选课关系又可以通过“课程号”与课程关系发生联系。
(3)结构简单直观:采用表结构,用户容易理解,有利于和用户进行交流,并且在计算机中实现也极为方便。
(4)有严格的理论基础:二维表的数学基础是关系数据理论,对二维表进行的数据操作相当于在关系理论中对关系进行运算。这样,在关系模型中整个模型的定义与操作均建立在严格的数学理论基础之上。
(5)语言表达简练:在进行数据查询时,不必像前两种模型那样需要实现规定路径,而用严密的关系运算表达式来描述查询,从而使查询语句的表达非常简单、直观。
关系模型的缺点是在执行查询操作时需要执行一系列的查表、拆表、并表操作,故执行时间较长,采用查询优化技术的当代关系数据库系统的查询操作基本上克服了速度慢的缺陷。
1.3 数据库系统结构
DBMS的主要功能就是允许用户逻辑地处理数据,而不必涉及这些数据在计算机中是如何存放的。
1.3.1 三级模式结构
数据库系统的三级模式结构由外模式(用户级)、模式(概念极)和内模式(物理极)组成。
1.模式
模式(Schema)也称为逻辑模式或概念模式,是对数据库中全体数据逻辑结构和特征的描述,描述现实世界中的实体及其性质与联系,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑极上的视图。一个数据库只有一个模式。在定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与联系有关的安全性、完整性要求。
数据库按外模式的描述向用户提供数据,按内模式的描述存储数据,而模式是这两者的中间级,它既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的的应用开发工具及高级程序设计语言无关,这样使得外模式与内模式相互独立,且通过模式相互联系。
特定时刻存储在数据库中的信息集合称为数据的一个实例,而数据库的总体设计称为数据库模式。
2.外模式
外模式(External Schema)也称子模式或用户模式,它是用于描述用户看到货使用的数据的局部逻辑结构和特性的,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。
外模式是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式是保证数据库安全的重要措施,每个用户只能看见和访问所对应的外模式中的数据,而数据库中的其他数据均不可见。
3.内模式
内模式(Internal Schema)也称为存储模式,是整个数据库的最底层表示,不同于物理层,它假设外村是一个无线的线性地址空间。一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
内模式定义的使存储记录的类型、存储域的表示、存储记录的物理顺序、指引元、索引和存储路径等数据的存储组织。
外模式 |
模式 |
内模式 |
数据库用户所看到的数据视图,它是用户和数据库的接口 |
所有用户的公共视图 |
数据在数据库内部的表示方式 |
可以有多个外模式 |
只有一个模式 |
只有一个内模式 |
每个用户只关心与他有关的外模式,屏蔽大量无关的信息,有利于数据保护 |
以某一种数据模式为基础,同一综合考虑所有用户的需求,并将这些需求有机地结合成一个逻辑实体 |
|
面向应用程序和最终用户 |
有数据库管理员(DBA)决定 |
有DBMS决定 |
1.3.2 数据库系统的二级独立性
数据库系统的二级独立性是指物理独立性和逻辑独立性。三个抽象极间通过二级映像(外模式/模式映像、模式/内模式映像)进行相互转换,使得数据库的三级形成一个统一的整体。
1.物理独立性
物理独立性是指用户的应用程序与存储在硬盘上数据库中的数据是相互独立的。
2.逻辑独立性
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。当数据库的逻辑结构改变时,应用程序不需要改变。
1.3.3 数据库系统的二级映像
数据库系统的三级模式是对数据库中数据的三级抽象,用户可以不必考虑数据的物理存储细节,而把土居的数据组织留给DBMS管理。为了能够在内部实现数据库的3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像,即外模式/模式映像和模式/内模式映像。
1.外模式/模式映像
外模式/模式映像功能博阿正了数据与程序的逻辑独立性。
2.模式/内模式映像
模式/内模式映像功能保证了数据与程序的物理独立性。
1.4 数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。根据数据模型不同,DBMS可以分成层次型、网状型、关系型和面向对象型等。
1.4.1 DBMS的主要功能
1.数据库的定义功能
DBMS提供数据定义语言(Data Definition Language,DDL)定义数据库的三级结构,包括外模式、模式、内模式及其相互之间的映像,定义数据的完整性、安全性等约束。
2.数据库的操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库中数据的操作。实现对数据库中数据的操作。
3.数据库的控制功能
数据汞的共享是并发的(Concurrency)共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中的同一个数据。
(1) 数据的完整性控制。
数据的完整性指数据的正确性、有效性和相容性。
(2) 数据的安全性控制
数据的安全性是指保护数据,防止不合法的使用造成的数据泄密和破坏。
(3) 并发控制
(4) 数据库的恢复
4.数据库的存储功能
5.数据的维护功能
(1)数据装载程序(Loading):把文件中的数据转换成数据库中的格式,并装入到数据库中。
(2)备份程序(Backup):把数据库完整地转储到另外一个存储器上,产生一个备份副本。在系统发生灾难性故障时,可以利用备份的数据库来恢复系统。
(3)文件重组织程序:把数据库中的文件重新组织成其他不同形式的文件,以改善系统的性能。
(4)性能监控程序:监控用户使用数据库的方式是否符合要求,收集数据库运行的统计数据。DBA根据这些统计数据做出判断,决定采用何种重组织方式来改善数据库运行的性能。
6.数据字典
数据库系统中存放三级结构定义的数据库称为数据字典(Data Dictionary,DD)。对数据库的操作都要通过访问数据字典才能实现。通常,数据字典中还存放数据库运行时的统计信息,例如记录个数、访问次数等。
1.4.2 DBMS的组成概述
DBMS主要由查询处理程序、存储管理程序和事务管理程序组成。
1.查询
对数据的查询有两种生成方式:一是通过通用的查询接口。而是通过应用程序的接口,典型的DBMS允许程序员通过应用程序调用DBMS来查询数据库。
2.更新
对数据的插入、修改和删除等操作统称为更新。
3.模式更新
数据库的模式就是指数据的逻辑结构。
查询处理程序 的任务是把输入的数据库操作(包括查询、更新等)转换成一系列对数据库的请求。查询处理最复杂、最重要的部分是查询优化。
存储管理程序 的功能是从数据库中获取上层想要查询的数据,并根据上层的更新请求更新相应的信息。有时为了提供效率,DBMS往往直接控制磁盘存储器。
事务管理程序 负责系统的完整性。它必须保证同时运行的若干个数据库操作不相互冲突,保证系统在出现故障时不丢失数据。