《数据库系统概论(第五版)》学习资料
《数据库系统概论(第五版)》学习资料
一、第一章
1.数据:描述事物的符号记录
2.数据库:长期储存在计算机内、有组织、可共享的大量数据集合。
(数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可供各客户共享)
3.数据库管理系统(DBMS)主要功能:数据的定义功能,数据的组织、存储和管理,数据操纵功能,数据的事务管理和运行管理,数据库的建立功能和维护功能,其他功能。
4.数据库系统(DBS):数据库、数据库管理系统、应用程序、数据库管理员。
5.数据管理技术的技术产生和发展:人工管理阶段、文件系统阶段、数据库系统阶段。
6.数据库系统阶段优点:数据结构化,数据的共享性高、冗余度低且易扩展,数据独立性高,数据由数据库管理系统统一管理和控制。
7.2类模型图 第一类:概念模型 第二类:逻辑模型和物理模型
8.概念模型:实体、属性、码、实体型、实体集、联系。
9.概念模型的一种表示方法:实体-联系方法(E-R模型)。
10.常用的逻辑模型:层次模型、网状模型、关系模型。
11.关系模型的概念:
(1)关系模型的数据以规范化的二维表表示
(2)术语:关系(表)、元组、属性、码、分量、域、关系模式。
12.数据库系统模式概念:
(1)型:指对某一类数据结构和属性的说明
(2)值:是型的一个具体赋值。
(3)模式:是数据库中全体数据的逻辑结构和特征描述,
(4)实例:模式的一个具体值为一个实例。
(模式是相对稳定的,实例是相对变动的)
13.外模式:也称子模式,它是数据库用户的数据视图
14内模式:也称存储模式,一个数据库只有一个内模式。是数据物理的结构与存储方式描述。
15.数据库系统的组成:硬件平台及数据库、软件、人员(数据库管理人员、系统分析员和数据库设计人员、应用程序员、用户( 偶然用户简单用户、复杂用户)).
二、 第二章
1.关系模型术语:
(1)域:是一组具有相同数据类型的值的组合。
(2)笛卡儿积:一组域D1,D2,…,Dn,D1xD2x…xDn={(d1,d2,…,dn)|di∈Di,i=1, 2,…,n}
(3)关系:D1xD2x…xDn的有限子集叫做在域D1,D2,…,Dn上的关系,表示R(D1,D2,…,Dn)
2.关系:候选码、主码、主属性、非主属性、空值。
3.关系的6条性质:
(1)列是同质的,即每一列中的分量是同一数据类型,来自同一个域。
(2)不同的列可以是同一域,称其中的一列为一个属性,不同的属性给予不同的属性名。
(3)列的顺序无所谓
(4)任意两个候选码的值不可以选同一个值。
(5)行的顺序无所谓。
(6)分量必须是原始值,不可以是数组矩阵。
4.关系模式:对关系的描述, 属于型的范畴, 包关系名,各属性名,域,码等。
5.关系数据库:存储实体和联系。
6.关系的基本操作:查询(选择、投影、除、并、差、笛卡儿积、交连)、插入、修改、删除
7.关系数据语言:关系代数语言、关系演算语言,具有双重特点的语言(SQL)
8.关系的完整性:
(1)实体完整性
(2)参照完整性:若属性F是关系R1的外码,它与关系R2的主码K相对应,则对于R1中的每个元组在F上的值必须:或者取空值\或者取R2中主码K的某个值.
(3)用户定义完整性:针对某一具体函数库的约束条 件,它反映某一具体函数应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个非主属性不能取空值。
9、10都是关系代数语言。
9.二目运算:
(1)并:设关系R与关系S有相同的属性, 它们的并为:R U S = {t | t ∈ R V t ∈ S}
(2)差:设关系R与关系S有相同的属性, 它们的差为:R – S = {t | t ∈ R ∧ t ∈ S}
(3) 交:设关系R与关系S有相同的属性, 它们的交为:R ∩ S = {t | t ∈ R ∧ t ∈ S}
(4) 笛卡尔积:设关系R是m度的, 关系S是n度的, 它们的笛卡尔积为(m+n度):R X S ={trts | tr
∈ R ∧ ts ∈ S}
10.专门运算关系:
(1)选择(单目运算):σSdept= ‘IS’(S) 查找S表中信息系(IS)全体学生,其中Sdept为属性-所在系。
(2)投影(单目运算):∏Sname,Sdept(S) 查找S表中学生姓名和所在系两个属性。
(3)连接(二目运算):是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。P54(非等值连接、等值连接、自然连接)
(4)除法运算(二目运算):关系R和S相除应满足S的属性应为R的属性的真子集, 即R(X,Y) ÷S(Y) 。
11.基本运算:并, 差, 笛卡尔积, 选择, 投影
非基本运算:交、连接、除法。
三. 第三章
1.SQL的特点:
(1)综合统一:集数据的定义、操纵、控制于一体。
(2)高度过程化。
(3)面向集合的操作方式
(4)一同语法结构提供多种使用方式
(5)语言简洁、易学易用
2.
3.修改基本表:
alter table <表名>
[add <新列表> <数据类型><完整性约束>] //加入一列到已存在的表中
[drop column <列名>]//删除已存在表中的某一列
[modify<列名><数据类型>];//修改已存在表中的某一列
[change <原列名><新列名><数据类型>] //修改列名
a) 修改表S的属性Sname 的类型为8个字符串
alter table S modify Sname char(8);
b) 重命名S的属性sname为Sname
alter table S change sname Sname varchar(8) not null;
c) 删除表S的属性sdept
alter table S drop column sdept;
d) 添加表S的属性sdept
alter table S add sdept char(2) not null;
4.删除基本表:drop table<表名>
5.数据查询:
select[all|distinct] <目标列> from<表名>
[where<条件表达式>]
[group by<列名1>[having<条件表达式>]]
[order by <列名2>[asc|desc]];
① 查询全体学生的学号与姓名
select sno,sname from S;
② 查询全体学生的姓名、学号、所在系
select sname,sno,sdept from S;
③ 查询计算机系(CS)、数学系(MA)、信息系(IS)学生的姓名和性别.
select sname,sage from S where Sdept IN(‘CS’,’MA’,’IS’ );
(‘in’相当于多个’or’)
④查询不是计算机系(CS)、数学系(MA) 、信息系(IS) 学生的姓 名和性别。
select sname,sage from S where Sdept not IN(‘CS’,’MA’,’IS’ );
⑤查询年龄在20~23岁之间的学生姓名、系别和年龄
select sname,sno,sdept from S where sage between 20 and 23;
⑥查询所有课程名为’数据’开头且四个汉字的课程信息.
select cname from C where cname like’数据%’; (not like所有不是以’数据’开头的课程名;% 任意长度字符串。
_ 任意单个字符串;\ 换码字符 \_紧跟在\后的_不再为任意单个字符串,仅为’_’字符)。
⑦查询所有没有先修课的课程号和课程名。
select cname,cno from C where cpno is null;
(‘is’不可以用’=’代替,null不等于任何值。’is not null’有先修课)。
⑧查询选修了3号课程的学生学号及其成绩, 结果按分数的降 序排列。
select sno,grade from SC where cno=’3’ order by grade desc;
6.聚集函数:count,sum,avg,max,min.
(1)查询学生的总人数.
select count(*) from S;
(2)查询选修了课程的学生人数.
select count(distinct sno) from S; (‘distinct’重复的只记一次)。
(3)计算3号课程的学生平均成绩。
select avg(grade) from SC where cno=’3’;
(4)求有学生选修的各个课程号及相应的选课人数大于10.
select cno,count(sno) from SC group by cno having count(*)>10;(‘group by cno’所有有相同cno值的元组为一组;’having count(*)>10 ‘每组中的元组大于10)。
(5) 查询有挂科的学生学号和平均成绩,并按平均成绩降序排列.
select sno,avg(grade) from SC
group by sno
having min(grade<60)
order by avg(grade) desc;
(6)查询无挂科的女学生学号,及修读课程门数,并按照修读课程门数升序排序
select sno,count(cno)from SCwhere grade>60 and sno IN(select sno from Swhere ssex='女')order by count(cno);
7.连接。
(1) 查询每一门课的间接先修课.
select c1.cno,c2.cpno
from course c1,course c2
where c1.cpno=c2.cno;
(2) 查询所有学生及其选修课程的情况
select S.*,SC.cno,SC.gradefrom S,SCwhere S.sno=SC.sno;
8.>any 大于子查询结果中的某个值 ;>all 大于子查询结果中的所有值
9.数据刷新
(1)在表S中插入你的信息
insert into S values ('17670109','黄现彤','女',20,'CS'); //char类型都需要用引号
(2) 将system.s中‘cs’系的且年龄小于24的学生插入到你的表s中
insert into S s1select * from system.S s2 where s2.sdept='CS' and s2.sage<24;
(3)将男学生的年龄增加一岁
update S set sage=sage+1 where ssex='男';
(4)删除学生’201215126‘
delete from S where sno='17670109';
(5) 由你的表s建立视图S_SEX,统计男女学生的人数,最大,最小年龄.(视图没有存进系统,只把定义存进了系统,类似于桌面的快捷键)
create view S_AEX(sex,count,max,min)as select sex,count(sno),max(sage),min(sage) from Sgroup by ssex;
10.drop table是DLL语句,DLL自动commit;
delete from是DML语句,还没存入盘中。
四、第四章
1.数据库不安全因素:非授权用户对数据库的恶意存取和破坏、数据库中重要或敏感的数据被泄露、安全环境的脆弱性。
2.数据库的安全性控制,防止数据泄露、更改或破坏,方法有:用户身份鉴别、静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别。
3.存储控制:定义用户权限、合法权限检查。
4. 授权(GRANT)与收回(REVOKE):针对系统权限和对象权限。授予某用户对某个对象以某种权限, 对象可以是表、视图、存储过程等 权限可以SELECT,INSERT,DELETE ,UPDATE等 DBA拥有所有权限,对象的创建者拥有此对象的所有权限。
5.授予:
grant <权限> [,<权限> ]…on <对象名> to <用户>[,<用户>]… [WITH GRANT OPTION];
收回:
revoke <权限> [,<权限> ]on <对象名> from <用户>[,<用户>]…;
6.(1) 把查询S表的权限授给你的同伴.
grant selecton Sto s17670102 ;
(2) 把插入S表和修改S中’所在系别’的权限授给你的同伴
grant insert,update (Sdept)
on S
to s17670102 ;
7.数据库角色是被命名为的一组与数据库操作相关的权限,角色是权限的集合。
8.数据库角色的创建:
① 角色的创建
② 将一个角色授予其他用户或角色
③ 给角色授权
④ 角色权限收回
五、第五章
1.数据库的完整是指数据的正确性和相容性。
2.DBMS必须能够:
(1)提供完整性的机制,定义完整性时可以给完整性取个名字
(2)完整性检查
(3)违约处理
3.参照完整性:参照表中插入元组、修改外码值可能破坏参照完整性。被参照表中删除元组、修改主码值可能破坏参照完整性。
4. (1)增加表SC对S、C的外键约束
alter table scadd (foreign key(sno) refrences s(sno),foreign key(cno) refrences c(cno));
(2)将system.c中的值插入你的C
insert into cselect * from system.s;
(3)增加表C中cpno对cno的外键约束
alter table Cadd constraint C1 foreign key(cpno) references c(cno);
(4)在表SC中插入system.sc的相应记录
insert into scselect *from system.sc sc2where sc2.sno in
(select snofrom s);
(5)在表S中增加完整性约束:性别只允许取男或女,男学生的年 龄在17~28之间,女学生的年龄在16- 30之间
alter table sadd constraint sexage check( (ssex='男' and sage between 17 and 28) or (ssex='女' and sage between 16 and 30) );
(6)在表S中将你的年龄改为16
update sset sage=16where sno='17670109';
六、第六章
1.第一范式(1NF):关系作为一张二维表,每个分量必需是不可分数 据项。
2.第一范式存在的问题:数据冗余、更新异常、插入异常、删除异常
3.第二范式(2NF):如果关系模式R属于1NF,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的,记作R属于2NF。
4.第二范式存在的问题:数据冗余、更新异常、插入异常、删除异常
5. 第三范式(3NF): 如果关系模式R属于2NF,并且R中的非主属性不传递依赖与R的主码,则称关系R是属于第三范式的.(非主属性必须直接依赖于主码,不能存在通过其他非主属性传递依赖于主码)
6. (1)若一个关系其非主属性之间存在函数依赖, 则一定不是第三范式
(2)若一个关系只有一个或两个属性, 则一定是第三范式.
7. 导出属性:关系中有些属性是由其他属性通过公式计算而得, 这样的属性。(导出属性不可分解出来, 即使关系仅为第二范式)
8. 模式分解既要”保持函数依赖性”,又要具有“无损连接性”。
保持函数依赖性:是指分解后的关系的函数依赖和分解前的函数依赖一样,没有丢失。
无损连接性:是指分解后的关系自然连接后等于分解前的。
9. (1)1NF ► 2NF 将部分函数依赖于主码的非主属性和相应的决定 属性分解出来,决定属性作为分解的公共属性
(2)2NF ► 3NF 将传递函数依赖的中间属性作为公共属性
10. 从E-R图向关系模型的转换
(1) 一个实体集转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。
(2)对于实体集间的联系有:
①1:1联系
不生成一个关系, 且把联系两端的实体集合并为一个关系.
②1:N联系
不生成一个关系, 把1端的实体集关系码复制到N端的实 体集关系中作为外码, 联系的属性也是N端的关系属性
③ M:N联系
生成一个关系, 联系两端实体集的码是此关系的属性,并 分别作为外码, 联系的属性也是此关系的属性
④ 3个及以上实体集间的联系
生成一个关系,与联系相关的实体集的码是此关系的属性联系的属性也是此关系的属性
(3)有相同码的关系模式可合并。
七、 第七章
1.数据库设计概述:
(1)技术、管理、数据相结合
(2)结构设计和行为设计相结合
2.数据库设计的基本步骤:
(1)需求分析
(2)概念结构设计
(3)逻辑结构设计
(4)物理结构设计
(5)数据库实施
(6)数据库运行和维护
八、第八章
1.数据库编程概述:标准的SQL是非过程化的查询语言。SQL编程语言是指过程化的SQL,有嵌入式SQL、PL/SQL、ODBC、JDBC。
2.PL/SQL的结构:块结构以’/’结束
定义: declare 执行:begin exception end;
3.变量和常量的定义:
变量名 数据类型 [[NOT NULL]:=初值];
常量名 constant 数据类型:=常量值;
4.赋值语句: 变量名:=<表达式>;
5.条件语句
if <条件>then <语句序列1>[else <语句序列2>]end if;/
6.循环语句
(1)for-loop循环
for 循环变量 in [reverse] 下界..上界loop<循环体>end loop;/
(2)while-loop循环体
while <条件>loop<循环体>end loop;
/
(3)loop循环
Loop
<循环体>end loop; //用exit 结束循环/
7.存储过程包括过程和函数。
8.过程:
(1)过程的建立
create [or replace] procedure 过程名[参数表] as<PL/SQL块> (此PL/SQL块中不写保留字declare)
(2)过程的调用执行
call 过程名 [(参数表)];
(3)过程的修改
create or replace procedure 过程名..
(4)过程的删除
drop procedure 过程名;
9.函数:
(1)函数的建立
create function 函数名 [(参数表)] as <PL/SQL块>//此PL/SQL块不写保留字declare此PL/SQL块中有return语句
(2)函数的调用
函数名 [(参数表)];
10.存储过程中的优点
(1)存储过程是事先编译好的,执行时效率高
(2)模块化设计有利于系统开发维护
(3)存储过程中有利于数据库安全性
(4)存储过程中降低了客户端和服务端的通信量
(5)方便实施企业规则
11.(1)创建过程ccb(N int),在表cb中插入从50开始的正偶数及相应的平方、立方,(若正偶数为10的倍数,则相应平方取负数),直到其立方数最接近且小于N,i中存放行号。
create or replace procedure ccb (N int) asK INT;J INT:=50;S INT;C INT;BEGINSELECT MAX(i) into K FROM cb ;K:=K+1;S:=J*J;C:=S*J;WHILE C<N LOOPIF (J MOD 10)=0 THEN S:=S*-1; END IF;insert into cb values(K,J,S,C);J:=J+2;S:=J*J;C:=S*J;K:=K+1;END LOOP;END;
(2) 以参数为300000调用此过程。
call ccb(300000);
(3)授权你的同伴可运行此过程。
grant execute on ccb to s17670102;
(4)以参数为600000调用你同伴的过程。
call s17670102.ccb(600000);
《数据库系统概论(第五版)》学习资料相关推荐
- 数据库系统概论(第5版)学习笔记第1章 1.2——数据模型
数据库系统概论(第5版)学习笔记第1章 1.2--数据模型 目录 数据库系统概论(第5版)学习笔记第1章 1.2--数据模型 0.思维导图(自制) 1️⃣思维导图下载 2️⃣图示 1.2数据模型 1. ...
- 数据库系统概论第五版第二章习题6
(SPJ数据库查询操作) 数据库系统概论第五版第二章习题6(SPJ数据库查询操作)_FunPony的博客-CSDN博客
- 数据库系统概论第五版课后习题
数据库系统概论第五版课后习题
- 数据库系统概论第五版知识大纲
数据库系统概论第五版知识大纲 第1章 绪论 1.1 数据库系统概述 基本概念 数据:描述事物的符号记录 数据库:数据库是长期储存在计算机内.有组织的.可共享的大量数据的集合 数据库系统:数据库系统是由 ...
- 数据库系统概论(第5版)学习笔记 第0章——走进数据库系统
数据库系统概论(第5版)笔记 第0章--走进数据库系统 走进数据库系统 数据库系统概论(第5版)笔记 第0章--走进数据库系统 0.为什么要学它? 1.数据库系统的发展经历了三代演变 2.造就了四位图 ...
- 数据库系统概论(第五版 王珊 萨师煊 编著)
数据库系统概论知识点总结 学习目录 基础篇 第一章 绪论 1.1 数据库系统概述 1.2 数据模型 1.3 数据库系统的结构 1.4 数据库系统的组成 1.5 小结 第二章 关系数据库 第三章 关系数 ...
- 数据库系统概论第五版(理论总结)
第一章绪论 表述事物的符号称为数据.表述事物的符号可以是数字,也可以是文字.图形.图像.音频.视频等. 数据库是长期存储在计算机内.有组织的.可共享的大量数据的集合. 数据库系统是由数据库.数据库管理 ...
- 数据库系统概论第五版(王珊)—重点知识总结
第一章 1.数据库的四个基本概念 数据库的四个基本概念:数据.数据库.数据库管理系统.数据库系统 数据,是信息的载体,是数据库中存储的基本对象,是描述事物的符号记录. 数据库,是长期储存在计算机内.有 ...
- 数据库系统概论第五版第(第 4 章数据库安全性)习题答案
目录 1. 什么是数据库的安全性? 2. 数据库安全性和计算机系统的安全性有什么关系? 3.试述信息安全标准的发展历史... 4. 试述实现数据库安全性控制的常用方法和技术. 5. 什么是数据库中的自 ...
最新文章
- 社团的CTF逆向题WriteUp
- 【转】常用数据结构及复杂度
- oracle怎么解析sql,oracle SQL解析步骤小结
- bilareralFilter双边滤波函数
- 13-Qt6 QMap
- 【模板】扩展中国剩余定理(EXCRT)
- java random用法_JAVA面试题(1)
- 成员变量(全局变量)和局部变量区别
- golang获取程序运行路径
- Spring Boot中登录错误消息的显示
- wxpython textctrl绑键盘事件_wxPython控件学习之TextCtrl(三)响应文本控件事件
- centos usb转网口_centOS安装与配置minicom(串口转USB)
- Jsp servlet mysql 学生信息管理系统
- 理解 JavaScript 的 async/await(转)
- UE虚幻引擎云渲染支持8K方案
- 金融产品经理的能力修炼精进指南
- 《经典书籍推荐》程序员修炼之道
- 互联网系统应用架构基础分析
- 三星s4 android 5.0 root权限,三星S4(i9500)一键ROOT权限获取+USB驱动
- 一切业务数据化,一切数据业务化
热门文章
- java解析json天气api,使用Postman获取天气接口API(Json格式)
- 专用5G网络的7种部署方案
- 如何准备机器学习数据集_机器学习演练第一部分:准备数据
- Java 程序员们值得一看的好书推荐
- 新型材料集成墙面,到底“新”在哪里?
- 山西中级消防设施操作员考前必背考点,模拟真题及答案
- Typora-PicGo-SMMS图床(Mac电脑和windows电脑)
- OriginPro8.5画双柱状图
- 1.6python网络爬虫--读取和处理纯文本格式(CSV,PDF,docx)
- Sping中怎么处理@Bean注解bean同名的问题