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

第一章  数据库概论


1.在数据库管理技术的发展过程中,数据库独立性最高的是“ 数据库系统”阶段
2.三大经典的数据结构模型是“ 关系,层次和网状模型
3.单个用户使用的数据视图的描写叙述,称为“ 外模式”,它是用户与DBS的接口
4.DB中,数据的逻辑独立性是指“ 概念模式改变,外模式与应用程序不变
5.通过指针链表来表示实体间联系的模型是“ 网状和层次模型

6.DB的体系结构分成三层,各自是“ 逻辑模式,内模式,外模式
7.DBMS的主要功能有“ 数据库定义功能,数据库的操纵功能和数据库的执行管理”,DB维护和组织存储管理及数据通信接口等
8.组成数据模型的三大要素是“ 数据结构,数据操作,数据完整性约束规则
9.DBMS包含的主要程序“ 数据库定义语言及编译处理程序,数据操纵语言及编译程序,数据库执行控制程序,实时维护管理程序

第二章 关系数据库

1.在关系模式中,“ 关系的主keyword的值不能为空
2.关系代数的物种基本操作为“ 并,差,笛卡尔积,投影和选择
3.设关系R(A,B,C)和S(B,C,D),则“ 能够有R连接S,R与S的笛卡尔积,可是R不能够并S,由于属性数目不同
4.在关系代数中,对一个关系作投影操作后,新关系的元祖个数“ 小于或等于”原来的关系的元祖个数
5.当属性“年龄”值为1000时,该数据受到了“ 用户定义完整性”破坏
          实体完整性:主keyword不能取空值  用户完定义完整性:取值范围  參照完整性:不引用不存在的实体

6.关系的元数指” 属性的个数“,关系的基数指” 元组的个数“,能唯一标识元组的属性集,而无多余属性,该属性集称为” 候选keyword
7.关系模型的三类完整性规则包含:” 实体完整性,參照完整性,用户定义完整性
8.在关系代数的运算中,专门的关系代数运算有:” 选择(σ),投影(Π)连接(|x|)除(÷)
9.θ连接操作是由关系代数的” 选择和笛卡尔积“操作组合而成的
10.关系代数是用代数对关系的运算来表达查询的,而关系演算是用” 谓词形式“表达查询的,它们分为” 元组关系演算和域关系演算“两种

    计算题举例1:

    已知关系R,W,D如图所看到的:

 R:                                                                                                                                    
PQTY
2bcd
9aef
2bef
9ade
7gef
7gcd
W:
TYB
cdm
cdn
dfn
D:
TY
cd
ef

(1)R1=π Y,T(R)   
   解答: 注意:没有同样的元组:
YT
dc
fe
ed
(2)R2= σP>5^T=e(R)
 解答: 要求R中 P列的元素大于5且T列中的元素等于e:
PQTY
qaef
7gef
(3)R3=R|x|W
 解答: 连接R与W,要求列同样才干够连接,结果例如以下
PQTYB
2bcdm
2bcdn
7gcdm
7gcdn
(4)R4=Π[2],[1],[6](σ[3]=[5](RxD))
解答: R与D达卡尔积计算后:  筛选 出 第二列,第一列和第六列 ,而且第三列等于第五列
P  Q  TR YR TDYD
2bcdcd
2bcdef
9aefcd
9aefef
2befcd
2befef
9adecd
9adecf
7gefcd
7gefef
7gcdcd
7gcdef
由题目条件:
PQY
2bd
9af
2bf
7gd
7gf
(5)R5=R/D
首先总结一下关系除法的计算方法:
如有R,S例如以下:
R:
ABCD
21ac
22ad
32bd
32bc
21bd
S:
CDE
ac5
ac2
bd6

上面颜色已标出,S中的CD去R中相应的CD中找,找到同样的行,此时能够看到有3行同样的,各自是 第一行,第三行,第五行,
然后能够看到,CD中的 a,c和b,d列有两个同样的AB列,2,1,而 CD中相应的b,d却仅仅有3,2,所以所除的结果是:
AB
21

由以上方法,能够得第五题的解是:
PQ
2b
7g

计算题举例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:
ADE
a1d1e2
a2d6e2
a3d4e3
a4d4e4

(1) R中的函数依赖是否成立 :
      1).A->D  ( 成立)
      2)AD->E( 成立)  
      3)DE->A( 成立)
(2)R的候选keyword为 A,DE 
这里复习下候选keyword的求法:

L,R,LR类属性, L累属性都是候选keyword,LR类属性中,可以多个组合,假设可以决定所有,则是候选keyword
(3)R属于" BCNF"范式

"左部决定因素都是R的超keyword"

解答题举例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的候选keyword
    解答:
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是否具有无损分解?

ρ的初始判定表:
RiABCD
AB(分解模式)a1(A∈AB所以是a1)a2b13b14
BC(分解模式)b21(A∉BC所以是b21)a2a3b24
CD(分解模式)b31(A∉CD所以是b32)b41a3a4

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

改完后:
RiABCD
AB(分解模式)a1a2b13b14
BC(分解模式)a1a2a3a4
CD(分解模式)b31b41a3a4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值