数据库系统原理及其应用总结---ShinePans

第一章  数据库概论

1.在数据库管理技术的发展过程中,数据库独立性最高的是“数据库系统”阶段

2.三大经典的数据结构模型是“关系,层次和网状模型”

3.单个用户使用的数据视图的描述,称为“外模式”,它是用户与DBS的接口

4.DB中,数据的逻辑独立性是指“概念模式改变,外模式与应用程序不变”

5.通过指针链表来表示实体间联系的模型是“网状和层次模型”

6.DB的体系结构分成三层,分别是“逻辑模式,内模式,外模式”

7.DBMS的主要功能有“数据库定义功能,数据库的操纵功能和数据库的运行管理”,DB维护和组织存储管理及数据通信接口等

8.组成数据模型的三大要素是“数据结构,数据操作,数据完整性约束规则”

9.DBMS包括的主要程序“数据库定义语言及编译处理程序,数据操纵语言及编译程序,数据库运行控制程序,实时维护管理程序”

第二章 关系数据库

1.在关系模式中,“关系的主关键字的值不能为空”

2.关系代数的物种基本操作为“并,差,笛卡尔积,投影和选择”

3.设关系R(A,B,C)和S(B,C,D),则“可以有R连接S,R与S的笛卡尔积,但是R不可以并S,因为属性数目不同”

4.在关系代数中,对一个关系作投影操作后,新关系的元祖个数“小于或等于”原来的关系的元祖个数

5.当属性“年龄”值为1000时,该数据受到了“用户定义完整性”破坏

实体完整性:主关键字不能取空值  用户完定义完整性:取值范围  参照完整性:不引用不存在的实体

6.关系的元数指”属性的个数“,关系的基数指”元组的个数“,能唯一标识元组的属性集,而无多余属性,该属性集称为”候选关键字“

7.关系模型的三类完整性规则包括:”实体完整性,参照完整性,用户定义完整性“

8.在关系代数的运算中,专门的关系代数运算有:”选择(σ),投影(Π)连接(|x|)除(÷)“

9.θ连接操作是由关系代数的”选择和笛卡尔积“操作组合而成的

10.关系代数是用代数对关系的运算来表达查询的,而关系演算是用”谓词形式“表达查询的,它们分为”元组关系演算和域关系演算“两种

计算题举例1:

已知关系R,W,D如图所示:

R:

P Q T Y
2 b c d
9 a e f
2 b e f
9 a d e
7 g e f
7 g c d

W:

T Y B
c d m
c d n
d f n

D:

T Y
c d
e f

(1)R1=πY,T(R)

解答: 注意:没有相同的元组:

Y T
d c
f e
e d

(2)R2=σP>5^T=e(R)

解答: 要求R中 P列的元素大于5且T列中的元素等于e:

P Q T Y
q a e f
7 g e f

(3)R3=R|x|W

解答:连接R与W,要求列相同才可以连接,结果如下

P Q T Y B
2 b c d m
2 b c d n
7 g c d m
7 g c d n

(4)R4=Π[2],[1],[6](σ[3]=[5](RxD))

解答:R与D达卡尔积计算后:  筛选 出 第二列,第一列和第六列 ,并且第三列等于第五列

P   Q   TR  YR  TD YD
2 b c d c d
2 b c d e f
9 a e f c d
9 a e f e f
2 b e f c d
2 b e f e f
9 a d e c d
9 a d e c f
7 g e f c d
7 g e f e f
7 g c d c d
7 g c d e f

由题目条件:

P Q Y
2 b d
9 a f
2 b f
7 g d
7 g f

(5)R5=R/D

首先总结一下关系除法的计算方法:

如有R,S如下:

R:

A B C D
2 1 a c
2 2 a d
3 2 b d
3 2 b c
2 1 b d

S:

C D E
a c 5
a c 2
b d 6

上面颜色已标出,S中的CD去R中对应的CD中找,找到相同的行,此时可以看到有3行相同的,分别是 第一行,第三行,第五行,

然后可以看到,CD中的 a,c和b,d列有两个相同的AB列,2,1,而 CD中对应的b,d却只有3,2,所以所除的结果是:

A B
2 1

由以上方法,可以得第五题的解是:

P Q
2 b
7 g

计算题举例2:

