数据库逻辑设计与物理设计.ppt
《数据库逻辑设计与物理设计.ppt》由会员分享,可在线阅读,更多相关《数据库逻辑设计与物理设计.ppt(83页珍藏版)》请在三一办公上搜索。
1、第八章 数据库物理设计,本章主要内容,数据库物理设计的任务、方法与步骤关系规范化理论及其应用数据库、表等的创建,SQL数据定义语言(DDL)数据库完整性及其设计数据库物理设计,8.1 物理设计概述,数据库物理设计将为关系数据模型选取一个最适合实际应用环境的物理结构的过程。物理结构包括数据库存储记录安排与存取方法等。具备三个方面的知识:所选用的DBMS的功能;所使用计算机硬件特别是存储设备的特性;应用环境与用户需求三个步骤:确定数据库的存储结构确定数据的存取方法对数据库物理结构的评价,8.3 关系规范化理论,理解关系模式可能的四种异常掌握函数依赖的基本概念掌握1NF、2NF、3NF、BCNF和4
2、NF的概念和特点掌握规范化的基本步骤,冗余与异常,冗余:同一数据在数据库中反复出现,冗余与异常,冗余带来的异常数据冗余太大:浪费大量的存储空间。插入异常:该插的数据插不了。删除异常:不该删除的数据被删了。更新异常:更新数据时维护数据完整性代价大。如某系更换系主任后,必须修改与该系学生有关的每一个元组。,数据依赖:是通过关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。最重要的数据依赖是函数依赖FD(Functional Dependency)关系模式的简化:R(U,F)例如:关系模式为Student 属性组USno,Sdept,
3、Mname,Cname,Grade。F Sno Sdept,Sdept Mname,(Sno,Cname)Grade,数据依赖,结论:Student关系模式不是一个好的模式。“好”的模式不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。引起上述异常的原因是存在于模式中的某些不合适的数据依赖。解决方法是通过分解关系模式来消除其中不合适的数据依赖。如把上述模式分成三个关系模式:S(Sno,Sdept,SnoSDEPT)SG(Sno,Cname,Grade,(Sno,Cname)Grade)DEPT(Sdept,Mname,SDEPTMname)这三个模式都不会发生插入异常、删除异常等,数据
4、的冗余也得到了很好的控制。,数据依赖,规范化理论:通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。函数依赖函数依赖的定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作XY,若XY,并且YX,则记为XY;若Y不函数依赖于X,则记为XY。说明1:函数依赖是指R的所有关系实例均要满足的约束条件。说明2:函数依赖是语义范畴的概念,只能根据数据的语义来确定函数依赖。如“姓名年龄”。,规范化,所谓函数依
5、赖是指一个或一组属性的值可以决定其他属性的值。设X,Y是关系的两个不同的属性组,如果X的取值确定时,Y的取值也随之确定,就称X函数决定Y或Y函数依赖于X,表示为XY。其中X称为决定因素。,完全函数依赖与部分函数依赖:在关系模式R(U)中,若XY,且对于X的任何一个真子集X,都有X Y,则称Y完全函数依赖于X,记作X Y。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。例:关系SC(Sno,Cno,Grade)中,由于SnoGrade,Cno Grade,因此:(Sno,Cno)Grade。传递函数依赖:在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数
6、依赖于X,记作X t Z。若YX,即XY,则Z直接依赖于X。例:关系Std(Sno,Sdept,Mname)中,有SnoSdept,SdeptMname,则Mname传递函数依赖于Sno。,范式(Normal Form NF):是符合某一种级别的关系模式的集合。范式分第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)。各种范式之间存在联系:1NF2NF3NFBCNF4NF 某一关系模式R为第n范式,可简记为RnNF。,1NF定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。1NF是对关系模式的最起码的要求,不满足1NF的数据
7、库模式不能称为关系数据库。例:关系模式SLC(Sno,Sdept,Sloc,Cno,Grade),其中:Sloc为学生住处,假设每个系的学生住在同一个地方。函数依赖有 SnoSdept,SdeptSloc,(Sno,Cno)P Grade,Sno P Sloc。SLC的码为(Sno,Cno),SLC 1NF。,1NF模式存在的问题:SLC不是一个好的关系模式数据冗余度大:插入异常:删除异常:修改异常:引起原因:Sdept、Sloc部分函数依赖于码(Sno,Cno)。解决方法:采用投影分解法,将SLC分解为两个模式SC(Sno,Cno,Grade)、SL(Sno,Sdept,Sloc),消除部分
8、函数依赖。,2、2NF定义:若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。若R2NF,则R1NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)1NF SLC(Sno,Sdept,Sloc,Cno,Grade)2NF SC(Sno,Cno,Grade)2NF SL(Sno,Sdept,Sloc)2NF 分解:采用投影分解法将一个1NF的关系分解为多个2NF关系,可以在一定程度上减轻原1NF关系中存在的数据冗余度大、插入异常、删除异常、修改异常等问题,但不能完全消除。例:关系SL(Sno,Sdept,Sloc)中函数依赖有SnoSdept,SdeptS
9、loc,SnoSloc,即SL中存在非主属性Sloc对码Sno的传递函数依赖。,将1NF分解为2NF找出关系模式R中的所有部分依赖XZ,其中X为主键中的一部分,Z为非主键属性将所有部分依赖的Z构成一个新的关系R1,同时将X复制到R1中,作为R1的主键。将原关系R中的Z删除,形成一个新关系R2,主键不变,外键为X。如果R1、R2仍不是2NF,则重复上述步骤,直到分解后的所有模式都是2NF。,2NF模式存在的问题:(SL不是一个好的关系模式)数据冗余度大:若计算机系有10个学生,则计算机系学生的Sloc值就要重复存储10次。插入异常:如某系刚成立,暂无住校学生,该系的信息就无法插入。删除异常:如某
10、系学生全部毕业时,删除了该系学生信息的同时该系的信息也被删除了。修改异常:如学校调整某系学生住处时,必须修改该系所有学生的Sloc值。引起原因:Sloc传递函数依赖于码Sno。解决方法:采用投影分解法,将SL分解为两个关系模式SD(Sno,Sdept)、DL(Sdept,Sloc),以消除传递函数依赖。,3NF定义:一个满足2NF的关系模式中每个非主键属性都不传递依赖于主键,则称R3NF。若R3NF,则R2NF。例:SL(Sno,Sdept,Sloc)2NF SL(Sno,Sdept,Sloc)3NF SD(Sno,Sdept)3NF DL(Sdept,Sloc)3NF 若R3NF,则R的每一
11、个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。采用投影分解法将一个2NF的关系分解为多个3NF关系,可以在一定程度上减轻原2NF关系中存在的数据冗余度大、插入异常、删除异常、修改异常等问题,但不能完全消除。,将2NF分解为3NF找出关系模式R中(主键为W)所有的函数依赖XZ,其中X不是候选键,Z不是X的真子集。生成一个新的关系R1(XZ),X为主键删除原关系R中的Z属性,形成新的关系R2,主键仍为W,外键为X。检查 R1与R2,如果仍有传递依赖,重复以上步骤,直到分解后的关系均为3NF,规范化的代价:级别越高,关系越多,效率越低基本原则确保每个关系都能满足3NF适当增加数据冗余规
12、范化方法检查每个关系是否是1NF不是,则分解;是,再检查是否2NF不是,继续分解;是,再检查是否3NF不是,再分解。,分析过程XY(xydm,xymc,xyjj,xydz,lxdh),XB(xbbh,xbmc,xdz,lxdh),不属于1NF?KC(kcdm,kcmc,xf,xs,syxs,kcjj),XS可以不要KB(kcdm,jseh,jsdm,jxbh,zc,jc)处理:增加 一个主键KBH,再进行适当的冗余KB(kbh,kcdm,kcmc,jseh,jsdm,jsmc,jxbh,zc,jc)冗余XSCJ(xh,xm,bh,bj,kcdm,kcmc,jsdm,jsmc,pscj,kscj
13、),3NF模式存在的问题 设在关系模式STJ(S,T,J)中,S、T、J分别表示学生、教师和课程,假设每一教师只教一门课,每门课由若干教师教,某学生选定某门课就确定了一个固定教师,则有函数依赖:(S,J)T,(S,T)J,TJ,显然(S,J)和(S,T)都为候选码,该模式没有非主属性,STJ3NF。但它存在问题:数据冗余度大:虽一个教师只教一门课,但每个选修该教师该门课的学生元组都要记录这一信息。插入异常:如学生刚入校尚未选课,因主属性不能为空,该生信息就无法存入数据库;同样如某教师开设了新课,但尚未有学生选修,则该信息也无法存入数据库。删除异常:如选修某课的学生全部毕业时删除他们信息的同时相
14、应教师开设该课的信息也被删除。修改异常:如某教师开设的某门课改名后,所有选修该教师该门课的学生都应进行修改。引起原因:存在(S,T)p 主属性J。解决方法:采用投影分解法,将STJ分解为两个关系模式SJ(S,J)和TJ(T,J),BCNF定义:设关系模式R 1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。若RBCNF,则R3NF。例:关系模式SJP(S,J,P)中,S、J、P分别表示学生、课程和名次,每个学生选修每门课程的成绩都有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次)。则有函数依赖(S,J)P,(J,P)S,所以(S,J)与(J,P)
15、都可以作为候选码,SJPBCNF。性质若R3NF,且R只有一个候选码,则R必属于BCNF。所有非主属性对每一个码都是完全函数依赖。所有的主属性对每一个不包含它的码都是完全函数依赖。没有任何属性完全函数依赖于非码的任何一组属性。从函数依赖的范畴考虑,BCNF已完成了模式的彻底分解,消除了插入、删除和更新异常,数据冗余度大大降低,但从数据依赖的角度,BCNF的关系模式仍存在一定的问题。,8.4 数据定义语言,8.4 数据定义语言,一、数据库与表的定义1、定义数据库主数据文件辅数据文件日志文件2、数据库创建图形界面方式命令方式,8.4 数据定义语言,一、数据库与表的定义CREATE DATABASE
16、 ON PRIMARY LOG ON:=(NAME=逻辑文件名,FILENAME=操作系统文件名,SIZE=文件大小,MAXSIZE=文件最大值|UNLIMITED,FILEGROWTH=文件增长率),8.4 数据定义语言,一、数据库与表的定义创建教务管理数据库,要求如下:数据库名:jwgl2显式定义主数据文件主文件逻辑文件名:jwgl2_data主文件物理文件:d:mydatajwgl2_data.mdf文件大小:10MB最大:15MB文件增长率:20%显式定义日志文件日志文件逻辑文件名:jwgl2_log日志文件物理文件名:d:mydatajwgl2_log.ldf文件大小:3MB最大:5
17、MB文件增长率:1MB,CREATE DATABASE jwgl2ON PRIMARY(NAME=jwgl2_data,FILENAME=d:mydatajwgl2_data.mdf,SIZE=10,MAXSIZE=15,FILEGROWTH=20%)LOG ON(NAME=jwgl2_log,FILENAME=d:mydatajwgl2_log.ldf,SIZE=3,MAXSIZE=5,FILEGROWTH=1),8.4 数据定义语言,一、数据库与表的定义2、删除数据库DROP DATABASE 数据库名,nDROP DATABASE jwgl23、数据库修改,8.4 数据定义语言,一、数据
18、库与表的定义3、数据库修改ALTER DATABASE 数据库名|MODIFY NAME=新数据库名 其中::=ADD FILE,.n/*添加文件 TO FILEGROUP 文件组名|DEFAULT/*添加到指定文件组|ADD LOG FILE,.n/*添加日志文件|REMOVE FILE 逻辑文件名/*修改逻辑文件名|MODIFY FILE/*修改物理文件名MODIFY NAME:修改数据库名,8.4 数据定义语言,一、数据库与表的定义2、表的定义表的创建:依据关系模式创建方法:设计器与SQL命令例如:学生表XS(xh,xm,xb,csny,zy,jtdz,rxsj,kkcj,lxdh,em
19、ail,bh,ssh),8.4 数据定义语言,一、数据库与表的定义2、表的定义使用设计器使用SQL命令 CREATE TABLE(,);表名:要定义的基本表的名字列名:组成该表的各个属性(列)列级完整性约束条件:相应属性列的完整性约束条件表级完整性约束条件:一个或多个属性列的完整性约束条件。常用的完整性约束有:主码约束PRIMARY KEY、唯一性约束UNIQUE、非空值约束NOT NULL、参照完整性约束FOREIGN KEY REFERENCES。,8.4 数据定义语言,一、数据库与表的定义2、表的定义CREATE TABLE XS(xh char(10)NOT NULL PRIMARY
20、KEY,xm nchar(20)NOT NULL,xb char(2)NOT NULL DEFAULT(男),csny datetime,zy char(4)NOT NULL REFERENCES zy(zydm),jtdz nchar(50),rxsj datetime NOT NULL DEFAULT(getdate(),kkcj decimal(5,1)NOT NULL,lxdh nchar(11),email nchar(50),bh char(8)NOT NULL REFERENCES bj(bh),ssh char(6)REFERENCES ss(ssh),8.4 数据定义语言,创
21、建专业表ZY(zydm,zymc,xz,cc,xwlx,zsnf,xydm)其中:主键为zydm,外键为xydm,引用表为XY;学制(xz)为35年,默认4,层次(cc)默认为本科,招生年份为4位整型数创建该表的命令如下:CREATE TABLE ZY(zydm char(4)NOT NULL,zymc nchar(50)NOT NULL,xz smallint NOT NULL DEFAULT(4),cc char(4)NOT NULL DEFAULT(本科),zsnf int NOT NULL,xydm char(10)NOT NULL,PRIMARY KEY(zydm),FOREIGN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 逻辑设计 物理 设计

链接地址:https://www.31ppt.com/p-5985870.html