数据库原理第四章关系数据库的模式设计

数据库原理第四章关系数据库的模式设计,第1张

第四章 关系数据库模式设计

45 什么是关系数据库:

关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。

46 一个关系模型有哪两个方面内容:

一个关系模型包括外延和内涵两个方面的内容。

外延就是通常所说的关系,或实例,或当前值。它与时间有关,随着时间的推移在不断变化。(由于元组的插入、删除、修改引起的)

内涵是与时间独立的,包括关系、属性、及域的一些定义和说明,还有各种数据完整性约束。

47 数据完整性约束分为哪两类:

数据完整性约束分为静态约束和动态约束。

静态约束:包括各种数据之间的联系(数据依赖),主键的设计和关系值的各种限制等等。这一类约束是如何定义关系的有效数据问题。

动态约束:主要定义如插入、删除、和修改等各种 *** 作的影响。

48 关系数据库设计理论主要包括哪些内容:

关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起着核心的作用。

49 数据库使用过程中存在的问题是什么:

数据冗余、更新异常、插入异常、删除异常。

50 函数依赖(FD)的定义:

设有关系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y,X→Y为模式R的一个函数依赖。

或者说,对于X的每一个具体值,都有Y惟一的具体值与之对应,即Y值由X值决定,因而

这种数据依赖称为函数依赖。

51 函数依赖的逻辑蕴涵、FD的闭包F+:

设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X—>Y,则称F逻辑蕴涵X—>Y,记为F X→Y。

被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。F+={X→Y|F X→Y}

52 候选键、主属性、非主属性:

设有关系模式R(A1,A2,……,An),F是R的一个函数依赖集,X是{A1,A2,……,An}的一个子集。如果

① X→A1A2……An∈F+,且

② 不存在X真子集Y,使得Y→A1A2……An成立,则称X是R的候选键。

包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。

53 函数依赖的推理规则:

设有关系模式R(A1,A2,……,An)和属性集U= A1,A2,……,An,X,Y,Z,W是U的一个子集,F是R的一个函数依赖集,推理规则如下:

(1) 自反律:如果Y X U,则X→Y在R上成立。

(2) 增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。

(3) 传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。

FD的其他三个推理规则:

(4) 合并律:如果X→Y成立,那么X→YZ成立。

(5) 伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。

(6) 分解律:如果X→Y和Z Y成立,那么X→Z成立。

54 什么是平凡的FD?平凡的FD可根据哪一条推理规则推出?

如果X→Y,并且Y X,则称X→Y是平凡的FD。根据推理规则的自反律可推出。

55 关系模式的分解有几个不同的衡量标准:

分解具有无损联接;

分解要保持函数依赖;

分解既要保持依赖,又要具有无损联接。

56 什么是无损连接:

设有关系模式R,分解成关系模式ρ={R1,R2,……Rk},F是R的一个函数依赖集。如果对R中满足F的每一个关系r都有:r=πR1(r)|×|πR2(r)|×|……πRK(r),则称这个分解ρ是无损联结分解。

57 试叙保持函数依赖的定义:

设F是属性集U上的一个函数依赖集,Z是U上的一个子集,F在Z上的一个投影定义为:πZ(F)={X→Y|X→Y∈F+且XY Z}

设关系模式R的一个分解为ρ={R1,R2,……Rk},F是R的一个函数依赖集,如果

则称为分解ρ保持函数依赖。

58 第一范式(1NF):

如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。

59 第二范式(2NF):

如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的候选键,则称R是第二范式模式。

60 第三范式(3NF):

如果关系模式R是第一范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。

61 BCNF:

如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。从BCNF的定义可明显地得出如下结论:

(1) 所有非主属性对键是完全函数依赖。

(2) 所有主属性对不包含它的键是完全函数依赖。

(3) 没有属性完全函数依赖于非键的任何属性组。

如果模式R是BCNF,则它必定是第三范式,反之,则不一定。

