数据库原理期末总结_第1页
数据库原理期末总结_第2页
数据库原理期末总结_第3页
数据库原理期末总结_第4页
数据库原理期末总结_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 绪论:1. 信息:信息是关于现实世界事物的存在方式或运动状态的反映的综合,是一种被加工为特定形式的数据,有意义和价值。2. 数据:是描述事物的符号记录,是信息的具体表现形式。3. 数据库:是长期存储在计算机内的、有组织的、可共享的大量的数据集合。4. 数据库中的数据:按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,可共享。5. 数据库管理系统位于用户与操作系统之间的一层数据管理软件。主要功能:数据定义、组织、存储、操纵,数据库的事务管理和运行管理、建立和维护。6. 数据库系统是在计算机系统中引入数据库的系统。包括:数据库、数据库管理系统、应用系统、数据库管理员(DBA)、用户。7. 数据处理:对各种数据进行收集、储存、加工和传播等。8. 数据管理:数据处理的中心问题,对数据进行分类、组织、编码、存储、检索和维护。9. 数据管理的三个阶段:人工管理、文件系统、数据库系统阶段。10. 数据库与文件系统的根本区别:数据结构化。11. 在数据库中,不仅文件内部数据彼此相关,而且文件之间在结构上也有机地联系在一起。12. 数据的独立性包括:a.物理独立性:用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。b.逻辑独立性:应用程序与数据库的逻辑结构相互独立。13. 数据的独立性是由DBMS的二级映象功能来保证的。14. DBMS必须提供的控制功能:安全性保护、完整性检查、并发控制、数据库恢复。15. 模型现实世界特征的模拟和抽象;数据模型是现实世界数据特征的抽象。16. 两个不同层次的模型:a.概念模型(数据库设计)b.逻辑模型(DBMS的实现)和物理模型(系统内部的表示和存取方法)17. 抽象过程:现实世界信息世界机器世界。18. 数据模型的三要素:数据结构、数据操作、完整性约束19. 数据结构: 组成数据库的对象类型的集合、对系统静态特性的描述。20. 数据操作:检索(查询)和更新(包括插入、删除、修改)两大类操作。21. 完整性约束:数据及其联系所满足的制约和依存规则,以保证数据的正确、有效和相容。22. 码(Key):唯一标识实体的属性集。23. E-R图表示实体型、属性和联系的方法:实体型矩形;联系菱形;属性椭圆。24. 关系模型是建立在严格的数学概念之上的,它的数据结构是一张二维表。25. 关系:一个关系对应一张二维表。元组:一行。属性:一列。主码:可唯一标识元组的属性或属性组,也称为关系的键。关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,属性n),如:学生(学号,姓名,年龄,性别,专业,年级)。26. 数据操纵主要包括查询、插入、删除和修改数据。27. 数据库系统的三级模式结构:外模式、模式、内模式。28. 两层映象:外模式/模式映像、模式/内模式映像。29. 外模式/模式映像:当模式改变时,外模式/模式的映像要作相应的改变,以保证外模式保持不变。保证了数据的逻辑独立性。30. 模式/内模式映像:定义数据逻辑结构和存储结构之间的对应关系,当数据库的存储结构改变时,模式/内模式的映像也必须作相应的修改,使得模式保持不变。保证了数据的物理独立性。31. 模式:数据库中全部数据的逻辑结构和特性的描述。只是对记录型的描述,而与具体的值无关;不仅要定义数据的逻辑结构,还要定义数据间的联系,安全性、完整性要求。32. 外模式:数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。注:一个应用程序只能使用一个外模式。33. 内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。注:一个数据库只能有一个内模式。第二章关系数据库:1. 关系的三种完整性约束:实体完整性、参照完整性、用户自定义的完整性。2. 域:具有相同数据类型的值的集合。域中值的个数成为基数。3. 域表示属性的取值范围。4. 笛卡尔积:给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn )| diDi , i=1,2,n,其中每一个元素(d1,d2,dn )叫做一个n元组(n-tuple)或简称元组(Tuple)。元素中的每一个值di叫做一个分量(Component)。例如:给出三个域:i. D1=导师集合SUPERVISOR=张,刘易ii. D2=专业集合SPECIALITY=计算机,信息iii. D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏则D1D2D3= (张,计算机,李勇),(张,计算机,刘晨),(张,计算机,王敏),(张,信息,李勇),(张,信息,刘晨),(张,信息,王敏), (刘易,计算机,李勇),(刘易,计算机,刘晨),(刘易,计算机,王敏),(刘易,信息,李勇),(刘易,信息,刘晨),(刘易,信息,王敏) 5. 关系:D1D2Dn的子集叫做在域D1,D2,Dn上的关系。n是关系的目或度。6. 由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。7. 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则该属性组就是候选码。8. 若一个关系有多个候选码,则选定其中一个为主码。主码的属性称为主属性9. 关系的三种类型:基本关系、查询表、视图。注:基本表是实际存在的表;查询表式查询结果对应的表;视图表是虚表,不对应实际存储的数据。10. 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。用户定义的完整性:针对某一具体关系数据库的约束条件。11. 并:RS=t|tRtS差:R-S=t|tRtS交:RS=t|tRtS广义笛卡尔积:RS=trts|trRtsS例如:给定两个关系R和S则有:12. 选择:在关系R中选择满足给定条件的诸元组。sF(R)=t|tRF(t)=真例:查询信息系(IS)全体学生:sSdept=IS(Student)查询年龄小于20岁的学生:sSage20(Student)13. 投影:关系R上的投影,是从R中选择出若干属性列构成新的关系。pA(R)=tA|tR例:查询学生的姓名和所在的系:pSname,Sdept(Student)查询学生关系中有哪些系:pSdept(Student)14. 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。RS=trts|trRtsStrAqtsB AqB 15. 等值连接:q为“=”的连接为等值连接16. 自然连接:两个关系中进行比较的分量必须是相同的属性组,并且去掉结果中重复的属性列。例5 对于下面的两个关系R和S,考虑三个连接17. 除运算:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。 R中的 Y与S中的 Y可以有不同的属性名,但必须出自相同的域集。 R与S的除运算得到一个新的关系P(X), P是R中满足下列条件的元组在X属性列上的投影的集合。RS=tr X| tr R pY(S)Yx例6 对于下面的关系R和S,计算RS。对于关系R,A可以取四个值:a1,a2,a3,a4,其中:a1的象集(B,C)a1 =(b1,c2),(b2,c3),(b2 ,c1)a2的象集(B,C)a2 =(b3,c7),(b2,c3)a3的象集(B,C)a3 =(b4,c6)a4的象集(B,C)a4 =(b6,c6 )S在(B,C)上的投影为:(b1,c2),(b2 ,c1),(b2,c3)RS的结果为: 几个例子关系:例7查询选修2号课程的学生的学号pSno( sCno=2(SC) 例9 查询至少选修了一门其直接先行课为5号课程的学生姓名。pSname(sCpno=5(Course)SCpSno,Sname(Student)例10 查询选修了全部课程的学生的学号和姓名。pSno,Cno(SC) pCno (Course) pSno,Sname(Student)18. 元组关系演算以元组变量作为为此变元的基本对象。典型的关系演算语言:ALPHA。第三章关系数据库标准语言SQL:1.2. SQL的三级模式结构:外模式视图和部分基本表、模式基本表、内模式存储文件。3. 定义模式:CREATE SCHEMA AUTHORIZATION CREATE SCHEMA “S-T” AUTHORIZATION WANG;为用户wang定义了一个模式S-T。4. 删除模式:DROP SCHEMA 注:CASCADE和RESTRICT两者必选其一。CASCADE级联删除:把该模式中所有的数据库对象全部一起删除。RESTRICT限制删除:如果该模式中已经定义了下属的数据库对象,则拒绝该删除语句的执行。没有下属对象时才能执行。例:DROP SCHEMA ZHANG CASCADE;删除模式zhang,同时已经定义的表也被删除。5. 模式实际上定义了一个命名空间,在这个空间可以进一步定义该模式包含的数据库对象:基本表、视图、索引等。6. 创建了一个模式,就建立了一个数据库的命名空间,一个框架,这个空间中首先应定义的是该模式包含的基本表。7. 非空值约束 :不知道、不确定或无法填入的值。唯一性约束 :指明基本表上的某个列或某些列的组合在不同的元组中的取值不能相同。主键约束:用于定义基本表的主键。外键约束:是指一个表(称从表)的一个列或列组合,它的值需要引用另一个表(称引用表)的主键或唯一性键的值。8. ON DELETE选项是设置当引用表中具有外键约束的行被删除时,系统所做的处理。有三种可能的处理办法:RESTRICT:缺省选项,引用表中凡是被从表所引用的行都不准删除;CASCADE:从表中所有引用了引用表中被删除行的行也随之被删除;SET NULL:外键的值被设置为NULL。9. 定义基本表:CREATE TABLE ;注:“”中的内容是必选项“ ”中的内容是可选项;DEFAULT选项是列指定缺省值。例1 建立一个学生表Student,课程表course,选课表sc。CREATE TABLE Student (Sno CHAR(5)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(1),Sage INT DEFAULT 18,Sdept CHAR(15);CREATE TABLE Course ( Cno CHAR(2)PRIMARY KEY, Cname CHAR(30)NOT NULL, Cpno CHAR(2), Ccredit SMALLINT);CREATE TABLE SC ( Sno CHAR(5), Cno CHAR(2), Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno)REFERENCES Student(Sno), FOREIGN KEY(Cno)REFERENCES Course(Cno)ON DELETE CASCADE);10. 修改基本表:ALTER TABLE +ADD 完整性约束 DROP MODIFY ;例2 向Student表增加“入学时间(Scome)”列。 ALTER TABLE Student ADD Scome DATE;例3 将Student表Sage的数据类型改为INT ALTER TABLE Student MODIFY Sage INT;例4 删除Student表学生姓名(Sname)的唯一性约束。 ALTER TABLE Student DROP UNIQUE(Sname);11. 删除基本表:DROP TABLE ;连同数据及视图一同被删除。例5 删除Student表。 DROP TABLE Student;12. 建立索引:CREATE UNIQUE CLUSTER INDEX ON ( ,);索引提供多种存取路径,加快查询速度。建在表的一列或多列上,各列名之间用逗号分隔。列名后面还可以用次序选项指定索引值的排列次序,可选ASC(升序)或DESC(降序),缺省值为ASC;UNIQUE表明要建立唯一索引;CLUSTER表示要建立聚簇索引。13. 聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织,并且表中的数据与索引一同存储。可以在最常查询的列上建立簇聚索引以提高查询效率。14. 唯一索引是指每一个索引值只对应唯一的数据记录。 CREATE CLUSTER INDEX Stusname ON Student(Sname);例 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);15. 删除索引:DROP INDEX ;例7 删除Student表的Stusname索引。 DROP INDEX Stusname;16. 查询:SELECTALL|DISTINCT 别名1, 别名2FROM 表别名, 表别名WHERE GROUP BY HAVING ORDER BY ASC|DESC;17. 单表查询:例1 查询全体学生的学号和姓名。SELECT Sno,SnameFROM Student;例2 查询全体学生的详细记录。SELECT * FROM Student;例3查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所有系名。SELECT Sname,Year of Birth:,1996-Sage,ISLOWER(Sdept) FROM Student;SLEECT Sname Name,Year of Birth: BIRTH,1996-Sage BIRTHDAY,ISLOWER(Sdept) DEPARTMENT(查询并将列重命名)FROM Student;18. 消除取值重复行:SLEECT DISTINCT SnoFROM SC;19. 查询满足条件的元组:=,=,=,!=,!,!;NOT+上述比较符BETWEEN AND,NOT BETWEEN AND确定范围IN,NOT IN确定集合(查找属性值属于指定集合的元组)LIKE,NOT LIKE进行字符串的匹配IS NULL,IS NOT NULL空值AND,OR多重条件注:当LIKE后面的匹配串中不含通配符时,可以用=取代LIKE谓词。确定范围:例10 查询年龄在2023之间的学生的姓名、系别和年龄。SELECT Sname,Sdept,SageFROM Student WHERE Sage BETWEEN 20 AND 23;确定集合:例13 查询不是信息系、数学系和计算机科学系学生的姓名和性别。SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN (IS,MA,CS) ;字符匹配:例21 查询缺少成绩的学生的学号和相应的课程号。SELECT Cno,Ccredit FROM Course WHERE Cname LIKE DB_Design ESCAPE ;(ESCAPE后面的字符”_”不再有通配符的含义,转移为普通的“_”字符)涉及空值的查询:例22 查询有成绩的学生的学号和相应的课程号SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL;多重条件查询:例23 查询计算机系年龄在20岁以下的学生姓名。SELECT Sname FROM Student WHERE Sdept=CS AND Sage3;23. 连接条件:连接查询中用来连接两个表的条件。例32 查询每个学生及其选修课程的情况。SELECT Student.*,SC.*FROM Student,SC WHERE Student.Sno=SC.Sno;24. 等值连接:连接运算符为=。25. 自然连接:在等值连接中,把目标列中重复的属性列去掉,就成为自然连接。26. 自身连接:一个表与其自己进行连接。例34 查询每一门课的间接先修课(即先修课的先修课) SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=SECOND.Cno;运行结果:27. 嵌套查询:将一个查询快嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询。注:子查询不能用ORDER BY子句。例37 查询与刘晨在同一个系学习的学生。SELECT Sno,Sname,SdeptFROM Student WHERE Sdept IN ( SELECT SdeptFROM Student WHERE Sname=刘晨);28. 不相关子查询:子查询的查询条件不依赖于父查询。SELECT Sno,Sname,Sdept FROM StudentWHERE Sdept= (SELECT Sdept FROM Student WHERE Sname=刘晨);注意子查询要在比较符之后。29. 相关子查询:子查询的查询条件依赖于外层父查询的某个属性值。例:找出每个学生超过他选修课程平均成绩的课程号SELECT Sno, Cno FROM SC SCXWHERE Grade=( SELECT AVG(Grade)FROM SC SCY WHERE SCY.Sno=SCX.Sno);30. ANY:与子查询结果的某个值比较ALL :与子查询结果的所有值比较例39 查询其他系中比信息系某一学生年龄小的学生姓名和年龄。SELECT Sname,SageFROM StudentWHERE SageANY (SELECT SageFROM Student WHERE Sdept=IS)AND SdeptIS;31. 带有EXISTS谓词的子查询:例41 查询所有选修了1号课程的学生姓名。 SELECT Sname FROM Student WHERE EXISTS (SELECT *FROM SC WHERE SC.Sno=Student.Sno AND Cno=1);用连接可写成: SELECT Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND SC.Cno=1;例42 查询选修了全部课程的学生姓名。SELECT Sname FROM Student WHERE NOT EXISTS (SELECT *FROM Course WHERE NOT EXISTS (SELECT *FROM SC WHERE SC.Sno=Student.Sno ANDSC.Cno=Course.Cno);32. 例46 查询选修了课程1或者选修了课程2的学生学号。 SELECT Sno FROM SC WHERE Cno=1 UNION SELECT Sno FROM SC WHERE Cno=2;33. 例48 查询同时选修了课程1和课程2的学生学号。SELECT Sno FROM SCWHERE Cno=1 AND Sno IN (SELECT Sno FROM SC WHERE Cno=2);34. SQL中更新包括:插入、删除、修改例1 将一个新学生记录(学号:200215128;姓名:陈东;性别:男;所在系:IS;年龄:18)插入到Student表中。INSERT INTO Student VALUES (200215128,陈东,男,IS, 18);例2 对每一个系,求学生的平均年龄,并把结果存入数据库。CREATE TABLE Deptage(Sdept CHAR(15),Avgage SMALLINT);INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,Avg(Sage)FROM Student GROUP BY Sdept;例3 将学生200215121的年龄改为22岁。UPDATE StudentSET Sage=22WHERE Sno=200215121;例4 删除学号为200215128的学生记录。DELETEFROM StudentWHERE Sno=200215128; 35. 视图:从一个或几个基本表(或视图)导出的表,是一个虚表。数据库中只存放视图的定义。而不存放视图对应的数据,这些数据仍存放在原来的基本表中。例2 建立信息系学生的视图,并要求更新视图时仍保证视图只有信息系的学生。 CREATE VIEW IS_Student AS SELECT Sno,Sname,SageFROM Student WHERE Sdept=IS WITH CHECK OPTION(当对视图进行插入或更新时,要保证新行满足视图的定义中的谓词条件。)注:AS下面的子查询通常不允许含有ORDER BY子句和DISTINCT短语。36. 行列子集视图:若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了码,称这类视图为行列子集视图。例4 建立信息系选修了1号课程的学生视图。CREATE VIEW IS_S1(Sno,Sname,Grade)ASSELECT Student.Sno,Student.Sname,GradeFROM Student,SCWHERE Sdept=IS AND Student.Sno=SC.Sno AND SC.Cno=1;37. 虚拟列:视图定义中的一些基本表中并不存在派生属性。表达式视图:带虚拟列的视图。例5 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2006-SageFROM Student;38. 删除视图:例8 删除视图IS_S1:DROP VIEW IS_S1;39. 视图查询:例3 在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩。SELECT *FROM S_GWHERE Gavg=90;视图消解后得到: SELECT Sno,AVG(Grade)FROM SC WHERE AVG(Grade)=90GROUP BY Sno;正确的查询语句应该是: SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno;HAVING AVG(Grade)=9040. 并不是所有视图都可以更新,一些视图是理论上可更新的,一些是理论上不可更新的。通常行列子集视图允许更新。视图不允许更新的情况:书P124 41. 视图的作用:简化用户操作;使用户以多种角度看待同一数据;对重构数据库提供了一定程度的逻辑独立性;对机密数据提供安全保护;更清晰的表达查询。42. SQL中数据控制功能包:事务管理功能和数据保护功能;数据库的安全性和完整性控制。43. DBMS安全控制功能:把授权决定告知系统;授权结果存入数据字典;用户提出操作请求时,根据授权情况进行检查,以决定是否执行操作请求。44. 授权:GRANT , ON TO ,例1 把查询Student表的权限授给用户U1。GRANT SELECT ON TABLE StudentTO U1;例3 把查询Student表和修改学生学号的权限授予所有用户。GRANT UPDATE(Sno),SELECT ON TABLE Student TO PUBLIC;例5 DBA把在数据库S_C中建立表权限授予用户U8,并允许此权限再授予其他用户。GRANT CREATETABON DATABASE S_CTO U8WITH GRANT OPTION;45. 收回权限:REVOKE , ON FROM 例7 把用户U4修改学生学号的权限收回。 REVOKE UPDATE(Sno) ON TABLE Student FROM U4;第五章 数据库完整性1. 数据库的完整性是指数据的正确性和相容性。2. 完整性:防止数据库中存在不符合语义的数据,防止错误的信息的输入和输出造成的无效操作和错误结果。安全性:保护数据库防止恶意的破坏和非法的存取。3. 完整性约束条件是加在数据库数据之上的语义约束条件。4. 完整性检查是检查数据是否满足完整性条件的机制。5. 完整性控制机制具有三个方面的功能:定义,检查,保证数据的完整性。6. 实体完整性在CREATE TABLE中用PRIMARY KEY定义。完整性检查包括:主码值是否唯一,不唯一则拒绝修改;检查注明的各属性是否为空,一个空则拒绝修改。7. 参照完整性:FOREIGN KEY和REFERENCES短语定义外码和所参照的主码。8. 自定义完整性约束条件:NOT NULL UNIQUE CHECK第六章 关系数据理论例:用于描述学生情况的一组属性:U=SNO,SDEPT,MN,CNAME,G。这里,这些属性分别描述学号、系、系负责人、课程名和成绩。由现实世界已知的事实可知: 一个系有若干学生,但一个学生只属于一个系; 一个系只有一名负责人; 一个学生可以选修多门课程,每门课程有若干学生选修; 每个学生学习每一门课程有一个成绩。因此可得到属性集U上的一组函数依赖:F=SNOSDEPT,SDEPTMN,(SNO,CNAME) Gl 不好的模式常见的四个问题:插入异常、删除异常、冗余太大、更新异常。 解决办法:S(SNO,SDEPT,SNOSDEPT);SG(SNO,CNAME,G,(SNO,CNAME)G);DEPT(SDEPT,MN,SDEPTMN)。1. 关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式、模式设计。其中,函数依赖起着核心的作用。2. 函数依赖:设关系模式R(U),是属性集U上的关系模式, X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y,或Y函数依赖于X,记作XY。3. XY,但YX则称XY是非平凡的函数依赖;XY,但Y包含于X则称XY是平凡的函数依赖;若XY,则X叫做决定因素。4. 在R(U)中,如果XY,并且对于X的任何一个真子集X,都有 XY,则称Y对X完全函数依赖。5. 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖。6. 在R(U)中,如果XY,(YX),YX,YZ,则称Z对X传递函数依赖。注:如果YX,则XY,实际上是X直接Z,是直接函数依赖而不是传递函数依赖。 7. 5NF 4NF BCNF 3NF 2NF 1NF8. 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程叫做规范化。9. 第一范式:关系中每个属性都是不可再分的简单项。1NF,记作R1NF。满足这个条件的关系称为规范化关系。注:在非规范化的关系中去掉组合项就能化成规范化的关系。10. 2NF:若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。 考虑关系模式S-L-C(SNO,SDEPT,SLOC,CNO,G),其中SLOC为学生的住处,并且每个系的学生住在同一个地方。u 这里码为(SNO,CNO)。满足的函数依赖有: F(SNO,CNO) G,SNOSDEPT,SDEPTSLOC,SNOSLOC,P(SNO,CNO) SDEPT,P(SNO,CNO)SLOC 。 所以 S-L-C2NF11. 不满足2NF和3NF的关系模式会产生以下问题:插入异常 删除异常 修改复杂。 分析上面的例子,可以用投影分解把S-L-C分解为:SC(SNO,CNO,G)F(SNO,CNO) GS-L(SNO,DEPT,SLOC)SNOSDEPTSDEPTSLOCSNOSLOC12. 3NF:关系模式R 中若不存在这样的码X,属性组Y及非主属性Z(ZY),使得XY,Y X ,YZ成立,则称R 3NF。注:若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。考虑分解得到的关系模式S-L(SNO,SDEPT,SLOC)。由于:SNOSDEPTSDEPTSLOCSDEPTSNO所以S-L3NF解决办法是对S-L分解消除非主属性对码的传递函数依赖:S-D(SNO,SDEPT)SNOSDEPT D-L(SDEPT,SLOC) SDEPTSLOC13. BCNF:关系模式R1NF。若XY且YX时,X必含有码,则R BCNF。也就是说,关系模式R中,若每一个决定因素都包含码,则RBCNF。14. 一个满足BCNF的关系模式有:所有非主属性对每一个码都是完全函数依赖;所有的主属性对每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性。 例子:考察关系模式Course(CNO,CNAME,PCNO),它只有一个码CNO,这里没有任何属性对CNO部分依赖或传递依赖,所以Course3NF。同时CNO是唯一的决定因素,所以CourseBCNF。 对于关系模式Student(SNO,SNAME,SDEPT,SAGE),假定SNAME也具有唯一性,那么Student就有两个码,这两个码都由单个属性组成,彼此不相交。其他属性不存在对码的传递依赖与部分依赖,所以Student3NF。同时Student中除SNO,SNAME外没有其他决定因素,所以Student也属于BCNF。 关系模式SJP(S,J,P)中,S是学生,J表示课程,P表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次)。u 由语义可得到下面的函数依赖:(S,J)P(J,P)S所以(S,J)与(J,P)都可以作为候选码。这两个码各由两个属性组成,而且它们是相交的。这个关系模式中显然没有属性对码传递依赖或部分依赖。所以SJP3NF,而且除(S,J)与(J,P)以外没有其他决定因素,所以SJPBCNF。 关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课;每门课有若干教师;某一学生选定某门课,就对应一个固定的教师 。u 由语义可得到下面的函数依赖:(S,J)T(S,T)JTJ这里(S,J),(S,T)都是候选码。STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖。但STJ不满足BCNF关系,因为T是决定因素,而T不包含码。STJ仍存在插入异常将其分解为:ST(S,T)TJ(T,J)15. 关系规范化的过程如下图所示: 16. 在实际应用中,最有价值的是3NF和BCNF。17. 合并规则:由XY,XZ,有XYZ。18. 伪传递规则:由XY,WYZ,有XWZ。19. 分解规则:由XY及ZY,有XZ。20. XA1A2Ak成立的充分必要条件是XAi成立21. 在关系模式R 中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F。 已知关系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(AB)F。u 由上述算法,设X(0)=AB;计算X(1)。逐一扫描F集合中各个函数依赖,找左部为A,B或AB的函数依赖。得到两个:ABC,BD。于是 X(1) =ABCD=ABCD;因为X(0)X(1),所以再找出左部为ABCD子集的那些函数依赖,又得到CE,ACB,于是X(2)=X(1)BE= ABCDE。因为X(2)已等于全部属性集合,所以(AB)F=ABCDE。22. 模式分解:分解具有无损连接性、分解保持依赖、既具有无损连接性又保持依赖。练习: 设有关系模式R(A,B,C,D,E),其上的函数依赖集: F=A BC,CD E,B D,E A 计算A。 求出R的所有候选关键字。 R满足的最高范式。 设有一教学管理数据库,其属性包括:学号(S),课程号(C),成绩(G),任课教师(TN),教师所在的系(D)。这些数据有下列语义:学号和课程号分别与其代表的学生和课程一一对应;一个学生所修的每门课程都有一个成绩;每门课程只有一位任课教师,但每位教师可以有多门课程;教师中没有重名,每个教师只属于一个系。 试根据上述语义确定函数依赖集。 如果用上面所有属性组成一个关系模式,那么该关系模 式满足的最高范式级别是什么? 分解为3NF。第七章 数据库设计1. 数据库设计:对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。2. 数据库设计的目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。3. 现代数据库设计的特点:“三分技术,七分管理,十二分的基础数据”;结构(数据)设计和行为(处理)设计相结合。4. 规范设计法:新奥尔良方法、基于E-R模型的数据库设计方法、基于3NF的设计方法、ODL方法。5. 按规范设计法可将数据库设计分为六个阶段:分析设计阶段:前四个阶段面向用户的应用要求,面向具体的问题: 需求分析 概念结构设计面向数据库管理系统: 逻辑结构设计 物理结构设计实现和运行阶段:后两个阶段面向具体的实现方法: 数据库实施 数据库运行与维护6. 数据库设计的生存期:指从数据库研制到不再使用它的整个时期。 需求分析是整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化和分析。 概念结构设计:整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成独立于任何DBMS软件和硬件的概念模型。 逻辑结构设计:将上一步得到的概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。 数据库物理设计:为逻辑数据模型建立一个完整的能实现的物理数据库结构,包括存储结构和存取方法。 数据库实施阶段:运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 数据库运行、维护阶段:收集和记录实际系统运行的数据,数据库运行的记录用来提高用户要求的有效信息,用来评价数据库系统的性能,进一步调整和修改数据库。7. 数据库结构设计的不同阶段形成数据库的各级模式: 需求分析阶段,综合各个用户的需求; 概念设计阶段形成独立于及其特点,独立于各个DBMS产品的概念模式(E-R图); 逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式; 物理设计阶段,根据DBMS的特点和处理需要,进行物理存储安排,建立索引,形成数据库内模式。8. 需求分析的任务:通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,收集支持新系统的基础数据并对其进行处理,确定新系统的功能。9. 获得用户对数据库的如下要求:信息要求、处理要求、安全性与完整性要求。10. 数据应用系统设计的特点:用户参加数据库设计。11. 需求分析的方法:自顶向下的分析方法。SA方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,用数据流图和数据字典描述系统。12. 数据字典包括:数据项、数据结构、数据流、数据存储、处理过程。13. 数据项是不可再分的数据单位。14. 数据结构:反映数据之间的组合关系。可以由若干个数据项或数据结构组成。15. 数据流可以是数据项,也可以是数据结构,它表示某一处理过程中数据在系统内传输的路径。16. 需求分析注意:设计人员要充分考虑到可能的扩充和改变;强调用户的参与。17. 概念结构设计:将需求分析得到的用户需求抽象为信息结构即概念模型的过程。做法:选择局部应用;逐一设计分E-R图。18. 概念结构是对现实世界的一种抽象。三种抽象:分类、聚集(整体与部分)、概括(一般与特殊,子集关系)。19. E-R图中的冲突有三种:属性冲突、命名冲突和结构冲突。将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。在转换中要遵循以下原则:(1)将每一个实体转换为一个关系;(2)所有主码必须定义非空。20. 实体间的联系有以下几种转换规则: 一个1:1的联系可以转换为一个独立的关系,也可以与任意一端对应的关系合并。 一个1:n联系可以转换为一个独立的关系,也可以与n端对应的关系合并。 一个m:n联系转换为一个关系。 三个或三个以上实体间的一个多元联系可以转换为一个关系。 具有相同码的关系模式可合并。21. 数据库物理设计:对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论