数据库复习【简答题】

本文详细介绍了关系数据库的概念,如ndf文件格式,以及SQL语句的使用,包括连接查询和GROUPBY语句。此外,讨论了数据库安全性,如自主存取控制和强制存取控制,以及完整性规则,如实体完整性、参照完整性和用户定义的完整性。最后,概述了关系数据理论中的函数依赖和数据库完整性约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录



前言

第二章:关系数据库

ndf是什么意思?ndf是什么文件?

ndf为次数据文件,用SQL SERVER数据库可以打开。
1.ndf文件格式
  mdf 主数据文件,一个数据库中只能有一个主数据文件
  ndf 次数据文件,一个数据库中可以有多个次数据文件
  ldf 数据库日志文件
2.ndf文件打开方式
 1)mdf主数据文件
  主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。
2)ndf次要数据文件
除主数据文件以外的所有其他数据文件都是次要数据文件。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。

连接查询语句描述
sql 自连接的理解和使用
GROUP BY的用法补充
分组查询GROUP BY1
分组查询GROUP BY2
三、问答题
1 .定义并理解下列术语,说明它们之间的联系与区别:
(1) 域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外部码 (3)关系模式,关系,关系数据库

域:域是一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。这组域的笛卡尔积为: D1×D2×…×Dn={ (d1,d2,…,dn)|di?Di,i=1,2,…,n }其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。元素中的每一个值di叫作一个分量(Component)。关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn)元组:关系中的每个元素是关系中的元组。
属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。
候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。
主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。
关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为: R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。
关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn)关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

2 .试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。 1) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 2) 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。 3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。  
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。课程(课程号,课程名,学分)选修(学号,课程号,成绩)
3 . 等值连接与自然连接的区别是什么?
连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。等值连接是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。

  1. 代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算?

在八种关系代数运算中,并、差、笛卡尔积、投影和选择五种运算为基本的运算。其他三种运算,即交、连接和除,均可以用五种基本运算来表达。

PPT习题
用关系代数:
1、已知学生选课数据库模式:
Student(Sno, Sname,Sage, Sdept)
Course(Cno,Cname)
SC(Sno,Cno,Score)
用关系代数进行如下查询:
选修了2号课程的学生的姓名?
计算机系有不及格课程的学生名单
学生张林的“数据库原理”成绩

第三章:SQL语句

二、填空题
1 .试述SQL语言的特点。

(1)综合统一。 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。
(2)高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
(3)面向集合的操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。

3 .试述SQL的定义功能。

SQL的数据定义功能包括定义表、定义视图和定义索引。 SQL语言使用CREATE TABLE语句建立基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;使用CREATE INDEX语句建立索引, DROP INDEX语句删除索引;使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图。

11 .什么是基本表?什么是视图?两者的区别和联系是什么?

基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

13 .试述视图的优点。

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

16 .所有的视图是否都可以更新?为什么?

不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图S_G(学生的学号及他的平均成绩) CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) /设SC表中“成绩”列Grade为数字型/ FROM SC GROUP BY Sno;要修改平均成绩,必须修改各科成绩,而我们无法知道哪些课程成绩的变化导致了平均成绩的变化。

18 .哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。

基本表的行列子集视图一般是可更新的。如《概论》3.5.3中的例1。 若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。如《概论》3.5.3中的S_G视图。

21 .在嵌入式SQL中是如何区分SQL语句和主语言语句的?

在SQL语句前加上前缀EXEC SQL。SQL语句的结束标志则随主语言的不同而不同。 例如在PL/1和C中以分号(;)结束,在COBOL中以END-EXEC结束。

22 .在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通信的?

数据库工作单元与源程序工作单元之间的通信主要包括: (1)SQL通信区SQLCA,用来向主语言传递SQL语句的执行状态信息,使主语言能够根据此信息控制程序流程。(2)主变量(Host Variable),1)用来实现主语言向SQL语句提供参数。 2)将SQL语句查询数据库的结果交主语言进一步处理(3)游标(Cursor),解决集合性操作语言与过程性操作语言的不匹配通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

23 .在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?

用游标来协调这两种不同的处理方式。游标区是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

第四章:数据库安全性

1. 什么是数据库的安全性?

答: 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

  1. 数据库安全性和计算机系统的安全性有什么关系?

答: 安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
  系统安全保护措施是否有效是数据库系统的主要指标之一。
  数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,

3.试述实现数据库安全性控制的常用方法和技术。

答: 实现数据库安全性控制的常用方法和技术有:
   1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
   2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC);
   3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
  4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
  5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
  具体内容请参见《概论》9.2。

4.什么是数据库中的自主存取控制方法和强制存取控制方法?

答: 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
  强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
  *解析:自主存取控制中自主的含义是:用户可以将自己拥有的存取权限“自主”地授予别人。即用户具有一定的“自主”权。

5.SQL语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用方法。

答:
  SQL中 的自主存取控制是通过GRANT 语句和 REVOKE 语句来实现的。如:
  GRANT SELECT, INSERT ON Student TO 王平 WITH GRANT OPTION;
  就将Student表的SELECT和INSERT权限授予了用户王平,后面的“WITH GRANT OPTION”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户。
  REVOKE INSERT ON Student FROM 王平 CASCADE;
  就将Student表 的INSERT权限从用户王平处收回,选项 CASCADE 表示,如果用户王平将 Student 的 INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回。

8.为什么强制存取控制提供了更高级别的数据库安全性?

答:
  强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。

9.什么是数据库的审计功能,为什么要提供审计功能?

答:
  审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
  因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

第五章 数据库完整性

1.什么是数据库的完整性?

答:数据库的完整性是指数据的正确性和相容性。
  2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?
  答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。
  前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。
  后者是保护数据库防止恶意的破坏和非法的存取。
  也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

3.DBMS的完整性控制机制应具有哪些功能?

答:DBMS的完整性控制机制应具有三个方面的功能:
  1). 定义功能,即提供定义完整性约束条件的机制。
  2). 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。
3). 违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

4.RDBMS在实现参照完整性时需要考虑哪些方面?

答: RDBMS在实现参照完整性时需要考虑以下几个方面:
   1) 外码是否可以接受空值
   2) 删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:
   (a)级联删除(CASCADES);
   (b)受限删除(RESTRICTED);
   (c)置空值删除(NULLIFIES)
   3) 在参照关系中插入元组时的问题,这时系统可能采取的作法有:
   (a)受限插入
   (b)递归插入
   4) 修改关系中主码的问题
  一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。
如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。

6.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

答:
  对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。具体的处理可以参见上面第5题或《概论》10.2中相应部分。

第六章 关系数据理论

二、简答题
1.理解并给出下列术语的定义:

函数依赖、部分函数依赖、完全函数依赖、候选码、主码、 外码、全码。
  解析:
  解答本题不能仅仅把《概论》上的定义写下来。关键是真正理解和运用这些概念。
  答: 函数依赖:设R (U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R (U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同, 而在Y上的属性值不同, 则称"X函数确定Y"或"Y函数依赖于X",记作X→Y。
  解析:
  1)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。
  2)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果X→Y,则r中任意两个元组,若它们在X上的属性值相同,那么在Y上的属性值一定也相同。
  3)我们要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。
  4)函数依赖不是指关系模式R的在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件。
  答: 完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖;
  候选码、主码: 设K为R(U,F)中的属性或属性组合,若K → U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。
  答: 外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。
全码:整个属性组是码,称为全码(All-key)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值