62 模式设计方法的原则:

关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,……Rk},一般应具有下面三个特性:

(1) ρ中每个关系模式Ri是3NF或BCNF

(2) 保持无损联结

(3) 保持函数依赖集

(4) ρ中模式个数最少和属性总数最少。

63 一个好的模式设计方法应符合哪三条原则:

表达性,分离性,最小冗余性。

表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖性来衡量。

分离性是指属性间的“独立联系”应该用不同的关系模式表达。

最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。

关系模式设计方法基本上可以分为分解与合成两大类。

64 多值依赖MVD:

设R(U)是属性集U上的一个关系模式,X,Y是U的子集,若对R(U)的任一关系r,对于X的一个给定的值存在着Y的一组值与其对应,同时Y的这组值又不以任何方式与U-X-Y中的属性相关,那么称Y多值依赖于X,记为X→→Y。

65 平凡多值依赖:

对于属性集U上的一个多值依赖X→→Y,如果Y X或者XY=U,那么称X→→Y是一个平凡多值依赖。

66 第四范式(4NF):

设关系模式R,D是一个多值依赖集,如果D中存在一个非平凡多值依赖X→→Y,并且X必是R的超键,那么称R是4NF模式。

数据库原理是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。应用:数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类。

在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。特别是关系型数据库已经成为目前数据库产品中最重要的一员,80年代以来, 几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库产品也几乎都有支持关系数据库的接口。

这主要是传统的关系型数据库可以比较好的解决管理和存储关系型数据的问题。随着云计算的发展和大数据时代的到来,关系型数据库越来越无法满足需要,这主要是由于越来越多的半关系型和非关系型数据需要用数据库进行存储管理。

同时,分布式技术等新技术的出现也对数据库的技术提出了新的要求,于是越来越多的非关系型数据库就开始出现,这类数据库与传统的关系型数据库在设计和数据结构有了很大的不同, 它们更强调数据库数据的高并发读写和存储大数据。

扩展资料

数据库管理系统主要完成对数据库的 *** 纵与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除 *** 作和数据库的用户管理、权限管理等。它的安全直接关系到整个数据库系统的安全,其防护手段主要有:

(1)使用正版数据库管理系统并及时安装相关补丁。

(2)做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制,防止暴力破解用户密码。

(3)分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据库。

(4)修改数据库默认访问端口,使用防火墙屏蔽掉对外开放的其他端口,禁止一切外部的端口探测行为。

(5)对数据库内存储的重要数据、敏感数据进行加密存储,防止数据库备份或数据文件被盗而造成数据泄露。

(6)设置好数据库的备份策略,保证数据库被破坏后能迅速恢复。

(7)对数据库内的系统存储过程进行合理管理,禁用掉不必要的存储过程,防止利用存储过程进行数据库探测与攻击。

(8)启用数据库审核功能,对数据库进行全面的事件跟踪和日志记录。

第三章 关系数据库SQL语言

32 SQL数据库的体系结构及术语:

SQL数据库的体系结构也是三级,但术语与传统的关系模型不同。

关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。

33 SQL数据库的体系结构要点是什么:

(1) 一个SQL数据库是表(table)的汇集,它用一个或多个SQL模式定义。一个SQL模式是表和授权的表态定义。

(2) 一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。

(3) 一个表或者是一个基本表,或者是一个视图。(视图只保存定义,不保存数据)

(4) 一个基本表可跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储器上一个物理文件对应。

(5) 用户可用SQL语句对视图和基本表进行查询等 *** 作。

(6) SQL用户可以是应用程序,也可以是终端用户。

34 SQL的组成分成几部分:

SQL主要分成四部分:

(1) 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消 *** 作。

(2) 数据 *** 纵。(SQL DML)数据 *** 纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种 *** 作。

(3) 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。

(4) 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。

35 SQL模式的撤消有哪两种方式:

