关系数据库中

关系数据库中
关系数据库中

1关系数据库中,主键的正确描述是(D )。

(A) 创建唯一的索引,允许空值(B) 允许有多个主键的

(C) 只允许以表中第一字段建立(D) 为标识表中唯一的实体

2以下不适合创建非聚集索引的情况是(A )。

(A) 表中包含大量重复的列值(B) 带WHERE子句的查询

(C) 经常需要进行联接和分组操作的列(D) 表中包含大量非重复的列值

3使用视图的作用有4个,下列哪一个是错误的(A )。

(A) 导入数据(B) 定制操作

(C) 简化操作(D) 安全性

4叙述A:当视图被撤消,不会对基表造成任何影响。叙述B:不能改变作为计算结果的列。关于对以上叙述中,正确的是(C )。

(A) 叙述A错误,叙述B正确(B) 叙述A正确,叙述B错误

(C) 都正确(D) 都是错误的

5语句:select 10%7 的执行结果是(D )。

(A) 7 (B) 1

(C) 70 (D) 3

6下列关于关联的叙述正确的是( D)。

(A) 已创建关联的两个表中的关联字段数据

可能完全不同(B) 可在两个表的不同数据类型的同名字段

间创建关联

(C) 可在两个表的不同数据类型的字段间创

建关联(D) 可在两个表的相同数据类型的不同名称

的字段间创建关联

7用UNION合并两个SELECT查询的结果时,下列叙述中错误的是()。

(A) 两个SELECT语句必须输出同样的列数(B) 将来自不同查询的数据组合起来

(C) 两个表各相应列的数据类型必须相同(D) 被组合的每个查询都可以使用ORDER B

Y子句

8查询所有目前年龄在24岁以上(不含24岁)的学生信息(学号、姓名、年龄),正确的命令是()。

(A) SELECT 学号,姓名,年龄=YEAR(GETDA

TE())-YEAR(出生日期) FROM 学生 WHE RE YEAR(GETDATE())-YEAR(出生日

期)>24 (B) SELECT 学号,姓名,YEAR(GETDATE())-

YEAR(出生日期) 年龄 FROM 学生 WHE RE YEAR(GETDATE())-YEAR(出生日

期)>24

(C) SELECT 学号,姓名,YEAR(GETDATE())-

YEAR(出生日期) 年龄 FROM 学生 WHE RE 年龄>24 (D) SELECT 学号,姓名,YEAR(GETDATE())-

YEAR(出生日期) 年龄 FROM 学生 WHE RE YEAR(出生日期)>24

9下列有关存储过程的叙述中错误的是( d )。

(A) 使用存储过程可以减少网络通信量。(B) 在一个存储过程中可以调用其他存储过

程。

(C) 执行存储过程要比执行T-SQL批处理代

码快。(D) 定义存储过程只是为了减少重复编写T-S

QL代码。

10存储过程的名字在( A)输入。

(A) CREATE PROCEDURE语句中(B) 创建存储过程后

(C) 创建存储过程前(D) 保存存储过程时

11在对表中的数据进行添加时,对数据实施完整性检查,激活的触发器是()。

(A) DELETE触发器(B) UPDATE触发器

(C) INSERT触发器(D) 都可以

12下列语句:

declare @n int

set @n=1

set @n=@n+2

select @n

执行结果是(B )。

(A) 4 (B) 3

(C) 1 (D) 2

13查询选课表中信息正确的语句是(D )。

(A) select 学号,课程号 from 选课表

case when 成绩 between 60 and 100 then '通过'

else '未过' end 通过否(B) select 学号,课程号,

(case when 成绩 between 60 and 100 then '通过'

else '未过') as 通过否

from 选课表

(C) select 学号,课程号

case when 成绩 between 60 and 100 then '通过'

else then '未过' end 通过否(D) select 学号,课程号,

(case when 成绩 between 60 and 100 then '通过'

else '未过' end) 通过否

from 选课表from 选课表

14下列关于规则说法正确的是( A )。

(A) 规则是单独存储的数据库对象(B) 规则可以直接作用于一个表

(C) 规则必须使用一次就必须定义一次(D) 规则可以直接删除

15解决并发操作带来的数据不一致问题普遍采用( A )。

(A) 封锁(B) 存取控制

(C) 恢复(D) 协商

16一个事物成功完成后,它对数据库的改变必须是永久的,这一特性称为事务的( A )。

(A) 持久性(B) 隔离性

(C) 一致性(D) 原子性

17关系数据模型用()结构表示实体和实体间的联系。

(A) 对象(B) 网状

(C) 树型(D) 二维表

18E-R方法的三要素是()。

(A) 实体、属性、关系(B) 实体、码、关系

(C) 实体、属性、实体集(D) 实体、域、码

19在关系运算中,投影运算是(C )。

(A) 其他三项都正确(B) 在基本表中选择满足条件的记录和属性

组成一个新的关系

(C) 在基本表中选择满足条件的记录组成一

(D) 在基本表中选择字段组成一个新的关系

个新的关系

20下列关于文件管理阶段的说法正确的是(C )。

(A) 数据独立性强(B) 数据完全实现了共享

(C) 数据冗余度大(D) 对数据统一控制管理

21下列关于人工管理阶段的说法错误的是( B)。

(A) 数据不能长期保存(B) 程序之间能共享数据

(C) 程序复杂(D) 数据量小

22数据库系统软件包括()和数据库应用系统及开发工具。

(A) OS (B) DBMS

(C) 高级语言(D) 数据库应用程序

23如果将职工记录定义为(编号,姓名,性别),则(编号,姓名,性别)就是()。

(A) 内模式(B) 外模式

(C) 映射(D) 模式

24数据库管理系统DBMS是()。

(A) 既有硬件也有软件(B) 一组软件

(C) 一个完整的数据库应用系统(D) 一组硬件

25每个数据库可以有一个或多个事务日志文件,其扩展名为( A )。

(A) LDF (B) MDF

(C) DBF (D) NDF

26sql是一种( C )语言。

(A) 人工智能(B) 函数型

(C) 关系数据库(D) 高级算法

27数据库中所有执行的事务都记录在( B )。

(A) 次数据文件(B) 事务日志文件

(C) 主数据文件(D) 数据表文件

28以下不正确的数值型数据是()。

(A) '2008' (B) 2008

