数据库基础与应用(题与答案整理好)中南大学远程教育平台

1.关系模型的完整性规则有哪几类?在关系模型的参照完整性规则中,外部码属性的值是否可以为空?什么情况下才可以为空?

1 实体完整性

实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。

例如,在学生关系S(S#, SN, SS, SA, SD)中,S#属性为主码,则S#不能取空值。 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如,学生选课关系SC(S#, C#,G)中,(S#,C#)为主码,则S#和C#两属性都不能取空值。

2 参照完整性:

若属性(或属性组)F是关系R的外码,它与关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值为取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。

对于例子中选修关系中每个元组的学号属性只能取下面两类值: (1)空值,表示尚未有学生选课。

(2)非空值,这时该值必须是学生关系中某个学生的学号,表示某个未知的学生不能选课。 同样,选修关系中每个元组的课程号属性只能取下面两类值: (1)空值,表示尚未开课。

(2)非空值,这时该值必须是课程关系中的某个课程号,表示不能选未开设的课。 3 用户定义的完整性

实体完整性和参照完整性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如,学生关系的年龄在15~30之间,选修关系的成绩必须在0~100之间等。

2.关系系统可以分为哪几类?各类关系系统的定义是什么?

关系系统的定义

一个系统可以定义为关系系统,当且仅当它支持如下条件时才可以:

(1)关系数据结构,也就是说,从用户观点看,数据库是由表构成的,并且系统中只有表这种结构。

(2)选择、投影和(自然)连接运算。对这些运算不要求用户定义任何物理存取路径。 关系模型中并非每一部分都是同等重要的,所以我们并不苛求一个实际的关系系统必须完全支持关系模型。

不支持关系数据结构的系统显然不能称为关系系统。

仅支持关系数据结构,但没有选择、投影和连接运算功能的系统,用户使用起来仍不方便,这种系统仍不能算作关系系统。

支持选择、投影和连接运算,但要求定义物理存取路径,这样就降低或丧失了数据的物理独立性,这种系统也不能算作真正的关系系统。

选择、投影、连接运算是最有用的运算,能解决绝大部分实际问题,所以要求关系系统只要支持这三种最主要的运算即可,并不要求它必须提供关系代数的全部运算功能。 关系系统的分类

按照E.F.Codd的思想,依据关系系统支持关系模型的程度不同,可以把关系系统分为四类,如图2-1所示。

关系系统分类图

图中的圆表示关系数据模型。每个圆分为三部分,分别表示模型的三个组成部分:S表示数据结构(Structure),I表示完整性约束(Integrity),M表示数据操纵(Manipulation)。图中的阴影部分表示各类系统支持模型的程度。 1.表式系统

这类系统仅支持关系数据结构(即表),不支持集合级的操作。表式系统实际上不能算关系系统。倒排表列(Inverted list)系统属于这一类。 2.(最小)关系系统

这类关系是上面定义的关系系统,它支持关系数据结构和选择、投影、连接三种关系操作。许多微机关系系统如FoxBASE,FoxPro等属于这一类。 3.关系完备的系统

这类类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。目前许多大中型关系系统,如DB2、ORACLE等属于这一类。 4.全关系系统

这类系统支持关系模型的所有特征,特别是数据结构中域的概念、实体完整性和参照完整性。虽然DB2、ORACLE等系统已经接近这个目标,但到目前为止尚没有一个系统是全关系系统。

第3章 关系数据库规划和设计

1. 数据依赖对关系模式有什么影响?

答:数据依赖包括函数依赖与多值依赖。

所谓函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的任一关系r都存在:对于X的每一个具体值,Y 都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作X→Y。其中X叫决定因素,Y叫被决定因素。当Y是X的子集时,称为平凡函数依赖。 数据依赖对于关系模式来说就是针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成,各属性之间的依赖关系及其对关系模式性能的影响等。

2.R中,U={SNO,SDEPT,MNAME,CNAME,GRADE}

其中,SNO,学号;SDEPT,所在系;MNAME,系主任名;CNAME,课程名;GRADE,分数。 (1)写出U上的极小函数依赖。 (2)把该关系规范化为3NF。 答:(1)SNO→SDEPT

SDEPT→MANE

f?? GRADE (SNO,CNAME)?(2)ND(SNO,SDEPT)

DM(SDEPT,MNAME)

SCG(SNO,CNAME,GRADE) 3.简述SQL的功能。

结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。

SQL语言的版本包括:SQL-89,SQL-92,SQL99。 基本概念

SQL语言之所以能够为用户和业界所接受,成为国际标准,是因为它是一个综合的、通用的、功能极强同时又简洁易学的语言。SQL语言集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体,充分体现了关系数据语言的特点和优点。其主要特点包括:一体化、高度非过程化、简洁、能以多种方式使用、面向集合的操作方式

1.一体化

SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境,例如用户在数据库投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。

2.高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3.简洁

SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE,如表3-1所示。而且SQL语言语法简单,接近英语口语,因此容易学习,容易使用。

4.能以多种方式使用

SQL语言既是自含式语言,又是嵌入式语言。 作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、PB)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大的灵活性与方便性。

