数据库系统原理期末复习大全.docx

上传人:小飞机 文档编号:3560005 上传时间:2023-03-13 格式:DOCX 页数:59 大小:67.69KB
返回 下载 相关 举报
数据库系统原理期末复习大全.docx_第1页
第1页 / 共59页
数据库系统原理期末复习大全.docx_第2页
第2页 / 共59页
数据库系统原理期末复习大全.docx_第3页
第3页 / 共59页
数据库系统原理期末复习大全.docx_第4页
第4页 / 共59页
数据库系统原理期末复习大全.docx_第5页
第5页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库系统原理期末复习大全.docx》由会员分享,可在线阅读,更多相关《数据库系统原理期末复习大全.docx(59页珍藏版)》请在三一办公上搜索。

1、数据库系统原理期末复习大全数据库系统原理期末复习指导 第一章 概论 数据库:按照数据结构来组织、存储和管理数据的仓库。 数据库管理系统:位于用户与操作系统之间的一层数据管理软件。 数据库系统:在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。 数据库管理员:模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 外模式:外模式也称子模式或用户模式,它是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 内模式:内模式也称存储模式,它是数据物理结构和存

2、储结构的描述,是数据在数据库内部的表示方式 。 数据独立性:逻辑独立性+物理独立性 实体(entity):客观存在并可相互区别的事物。 属性:实体或联系所具有的某一特性。一个实体或属性可以由若干个属性来刻画。 联系:实体内部的联系和实体之间的联系 域:属性的取值范围。 候选键:超键的最小集合。能唯一确定一个实体的一个属性或属性组,并且它的任意真子集不具备这样的功能。 主键(primary key):当一个实体集中包括多个候选码时,选取的作为实体标识的候选码称为主码。 元组:表中的一行即为一个元组。 关系模式:关系的描述称为关系模式,通常简记为:R(U)或R(A1,A2,,An) 其中R为关系名

3、,U为属性名集合,A1,A2,,An为各属性名。 二、简述: 1 使用数据库来管理数据时数据的特征。 结构化 数据库系统实现整体数据的结构化,这是数据库的主要特征之一,所谓“整体”结构化是指在数据库中的数据不再仅仅针对某一个应用,而是面向全组织,不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。在数据库系统中实现了整体的数据结构化,不仅要考虑到某个应用的数据结构,还要考虑整个组织的数据结构。不仅数据是整体结构化的,而且存取数据的方式也很灵活,可以存取某一个数据项,一组数据项,一个记录或一组记录。 共享性,冗余度 数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整

4、个系统,因此数据可以被多个用户,多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。 独立性 数据独立性是数据库领域中一个常用的术语和重要概念,包括数据的物理独立性和数据的逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。 完整性 数据的完整性指数据的正确性,有效性和相容性,完整性检查数据控制在有效的范围内,或保证数据之间满足一定的关系。 2 DBMS的功能是什么? 数据定义 用户通过它可以方

5、便地对数据库中的数据对象进行定义。 数据操纵 用户可以使用DML操纵数据,实现对数据库的基本操作,如查询,插入,删除,和修改等。 数据库的事务管理和运行管理 数据库在建立,运用和维护时由数据库管理系统统一管理,统一控制,以保证数据的安全性,完整性,多用户对数据的并发使用及发生故障后的系统恢复。 数据组织,存储和管理 数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法来提高存取效率。 数据库的建立和维护功能 包括:数据库初始数据的输入,转换功能,数据库的转储,恢复功能,数据库的重组织功能和性能监视,分析功能等。 其它功能 DBMS与网络中其他软件系统的通信功能,一个DBMS

6、与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。 3 DBA的功能是什么? 决定数据库中的信息内容和结构。 决定数据库的存储结构和存取策略。 定义数据的安全性要求和完整性约束条件。 监控数据库的使用和运行。 数据库的改进和重组结构。 4数据库系统的构成是怎样的? 数据库系统一般由数据库、数据库管理系统、应用系统和数据库管理员构成。 5简述数据库三级模式体系结构及其功能? 数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成 模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。数据库模式以某一种数据模型为基础。 外

7、模式也称子模式或用户模式,它是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 内模式(external schema)也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。 对于每一个外模式,数据库系统都有一个外模式模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。当模式改变时,由数据库管理员对各个外模式模式的映象作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一个内模式,所以模式

8、内模式映象是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。该映象定义通常包含在模式描述中。当数据库的存储结构改变了,由数据库管理员对模式内模式映象作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。 6 数据模型的三要素是什么? 数据结构、数据操作和完整性约束 7简述概念模型的成分及其表示。 成分:实体型,属性,联系 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型 8 简述数据库管理阶段数据的结构模型及其数据表示形式。

9、在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型 有且只有一个结点没有双亲结点,这个结点称为根结点; 根以外的其他结点有且只有一个双亲结点 在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间的一对多的联系。这使得层次模型数据库只能处理一对多的实体联系。 在数据库中定义满足下面两个条件的基本层次联系的集合为网状模型 允许一个以上的结点无双亲。 一个结点可以有多于一个的双亲。 网状模型中每个结点表示一个记录类型,每个记录类型可包含若干个字段,结点间的连线表示记录类型之间一对多的父子联系。 从用户观点看,关系模型由一组关系组成。每个关系的数据结

10、构是一张规范化的二维表。 第二章 关系代数 一、术语释义: 主码:若一个关系有多个候选码,则选定其中一个为主码 外码(foreign key):设F是基本关系R的一个或一组属性,但不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。 主属性:候选码的诸属性 非主属性:不包含在任何候选码中的属性 数据完整性:指数据的精确性和可靠性 实体完整性:若属性A是基本关系R的主属性,则A不能取空值 参照完整性:对于两个关系R和S,R中存在属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组在F上的值必须为空值或者等于S中某个元组的主码值。 用户自定义完整性:

11、针对某一个具体应用的数据必须满足的语意要求 并运算: 算数符号表示RS=t|tRtS, 交运算(intersection):算数符号表示 RS=t|tRtS 差运算(difference):算数符号表示RS=t|tRt! S 笛卡尔积(cartesian product):算数符号表示RS=|xRyS 选择运算(selection):从关系R中选择使逻辑表达式F为真的元组。 投影运算:关系R上的投影是从R中选出若干属性列组成新关系 连接运算(join):从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 除运算(division):给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。

12、R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量x的像集Yx包含S在Y上投影的集合。 自然连接(natual join): 所谓自然连接就是在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉。即如果R与S具有相同的属性组Y,则自然连接可记作:R*S=t rts |trRtsStrY=tsY 自然连接是在广义笛卡尔积RS中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。 等值连接(equijoin):等值连接是条件连接在连

13、接运算符为“=”号时的特例。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 二简答 1.说明关系模型定义的数据完整性有哪三种?解释含义并举例说明。 答: 实体完整性:若属性A是基本关系R的主属性,则A不能取空值。 举例:学生选课关系选修中,“学生,课程号”为主码,则这两个属性不能取空值。 参照完整性:现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。 举例:学生实体和专业实体可以用下面的关系来表示,其中主码用下划线标识: 学生 专业 这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”

14、。显然,学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有盖专业的记录。也就是说,学生关系中的某个属性的取值需要参照专业关系是属性取值。 用户定义的完整性:它就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。 例如:某个属性必须取唯一值,某个非主属性也不能取空值学生关系中必须给出学生姓名,就可以要求学生姓名不能取空值),某个属性的取值范围在0-100之间等。 2.关系代数的基本运算集合是怎样的?最小运算集合呢? 答:关系代数包括 交,并,差,笛卡尔积运算,还有专门的关系运算包括 选择,投影,连接,除运算。 3.简述关系演算及其类型。 答:

15、关系演算是以数理逻辑中的谓词演算谓基础的。按谓词变元的不同,关系演算可分为元祖关系演算和域关系演算。 三实践: 有数据库S_C (S ,C,SC),其中 S(SNO,SNAME,SEX,SAGE,SDEPT) C(CNO,CNAME,CREDIT) SC(SNO,CNO,GRADE) 使用关系代数表达以下问题: 1、查询计算机系学生的年龄。 S where sdept=cssage 、查询计算机系学生选修的课程号和成绩。 join SC)cno,grade 、查询李明同学的各科课程名和成绩。 join SC join C)pcname ,grade 、查询数据库课程分以上的同学的其他课程和成绩

16、。 (join)sno)join SC) cno,grade 、查询女生数据库课程的成绩。 )sname,grade 、查询李明同学已获得的学分及其课程。 (S where sname=李明) join ( SC where grade=60) join C) cno, credit 7,查询至少选修了李明同学所选修课程的同学信息。 join SC) cno) join SC) sno join S 第三章 SQL设计 一术语解释 基本表:基本表是本身独立存在的表,在SQL中一个关系对应一个基本表。一个基本表对应一个存储文件,一个表可以带若干索引,索引也可以放在存储文件中。 视图:试图是从一个

17、或几个基本表导出册表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。 索引:数据库中的索引类似于书籍的索引,在书籍中,索引允许用户不必翻阅完整的书就能迅速地找到所需的信息。在数据库中,索引页允许数据库程序迅速找到表中的书籍,而不必扫描整张表。 行列子集视图:若一个视图是从单个基本表导出的,并且只是去掉基本表的某些行和某些列,但保留主码,我们称这类视图为行列子集视图。 嵌套视图:视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或建立在基本表与视图上,称为嵌套视图。 分组视图:带有集函数和GROUP BY

18、 子句的查询来定义的视图。 虚拟列视图:为了减少数据库中的冗余数据,表中只存放基本数据,由基本计算经过计算派生出来的数据一般是不存储的,所以定义视图时根据应用需要设置的一些派生属性列被称为虚拟列。带有虚拟列的视图为虚拟列视图。 不相关子查询:子查询的查询条件不依赖于父查询。 二简答 1.完整的SQL语句中个字句的执行次序是怎样的? 答:一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。 4)表达式转换, 将复杂

19、的 SQL 表达式转换为较简单的等效连接表达式。 5)选择优化器,不同的优化器一般产生不同的“执行计划” 6)选择连接方式, ORACLE 有三种连接方式,对多表连接 ORACLE 可选择适当的连接方式。 7)选择连接顺序, 对多表连接 ORACLE 选择哪一对表先连接,选择这两表中哪个表做为源数据表。 8)选择数据的搜索路径,根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。 9)运行“执行计划” SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数

20、据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、使用order by对结果集进行排序。 另外:一个查询语句各个部分的执行顺序: -8) SELECT (9) DISTINCT (11) -(1) FROM -(3) JOIN -(2) ON -(4) WHERE -(5) GROUP BY -(6) WITH CUBE | ROLLUP -(7) HAVING -(10) ORDER BY 2.说明视图的作用。 合理使用视图能够带来许多好处: 1视图能够简化用户的操作。 2视图使用户能够以多种角度看待同一数据。 3视图对重构数据库

21、提供了一定程度的逻辑独立性。 4视图能够对机密数据提供安全保护。 5适当的利用视图可以更清晰的表达查询。 3.索引是什么?有何作用? 答:数据库中的索引类似于书籍的索引,在书籍中,索引允许用户不必翻阅完整的书就能迅速地找到所需的信息。在数据库中,索引页允许数据库程序迅速找到表中的书籍,而不必扫描整张表。 三、实践: 要求掌握: 数据库定义语句,表和数据完整性定义语句 数据查询:简单查询,分组查询, 汇聚函数查询, 连接查询, 嵌套查询 数据操纵:插入操作insert,删除操作delete, 修改操作update 数据操纵:插入操作insert,删除操作delete, 修改操作update 1、

22、查询计算机系学生的年龄。 select sage from student where dept=计算机 、查询计算机系学生选修的课程号和成绩。 select cno,grade from student,report where student.sno=report.sno and dept=计算机 、查询李明同学的各科课程名和成绩。 select cname,grade from student,course,report where student.sno=report.sno and o=o and sname=李明 4、 列出姓李的同学的名单。 select sname from s

23、tudent where sname like 李% 5、 查询数据库课程分以上的同学的其他课程和成绩。 select cno,grade from report where sno in (select sno from course c,report r where o=o and cname=计算机网络 and grade=90) and cno!= (select cno from course where cname=计算机网络) 6、 查询女生数据库课程的成绩。 select sname,grade from student s,report r,course c where s.

24、sno=r.sno and o=o and sex=女 and cname=数据库 7、 查询李明同学已获得的学分及其课程。 select sname,cname,credit from student s,course c,report r where s.sno=r.sno and o=o and grade=60 and sname=李明 8、 查询没选修“数据库应用”课程的同学的信息。 select sno,sname from student where sno not in(select sno from course c,report r where o=o and cname=

25、数据库应用) 9、 列出各系选修了课程的学生人数。 select dept as 系名,count(distinct s.sno) as 人数 from student s,report r where s.sno=r.sno group by dept 10、 列出各位同学的平均成绩,最高分和最低分。 select sno,avg(grade) 平均分,max(grade) 最高分,min(grade) 最低分 from report group by sno 11、 查询各位同学的平均成绩,并将超过80的同学信息输出问题。 select s.sno,avg(grade) as 平均分 fr

26、om student s,report r where s.sno=r.sno group by s.sno having avg(grade)=80 12、 查询计算机系各位同学的平均成绩,并将超过80的同学信息输出。 select s.sno,avg(grade) as 平均分 from student s,report r where s.sno=r.sno and dept=计算机 group by s.sno having avg(grade)=80 13、 定义学生选课库,定义学生表、课程表、学生选课表。 14、 定义各表有关数据的实体、参照和自定义完整性。 CREATE DATA

27、BASE SC ON (name=sc_data, Filename=d:sqlsc.mdf, Size=5MB,maxsize=50MB, Filegrowth=10%) Log on (name=sc_log, Filename=d:sqlsc.ldf, Size=2MB,maxsize=5MB, Filegrowth=1MB) GO USE SC CREAT TABLE STUDENT (sno char(6) PRIMARY KEY, sname char(8) not null UNIQUE, sex char(2) check (sex in(男,女)default男, birth

28、 smalldatetime, dept char(10), hobby char(30); GO CREATE TABLE COURSE (cno char(4) PRIMARY KEY, cname char(20) not null UNIQUE, credit tinyint); GO CREATE TABLE REPORT (sno char(6) REFERENCES STUDENT(sno), cno char(4) REFERENCES COURSE(cno), grade tinyint check(grade between 0 and 100), PRIMATY KEY(

29、sno,cno); GO 14、定义计算机系学生视图。 create view CP_Student as select * from student where dept=计算机 15、基于计算机系学生视图按性别查询人数和最大、最小年龄。 select sex,count(sno) as 人数,max(sage) as 最大年龄,min(sage) as 最小年龄 from CP_student group by sex 16、根据学生成绩表创建学号升序,课程号降序的索引。 CREATE INDEX scno ON SC(sno,cno desc); 17、向各表插入数据、修改数据或删除数据

30、。 例: 插入 Insert Into student(sno,sname,sex,dept,sage) Values (09416110,胡思路,女,计算机,22); 修改 Update student Set sex=男 Where sno=09416110; 删除 Delete From student Where sno=09416110; 以上代码仅供参考 第四章 数据库的安全性 一 术语释义:计算机系统的安全性 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 二 简答: 简述实现数据库安全性控制的常用方法和技术。 用户标识和鉴别:是系统提供的最外层安全

31、保护措施。 方法:由系统提供一定的方式让用户标识自己的名字和身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。 示例:使用用户名和口令 存取控制机制:确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据库。 方法:通过数据库系统的存取控制机制实现,包括以下两个部分: 1定义用户权限,并将用户权限登记到数据字典中; 2合法权限检查:每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查。 自主存取控制方法 :用户对于不同的数据库对象有不同的存

32、取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。 方法:通过对存取权限的授权与回收。 强制存取控制:每一个数据库对象被标以一定的密级, 每一个用户也被授予某一个级别的许可证。 视图 审计 数据加密 三 应用:掌握SQL中提供的自主存取控制语句的简单使用。 数据控制:授权操作grant, 收权操作revoke 例:今有两个关系模式: 职工 部门 请用SQL的GRANT和REVOKE语句完成以下授权定义或存取控制功能: (a) 用户王明对两个表有SELECT权力; GRANT SELECT ON TABLE 职工,部门 To 王明 ; (b)用户李勇对两个

33、表有INSERT和DELETE权力; GRANT INSERT , DELETE ON TABLE 职工,部门 TO李勇; (c) 每个员工只对自己的记录有SELECT权力; grant select on table职工when姓名=user to public (d)用户刘星对职工表有SELECT权利,对工资字段具有更新权力; GRANT SELECT,UPDATE ON TABLE 职工 TO 刘星; (e)用户张新具有修改这两个表的结构的权力; GRANT UPDATE ON TABLE职工,部门 TO张新 ; (f) 用户周平具有对两个表所有的权力,并具有给其他用户授权的权利; GR

34、ANT ALL PRIVILEGES ON TABLE职工,部门 TO周平 WITH GRANT OPTION; (g)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。 CREATE VIEW ZB AS SELECT MAX(工资),MIN(工资),AVG(工资) FROM职工,部门 WHERE职工.部门号=部门.部门号 GROUP BY 名称; GRANT SELECT ON ZB TO杨兰; 第五章 数据库的完整性 1数据库中实现数据完整性的方法是怎样的? 数据库通过RDBMS完整性实现的机制,包括: (1) 提供定义完整性约束条件机制

35、:包括关系模型的实体完整性,参照完整性和用户自定义完整性。 (2) 提供完整性检查机制:DBMS中检查数据是否满足完整性约束条件。 (3) 违约处理:DBMS若发现用户的操作违背完整性约束条件就采取一定的动作,如拒绝执行其他操作,进行违约处理以保证数据的完整性。 2举例说明关系的三类完整性的内容和实现的方法。 实体完整性关系模型的实体完整性在CREATE TABLE 中用PRIMARY KEY定义。如: CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALL

36、INT, Sdept CHAR(20) ); 关系模型的参照完整性在CREATE TABLE 中用FOREIGN KEY短语定义哪些列为外码,用PEFERENCES短语指明这些外码参照哪些表的主码。如: CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) PEFERENCES Student(Sno), FOREIGN KEY(Cno) PEFERENCES Course(Cno) ); (3)用户自定义的完整性就是

37、针对某一个具体应用的数据必须满足的语意要求。如列值非空操作、检查grade取值在0100之间的操作: CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT NOT NULL check grade between 0 and 100, PRIMARY KEY(Sno,Cno) ); 3 触发器的功能是什么? 强化约束:它能实现比CHECK 更为复杂的约束; 跟踪变化:它可侦察数据内的操作,从而不允许数据库中未经许可的指定更新和变化; 级联运行:通过侦察数据库内的操作自动级联影响数据库的各项内容;

38、存储过程的调用:为了影响数据库的更新,触发器可以调用一个或多个存储过程。 4当修改表的数据而引发了触发器时,在执行这些动作之前系统首先自动建立的哪两个表,有什么特点? 当修改表的数据而引发了触发器时,触发器将执行一系列SQL命令,在执行这些动作之前系统首先自动建立两个表,DELETED表和INSERTED表。这两个表临时驻留在内存当中,其结构与触发器完全相同,一旦触发器执行完毕,两个表也随之消失。 DELETED表:存放由于执行DELETE或UPDATE操作时从触发器中删除的数据行,即触发器表中需要删除的数据将被移到DELETED表中。 INSERTED表:用于存放执行INSERT或UPDAT

39、E操作时向触发器中插入的数据行,即新的数据行被同时插入到两个表触发器表和INSERTED表中。 5在数据库SC中创建一触发器,当向SC表插入一记录时,检查该记录的学号在STUDENT表中是否存在,该记录的课程号在COURSE中是否存在,若有一项为否,则不允许插入. CREATE TABLE s (sno CHAR(6) , sname CHAR(8), sex CHAR(2), birth SMALLDATETIME , dept CHAR(20), hobby CHAR(30) ); CREATE TABLE C( Cno CHAR(4) , cname CHAR(20), credit I

40、NT); CREATE TABLE R( Sno CHAR(6) , Cno CHAR(4) , Grade tinyINT , ) CREATE TRIGGER checker ON R FOR INSERT AS IF EXISTS (SELECT * FROM INSERTED A WHERE A. Sno NOT IN (SELECT S.sno FROM S) OR A. Cno NOT IN (SELECT C.cno FROM C) ) BEGIN PRINT(违背数据的一致性) ROLLBACK TRANSACTION END 第六章 关系数据理论 一、术语释义: 数据依赖 D

41、D: 通过一个关系中属性间值的相等与否体现出来的数据间的相互关系 函数依赖 : 设R是属性集U=A1,A2An上的关系模式,X和Y是U的子集。若对R的任一具体关系r中的任意两个元组t1和t2,只要t1X=t2X就有t1Y=t2Y,则称“X函数确定Y”或“Y函数依赖于X”,记作XY 部分函数依赖:设R是属性集U=A1,A2An上的关系模式,X和Y是U的子集。如果XY,但Y不是完全依赖于X则称Y对X部分函数依赖 ,记作XY 传递函数依赖: 候选键 主码 主属性 :包含在任何一个候选码中的属性 非主属性:不包含在任何码中的属性 自反率 传递率 增广率 合并规则 分解规则 伪传递规则 积累规则 属性集

42、闭包 1NF:如果一个关系模式R(U)的所有属性是不可再分的基本数据项,则称R(U)为第一范式 记 R(U)1NF 2NF:若 R(U)1NF且每一个非主属性完全函数依赖于某个候选码,称 R(U)为第二范式 记 R(U)2NF 3NF:如果关系模式 R(U)2NF ,且每个非主属性不传递函数依赖于R(U)的候选码,则称为 R(U)为第三范式 记 R(U)3NF BCNF:在满足1NF的关系模式R中,若每一个决定因素都包含候选码,则R(U)BCNF 二、计算: 1、 属性集闭包计算 2、 候选码求解 2 设R(C,T,S,N,G),FCT,CSG,SN 求R的候选关键字。 +解:(C)F=CT!R (S)F=SN!R +(CS)F=CTSNGR 所以CS 为R的侯选关键字 3 设R(ABCDE),FABC,CDE,BD ,EA求R的所有候选关键字。 解: +(A)F=ABCDER A为候选关键字 +(E)F=ABCDER E为候选关键字 +(CD)F=ABCDER CD为候选关键字 +(BC)F=ABCDER CD为候选关键字 3、1NF,2NF,3NF,BCNF的分析和判断 1.下列关系R至多能达到几范式,为什么? (1) R(S,D,M);F=SM,DM 解:R1NF M不完全依赖于候选码 (2) R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号