(C) 100.3 (D) -30

29设计表时,有些列的数据只有两种状态真/假,则这些列最好定义为()数据类型。(A) bit (B) char(2)

(C) tinyint (D) char(1)

30关系模式中,满足2nf的模式( C )。

(A) 必定是bcnf (B) 必定是1nf

(C) 可能是1nf (D) 必定是3nf

31当数据的全局逻辑结构改变时,通过对映像的相应改变可以保持数据的局部逻辑结构不变。这称为数据的()。

(A) 逻辑独立性(B) 局部独立性

(C) 原子性(D) 物理结构性

32数据库设计的起点是( A )。

(A) 需求分析阶段(B) 逻辑结构设计阶段

(C) 概念结构设计阶段(D) 系统设计阶段

33操纵与创建数据库对象等大多数的数据库管理工作都可以在(D )中完成。

(A) 服务管理器(B) 事件探查器

(C) 查询分析器(D) 企业管理器

34使用Connection对象的(C )方法可建立到数据源的物理连接。

(A) Close (B) Write

(C) Open (D) Readline

35使用Field对象的( D )属性,可以用来读出字段值。

(A) DefineSize (B) Type

(C) Name (D) Value

36命令Response.Write的功能相当于SQL Server中的(B )命令。

(A) Create (B) Print

(C) Update (D) Exec

37插入到HTML中的ASP程序一般用(D )标记括起来。

(A) " " (B) { }

(C) < > (D) <% %>

38用户在获得服务器操作系统使用权后,还需要获得SQL Server的访问权,这属于()。

(A) 操作系统的安全性(B) SQL Server的安全性

(C) 数据库的安全性(D) SQL Server数据库对象的安全性

39用户在连接SQL Server时,既可以使用Windows身份验证也可以使用SQL Server身份验证登录,则SQL Server的验证模式是()。

(A) 混合身份验证模式(B) 数据库身份验证模式

(C) SQL Server身份验证模式(D) Windows身份验证模式

40查询远程SQL Server数据表,正确命令格式是( B)。

(A) select 查询列 from IP地址.远程数据库名.

远程表名(B) select 查询列 from 链接服务器名.远程数

据库名.远程所有者.远程表名

(C) select 查询列 from 远程数据库名.远程所

有者.远程表名(D) select 查询列 from 链接服务器名.远程所

有者.远程表名

每个表至多可定义256列。 F

&一个表的一个属性可以创建成主键索引和非聚集索引。T

外键的值唯一的标识了表中的一行记录。F

数据处理是将信息转换成数据的过程。 F

同类实体的集合称为实体型。F

候选关键字和主关键字不同,不能唯一标识一个记录。 F

在E-R图中,用来表示实体的图形是菱形。 F

根据函数返回值形式的不同将用户自定义函数分为3种类型。T

SQL Server采用了标准SQL Serve登录和集成WindowsNT登录两种方式。T ASP程序既可以在服务器端运行,又可以在客户端运行。F

1从网上下载指定的数据库备份文件,还原到考生所用的系统中,数据库名为“学生信息”。

2在数据库“学生信息”中,新建一名为“个人信息”表,表结构如下:

个人信息(编码 char(10) NOT NULL

姓名 char(8) NOT NULL

性别 char(2) NOT NULL

生日 datetime

身份证号 char(18)

家庭住址 varchar(50))

3将“个人信息”表“编码”列设臵为主键。

4为“个人信息”表“身份证号”列建立唯一索引,索引名为“IX_个人信息_身份证号”。

5将“个人信息”表“性别”列的默认值设为“男”,并增加约束,该列只能输入“男”或“女”,约束名为“CK_个人信息_性别”。

6创建一名为“学生总评成绩”的视图,显示学生的学号、学生的姓名、学生所学课程的名称及总评成绩。

7将课程表中至今没有学生选学的课程记录行删除。

8将“学生”表所有名字只有两个字的学生信息复制到表“两字学生”中,再将表“两字学生”的姓名中间加入一全角的空格,例如姓名“张三”则更改为“张三”。

9单击此处下载Excel文件“电子注册信息.xls”,并将其与学生信息数据库中的“学生”表信息进行对比,以学号为基准,找出姓名不一致的学生,并将这些信息存到名为“学生注册信息对比”的表中,该表包括三列、列名分别为:学号、学生表姓名、电子注册姓名。

10编写存储过程“学生成绩统计分析”,带一输入参数“@学号”,其开始代码严格如下:

CREATE PROCEDURE 学生成绩统计分析

@学号 Char(10)

AS

要求此存储过程实现的功能是:根据输入参数“@学号”指定的学生,先计算该生的平均总评成绩(保留2位小数),然后:

(1)将该生的学习状况添加到表“学生学习状况”中(其xID列为自动赋值),“评价”列的取值为:优秀、一般或较差,优秀的标准是平均总评成绩>=90,较差的标准是平均总评成绩<60,其余情况则为一般。

(2)若平均总评成绩在90分以上,则查询出该学生总评成绩>=90的课程,并添加到表“优秀课程”表中(其kID列为自动赋值)。

(3)若平均总评成绩在60分以下,则查询出该学生总评成绩<60的课程,并添加到表“不及格课程”表中(其kID列为自动赋值)。

11完全备份数据库“学生信息”,备份文件命名为“学生信息.bak”,将文件“学生信息.bak”用WinRar压缩为“学生信息.rar”,上传到指定的服务器上。

单击此处上传“学生信息.rar”

浅谈对的理解对象—关系型数据库

浅谈对对象—关系型数据库的理解 姓名:杨小敏 学号:2010206190026

针对对象—关系型数据库的理解我想结合自己的专业(地图学与地理信息系统)从下面三个方面来理解:(1)关系型数据的发展以及在空间数据管理方面的优缺点(2)面向对象数据库的发展及在空间数据管理方面的优缺点(3)关系型数据库和面向对象技术的融合在数据库发展中所起到的独特作用在我们GIS专业领域内,随着信息技术的发展,各种应用系统建设的不断深入,像现在面向21世纪的应急应用系统的建设、城市基础地理空间信息数据库系统与共享平台的建设、地理信息公共服务平台的建设,小到“数字城市”的建设,大到“数字地球”乃至“智慧地球”的建设,我们已经开始不满足数值和文字的信息处理,为了达到系统建设平台尤其是公共服务平台的建设起到良好的客户友好体验,大量的图形信息,音频信息已经深入到数据库的设计中,其中尤其是空间数据库管理备受瞩目。所以,面对信息爆炸的21世纪,海量数据的存储和管路已经不是传统的数据库能解决的,空间数据管理需要更强的数据库——对象关系型数据库。 为什么空间数据需要对象关系型数据库的管理才更有效?我想简单的说一下GIS空间数据的基本特征:(1)空间特征:每个空间对象都具有空间坐标,所以在存储空间数据的同时我们要考虑数据的空间分布特征;(2)非结构化特征:通用数据库或者是传统数据库数据记录一般是结构化的,在面对空间图形信息的时候难以直接采用关系数据管理系统;(3)空间关系特征:空间数据的空间关系最重要的就是空间拓扑关系,这种拓扑结构方便了空间数据的查询和空间分析,但是给空间数据的一致性和完整性的维护增加了复杂性;(4)海量数据的特征:数据库在面对海量数据的存储和组织时,一般在二维空间上划分块或图幅,在垂直的方向上划分层在组织海量空间数据。 在空间数据的管理技术的发展中,从手工管理管理阶段到文件管理阶段再到数据库管理阶段,在三个数据管理阶段,对数据管理方式也不尽相同,在这里,我想说的是空间数据库的发展历史对空间数据管理的影响,第一是层次关系型数据库:只是数据库发展的初级阶段,这是空间数据的管理大多用文件方式管理,很显然不适合管理海量的空间数据,所以淘汰;第二是网络关系型数据库:在一定程度上解决了空间数据复杂管理的难题,但还是被日益崛起的关系型数据库所淘汰;第三是关系型数据库的发展:为了解决难于保证数据的完整性,开始将空

关系数据库理论

第4部分关系数据库理论 复习习题与讲解资料 【主讲教师:钱哨】 一.考试大纲考点要求 1 了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 3 掌握第一范式( 1NF )、第二范式( 2NF )和第三范式( 3NF )的定义,能判别关系模式的范式等级。 4 掌握关系模式的分解(规范到 3NF )的步骤、分解的原则和分解的方法。 二.单项选择题 1. 为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是()。 A. 关系规范化理论 B. 关系代数理论 C.数理逻辑 D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是()。 A. 长度不变的 B. 不可分解的 C.互相关联的 D. 互不相关的 3. 已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→ A },该关系模式的候选关键字是()。 A.AB B. BE C.CD D. DE

4. 设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主键为SNO和CNO,其满足()。 A. 1NF B.2NF C. 3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A. (S,C) B. (T,R) C. (T,P) D. (T,S) 6. 关系模式中,满足2NF的模式()。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7. 关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 9. 如果A->B ,那么属性A和属性B的联系是()。 A. 一对多 B. 多对一 C.多对多 D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 11. 候选关键字的属性可以有()。 A. 多个 B. 0个 C. 1个 D. 1个或多个 12. 关系模式的任何属性()。 A. 不可再分 B. 可以再分 C. 命名在关系模式上可以不唯一 D. 以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最

(完整版)数据库关系代数习题

1.设有如图所示的关系S、SC和C,试用关系代数表达式表示下列查询语句: S C SC S# SNAME AGE SEX 1 李强23 男 2 刘丽22 女5 张友22 男C# CNAME TEACHER k1 C语言王华 k5 数据库原理程军 k8 编译原理程军 S# C# GRADE 1 k1 83 2 k1 85 5 k1 92 2 k5 90 5 k5 84 5 k8 80 (1) 检索”程军”老师所授课的课程号(C#)和课程名(CNAME)。 (2) 检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 (3) 检索至少选修”程军”老师所授全部课程的学生姓名(SNAME)。 (4) 检索”李强”同学不学课程的课程号(C#)。 (5) 检索至少选修两门课程的课程号(S#)。 (6) 检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7) 检索选修课程包含”程军”老师所授课程之一的学生学号(S#)。 (8) 检索选修课程号为k1和k5的学生学号(S#)。 (9) 检索选修全部课程的学生姓名(SNAME)。 (10) 检索选修课程包含学号为2的学生所选修课程的学生学号(S#)。 (11) 检索选修课程名为”C语言”的学生学号(S#)和姓名(SNAME)。(12)检索没有一门课程成绩不及格的学生学号,姓名。 答:本题各个查询语句对应的关系代数表达式表示如下: (1) ΠC#,CNAME(σTEACHER ='程军'(C)) (2) ΠS#,SNAME(σAGE>21^SEX ='男'(S)) (3) ΠSNAME(S(ΠS#,C#(SC)÷ΠC#(σTEACHER ='程军'(C)))) (4) ΠC#(C)-ΠC#(σSNAME ='李强'(S)∞SC) (5) ΠS# (σ1=4^2≠5 (S C×SC)) (6) ΠC#,CNAME(C∞(ΠS#,C#(SC)÷ΠS#(S))) (7) ΠS# (SC∞ΠC# (σTEACHER ='程军'(C))) (8) ΠS#,C#(SC)÷ΠC#(σC#=’K1’VC#=’K5’ (C)) (9) ΠSNAME(S∞(ΠS#,C#(SC)÷ΠC#(C))) (10) ΠS#,C#(SC)÷ΠC#(σC#=’2’ (S C)) (11) ΠS#,SNAME(S∞ΠS#(SC∞(σCNAME ='C语言'(C)))) (12)П学号,姓名(学生)-П学号,姓名(σ分数<60(学生∞学习))。

数据库表和数据库关系的实现

第五讲数据库表和数据库关系的实现 5.1数据类型 定义数据表的字段、声明程序中的变量时,都需要为他们设置一个数据类型。目的是指定该字段或变量所存放的数据类型,以及需要多少空间。 5.1.1整型:可以用来存放整数数据的字段或变量。有bigint、int、smallint、 两种类型,这两种类型完全相同,一般建议使用numeric。 使用numeric或decimal时,必须指明精确度(即全部有效位数)与小数点位数,例如:numeric(5,2)表示精度为5,总共位数为5位,其中3位整数及2位小数。若不指定,则默认值为numeric(18,0)。精确度可指定的范围为1~38, 取其“近似值”。例如:23456646677799变成 2.3E+13,此类数据类型有float 和real两种。注意:使用float和real类型,若数值的位数超过其有效位数的限

其中varchar及text的实际存储长度会依数据量而调整。如:varchar(10)表示最多可存储10字节,但若只填入5个字符,那么只会占用5字节。char与varchar 最多只能存储8000个字符,若数据超过此长度,请改用text类型。 在使用char及varchar时必须指定字符长度,例如char(50)、varchar(50); 的数据与字符串类型相当类似,Unicode字符串的一个字符是用2个字节存储,而一般字符串是一个字符用1个字节存储。此类数据类型有nchar、nvarchar、ntext。 在使用nchar及nvarchar时必须指定字符长度,例如nchar(50)、nvarchar 据多用16进制表示,而且要加上0x字头)。此类数据类型有binary、varbinary 与image,其特性分别相当于字符串类型的char、varchar、text。image类型还可以用来存放word文件、excel电子表格、以及位图、GIF和JPEG文件。 使用binary及varbinary时须指定字符长度,例如binary(50)、varbinary(30);若未指定,默认值为1。Image类型则不必指定长度。

对象关系模型数据库解析

面向对象数据库系统(Object Oriented Data Base System,简称OODBS)是数据库技术与面向对象程序设计方法相结合的产物。 对于OO数据模型和面向对象数据库系统的研究主要体现在:研究以关系数据库和SQL为基础的扩展关系模型;以面向对象的程序设计语言为基础,研究持久的程序设计语言,支持OO模型;建立新的面向对象数据库系统,支持OO数据模型。 面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系(或通信)上,从而完成所需要的计算。一个面向对象的程序就是相互联系(或通信)的对象集合。面向对象程序设计的基本思想是封装和可扩展性。 面向对象数据库系统支持面向对象数据模型(以下简称OO模型)。即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。 一个OO模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了OO模型的基础。概括起来,OO模型的核心概念有如下一些: (1)对象(Object)与对象标识OID(Object IDentifier) 现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识(OID)。 (2)封装(Encapsulation) 每一个对象是其状态与行为的封装,其中状态是该对象一系列属性(Attribute)值的集合,而行为是在对象状态上操作的集合,操作也称为方法(Method)。 (3)类(C1ass) 共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的一个实例(instance)。 (4)类层次(结构) 在一个面向对象数据库模式中,可以定义一个类(如C1)的子类(如C2),类Cl 称为类C2的超类(或父类)。子类(如C2)还可以再定义子类(如C3)。这样,面向对象数据库模式的一组类形成一个有限的层次结构,称为类层次。 (5)消息(Message) 由于对象是封装的,对象与外部的通信一般只能通过显式的消息传递,即消息从外部传送给对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结果仍以消息的形式返回。 OODB语言用于描述面向对象数据库模式,说明并操纵类定义与对象实例。OODB语言主要包括对象定义语言(ODL)和对象操纵语言(OML),对象操纵语言中一个重要子集是对象查询语言(OQL)。OODB语言一般应具备下述功能: (1)类的定义与操纵 面向对象数据库语言可以操纵类,包括定义、生成、存取、修改与撤销类。其中类的定义包括定义类的属性、操作特征、继承性与约束等。 (2)操作/方法的定义 面向对象数据库语言可用于对象操作/方法的定义与实现。在操作实现中,语言的命令

关系数据库设计

目录 一 Codd的RDBMS12法则——RDBMS的起源 二关系型数据库设计阶段 三设计原则 四命名规则 数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。 从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA)。根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,如果追其原因,笔者个人猜测是因为数据库的规范化,与OO的部分思想雷同(如内聚)。而DBA,设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定。如标题所示,本文旨在分享一名开发者的数据库设计经验,并不涉及复杂的SQL语句或DBMS使用,因此也不会局限到某种DBMS产品上。真切地希望这篇文章对开发者能有所帮助,也希望读者能帮助笔者查漏补缺。 一?Codd的RDBMS12法则——RDBMS的起源 Edgar Frank Codd(埃德加·弗兰克·科德)被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。在1985年,Codd 博士发布了12条规则,这些规则简明的定义出一个关系型数据库的理念,它们被作为所有关系数据库系统的设计指导性方针。 1.信息法则?关系数据库中的所有信息都用唯一的一种方式表示——表中的值。 2.保证访问法则?依靠表名、主键值和列名的组合,保证能访问每个数据项。 3.空值的系统化处理?支持空值(NULL),以系统化的方式处理空值,空值不依赖于数据类型。 4.基于关系模型的动态联机目录?数据库的描述应该是自描述的,在逻辑级别上和普通数据采用同样 的表示方式,即数据库必须含有描述该数据库结构的系统表或者数据库描述信息应该包含在用 户可以访问的表中。 5.统一的数据子语言法则?一个关系数据库系统可以支持几种语言和多种终端使用方式,但必须至少 有一种语言,它的语句能够一某种定义良好的语法表示为字符串,并能全面地支持以下所有规 则:数据定义、视图定义、数据操作、约束、授权以及事务。(这种语言就是SQL) 6.视图更新法则?所有理论上可以更新的视图也可以由系统更新。 7.高级的插入、更新和删除操作?把一个基础关系或派生关系作为单个操作对象处理的能力不仅适应 于数据的检索,还适用于数据的插入、修改个删除,即在插入、修改和删除操作中数据行被视 作集合。 8.数据的物理独立性?不管数据库的数据在存储表示或访问方式上怎么变化,应用程序和终端活动都 保持着逻辑上的不变性。 9.数据的逻辑独立性?当对表做了理论上不会损害信息的改变时,应用程序和终端活动都会保持逻辑 上的不变性。 10.数据完整性的独立性?专用于某个关系型数据库的完整性约束必须可以用关系数据库子语言定 义,而且可以存储在数据目录中,而非程序中。

(完整版)大学数据库考试复习试题带答案

2019数据库期末复习内容 1.选择题 (1)(数据库)是存储在计算机内结构化的数据的集合 (2)下述关于数据系统正确的描述是(数据库系统减少了数据冗余)。 (3)数据库(DB)、与数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(DBS 包含DB 和DBMS )。(4)数据库管理系统的工作不包括(为定义的确据库提供操作系统)。 (5)用于对现实世界进行描述的工具是(数据模型)。 (6)在数据库的三级模式结构中,描述数据库中全局逻辑结构和特征的是(模式)。 (7)E-R图用来建立数据库的(概念模型)。 (8)下列模型中不能直接描述实体间多对多的联系的是(关系模型)。 (9)数据模型的三个要素是(数据结构、数据操作、完整性约束) (10)数据库的设计人员和用户之间沟通信息的桥梁是(实体联系图)。 (11)数据的独立性分为(逻辑独立性和物理独立性)。 (12)数据库通常是根据(数据模型)来分类的。 (13)关系数据库系统能实现专门的关系运算,包括(选择、投影、连接、除)。 (14)在关系模型中,下述关于关键字的说法正确的是(可以由一个或多个其值能唯一标识该关系模式中任何元组的属性组成)。 (15)被称为关系的两个不变性,由关系数据库系统自动支持的是(实体完整性和参照完整性)。 (16)在关系中不能出现相同元组的约束是通过(主码)来实现。 (17)下列数据模型中,数据独立性最高的是(关系模型). (18)规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:每一属性都是(不可分解的)。 (19)关系数据库规范化是为解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入的。 (20)在关系数据库中,任何二元关系模式的最高范式必定是(BCNF ) (21)若属性X函数依赖于属性Y时,则属性X与属性Y之间的关系是(多对一)。 (22)设有关系模式:部门(部门代码,部门名称,部门成员,部门经理)由于其中(部门成员)属性存在,使该关系不属于第一范式。 (23)若关系模式R中的属性都是主属性,则R最高属于(3NF )。 (24)若要彻底消除插入异常和删除异常,关系模式最低要属于(BCNF)。 (25)关系模式分解的无损连接和保持函数依赖两个特性之间的联系是(没有必然联系)。 (26)关系模式中数据依赖的存在,可能会导致成立蕴涵后者数据插入异常,这是指(该插入的数据未被插入)。(27)设要对关系模式R(学号,姓名,课程代码,课程名,课程成绩)进行分解,将其规范化到3NF,下列(B)是正确的规范化结果。B.R1(学号,姓名)R2(课程代码,课程名)R3 (学号,课程代码,课程成绩) (28)有如下关系R(是BCNF)。 (29)对用户访问数据库的权限加以限定是为了保护数据库的(安全性)。 (30)下面(可移植性)不是数据库系统必须提供的数据控制功能。 (31)数据库系统中,对存取权限定义为(授权)。 (32)在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的(范围越小),授权子系统就越灵活。 (33)数据库安全性遭到破坏的情况属于(非法用户读取数据库中的数据)。 (34)数据库的(完整性)是指数据的正确性和相容性。 (35)数据完整性保护中的约束条件是指(值的约束和结构的约束)。 (36)实体完整性和参照完整性属于(静态关系约束)。 (37)数据类型、取值范围、空值约束属于(静态列级约束)。

关系数据库重点

第2章关系数据库 教学课时:6课时 本章学习目标: 1.掌握数据模型的基本概念 2.掌握实体-联系模型 3.掌握关系模型的概念和性质 4.掌握关系的完整性规则 5.掌握关系数据库的规范化理论、范式的基本概念和分解方法 教学重点: 1.关系数据模型 2.关系的规范化 3.关系完整性 教学难点: 1.实体—联系模型 2.关系模型的三要素 3.范式 4.实体完整性 5.参照完整性 教学方法:讲授法、讲解法、演示法、讨论法 教学过程及内容: 2.1 数据模型 2.1.1 数据模型的概念 一般地讲,数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和数据的完整性约束三部分组成。 1. 数据结构 数据结构是所研究的对象类型的集合,这些对象是数据库的组成成分。 2. 数据操作 数据操作是指对数据库中各种对象型的实例(如关系模型中的关系的值)所允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。 3. 数据的完整性约束条件 数据的完整性约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 2.1.2 数据之间的联系 数据模型是数据库系统的核心和基础,各种数据库管理系统都是基于某种数据模型的。而具体的数据库管理系统所支持的数据模型不便于非计算机专业人员理解和应

用。 ●概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。它不是面向 机器实现,而是面向现实世界,是按照用户的观点来对数据和信息建模。 图2.1 数据抽象层次 1. 实体及其属性 1) 实体 客观存在并可相互区分的事物称为实体。 2) 属性 实体所具有的某一特性称为属性。 3) 实体和属性的型与值 实体和属性有型与值之分。 4) 实体集 具有相同实体型的实体的集合称为实体集。 5) 关键字 在实体属性中,用于区别实体集合中不同个体的某个属性或某几个属性的组合,称为关键字。 2. 实体间的联系 实体内部的联系通常是指实体的各属性之间的联系。实体之间的联系通常是指一个实体集内部各实体之间的联系或者不同的实体集的实体之间的联系。 两个实体集之间的联系可以分为三类。 ●一对一联系(1∶1) ●一对多联系(1∶N) ●多对多联系(M∶N) 图2.2表示了两个实体集间的以上3种联系。 实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。 通常情况下,两个以上的实体集之间也存在着一对一、一对多或多对多联系。 (a)一对一联系 (b)一对多联系 (c)多对多联系 实体集A 实体集B 实体集A 实体集B 实体集A 实体集B

关系数据库中

1关系数据库中,主键的正确描述是(D )。 (A) 创建唯一的索引,允许空值(B) 允许有多个主键的 (C) 只允许以表中第一字段建立(D) 为标识表中唯一的实体 2以下不适合创建非聚集索引的情况是(A )。 (A) 表中包含大量重复的列值(B) 带WHERE子句的查询 (C) 经常需要进行联接和分组操作的列(D) 表中包含大量非重复的列值 3使用视图的作用有4个,下列哪一个是错误的(A )。 (A) 导入数据(B) 定制操作 (C) 简化操作(D) 安全性 4叙述A:当视图被撤消,不会对基表造成任何影响。叙述B:不能改变作为计算结果的列。关于对以上叙述中,正确的是(C )。 (A) 叙述A错误,叙述B正确(B) 叙述A正确,叙述B错误 (C) 都正确(D) 都是错误的 5语句:select 10%7 的执行结果是(D )。 (A) 7 (B) 1 (C) 70 (D) 3 6下列关于关联的叙述正确的是( D)。 (A) 已创建关联的两个表中的关联字段数据 可能完全不同(B) 可在两个表的不同数据类型的同名字段 间创建关联 (C) 可在两个表的不同数据类型的字段间创 建关联(D) 可在两个表的相同数据类型的不同名称 的字段间创建关联 7用UNION合并两个SELECT查询的结果时,下列叙述中错误的是()。 (A) 两个SELECT语句必须输出同样的列数(B) 将来自不同查询的数据组合起来 (C) 两个表各相应列的数据类型必须相同(D) 被组合的每个查询都可以使用ORDER B Y子句 8查询所有目前年龄在24岁以上(不含24岁)的学生信息(学号、姓名、年龄),正确的命令是()。 (A) SELECT 学号,姓名,年龄=YEAR(GETDA TE())-YEAR(出生日期) FROM 学生 WHE RE YEAR(GETDATE())-YEAR(出生日 期)>24 (B) SELECT 学号,姓名,YEAR(GETDATE())- YEAR(出生日期) 年龄 FROM 学生 WHE RE YEAR(GETDATE())-YEAR(出生日 期)>24

数据库习题答案

1.3 习题 1. 数据库的发展历史分为哪几个阶段?各有什么特点? 答:从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。 人工管理阶段数据管理特点:数据不保存,没有对数据进行管理的软件系统,没有文件的概念,数据不具有独立性。 文件系统阶段数据管理特点:数据可以长期保存,由文件系统管理数据,文件的形式已经多样化,数据具有一定的独立性。 数据库系统阶段数据管理特点:采用复杂的结构化的数据模型,较高的数据独立性,最低的冗余度,数据控制功能。 2. 简述数据、数据库、数据库管理系统、数据库系统的概念。 答:数据是指描述事物的符号记录。人们通过数据来认识世界,交流信息。 数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。 数据库管理系统(DataBase Management System,简称DBMS)是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行控制的功能,它位于用户和操作系统之间,是一层数据管理软件。 数据库系统(DataBase System,简称DBS)是指在计算机系统中引入了数据库后的系统,由计算机硬件、数据库、数据库管理系统、应用程序和用户构成,即由计算机硬件、软件和使用人员构成。 3. 使用数据库系统有什么好处? 答:简化管理,提高效率,提供安全。 4. 试述数据库系统的三级模式结构和二级映象的特点。 答:从数据库管理系统的角度看,数据库系统通常采用三级模式结构:外模式、模式和内模式。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS 管理,使用户能逻辑地、抽象地处理数据。 为了实现这三个层次上的联系和转换,数据库系统在这三级模式中提供了两层映象:外模式/模式的映象和模式/内模式的映象。 5. 什么是数据与程序的逻辑独立性?什么是数据与程序的物理独立性? 答:对于每一个外模式,数据库都有一个外模式/模式的映象,它定义并保证了外模式与数据模式之间的对应关系。当模式改变时,外模式/模式的映象要作相应的改变以保证外模式保持不变。应用程序是根据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,即数据的逻辑独立性。 数据库的内模式依赖于它的全局逻辑结构,即模式。它定义并保证了数据的逻辑模式与内模式之间的对应关系。当数据库的存储结构改变了,模式/内模式的映象也必须作相应的修

关系数据库中的表不必具有的性质是什么

关系数据库中的表不必具有的性质是( ). A. 数据项不可再分 B. 同一列数据项要具有相同的数据类型 C. 记录的顺序可以任意排列 D. 字段的顺序不能任意排列 优质解答D.字段的顺序不能任意排列 1).Access数据库属于(C)数据库。 A)、层次模型 B)、网状模型 C)、关系模型 D)、面向对象模型 2).打开Access数据库时,应打开扩展名为(B)的文件。 A)、mda B)、mdb C)、mde D)、DBF 3).已知某一数据库中有两个数据表,它们的主关键字与主关键字之间是一个对应多个的关系,这两个表若想建立关联,应该建立的永久联系是(B)。 A)、一对一 B)、一对多 C)、多对多

D)、多对一 4).下列(B)不是Access数据库的对象类型? A)、表 B)、向导 C)、窗体 D)、报表 5).关系数据库中的表不必具有的性质是(D)。 A)、数据项不可再分 B)、同一列数据项要具有相同的数据类型 C)、记录的顺序可以任意排列 D)、字段的顺序不能任意排列 6).下列对于Access2000(高版本)与Access97(低版本)之间的说法不正确的是(C)。 A)、通过数据转换技术,可以实现高、低版本的共享. B)、高版本文件在低版本数据库中可以打开,但有些功能不能正常运行. C)、低版本数据库文件无法在高版本数据库中运行. D)、高版本文件在低版本数据库中能使用,需将高版本转换成低版本. 7).不能退出Access 2000的方法是(C)。 A)、单击"文件"菜单/"退出" B)、单击窗口右上角"关闭"按钮

C)、ESC D)、ALT+F4 8).Access在同一时间,可打开(A)个数据库。 A)、1 B)、2 C)、3 D)、4 9).对表中某一字段建立索引时,若其值有重复,可选择(D)索引。 A)、主 B)、有(无重复) C)、无 D)、有(有重复) 10).创建表时可以在(C)中进行。 A)、报表设计器 B)、表浏览器 C)、表设计器 D)、查询设计器 11).不能进行索引的字段类型是(A)。 A)、备注 B)、数值 C)、字符 D)、日期

数据库中表之间的关系

数据库中表之间的关系 表关系(一对一,一对多,多对多) 收藏 可以在数据库图表中的表之间创建关系,以显示一个表中的列与另一个表中的列是如何相链接的。 在一个关系型数据库中,利用关系可以避免多余的数据。例如,如果设计一个可以跟踪图书信息的数据库,您需要创建一个名为 titles 的表,它用来存储有关每本书的信息,例如书名、出版日期和出版社。您也可能保存有关出版社的信息,诸如出版社的电话、地址和邮政编码。如果您打算在 titles 表中保存所有这些信息,那么对于某出版社出版的每本书都会重复该出版社的电话号码。 更好的方法是将有关出版社的信息在单独的表,publishers,中只保存一次。然后可以在 titles 表中放置一个引用出版社表中某项的指针。 为了确保您的数据同步,可以实施 titles 和 publishers 之间的参照完整性。参照完整性关系可以帮助确保一个表中的信息与另一个表中的信息相匹配。例如,titles 表中的每个书名必须与 publishers 表中的一个特定出版社相关。如果在数据库中没有一个出版社的信息,那么该出版社的书名也不能添加到这个数据库中。 为了更好地理解表关系,请参阅: 定义表关系 实施参照完整性 定义表关系 关系的确立需要通过匹配键列中的数据(通常是两表中同名的列)。在大多数情况下,该关系会将一个表中的主键(它为每行提供了唯一标识)与另一个表的外部键中的某项相匹配。例如,通过创建 titles 表中的 title_id(主键)与 sales 表中的 title_id 列(外部键)之间的关系,则销售额就与售出的特定书名相关联了。 表之间有三种关系。所创建关系的类型取决于相关列是如何定义的。 一对多关系 多对多关系

关系数据库设计理论

第6章关系数据库设计理论 本章主要讲解在关系数据库的设计过程中,如何减少数据冗余,避免出现异常,该如何对数据库模式进行中心设计。 1.深入理解函数依赖和键码的概念。学会计算属性的封闭集。 2.模式设计是本章的重点。了解数据冗余和更新异常产生的根源;理解关系模式规范化的途径;准确理解第一范式、第二范式、第三范式和BC范式的含义、联系与区别; 深入理解模式分解的原则;熟练掌握模式分解的方法,能正确而熟练的将一个关系模式分解成属于第三范式或BC范式的模式。 3.了解多值依赖和第四范式的概念,掌握把关系模式分解成属于第四范式的模式的方法。 本章主要的知识点包括: 知识点1 函数依赖 知识点2 模式设计 知识点3 多值依赖 学习要点1、函数依赖 1.1函数依赖的定义 如果关系R的两个元组在属性A1,A2,… An上一致(也就是,两个元组在这些属性所对应的各个分量具有相同的值),则它们在另一个属性B上也一致。那么,我们就说在关系R中属性B函数依赖于属性A1A2…An。记做A1A2…An ,也可以说“A1,A2,…,An函数决定B”。A1A2…An称为决定因素。 举例: 在这个关系中,学号确定后,学生的姓名及所在的系就都确定了。属性中的这种依赖关系就是函数依赖。在本例中存在下列函数依赖。 ?Sno SN ame ?Sno S dept ?S dept Mname ?Sno C name Grade 1.2 关系的键码如一个或多个属性的集合{A1,…,An}满足如下条件,称该集合为关系R的键码: 1. 这些属性函数决定该关系的所有其它属性。 2. {A1,…,An}的任何真子集都不能函数决定R的所有其它属性,键码必须是最小的。 1.3 超键码包含键码的属性集称为“超键码” 。

数据库原理与应用-期末考试复习题

数据库原理期末考试复习题 一、单选题 1.在数据库中存储的是(C)。 A. 数据 B. 数据模型 C. 数据及数据之间的联系 D. 信息 2.现有一个“教师”表,其中一个字段是教师的住址(字符型,20位长),如果不希望此字段包含空值,即某位教师现没有住址,则希望此字段自动填入“还没有”,应该( C )。 A. 为此列创建一个check约束 B. 为此列创建一个foreign key约束 C. 为此列创建一个default约束 D. 为此列创建一个primary key约束3.数据库系统包括( D )。 A. DB、DBMS B. DB、DBA C. DB、DBMS、DBA、计算机硬件 D. DB、DBMS、DBA、OS、计算机硬件 4.假设同一名称的产品有不同的型号和产地,则计算每种产品平均单价的SQL语句是(D)。 A. SELECT 产品名称,AVG(单价) FROM 产品GROUP BY 单价 B. SELECT 产品名称,AVG(单价) FROM 产品ORDER BY 单价 C. SELECT 产品名称,AVG(单价) FROM 产品ORDER BY 产品名称 D. SELECT 产品名称,AVG(单价) FROM 产品GROUP BY 产品名称 5.数据库中,数据的物理独立性是指(C)。 A. 数据库与数据库管理系统的相互独立 B. 用户程序与DBMS的相互独立 C. 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 D. 应用程序与数据库中数据的逻辑结构相互独立 6.关系数据库规范化是为解决关系数据库中(B)问题而引入的。 A. 提高查询速度 B. 保证数据的安全性和完整性 C. 减少数据操作的复杂性 D. 插入异常、删除异常和数据冗余 7.当前数据库应用系统的主流数据模型是(C)。 A. 层次数据模型 B. 网状数据模型 C. 关系数据模型 D. 面向对象数据模型 8.如果两个实体集之间的联系是m:n,转换为关系时(B)。 A. 联系本身不必单独转换为一个关系 B. 联系本身必须单独转换为一个关系 C. 联系本身也可以不单独转换为一个关系 D. 将两个实体集合并为一个实体集9.候选码中的属性可以有(C)。 A. 0个 B. 1个 C. 1个或多个 D. 多个 10.下列关于关系性质的描述中正确的是(B )。 A. 关系中行的值可以相同 B. 关系中列的值可以相同 C. 关系中行的次序不可以交换 D. 关系中列的次序不可以交换 11.在SQL 语句中,与X BETWEEN 20 AND 30 等价的表达式是(B)。 A. X>20 AND X<30 B. X>=20 AND X<=30 C. X>20 AND X<=30 D. X>=20 AND X<30 12.数据库系统具有许多特点,使其很快成为数据处理的主要工具,下列哪个特点不是数据库系统的特点(B )。 A. 具有复杂的数据结构 B. 不存在数据冗余

数据库定义表之间关系(带图)

如何定义数据库表之间的关系 特别说明 数据库的正规化是关系型数据库理论的基础。随着数据库的正规化工作的完成,数据库中的 各个数据表中的数据关系也就建立起来了。 在设计关系型数据库时,最主要的一部分工作是将数据元素如何分配到各个关系数据表中。一旦完成了对这些数据元素的分类,对于数据的操作将依赖于这些数据表之间的关系,通过这些数据表之间的关系,就可以将这些数据通过某种有意义的方式联系在一起。例如,如果你不知道哪个用户下了订单,那么单独的订单信息是没有任何用处的。但是,你没有必要在同一个数据表中同时存储顾客和订单信息。你可以在两个关系数据表中分别存储顾客信息和订单信息,然后使用两个数据表之间的关系,可以同时查看数据表中每个订单以及其相关的客户信息。如果正规化的数据表是关系型数据库的基础的话,那么这些数据表之间的关系则 是建立这些基础的基石。 出发点 下面的数据将要用在本文的例子中,用他们来说明如何定义数据库表之间的关系。通过Boyce-Codd Normal Form(BCNF)对数据进行正规化后,产生了七个关系表: Books: {Title*, ISBN, Price} Authors: {FirstName*, LastName*} ZIPCodes: {ZIPCode*} Categories: {Category*, Description} Publishers: {Publisher*} States: {State*} Cities: {City*} 现在所需要做的工作就是说明如何在这些表之间建立关系。 关系类型 在家中,你与其他的成员一起存在着许多关系。例如,你和你的母亲是有关系的,你只有一位母亲,但是你母亲可能会有好几个孩子。你和你的兄弟姐妹是有关系的——你可能有很多兄弟和姐妹,同样,他们也有很多兄弟和姐妹。如果你已经结婚了,你和你的配偶都有一个配偶——这是相互的——但是一次只能有一个。在数据表这一级,数据库关系和上面所描述现象中的联系非常相似。有三种不同类型的关系: 一对一:在这种关系中,关系表的每一边都只能存在一个记录。每个数据表中的关键字在对应的关系表中只能存在一个记录或者没有对应的记录。这种关系和一对配偶之间的关系非常相似——要么你已经结婚,你和你的配偶只能有一个配偶,要么你没有结婚没有配偶。大多数的一对一的关系都是某种商业规则约束的结果,而不是按照数据的自然属性来得到的。如果没有这些规则的约束,你通常可以把两个数据表合并进一个数据表,而且不会打破任何规 范化的规则。

关系型大数据库和非关系型大数据库

关系型数据库和非关系型数据库 自1970年,埃德加·科德提出关系模型之后,关系数据库便开始出现,经过了40多年的演化,如今的关系型数据库具备了强大的存储、维护、查询数据的能力。但在关系数据库日益强大的时候,人们发现,在这个信息爆炸的“大数据”时代,关系型数据库遇到了性能方面的瓶颈,面对一个表中上亿条的数据,SQL语句在大数据的查询方面效率欠佳。我们应该知道,往往添加了越多的约束的技术,在一定程度上定会拖延其效率。 在1998年,Carlo Strozzi提出NOSQL的概念,指的是他开发的一个没有SQL功能,轻量级的,开源的关系型数据库。注意,这个定义跟我们现在对NoSQL的定义有很大的区别,它确确实实字如其名,指的就是“没有SQL”的数据库。但是NoSQL的发展慢慢偏离了初衷,CarloStrozzi也发觉,其实我们要的不是"nosql",而应该是"norelational",也就是我们现在常说的非关系型数据库了。 在关系型数据库中,导致性能欠佳的最主要因素是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。为了保证数据库的ACID特性,我们必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。 非关系型数据库提出另一种理念,他以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。但非关系型数据库由于很少的约束,他也不能够提供想SQL所提供的where这种对于字段属性值情况的查询。并且难以体现设计的完整性。他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数据库显得更为合适。 目前出现的NoSQL(Not only SQL,非关系型数据库)有不下于25种,除了Dynamo、Bigtable以外还有很多,比如Amazon的SimpleDB、微软公司的AzureTable、Facebook使用的Cassandra、类Bigtable的Hypertable、Hadoop的HBase、MongoDB、CouchDB、Redis以及Yahoo!的PNUTS等等。这些NoSQL各有特色,是基于不同应用场景而开发的,而其中以MongoDB和Redis最为被大家追捧。 以下是MongoDB的一些情况: MongoDB是基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是他支持的查询语言非常强大,

关系数据库理论

关系数据库理论

————————————————————————————————作者:————————————————————————————————日期:

第4部分关系数据库理论 复习习题与讲解资料 【主讲教师:钱哨】 一.考试大纲考点要求 1了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 3 掌握第一范式(1NF )、第二范式( 2NF )和第三范式(3NF )的定义,能判别关系模式的范式等级。 4 掌握关系模式的分解(规范到3NF )的步骤、分解的原则和分解的方法。 二.单项选择题 1.为了设计出性能较优的关系模式,必须进行规范化,规范化主要的理论依据是( ) 。A. 关系规范化理论 B. 关系代数理论 C.数理逻辑D. 关系运算理论 2. 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是( ) 。 A. 长度不变的B. 不可分解的 C.互相关联的 D. 互不相关的 3.已知关系模式R(A,B,C,D,E)及其上的函数相关性集合F={A→D,B→C ,E→A },该关系模式的候选关键字是( ) 。 A.AB B. BE C.CDD.DE

4.设学生关系S(SNO,SNAME,SSEX,SAGE,SDPART)的主键为SNO,学生选课关系SC(SNO,CNO,SCORE)的主键为SNO和CNO,则关系R(SNO,CNO,SSEX,SA GE,SDPART,SCORE)的主键为SNO和CNO,其满足( )。 A.1NF B.2NF C.3NF D. BCNF 5. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={C →P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },关系模式W的一个关键字是()。 A.(S,C)B. (T,R) C.(T,P) D. (T,S) 6.关系模式中,满足2NF的模式( ) 。 A. 可能是1NF B. 必定是1NF C. 必定是3NF D. 必定是BCNF 7.关系模式R中的属性全是主属性,则R的最高范式必定是()。 A. 1NF B. 2NF C. 3NF D. BCNF 8. 消除了部分函数依赖的1NF的关系模式,必定是()。 A.1NF B.2NF C.3NF D. BCNF 9.如果A->B ,那么属性A和属性B的联系是( ) 。 A.一对多B. 多对一 C.多对多D. 以上都不是 10. 关系模式的候选关键字可以有1个或多个,而主关键字有( )。 A.多个B.0个 C.1个D.1个或多个 11.候选关键字的属性可以有()。 A. 多个B. 0个 C.1个D. 1个或多个 12. 关系模式的任何属性()。 A.不可再分 B. 可以再分C. 命名在关系模式上可以不唯一D.以上都不是 13. 设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C表示课程,P表示教师,S表示学生,G表示成绩,T表示时间,R表示教室,根据语义有如下数据依赖集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若将关系模式W分解为三个关系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),则W1的规范化程序最高达到( )。 A.1NFB.2NF C.3NFD. BCNF

相关文档
最新文档