5.面向集合的操作方式(补充)

SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

非关系数据模型采用的是面向记录的操作方式,任何一个操作其对象都是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该请求的具体处理过程,即如何用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。 SQL语言功能概述 SQL的功能分成四部分:数据定义、数据控制、数据操纵、数据查询 SQL语言的动词 SQL功能 数据查询 数据定义 数据操纵 数据控制 动 词 SELECT CREATE,DROP,ALTER INSERT,UPDATE,DELETE GRANT,REVOKE

4.视图有什么优点?

答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定程度的逻辑独立性、视图能够对机密数据提供安全保护。

5.什么是数据库的安全性?数据库安全性控制的常用方法有哪些? 答:数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。 可以从以下方面设置数据库的安全措施:环境级、职员级、OS级、网络级和数据库系统级。

6.什么是数据库的完整性?它与安全性有什么区别?

答:数据库的完整性的全名叫做:关系数据库的参照完整性(Referential Integrity),一般是用在表示多个表之间关系时用的,而且经常使用。比如说,现在有两个表: Student(StudentNumber, StudentName) 和 Teacher(TeacherNumber, TeacherName, StudentNumber) 其中Teacher表中的studentNumber是外键,并且Student表中的StudentNumber是主键,因此肯定会有如下的参照完整性:Teacher表中的studentNumber的值必须在Student表中的StudentNumber已经存在。

完整性和安全性是两个不同的概念。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出造成的无效操作和错误结果,而后者是防止数据库被恶意的破坏和非法的存取。当然,完整性和安全性是密切相关的。特别是从系统实现的方法来看,某一种机制常常既可以用于安全保护亦可用于完整性保证。

7.并发操作可能会产生哪几类数据不一致?

答:数据库的并发操作会带来三类问题: (1)丢失更新问题; (2)不一致分析问题 (3)“脏数据”的读出。

解决的办法通常是采用“封锁”技术。

8.什么是数据库的恢复?恢复的实现技术有哪些?

答:数据库的恢复是指当数据库系统发生故障时,通过一些技术, 使数据库从被破坏、不正确的状态恢复到最近一个正确的状态。

恢复的基本原则就是冗余,即数据的重复存储。恢复的常用方法有: (1)定期对整个数据库进行复制或转储; (2)建立日志文件; (3)恢复。用REDO或UNDO处理。

9.试述数据库的设计步骤。

答:分为5个阶段:简记为:规划、需求分析、概念设计、逻辑设计和物理设计五个阶段。)。

第4章 SQL Server 2000概述

1.服务管理器是用来__启动_____、__停止_____和_ 暂停_____SQL Server 服务的。这些服务在Windows NT/2000下也可以通过控制面板的服务项来启动或停止。

2.什么是客户机?客户机网络连接工具(SQL Server Client Network Utility)的作用是什么?

2答:当一台计算机连接其他计算机上的SQL Server 服务器时,这台计算机就被称为客户机,客户机网络连接工具的作用就是设定本机访问位于其他计算机上的SQL Server 服务器时所使用的网络库及其对应参数。

3.服务器网络连接工具的作用是什么?

答:与客户机网络连接工具相反,服务器网络连接工具用于配置服务器上各SQL Server实例支持的网络库及其对应参数。

4.在“开始”菜单的Microsoft SQL Server程序中选择Enterprise Manager即可启动__企业____管理器。

5.在查询窗口中用户可以输入SQL语句,并按___F5____键,或单击工具栏上的运行按钮,将其送到服务器执行,执行的结果将显示在输出窗口中。用户可以打开一个含有SQL语句的文件来执行,执行的结果同样显示在输出窗口中。

第5章 数据库和表的创建

一、填空题

1.SQL Server提供的系统数据类型有:_二进制数据______、___字符数据____、Unicode数据、_日期和时间数据______、__数字数据_____和货币数据,也可以使用用户定义的数据类型。

2.文本和图像数据在SQL Server中是用text 、ntext、和image数据类型来表示的,由于它们的数据量一般较大,所以经常被存储在专门的页中,在数据行的相应位置处只记录指向这些数据实际存储位置的_指针______。SQL Server 2000中,使用___TEXT IN ROW____可用于指定表中文本和图像数据是否在__ 行_____中存储。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4