设教学数据库由三个关系: S(S#,SNAME,AGE,SEX)

SC(S#,C#,GRADE)

C(C#,CNAME,TEACHER)

使用关系代数式表达下列查询:

(1)查找学号为s3的学生所学的课程名和任课教师名;

解答:πcname,teacher(σsname=‘s3‘(s|x|c))

(2)查找姓名为WANG学生不学的课程的课程号

解答:πc#(c)-πc#(σsname=’WANG‘,(s|x|c))

(3)查找女同学选修的课程名和任课教师名

解答:πsname,cname,teacher(σsex=’女‘,c#(c)=c#(sc),s#(s)=s#(sc),(s|x|c))

第三章:关系DB的标准语言SQL

1.传统的关系模型中的术语与SQL中的术语存在如下对应关系,关系模式在SQL中称为”基本表“,存储模式称为”存储文件“,子模式称为”视图“

2.视图是一个虚表,它是一个从”一个或几个基本表中选定某些记录或列“中导出的表

3.Select语句中,”where“子句用于选择满足给定条件的元组,使用”Group By“子句可按指定的列的值分组,同时使用”HAVING“子句提取满足条件的元组

4.SQL语言的数据定义功能包括”定义基本表,定义视图和定义索引“

5.SQL语言有两种使用方式,分别是”独立的交互使用方式和嵌入到高级语言方式“

计算题举例:

已知DBS中包含了三个基本表goods(G#,gname,price,type,fact)其中商品表中,G#,gname,商品名,price:单价,type:型号,fact:制造商,商场基本表:

shops(s#,sname,addr,manag)其中分别为:商场号,商场名,地址,经理名,基本销售表:SALES(S#,G#,QTY)QTY为数量

1.试用SQL语句完成下列查询

(1)查询所有电视机的生产厂商,型号,单价

select fact,type,price from goods where gname=‘电视机‘;

(2)查询同时生产电视机和电冰箱的制造商

select fact from goods where goods.gname=‘电冰箱‘ and goods.gname=‘电视机‘

(3)查询”吉利“商场所销售的各种商品的商品号和数量

select g#,qty from sales where s# in(select s# from shops where sname=‘吉利‘);

(4)查询销售量最高的商场号和所销售的商品号

select sales.s#,g# from sales where sales.qty=(select max(qty) from sales);

2.试用SQL对基本表做创建和更新操作

(1)创建基本表Goods(类型,长度自定)

create table goods(g# in not null indentity(1,1) primary key,

gname varchar(20) not null,

price numeric(18,0),

fact varchar(20) not null);

(2)将华南厂所有的商品名称,型号和单价插到一个已存在的基本表A(gn,gtype,price)中

insert into A (gn,gtype,price) select gname,type,price from goods where gname=‘华南厂‘

(3)将总销量低于1000的所有商品的价格降低10%

update goods set price=price*0.9 where g# in(select g# from (select g#,sum(qty) from sales group by g# having sum(qty)<1000))

第四章 关系数据库设计理论

1.当B属性依赖于A属性时,属性A与B的联系类型是 : ”多对一或一对一“

2.关系DB规范化是为了解决关系DB中”数据冗余,更新异常“问题而引入的

3.将一个关系模式规分解成多个关系模式时,为了保持原模式所满足的特性,要求分解具有”无损连接性和保持函数依赖性“

4.已知关系如下图所示:

R:

A D E
a1 d1 e2
a2 d6 e2
a3 d4 e3
a4 d4 e4

(1) R中的函数依赖是否成立 :

1).A->D  (成立)

2)AD->E( 成立)

3)DE->A(成立)

(2)R的候选关键字为 A,DE

这里复习下候选关键字的求法:

L,R,LR类属性, L累属性都是候选关键字,LR类属性中,可以多个组合,如果能够决定全部,则是候选关键字

(3)R属于"BCNF"范式

"左部决定因素都是R的超关键字"

解答题举例1:

指出下列关系模式最高是第几范式?并说明理由

(1)R(X,Y,Z),F={XY->Z}

解答:

考察F,X,Y是L类属性,(XY+)=XYZ,所以 XY是R的唯一Key,在F中只有一个FD,且左部包含Key,所以是BCNF.

(2)R(X,Y,Z),F={Y->Z,XZ->Y}

解答:

L类属性: X

LR类属性:Y,Z

由于 X+=X, (XY+)=XYZ

即XY是R的一个Key

XZ是R的另一个Key,

所以X,Y,Z都是主属性,所以∈3NF

解答题举例2:

设关系R如下:

课程名 教师名 教师地址
C1 马千里 D1
C2 于得水 D1
C3 余块 D2
C4 于得水 D1

请问:1)R为第几范式,为什么?

解答:

由表:1.课程名->教师名 ,2. 课程名->教师地址 ,3. 教师名->教师地址,由1,2,R的key :课程名

非主属性对单主属性不存在依赖

又因为教师名 不决定课程名,所以 课程名部分决定教师地址  所以R∈3NF

(2)是否存在删除异常?若存在,则说明在什么情况下发生?

存在,当删除教师,教师对应的课程也将被删除,存在删除异常

课程名 教师名
C1 马千里
C2 于得水
C3 余块
C4 于得水
教师名 教师地址
马千里 D1
于得水 D1
余块 D2
于得水 D1

将R分解为如上两个表即可解决问题

解答题举例3

设有关系模式R(U,F1),其中,U={E,F,G,H}

F1={E->G,G->E,F->EG,H->EG,FH->E}

(1)求F的最小依赖集

解答:

1).单一化: F1={E->G,G->E,F->E,F->G,H->E,H->G,FH->E}

2).去掉多余属性