CASCADE(连锁式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤消。

RESTRICT(约束式)方式:执行DROP语句时,只有当SQL模式中没有任何下属元素时,才能撤消SQL模式,否则拒绝执行DROP语句。

36 SQL提供的基本数据类型有哪些?每种举两个例子:

(1) 数值型:INTEGER长整数、SMALLINT短整数

(2) 字符串型:CHAR(N)长度为N的定长字符串、VARCHAR(N)具有长度为N的变长字符串。

(3) 位串型:BIT(N)长度为N的二进制位串、BIT VARYING(N)长度为N的变长二进制位串

(4) 时间型:DATE日期、TIME时间

SQL2允许用户使用“CREATE DOMAIN”语句定义新的域。

37 完整性约束主要有哪三种子句:

完整性约束主要有三种子句:主键子句(PRIMARY KEY),检查子句(CHECK)和外键子句(FOREIGN KEY)

38 什么是视图,它与表的区别是什么:

在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。

39 对于视图元组的更新 *** 作(INSERT、DELETE、UPDATE)有哪三条规则:

(1) 如果一个视图是从多个基本表使用联接 *** 作导出的,那么不允许对这个视图执行更新 *** 作。

(2) 如果在导出视图的过程中,使用了分组和聚合 *** 作,也不允许对这个视图执行更新 *** 作。

(3) 如果视图是从单个基本表使用选择、投影 *** 作导出的,并且包含了基本表的主键或某个候选键,那么这样的视图称为“行列子集视图”,并且可以被执行更新 *** 作。

SQL2中,允许更新的视图在定义时,必须加上“WITH CHECK OPTION”短语。

40 SQL语言有哪两种使用方式:

一种是在终端交互方式下使用,称为交互式SQL;

另一种是嵌入在高级语言的程序中使用,称为嵌入式SQL,而这些高级语言可以是C、PASCAL、COBOL等,称为宿主语言。

41 嵌入式SQL的实现有哪两种处理方式:

一种是扩充宿主语言的编译程序,使之能处理SQL语句;

另一种是采用预处理方式。目前多数系统采用后一种。

42 在宿主语言的程序中使用SQL语句有哪些规定:

(1) 在程序中要区分SQL语言与宿主语句。所有SQL语句前必须加上前缀标识“EXEC SQL”,并以“END_EXEC”作为语句的结束标志。(结束标志在不同的宿主语言中不同)

(2) 允许嵌入的SQL语句引用宿主语言的程序变量(共享变量),但有两条规定:

1) 引用时,这些变量前必须加冒号“:”作为前缀,以示与数据库中变量有区别。

2) 这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。

43 用游标机制协调SQL的集合处理方式所用的SQL语句有哪些:

与游标有关的SQL语句有下列四个:

(1) 游标定义语句(DECLARE)

(2) 游标打开语句(OPEN)

(3) 游标推进语句(FETCH)

(4) 游标关闭语句(CLOSE)

44 SQL DML的嵌入使用技术:

(1) 若是INSERT、DELETE、UPDATE语句,则不必涉及游标,只要加上前缀标识和结束标志就能嵌入宿主语言程序中使用。

(2) 若是已知查询结果肯定是单元组的SELECT语句,则不必涉及游标,也可加上前缀标识和结束标志后嵌入宿主语言程序中使用,但此时应该在SELECT语句中增加一个INTO子句,指出找到的值应送到相应的共享变量中去。

(3) 若是已知查询结果为多个元组的SELECT语句,则必须涉及到游标,用游标机制把多个元组一次一个地传送给宿主程序处理。

1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。

2.利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。

3.合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。

4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。

数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。动态约束通常由应用软件来实现。不同DBMS支持的数据库完整性基本相同。

以上就是关于数据库原理第四章关系数据库的模式设计全部的内容,包括:数据库原理第四章关系数据库的模式设计、数据库原理及应用、数据库原理第三章关系数据库SQL语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10131660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存