第4章数据库设计基础Word文档下载推荐.docx
《第4章数据库设计基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第4章数据库设计基础Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
b.数据操纵语言
语言负责数据的操纵,包括查询及增、删、改等操作。
c.数据控制语言
负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。
⑧数据语言的两种结构形式:
a.交互式命令语言
语言简单,能在终端上即时操作,又称为自含型或自主型语言。
b.宿主型语言
一般可嵌入某些宿主语言(HostLanguage)中,如C/C++、Java和COBOL等高级过程性语言中。
⑨SQL(结构化查询语言)是一种介于关系代数和关系演算之间的非过程性操作语言,不仅具有丰富的查询功能,还兼具数据定义和数据控制功能。
此外,数据库管理系统还有为用户提供服务的服务性(Utility)程序,包括数据初始装入程序、数据转存程序、性能监测程序、数据库再组织程序、数据转换程序、通信程序等。
(4)数据库管理员(DBA)
①数据库管理员是对数据库的规划、设计、维护、监视等进行专业管理的人员。
②数据库管理员的主要工作:
a.数据库设计
数据库管理员主要任务是进行数据模式的设计,由于数据库的集成与共享性,需要专业人员对多个应用的数据库需求作全面规划、设计与集成。
b.数据库维护
DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转存等实施与维护。
c.改善系统性能,提高系统效率
DBA必须随时监视数据库运行状态,不断调整内部结构,使系统保持最佳状态与最高效率。
(5)数据库系统
数据库系统由数据库、数据库管理系统、数据库管理员、硬件平台、软件平台构成一个以数据库为核心的完整的运行实体。
①硬件平台
a.计算机
计算机是系统中硬件的基础平台,目前常用的有微型机、小型机、中型机、大型机及巨型机。
b.网络
数据库系统今后都会以建立在网络上为主,结构形式以客户/服务器方式和浏览器/服务器方式为主。
②软件平台
a.操作系统
系统的基础软件平台,目前常用的有各种UNIX(包括Linux)与Windows两种。
b.数据库系统开发工具
为开发数据库应用程序所提供的工具,包括过程性程序设计语言如C/C++、Java等,也包括可视化开发工具VB、PB、Delphi等,它还包括与InternetWeb有关的HTML及XML等以及一些专用开发工具。
c.接口软件
在网络环境下数据库系统中数据库与应用程序,数据库与网络间存在着多种接口,这些接口软件包括ODBC、JDBC、OLEDB、CORBA、COM、DCOM等。
(6)数据库应用系统
数据库应用系统由:
数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面组成。
应用软件是由数据库系统所提供的数据库管理系统(软件)及数据库系统开发工具所书写而成,而应用界面大多由相关的可视化工具开发而成。
数据库应用系统的结构如图4-1所示。
图4-1数据库系统的软硬件层次结构图
2.数据库系统的发展
(1)文件系统阶段
数据库系统发展的初级阶段,提供了简单的数据共享和数据管理能力,无法提供完整的、统一的、管理和数据共享的能力。
附属于操作系统而不成为独立的软件,不是真正的数据库系统。
(2)层次数据库与网状数据库系统阶段
为统一管理与共享数据提供了有力支撑,这两种系统存在的主要不足是它们完全脱胎于文件系统,受文件的物理影响很大,对数据库使用带来诸多不便,且数据库模式构造繁琐,不宜于推广使用。
(3)关系数据库系统阶段
结构简单,使用方便,逻辑性强物理性少,由于该系统源于商业应用,适合事物处理领域而对非事务处理领域应用受到限制。
关于数据管理三个阶段中的软硬件背景及处理特点如表4-1所示。
表4-1数据管理三个阶段的比较
人工管理
文件系统
数据库系统
背
景
应用背景
科学计算
科学计算、管理
大规模管理
硬件背景
无直接存取设备
磁盘、磁鼓
大容量磁盘
软件背景
没有操作系统
有文件系统
有数据库管理系统
处理方式
批处理
联机实时处理
分布处理
特
点
数据管理者
人
数据库管理系统
数据面向对象
某个应用程序
现实世界
数据共享程度
无共享
冗余度大
共享性差
共享性大
冗余度小
数据独立性
不独立,完全依赖于程序
独立性差
具有高度的物理独立性和一定的逻辑独立性
数据结构化
无结构
记录内有结构
整体无结构
整体结构化,用数据模型描述
数据控制能力
应用程序自己控制
应用程序自己
控制
由DBMS提供数据安全性、完整性、并发控制和恢复
(4)数据库诸多新技术中比较重要的三个方面
①面向对象数据库系统:
用面向对象方法构筑面向对象数据模型,使其具有比关系数据库系统更通用的能力
②知识库系统:
用人工智能中的方法特别是用谓词逻辑知识表示方法构筑数据模型,使其模型具有特别通用的能力
③关系数据库系统的扩充:
利用关系数据库作进一步扩展,使其在模型的表达能力与功能上有进一步的加强。
3.数据库系统的基本特点
(1)数据的集成性
数据库系统的数据集成性主要表现在如下几个方面:
①采用统一的数据结构方式;
②按照多个应用的需要组织全局的统一的数据结构(即数据模式),数据模式可建立全局的数据结构,还可以建立数据间的语义联系,从而构成一个内在紧密联系的数据整体;
③数据模式是多个应用共同的、全局的数据结构,而每个应用的数据则是全局结构中的一部分,称为局部结构,这种全局与局部的结构模式构成了数据库系统数据集成性的主要特征。
(2)数据的高共享性与低冗余性
由于数据的集成性使得数据可为多个应用所共享,数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。
数据的一致性是指在系统中同一数据的不同出现应保持相同的值;
数据的不一致性指的是同一数据在系统的不同拷贝处有不同的值。
因此,减少冗余性以避免数据的不同出现是保证系统一致性的基础。
(3)数据独立性
数据库中的数据独立于应用程序,数据的逻辑结构、存储结构与存取方式不会影响应用程序,数据独立性分为物理独立性和逻辑独立性。
①物理独立性。
数据物理结构的改变不至于引起应用程序的变化。
②逻辑独立性。
数据库总体逻辑结构的改变,不需要相应修改应用程序。
(4)数据统一管理与控制
数据库系统不仅为数据提供高度集成环境,同时它还为数据提供统一管理的手段,这主要包含以下三个方面:
①数据的完整性检查:
检查数据库中数据的正确性以保证数据的正确。
②数据的安全性保护:
检查数据库访问者以防止非法访问。
③并发控制:
控制多个应用的并发访问所产生的相互干扰以保证其正确性。
4.数据库系统的内部结构体系
(1)数据库系统的三级模式
数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。
①概念模式
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
是一种抽象的描述,它不涉及具体的硬件环境与平台,也与具体的软件环境无关。
主要描述数据的概念记录类型以及它们间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。
②外模式(子模式或用户模式)
它是用户的数据视图,也是用户所见到的数据模式,由概念模式推导而出。
概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部数据描述。
一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样不仅可以屏蔽大量无关信息而且有利于数据保护。
在一般的DBMS中都提供有相关的外模式描述语言(外模式DDL)。
③内模式(物理模式)
它给出了数据库物理存储结构与物理存取方法,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上。
对一般用户是透明的,但它的设计直接影响数据库的性能。
一般提供相关的内模式描述语言(内模式DDL)。
a.以概念模式为框架所组成的数据库叫概念数据库,以外模式为框架所组成的数据库叫用户数据库,以内模式为框架所组成的数据库叫物理数据库。
只有物理数据库真实存在于计算机外存中,其它两个数据库不是真实存在于计算机中,而是通过两种映射由物理数据库映射而成。
b.内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了用户对数据的要求。
(2)数据库系统的两级映射
①概念模式到内模式的映射
该映射给出概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系,此种映射一般由DBMS实现。
②外模式到概念模式的映射
概念模式是一个全局模式而外模式是用户的局部模式。
一个概念模式中可以定义多个外模式,而每个外模式是概念模式的一个基本视图。
外模式到概念模式的映射给出了外模式与概念模式的对应关系,这种映射一般也是由DBMS来实现的。
二、数据模型
1.数据模型的基本概念
(1)数据模型的概念
数据库中的数据模型可以将复杂的现实世界要求反映到计算机数据库中的物理世界,这种反映是一个逐步转化的过程。
它分为两个阶段:
由现实世界开始,经历信息世界而至计算机世界,从而完成整个转化。
①现实世界
现实世界是指用户为了某种需要,需将现实世界中的部分需求用数据库实现,这样,我们所见到的是客观世界中的划定边界的一个部分环境。
②信息世界
信息世界是指通过抽象对现实世界进行数据库级上的刻画所构成的逻辑模型,与数据库的具体模型有关。
③计算机世界
计算机世界是指在信息世界基础上致力于其在计算机物理结构上的描述,从而形成的物理模型。
现实世界的要求只有在计算机世界中才得到真正的物理实现,而这种实现是通过信息世界逐步转化得到的。
(2)数据模型描述的内容
①数据结构
主要描述数据的类型、内容、性质以及数据间的联系等。
它是数据模型的基础,数据操作与约束均建立在数据结构上。
②数据操作
主要描述在相应数据结构上的操作类型与操作方式。
③数据约束
主要描述数据内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确、有效与相容
(3)数据模型分类
①概念数据模型(概念模型)
它是一种面向客观世界、面向用户的模型;
与具体的数据库管理系统无关,与具体的计算机平台无关;
着重于对客观世界复杂事物的结构描述及它们之间的内在联系的刻画;
是整个数据模型的基础。
目前,较为有名的概念模型有E-R模型、扩充的E-R模型、面向对象模型及谓词模型等。
②逻辑数据模型(数据模型)
它是一种面向数据库系统的模型,该模型着重于在数据库系统一级的实现。
概念模型只有在转换成数据模型后才能在数据库中得以表示。
逻辑数据模型也有很多种,较为成熟并先后被人们大量使用过的有:
层次模型、网状模型、关系模型、面向对象模型等。
③物理数据模型(物理模型)
它是一种面向计算机物理表示的模型,此模型给出了数据模型在计算机上物理结构的表示。
2.E-R模型
该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们间的两种基本连接关系,并且可以用一种图非常直观地表示出来。
(1)E-R模型的基本概念
①实体
现实世界中的事物可以抽象成为实体,实体是概念世界中的基本单位,它们是客观存在的且又能相互区别的事物。
凡是有共性的实体可组成一个集合称为实体集
②属性
属性刻画了实体的特征,一个实体往往可以有若干个属性。
每个属性可以有值,一个属性的取值范围称为该属性的值域。
③联系
现实世界中事物间的关联称为联系。
在概念世界中联系反映了实体集间的一定关系。
a.实体集间的联系有多种,就实体集的个数而言有:
第一,两个实体集间的联系
两个实体集间的联系是一种最为常见的联系。
第二,多个实体集间的联系
这种联系包括三个实体集间的联系以及三个以上实体集间的联系。
第三,一个实体集内部的联系
一个实体集内有若干个实体,它们之间的联系称实体集内部联系。
b.两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有以下几种:
第一,一对一的联系,简记为1:
1。
这种函数关系是常见的函数关系之一,如学校与校长间的联系,一个学校与一个校长间相互一一对应。
第二,一对多或多对一联系,简记为1:
M或M:
这两种函数关系实际上是一种函数关系,如学生与其宿舍房间的联系是多对一的联系(反之,则为一对多联系),即多个学生对应一个房间。
第三,多对多联系,简记为M:
N
这是一种较为复杂的函数关系,如教师与学生这两个实体集间的教与学的联系是多对多的,因为一个教师可以教授多个学生,而一个学生又可以受教于多个教师。
(2)E-R模型三个基本概念之间的连接关系
E-R模型由上面三个基本概念组成。
由实体、联系、属性三者结合起来才能表示现实世界。
①实体集(联系)与属性间的连接关系
a.实体是概念世界的基本单位,属性附属于实体,一个实体可以有若干个属性,实体及它的所有属性构成实体的完整描述。
b.属性有属性域,每个实体可取属性域内的值。
一个实体的所有属性取值组成了一个值集叫元组。
在概念世界中,可以用元组表示实体,也可用它区别不同的实体。
c.实体有型与值之别,一个实体的所有属性构成了这个实体的型,而实体中属性值的集合(即元组)则构成了这个实体的值。
d.联系也可以附有属性,联系和它的所有属性构成了联系的一个完整描述,因此,联系与属性间也有连接关系。
②实体(集)与联系
a.实体集间可通过联系建立连接关系,实体集间无法建立直接关系,它只能通过联系才能建立起连接关系。
b.在E-R模型中有三个基本概念以及它们之间的两种基本连接关系。
它们将现实世界中的错综复杂的现象抽象成简单明了的几个概念与关系,具有极强的概括性和表达能力。
(3)E-R模型的图示法
在E-R图中分别用不同的几何图形表示E-R模型中的三个概念与两个连接关系。
①实体集表示法
用矩形表示实体集,在矩形内写上该实体集的名字。
②属性表示法
用椭圆形表示属性,在椭圆形内写上该属性的名称。
③联系表示法
用菱形(内写上联系名)表示联系。
④实体集(联系)与属性间的连接关系
属性依附于实体集,因此,它们之间有连接关系。
⑤实体集与联系间的连接关系
实体集与联系间的连接关系可用连接这两个图形间的无向线段表示。
两个实体集间联系叫二元联系,多个实体集间联系叫多元联系。
3.层次模型
层次模型的基本结构是树形结构,自顶向下,层次分明。
(1)树结构的特性
①每棵树有且仅有一个无双亲结点,称为根。
②树中除根外所有结点有且仅有一个双亲。
(2)层次模型的完整性约束条件
①进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值;
②进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除;
③进行更新操作时,应更新所有相应记录,以保证数据的一致性。
(3)层次模型的优缺点
优点:
①结构比较简单,操作简单;
②对于实体间联系是固定的、且预先定义好的应用系统,层次模型有较高的性能;
③层次模型还可以提供良好的完整性支持。
缺点:
①受文件系统影响大,模型受限多,物理成分复杂,不适合表示非层次性的联系;
②对于插入和删除操作的限制比较多;
③查询子女结点必须通过双亲结点。
4.网状模型
(1)网状模型是一个不加任何条件限制的无向图。
将通用的网络拓扑结构分成一些基本结构,分解方法是将一个网络分成若干个二级树
(2)在网状模型标准中,基本结构简单二级树叫系,系的基本数据单位是记录,它相当于E-R模型中的实体(集);
记录又可由若干数据项组成,它相当于E-R模型中的属性。
(3)系由一个首记录和若干成员记录组成
①首记录相当于简单二级树的根;
②成员记录,它相当于简单二级树中的叶;
首记录与成员记录之间的联系用有向线段表示,在系中首记录与成员记录间是一对多联系。
5.关系模型
(1)关系的数据结构
①关系模型中二维表的组成
二维表由表框架及表的元组组成。
表框架由n个命名的属性组成,n称为属性元数。
每个属性有一个取值范围称为值域。
表框架对应了关系的模式,即类型的概念。
表框架中,按行存放数据,每行数据称为元组,一个表框架可以存放m个元组,m称为表的基数。
②二维表满足的性质:
a.二维表中元组个数是有限的——元组个数有限性。
b.二维表中元组均不相同——元组的唯一性。
c.二维表中元组的次序可以任意交换——元组的次序无关性。
d.二维表中元组的分量是不可分割的基本数据项——元组分量的原子性。
e.二维表中属性名各不相同——属性名唯一性。
f.二维表中属性与次序无关,可任意交换——属性的次序无关性。
g.二维表属性的分量具有与该属性相同的值域——分量值域的同一性。
满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。
③键
a.二维表中凡能唯一标识元组的最小属性集称为该表的键,键具有标识元组,建立元组间联系等重要作用。
b.二维表中可能有若干个键,它们称为表的候选键,从二维表汇总选取一个作为用户使用的键称为主键
c.关系元组分量中允许出现空值以表示信息空缺。
一般关系数据库系统都支持空值,但是有两个限制:
第一,关系的主键不允许出现空值;
第二,需要定义有关空值的运算。
(2)关系操纵
①数据查询
a.对一个关系内的查询
第一,对一个关系内查询的基本单位是元组分量,其基本过程是先定位后操作。
第二,定位包括纵向定位和横向定位,纵向定位是指定关系中的一些属性,横向定位是选择满足某些逻辑条件的元组。
通过纵向与横向定位后一个关系中的元组分量即可确定了。
在定位后即可进行查询操作,就是将定位的数据从关系数据库中取出并放入至指定内存。
b.对多个关系间的数据查询
对多个关系间的数据查询则可分为三步:
第一,将多个关系合并成一个关系;
第二,对合并后的一个关系作定位;
第三,操作。
②数据删除
第一,数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。
第二,分为定位与操作两部分,其中定位部分只需要横向定位而无需纵向定位,定位后即执行删除操作。
因此数据删除可以分解为一个关系内的元组选择与关系中元组删除两个基本操作。
③数据插入
数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。
在数据插入中不需定位,仅需做关系中元组插入操作,因此数据插入只有一个基本操作。
④数据修改
数据修改是在一个关系中修改指定的元组与属性。
数据修改不是一个基本操作,它可以分解为删除需修改的元组与插入修改后的元组两个更基本的操作。
⑤关系模型的六种基本操作:
a.关系的属性指定;
b.关系的元组选择;
c.两个关系合并;
d.一个或多个关系的查询;
e.关系中元组的插入;
f.关系中元组的删除。
(3)关系中的数据约束
①实体完整性约束
该约束要求关系的主键中属性值不为空,由关系数据库系统自动支持。
②参照完整性约束
该约束是关系之间相关联的基本约束,不允许引用不存在的元组,由关系数据库系统自动支持。
③用户定义的完整性约束
由关系数据库系统提供完整性约束语言,用户利用该语言写出约束条件,运行时由系统自动检查。
这是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。
三、关系代数
1.关系模型的基本操作
关系模型有插入、删除、修改和查询四种操作,它们又可以进一步分解成六种基本操作:
(1)关系的属性指定
指定一个关系内的某些属性,用它确定关系这个二维表中的列,它主要用于检索或定位。
(2)关系的元组的选择
用一个逻辑表达式给出关系中所满足此表达式的元组,用它确定关系这个二维表的行,它主要用于检索或定位。
(3)两个关系的合并
将两个关系合并成一个关系。
用此操作可以不断合并从而可以将若干个关系合并成一个关系,以建立多个关系间的检索与定位。
(4)关系的查询
在一个关系或多个关系间做查询,查询的结果也为关系。
(5)关系元组的插入
在关系中增添一些元组,用它完成插入与修改。
(6)关系元组的删除
在关系中删除一些元组,用它完成删除与修改。
2.关系模型的基本运算
(1)插入
插入可用集合并运算表示为:
R∪R′
(2)删除
删除可用集合差运算表示为:
R-R′
(3)修改
修改关系R内的元组内容可用下面的方法实现:
①设需修改的元组构成关系R′,则先做删除得:
②设修改后的元组构成关系R″,此时将其插入即得到结果:
(R-R′)∪R″
(4)查询
用于查询的三个操作无法用传统的集合运算表示,需要引入一些新的运算。
①投影运算
对于关系内的域指定可引入新的运算叫投影运算,它是一元运算。
一个关系通过投影运算(并由该运算给出所指定的属性)后仍为一个关系R′。
R′是R中投影运算所指出的那些域的列所组成的关系。
②选择运算。
它是一个一元运算,关系R通过选择运算后仍为一个关系。
这个关系是由R中那些满足逻辑条件的元组所组成。
设关系的逻辑条件为F,则R满足F的选择运算可写成为: