1. 试述数据模型的概念、数据模型的作用和数据模型的三个要素。
2. 定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图。 3. 试述关系模型的三个组成部分。
4. 试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
5. 数据库安全性和计算机系统的安全性有什么关系? 6. 试述实现数据库安全性控制的常用方法和技术。
7. 什么是数据库中的自主存取控制方法和强制存取控制方法?
8. SQL 语言中提供了哪些数据控制(自主存取控制)的语句?举例说明它们的使用方法。 9. 什么是数据库的完整性?
10. 数据库的完整性概念与数据库的安全性概念有什么区别和联系? 11. DBMS 的完整性控制机制应具有哪些功能?
12. 理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All - key )、1 NF 、ZNF 、3NF 、BCNF 、多值依赖、4NF。 13. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。 14. 在一个订货系统的数据库中,存有顾客、货物和订货单的信息。 15. 试述数据库设计过程及各个阶段上的设计描述。 16. 什么是数据库的完整性约束条件?可分为哪几类?
17. 下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明之。 18. 试述数据库概念结构设计的重要性和设计步骤。 19. 什么是数据库的逻辑结构设计?试述其设计步骤。 20. 试述查询优化的一般准则。 21. 试述查询优化的一般步骤。
23. 数据库恢复的基本技术有哪些?
24. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?
1. 试述数据模型的概念、数据模型的作用和数据模型的三个要素。
【答】数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。数据模型是严格定义的概念的集合,这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。
因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 (l)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。
(2)数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。
(3)数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。
2. 定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图。 【答】实体:客观存在并可以相互区分的事物叫实体。
实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
实体集:同型实体的集合称为实体集。
属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。 码:惟一标识实体的属性集称为码。 实体联系图( E 一 R 图):提供了表示实体型、属性和联系的表示方法:@@@实体型:用矩形表示,矩形框内写明实体名;@@@属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;@@@联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1 , 1 : n 或 m : n )。
3. 试述关系模型的三个组成部分。
【答】关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
(1)数据结构:它只包含单一的数据结构——关系;从用户角度看,关系模型中数据的逻辑结构是一张扁平的二维表;现实世界的实体以及实体间的各种联系均用单一的结构类型即关系来表示。
(2)关系操作集合:关系模型中常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。关系的查询表达能力很强,是关系操作中最主要的部分。查询操作可以分为:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积等。其中,选择、投影、并、差、笛卡尔积是五种基本操作。其他操作是可以用基本操作来定义和导出的。
(3)关系完整性约束:关系模型的完整性规则是对关系的某种约束条件,分为三类完整性约束:实体完整体,参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由系统关系自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
4. 试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
【答】实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。
5. 数据库安全性和计算机系统的安全性有什么关系?
【答】安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
6. 试述实现数据库安全性控制的常用方法和技术。
【答】实现数据库安全性控制的常用方法和技术有:
(1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。
(3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 (4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
(5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
7. 什么是数据库中的自主存取控制方法和强制存取控制方法?
【答】自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
8. SQL 语言中提供了哪些数据控制(自主存取控制)的语句?举例说明它们的使用方法。 【答】SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的。如: GRANT SELECT,INSERT ON Student TO xxx
WITH GRANT OPTION ;
就将Student 表的SELECT 和INSERT 权限授予了用户xxx,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。
REVOKE INSERT ON Student FROM xxx CASCADE ;
就将Student 表的INSERT 权限从用户xxx处收回,选项CASCADE 表示,如果用户xxx将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。
9. 什么是数据库的完整性? 【答】数据库的完整性是指数据的正确性和相容性。完整性检查和控制的防范对象是不合语义、不正确的数据,防止他们进入数据库。
10. 数据库的完整性概念与数据库的安全性概念有什么区别和联系?
【答】数据的完整性和安全性是两个不同的概念,但是有一定的联系。完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。安全性是保护数据库防止恶意的破坏和非法的存取。也就是说,完整性措施的防范对象是不合语义的数据;安全性措施的防范对象是非法用户和非法操作。
11. DBMS 的完整性控制机制应具有哪些功能?
【答】DBMS 的完整性控制机制应具有三个方面的功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
12. 理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All - key )、1 NF 、ZNF 、3NF 、BCNF 、多值依赖、4NF。 【答】
函数依赖:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X?Y。(即只要X上的属性值相等,Y上的值一定相等。) [术语和记号]:
X?Y,但Y不是X的子集,则称X?Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。
X?Y,但Y是X的子集,则称X?Y是平凡的函数依赖。 若X?Y,则X叫做决定因素(Determinant)。 若X?Y,Y?X,则记作X??Y。 若Y不函数依赖于X,则记作X ? Y。
完全函数依赖、部分函数依赖:在R(U)中,如果 X?Y,并且对于X的任何一个真子集X’, 都有X’ ? Y,则称Y对X完全函数依赖;若X?Y,但Y不完全函数依赖于X,则称Y对 X部分函数依赖。
传递依赖:在关系R (U)中,如果XY(YX),YX,YZ,则称Z对X传递函数依赖。 候选码、主码:设 K为R(U,F)中的属性或属性组合,若KU则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。
外码:关系模式 R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。
全码:整个属性组是码,称为全码( All-key)。 1NF:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。 2NF:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。
3NF:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得X?Y,Y ? X,Y ? Z成立,则称R∈3NF。
BCNF:关系模式R∈1NF 。若X?Y且Y不是X的子集时,X必含有码,则R∈BCNF。
多值依赖:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。
4NF:关系模式R∈1NF,如果对于R的每个非平凡多值依赖X??Y(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R∈4NF。
13. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在? 【答】(1)关系模式如下:
学生:S(Sno,Sname,Sbirth,Dept,Class,Rno) 班级:C(Class,Pname,Dept,Cnum,Cyear) 系:D(Dept,Dno,Office,Dnum)
学会:M(Mname,Myear,Maddr,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下: Sno?Sname,Sno?Sbirth,Sno?Class,Class?Dept,DEPT?Rno 传递依赖如下:
由于Sno?Dept,而Dept?Sno ,Dept?Rno(宿舍区) 所以Sno与Rno之间存在着传递函数依赖。 由于Class?Dept,Dept ? Class,Dept?Rno 所以Class与Rno之间存在着传递函数依赖。 由于Sno?Class,Class?Sno,Class?Dept 所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
Class?Pname,Class?Cnum,Class?Cyear,Pname?Dept. 由于Class?Pname,Pname?Class,Pname?Dept 所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
Dept?Dno,Dno?Dept,Dno?Office,Dno?Dnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。 D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下: Mname?Myear,Mname?Maddr,Mname?Mnum 该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:Sno;外部码:Dept、Class;无全码 B、班级C候选码:Class;外部码:Dept;无全码 C、系D候选码:Dept或Dno;无外部码;无全码 D、学会M候选码:Mname;无外部码;无全码