数据库的触发器触发器是计算机硬件这句话对不对

下载费用:10 库币 &
数据库系统及应用教程(SQL Server 2008)习题1-8章答案.doc 1习题 11.名词解释:DB:是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DBMS:是位于用户与 0S 之间的一层数据管理软件,它为用户或应用程序提供访问DB 的方法。DBS:是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。外模式:是用户用到的那部分数据的描述。概念模式:数据库中全部数据的整体逻辑结构的描述。内模式:DB 在物理存储方面的描述。实体:客观存在、可以相互区别的事物称为实体。属性:实体有很多特性,每一个特性称为一个属性。实体标识符:能惟一标识实体的属性或属性集,称为实体标识符。分布式数据库:是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治) ,可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。2.文件系统阶段的数据管理有哪些特点?答:文件系统阶段主要有 5 个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。3.文件系统阶段的数据管理有些什么缺陷?试举例说明。答:主要有 3 个缺陷:数据冗余;数据不一致性;数据联系弱。例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,如联系电话,家庭住址等。这就是“数据”冗余;如果某个学生搬家,就要修改 3 个部门文件中的数据,否则会引起同一数据在 3 个部门中不一致;产生上述问题的原因是这 3 个部门的文件中数据没有联系。4. 数据库阶段的数据管理有哪些特色?答:主要有 5 个特点:采用数据模型可以表示复杂的数据结构;有较高的数据独立性;为用户提供了方便的用户接口;提供了 4 个方面的数据控制功能;对数据的操作以数据项为单位,增加了系统的灵活性。5.实体之间联系有哪几种?分别举例说明?答:1:1 联系:如果实体集 El 中每个实体至多和实体集 E2 中的一个实体有联习,反之亦然,那么 El 和 E2 的联系称为“l:1 联系” 。例如:电影院的座位和观众实体之间的联系。1:N 联系:如果实体集 El 中每个实体可以与实体集 E2 中任意个(零个或多个)实体有联系,而 E2 中每个实体至多和 El 中一个实体有联系,那么 El 和 E2 的联系是“1:N 联系”。 例如:部门和职工两个实体集之间的联系。M:N 联系:如果实体集 El 中每个实体可以与实体集 E2 中任意个(零个或多个)实体有联系,反之亦然,那么 El 和 E2 的联系称为“M:N 联系”。例如:工程项目和职工两个实体集之间的联系。26.分析层次模型、网状模型和关系模型的特点。答:层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但 DML属于过程化的语言,操作复杂。网状模型的数据结构为有向图,记录之间联系通过指针实现,查询较快,并且容易实现 M:N 联系,但 DML 属于过程化的语言,编程较复杂。关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过关键码实现。DML 属于非过程化语言,编程较简单。面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及的知识面较广,用户较难理解,这种模型尚未普及。7.简述数据库系统的两级映像和数据独立性之间的关系。答:为了能够在系统内部实现外部级、概念级和内部级 3 个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像定义通常包含在各自外模式的描述中,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性,应用程序是依据外模式编写的;模式/内模式映像包含在模式描述中,此映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系,它保证了数据与程序的物理独立性,所以称为数据的物理独立性。8.分析分布式数据库的体系结构。答: 分布式 DBS 的体系结构分为四级:全局外模式、全局概念模式、分片模式和分配模式。(1)全局外模式:它们是全局应用的用户视图,是全局概念模式的子集。 (2)全局概念模式:全局概念模式定义了分布式数据库中所有数据的逻辑结构。 (3)分片模式:分片模式定义片段以及定义全局关系与片段之间的映象。这种映象是一对多的,即每个片段来自一个全局关系,而一个全局关系可分成多个片段。 (4)分配模式:片段是全局关系的逻辑部分,一个片段在物理上可以分配到网络的不同场地上。分配模式根据数据分配策略的选择定义片段的存放场地。9.当前主要的几种新型数据库系统各有什么特点?用于什么领域?答:主要有:分布式数据库系统、面向对象数据库系统、专家数据库系统、多媒体数据库系统、空间数据库系统、工程数据库系统。分布式数据库系统分布式数据库系统是地理上分布在计算机网络的不同结点,逻辑上属于同一系统的数据库系统,它不同于将数据存储在服务器上供用户共享存取的网络数据库系统,分布式数据库系统不仅能支持局部应用,存取本地结点或另一结点的数据,而且能支持全局应用,同时存取两个或两个以上结点的数据。分布式数据库的主要特点是:数据是分布的;数据是逻辑相关的;结点的自治性。分布式数据库系统广泛地应用于大企业,多种行业及军事国防等领域。面向对象数据库(简称 OODB)有以下特点: 使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统 。对象可以定义为对象的属性和对象的行为描述,对象间的关系分为直接和间接关系;语义上相似的对象被组织成类,类是对象的集合,对象只是类的一个实例,通过创建类的实例实现对象的访问和操作;对象数据模型具有“封装”、 “继承”、 “多态”等基本概念;方法实现类似于关系数据库中的存储过程,但存储过程并不和特定对象相关联,方法实现是类的一部分。面向对象数据库可以实现一些带有复杂数据描述的应用系统,如时态和空间事务、多媒体数据管理等。专家数据库系统(Expert DataBase System,EDBS)是人工智能与数据库技术相结合的3产物。它具有两种技术的优点,而避免了它们的缺点。它是一种新型的数据库系统,它所涉及的技术除了人工智能和数据库以外还有逻辑、信息检索等多种技术和知识。多媒体数据库系统随着信息技术的发展,数据库应用从传统的企业信息管理扩展到计算机辅助设计(Computer Aided Design,CAD) 、计算机辅助制造(Computer Aided Manufacture,CAM) 、办公自动化(Office Automation ,OA) 、人工智能(Artificial Intelligent,AI)等多种应用领域。这些领域中要求处理的数据不仅包括传统的数字、字符等格式化数据,还包括大量多种媒体形式的非格式化数据,如图形、图像、声音等。多媒体数据库系统(Multimedia Database System,MDBS)是能存储和管理多种媒体的数据库系统。空间数据库系统的特点:数据量庞大。空间数据库面向的是地理学及其相关对象,而在客观世界中它们所涉及的往往都是地球表面信息、地质信息、大气信息等及其复杂的现象和信息,所以描述这些信息的数据容量很大,容量通常达到 GB 级;具有高可访问性。空间信息系统要求具有强大的信息检索和分析能力, 这是建立在空间数据库基础上的,需要高效访问大量数据;空间数据模型复杂。空间数据库存储的不是单一性质的数据,而是涵盖了几乎所有与地理相关的数据类型。空间数据库系统有效地利用卫星遥感资源迅速绘制出各种经济专题地图。工程数据库系统特点:主要数据库是图形和图象数据;数据库规模庞大;设计处理的状态是直观和暂时的;设计的多次版本信息都要予以保存;事务是长寿的,从设计到生产周期较长;数据要求有序性;数据项可多达几百项。工程数据库系统主要用于 CAD/CAM领域。习题 21.名词解释:超键:能惟一标识元组的属性或属性集,称为关系的超键。候选键:不含有多余属性的超键,称为候选键。实体完整性规则:实体的主键值不允许是空值。参照完整性规则:依赖关系中的外键值或者为空值,或者是相应参照关系中某个主键值。函数依赖:设有关系模式 R(U),X 和 Y 是属性集 U 的子集,若对于 R(U)的任意一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等,而在 Y 上的属性值不等,则称 X 函数确定 Y 或 Y 函数依赖(Functional Dependency,简记为 FD)于 X,记作X→Y。无损分解:当对关系模式 R 进行分解时, R 的元组将分别在相应属性集进行投影而产生新的关系。如果对新的关系进行自然连接得到的元组集合与原关系完全一致,则称该分解为无损分解。2NF:如果关系模式 R 属于 1NF,且它的每一个非主属性都完全函数依赖于 R 的候选键,则称 R 属于第二范式,简记为 R∈2NF。3NF:如果关系模式 R 属于 1NF,且每个非主属性都不传递依赖于 R 的候选键,那么称 R 属于第三范式,简记为 R∈3NF。2.为什么关系中的元组没有先后顺序,且不允许有重复元组?答:由于关系定义为元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后的顺序(对用户而言)。这样既能减少逻辑排序,又便于在关系数据库中引进4集合论的理论。3.笛卡尔积、等值连接和自然连接三者之间有什么区别?答:笛卡儿积是一个基本操作,而等值连接和自然连接是组合操作。设关系 R 的元数为 r,元组个数为 m;关系 S 的元数为 s。 ,元组个数为 n。那么,R×S 的元数为 r+s,元组个数为 m×n;R S 的元数也是 r+s,但元组个数小于等于 m×n;R S 的元数小于等于 r+s,元组个数也小于等于 m×n:4.设有关系 R 和 S,如图 2.17 所示。计算 R∪S,R-S,R∩S,R×S,π 3,2(S),σ B’23’∧SEX=’M’ (SC))⑶ π CNAME,TEACHER(σSNO=’S3’(SC C))A B CA B C374253R S图 2.17 关系 R 和 S220GO(3) USE JXGLGOSELECT CNAME,TNAMEFROM S JOIN SC ON S.SNO=SC.SNO AND S.SNO='S6' JOIN C ON SC.CNO=C.CNOGO(4) USE JXGLGOSELECT SNAMEFROM SWHERE SNO IN(SELECT SNOFROM SCWHERE CNO IN (SELECT CNOFROM CWHERE TNAME='王志强'))GO17(5) USE JXGLGOSELECT CNOFROM CEXCEPTSELECT CNOFROM S JOIN SC ON S.SNO=SC.SNO AND S.SNAME='李小刚'GO(6) USE JXGLGOselect SNO,count(CNO) as 选修门数 from scgroup by SNO having count(CNO)>1GO3. 试用 T-SQL 查询语句表达下列对习题 2 数据库中三个基本表 S、SC、C 的查询:(1) 统计有学生选修的课程门数。(2) 求选修 C4 号课程的学生的平均年龄。(3) 求“王志强”老师所授课程的每门课程的学生平均成绩。(4) 统计每门课程的学生选修人数(超过 10 人的课程才统计) 。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。(5) 查询姓“王”的所有学生的姓名和年龄。(6) 在 SC 中查询成绩为空值的学生学号和课程号。(7) 查询年龄大于女同学平均年龄的男学生姓名和年龄。解:(1) USE JXGLGOSELECT COUNT(DISTINCT CNO)FROM SCGO(2) USE JXGLGOSELECT AVG(AGE)FROM S JOIN SC ON S.SNO=SC.SNO AND CNO='C4'GO(3) USE JXGLGOSELECT SC.CNO,AVG(GRADE)FROM SC JOIN C ON SC.CNO=C.CNO AND TNAME='王志强'GROUP BY SC.CNOGO(4) USE JXGLGOSELECT CNO,COUNT(SNO)FROM SC18GROUP BY CNO HAVING COUNT(*)>10ORDER BY 2 DESC,1GO(5) USE JXGLGOSELECT SNAME,AGEFROM SWHERE SNAME LIKE '王%'GO(6) USE JXGLGOSELECT SNO,CNOFROM SCWHERE GRADE IS NULLGO(7) USE JXGLGOSELECT SNAME,AGEFROM SWHERE SEX='M' AND AGE>(SELECT AVG(AGE)FROM SWHERE SEX='F')GO4. 试用 T-SQL 更新语句表达对习题 6-2 中数据库中三个基本表 S、SC、C 的各个更新操作:(1) 在基本表 S 中检索每一门课程成绩都大于等于 80 分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表 STUDENT(SNO,SNAME,SEX)。(2) 在基本表 SC 中删除尚无成绩的选课元组。(3) 把“张成民”同学在 SC 中的选课记录全部删去。(4) 把选修“高等数学”课程中不及格的成绩全部改为空值。(5) 把低于总平均成绩的女同学成绩提高 5%。解:(1) 建表:USE JXGLGOCREATE TABLE STUDENT(SNO CHAR(9) NOT NULL,SNAME CHAR(8) NOT NULL,SEX CHAR(2))GO查询结果插入:USE JXGLGOINSERT INTO STUDENT(SNO,SNAME,SEX)SELECT SNO,SNAME,SEX19FROM SWHERE SNO IN (SELECT SNOFROM SCGROUP BY SNO HAVING MIN(GRADE)>80)GO(2) USE JXGLGODELETE FROM SCWHERE GRADE IS NULLGO(3) USE JXGLGODELETE FROM SCWHERE SNO IN(SELECT SNO FROM S WHERE SNAME='张成民')GO(4) USE JXGLGOUPDATE SCSET GRADE=NULLWHERE GRADE80;(3) SELECT SNO,AVG_GRADEFROM S_GRADEWHERE C_NUM>(SELECT C_NUMFROM S_GRADESNO=’’);(4) UPDATE S_GRADESET C_NUM=C_NUM+1WHERE SNO=’’(5) DELETE FROM S_GRADEWHERE C_NUM>4;解:答:⑴ 允许查询。相应的操作如下:SELECT SNO,COUNT(CNO) AS C_NUM,AVG(GRADE) AS AVG_GRADEFROM SCGROUP BY SNO;⑵ 允许查询。相应的操作如下:SELECT SNO,COUNT(CNO)AS C_NUM23FROM SCGROUP BY SNOHAVING AVG(GRADE)>80;⑶ 允许查询。相应的操作如下:SELECT SNO,AVG(GRADE) AS AVG_GRADEFROM SCGROUP BY SNOHAVING COUNT(CNO)>(SELECT COUNT(CNO)FROM SCGROUP BY SNOHAVING SNO=’’);⑷ 不允许。C_NUM 是对 SC 中的学生选修课程的门数进行统计,在未更改 SC 表时,要在视图 S_GRADE 中更改门数,是不可能的。⑸ 不允许。在视图 S_GRADE 中删除选修课程的门数在 4 门以上的学生元组,势必造成 SC 中这些学生学习元组的删除,这不一定是用户的原意,因此使用分组和聚合操作的视图,不允许用户执行更新操作。6.简述创建索引的必要性和作用。答:数据库的索引就类似于书籍的目录,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。相反,如果没有索引,则会导致 SQL Server 搜索表中的所有记录,以获取匹配结果,这样就会大大降低查询的效率。7.聚集索引和非聚集索引有何种异同? 答:聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。聚集索引即需要对已有表数据重新进行排序(若表中已有数据) ,即删除原始的表数据后再将排序结果按物理顺序插回,故聚集索引建立完毕后,建立聚集索引的列中的数据已经全部按序排列。一个表中只能包含一个聚集索引,但该索引可以包含多个列。非聚集索引类似书本索引,索引与数据存放在不同的物理区域,建立非聚集索引时数据本身不进行排序。一个表中可以含多个非聚集索引。相同之处就是它们都是索引,都可以提高数据的查询速度。8.用 T-SQL 语句,按数据库 JXGL 中选修课程表 SC 的成绩列降序创建一个普通索引(非唯一、非聚集) 。解:USE JXGLGOCREATE INDEX SC_GRADE ON SC(GRADE DESC)GO第 8 章1.名词解释:24存储过程 触发器 用户定义函数答:存储过程:是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。触发器:是一种对表进行插入、更新、删除的时候会自动执行的特殊存储过程。用户定义函数:像系统内置函数一样,可以接受参数,执行复杂的操作并将操作结果以值的形式返回,也可以将结果用表格变量返回。2.对于例 5.9 教学管理数据库的表 S 和 SC,有下列程序清单,试叙述其功能。USE JXGLGODECLARE @MyNo CHAR(9)SET @MyNo='S7'IF (SELECT SDEPT FROM S WHERE SNO=@MyNo)='CS'BEGINSELECT AVG(GRADE) AS '平均成绩'FROM SCWHERE SNO=@MyNoENDELSEPRINT '学号为'+@MyNo+' 的学生不存在或不属于计算机科学系'GO 答:输入一个学生的学号,如果该学生属于计算机科学系则输出该学生的平均成绩,否则输出:该学号的学生不存在或不属于计算机科学系的提示。3.简述存储过程与触发器的区别。答:触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是 SQL 语句集。存储过程执行后驻留在计算机的高速缓冲区中,利用存储过程可以提高程序的效率,但存储过程只能通过调用来运行,可以有返回的状态值,存储过程可以在程序端调用执行。触发器是不可以在程序端调用的,它是 SQL 服务器端自动运行。触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须有用户、应用程序或者触发器来显示的调用并执行,而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。当一行被插入、更新或者删除时触发器才执行,同时还取决于触发器是怎样创建的,当 UPDATE 发生时使用一个更新触发器,当 INSERT 发生时使用一个插入触发器,当 DELETE 发生时使用一个删除触发器。4.AFTER 触发器和 INSTEAD OF 触发器有什么不同?答:AFTER 触发器要求只有执行某一操作 INSERT、UPDATE、DELETE 之后触发器才被触发,且只能定义在表上,也可以针对表的同一操作定义多个触发器以及它们触发的顺序。而 INSTEAD OF 触发器表示并不执行其定义的操作(INSERT、UPDATE、DELETE )而仅是执行触发器本身。既可以在表上定义 INSTEAD OF 触发器,也可以在视图上定义,但对同一操作只能定义一个 INSTEAD OF 触发器。5.在教学管理数据库中,创建一个名为 STU_AGE 的存储过程,该存储过程根据输入的学号,输出该学生的出生年份。解:USE JXGL25GOCREATE PROCEDURE STU_AGE@S_NAME CHAR(8)ASSELECT YEAR(GETDATE()-AGE) AS 'YEAR'FROM S WHERE SNAME=@S_NAMEGO6.在教学管理数据库中,创建一个名为 GRADE_INFO 的存储过程,其功能是查询某门课程的所有学生成绩。显示字段为:CNAME,SNO , SNAME,GRADE 。解:USE JXGLGOCREATE PROCEDURE GRADE_INFO@C_NAME VARCHAR(50)ASSELECT CNAME,SC.SNO,SNAME,GRADEFROM S JOIN SC ON S.SNO=SC.SNO JOIN C ON SC.CNO=C.CNO AND CNAME=@C_NAME GO7.在教学管理数据库中,创建一个 INSERT 触发器 TR_C_INSERT,当在 C 表中插入一条新记录时,触发该触发器,并给出“你插入了一门新的课程!”的提示信息。解:CREATE TRIGGER TR_C_INSERTON CFORINSERTAS PRINT '你插入了一门新的课程!'GO8-8 在教学管理数据库中,创建一个 AFTER 触发器,要求实现以下功能:在 SC 表上创建一个插入、更新类型的触发器 TR_GRADE_CHECK,当在 GRADE 字段中插入或修改成绩后,触发该触发器,检查分数是否在 0~100 之间。解:CREATE TRIGGER TR_GRADE_CHECKON SCFORINSERT,UPDATEAS DECLARE @SC_grede tinyintSELECT @SC_grade=SC.gradeFROM SCIF (@SC_grade NOT BETWEEN 0 AND 100)PRINT '你插入的成绩不在0~100 之间!'26GO9.在教学管理数据库中,创建用户定义函数 C_MAX,根据输入的课程名称,输出该门课程最高分数的同学学号。解:USE JXGLGOCREATE FUNCTION C_MAX(@C_NAME CHAR(8))RETURNS REALASBEGINDECLARE @S_MAX REALSELECT @S_MAX=MAX(GRADE) FROM SC JOIN C ON SC.CNO=C.CNO AND C.CNAME=@C_NAMERETURN @S_MAXENDGO10.在教学管理数据库中,创建用户定义函数 SNO_INFO,根据输入的课程名称,输出选修该门课程的学生学号、姓名、性别、系部、成绩。解:USE JXGLGOCREATE FUNCTION SNO_INFO(@C_NAME CHAR(8))RETURNS TABLEASRETURN(SELECT S.SNO,SNAME,SEX,SDEPT,GRADEFROM S JOIN SC ON S.SNO=SC.SNO JOIN C ON SC.CNO=C.CNO AND C.CNAME=@C_NAME) GO27
文档加载中……请稍候!
下载文档到电脑,查找使用更方便
10 库币 &&0人已下载
还剩页未读,继续阅读
<a href="UserManage/CopyrightAppeal.aspx?bid=59878" title="版权申诉" class="fLeft works-manage-item works-manage-report" target="_blank"
关&键&词: 数据库 系统 应用 教程 SQL SERVER 2008 习题 答案 主编 大学 免费 下载
& 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:数据库系统及应用教程(SQL Server 2008)习题1-8章答案.doc 链接地址:
当前资源信息
编号: 36328
类型: 共享资源
格式: DOC
大小: 320.50KB
上传时间:
&& 广告或垃圾信息
&& 色情、淫秽、低俗信息
&& 反政府、反人类、反社会等反动信息
&& 散布赌博、暴力、凶杀、恐怖或者教唆犯罪等信息
&& 侮辱、诽谤等人身攻击信息
&& 散布谣言、扰乱社会秩序,破坏社会稳定等信息当前位置: >>
14年计算机等级考试 四级 数据库工程师复习资料
《全国计算机等级考试四级教程--数据库工程师》 第一章 引 论 1、 数据库技术产生于 20 世纪 60 年代,是信息系统的核心技术和重要基础; 2、 计算机科学与技术学科划分为四个专业方向:计算机科学(CS) ;计算机工程(CE) ;软件工程(SE) ; 信息技术(IT) 。 1.1 基本概念 1.1.1 信息与数据 1、 信息、物质、能量是组成客观世界并促进社会发展的三大基本要素; 2、 信息(Information)--是客观世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用 的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。 3、 数据(Data)--是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。不同的物理 符号体现出数据的不同表现形式。 4、 信息与数据间存在固有联系,数据是信息的符号表示,或称为载体。信息则是数据的语义解释,是数据的 内涵,信息以数据的形式表现出来,并为人们理解和接受。 5、 数据处理(Data Processing)--是指对数据进行分类、收集、组织、存储,进而从已数据出发,抽取或推 导出新的数据,这些数据表示了新的信息。 6、 数据管理(Data Management)--是指对数据的分类、收集、组织、编码、存储、检索和维护,是数据处 理业务的重要环节。 7、 数据处理与数据管理的区别在于,数据处理除了具有数据管理功能外,还可通过数据管理得到的数据进一 步深加工,从中获取新的数据和信息。 1.1.2 数据库系统 1、 数据库(DB,DataBase)--是长期存储在计算机内有组织的、大量的、共享的数据集合; 2、 数据库管理系统(DBMS,Database Management System)--是指在计算机系统中,位于用户与操作系 统之间的数据管理系统软件,是数据库系统的核心。 3、 数据库系统(DBS,DataBase System)--是指在计算机系统中引入数据库后的软硬件系统构成,DBS 一 般分成三个层次: (1)计算机硬件平台; (2)系统软件和应用软件; (3)用户;在不引起混淆和歧义的情 况下,数据库系统简称为数据库。 4、 (狭义的) 数据库系统―是由数据库和数据库管理系统组成的软件系统, 主要为用户提供数据存储和查询、 插入、修改、删除、更新等数据管理功能。 5、 (狭义的)数据库应用系统(DBAS,DataBase Application System)―是由数据库、数据库管理系统、 数据库应用程序组成的软件系统,它面向具体应用领域,提供了更为复杂的数据处理功能。 6、 数据库技术―是研究数据库的结构、存储、设计、管理和使用的一门计算机应用学科。 7、 数据库技术与其它计算机科学有密切关系: (1) 数据库技术以文件系统为基础发展而来,DBMS 需要操作系统的支持,数据库以文件形式存储在 外部存储上的; (2) 数据库与数据结构的关系很密切,数据库技术不仅用到数据结构中的链表、树、图等知识,各种 数据模型本身就属于复杂数据结构; (3) 主流的关系数据库系统,其理论基础是关系数据模型,而该模型是在离散数学集合论中“关系”这 一基本概念上发展起来的; (4) 当用户访问数据库,DBMS 对用户提交的查询操作类似于,计算机编译系统对程序的编译过程; (5) 开发一些大型的 DBS 或 DBMS 的过程,要遵循软件工程的开发模式。 1.2 数据模型 1.2.1 数据模型概念 1、数据模型(Data Model)--是数据库系统的形式框架,是用来描述数据的一组概念和定义,包括描述数据、 数据联系、数据操作、数据语义以及数据一致性的概念工具; 2、数据模型应满足: (1)能够比较真实地模拟现实世界; (2)容易为人们所理解; (3)便于在计算机上实现。 3、 数据模型的组成: (1) 数据结构:用于描述系统的静态特征,从语法角度表述了客观世界中数据对象本身的结构和数据 对象之间的关联关系,是刻画一个数据模型性质最重要的方面。在数据库系统中,通常按照数据 结构的类型来区分、命名各种数模,如层次、网状、关系数模。 (2) 数据操作:用于描述系统的动态特征,是一组对数据库中各种数据对象允许执行的操作和操作规 则组成的集合。数据操作可以是检索、插入等,数模必须定义这些操作的确切含义、操作符号、 操作规则以及实现操作的数据库语言。 (3) 数据完整性约束:是一组完整性规则的集合,它定义了数模必须遵守的语义约束,也规定了数据 库中数据内部及数据之间联系所必须满足的语义约束。它限定了数据库的状态以及状态的变化, 以便维护数据的正确性、有效性。 1.2.2 数据模型分类 1、 用数据模型这一概念来描述数据库的结构和语义,通过现实世界―信息世界―机器世界的抽象转换过程构 建数据库,并根据模型所定义的规范去管理和使用数据。-1- 2、 建模过程: (1)将现实世界的数据对象抽象为信息世界中的某一信息结构; (2)再将信息结构转换为机器 世界中某一具体 DBMS 支持的数据模型,并存储于计算机中。 3、 数据模型分类: (1) 概念数据模型(概念模型) :按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一 层抽象,强调其语义表达功能,易于用户理解,是用户与设计人员交流的语言,主要用于数据库 设计。最常用的是实体―联系模型。 (2) 数据结构模型(表示型/实现型) :是机器世界中与具体 DBMS 相关的数据模型,包括关系模型、 网状模型和层次模型 (3) 物理数据模型:属底层数据模型,描述数据的实际存储方式。 1.3 数据视图与模式结构 1.3.1 数据视图与数据抽象 1、 数据视图:指从某个角度看到的客观世界数据对象的特征,是对数据对象某一方面特征的描述。 2、 数据抽象: 是一种数据描述和数据库设计原则, 是指专注于数据对象的某方面特征, 而忽略其他特征。 3、 集和值:集是指对某一类数据的结构和属性的说明,值是集的一个具体赋值; 4、 数据模式:对数据库中数据某方面结构和特征的描述,它仅涉及集的描述,不涉及具体的值。 1.3.2 三级模式结构 1、 数据库三级模式结构―外部级、概念级和内部级,分别定义了外模式、模式和内模式,用于从不同角 度描述数据库结构。 2、 模式: (1) 也称逻辑模式、概念模式; (2) 对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图; (3) 模式不仅定义了数据的逻辑结构,还定义了数据之间的联系、与数据的关的安全性和完整性 要求; (4) 一个数据库只有一个模式,建立在某种数据结构模型基础上。 3、 外模式: (1) 也称子模式、用户模式、用户视图; (2) 是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。 (3) 一个数据库可以有多个外模式,每个外模式描述了某个特定用户所使用的局部数据的逻辑结 构和特征,是与某一应用有关的数据的逻辑表示。 (4) 外模式还是保证数据安全的有力措施,每个用户只能看见和访问所对应的外模式中的数据, 其它数据对他是不可见的。 4、 内模式: (1) 也称物理模式、存储模式; (2) 是对数据库中数据的物理结构和存储方式的描述,代表了数据在数据库内部的表示方式和物 理组织结构; 1.3.3 二级映象与数据独立性 1、 外模式/模式映象: (1) 定义了数据库中不同用户的外模式与数据库逻辑模式之间的对应关系; (2) 可有多个外模式/模式映象,对于每个外模式,需要一个外模式/模式映象来定义该外模式与 模式之间的对应关系; (3) 当模式发生变化时,只需调整外模式/模式间的映象关系,而外模式无需修改,保证了数据与 应用程序的逻辑独立性,称为数据的逻辑独立性。 2、 模式/内模式映象: (1) 定义了数据库中数据全局逻辑结构,与这些数据在系统中的物理存储组织结构之间的对应关 系。 (2) 模式/内模式映象是唯一的; (3) 当内模式发生变化时,只需调整模式/内模式映象关系,而模式无需修改,保证了数据库中的 数据与应用程序间的物理独立性,称为数据的物理独立性。 1.4 数据库系统体系结构 1、 数据库系统体系结构:是指数据库系统的组成构件、各构件的功能及各构件间的协同工作方式; 2、 分类: (1) 集中式:全部数据和数据管理功能均集中在一台计算机上的数据库系统;包括单用户和主从 式两种,单用户 DBS 是指系统由一个用户独占,不同机器间不能共享数据;主从式 DBS 是 指一个主机带多个分时多用户的 DBS; (2) 分布式:数据库中的数据在逻辑上是一个整体,但在物理上却可以分布在网络中不同数据管 理节点上; (3) 客户/服务器:将 DBMS 和数据库应用分开,网络中某些节点上的计算机专门执行 DBMS 功 能,负责数据管理服务,称为数据库服务器;其他节点的计算机上安装 DBMS 的外围应用开 发工具,支持用户的应用,主要负责数据表示服务,称为客户端; (4) 并行式:硬件平台是并行计算机系统,使用多个 CPU 和多个磁盘进行并行数据处理和磁盘-2- 访问操作,以提高执行速度; WEB 式: 由通过互联网连接起来的客户端、WEB 服务器、数据库服务器组成。 1.5 数据库管理系统 1.5.1 数据库管理系统的功能 (1) 数据定义功能:DBMS 提供了数据定义语言(DDL) ,用户利用 DDL 定义数据库对象的三级 模式结构,描述数据库的结构特征。 (2) 数据操纵功能:DBMS 提供数据操纵语言(DML) ,用户利用 DML 对数据进行查询、插入、 删除或更新; (3) 数据库运行管理和控制功能 (4) 数据库的建立和维护功能 1.5.2 数据库系统的全局结构 1、 DBS 可分为用户、人机交互界面、DBMS 和磁盘四个层次; 2、 用户可分为四类:数据库管理员 DBA;专业用户;应用程序员;终端用户; 3、 DBMS 可分为两部份: (1) 查询处理器:面向用户查询请求;包括以下几个功能模块:DML 编译器、嵌入式 DML 的预 编译器、DDL 编译器、查询执行引擎; (2) 存储管理器:面向数据存储访问,包括以下几个功能模块:权限和完整性管理器、事务管理 器、文件管理器、缓_区管理器; 4、 磁盘存储的类型: (1) 以数据库文件方式存储的应用数据; (2) 数据字典; (3) 为提高查询速度而设置的数据库引擎; (4) DMS 运行时的统计分析数据; (5) 日志信息。 1.6 数据库技术的发展和应用 1、 第一代 DBS:60 年代末 70 年代初,层次型和网状型 DBS; 2、 第二代 DBS:70 年代后期,关系数据库系统; 3、 新型 DBS:80 年代,分布式数据库系统;90 年代,面向对象数据库系统、网络数据库系统 (5)2.1.1 软件工程与软件开发方法 1、 软件工程:指导计算机软件开发和维护的工程科学,它采用工程化的概念、原理、技术和方法,以及 正确的项目管理技术,来开发和维护软件;它将系统化、规范化、定量化方法应用于软件的开发、操 作和维护,也就是将工程化应用于软件生产; 2、 软件工程的目标:在给定成本、进度的前提下,开发出满足用户需求并具有下述特征的软件产品:可 修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互 操作性。 3、 软件生命周期:指软件产品从考虑其概念开始,到该产品不再使用的整个时期。一般包括概念阶段、 需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段、运行阶段与维护阶段。 4、 软件项目管理:为了能使软件开发按预定的质量、进度和成本进行,而对成本、质量、进度、人员、 风险等进行分析和有效管理的一系列活动。 5、 软件工程以关注软件质量为特征,由方法、工具和过程三部分组成; 6、 软件过程模型(软件开发模型) :是对软件过程的一种抽象表示,表示了软件过程的整体框架和软件 开发活动各阶段间的关系,常见的有:瀑布模型(也称软件生命周期模型)、快速原型模型、增量模型 和螺旋模型。 2.1.2 DBAS 软件组成 1、 数据库应用软件在内部可看作由一系列软件模块/子系统组成,这些模块/子系统可分成两类: (1) 与数据访问有关的数据库事务模块: 利用 DBMS 提供的数据库管理功能, 以数据库事务方式 直接对数据库中的各类应用数据进行操作,模块粒度较小; (2) 与数据访问无直接关联的应用模块:在许多与数据处理有关的应用系统中,对数据库的访问 只是整体中的一部分,其他功能则与数据库访问无直接关系,这部分模块粒度可以比较大。 2、 DBAS 设计开发的硬件方面:主要涉及根据系统的功能、性能、存储等需求选择和配置合适的计算机 硬件平台,并与开发好的 DBAS 软件系统进行集成,组成完整的数据库应用系统; 2.1.3 DBAS 生命周期模型 1、 数据库应用系统的生命周期模型: (1) 参照软件开发瀑布模型的原理,DBAS 的生命周期由项目规划、需求分析、系统设计、实现 和部署、运行管理与维护等 5 个基本活动组成;-3-第二章 数据库应用系统生命周期 2.1 数据库应用系统生命周期 将快速原形模型和增量模型的开发思路引入 DBAS 生命周期模型,允许渐进、迭代地开发 DBAS; (3) 根据 DBAS 的软件组成和各自功能,细化 DBAS 需求分析和设计阶段,引入了数据组织与 存储设计、 数据访问与处理设计、 应用设计三条设计主线, 分别用于设计 DBAS 中的数据库、 数据库事务和应用程序; (4) 将 DBAS 设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步的设计内容又涵 盖了三条设计主线。 2.2 规划与分析 2.2.1 系统规划与定义 1、 定义:系统规划与分析是面向将要开发的 DBAS,通过了解用户实际需求,明确该系统需要实现的目 标和任务,并从数据管理和数据处理的角度,确定系统中数据库软件的功能、性能范围; 2、 系统规划与定义包括: (1) 任务陈述:描述所要开发的 DBAS 的总体目标; (2) 确定任务目标; (3) 确定系统范围和边界; (4) 确定用户视图; 2.2.2 可行性分析 1、 可行性分析包括以下四方面: (1) 经济可行性:对项目进行成本效益分析;DBAS 的成本主要包括:A、软硬件购置费用;B、 系统开发费用;C、系统安装、运行、维护费用。 (2) 技术可行性:是根据用户提出的系统功能、性能及实现系统的各项约束条件,对系统软件、 硬件、技术方案作出评估和选择建议; A、 硬件可行性研究是分析 DBAS 的硬件平台环境和设置; B、 软件可行性研究包括:对可用的 DBMS 和操作系统的选型评估,对中间件和开发环境的选 型建议,对 DBAS 开发模式和编程语言的建议; C、 技术方案的选择是根据系统技术需求,提出 DBAS 可能采用的合理技术方案和关键技术; (3) 操作可行性:是论证是否具备 DBAS 开发所需的各类人员资源、软件资源、硬件资源和工作 环境等,以及为支持 DBAS 开发如何去改进加强这几方面资源。 (4) 开发方案选择:目的是提出并评价实现系统的各种开发方案,从中选出一种适用于 DBAS 软 件的开发方案; 2.2.3 项目规划 1、 项目规划是项目管理者对资源、 成本和进度做出合理估算, 并在此基础上制定切实可行的 DBAS 项目 开发计划。 2、 项目规划包括以下内容: (1) 确定项目的目标和范围; (2) 根据 DBAS 软件开发模型,分解和定义整个项目包括的工作活动和任务; (3) 估算完成该项目的规模和所需各种资源; (4) 制定合理的 DBAS 项目计划 3、项目规划的结果应形成数据库应用系统项目计划文档,即项目计划书。 2.3 需求分析 1、 数据库应用系统需求是指用户对 DBAS 在功能、性能、行为、设计约束等方面的期望和要求; 2、 DBAS 需求分析是在已经明确的 DBAS 系统范围基础上, 通过对应用问题的理解和分析, 采用合适的 工具和符号,系统地描述 DBAS 的功能特征、性能特征和约束,并形成需求规范说明文档; 3、 需求分析过程由需求获取、需求分析、需求描述和规范说明、需求验证等组成; 4、 DBAS 的需求分析包括: (1) 数据需求分析; (2) 数据处理需求分析; (3) 业务需求分析; (4) 分析数据库系统在性能、存储、安全、备份与恢复等方面的要求; 2.3.1 数据与数据处理需求分析 1、 数据需求分析:是从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构, 与数据处理需求分析结果一起,组成数据字典; 2、 数据处理需求分析:是从数据访问和处理的角度,明确对各类数据项所需进行的数据访问操作,分析 结果可表示为数据流图或事务规范; 3、 事务规范包括: (1)事务名称; (2)事务描述; (3)事务所访问的数据项; (4)事务用户; 2.3.2 业务规则需求分析 1、业务规则需求分析:是从 DBAS 高层目标和整体功能出发,分析系统或系统中一些大粒度子系统应具 有的业务类型和功能,明确用户或外部系统与 DBAS 的交互模式;-4-(2) 2.3.3 性能需求分析 1、 DBAS 的性能指标: (1) 数据操作响应时间(或数据访问响应时间) :从提交请求到返回结果的时间; (2) 系统吞吐量:指系统在单位时间内所完成的事务或查询的数量,单位为 TPS; (3) 允许并发访问的最大用户数:在保证响应时间的前提下,系统最多允许多少用户同时访问数 据库; (4) 每 TPS 代价值,用于衡量系统性价比的指标 2、 影响 DBAS 性能的因素: (1) 系统硬件资源; (2) 网络通信设备性能; (3) 操作系统环境; (4) 数据库的逻辑设计和物理设计质量,数据库配置参数; (5) DBAS 的配置和性能; (6) 数据库应用程序自身。 2.3.4 其它需求分析 1、 存储需求分析:是指估计 DBAS 系统需要的数据存储量,包括: (1)初始数据库大小; (2)数据库 增长速度;存储总量估算可采用:根据数据字典中每个数据项的结构描述信息,估计每个数据项的容 量,将所有数据项的容量累加; 2、 安全性需求分析: (1) DBAS 系统应达到的安全控制级别; (2) 各类用户的数据视图和视图访问权限; (3) DBAS 应有的口令保护机制或其它安全认证机制,用以控制用户登录数据库系统。 3、 备份和恢复需求分析: (1) DBAS 运行过程中备份数据库的时间和备份周期; (2) 所需备份的数据是全部数据库数据,还是一部分; (3) 备份方式是采用完全备份还是采用差异备份。 2.4 系统设计 2.4.1 概念设计 1、 数据库概念模型设计:是根据数据需求分析阶段得到的需求结果,分析辨识需要组织存储在数据库中 的各类应用领域数据对象的特征及其相互之间关联关系,并采用概念数据模型表示出来,得到独立于 具体 DBMS 的数据库概念模型; 2、 ER 方法: (1)选择局部应用; (2)分别设计各个局部 ER 图; (3)局部 ER 图合并; 3、 系统总体设计: (1) 确定 DBAS 体系结构; (2) 系统硬件平台和操作系统、数据库管理系统等系统软件的选型和配置; (3) 应用软件结构设计 (4) 对需求分析阶段识别出的业务规则进行初步设计,细化业务规则流程,明确采用的关键技术 和算法; (5) 对系统采用的关键技术进行方案选型和初步设计。 2.4.2 逻辑设计 1、 数据库逻辑结构设计:指从数据库的概念模型出发,设计表示为逻辑模式的数据库逻辑结构。 (1) ER 图转换为初始关系模式; (2) 对初始关系模式进行优化; (3) 检查关系表对数据库事务的支持性; (4) 确定关系模式的完整性约束; (5) 从数据安全性和独立性出发,设计用户视图。 2、 应用程序概要设计(II) ; 3、 数据库事务概要设计; 2.4.3 物理设计 1、 数据库物理结构设计:主要指数据文件在外存上的存储结构和存取方法,它依赖于系统具体的硬件环 境、操作系统和 DBMS; (1) 数据库逻辑模式调整; (2) 选择或配置基本关系表的文件组织形式; (3) 数据分布设计; (4) 安全模式设计; (5) 确定系统配置; (6) 物理模式评估; 2、 数据库事务详细设计:根据事务流程,利用 SQL 语句、数据库访问接口,采用高级程序设计语言或 DBMS 提供的事务实现机制,设计数据库事务。-5- 3、 应用程序详细设计: 1、 建立数据库结构; 2、 数据加载; 3、 事务和应用程序的编码及测试; 4、 系统集成、测试与试运行; 5、 系统部署;2.5 实现与部署2.6 运行管理与维护 2.6.1 日常维护 (1) 数据库的备份与恢复 (2) 完整性维护 (3) 安全性维护 (4) 存储空间管理 (5) 并发控制及死锁处理 2.6.2 系统性能监控和分析 1、 统计数据可以通过两种途径收集: (1) 由 DBMS 本身自动收集和存储统计数据 (2) 通过监控系统得到 2.6.3 系统性能优化调整 1、 糸统性能优化的手段有:数据查询调整与优化、索引调整、数据库摸式调整、DBMS 和操作系统参数 调整等。 2、 模式调整主要涉及逻辑模式调整,可以从下考虑: (1) 已达到第三范式的基本表,不要进一步规范化为 BCNF; (2) 在分布式数据库中,对一个基本表中某些频繁被访问的数据,可以按水平分区或垂直分区方 式拆分基本表。 2.6.4 系统升级 1、 改进应用H序; 2、 数据库重组; 3、 DBMS 和 OS 版本升级 第 3 章 需求分析及功能建模方法 3.1 需求分析概述3.1.1 需求分析概念 1、 所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。 2、 需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并 采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动 的集合; 3、 需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方 面的期望和要求的集合; 4、 需求获取的困难: (1) 软件功能复杂; (2) 需求的可变性; 5、 需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系 及其交流的信息。 6、 需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数 据。 7、 功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。 8、 需求分析工作是系统分析员与用户不断交互的过程中完成的。 3.1.2 系统分析员的职能 1、 系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要 求,即用户要做什么。 2、 系统分析员应该具备的素质: (1) 获取需求的能力; (2) 管理及沟通能力; (3) 技术素养; 3.1.3 需求获取的方法 常用的几种获取需求的方法: (1)面谈; (2)实地观察; (3)问卷调查; (4)查阅资源; 3.1.4 需求分析过程 1、 标识问题: (1) 需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;-6- (2) 标识问题从现行系统的业务流程做起,理解现行系统的业务流程; (3) 在标识理解需求的同时,还要注意确定系统的人机界面; 2、建立需求模型: (1) 模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的 因素,其目的是把复杂的事物变得简单,便于认识和分析; (2) 目前常用的模型方法主要有 DFD 数据流图和 IDEFO,都属于结构化分析方法,其特征是抽 象和分解; (3) 首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非 主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐 步求精的方法对复杂的问题进行分解; (4) 结构化分析及建模方法的主要优点: (A) 不过早陷入具体的细节; (B) 从整体或宏观入手分析问题; (C) 通过图形化的模型对象直观地表示系统要做什么,完成什么功能; (D) 图形化建模方法方便系统分析员理解和描述系统; (E) 模型对象不涉及太多的技术术语,便于用户理解; 3、描述需求: (1) 需求描述的目标:对软件项目功能性和非功能性的需求全面描述; (2) 功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么, 实现什么功能以及输入输出等; (3) 非功能性需求:软件项目对实际运行环境的要求; (4) 需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述; 功能需求;信息需求;性能需求;环境需求;其他需求; (5) 在对需求进行分析过程中,系统分析员要经常考虑的问题: (A) 描述的需求是完全的吗? (B) 需求描述是正确的和一致的吗? (C) 描述的这些需求是可行的、实际可操作的吗? (D) 描述中的每一条需求都是客户需要的吗? 4、确认需求: 1、 评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。 3.2 DFD 建模方法 3.2.1 DFD 方法的基本对象 1、 数据流:具有名字且有流向的数据,用标有名字的箭头表示。 2、 处理:表示对数据的加工和变换,在图中用矩形框表示。 3、 数据存储:表示用数据库形式存储的数据,对其存取分别以指向或离开数据存储的箭头表示; 4、 数据源及数据终点:表示当前系统的数据来源和去向,其图形符号以平行四边形表示。 3.2.2 开发 DFD 图 1、 DFD 图采用自顶而下逐步细化的结构化分析方法表示目标系统; 2、 DFD 方法应以软件项目的功能为中心进行抽象和分解,以数据流的变换来分析数据对企业中各类业 务活动的影响; 3.2.4 数据字典 1、 数据字典包括以下说明信息: (1) 源点及终点词条描述; (2) 数据流词条描述; (3) 数据存储; (4) 处理描述; (5) 数据元素词条描述。 3.3 IDEF0 建模方法 3.3.1 概述 1、 IDEF0 的基本思想是结构化分析方法,强调自顶而下有控制地逐步地展开细节,全面地描述系统,且 通过建模来理解一个系统。一个模型由图形文字说明、词汇表及相互的交叉引用表组成。 2、 IDEF 方法的优点:具有模型元素单一、语义丰富、更易于从全局角度分析考察问题,模型容易理解。 3.3.2 IDEF0 方法 1、基本元素 (1) 矩形:代表活动,活动名称标在矩形内,活动编号按要求标在矩形框右下角指定位置; (2) 箭头:左边的输入箭头代表完成活动需要的数据、上方的控制箭头描述了影响活动的执行的 事件或约束、右边的输出箭头说明由活动产生的结果及信息、下方进入的机制箭头表示实施 该活动的物理手段或资源。 (3) 输入输出箭头描述活动是什么(what) 、控制箭头描述为何这么做(why) 、机制箭头表示如-7- 何做(how) 。 2、IDEF0 模型 (1) 一个 IDEF0 模型由一组图形组成, 这些图形组成一个由父到子的层次结构图, 这组图形把一 个复杂事物按自顶向下逐步细化的方式分解成一个个简单的或多个组成部分; 3、 建模规则 (1) 矩形框:用动词为矩形内活动命名,每个矩形要至少有一个控制箭头和输出箭头,可以没有 输入,但不可以同时没有输入和控制。 (2) 箭头:箭头代表数据约束,而不是代表流或顺序; (3) 其他: (A) ICOM 码:只有一端与矩形相连的箭头叫边界箭头,这些箭头表示父矩形框的输入、控 制和输出。IDEF0 用专门的记号 ICOM 码来说明父子图中的箭头关系。子图中每个边界 箭头的开端分别用字母 I、C、O、M 来标明是输入、控制、输出及机制,再用一个数字 表示其在父矩形框中箭头的相对位置。 (B) 结点号:IDEF0 模型是一组有一定层次结构的图形,通常用结点号来标志图形或矩形框 在层次图中的位置; (C) 模型名:每个模型有一个名字,通常用名字代表主题,用子名字表示不同的模型。基本 名字与子名字间用“/”隔开,如 A/B/C,A 是主题、B 是模型号、C 是结点号。 3.3.3 建模过程及步骤 1、 IDEF0 建模过程及步骤: (1) 明确目的,确定范围:在建模前首先要明确目的和意图,确定问题域; (2) 建立内外关系图 A-0 图:根据系统目标、功能建立内外关系图 A-0 图,以确定整个模型的内 外关系,确定系统的边界; (3) 构造顶层图:把 A-0 图分解成 3~6 个主要部分得到 A0 图,A0 图是模型真正的顶层图; (4) 开发 IDEF0 层次结构图: A0 图中的每个矩形框进行分解, 对 就形成了基本的图形层次结构。 在分解时要列出所有的数据项和活动表,分解的次序采用以下原则: (A) 保持在同一水平上进行分解,均匀的模型深度; (B) 按困难程序进行选择; (5) 写文字说明; (6) 检查确认图形; 3.4 DFD 与 IDEF0 的比较 1、 DFD 与 IDEF0 共同点:都是结构化分析思想,强调自顶而下逐步求精的方法对现实世界建模,先抓 住主要的问题,形成较高层次的抽象,再由粗到细、由表及里地逐步细化,将一个大问题分解成几个 小问题,对这小问题再进行分析求解; 2、 DFD 与 IDEF0 区别: (1) DFD 图用箭头(数据流)来描述数据移动的方向、数据处理及处理之间的数据依赖关系。 IDEF0 图也用箭头代表数据流,但在 IDEF0 中不是强调流或顺序,而是强调数据约束。 (2) 从表达形式上看,DFD 图与 IDEF0 图都是用箭头和处理表达一个企业或组织的业务流程。 但 IDEF0 图的箭头不仅能够表示数据流, 还可以表示控制流和说明处理或实施方式的一些约 束; (3) 从模型元素的组成上来看,DFD 模型由 4 种元素组成,即外部项(数据源及终点)、数据流、 数据存储和处理。而 IDEF0 模型元素的组成更加简单,只有 2 种元素组成,即箭头和活动; (4) 从模型规范上来讲,IDEF 方法更加规范; (5) IDEF0 模型结构清楚,便于理解和沟通。 第四章 数据库概念设计及数据建模 4.1 数据库概念设计概述4.1.1 数据库概念设计的任务 1、 定义和描述应用领域涉及的数据范围; 2、 获取应用领域或问题域的信息模型; 3、 描述清楚数据的属性特征; 4、 描述清楚数据之间的关系; 5、 定义和描述数据的约束; 6、 说明数据的安全性要求; 7、 支持用户的各种数据处理需求; 8、 保证信息模型方便地转换成数据库的逻辑结构,同时便于用户理解。 4.1.2 概念设计过程 1、 概念设计的依据:是需求分析阶段的文档,通过对这些文档的分析理解,构造出信息模型,编写数据 库概念设计说明书,信息模型和数据库概念设计说明书是数据库逻辑设计的依据; 2、 概念设计的基本步骤: (1) 确定实体集;-8- 确定联系和联系类型; 建立由信息模型表示的企业模型; 确定实体集属性; 对信息模型优化。 4.2 数据建模方法 1、 数据建模方法的共同特点是: (1) 能够真实客观地描述现实世界中的数据及数据之间的关系; (2) 组成模型的概念少,语义清楚,容易理解; (3) 不同概念的语义不重叠,概念无多义性; (4) 用图形方式描述数据,数据直观易懂,有利于数据库设计者和用户交流; (5) 这种数据模型容易转换成数据库逻辑设计阶段需要的数据结构。 4.3 ER 建模方法 4.3.1 基本概念 1、 实体或实例:指客观存在并可相互区分的事物,可以是一个具体的人或物,也可以是抽象的事件或概 念; 2、 实体集:表示一个现实的和抽象事物的集合,这些事物必须具有相同的属性或特征。 3、 属性:用于描述一个实体集的性质和特征; 4、 码:实体集中能惟一标识每一个实例的属性或属性组; 5、 联系:描述现实世界中实体之间的关系。 (1)一对一联系; (2)一对多联系; (3)多对多联系 4.3.2 ER 方法语法 1、 ER 方法中用矩形框表示实体集,矩形框内写上实体集的名称; 2、 ER 模型用菱形表示联系,联系名写在菱形框内; 3、 ER 模型中实体集的属性用椭圆或圆角矩形框表示,属性名字写在其中。 4.4 IDEF1X 建模方法 4.4.1 IDEF1X 概述 1、 IDEF0 侧重描述系统功能,被称为功能建模方法;IDEF1X 侧重分析、抽象和概括应用领域中的数据, 称为数据建模方法; 2、 IDEF1X 方法具有丰富的语法和语义; 3、 实体集分为: (1)独立标识符实体集; (2)从属标识符实体集; 4、 实体集之间的联系分为: (1)标定型联系; (2)非标定型联系; (3)分类联系; (4)不确定联系 4.4.2 IDEF1X 模型元素 1、 实体集: (1) 实体集语义:如果一个实体集的每一个实例都能被惟一地标识,而不决定于它与其他实体的 联系,那么该实体集称为独立实体集;否则就叫从属实体集; (2) 实体集语法:IDEF1X 用矩形框来表示独立实体集,用圆角矩形框来表示从属实体集; 2、 联系: (1) 联系语义: (A) 标定型联系:一个“确定型联系”中,如果子女实体集中的每个实例都是由它与双亲的联 系而确定的,这个关系称为“标定型联系” ; (B) 非标定型联系:一个“确定型联系”中,如果子女实体集中的每一个实例都能被惟一地确 认而无需了解与之相联系的双亲实体集的实例,这个问题关系叫“非标定型联系” 。 (C) 分类联系:是两个或多个实体集之间的联系,且在这些实体集中存在一个一般实体集, 它的每一个实例都恰好与一个且仅一个分类实体集的一个实例相联系。 (D) 不确定联系:一个非确定联系又称为多对多联系,这种联系关联的两个实体集之间,任 一实体集的一个实例都将对应另一实体集的 0 个、1 个或多个实例。 (2) 联系的语法: (A) 标定联系语法:在 IDEF1X 图中,联系的语法用直线表示,在一个标定型联系中,子女 实体集总是一个从属实体集,用圆角矩形框表示; (B) 非标定联系语法:如果两个实体集之间有关系,并且是一个非标定联系,就用一条虚线 把它们连接起来。 (C) 分类联系语法:一般实体集的一个实例只能与分类实体集的一个实例相对应; (D) 不确定联系 m:n 的语法:不确定联系用一个两端带有实心圆的线段描述,表示多对多的 连接关系。 3、 属性 (1) 属性的语义: 用来描述一类现实或抽象事物的特征或性质。 一个属性的具体取值叫属性实例, 它由属性的类型和值来定义。 (2) 属性的语法 (A) 主码和非主码属性语法:在一个实体集中属性要有惟一的名字,属性名由名词表示,主-9-(2) (3) (4) (5) 码属性名后加(PK)标注,被列在属性列表的顶端,并用水平线将主码和其他属性分 开。 (B) 外码语法:在外码属性后加“FK”来识别由联系继承得到的外来属性。 4.4.3 建模过程 建模过程:建模规划及准备、定义实体集、定义联系、定义健、定义属性 1、第一阶段:建模规划及准备 (1) 建模目标: (A) 目标说明:回答将构造的模型完成什么功能,涉及的问题和数据范围,同时说明是一个 当前系统模型还是待建模型。 (B) 范围说明:在建模初期要给出模型覆盖的问题范围; (2) 建模计划 (A) 项目说明; (B) 收集数据; (C) 定义实体; (D) 定义联系; (E) 定义码属性; (F) 定义非码属性; (G) 确认模型; (H) 评审验收。 (3) 组织队伍:包括项目负责人、建模者、信息源、课题专家、评审委员会 2、 第二阶段:定义实体集 (1) 目标是标识和定义应用领域中的实体集,方法是分类标识原始材料中的所有名词; (2) 区别实体集名词和非实体集名词的方法,是否具有下列特征: (A) 它能够被描述或说明吗? (B) 有多少同类的实例吗? (C) 每个实例可以被标识和区分吗? 3、 第三阶段:定义联系 (1) 标识实体集之间的联系:建立联系矩阵,联系矩阵由一个二维数组表示。把实体集沿水平和 垂直两方向列出,分析两个实体间的联系,有联系就用“X”表示,不存在联系用“null”表示。 联系只标识直接关系,不标识间接关系。 (2) 定义联系:包括表示依赖、命名联系、关于联系的说明;当实体集之间的依赖关系建立后, 就可以命名联系了。联系的名字可以动词表示。原则必须是具体的、简明的和有意义的。 (3) 构造实体级数:实体级图的范围和数目,依赖于建模的规模和建模问题涉及的实体集数目。 4、 第四阶段:定义健 (1) 分解不确定的联系:把实体级图中不确定的关系转换成确定的连接形式,把每一个不确定的 联系转换成为两个确定的联系; (2) 标识码属性:码属性是那些能够惟一识别实体集中每一个实例的属性; (3) 迁移主码:把一个实体集的主码复制到其他有关实体集的过程,但要遵守以下规则: (A) 在一个联系中,迁移总是从父到子或从一般实体集移向分类实体集; (B) 主码属性才能被迁移,如主码由多个属性组成,则要全部迁移; 5、 第五阶段:定义属性 (1) 标识和定义非主属性; (2) 建立属性的所有者; (3) 确认属性的定义; (4) 绘制局部数据视图; (A) 实体集的名称和编号写在矩形框外的上面; (B) 主码属性写在矩形框内水平线的上面并用“PK”标注; (C) 外码属性写在矩形框内水平线的下面并用“FK”标注; (D) 非主属性也可以写在矩形框内水平线的下面; 第五章 关系数据库逻辑设计 5.1 概述 5.2 基本概念5.2.1 关系模型 1、 关系模型采用一个二维表格在计算机中组织、存储、处理和管理数据。 (1) 关系名(数据库名) :由字母数字组成; (2) 属性名; (3) 关系模式和关系: 关系模式描述关系的静态结构, 由模式名、 关系模式所包含的属性(属性名、 类型和长度)及属性值所满足的条件组成模式定义。 (4) 元组:描述关系中的行;- 10 - (5) 域:它定义关系的每个属性取值的类型; (6) 主码:能够惟一标识关系中每一个元组的属性或属性组; (7) 关系的数学定义:关系模式是建立在集合集论的基础上的,用数学的概念定义关系有; (A) 定义一:域是值的集合,同一个域中的值具有相同的数据类型; (B) 定义二: (C) 定义三: (D) 当关系引用了属性名后关系具有以下属性: [1] 不能有重复的元组; [2] 元组上下无序; [3] 按属性名引用时属性左右无序; [4] 所有属性值都是原子项(不可再分) ; (8) 总结:关系是一张二维表,表中的一行被称为一个元组,一列称为属性,由一组域值组成。 关系是元组的集合,关系中的每个元组在数学上被定义为这个关系所涉及的全部域值中笛卡 儿积的一个元素。 5.2.2 关系数据库 1、 关系数据库是按照二维表组织和存储的相互关联的关系的集合,关系数据库模式是关系模式的集合; 5.2.3 关系的完整性 1、 关系的完整性(完整性约束) :是对关系的某种约束规则和关系满足的定义。通常这组约束规则用来 限定和检查数据库所含实例的合法性和正确性; 2、 完整性约束分静态和动态两种,静态完整性约束是基于关系模式的,主要有主码、外码约束和域约束 组成;动态完整性约束是基于企业的业务规则的。 3、 静态完整性约束规则: (1) 主码约束:主码必须满足: (A) 惟一性:在一个关系中不存在两个元组,它们具有相同的主码值; (B) 最小性:不存在从组成主码的属性集中去掉一个属性,还仍能保持数据的惟一性; (2) 外码约束: (3) 用户定义的完整性: 5.3 关系数据库设计理论 5.3.1 问题的提出 究竟一个关系数据库包含哪些属性是合理的,如何评价一个关系模式设计的优劣? 5.3.2 函数依赖 函数依理论利用一个关系中属性之间的依赖关系评价和优化关系模式, 以保证存储到数据库中的关系 具有较好特性; 1、 函数依赖: (1) 设 R(U)为一关系模式,X 和 Y 为属性全集 U 的子集,若对于 R(U)的任意一个可能的 关系 r,r 中不可能存在两个元组在 X 上的属性值相等,而在 Y 上的属性值不等,则称“X 函 数决定 Y”或“Y 函数依赖于 X” 并记作 X ? Y,其中 X 称为决定因素,因为根据函数依赖定 , 义,给定一个 X,就能惟一决定一个 Y。 (2) 这里讨论的函数关系与数学上的不同,是不能计算的,是一个关系中属性之间存在的依赖关 系; 它是一种语义范畴的概念, 只能根据两个属性之间的语义来确定一个函数依赖是否存在。 2、 完全与部分函数依赖: (1) 在关系模式 R(U)中,如果 X?Y 成立,并且对 X 的任何真子集 X’不能函数决定 Y,则称 Y 对 X 是完全函数依赖,被记作 X---f---?Y。 (2) 若 X?Y,但 Y 不完全函数依赖于 X,则称 Y 对 X 是部分函数依赖,记作 X--p?Y; 3、 传递函数依赖: 在关系 R(U)模式中,如果 X 决定 Y, 不属于 X) 不决定 X,Y 决定 Z,则称 Z 对 X 传递函 (Y ,Y 数依赖。 4、 平凡与非平凡函数依赖: (1) 若 X 决定 Y,但 Y 属于 X,则称 X?Y 是平凡函数依赖,否则称非平凡函数依赖; (2) 即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立; (3) 非平凡函数依赖,仅当其右边的属性集至少有一个属性不属于左边有集合时成立; (4) 完全非平凡函数依赖:仅当其右边的属性集中属性都不在左边的集合时成立; 5、 码: (1) 在关系模式 R(U)中,K 为 R 的属性或属性组,若 K 函数决定 A1.A2….An,则 K 为关系 模式 R 的候选码,包含在候选码中的属性称为主属性,否则为非主属性; (2) 若一个关系的候选码不止一个,则选定其中一个作为关系 R 的主码; (3) 关系的码属性除了必须完全函数决定关系的所有其他属性外,还必须满足最小化规则,即在 关系模式 R(U)中,不存在一个 K 的真子集能够函数决定 R 的其他属性。 6、 函数依赖的推理规则: (1) 自反律:若 Y(包含于)X(包含于)U,则 X?Y 成立;- 11 - (2) 增广律:若 X?Y,且 Z(包含于)U,则 XZ?YZ 成立; (3) 传递律:若 X?Y,Y?Z,则 X?Z 成立; (4) 合并规则:若 X?Y,X?Z 成立,则 X?YZ; (5) 分解规则:若 X?Y 和 Z(包含于)Y 成立,则 X?Z 也成立; (6) 伪传递规则:若 X?Y,YW?Z,则 XW?Z 成立; 7、 属性集闭包: (1) 设 F 是属性集 U 上的函数依赖集,X 为 U 的一个子集,那么对于 F,属性集 X 关于 F 的闭 包(用 X+表示)为:X+={A|X?A} (2) 由属性集团包的定义可知,若想判断函数依赖 X?Y 是否成立,只要计算 X 关于函数依赖集 F 的闭包,若 Y 是 X 闭包中的一个元素则 X?Y 成立; 8、 确定关系的码: (1) 利用迭代算法计算 X+,步骤如下: (A) 选 X 作为闭包 X+的初值 X(0) ; (B) 由 X(i)计算 X(i+1)时,它是由 X(0)并上属性集合 A 所组成,其中 A 满足下列条 件:Y(包含于)X(i) ,且 F 中存在函数依赖 Y?Z,而 A(包含于)Z。因为 U 是有 穷的,所以会得到 X(i)=X(i+1) ,此时 X(i)为所求的 X+。 5.3.3 规范化设计方法 1、 第一范式: (1) 定义:设关系模式 R(F,U) ,如果 R 的每一个属性都是不可分的数据项,则此关系模式为 第一范式; (2) 一个给定关系和第一范式(1NF)的区别: (A) 一个关系中的数据按照行和列的形式组织,每个元组具有相同数目的属性个数,且每一 个元组的属性值具有统一的数据类型和长度;元组或属性的排列与顺序无关,每个元组 必须通过一个属性或属性组惟一识别; (B) 第一范式实际上对关系增加了一个约束,即关系中元组的每个属性都只取一个值,第一 范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。 2、 第二范式: (1) 定义:若关系模式 R(F,U)是 1NF,且每个非主属性完全函数依赖于码,则称 R 为第二 范式,即在 2NF 中不存在非主属性对码的部分依赖; (2) 仅满足第一范式关系会存在种种问题, 要消除必须用更高级的范式标准来设计, 称为标准化; (3) 具体做法是将大的关系分解成多个小的关系,使分解后的关系满足更高级范式的要求。 (4) 第二范式实际上对关系增加了一个约束,就是关系中的每一个属性必须完全依赖于主码,即 在第一范式的基础上,消除非主属性对主码的部分函数依赖可达到 2NF; 3、 第三范式: (1) 定义:若关系 R(U,F)为第一范式,且不存在非主属性对主码的传递函数依赖,则称 R 为第三范式; (2) 第三范式是在第二范式的基础上对关系又增加了一个约束,就是关系中的每一个非主属性必 须只依赖于主码。即 2NF 的基础上,消除非主属性对主码的传递函数依赖可达到 3NF。 4、 改进的第三范式: (1) 定义:如果关系模式 R 是 1NF,且每个属性(包括主属性)既不存在部分函数依赖也不存在传 递函数依赖于候选码,则称 R 是改进的第三范式(BCNF) 。 5、 多值依赖与 4NF: (1) 多值依赖:表示关系中属性(如 A、B、C)之间的依赖,对于 A 的每个值,都存在一个 B 或 C 的值的集合,而且 B 和 C 的值相互独立,记为:A??B、A??C (2) 第四范式: 如果关系模式 R 属于 1NF, 对于 R 的每个非平凡的多值依赖 X?Y (Y 不属于 X) , X 含有候选码,则 R 是第四范式。即是从 BCNF 范式中消除主码内的独立依赖集(非平凡多 值依赖)可达 4NF; 6、 连接依赖与 5NF (1) 连锁依赖:设关系模式 R,R 的属性子集为 R1、R2、R3、R4、R5、R6、R7….,当且仅 当 R 的每个合法值等于 R1、R2、R3、R4、R5、R6、R7…的投影连接时,称 R 满足连接 依赖; (2) 第五范式:设 R 是一个满足 5NF 的关系模式,当且仅当 R 的每一个非平凡连接依赖都被 R 的候选码所蕴含,即从 4NF 中消除非候选码所蕴含的连接依赖为 5NF; 7、 总结: (1) 范式表达了关系模式满足的条件,也是衡量关系模式设计优劣的标准; (2) 利用范式进行规范化设计的目的是消除数据冗余,避免出现异常,使结构更合理; (3) 规范化设计的基本过程是对关系进行的分解,消除属性间不合理的数据依赖,用一组等价的 子关系代替原有的关系; (4) 数据库规范化的程序越高,其关系表就越多,从而增加了表之间连接运算的代价,影响了数 据库的执行速度和性能。所以通常关系模式规范化工作仅做到 3NF,这样既使关系中不合理- 12 - 的属性基本消除,规范化程度也不太高,保证数据库有较好的性能。 5.4 数据库模式设计 5.4.1 初始关系模式的设计 1、 把 ER 图转换成关系模式: (1) 把 ER 模型中的每个实体集转换成一个同名的关系,实体集的属性就是关系的属性,实体集 的码就是关系的码; (2) 把 ER 模型中的每个联系转换成一个关系,与该联系相连的各实体集的码以及联系的属性转 换成为关系的属性。 (A) 若联系为 1:1,则每个实体集的码均是该关系的候选码; (B) 若联系为 1:n,则关系的码为 n 端实体集的码; (C) 若联系为 m:n,则关系的码为各实体集码的组合; (3) 合并具有相同码的关系 2、 检查确认对象:检查转换后的每个关系名和属性名是否符合数据库设计关于统一命名的约定; 5.4.2 优化关系模式 1、 模式分解原则: (1) 分解具有无损连接性:分解后的关系能够恢复成原来的关系; (2) 分解保持函数依赖: (A) 无损连接和保持函数依赖是用于衡量一个模式分解是否导致原有模式中部分信息丢失 的两个标准; (B) 当一个关系被分解后会出现几种结果,既有无损连接,又能保持函数依赖是较理想的分 解结果,意味着在分解的过程中没有丢失原有模式的任何信息; (C) 一般情况下,分解到 3NF 就足够了,但在 3NF 关系下,仍存在一定程度上的更新异常 或不一致的隐患,但与数据库性能比较起来是可以忽略的,因为在数据库设计过程中通 过增加一些数据约束,就可以解决 3NF 引起的数据问题了。 3、 优化属性:确定各字段的类型和长度; 4、 确认模式满足需要: 5.4.3 数据完整性设计 1、 指定义数据库中存储的数据值满足的约束条件,通过对存储的数据值的约束维护关系的完整性。 2、 数据值满足条件分为: (1) 域约束:限制指定列的取值及范围; (2) 主码约束:定义每个关系的主码值不空,且惟一; (3) 引用完整性约束:定义不同模式的属性间满足的条件,及一个关系模式中属性间可能满足的 条件; 5.4.4 安全模式和外模式的设计 1、 根据选定的 DBMS 支持的安全控制特征来确定; 2、 根据不同用户对数据库存取特点定义相关的外模式; 第六章 存储技术与数据库物理设计 6.1 文件组织6.1.1 数据库的物理结构 1、 数据库中的应用数据是以文件形式存储在外存上的,文件在逻辑上被组织成记录的序列,即每个 DB 文件可看作是逻辑记录的集合; 2、 一个文件在磁盘上占有一定的物理存储空间, 文件中的每个逻辑记录被映射存储到某个特定的磁盘块 上,一个文件在物理上可以看作是由存放文件记录的一系列磁盘块组成,称为物理文件; 3、 文件的逻辑记录与磁盘间的映射关系是由操作系统或 DBMS 来管理的,当需要对一个文件的逻辑记 录进行操作时,先要根据这种映射关系找到该逻辑记录所在的磁盘块,然后再进行操作。 4、 从数据库物理结构角度需要解决如下问题: (1) 文件的组织; (2) 文件的结构; (3) 文件的存取; (4) 索引技术; 6.1.2 文件组织 1、 数据库与文件的对应关系 (1) 在外存中,数据库以文件形式组织,文件由逻辑记录组成,记录由多个域组成; (2) 一个关系数据库包括一张或多张关系表,关系表与文件的对应关系有如下方式: (A) 每张关系表单独用一个文件来存储,由 DBMS 通过 OS 的文件管理功能来管理; (B) 现代中大型 DBMS 是由 OS 直接分配一块大的磁盘空间,DBMS 将该磁盘空间作为数 据库磁盘文件直接管理,DB 的所有关系表都存储在该文件中; (4) 关系表在逻辑上由一系列元组组成,元组由多个属性组成,每个元组可以用磁盘文件中的一- 13 - 个逻辑记录来存储,记录包括多个域,对应元组的多个属性; 2、文件记录格式: (1) 数据库文件通常采用两种逻辑记录格式:定长记录格式和变长记录格式; 6.2 文件结构与存取 6.2.1 堆文件 1、 堆文件也称无序(记录)文件,记录随机地存储在文件物理空间中,新插入的记录存储在文件的末尾; 2、 堆文件常常用作存储那些将来使用,但目前不清楚如何使用的记录,为了实现文件记录的有效存取, 堆文件经常与附加的存取路径一起使用; 3、 查找操作平均需要搜索(B+1)/2 个磁盘块,效率比较低; 4、 插入操作十分简单,先读文件头,找到最末磁盘地址,将最末磁盘块读入内存,将需插入的新记录写 入磁盘块的末端,最后将修改过的磁盘块写回磁盘; 5、 删除比较复杂,可以先找到被删除记录所在的磁盘块,读入内存后在内存缓冲区删除记录,最后再写 回磁盘;也可以在每个记录的磁盘空间增加一个删除标志位,当需要删除记录时,将标示位置 1; 6.2.2 顺序文件 1、 顺序文件按照文件记录在查询码上的取值的大小顺序排列各个记录; 2、 顺序文件的每个记录中有一个指针字段,根据查询码大小用指针将各个记录按序连接起来; 3、 文件建立时,应尽量使记录的物理顺序与查找码的顺序一致,以减少访问磁盘块的次数; 4、 根据查询条件对顺序文件进行查询时,如查询条件定义在查找码上,则使用二分法查找技术快速找到 记录,如条件不在查找码上,则必须从头到尾依次扫描磁盘块,与堆文件一致,所以顺序文件的访问 效率也不高; 5、 顺序文件插入工作包括定位和插入: (1) 定位:在指针链中找到插入的位置,即插入记录在哪个记录的前面; (2) 插入:如有自由空间,则在该位置插入新记录,如没有自由空间,则只能插入溢出块中,重 新调整记录指针链关系,保证记录顺序; 6.2.3 聚集文件 1、 聚集文件是一种具有多种记录类型文件,存储了来自多个关系表的数据,每个关系表对应文件中的一 种记录类型; 2、 当数据库中数据量非常大时,对数据库查询需要多次访问磁盘文件,严重影响性能指标,为了降低多 表操作时的磁盘访问次数,提高多表查询速度,可采用聚集文件; 3、 聚集文件将不同关系表中有关联关系的记录存储在同一磁盘块内,从而减少多表查询时磁盘块的访问 次数,提高处理速度; 6.2.4 索引文件 索引文件是一种利用索引技术支持快速文件访问的文件组织和存取方法; 6.2.4 散列文件 散列文件是一种利用散列函数支持快速文件访问的文件组织和存取方法; 6.3 索引技术 6.3.1 基本概念 1、 索引技术:是一种快速文件访问技术,它将一个文件的每个记录在某个或某些域(属性)上的取值与 该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制;它的关键 是建立取值域到记录的物理地址间的映射关系,这种映射关系叫索引; 2、 索引技术分类: (1) 有序索引技术:利用索引文件实现记录域(查找码)取值到记录物理地址间的映射关系,索 引文件由索引记录组成,每个记录中记载一个索引项,索引项记录了某个特定的查找码值和 具有该值的数据文件记录的物理地址; (2) 散列技术:利用一个散列函数实现记录域取值到记录物理地址间的直接映射关系; 3、 有序索引:有序索引作为基于索引文件的索引技术,需要考虑两个问题: (1)如何组织索引文件中的索引记录; (2)如何从索引文件出发,访问数据文件中的数据记录; (A) 当需要采用有序索引机制快速访问数据文件时,首先要为该数据文件建立一个索引文 件,它是索引记录和索引项的集合; (B) 索引文件建立的方法:首先选定某些记录域作为查找码,然后建立数据记录在查找码上 的取值与物理地址间的映射关系,组成索引项。所有索引项作为索引记录存储在索引文 件中,索引文件根据某个特定的查找码值的顺序组织为顺序文件; (C) 一个数据文件可以有多个查找码和索引文件; 6.3.2 有序索引的分类及特点 1、 聚集索引与非聚集索引 (1) 对数据文件和它的一个特定的索引文件,如果数据文件中数据记录的排列顺序与索引文件中 索引项的排列顺序相一致,则该索引文件称为聚集索引,否则称为非聚集索引; (2) 在一个数据文件上除了建立一个聚集索引外,还可建立多个非聚集索引;- 14 - 2、 稠密索引和稀疏索引 如果数据文件中的每个查找码都在索引文件中都对应一个索引记录,称为稠密索引, 如果只一部分对 应,则称为稀疏索引; 3、 主索引和辅索引 在数据文件包含主码的属性集上建立索引称为主索引,在非主码属性上建立的索引称为辅索引; 4、单层索引和多层索引 (1) 单层索引(线性索引) :索引项根据键值在索引文件中顺序排列,组织成一维线性结构,每 个索引项直接指向数据文件中的数据记录; (2) 当数据文件很大时,即使采用稀疏索引,建成的索引文件也很大,导致效率低下,为解决该 问题,可对索引文件中的索引项本身再建立一级稀疏索引,组成 2 层索引结构;进一步地, 可建立多层树型索引结构来快速定位; 6.4 散列技术 6.4.1 散列文件 1、 散列是一种快速查找技术,它利用定义在文件记录上的查找码,通过计算一个散列函数,以散列函数 值作为记录的物理地址,实现对文件记录直接快速访问。 2、 首先指定文件记录的一个域作为查找码(散列域) ,然后定义一个查找码上的函数(散列函数) ,函数 的输入为查找码值,输出为物理地址; 3、 一般使用桶作为基本的存储单位,一个桶可存放多个文件记录,物理地址可以是记录所在的桶号,散 列函数的输出可以是桶号; 6.4.2 散列函数 1、 散列方法依赖于好的散列函数,它应该尽可能均匀地将查找码分布到各个桶中,具体要满足如下两个 条件: (1) 地址的分布是均匀的; (2) 地址的分布是随机的; 6.4.3 桶溢出 1、 产生桶溢出的两个原因: (1) 文件初始设计时,为文件记录预留的存储空间不足; (2) 散列函数的均匀分布性不好; 2、 设计散列函数时, 应根据文件大小决定物理空间, 一般应有 20%余量, 再设计合适的桶数目和桶大小, 尽可能留有一些空闲桶,降低桶溢出的可能性; 3、 桶溢出的现象是难免的,需要 DBS 采用相应的桶溢出处理机制; 4、 散列方法的缺点:为了避免桶溢出。必须选一合适的散列函数,但这比较复杂,而且不象索引文件那 样可以据数据记录变化动态调整。 6.5 数据字典 1、 数据字典(系统目录)中存储了数据库对象的各类描述信息和 DBMS 所需的控制信息,全称数据库 元数据; 2、 数据库对象的各类描述信息:包括外模式、模式、内模式以及它们之间的映射的描述; 3、 DBMS 所需的控制信息:包括查询优化、安全性检查、用户权限验证等; 4、 数据字典主要包括: (1) 关系模式信息; (2) 与视图描述有关的信息; (3) 关系的存储结构和存取方法信息; (4) 完整性约束信息; (5) 安全性有关信息; (6) 数据库运行统计信息; 6.6 数据库物理设计 6.6.1 设计步骤和内容 1、 数据库物理结构设计:在具体的硬件环境、OS、DBMS 约束下,根据数据库逻辑设计结果,设计合 适的数据库物理结构。目标是存储空间占用少、访问效率高和维护代价低; 2、 一旦选定了硬件平台、OS 和 DBMS,数据库的数据存储和存取方式等可用的物理模式也就随之确定 了; 3、 数据库物理设计主要包括以下步骤: (1) 数据库逻辑模式调整: 将数据库逻辑模式及其视图转换为 DBMS 支持的基本表和视图, 并利 用 DBMS 提供的完整性机制设计业务规则; (2) 文件组织与存取设计:配置基本表的文件组织形式,据实际情况为基本表设计合适的存取方 法和路径; (3) 数据分布设计: (4) 安全模式设计:- 15 - (5) 确定系统配置: (6) 物理模式评估: 6.6.2 数据库逻辑模式调整 1、 物理数据库设计首先需要根据数据库逻辑结构信息,设计目标 DBMS 平台支持的基本表的模式信息, 这些模式信息代表了所要开发的具体目标数据库的结构,这个过程称为数据库逻辑模式调整,主要包 括如下设计内容: (1) 实现目标数据库基本表和视图: 采用目标 DBMS 所支持的建表方法, 设计基本表及其面向模 型的完整性约束; (2) 设计基本表业务规则; 6.6.3 DB 文件组织与存取设计 1、分析事务的数据访问特性 (1) 使用事务-基本表交叉引用矩阵, 分析系统内数据库事务对各个基本表的访问情况, 确定事务 访问了哪些基本表,对这些基本表执行了何种操作,并进一步分析各操作涉及到的基本表属 性; (2) 估计各事务的执行频率; (3) 对每张基本表,汇总所有作用于该表上的各事务的操作频率信息; 2、 了解并选择数据库文件结构 (1) 如果数据库中的一个基本表中的数据量很少,并且插入、删除、更新等操作非常频繁,该基 本表可采用堆文件组织方式; (2) 顺序文件支持基于查找码的顺序访问,也支持快速二分查找; (3) 如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,散列文件比较合 适。但散列文件组织不适合以下情况: (A) 基于散列域值的非精确查询(如模式查询、范围查询); (B) 基于非散列域进行查询时; (4) B-树和 B+树文件是实际数据库系统中使用非常广泛的索引文件结构,适合于定义在大数据 量基本表上、基于查找码的等值查询等; (5) 如果某些重要而频繁的用户查询经常需要进行多表连接操作,可考虑将这些基本表组织为聚 集文件; 3、 设计存取路径: (1) 为数据库文件设计合理的物理存储位置; (2) 为基本表设计索引机制: 索引可以提高文件存取速度, 改善访问性能, 但索引由 DBMS 管理, 它的建立、维护需要一定的系统开销,数据的操作会引起索引的重新调整,还占用一定的存 储空间,可根据如下原则决定是否为一个基本表建立索引: (A) 对于经常需要查询、连接、统计操作,且数据量大的基本表可考虑建立索引,而对于经 常执行插入、删除、更新操作或小数据量的基本表应尽量不建立索引; (B) 一个基本表上除了可以建立一个聚集索引外, 还可以建立多个非聚集索引, 但索引越多, 对表内数据更新所需的开销越大,对于一个更新频繁的表应少建或不建索引; (C) 索引可以由用户根据需要随时创建或删除,以提高数据查询性能; 对于基本表,下面一些属性上可考虑建立索引: 1) 、表的主码。一般由 DBMS 自动建立索引。 2) 、在 WHERE 查询子句中引用率较高的属性。 3) 、参与了连接操作的属性。 4) 、在 Order By 子句、Group By 子句中出现的属性。 5) 、在某一范围内频繁搜索的属性和按照排序顺序频繁检索的属性。 6) 、在 WHERE 子句中包含的一个关系的多个属性,可以考虑在这些属性上建立多属性 索引。 此外,如果数据库文件需要频繁执行精确匹配查询(如等值查询) ,可考虑建立散列索引。而 B+树等有序索引适合于范围查询。 6.6.4 数据分布设计 1、不同类型数据的物理分布 (1) 各种数据在系统中的作用不同,使用的频率也不一样,应根据实际使用情况放在合适的物理 介质上; (2) 使用频率低但数据量大的,可以放在磁带中,而使用频繁,要求响应时间短的,必须放在支 持直接存取的磁盘存储介质上; 2、 应用数据的划分和分布 (1) 根据数据的使用特征划分:可将基本表划分为频繁使用分区和非频繁使用分区,分别存放在 不同的磁盘上,对前者可考虑建立 B+树等多层索引,而后者不建立或只建立单层索引; (2) 根据时间、地点划分; (3) 分布式数据库系统中的数据划分: 3、派生属性数据分布- 16 - (1) 派生属性指该属性的取值可根据表中其他属性的取值惟一确定; (2) 对带有派生属性的基本表可采用两种实现方式: (A) 将派生属性作为基本表内单独一列,称为派生列; (B) 派生属性不出现在基本表中; 4、 关系模式的去规范化 (1) 在数据库物理设计阶段,可以对考虑数据库中某些 3NF、BCNF 模式是否可以降低其规范化 程度,以提高查询效率,这称为关系模式的去规范化处理,但不满足 3NF 的关系模式又可能 导致数据库访问异常,因此,设计基本表时,需在规范化和查询效率间权衡; 6.6.5 安全模式设计 1、系统安全设计 (1) 是指为数据库服务器合法用户分配用户名和口令,使其能够正常登录服务器访问所需的数 据,还可采用基于 CA 认证的系统安全控制机制; 2、 数据安全设计 (1) 是指通过数据库系统视图机制和授权机制为用户对数据库对象访问的权限; (2) 引用数据视图机制,只给用户需求的那部分数据访问权限,防止由合法用户造成信息泄密, 另外数据视图还可以防止基本表发生改变时,影响用户的访问; (3) 权限是允许用户对一给定的数据库对象可执行的操作; (4) 数据库安全设计需要根据用户需求,采用授权机制,为用户分配合法访问的权限; 6.6.6 确定系统配置 1、 要根据实际应用系统的运行情况配置系统参数; 6.6.7 物理模式评估 1、 在设计过程中,通过对时间效率、空间效率、维护代价和用户要求权衡考虑,择优采用; 2、 评估物理数据库的方法完全依赖所选用的 DBMS,主要从定量估算各方案的存储空间、存取时间和维 护代价入手; 第七章 数据库应用系统功能设计 7.1 软件体系结构与设计过程7.1.1 软体体系结构 1、 软件体系结构又称软件架构,软件体系结构={构件,连接件,约束}。 2、 构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的 系统元素; 3、 连接件将不同的构件连接起来,表示了

我要回帖

更多关于 数据库中触发器的作用 的文章

 

随机推荐