数据库原理及考试复习大纲整理Word下载.docx
- 文档编号:18828953
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:29
- 大小:243.93KB
数据库原理及考试复习大纲整理Word下载.docx
《数据库原理及考试复习大纲整理Word下载.docx》由会员分享,可在线阅读,更多相关《数据库原理及考试复习大纲整理Word下载.docx(29页珍藏版)》请在冰豆网上搜索。
2不同的列可来自同一域,每列必须有不同的属性名。
如P={t1,t2,s1,s2,s3},C={c1,c2},则TEACH不能写成TEACH(P,P,C),还
应写成TEACH(T,S,C)。
3行列的顺序无关紧要。
4任意两个元组不能完全相同(集合内不能有相同的两个元素)。
5每一分量必须是不可再分的
玻璃清洗机
昆山搬家公司数据。
满足这一条件的关系称作满足第一范式(1NF)的。
关系语言的特点、过程化语言比非过程化语言的差别
用户只需提出“做什么”,无须说明“怎么做”为非过程语言
关系演算和SQL是非过程化的,关系代数是过程化的。
关系模式和关系实例的关系
模式是数据库的结构。
实例是数据库在特定时刻的内容(数据集合)。
模式与实例是两个对立的概念。
a)模式强调结构,例如表有哪些字段。
b)实例强调内容,例如表有哪些记录。
c)动态vs静态:
对于一个数据库,它的结构(模式)相对稳定,而内容(实例)则会随时间而变化。
关系模式:
关系的结构,如student(student-no,name,sex)
关系实例:
在某一特定时刻上关系的内容,如
student-no
name
sex
1
Jones
Male
2
Smith
比较:
关系模式比较稳定,很少变化;
关系实例随时间而变化,原因是实例中的元组不断
插入/删除/更新。
关系代数中选择、投影、连接的含义
选择:
在关系R中
减肥产品排行榜
迷宗蟹选择满足给定条件的元组(从行的角度)F(R)={t|tRF(t)}
F是选择的条件,tR,F(t)要么为真,要么为假
F的形式:
由逻辑运算符连接算术表达式而成
逻辑表达式:
,,
算术表达式:
XY
X,Y是属性名、常量、或简单函数
是比较算符,{,,,,,≠}
举例:
AGE≥20∧SEX=‘男’(S)
投影:
从关系R中取若干列组成新的关系(从列的角度)A(R)={t[A]|tR},AR
投影的结果中要去掉相同的行
SN,AGE(S)
连接:
从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组
A,B为R和S上度数相等且可比的属性列,为算术比较符,为等号时称为等值连接
自然连接:
从两个关系的广义
银杏树
防锈油笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的行
关系代数(选择、投影、连接、更名、差集)表达查询(选择条件左边的数字)
并运算:
蹭网卡
热血江湖外挂所有至少出现在两个关系中之一的元组集合RS={r|rRrS}(R和
S必须是相容的)
举例:
∏S#(C#=’01’(SC))∪∏S#(C#=’02’(SC))
差运算:
所有出现在一个关系而不在另一关系中的元组集合RS={r|rRrS}(R
和S必须是相容的)
∏S#(C#=’01’(SC))-∏S#(C#=’02’(SC))
笛卡尔积:
两个关系R/S,其度分别为n/m,则它们的笛卡尔积是所有这样的元组集合:
元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组
RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积
更名运算:
给一个关系表达式赋予名字
x(E)返回表达式E的结果,并把名字x赋给E
x(A1,A2,,An)(E)返回表达式E的结果,并把名字x赋给E,同时将各属
性更名为A1,A2,,An
∏S.姓名(R.成绩S.成www.ks-
将军牌钻孔机www.chinashin-绩R.课程=‘数学’S.课程=‘数学’R.姓名=‘王红’(RS(R))
交运算:
所有同时出现在两个关系中的元组集合RS={r|rRrS}
∏S#(C#=’01’(SC))∩∏S#(C#=’02’(SC))
除运算:
包含短语“对所有的”的查询
rs的含义:
设r(R)和s(S)为两个关系,且RS。
则rs为R-S上的关系,假如对于s上所有的元组ts存在一个t[R-S],使得该t[R-S],ts为r上的元组,则该t[R-S]为rs上的元组。
rs=
∏R-S(r)-∏R-S((∏R-S(r)s)-∏R-S,S(r))
赋值运算:
temp1X(R)
temp2X(temp1Y(S)R)
resulttemp1temp2
广义投影:
F1,F2,…,Fn(E)(F1,F2,…,Fn是算术表达式)
P#,SAL*5/100(PROF)
聚集函数:
一般形式:
G1,G2,...,GnGF1A1,F2A2,…,FmAm(E)
Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。
S#GsumSCORE,avgSCORE(SC)
种类:
sum(求和)/avg(求平均)/count(计数)/max(求最大值)/min(求最小值)
去除重复:
如果想去除重复值,可以用连接符‘-’将‘distinct’附加在聚集函数名后,如count-distinctP#(PC)
自然连接运算在两边关系没有同名属性情况下相当于笛卡儿积
关系的外连接方法
左外连接=自然连接+左侧表中失配的元组
右外连接=自然连接+右侧表中失配的元组
全外连接=自然连接+两侧表中失配的元组
其中失配的元组用NULL来匹配,符号见课本P38
*插入、删除、更新:
用赋值操作
SQL语言的特点
a)1.一体化
i.功能一体化:
提供数据定义、操纵和控制功能,集DDL、DML和DCL等语言于一体
ii.操作对象单一化:
都是对关系进行操作
b)2.高度非过程化
i.用户只需提出“做什么”,而无须说明“怎么做”,不必介入具体的操作实现过程
c)3.面向集合的操作方式
i.一次一集合:
每次操作的对象和结果都是关系(记录集合)
ii.与之相反的是“一次一记录”:
每次操作只能处理一条记录,要通过循环等手段才能处理一个记录集合
d)4.两种使用方式,统一的语法结构
i.自含式SQL:
数据库管理系统自带,供用户与数据库联机交互使用。
ii.嵌入式SQL:
嵌入到高级语言里面,供程序员开发程序时使用。
e)5.语言简洁,易学易用
交互式与嵌入式SQL的差别
在终端交互方式下独立使用的SQL称为交互式SQL
嵌入到程序设计语言中(即宿主语言)使用的SQL称为嵌入式SQL
SQL的主要功能,这些功能由哪些语句实现
SQL功能
操作语句
备注
数据定义
CREATE,ALTER,DROP
数据查询
SELECT
数据查询与数据修改又合并称为数据操纵
数据修改
INSERT,UPDATE,DELETE
数据控制
GRANT,REVOKE,……
空值及含空值表达式的处理方法(语句)
空值测试is[not]null
除is[not]null之外,空值不满足任何查找条件
如果null参与算术运算,则该算术表达式的值为null
如果null参与比较运算,则结果可视为false。
在SQL-92中可看成unknown
如果null参与聚集运算,则除count(*)之外其它聚集函数都忽略null
聚集函数对空值和重复值的处理
除了count(*)之外,其他的聚合函数都是忽略空值的
可以使用all关键字指明对所选列中的所有数据进行处理,使用distinct关键字指明对所选列中的非重值数据进行处理
SQL查询
(Like实现模糊查询|选择、投影、连接|不在NOTIN|更名运算、前缀|子查询|事务的定义|带子查询的插入删除操作)
Like实现模糊查询:
列名[not]like“字符串”找出满足给定匹配条件的字符串
其中:
%匹配零个或多个字符;
_匹配任意单个字符;
escape定义转义字符,如如escape“\”
则可用\%去匹配%.
列产品编号中含有4个字符以上,且倒数第3个字符是d,倒数第2个字符是_的产品的所有信息
select*
fromPRODUCT
whereP#like‘%_d\__’ESCAPE’\’
选择、投影、连接
Where(相当于选择运算):
whereSALbetween2500and2800
Select(相当于投影):
缺省为保留重复元组,也可用关键字all显式指明。
若要去掉重复元组,可用关键字distinct或unique指明
From(相当于笛卡尔积):
当目标列取自多个表时,在不混淆的情况下可以不用显式指明来自哪个关系,否则必须加上关系名作为前缀
notin(不在):
判断表达式的值是否在子查询的结果中,格式为
表达式[not]in(子查询)
更名运算、前缀:
old_nameasnew_name
1selectPNAME,SAL0.05astaxi,SAL*0.95asincoming
2selectP1.PNAME,P1.SAL
FromPROFasP1,PROFasP2,DEPT
子查询
in子查询(集合成员资格)
some/all子查询:
表达式比较运算符some(子查询)
表达式的值至少与子查询结果中的一个值相比满足比较运算符
表达式比较运算符all(子查询)
表达式的值与子查询结果中的所有的值相比都满足比较运算符
[not]exists(子查询)
判断子查询的结果集合中是否有任何元组存在
[not]unique(子查询)
如果子查询结果中没有重复元组,则返回true
事务的定义:
事务有查询个更新语句序列组成
事务的开始:
Begintransaction
事务的提交:
commitwork,将该事务所做的更新在数据库中持久保存
事务的回滚:
rollbackwork,撤销该事务中所有SQl语句对数据库的更新
带子查询的插入删除操作
1insertintoaccount
selectloan_num,branch_name,200
fromloan
wherebranch_name=’Perryridge’
2deletefromaccount
wherebranch_namein(selectbranch_name
frombranch
wherebranch_city=’NewYork’)
关系的外部码约束的三种形式:
CASCADE、RESTRICT、SETNULL
CASCADE:
从父表删除或更新且自动删除或更新子表中匹配的行
SET
NULL:
从父表删除或更新行,并设置子表中的外键列为NULL
RESTRICT:
拒绝对父表的删除或更新操作
视图的定义:
视图是命名的、从基本表中导出的虚表,它在物理上并不存在,存在的只是它
的定义,视图中的数据是从基本表中导出的,每次对视图查询都要重新计算,视图之上可以再
定义视图.
创建视图createviewvas<
查询表达式>
,删除视图dropviewv
物化视图(实化视图):
视图的计算结果被实际存储起来物化
视图可以看成是数据库的cache查询物化
视图比重新计算视图要快许多,需要进行物化
物化视图是将视图在某个时刻的内容保存起来,有真正的存储数据。
视图的本质是:
有名字的查询
视图的优点:
简化用户的操作
对于同一数据,不同用户可以从不同角度观察
增强安全性
提供模式(逻辑模式)/外模式(子模式)映射和逻辑独立性
三类完整性的含义及要求(哪些插入删除是不允许的)
实体完整性
a)规则:
元组在主码的每个属性上取唯一值,且不能为空
b)意义:
在实体映射为元组后,靠主码区分不同的元组/实体。
保证每一元组/实体,可与其它元组/实体是可区分的。
参照完整性
c)规则:
如果关系R的外部码对应关系S的主码,则R每个元组在外部码上的取值必须满足:
i.要么等于空值
ii.要么等于某个对应的主码值(S某个元组的主码值)
d)意义:
元组/实体的外部码,说明跟另外哪一个元组/实体(的主码)相联系的。
保证这一联系有意义,不会联系不存在的元组/实体。
用户定义完整性
e)规则:
用户根据具体的应用环境定义
i.例如
1.年龄的取值范围为0到200,性别只能是“男”或“女”
2.职工编号是4位整数
f)意义:
i.保证元组/实体的属性取值是合理的,反映现实世界的真实情况
反映了程序编制的要求
SQl定义约束(见下面)
数据库安全性和完整性措施含义,及包含的内容
实体完整性:
关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的。
参照完整性:
如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值,或者为空值。
意义:
如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在。
用户定义的完整性:
用户针对具体的应用环境定义的完整性约束条件。
安全性控制保护数据库以防止不合法的使用所造成的数据泄露和破坏。
其基本措施是存取控制
●物理级
●人际级
●操作系统级
●网络级
●数据库系统级
●授权命令:
grant表级权限on{表名|视图名}to{用户[,用户]…|public}
[withgrantoption]
●回收权限:
revoke表级权限on{表名|视图名}from{用户[,用户]…|public}
完整性(数据的正确性和相容性)措施包括:
●完整性检查:
DBMS必须提供一种机制来检查数据库中的数据是否满足规定的条件,以保证数据库中数据是正确的,避免非法的不合语义的错误数据的输入和输出所造成的无效操作和错误结果
●完整性子系统功能:
监督事务执行,检查是否违反完整性规则,如有违反现象,采取相应措施(拒绝、报告、改正)。
●完整性规则:
完整性规则集、规则的构成、规则的分类
●四种约束:
主码约束、外码约束、属性值上的约束、全局约束
●主码约束:
S#CHAR(4)PRIMARYKEY
●外码约束:
FOREIGNKEY(S#)REFERENCESS(S#)[ONUPDATE[CASCADE|SETNULL]]
●非空约束:
SNAMECHAR(8)NOTNULL
●基于属性的检查子句:
CHECK(AGE>
15)
●域约束子句
●全局约束:
全局约束涉及多个属性间的或多个关系间的联系
数据库设计的阶段以及每个阶段的工作
第一阶段:
用户需求分析
●与应用领域专家,数据库用户广泛地交流,获得用户预期的数据和功能需求
●结果:
得到用户需求说明
第二阶段:
概念设计
●将用户需求转化为选定的某种概念模型(常见是E-R模型)
得到数据库的概念模式
第三阶段:
逻辑设计
●将概念模式转化为选定的某种数据模型(常见是关系模型)
得到数据库的逻辑模式
第四阶段:
物理设计
●在上阶段得到逻辑模式的基础上,补充定义数据库的物理特征。
比如内部存储结构,文件组织方式等
得到数据库的物理模式
第五阶段:
数据库实施
第六阶段:
数据库运行和维护
实体、联系、域的概念
实体:
现实世界中可区别于其他对象的”事务”或”对象”.
*实体集:
相同类型的实体集合
*属性:
实体集中每个成员所拥有的描述性性质.
联系:
是指多个实体间的互相关联.
*联系集:
同类联系的集合.
域:
属性的取值范围
能绘制E-R
实体集:
矩形
属性:
椭圆
联系集:
菱形
实体集连接联系集或属性连接实体集:
线段
多值属性:
双椭圆
派生属性:
虚椭圆
表示一个实体集全部参与到一个联系集:
双线
*弱实体集(没有足够的属性形成主码):
双矩形
什么时候需要标注实体集的角色?
a)如果实体集仅参与联系集一次,那么它只有一个角色且隐含在名字中,不用特别说明
b)如果实体集参与联系集两次或以上,那么相应地,它有两个或以上的角色。
这时单靠实体的名字无法区分这些角色,需要单独说明每次以什么角色参与
*映射基数
一对一映射:
一对多映射:
多对多映射:
E-R模型转化成关系模式的方法,能分析出主码、外码
强实体集:
loan=(loan_number,amount)加下划线的为主码。
●对于多对多的二元联系,主码是参与实体集的主码属性的并集。
●对于一对一的二元联系集,任何一个参与实体集的主码都可以作为联系的主码。
●对于一对多的二元联系集,主码应该是联系集中”多”那一边的实体集的主码。
●对于n元联系集,如果连接到它的边中没有箭头,则主码是所有参与实体集的主码属性的并集。
●对于n元联系集,如果连接到它的边中有一个箭头,则除去”箭头”那一边的实体集的主码属性,其他参与实体集的主码属性的并集为联系的主码。
对于每个与联系集R相关的实体集Ei,建立一个关系R上的外码约束,该约束表明R中来自Ei主码属性的那些属性参照关系Ei的主码。
现有实体集A、B以及从A到B的多对一的联系集AB,若A在该联系里是完全参与的,则可以将A和AB的模式合并为一个包含了两个模式所有属性的并集的模式。
其主码是A的主码。
在一对一联系的情况下,联系集的关系模式可以跟参与联系的任何一个实体集的模式进行合并。
复合属性、派生属性、多值属性及处理转换方法
复合属性:
可以划分为更小的属性,将每个组合属性作为复合属性所在实体的属性.
如:
实体集有属性学号/生日/姓名,其中生日为复合属性,生日由年/月/日组成,则转换为:
学生(学号,姓名,年,月,日)。
某个特定的实体在该属性上的有多于一个的取值.多值属性的转换:
新的关系+所在实体的码.实体集有属性学号/选课/姓名,其中选课为多值属性,则转换时建立新的联系集”选课(学号,所选课程号)”来表示多值属性。
派生:
可以从其他相关的属性或实体派生出来的属性值。
一对多联系:
将单方参与一方实体的码作为多方参与实体的属性。
多对多联系:
将联系定义为新的关系,属性为参与双方的码。
一对一联系:
若联系双方均部分参与,则将联系定义为一个新的关系,属性为参与双方的码。
若联系一方全部参与,则将联系另一方的码作为全部参与一方的属性。
平凡的函数依赖、部分函数依赖、传递函数依赖
函数依赖:
设R(U)是属性集U上的关系模式,X,YU,r是R(U)上的任意一个关系,如果成立对t,sr,若t[X]=s[X],则t[Y]=s[Y]
那么称“X函数决定Y”,或“Y函数依赖于X”,记作XY
称X为决定因素
如学号姓名,(学号,课程号)成绩
两个概念:
满足依赖的关系:
依赖在模式的某个关系实例上成立
模式上成立的依赖:
依赖在模式的所有关系实例上都成立
平凡函数依赖(在所有的关系上都是满足的):
如果XY,但YX,则称其为非平凡的函数依赖,否则称为平凡的函数依赖
如(学号,姓名)姓名是平凡的函数依赖
完全函数依赖:
其中S#为学号,C#为课程号,G为成绩,SN为姓名
传递函数依赖:
不良依赖可能产生的问题
->
信息的不可表示问题:
插入异常:
如果没有职工具有8级工资,则8级工资的工资数额就难以插入。
删除异常:
如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。
信息的冗余问题:
数据冗余:
职工很多,工资级别有限,每一级别的工资数额反复存储多次。
更新异常:
如果将5级工资的工资数额调为2620,则需要找到每个具有5级工资的职工,逐一修改。
超码、候选码、主码的概念
超码:
能唯一标识一个元组的一组属性
候选码:
关系中的一个属性组,其值能唯一标识一个元组。
若从中去掉任何一个属性,就
不具有这一性质了,该属性组称候选码(任何一个候选码中的属性称作主属性)
主码:
进行数据库设计时,从一个关系的多个候选码中选定一个作为主码
*外码:
关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称
这个属性组为R的外部码
会根据函数依赖集求候选码
属性集的闭包如果包含本关系的所有属性,则是超码。
在符合是超码的情况下,如果该属性集的任意一个真子集的闭包都没有包含所有属性,则是候选码。
超码():
设K为R<
U,F>
的属性或属性组,若KU,则称K为R的超码
的超
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 考试 复习 大纲 整理