考察FH->E,F+=FEG,H多余,即F->E

3).去掉多余FD,

F->E由E->G,F->G推得多余,

H->E由H->G,G-E推得多余

所以F‘={E->G,G->E,F->G,H-G}

(2)求R的候选关键字

解答:

L:H,F   所以(FH+)=EGFH

(3)将R分解成满足3NF,且具有无损连接性,保持函数依赖

ρ1={(EG),(FG),(HG)}

判断ρ1是否具有无损连接性,使用判定表,判定出有损,

ρ2=ρ1∪{FH}

={(EG),(FG),(HG),(FH)}

下面总结下无损连接的判定:

步骤:

设有关系模式R(A1,A2,A3,.....An) 和 FD集, 及R的一个分解 ρ={R1,R2,...Rk}

a.构造一张k行n列的判定表

每一列对应一个属性Ai(1<=j<=n),每一行对应一个分解的模式Ri(1<=i<=k);若Aj∈Ri,则在第i行与第j列交叉处填入符号aj,否则填入bij

b.反复利用F中的每个FD,修改表中元素,知道不能修改为止

c.如果发现表中某一行变成了a1,a2,.....ak.则是无损分解

否则是有损分解

举例:

无损分解判定法:

设有关系模式R(A,B,C,D),R被分解成ρ={AB,BC,CD} 若R上成立的FD集F1={B->A,C->D} 那么ρ相对F1是否具有无损分解?

ρ的初始判定表:

Ri A B C D
AB(分解模式) a1(A∈AB所以是a1) a2 b13 b14
BC(分解模式) b21(A?BC所以是b21) a2 a3 b24
CD(分解模式) b31(A?CD所以是b32) b41 a3 a4

B,C,D列中同理

又B决定A, C决定D,所以需要将 A中的 b21修改为 a2以与B保持一致,其他同理可得 (颜色已标出)

改完后:

Ri A B C D
AB(分解模式) a1 a2 b13 b14
BC(分解模式) a1 a2 a3 a4
CD(分解模式) b31 b41 a3 a4

发现: 第二行中 有完整的 a1,a2,a3,a4  所以说是无损分解!

数据库系统原理及其应用总结---ShinePans

时间: 2024-10-12 13:17:48

数据库系统原理及其应用总结---ShinePans的相关文章

Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx

1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 1.4. 聚合运算2 1.5. 索引btree,hash 全文哦2 1.6. 并发控制与lock2 1.7. Acid数据库完整性2 1.8. 关系模型2 1.9. 事务管理2 1.10. :1NF.2NF.3NF和BCNF 2 2. 参考数据库系统导论 (豆瓣).html2 3. 数据挖掘--概念与技术>.3 4. <数据库系统概念(原书第6版)(数据库系统方面的经典教材,被国外

数据库系统原理之第一章数据系统基本概念总结 .

昨天,听了米老师的讲课之后突然对原本"晕晕乎乎"的数据库有了新的认识,以下便是听了米老师的讲解之后又结合我自己的理解和小童师姐的帮助下对<数据库系统原理>第一章的认识:     首先,将第一章分了三大类:数据.DBMS.DBS:     其次,数据中包括阶段.描述.级别:DBMS大体分为模式和功能两类:DBS又分为组成和结构:     详细请参见导图: (有认识不到位或做的不好的地方还请多多指出 http://weibo.com/p/10016037514362268467

数据库系统原理设计--论坛系统

论坛信息管理系统 摘要:随着科学技术的发展,基本上全部的具有一定数量数据的机构都 開始使用计算机数据库来管理.现现在网络盛行,BBS 论坛已成为人们生活 中的一种信息交流渠道,它通过在计算机上执行服务软件.同意用户使用终端 程序通过电话调制解调器拨号或者 Internet 来进行连接,运行下载数据或程 序.上传数据.阅读新闻.与其它用户交换消息等功能. 本文主要介绍利用 SQL Sever 2008 作为设计工具,理解并运用课程中关 于数据库设计的相关理论,依照设计流程要求完毕完整的论坛信息管理

数据库系统原理 片段翻译

RT,为了提高自己在数据库方面的知ci识hui储备,我决定做一点翻译,用作练习. 第一部分 导论 数据库管理系统(DBMS)是相互关联的数据的集合以及一套用于访问那些数据的程序.数据集合,通常指的是数据库,包含和企业相关的数据.DBMS的基本目标是提供既方便又高效的存储和检索数据库信息的方式. 数据库管理系统被设计用来管理大量的信息.数据的管理涉及到定义信息的存储结构和提供操作数据的机制.此外,数据库系统必须确保数据存储的安全,即便是在系统崩溃或者尝试未授权访问的情况下.如果数据在几个用户间共享

数据库系统原理(第6章:数据库安全与保护)

一.数据库完整性 数据库完整性是指数据库中数据的正确性和相容性. 完整性约束条件的作用对象 列级约束: 包括对列的类型.取值范围.精度等的约束 元组约束: 指元组中各个字段之间的相互约束 表级约束: 指若干元组.关系之间的联系的约束 定义与实现完整性约束:实体完整性 .参照完整性. 用户定义的完整性 **************************实体完整性************************** 实体完整性 :在MySQL中,实体完整性是通过主键约束和候选键约束实现的. 主键列

关系模式设计理论 - 数据库系统原理

模式设计理论主要包括三方面的内容:数据依赖.范式.模式设计方法.数据依赖研究数据之间的联系,起着核心的作用:范式是关系模式的标准:模式设计方法是自动化设计的基础. 关系模式的设计准则 关系模式的冗余和异常 关系模式的冗余指数据冗余.数据冗余 指同一个数据在系统中多次重复出现,这一直是影响系统性能的大问题.在文件系统中由于文件之间没有联系,一个数据会在多个文件中出现.数据库系统克服了文件系统的这种缺陷. 由于数据冗余,对数据操作时就会引起各种异常:修改异常.插入异常.删除异常.例如,关系模式 R(

PowerBuilder 简介及应用 - 数据库系统原理

PowerBuilder 是一种企业级数据库前端应用和多层体系结构开发工具,友好的用户界面,功能强大的数据窗口,是一个集成开发环境. PB 的特点 采用面向对象的编程方法和事件驱动的工作原理. 支持跨平台开发,具有开放的数据库连接系统. 无须记住各种语句格式即可轻松编写语句,PB 提供了几乎所有常用的编程语句模版,可以轻松快速插入各种语句. 人性化设计,为用户提供方便快捷的语句块剪切板工具,大大提高了程序员的编程效率. 独特的库文件画板和层次清晰的系统资源树. 系统提供 11 种不同"显示风格&

【自考】数据库系统原理——详解(第一章)

还记得当初第一遍看这本书的时候,很混乱,尤其是三四章,对这本书的理解不是很好,只是画了两张流程图,不敢贴出来,现在贴出来吧,希望能够得到大家的指导. 下面这篇博客的主题主要是讲第一章: 经过米老师那天一上午的讲解之后,对这本书不再产生惧怕,听米老师讲觉得它很简单,不过事实就是它很简单.下面我们就来看一下它到底有多简单吧! 本章主要讲的是一些基本概念,虽然基本概念枯燥,但它却涵盖了整本书的内容,本章节主要讲了两大类:数据和数据库.数据包括,数据管理技术的发展,数据的描述到抽象.数据库包括,数据库系

数据库设计与 ER 模型 - 数据库系统原理

数据库系统生存周期 数据库应用系统的开发是一项软件工程,一般具有信息的采集.组织.加工.抽取.综合.传播等功能,但又有自己的特点,所以称为 数据库工程. 数据库应用系统从开始规划.设计.实现.维护到最后被新的系统取代而停止使用的整个周期,称为 数据库系统生存期. 数据库系统生存期一般可划分成下面七个阶段: (1)规划:是数据库系统生存周期的第一步.在规划阶段需要做的工作是:通过了解用户的实际需求,明确该系统需要实现的目标和任务,确定数据库系统的总目标. 规划阶段需要做的工作有: a. 系统的调查