数据库复习资料Word格式.docx
《数据库复习资料Word格式.docx》由会员分享,可在线阅读,更多相关《数据库复习资料Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
关系模式:
关系名(属性1、属性2、….属性n)
7、数据库系统的三级模式结构:
外模式、模式和内模式。
其中决定DBMS功能的是模式。
模式:
逻辑模式,数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
外模式:
子模式或用户模式,数据库用户能看得见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的视图,是与某一应用有关的数据的逻辑表示
内模式:
存储模式,数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
8、数据库系统的二级映像:
外模式/模式映像、模式/内模式映像
模式转换时:
修改外模式/模式——逻辑独立性
存储结构改变时:
修改模式/内模式——物理独立性
9、数据的独立性包括:
逻辑独立性:
当模式改变时(增加新关系,新属性等),管理员对各个外模式/模式的映像做相应改变,可使外模式保持不变,应用程序依据数据库的外模式编写,应用程序不用修改。
是指用户的应用程序与数据的逻辑结构是相互独立的
物理独立性:
当存储结构改变(例如用了别的存储结构),管理员对模式/内模式映像做相应改变,可使模式保持不变。
是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
第二章
关系模型:
由1、关系数据结构;
2、关系操作集合;
3、关系完整性约束组成
1、关系操作的特点:
集合操作方式
关系操作:
查询(基本操作:
选择、投影、并、差、笛卡尔积)、插入、删除、修改
2、关系数据语言的种类:
1、关系代数语言;
2、关系演算语言;
3、SQL指令。
其中:
基于数学上两类运算是关系代数和关系演算
3、关系的三类完整性约束:
实体完整性约束、参照完整性约束和用户自定义完整性约束。
4、码、候选码、主属性和非主属性概念,能根据语义描述或图表如下图确定关系的码。
U
V
W
X
Y
1
2
3
4
6
7
5
5、三类关系:
基表、查询表、视图。
基表:
实际存在的表,是实际存储数据的逻辑表示
查询表:
查询结果对应的表
视图表:
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,视图的一切操作最终也要转换为对基本表的操作。
6、关系代数运算:
并(∪)、交(∩)、差(-)、广义的笛卡尔积(×
)、投影(π)、选择σ、连接(等值连接和自然连接(∞))和除(÷
)。
7、5种基本运算:
并、差、笛卡尔积、投影、选择
8、掌握用关系代数表示查询。
(课后作业P75页第5题)
投影(π):
从关系中选择若干属性列组成新的关系,从列角度进行运算
如:
查询学生姓名,所在系πsname,sdept(Student)
相当于:
selectsname,sdeptfromStudent
选择(σ):
在关系中选择满足给定条件的元组,从行的角度
查询年龄小于20的学生σsage<
20(Student)
select*fromStudentwheresage<
20
查询年龄小于20的学生姓名,所在系
πsname,sdept(σsage<
20(Student))
selectsname,sdeptfromStudentwheresage<
连接(∞):
1、等值连接:
选择相等的元组。
2、自然连接:
特殊的等值连接,去除重复列
同时从行和列的角度进行运算
查询至少选修一门数据库课程的学生姓名
πsname(πsno(σcname=’数据库’(course)∞SC)∞πsno,sname(Student))
selectsnamefromstudentwheresnoin(selectsnofromSCwherecno=(selectcnofromcoursewherecname=’数据库’))
除(÷
):
若有R(X,Y),S(Y,Z),则R÷
S=P(X),P(X)为有关X的集合,其中R中的Y和S中的Y属性名可不同,但必须出自相同的域集
A
B
C
a1
b1
c2
a2
b3
c7
a3
b4
c6
b2
c3
c1
关系R
D
d1
d2
关系S
R中A{a1,a2,a3}
a1的象集BC:
{(b1,c2),(b2,c3),(b2,c1)}
a2的象集BC:
{(b3,c7)}
a3的象集BC:
{(b4,c6),(b2,c1)}
S在BC的投影{(b1,c2),(b2,c1),(b2,c3)}
所以R÷
S={a1}
查询选修了全部课程的学生学号和姓名
πsno,cno(SC)÷
πcno(Course)∞πsno,sname(Student)
πcno(Course)选出了选修所有cno的学生学号,再和
πsno,sname(Student)自然连接
第三章
创建数据库:
createdatabaseStudenton
(name=’Student_data’,
filename=’D:
\Student.mdf’,
size=20,
filegrowth=10%
)
logon
(
name=’Student_log’,
\Student.mdl’,
size=10,
删除数据库:
dropdatabaseStudent
1、SQL(StructuredQueryLanguage)含义结构化查询语言
2、SQL语言功能数据定义CREATE、DROP、ALTER
数据查询SELECT
数据更新INSERT、UPDATE、DELETE
数据控制GRANT、REVOKE
3、定义和修改基本表(定义模式中的关系):
例:
创建:
createtablestudent
(
snochar(9)primarykey,
snamechar(20)notnull,
sexvarchar(10)check(sex=’男’orsex=’女’)
aavarchar(10)unique,
cnochar(4),
ddvarchar(10)default(‘1’),
foreignkey(cno)referencescourse(cno)[ondeletecascadeonupdatecascade]
//(snochar(9),cnochar(4)primarykey(sno,cno)
删除:
droptablestudent
修改:
修改列
添加列
添加约束
删除列
删除约束
4、SQL的数据更新(增、删、改)INSERT,DELETE,UPDATE
插入:
insertintostudent(sno,sex)values(‘1’,’男’)
insertintostudentvalues('
200215122'
'
刘晨'
女'
19,'
CS'
修改:
updatestudentsetsex=’女’wheresno=’11’
deletefromstudentwheresno=’111’
5、视图是从一个或几个基本表或视图中导出的表,是一个虚表。
数据库中只存在视图的定义不存在视图的数据。
createviewdd
as
select..from..where..
删除:
dropviewdd
修改:
updateddsetsname=’ss’wheresno=’11’
insertintoddvalues(相应列)
deletefromddwheresno=’11’
6、索引的类型:
聚簇索引Cluster、普通索引、唯一索引Unique
CREATE[UNIQUE][CLUSTER]INDEX索引名ON表名(列名)
定义索引(定义内模式):
unique:
表明此索引每个索引值只对应唯一的数据记录
cluster:
表示要建立的索引是聚簇索引——指索引项的顺序与表中记录物理顺序一致的索引组织。
经常更新列不宜用聚簇索引,在经常查询的列使用
create[unique][cluster]index索引名on..
dropindex索引名
7、数据查询
①消除取值重复的行distinct
②查询所有的属性列*
③指定查询条件用where
④关键字:
in、betweenand、notin、notbetweenand、isnull、isnotnull
⑤模糊查询:
通配符:
%代表0个或者多个字符,_代表单个字符
⑥排序:
orderby列名[asc|desc]
asc升序,desc降序默认升序
⑦集函数:
sum、count、avg、max、min
⑧分组查询:
groupbyhaving
例:
selectsnofromsc
groupbysno
havingcount(*)>
3
⑨连接查询、嵌套查询。
(课后作业P127第5题和实验作业:
:
实验3和实验4)
外连接:
selectsnamefromStudentleftoutjoinSConstudent.sno=SC.snowhere..
selectsnamefromstudentwhereexists(select*fromscwheresno=student.snoand.)
集合查询:
并union,交intersect,差except
8、select语句一般格式
select..
from..
[where..]
[groupby..[having..]]
[orderby..]
第四章
1、数据库安全性控制的常用方法
用户标识和鉴定、存取控制、视图机制(把视图权限给某人)、审计、数据加密
2、常用存取控制方法:
自主存取控制(DiscretionaryAccessControl,简称DAC)通过grant和revoke控制
强制存取控制(MandatoryAccessControl,简称MAC)
3、自主存取控制通过SQL的GRANT语句授权和REVOKE语句收回权限。
GRANT语句的一般格式:
GRANT<
权限>
[,<
]...
[ON<
对象类型>
<
对象名>
]
TO<
用户>
]...
[WITHGRANTOPTION];
WITHGRANTOPTION子句的作用是:
允许他再将此权限授予其他用户
grant权限on表/列/视图等to用户
grantselectonstudenttoxiaoming
grantallonStudenttoxiaoming
4、REVOKE语句的一般格式为:
REVOKE<
FROM<
]...;
revokeselectonstudentfromxiaoming
第五章
1、实体完整性约束。
通过定义主键来实现
2、参照完整性约束。
通过定义外键来实现
3、用户定义的完整性约束。
根据实际需要进行定义
4、实体完整性和参照完整性是关系的两个不变性
5、触发器的定义(要求会用SQLServer标准的SQL指令创建触发器)
对表的操作
Inserted逻辑表
Deleted逻辑表
增加记录(insert)
存放增加的记录
无
删除记录(delete)
存放被删除的记录
修改记录(update)
存放更新后的记录
存放更新前的记录
insteadof操作前,after操作后
createtriggertgr_name
ontable_name
forupdate...
[insteadofupdate/afterdelete]
Transact-SQL
createtriggertgonSCforinsert,update[,delete]
as
declare@snoaschar(9),@cnoaschar(3),@gradeasint
select@sno=sno,@cno=cno,@grade=gradefrominserted(deleted)
if(@snonotin(selectsnofromstudent))or(@cnonotin(selectcnofromcourse))
rollbacktransaction;
endif
droptriggertg
第六章
1、1NF、2NF、3NF的判定(掌握判定原则)及分解(掌握第六章PPT中3NF所举例题及练习题目)
函数依赖:
1、完全函数依赖:
(cno,sno)→grade
2、部分函数依赖:
(sno,cno)→sdept
3、传递函数依赖:
sno→sdept,sdept→mname,有sno→mname
4、直接函数依赖:
sno→sdept
有关系模式R<
U,F>
U={W,X,Y,Z},F={X→Z,WX→Y}
其候选码为:
WX,由于X→Z,则Z对码存在部分函数依赖,故为1NF
分解为BCNF
由于X→Z导致部分函数依赖,
故R1{X,Z}
R2{W,X,Y}
2、码的判别,能根据函数依赖集、语义描述和图表判定关系的码
码的求法:
1、在函数依赖集中找出L,R,LR对应的属性;
2、求闭包,先求L,在求LR,若都没有,L与LR组合求闭包
3、若闭包能包含所以属性,则那个属性就是主属性
闭包:
,U={A,B,C,D,E}F={AB→C,B→D,C→E,EC→B,AC→B}
求闭包(AB)+FAB能推出的属性集{A,B,C,D,E}
第七章
1、新奥尔良(NewOrleans)方法
将数据库设计分为四个阶段(需求分析、概念设计、逻辑设计、物理设计)
2、数据库设计的过程(六个阶段),每个阶段的任务和主要成果。
(1)需求分析阶段:
了解与分析用户需求,主要成果是数据流图和数据字典。
(2)概念结构设计阶段:
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型(E-R图)。
(3)逻辑结构设计阶段:
将概念结构转换为某个DBMS所支持的数据模型(关系数据模型);
对其进行优化。
(4)数据库物理设计阶段:
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
(5)数据库实施阶段:
运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库、并进行试运行。
(6)数据库运行和维护阶段:
在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
3、数据字典的概念
数据字典是各类数据描述的集合,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
数据字典的内容,数据项,数据结构,数据流,数据存储,处理过程。
4、局部E-R图在合并成整体E-R图时存在的冲突的种类有:
属性冲突、命名冲突、结构冲突。
5、能够根据问题描述绘制对应的E-R图,并将E-R图转换为对应的关系模式,找出其码,并能够判定其范式级别。
(注意:
E-R图中三要素不要画错了,实体、属性和联系分别用矩形、椭圆和菱形表示,要画出联系的类型:
一对一、一对多和多对多的联系,E-R图转换成关系模式时注意三种联系的转换方式:
特别是多对多的联系要单独转换成一个关系模式)
第八章
1、SQL语言的两种使用方式:
交互式SQL和嵌入式SQL
2、游标:
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
游标的作用是:
缓解SQL指令和宿主语言的矛盾,把集合操作转换为单记录操作。
3、用SQL指令创建存储过程(要求会用SQLServer标准的SQL指令创建带输入和输出参数的存储过程)
执行存储过程:
exec名称//触发器也可以这样执行
删除存储过程:
dropproc名称
创建存储过程:
createproc|procedurepro_name
[{@参数数据类型}[=默认值][output],
{@参数数据类型}[=默认值][output],
....]
SQL_statements
如:
1、不带参数的存储过程
createprocproc_get_student
select*fromstudent;
2、带参数的存储过程
createprocproc_find_stu(@startIdint,@endIdint)
select*fromstudentwhereidbetween@startIdand@endId
执行:
execproc_find_stu2,4
3、带输出参数的存储过程
createprocproc_getStudentRecord(
@idint,--默认输入参数
@namevarchar(20)out,--输出参数
@agevarchar(20)output--输入输出参数
select@name=name,@age=agefromstudentwhereid=@idandsex=@age;
go
--执行:
declare@idint,
@namevarchar(20),
@tempvarchar(20);
set@id=7;
set@temp=1;
execproc_getStudentRecord@id,@nameout,@tempoutput;
select@name,@temp;
实例:
createproctransfer(@idint)
selectsno,sname,
sex=casesex
when0then‘男’
when1then‘女’
end,birthdayfromstudentwheresno=@id
第九章
1、RDBMS查询处理阶段:
(1)查询分析
(2)查询检查
(3)查询优化
(4)查询执行
2、查询优化的一般准则
(1)选择运算应尽可能先做
(2)在执行连接前对关系适当地预处理(建立索引,排序)
(3)将投影运算和选择运算同时进行
(4)将投影同其前或其后的双目运算结合起来,减少扫描关系的次数
(5)将某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接运算比笛卡尔积省很多时间
第十章
1、事务的概念和基本特性:
事务(Transaction)用户定义的一个对数据库的读写操作序列,一个不可分割的工作单位,数据库恢复和并发控制的基本单位。
事务的四个基本特性:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)
2、故障的种类及其判别:
事务内部故障:
事务在运行至正常终止点(commit或rollback)前被终止,比如:
数据溢出、死锁
系统故障:
造成系统停止运转的任何事件,使得系统重新启动。
介质故障(medium):
磁盘损坏等
计算机病毒(virus)
3、恢复技术的关键是建立冗余数据,建立冗余数据最常用的技术是数据转储和登录日志文件
4、登记日志文件必须遵循的原则:
必须先写日志文件,后写数据库。
5、故障的恢复:
事务故障和系统故障都是由系统自动完成。
介质故障的恢复:
由DBA完成
6、具有检查点的恢复技术:
在日志文件中增加检查点记录
第十一章
1、并发操作引起的数据不一致性包括:
丢失修改、不可重复读、读脏数据
(要求这三种现象会分析)
2、并发控制的主要方法是采用封锁机制。
3、锁的类型:
排它锁(eXclusivelock):
写锁。
事务可读可写数据
共享锁(Sharelock):
读锁。
事务只能读取数据。
4、事务调度的可串行性
可串行化的调度:
多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。
可串行性是并发事务操作是否正确的判别准则。
5、两段锁协议
事务对数据项的加锁和解锁分为两个阶段完成
获得封锁:
在对数据读写之前首先申请并获得封锁;
释放封锁:
在释放一个封锁后不再申请和获得任何其他封锁
两段锁协议是可串行化调