第四章 数据库设计基础.docx
《第四章 数据库设计基础.docx》由会员分享,可在线阅读,更多相关《第四章 数据库设计基础.docx(25页珍藏版)》请在冰豆网上搜索。
![第四章 数据库设计基础.docx](https://file1.bdocx.com/fileroot1/2023-1/6/4aa62d04-d1d6-4b25-8bb0-191ace704ce8/4aa62d04-d1d6-4b25-8bb0-191ace704ce81.gif)
第四章数据库设计基础
第四章数据库设计基础
一、学习目标与要求
1.了解数据库系统的基本概念,以及数据库系统的发展;
2.了解数据模型的基本概念,并对E-R模型、层次模型、网状模型和关系模型进行了解,并掌握关系模型的数据结构、关系的操作和数据约束等知识;
3.了解关系模型的基本操作,掌握关系模型的基本运算及扩充运算;
4.了解数据库的设计与管理,掌握数据库设计的几个阶段的方法和特点。
二、内容要点
(一)数据库系统的基本概念
1.数据、数据库、数据库管理系统
1)数据
数据是指存储在某一种媒体上能够被识别的物理符号,即描述事物的符号记录。
数据是有结构的。
首先,数据有型与值的区别,型即类型,值是符合指定类型的值。
数据的概念在数据处理领域中已经大大地拓宽了。
数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还包括图形、图像、动画、影像、声音等多媒体数据。
但是使用最多、最基本的仍然是文字数据。
2)数据库
数据库(DataBase,DB),是存储在计算机存储设备上,结构化的相互关联的数据的集合。
它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。
它用综合的方法组织和管理数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
例如,某个学校的相关数据,如学生基本情况、选课情况、学籍管理等所涉及的相关数据的集合。
3)数据库管理系统
数据库管理系统(DataBaseManagementSystem,DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据、获取和管理数据,接受和完成用户提出的访问数据的各种请求。
同时还能保证数据的安全性、可靠性、完整性、一致性,还要保证数据的高度独立性。
数据库管理系统主要功能包括以下几个方面:
(1)数据模式定义
数据库管理系统负责为数据库构建模式,也为数据库构建其数据框架。
(2)数据存取的物理构建
数据库管理系统负责为数据模式的物理存取及构建提供有效的存取方法和手段。
(3)数据操纵
数据库管理系统为用户使用数据库中的数据提供方便,一般提供查询、插入、修改和删除数据的功能,此外,还具有简单的算术运算和统计功能,还具有专长强大的程序控制功能。
(4)数据的完整性、安全性定义与检查
数据库中的数据具有内存语义上的关联性与一致性,即数据的完整性。
数据的完整性是保证数据库中数据正确的必要条件。
(5)数据的并发控制与故障恢复
数据库是一个集成、共享的数据集合体,它能为多个应用程序服务,因此,当多个应用程序对数据库并发操作时,要保证数据不被破坏。
(6)数据的服务
数据库管理系统提供了对数据库中数据的多种服务,如数据拷贝、转存、重组、性能监测、分析等。
数据库管理系统提供的相应的数据语言包括如下:
1)数据定义语言(DataDefinitionLanguage,DDL)
D用户通过它可以方便地对数据库中的相关内容进行定义。
例如,对数据库、表、索引进行定义。
2)数据操纵语言(DataManipulationLanguage,DML)
用户通过它可以实现对数据库的基本操作。
例如,对表中数据的查询、插入、删除和修改。
3)数据控制语言(DataControlLanguage,DCL)
负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序、数据库恢复程序等。
目前流行的DBMS均为关系型数据库系统,发ORACLE、Sybase的PowerBuilder及IBM的DB2、微软件的SQLServer等。
还有一些小型的数据库,如VisualFoxPro和Access等。
4)数据库管理员
数据库的管理员(DataBaseAdministrator,DBA):
对数据库的规划、设计、维护、监视等进行管理。
主要工作如下:
(1)数据库设计
(2)数据库维护
(3)改善系统性能,提高系统效率
5)数据库系统
数据库系统(DataBaseSystem,DBS)由如下几个部分组成:
数据库(数据)
数据库管理系统(软件)
数据库管理员(人员)
系统平台(硬件平台和软件平台)
硬件平台包括:
计算机
网络
软件平台包括:
操作系统
数据库系统开发工具
接口软件
6)数据库应用系统
数据库应用系统(DataBaseApplicationSystem,DBAS)是数据库系统再加上应用软件及应用界面而构成的。
它包括:
数据库
数据库管理系统
数据库管理员
硬件平台
软件平台
应用软件
应用界面
2.数据库系统的发展
随着计算机软硬件技术的发展,数据处理方法也经历了从低级到高级的发展过程,按照数据管理的特点可将其划分为人工管理、文件系统及数据库系统三个阶段。
1)人工管理阶段
在20世纪50年代,计算机主要用于数值计算。
从当时的硬件看,外存只有纸带、卡片、磁带,没有直接存取设备;从软件看(实际上,当时还未形成软件的整体概念),没有操作系统以及管理数据的软件;从数据看,数据量小,数据无结构,由用户直接管理,且数据间缺乏逻辑组织,数据依赖于特定的应用程序,缺乏独立性。
2)文件系统阶段
是数据库系统发展的初级阶段,它提供了简单的数据共享和数据管理能力,但无法提供完整的、统一的、管理和数据共享的能力。
3)层次数据库与网状数据库阶段
20世纪60年代末期,层次数据库与网状数据库开始发展,它们为统一管理和数据共享提供了支撑,即标志着数据库系统的真正来临。
但它们有许多的不足,如受文件的物理影响较大,对数据库使用带来许多不便,数据结构复杂,不变于推广。
4)关系数据库系统阶段
关系数据库系统出现于20世界70年代,它的数据库结构简单,使用方便,逻辑性强物理性少,使用广泛。
由于应用的领域不同,它常分为:
工程数据库系统
图形数据库系统
图像数据库系统
统计数据库系统
知识数据库系统
分布式数据库系统
并行数据库系统
面向对象数据库系统
3.数据库系统的基本特点
1)数据的集成性
在数据库系统中采用统一的数据结构方式
在数据库系统中按照多个应用程序的需要组织全局的统一的数据结构,数据模式可建立全局的数据结构,也可建立数据间的语义联系从而构成一个内存紧密联系的数据整体
数据模式是多个应用程序共同的、全局的数据结构,而每个应用的数据则是全局结构中的一部分
2)数据的高共享性与低冗余性
数据的一致性是指系统中同一数据的不同出现应保持相同的值,而数据的不一致性是指同一数据在系统不同拷贝处有不同的值。
减少数据的冗余性可以避免数据的不一致性。
3)数据的独立性
数据的独立性是指数据与程序间的互不依赖性。
即数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。
(1)物理独立性
即数据的物理结构(包括存储结构、存取方式)的改变,不会影响数据库的逻辑结构,即不会引起应用程序的变化。
(2)逻辑的独立性
4)数据统一管理与控制
数据库总体逻辑结构的改变,不需要相应修改应用程序。
数据完整性检查:
检查数据库中数据的正确性以保证数据的正确
数据的安全性保护:
检查数据库访问者以防非法访问
并发控制:
控制多个应用程序的并发访问所发生的相互干扰以保证其正确性
4.数据库系统的内部结构体系
数据库系统的内部具有三级模式与二级映射。
1)数据库系统的三级模式
数据模式是数据库系统中数据结构的一种表示形式,它具有不同的层次与结构方式。
(1)概念模式
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
概念模式主要描述数据的概念记录类型以及它们之间的关系,还包括一些数据间的语义约束。
(2)外模式
外模式又称子模式或用户模式,是用户的数据视图,即用户见到的数据模式。
概念模式给出系统全局的数据描述而外模式则给出每个用户的局部数据描述。
(3)内模式
内模式又称物理模式,它给出数据库物理存储结构与物理存储方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上。
内模式对一般的用户是透明的,但它的设计直接影响到数据库系统的性能。
模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最底层,它反映数据在计算机物理结构中的实际存储形式,概念模式牌中层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,通过两种映射由物理数据库映射而成它反映用户对数据的要求。
2)数据库系统的二级映射
数据库系统的三级模式是对数据的三个级别抽象,它把数据的具体物理实现留给物理模式,使得全局设计者不必关心数据库的具体实现与物理背景;通过两级映射建立了模式间的联系与转换,使得概念模式与外模式虽然并不物理存在,但也能通过映射获得实体。
同时,两级映射也保证了数据库系统中数据的独立性。
两级模式的映射:
概念模式到内模式的映射:
该映射给出概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系
外模式到概念模式的映射:
该映射给出了外模式与概念模式之间的对应关系
(二)数据模型
1.数据模型的基本概念
数据是现实世界符号的抽象,而数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。
数据模型描述的三个部分:
数据结构、数据操作与数据约束。
(1)数据结构
描述数据的类型、内容、性质及数据间的联系等。
(2)数据操作
主要描述在相应的数据结构上的操作类型与操作方式。
(3)数据约束
主要描述数据结构内数据间的语法、语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确、有效与相容。
逻辑数据模型又称数据模型,较为成熟的有:
层次模型、网状模型和关系模型。
物理数据模型又称物理模型,是面向计算机物理表示的模型。
2.E-R模型
1)E-R模型的基本概念
E-R模型(Entity—Relationshipmodel),即实体联系模型。
(1)实体
在现实生活中客观存在且又能相互区别的事物,称为实体。
具有共性的实体可组成一个集合称为实体集。
(2)属性
属性是用来描述实体的特征。
一个实体有许多个属性。
每个属性都可以有值,一个属性的取值范围称为该属性的值域或值集。
(3)联系
反映事物之间的关联称为联系。
实体集之间的联系有多种,就实体集个数而言,有:
两个实体集间的联系
多个实体集之间的联系
一个实体集内部的联系
两个实体集间的联系即实体集间的函数关系,有如下几种关系:
一对一的联系
一对多的联系
多对多的联系
2)E-R模型三个基本概念之间的联系关系
(1)实体集与属性之间的联接关系
实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立性单位。
一个实体可以有若干个属性,实体与它所有属性构成了实体的一个完整描述。
实体与属性间有一定的联系。
实体有型与值的区分,一个实体的所有属性的集合,称为实体型,而实体中属性值的集合,即构成该实体的值。
(2)实体与联系
实体集之间通过联系建立联接关系。
3)E-R模型的图示法
用矩形表示实体集,在矩形内部标出实体集的名称
用椭圆形表示属性,在椭圆上标出属性的名称
用菱形表示联系,在菱形上标出联系名
属性依附于实体,它们之间用无向线段联接
属性也依附于联系,它们之间用无向线段联接
实体集与联系之间的联接关系,通过无向线段表示
3.层次模型
若用图来表示,层次模型是一棵倒立的树。
在数据库中,满足以下两个条件的数据模型称为层次模型:
有且仅有一个结点无父结点,这个结点称为根结点
其他结点有且仅有一个父结点
在层次模型中,结点层次从根开始定义,根为第一层,根的子结点为第二层,根为其子结点的父结点,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。
层次模型表示的是一对多的关系,即一个父节点可以对应多个子节点。
这种模型的优点是简单、直观、处理方便、算法规范;缺点是不能表达含有多对多关系的复杂结构。
R1是根节点,R2、R3是R1的子结点,它们互为兄弟结点;R4、R5为R2的子结节点,它们也互为兄弟节点;R3、R4、R5是叶子结点。
其中,每一个节点都代表一个实体型,各实体型由上而下是1:
n的联系。
支持层次模型的DBMS称为层次数据库管理系统,在这种数据库系统中建立的数据库是层次数据库。
层次数据模型支持的操作主要有:
查询、插入、删除和更新。
4.网状模型
若用图来表示,网状模型是一个网络。
在数据库中,满足以下两个条件的数据模型称为网状模型。
允许一个以上的结点无父结点
一个结点可以有一个以上的父结点
允许两个结点间有两种以上的联系,即允许结点间有复合链,用网络表示某种联系
由于在网状模型中子结点与父结点的联系不是唯一的,所以要为每个联系命名,并指出与该联系有关的父结点和子结点。
网状模型的优点是可以表示复杂的数据结构,存取数据的效率比较高;缺点是结构复杂,每个问题都有其相对的特殊性,实现的算法难以规范化。
在抽象网状模型中,R1与R4之间的联系被命名为L1,R1与R3之间的联系被命名为L2,R2与R3之间的联系被命名为L3,R3与R5之间的联系被命名为L4,R4与R5之间的联系被命名为L5。
R1为R3和R4的父结点,R2也是R3的父结点。
R1和R2没有父结点。
网状模型是一个不加任何条件限制的无向图。
它没有层次模型那样需要满足严格的条件,相对比较灵活。
通常的操作方式是将网状模型分解成若干个二级树,即只有两个层次的树。
在网状模型标准中,基本结构简单二级树叫做系,系的基本数据单位是记录,它相当于E-R模型中的实体集;记录又可由若干数据项组成,它相当于E-R模型中的属性。
5.关系模型
1)关系的数据结构
关系模型是利用二维表来表示,简称表。
表头即属性的集合,在表中每一行存放数据,称为元组。
二维表要求满足的条件:
二维表中元组的个数有限
元组在二维表中的唯一性,在同一个表中不存在完全相同的两个元组
二维表中元组的顺序无关,可以任意调换
元组中的各分量不能再分解
二维表中各属性名唯一
二维表中各属性的顺序无关
二维表属性的分量具有与该属性相同的值域
键:
能够唯一确定元组的属性或属性的组合。
例如,在学生基本情况表中,可以用学号来唯一标识某个学生,即学号可以作为该表的键。
键具有标识元组、建立元组间联系等重要作用。
在二维表中凡是能够唯一标识元组的最小属性集称为该表的键或码。
二维表中可能有若干个键,称为候选码或候选健。
从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。
外键:
如果表中的一个字段不是本表的键或候选键,而是另外一个表的键或候选键,则称该字段为外键或外码。
表中一定有键。
在关系中一般支持空值,空值表示未知的值或不可能出现的值,一般用NULL表示。
关系的主键中不允许出现空值,因为如主键为空值则失去了其元组标识的作用。
关系模式支持子模式,关系子模式是关系数据库模式中用户所见到的那部分数据模式描述。
2)关系操作
关系模型的数据操纵是建立在关系上的数据操纵,一般有查询、增加、删除和修改。
(1)数据查询
在一个关系中查询数据,操作方式是先定位,然后再操作。
在多个关系中查询数据,先将多个关系合并为一个关系,再在合并后的新关系中进行定位,然后再操作。
(2)数据删除
数据删除操作是在一个关系中删除元组的操作。
操作方式也是先定位,然后再删除操作。
(3)数据插入
数据插入也是仅对一个关系的操作。
即在指定的关系中插入一个或多个元组。
(4)数据修改
数据修改是在一个关系中修改指定的元组与属性。
数据修改不是一个基本的操作,可分解为删除要修改的元组,再插入修改后的元组两个基本操作。
关系的基本操作:
关系的属性指定
关系的元组选择
两个关系合并
一个或多个关系的查询
关系中元组的插入
关系中元组的删除
3)关系中的数据约束
数据约束:
实体完整性约束、参照完整性约束和用户定义的完整性约束。
(1)实体完整性约束
要求关系的主键中属性值不能为空值,主键的惟一决定元组的惟一性。
(2)参照完整性约束
关系之间相关联的基本约束,不允许关系引用不存在的元组。
(3)用户定义的完整性约束
用户根据具体的数据环境与应用环境具体设置约束。
关系数据库系统提供完整性约束语言,用户利用该语言写出的约束条件,运行时由系统自动检查。
(三)关系代数
1.关系模型的基本操作
关系是由若干个不同的元组组成的,因此关系可看作元组的集合。
N元关系是一个n元有序组的集合。
设有一个n元关系R,它有n个域,分别是D1、D2、……、Dn,此时,它们的笛卡尔集是:
集合可看作是域的笛卡尔积的子集,。
关系模型的四种操作是:
插入
删除
修改
查询
可将它们分解为六种基本操作:
关系的属性指定
关系的元组选择
两个关系的合并运算
关系的查询
关系元组的插入
关系元组的删除
2.关系模型的基本运算
1)插入
插入操作可看作是集合的并运算。
即在原有的关系R中并入要插入的元组R’,是这两个元组的并运算:
2)删除
在关系R中删除元组R’,可看作是两个关系的差运算:
R-R’
3)修改
修改关系R中的元组的内容的操作:
先将要修改的元组R’从关系R中删除,再将修改后的元组R”插入到关系R中,即操作为:
4)查询
插入运算无法通过传统的集合运算来表示,需要专门的关系运算来实现。
(1)投影运算
投影运算,是从关系中指定若干个属性组合成一个新的关系的操作。
投影操作后得到一个新的关系,其关系模式中包含的属性通常比原来的关系少,或者,与原来的关系具有不同的属性顺序。
投影是从垂直的角度进行运算,即从列的角度进行运算,投影运算基于一个关系,是一个一元运算。
(2)选择
选择,是从关系中查找满足条件的元组。
选择的条件是通过逻辑表达式进行描述,逻辑表达式值为真的元组被选出。
选择是从行的角度进行的运算,即从水平方向进行元组的抽取。
选择基于一个关系,得到的结果可以形成一个新的关系,它的关系模式与原关系相同,但是原关系的一个子集。
例如,从学生表中查找女同学的信息。
(3)笛卡尔积运算
两个关系的合并操作可以用笛卡尔积表示。
设有n元关系R及m元关系S,它们分别有p、q个元组,则关系R和关系S的笛卡尔积为R×S,新关系是一个n+m元关系,元组个数是p×q,由R和S的有序组合而成。
3.关系代数中的扩充运算
1)交运算
关系R与关系S经交运算后所得到的关系是既在R中又在S中的元组组成,记为。
2)除运算
如果将笛卡尔积运算看作乘运算的话,除运算即是它的逆运算。
当关系T=R×S时,则可将运算写成:
T÷R=S或T/R=S
S称为T除以R的商。
T能被除的充分与必要条件是:
T中的域包含R中的所有属性,T中有一些域不出现在R中。
在除运算中S的域由T中那些不出现在R中的域所组成,对于S中任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。
3)连接与自然连接运算
联接是关系的横向运算。
联接运算将两个关系横向地拼接成一个更宽的关系,生成的新关系中有满足联接条件的所有元组。
联接运算通过联接条件来控制,联接条件中将出现两个关系中的公共属性,或者具有相同的域、可比的属性。
连接运算基于两个关系。
如下图所示为联接运算的操作。
在联接运算中,按字段值相等的为条件进行的联接运算,即为等值联接。
上例即为等值联接的运算。
自然联接,是去掉重复属性的等值联接。
自然联接是最常用的联接方式。
如果上例进行的是自然联接,则联接后的关系如下图所示。
(四)数据库设计与管理
1.数据库设计概述
数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境(包括硬件、操作系统与DBMS)设计出数据模式。
数据库设计的两种方法:
面向数据的方法:
以信息需求为主,兼顾处理需求。
面向过程的方法:
以处理需求为主,兼顾信息需求。
目前,面向数据的设计方法是数据库设计的主流方法。
数据库设计一般采用生命周期法,分为如下几个阶段:
需求分析阶段
概念设计阶段
逻辑设计阶段
物理设计阶段
编码阶段
测试阶段
运行阶段
进一步修改阶段
前四个阶段是数据库设计的主要阶段,重点以数据结构与模型的设计为主线。
2.数据库设计的需求分析
第一阶段:
需求收集和分析,收集基本数据和数据流图。
主要的任务是:
通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,在此基础上确定新系统的功能。
对数据库的要求:
信息要求
处理要求
安全性和完整性的要求
数据字典是各类数据的集合,它包括五个部分:
数据项,即数据的最小单位
数据结构,是若干数据项有意义的集合
数据流,可以是数据项,也可以是数据结构,用来表示某一处理过程的输入或输出
数据存储,处理过程中存取的数据,通常是手工凭证、手工文档或计算机文件
处理过程
3.数据库概念设计
1)概念设计概述
(1)集中式模式设计法
根据需求由一个统一的机构或人员设计一个综合的全局模式。
适合于小型