《主要参考书》PPT课件.ppt
库,原,据,数,理,主要参考书,数据库系统概念 Abraham Silberschatz,Henry F.Korth,S.Sudarshan,杨冬青,唐世渭等译,机械工业出版社对象-关系数据库管理系统下一个大浪潮 Michael Stonebraker,Dorothy Moore 杨冬青,唐世渭,裴芳等译,北京大学出版社数据库系统实现 Hector Garcia-Molina,Jeffery D.Ullman,Jennifer Widom,杨冬青,唐世渭,徐其钧等译,机械工业出版社数据挖掘-概念与技术 Jiawei Han,Micheline Kamber 范明,孟小峰等译,机械工业出版社,第二章 数据模型,第三章 数据库系统结构,第四章关系数据库方法,第五章 标准语言SQL,第六章关系规范化理论,第七章 数据库设计,第八章 安全性与完整性,第九章 恢复与并发控制技术,第十章 分布式数据库系统,第十一章 数据库技术的新发展,第一章 数据库系统概论,目 录,实 验,第章 关系数据库的标准语言,特别提示:本章为重点章,应熟悉和掌握SQL的数据定义、数据查询、数据更新的句法及其应用,特别是数据查询的应用。,1、SQL发展历程(识记)SQL从1970年美国IBM研究中心的E.F.Codd发表论文到1974年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言,到现在还在不断完善和发展之中。SQL(结构式查询语言)虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。,51 SQL概述。,SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为基本表,存储模式称为存储文件,子模式称为视图,元组称行,属性称列。三级体系结构:关系模式基本表 存储模式存储文件 子模式视图 元组行 属性列,2、SQL数据库的体系结构(领会),SQL数据库体系的结构要点如下:(1)一个SQL数据库是表的汇集。(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。(3)表是基本表或是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或视图构成的表的定义。(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。(5)用户可以用SQL语句对视图和基本表操作,(6)SQL的用户可以是应用程序,ak或终端用户。,SQL由四部分组成:(P99)(1)数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。(2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。(4)数据查询。,3、SQL的组成(识记),5.2.1 基本表的定义1数据类型数值型:包括长整数 integer、短整数smallint、单精度浮点数real 或float、双精度浮点数double precision、定点十进制数说明为DECIMAL(n,d)字符串型:定长char(n)、变长串varchar(n)位串型:定长bit(n),变长bit varying(n),同上。时间型:date、time。时标:timestamp,5.2 关系模式的定义,基本表的创建:(可理解为建立表结构)CREAT TABLE 模式名.基本表名(属性名,类型)NOT NULL UNIQUE(属性名,类型)NOT NULLUNIQUE其他参数 完整性约束.),2.基本表的定义,创建基本表,应指出放在哪个SQL模式中,简单起见,SQL模式名均省略。每列的类型可以是基本数据类型,也可以是用户预先定义的域名。完整性约束主要有三种字句:主键子句,检查子句和外键子句。基本表的创建定义中包含了若干列的定义和若干个完整性约束。完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY),例题:创建学生选课数据库中基本表。CREATE TABLES S(Sno CHAR(4)NOT NULL,SNAME CHAR(8)NOT NULL,SAGE SMALLINT,SEX CHAR(1),PRIMARY KEY(Sno),CREATE TABLE C(CNO CHAR(4),CNAME CHAR(10)NOT NULL,TEACHER CHAR(8),PRIMARY KEY(CNO),CREATE TABLE SC(SNO CHAR(4),CNO CHAR(4),GRADE SMALLINT,PRIMARY KEY(SNO,CNO),FOREIGN KEY(SNO)REFERENCE S(SNO),FOREIGN KEY(CNO)REFERENCE C(CNO),CHECK(GRADE IS NULL)OR(GRADE BETWEEN 0 AND 100),3.关于默认值例如:将SAGE的默认值定义为1,SEX的默认值定义为?CREATE TABLES S(Sno CHAR(4)NOT NULL,SNAME CHAR(8)NOT NULL,SEX CHAR(1)DEFAULT?SAGE SMALLINT DEFAULT 1 PRIMARY KEY(Sno),定义域:CREATE DOMAIN 域名AS 数据类型用定义的域说明一个属性类型的格式是:属性名1,属性名2,;例:为表S的HOSTADDR和COMMANDDR 定义一个域ADDRDOMAIN:CREATE DOMAIN ADDRDOMAIN AS VARCHAR(36)DEFAULT unknow;HOSTADDR,COMMANDDR ADDRDOMAIN;删除域的命令格式:DROP DOMAIN,4.域,1)增加新的列用“ALTERADD”语句 ALTER TABLE ADD 例:在S中增加一个地址(ADDRESS)列:ALTER TABLE S ADD ADDRESS VARCHAR(30)注意:新增加的列不能定义为“NOT NULL”。基本表在增加一列后,原有的元组在新增加的列上的值都被定义为空值(NULL)。,5.2.2 基本表结构的修改,ALTER TABLE 基本表名 DROP 列名 CASCADERESTRICTCASCADE表示:在基本表中删除某列时,所有引用到该列的视图和约束也要一起自动地被删除。RESTRICT表示:在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除操作。例:在S中删除年龄(SAGE)列,并把引用该列的所有视图和约束一起删除:ALTER TABLE S DROP SAGE CASCADE,2)删除原有的列用“ALTERDROP”语句,3)基本表的撤消DROP TABLE 基本表名 CASCADE|RESTRICT,创建格式:CREAT UNIQUE INDEX 索引名 ON 基本表名(属性名 ASC|DESC,属性名 ASC|DESC)索引排序可以升序、也可降序。升序用ASC,降序用DESC。,5.2.5 索引的创建和撤消,CREATE INDEX SNO_INDEX ON S(SNO)CREATE UNIQUE INDEX SNO_INDEX ON S(SNO)CREATE INDEX SC_INDEX ON SC(SNO ASC,CNO DESC)在INDEX前加上UNIQUE,SNO的值不重复,撤消:DROP INDEX 索引名,例:S创建索引,总结:凡创建都用CREATE,删除都用DROP,改变用alter,再跟类型和名字,附加子句很容易了。,第章 数据依赖和关系规范化理论,本章的理论性较强,学习时有无从下手的感觉,在学习时应多加思考,从概念出发去理解理论,前后的理论有较强的联系,因此要逐个理解。本章重点:函数依赖,无损联接保持依赖、范式,第章 数据依赖和关系规范化理论,关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上就是一张二维表,表的行称为元组,列称为属性。关系模式是用来定义关系的,这里的关系模式我们可以简单地理解为一个表的结构,一个关系数据库包含一组关系,也就是包含一组二维表,这些二维表结构体的集合就构成数据库的模式(可以理解为数据库的结构)。,6.1关系模式的设计问题(识记),泛关系模式:把现实问题的所有属性组成一个关系模式R(U),这个关系模式就称为泛关系模式。数据库模式:把泛关系模式用一组关系模式的集合来表示时,这个就是数据库模式。关系模式的相关内容从大到小的排列泛关系模式数据库模式关系数据库表结构关系模式实例(表)记录(行、列.),要 点,要 点,例:有一学生情况数据库studb,属性:sno(学号)、SNAME(姓名)、SDEPARTMENT(所在系)、SAGE(年龄)、CNO(课程号)、CNAME(课程名)、GRADE(成绩)、PCNO(先修课编号),关系模式一:S_C_GRADE(SNO,SNAME,SDEPARTMENT,SAGE,CNO,CNAME,GRADE,PCNO),泛关系模式,数据冗余、更新异常、插入异常和删除异常,关系模式集:S(SNO,SNAME,SD,SAGE)C(CNO,CNAME,PCNO)S_C(SNO,CNO,GRADE),数据库模式,值得关注什么原因引起异常现象和大量数据冗余?,现实世界的事物联系,泛关系模式 数据库模式,规范化,通过研究各事物的属性之间的联系(函数依赖、多值依赖、连接依赖),形成设计规范化关系数据库设计理论。,6.2 函数依赖(FD),1、定义6-1:函数依赖的定义(领会):设有关系模式R(A1,A2,.An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1X=t2X导致t1Y=t2Y,则称X函数决定Y,或Y函数依赖于X,记为XY。XY为模式R的一个函数依赖。,上一页,下一页,退 出,要 点,目 录,如:“班级”函数依赖于“编号”。特别注意在这张表中,任何一行的关系均应符合上述条件,如果有一行不符合函数依赖的条件,则函数依赖对于这个关系就不成立。函数依赖是否成立是不可证明的,它由信息本身的语义特征决定。一旦确定,则要强制接受。,指出下列关系模式的函数依赖关系。S(SNO,SNAME,SDEPARTMENT,SAG)C(CNO,CNAME,GRADE,PCNO)S_C(SNO,CNO,GRADE),2.几种类型的函数依赖定义6-2:一个函数依赖XY如果满足Y X,则称此函数依赖为非平凡函数依赖(Non-Trivial Dependency),否则称之为平凡函数依赖(Trivial Dependency)。例如:X,XX,XZX等都是平凡函数依赖。,上一页,下一页,退 出,要 点,目 录,定义63:设R、X、Y的含义同定义61,若Y函数依赖于X,但不依赖于X的任何子集,(XY)X(X X(XY),则称Y完全函数依赖(Fully Depndency)于X,记为XY。例如,在关系S中,有SNOSDEPARTMENT(SNO、SNAME)SDEPARTMENT(SNO、SAGE)SDEPARTMENT真正起作用的函数依赖是SNOSDEPARTMENT,其他都是派生的。因此SN0SDEPARTMENT,是完全函数依赖。,定义64:若Y函数依赖于X,但并非完全函数依赖于X,即满足:(XY)X(X X XY)则称Y部分函数依赖(Partia11y Dependency)于X,记为XY。例如:(SNO、SNAME)SDEPARTMENT(SNO、SAGE)SDEPARTMENT,直接函数依赖:前面提到的函数依赖都是直接的间接函数依赖:在关系S中增加系的电话号码DT(假设每个系有惟一的一个号码),从而有SNAMESDEPARTMENT,SDEPARTMENTDT,于是SNAMEDT。DT并不直接依赖于SNAME,是通过中间属性SDEPARTMENT间接依赖于SNAME,定义65:在关系模式R(U)中,设X,ZU,且满足:Y(YU(XY(YX)(YX)YZ)则称Z传递依赖于X,否则,称为非传递函数依赖。(间接)XY and YZ 而且 Y不属于X,Y X不成立。,非平凡函数依赖,SNAMESDEPARTMENT,SDEPARTMENTDT,,6.2.2 关系的关键字和超关键字,关系的一个关键字K可以由一个或几个属性组成定义66:在关系模式R(U)中,若K U,且满足K U,则称为R的关键字。一个关系可能有若干个关键字,通称为候选关键字(CandldateKey)。但通常指定其中一个作为经常使用的,称为主关键字(PrimaryKey)。关键字是完全函数决定关系的属性全集。,上一页,下一页,退 出,要 点,目 录,一个包含了关键字的属性集合也能够函数决定(但不是完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(Super Key)。例如:SNO(SNO,SNAME,SDEPARTMENT)CNO(CNO,CNAME,PCNO)(SNO,CNO)G 所以,SNO,CNO和(SNO,CNO)分别是关系模式S、C和S_C的关键字。,(SNO、SNAME)(SNO,SNAME,SDEPARTMENT)(SNO、SDEPARTMENT)(SNO,SNAME,SD)所以,(SNO,SNAME)和(SNO,SDEPARTMENT)。都不是关键字,而是超关键字,上一页,下一页,退 出,要 点,目 录,如果在一个关系的所有属性中没有任何属性子集可以作为关键字的话,可以以属性全集作为关键字,这种关键字叫做全关键字(AllKey)。主属性集:在一个关系模式中,所有关键字中的属性构成一个集合。非主属性集:其余不包含在关键字中的属性构成另一个集合。相应地,把主属性集中的属性称为主属性;非主属性集中的属性称为非主属性,上一页,下一页,退 出,要 点,目 录,如何确定一个关系模式的关键字?,如果关系模式由ER模型转换得到,则可以按照下面的规则推得关键字:,(1)如果关系R是由某个实体集转换而来的,则关系的关键字就是实体集的主属性。,(2)如果关系R表示两个实体集之间的多对多联系,则R的关键字由这两个实体集的主属性组合而成。如关系S_C的关键字由学生实体集的主属性SNO和课程的主属性CNO组合而成。,(3)如果关系R表示从实体集E1到实体集E2的多对一联系,则R的主属性就是实体集E1的主属性,但不包括E2的那些主属性。例如:OWNS(TITLE,YEAR,STUDIONAME)其中TITLE和YEAR是电影拷贝的主属性,STUDIONAME是电影厂的主属性,则OWNS的主属性仅包括TITlE和YEAR。,(4)如果关系R表示两个实体集之间的一对一联系,则其中任何一个实体集的主属性都可以作为R的主属性。(5)如果关系R表示一个实体集合E与两个或两个以上的实体集之间的联系,则至少有一个R的关键字包含E的主属性。,上一页,下一页,退 出,要 点,目 录,6.3 函数依赖理论6.3.1 函数依赖的逻辑蕴涵(识记)一个关系模式可能存在很多个函数依赖(包括平凡函数依赖),它们构成了该关系模式的函数依赖集合,记为F。例6-1 设有关系模式R(A,B,C),同时已知R上的一个函数依赖集FAB,BC,则必存在AC。,上一页,下一页,退 出,要 点,目 录,例6-1 设有关系模式R(A,B,C),同时已知R上的一个函数依赖集FAB,BC,则必存在AC。证明:用反证法证明。设r是关系模式R的任一具体关系,且满足AB和BC,但不满足AC。又设u和v是r上的任意两个元组,且uAvA,但uCvC(否则与假设的R不满足AC相矛盾)。那么,uB是否等于vB?如果不相等,违反已知条件AB;如果相等,则由已知的AB:uAvA 则uBvB;再根据已知的BC:uBvB,则uCVC。所以,uA=vA,则uCvC,即AC,这与假设相矛盾。可见,r必定满足AC。因r是模式R的任意具体关系,所以,由F:AB,BC必能推出AC,证毕。,上一页,下一页,退 出,要 点,目 录,从己知的函数依赖F推出另一个函数依赖集F,反之亦然,两个函数依赖集之间的这种互为因果关系称为逻辑蕴涵(1ogradeica1 Implication),即一个函数依赖集逻辑地蕴涵另一个函数依赖集。例如,上面的函数依赖集F:AB,BC和AB,BC,AC相互逻辑蕴涵。例如前面的例子,假如,如果每一门课程只有一个教师与其对应,一个教师可以上多门课,课程教师成立,根据我们对事实的掌握,可知 编号课程 也是成立的。设F=课程教师,编号课程,则F逻辑蕴涵 编号教师。,上一页,下一页,退 出,要 点,目 录,定义67:设F是由关系模式R(U)满足的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出XY,则称F逻辑蕴涵XY。定义68:称所有被一个已知函数依赖集F逻辑蕴涵的那些函数依赖的集合为F的闭包(C1osure),记为F十。一般情况下总有FF十,若FF十,则称F是函数依赖的一个完备集。完备集可能有多个。一个完备的函数依赖集,表示对一个关系模式的全面约束,模式规范时必须考虑函数依赖的完备集。,如何由F出发寻找F十?函数依赖(FD)的推理规则(简单应用)前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵,但是我们需要一个推理规则才能完全确定F或F+的所有函数依赖。设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,632 Armstrong公理系统,自反律:如果Y X U,则XY在R上成立。增广律:如果XY为F所蕴涵,Z W,则XWYZ在R上成立。(XZ表示XZ)当,则XWY 当,则XWY 当XY,则XY传递律:如果XY和YZ在R上成立,则XZ在R上成立。,1独立推理规则(三条推理规则是彼此独立的。),合并律:如果XY和XZ成立,那么XYZ成立。伪传递律:如果XY和WYZ成立,那么WXZ成立。分解律:如果XY和Z Y成立,那么XZ成立。,2其他推理规则,例62 设有关系模式R(A,B,C,D,E)及其上的函数依赖集FABCD,AB,DE.求证F必蕴涵AE。证明:AB(已知)AAB(增广律)ABCD(已知)ACD(传递律)AC,AD(分解规则)DE(已知)AE(传递律)证毕。,定理61:若Ai(i=l,2,n)是关系模式R的属性,则XA1,A2,An成立的充分必要条件是XAi均成立。,定义6-9:设有关系模式R(U),U=A1,A2,,An,X是U的子集,F是U上的函数依赖集,则称所有用阿氏公理从F推出的函数依赖XAi(i=1,2,,n)中Ai的集合为X的属性集闭包,记为X:X=Ai|Ai U,且XAi可用阿氏公理从F推出,6.3.3 属性集闭包,例6-3设关系模式R(A、B、C)的函数依赖集为FAB,BC,分别求A、B、C的闭包。解:若X=A,AB,BC(已知)AC(传递律)AA(自反律)X=A,B,C(据定义)若X=BBB(自反律)BC(已知)X B,C(据定义)若X=C,CC(自反律)X=C(据定义),定理6-2 设F是关系模式R(U)上的函数依赖值,X,Y是U的子集,则函数依赖XY是用阿氏公理从F推出的,充分必要条件是Y X;反之,能用阿氏公理从F推出的所有XY的Y都在X 中。,上一页,下一页,退 出,要 点,目 录,算法61:求属性集X(X U)关于U上的函数依赖集F的闭包X。输入:属性全集U,U上的函数依赖集F,以及属性集X U。输出:X关于F的闭包X。方法:根据下列步骤计算一系列属性集合X(O),X(1),(1)令X(O)X,i0;(2)令X(i+1)=X(i)B 其中,BA|(V)(W)(VWFV X(i)AW)即B是这样的集合:在F中寻找满足条件V X(i)的所有函数依赖VW,并记属性W的并集为B。,(3)判断X(i+1)=X(i)吗?(4)若X(i+1)X(i),则用i+1取代i,返回(2)(5)若X(i+1)=X(i),则X(i)即为X,算法终止。该算法中的U、X和F都是有限集;它们的任何子集也是有限集。,上一页,下一页,退 出,要 点,目 录,例64 设FABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,令X=BD,求X。解:X XBD 在F中找所有满足条件V X BD的函数依赖VW,结果为DEG,则BEG,于是X X BBDEG。i=0 判断是否X X,显然X X。i=0,上一页,下一页,退 出,要 点,目 录,在F中找所有满足条件V X BDEG(i=1)的函数依赖VW,结果为BEC,于是B=C,则X X B=BCDEG。i=1 判断是否X X,显然X X。i=1 在F中找所有满足条件V X BCDEG(i=2)的函数依赖VW,结果为CA,BCD,CGBD,CEAG,则BABDG,于是X X BABCDEG。,上一页,下一页,退 出,要 点,目 录,判断是否X X,这时虽然X X,(i=3)但X 已经包含了全部属性,所以不必再继续计算下去。若继续计算,必有X X。(i=4)最后,X=(BD)ABCDEG。在判断计算何时结束时,可用下面四种方法(1)X X。(2)X 包含了全部属性。(3)在F中再也找不到函数依赖的右部属性是 X 中未出现过的属性。(4)在F中再也找不到满足条件V X 的函数依 赖VW。,Armstrong公理是正确的和完备性的。函数依赖推理规则的完备性(识记)函数依赖推理规则系统(自反律、增广律和传递律)是完备的。由推理规则的完备性可得到两个重要结论:属性集X+中的每个属性A,都有XA被F逻辑蕴涵,即X+是所有由F逻辑蕴含XA的属性A的集合。F+是所有利用Amstrong推理规则从F导出的函数依赖的集合,第7章数据库设计,本章介绍数据库结构设计,7.1 数据库设计概述7.1.1 数据库设计目标和设计方法1.数据库设计目标数据库设计是指对于一个给定的应用环境,根据一个单位的信息需求、处理需求和数据库的支撑环境,利用数据模型和应用程序模拟现实世界中该单位的数据结构和处理活动的过程。它包括两个方面:静态特性设计和动态特性设计,静态特性设计又称数据模型设计或数据库结构设计;动态特性设计则是指数据库结构基础上的应用程序开发。在次序上,一般是结构设计在前,应用设计在后。,要 点,数据库设计的主要目标有:,(1)最大限度地满足用户的应用功能需求。主要是指用户可以将当前与可预知的将来应用所需要的数据及其联系,全部准确地存放在数据库中。(2)获得良好的数据库性能。即要求数据库设计保持良好的数据特性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具有良好的数据共享性、独立性、完整性及安全性等。,对关系数据库而言主要有:数据要达到一定的规范化程度,避免数据重复存储 和异常操作保持实体之间连接的完整性,避免数据库的不一致 性;满足对事务响应时间的要求;减少数据的存储量和内外存间数据的传输量;便于数据库的扩充和移植,使系统有更好的适应性。,2数据库设计方法,数据库设计质量的优劣,影响到 当前的应用 数据库应用过程中的维护 数据库的生命周期。数据库设计方法应能在合理的时间内以合理的设计成本,产生具有实用价值的数据库结构。应具有足够的通用性和灵活性。应具有可再生产的特征,即不同的使用者应用相同的方法解决同一问题,应该得到同样的或相近的数据结构。,2数据库设计方法,(1)直观设计法 凭借设计者对整个系统的了解和认识,以及平时所积累的经验和设计技巧,完成对某一数据库系统的设计任务。(2)规范化设计法 将数据库设计分为若干阶段,明确规定各阶段的任务,采用自顶向下、分层实现、逐步求精的设计原则,结合数据库理论和软件工程设计方法,实现设计过程的每一细节,最终完成整个设计任务。,常用的规范化设计方法,基于3NF的数据库设计方法基于实体联系的设计方法基于视图概念的数据库设计方法,(3)计算机辅助设计法,计算机辅助设计法是指在数据库设计的某些过程中,利用计算机和一些辅助设计工具,模拟某一规范设计方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。例如 在需求分析完成后,可以使用ORACLEDESIGNER 2000辅助工具产生E-R图,并将E-R图转换为关系数据模型,生成数据库结构,再编制相应的应用程序,从而缩短数据库设计周期。,(4)自动化设计法,例如:设计人员只要熟悉某种MIS辅助设计软件的使用,通过人机会话,输入原始数据和有关要求,无须人工干预,就可以由计算机系统自动生成数据库结构及相应的应用程序。一个好的数据库模型往往需要设计者与用户反复商讨,设计者的经验及对应用部门的熟悉程度,很大程度上是数据库设计质量的关键。因此,相对于其他设计方法而言,自动化设计法并不是一种理想的设计手段。,7.1.2 数据库设计的基本步骤,在设计过程中,通常采用“分阶段法”,即“自顶向下、逐步求精”的设计原则。将数据库设计过程分解为若干相互依存的阶段,称之为步骤。每一阶段采用不同的技术、工具解决不同的问题,从而将一个大的问题局部化,减少局部问题对整体设计的影响及依赖,并利于多人合作。即将数据库设计分为:需求分析、概念结构设计、逻辑结构设计、数据库物理设汁、数据库实施、数据库运行和维护六个阶段。,1需求分析阶段,需求分析阶段应对系统的整个应用情况作全面的、详细的调查、确定用户的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户需求,并把这些要求写成用户和数据库设计者都能够接受的文档。是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。该阶段任务的完成,将为以后各阶段任务打下坚实的基础。因此,对用户的各种需求及数据,能否作出准确无误、充分完备的分析,并在此基础上形成最终目标,是整个数据库设计成败的关键。需求分析的实现方法需求分析的步骤大致分为三步:即需求信息的收集、分析整理和评审。结构分析法(SA):是实用的数据分析法。采用自顶向下、逐层分解的方式分析数据之间的联系。数据字典:是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。它包含以下几个部分:数据项、数据结构、数据流、数据存储和加工过程。数据流图:表示数据和处理的关系。,2概念结构设计阶段,概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于DBMS和有关软、硬件的概念数据模型的设计过程,这是对现实世界中具体数据的首次抽象,实现了从现实世界到信息世界的转化过程。数据库的逻辑结构设计和物理结构设计,都是以概念设计阶段所形成的抽象结构为基础进行的。数据库的概念结构通常用E-R模型等来刻划.概念设计的主要步骤:分三步完成:(1)进行数据抽象,设计局部概念模式;(2)将局部概念模式综合成全局概念模式;(3)评审。,采用ER方法的数据库概念设计方法,(1)自顶向下(2)自底向上分步设计局部ER模式;把各局部ER模式综合成全局ER模式;最后对全局ER模式进行优化。(3)逐步扩张(4)混合方式,局部概念结构设计(P180),1确定局部概念结构的范围2确定实体(集)3确定实体(集)的属性4定义实体(集)间的联系,全局概念结构设计,全局概念结构设计是指如何将多个局部ER模型合并,并去掉冗余的实体集、实体属性和联系集,解决各种冲突,最终产生全局ER模型的过程。要实现对每个ER模型的综合,有两种方法。(1)二元合并法(2)n元合并法,1解决各种冲突,产生初步ER模型(p184)冲突:这种ER模型之间存在的数据不一致性,称为冲突。冲突的分类(1)属性冲突(2)命名冲突(3)结构冲突2去掉冗余的实体集、实体属性和联系集,生成基本ER模型(1)用分析法去掉冗余(2)用规全局概念结构设计范化理论消除冗余3全局概念结构设计应满足的要求(1)完整性和正确性(2)最小化(3)可理解性(4)全局ER模型要具有一致性(5)全局ER模型应满足需求分析阶段所确定的所有要求。,3逻辑结构设计阶段,将概念结构转化为某个DBMS所支持的数据模型,并进行优化的设计过程。由于逻辑结构设计是一个基于具体DBMS的实现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优化。优化工作,已成为影响数据库设计质量的一项重要工作。,7.4 逻辑设计,1、概念设计的结果是得到一个与DBMS无关的概念模式。而逻辑设计的目的是把概念设计阶段设计好的基本ER图转换为与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。,2、逻辑设计准则(1)以规范化理论为指导优化数据模型结构,使之满足结构准则的要求。(2)性能准则要求数据库的设计满足操作性能需求。,(1)将一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的关键字就是关系的关键字。(2)将一个m:n联系转换为一个关系模式。(3)将一个1:n联系转换为一个关系模式或与n端实体对应的关系模式合并。(4)将一个1:1联系转换为一个关系模式或与某一端实体对应的关系模式合并。(5)多元联系构成的关系联系转换为一个关系模式(6)相同关键字的关系模式可以合并为一个关系模式。(7)一元联系,可将该实体集拆分为相互联系的两个子集,再根据它们相互间不同的联系方式(1:1 1:n m:n)处理。,3、概念模型向关系模型的转换规则(188),设一个海军基地要建立一个舰队管理信息系统,它包括如下两个方面的信息:1、舰队方面舰队:舰队名称,基地地点,舰艇数量舰艇:编号,舰艇名称,舰队名称 2、舰艇方面舰艇:舰艇编号,舰艇名,武器名称武器:武器名称,武器生产时间,舰艇编号官兵:官兵证号,姓名,舰艇编号其中,一个舰队拥有多艘舰艇,一艘舰艇属于一个舰队;一艘舰艇安装多种武器,一种武器可安装于多艘舰艇上;一艘舰艇有多个官兵,一个官兵只属于一艘舰艇。,请完成如下设计:(1)分别设计舰队和舰艇两个局部ER图:(2)将上述两个局部ER图合关为一个全局ER图;(3)将该全局ER图转移为关系模式;(4)合并时是否存在命名冲突?如何处理?,3、转换的关系模型如下:舰队(舰队名称,基地地点)舰艇(舰艇编号,舰艇名称,舰队名称,舰艇数量)官兵(官兵证号,姓名,舰艇编号)武器(武器名称,武器生产时间)安装(舰艇编号,武器名称)4、存在冲突,表现在:(1)“舰艇编号”和“编号”存在异名同义,合并时统一为“舰艇编号?。(2)“舰艇名”和“舰艇名称”存在异名同义,合并时统一为“舰艇名称”。,练习,4数据库物理设计阶段,将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。完成存储结构和存取方法设计后,对该物理结构作出相应的性能评价,若评价结果符合原设计要求,则进一步实现该物理结构。否则,对该物理结构作出相应的修改,若属于最初设计问题所导致的物理结构的缺陷,必须返回到概念设计阶段修改其概念数据模型或重新建立概念数据模型,如此反复,直至评价结果最终满足原设计要求为止。,5数据库实施阶段,数据库实施阶段,即数据库调试、试运行阶段。一旦数据库物理结构形成,就可以用已选定的DBMS来定义、描述相应的数据库结构,装人数据库数据,以生成完整的数据库,编制有关应用程序,进行联机调试并转入试运行,同时进行时间、空间等性能分析,若不符合要求,则需调整物理结构、修改应用程序,直至高效、稳定、正确地运行该数据库系统为止。,6数据库运行和维护阶段,数据库是一种动态和不断完善的运行过程,运行和维护阶段开始,并不意味着设计过程的结束,任何哪怕只有细微的结构改变,也许就会引起对物理结构的调整、修改,甚至物理结构的完全改变,因此数据库运行和维护阶段是保证数据库日常活动的一个重要阶段。,7.4.3 优化关系数据模型,(1)确定数据依赖(2)消除冗余联系(3)确定每一关系模式是否满足范式要求。属于哪一范式。合并或分解,优化关系模式。,7.5 数据库的物理设计,1确定数据库的存储结构2确定数据库的存储方法7.数据库设计评价经济性可靠性效率1逻辑结构设计评价2物理结构设计评价,7.7.1 数据的载入和应用程序的设计与调试,数据的载入(1)筛选所需数据(2)转换数据格式(3)原始数据输入(4)检验输入数据 2程序设计与调试静态检查与动态调试,7.7.2 数据库的试运行功能测试性能测试7.7.3 数据库的运行和维护转储和恢复安全性和完整性性能监督;分析;改造重组和重构,