数据库系统原理及应用教程复习笔记(第3 版)
最近在复习数据库相关知识点,过几天就要考试了;
第一章 数据库基础知识
1、数据库管理是数据处理的基础工作,数据库是数据管理的技术和手段。数据库中的数据具有整体性和共享性。
1.2、数据库系统的核心:数据库管理系统。
1.3、数据库核心:数据模型。
2、数据库(DB)是一个按数据结构来存储和管理数据的计算机系统软件。
2.2、数据库是长期存储在计算机内的有组织,可共享的数据集合。
3、数据管理系统(DBMS)能够为数据的库提供数据的定义(a.数据定义功能)、建立、维护、查询和统计(b.数据操纵功能)等操作功能,并完成对数据完整性、安全性进行控制的功能(c.数据库的建立和维护功能)(d.数据库的运行管理功能)。
4、数据库管理系统的数据控制主要指对数据安全性和完整性的控制。
数据安全性控制是为保证数据库的安全可靠,防止不合法的使用造成数据泄漏和破坏,即避免数据被人偷看、篡改或破坏;
数据完整性控制是为了保证数据中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出。
5、数据库管理技术经历了手工管理、文件管理(最小存取单位是记录)和数据库技术(最小单位是数据项)三个发展阶段。
6、数据库分类:单用户(access、fox base、FoxPro),多用户(SQL sever、oracle、Informix、Sybase、Delphos)
7、数据库系统管理数据的特点
①数据库系统以数据模型为基础
②数据库系统的数据冗余度小,数据共享度高
③数据系统的数据和程序之间具有较高的独立性
④数据库系统通过DBMS进行数据安全性和完整性的控制
⑤数据库中数据的最小存取单位是数据项
8、数据系统的数据和程序之间的独立性:数据和程序之间的依赖程度低、独立程度大的特性称为数据独立性高。
数据独立性可分为两级
a. 数据的物理独立性 数据的物理独立性是指应用程序对数据存储结构的依赖度。数据物理独立性高是指当数据的物理结构发生变化时,应用程序不需要修改也可以正常工作。
b. 数据的逻辑独立性 数据的逻辑独立性是指应用程序对数据全局逻辑结构的依赖程度。数据逻辑独立性高是指当数据库系统的数据全局逻辑结构改变时,它们对应用程序不需要改变仍可以正常运行。
9、数据库系统是指带有数据并利用数据库技术进行数据管理的计算机系统。一个数据库系统应包括计算机硬件、数据库、数据库管理系统、应用程序系统及数据库管理员。
10、数据库管理系统体系中由支持系统的计算机硬件设设备、数据库及相关的计算机软件系统、开发和管理数据库系统的人员3部分组成。
11、数据库系统的人员组成及数据库管理员(DBA)的职责
A 数据库管理员应参与数据库和应用系统的设计
B 数据库管理员应参与决定数据库的存储结构和存储策略
C 数据库管理员要负责定义数据的安全性要求和完整性条件
D 数据库管理员负责监视和控制数据库系统的运行,负责系统维护和数据恢复
E 数据库管理员负责数据库的改进和重组
12、三级模式结构:外模式(子模式 , 多个) 、模式(逻辑模式 , 一个)、内模式(存储模式, 物理模式 ,一个)
12.2、描述数据库中全局逻辑结构和特征的是:模式。
12.3、子模式DDL用来描述:数据库的局部逻辑结构。
13、数据库系统二级映像技术及作用
数据库系统二级映像技术是指外模式和模式之间的映像、模式和内模式之间的映像技术,二级映像技术不仅在三级数据模式之间建立了联系,同时也保证了数据的独立性
① 外模式和模式之间的映像及作用:保证了外模式和数据模式之间的对应关系,也保证了数据的逻辑独立性。
② 模式和内模式之间的映像及作用:保证了数据的逻辑模式和内模式之间的对应关系,也保证了数据的物理独立性。
14、要保证数据库的数据独立性,需要修改的是:三层模式之间的两种映射。
第二章 数据模型与概念模型
1、概念模型是对信息世界的管理对象、属性及联系等信息的描述形式。概念模型不依赖计算机及数据库管理系统,它是对现实世界的真实、全面的反映。
1.2、非关系模型中数据结构的基本单位是--基本层次联系。
1.3、通过指针链接来表示和实体之间联系的模型是:层次和网状模型。
1.4、层次模型不能直接表达 m:n关系。
2、实体间的联系:
(1)两个实体之间的联系:
1)一对一联系
2)一对多联系
3)多对多联系
(2)多实体集之间的联系:
1)多实体集之间的一对多的联系
2)多实体集之间的多对多的联系
(3)实体集内部的联系
3、数据库中最常用的数据模型是层次模型、网状模型和关系模型
4、数据模型具有数据结构、数据操作和完整性约束条件三要素
5、关系模型中的主要术语:
(1)关系:一个关系对应通常所说的一张二维表
(2)元组:表中的一行称为一个元组
(3)属性:表中的一列称为一个属性
(4)码:表中的某个属性或属性组,它们的值可以惟一的确定一个元组,且属性组中不存在多余的属性,这样的属性或属性组称为关系的码。
(5)域:属性的取值范围称为域。
(6)分量:元组中的一个属性值称为分量
(7)关系模式:关系的型称为关系模式,关系模式是对关系的描述
6、关系操作包括数据查询和插入、删除、修改数据。关系中的数据操作是集合操作,无论操作的原始数据、中间数据或结果数据都是若干元组的集合,而不是单记录的操作方式。
7、关系的完整性约束条件包括:事体完整性、参照完整性、用户自定义完整性(和域完整性)。
第三章:数据库系统的设计方法
1、数据库系统的设计内容:数据库的结构特性设计、数据库的行为特性设计、数据库的物理模式设计。
2、新奥热量数据库设计:需求分析、概念设计、逻辑设计、物理设计。
3、后续改:需求分析(分析各个用户的需求)、概念结构设计(在结构化分析方法中,常用数据流程图和数据字典来描述软件的逻辑模式,概念模型,E-R图,数据字典)、逻辑结构设计(数据模型,关系或非关系模型,逻辑模式,内外模式的确立)、物理结构设计(物理储存安排,存取路径的建立)、数据库实施、数据库的运行与维护。
图一
图二
4、数据字典(概念结构设计阶段):1).数据项(不可再分的数据单位)2).数据结构(数据间的组合关系);3).数据流;4).数据储存;5).处理过程。
5、数据抽象的三种基本方法:分类、聚集、囊括(继承性)。
6、概念信息模型:E-R图---->实体-联系图----> 1.长方形:实体集名; 2.椭圆形:实体集属性; 3.菱形:(实体间)联系。
7、E-R图合并的冲突:属性冲突、命名冲突、结构冲突。
7.1、逻辑结构设计的任务就是把概念模型结构转化成某个具体的DBMS所支持的数据模型,并进行优化。
7.2、数据库的物理结构设计是对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构。数据库的物理结构指的是数据库在物理设备上的存储结构和存取方法,它依赖于给定的计算机系统。
7.3、数据库物理结构设计的内容主要指选择存储结构和存取方法,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
7.4、关系数据库常用的存取方法有 : 索引方法、聚簇方法和HASH方法等。
8、概念模型向关系模型的转换:将实体集、属性以及联系关系转换为相应的关系模式【职工(职工号,姓名,年龄)】,关系模型中标有下划线的属性为码(图3、4例题)。
9、数据库的运行与维护最主要的工作是组织数据入库。
10、两层结构的数据库系统有两种构造方式:客户机/服务器(Client/Server,简称C/S)结构和浏览器/服务器(Browser/Server,简称B/S)结构;Client也称为前端Front-End,Server也被称为后端Back-End。
11、3层数据库系统结构减少了数据库服务器的工作量,并可在应用服务器上简化数据备份,提高了整个系统的工作性能与可靠性。
12、数据库应用系统设计步骤与方法:需求分析(数据需求,功能需求)、系统设计(数据模式,功能结构,系统结构)、建立数据库(数据库,配置数据源)、程序设计(界面,菜单组件及结构)、编程与调试(单元与项目文件)。
第四章 关系数据库
1、关系数据库为目前最广泛的数据库,以数学方法为基础的管理数据库。
2、关系数据库模型三要素:关系结构、关系操作、关系完整性约束。
3、关系中的3类完整性约束:实体完整性、参照完整性、用户定义完整性。
4、关系数据库中的关系可以分为基本表、视图表、查询表3种类型。
5、在关系数据库中,实体集以及实体间的联系都是用关系来表示的。
6、关系代数是一种抽象的查询语言。关系代数的运算对象是关系,运算结果也为关系。关系代数所使用的运算符包括4类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。
7、关系代数的基本运算:并、差、选择、笛卡尔积、投影。
8、关系代数表示检索的例子(结合课本例题理解):
[例]设 教学数据库中有 3 个关系:
学生关系S(SNO,SNAME,AGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)
下面用关系代数表达式和SQL语句分别表达每个查询语句。
(1) 检索学习课程号为C2的学生SNO与GRADE。
πSNO,GRADE(σ CNO=’C2′(SC))
SELECT SNO, GRADE FROM SC WHERE CNO=‘C2’
(2) 检索学习课程号为C2的学生SNO与SNAME.
πSNO,SNAME(σ CNO=’C2′(S |X| SC))
由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。 此查询亦可等价地写成:
πSNO,SNAME(S) (πSNO(σ CNO=’C2′(SC)))
这个表达式中自然连接的右分量为”学了C2课的学生学号的集合”。这个表达式比前一个表达式优化,执行起来要省时间,省空间。
SELECT SNO,SNAME FROM S WHERE EXISTS (SELECT * FROM SC WHERE SNO=S.SNO AND CNO=‘C2’)
(3)检索选修课程名为MATHS的学生学号与姓名。
πSNO,SANME(σ CNAME=’MATHS’(S |X| SC |X| C))
SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=‘MATHS’
(4)检索选修课程号为C2或C4的学生学号。
πSNO(σ CNO=’C2’∨CNO=’C4′(SC))
SELECT S.SNO, SNAME FROM S, SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CNAME=‘MATHS’
(5) 检索至少选修课程号为C2或C4的学生学号。
π1(σ1=4∧2=’C2’∧5=’C4′(SC×SC))
SELECT SNO FROM SC AS X, SC AS Y WHERE X.SNO=Y.SNO AND X.CNO=‘C2’
AND Y.CNO=‘C4’
这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号。 比较这一题与上一题的差别。
(6) 检索不学C2课的学生姓名与年龄。
πSNAME,AGE(S)-πSNAME,AGE(σ CNO=’C2′(S |X| SC))
这个表达式用了差运算,差运算的左分量为”全体学生的姓名和年龄”,右分量为”学了C2课的学生姓名与年龄”。
SELECT SNAME, AGE FROM S WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO=‘C2’
或SELECT SNMAE,AGE FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO ANDCNO=‘C2’)
(7)检索学习全部课程的学生姓名。 编写这个查询语句的关系代数过程如下:
(a) 学生选课情况可用πSNO,CNO(SC)表示;
(b) 全部课程可用πCNO(C)表示;
(c) 学了全部课程的学生学号可用除法操作表示。
操作结果为学号SNO的集合,该集合中每个学生(对应SNO)与C中任一门课程号CNO配在一起都在πSCO,CNO(SC) 中出现(即SC中出现),所以结果中每个学生都学了全部的课程(这是”除法”操作的含义):
πSNO,CNO(SC)÷πCNO(C)
(d) 从SNO求学生姓名SNAME,可以用自然连结和投影操作组合而成:
πSNAME(S (πSNO,CNO(SC)÷πCNO(C))) 这就是最后得到的关系代数表达式。
SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO))
(8)检索所学课程包含S3所学课程的学生学号。
注意:学生S3可能学多门课程,所以要用到除法操作来表达此查询语句。
学生选课情况可用操作 πSNO,CNO(SC)表示;
所学课程包含学生S3所学课程的学生学号,可以用除法操作求得:
πSNO,CNO(SC)÷ πCNO(σ SNO=’S3′(SC)) SELECT DISTINCTSNO FROM SC X WHERE NOT EXISTS (SELECT * FROM SC Y WHERE Y.SNO=‘S3’ AND NOT EXISTS (SELECT * FROM SC Z WHERE Z.SNO=X.SNO AND Z.CNO=Y.CNO))
(9)将新课程元组(’C10′,’PHYSICS’,’YU’)插入到关系C中
(C∪(‘C10′,’PHYSICS’,’YU’)) INSERT INTO C VALUES(’C10′,’PHYSICS’,’YU’)
(10)将学号S4选修课程号为C4的成绩改为85分。
(SC-(’S4′,’C4′, )∪(‘S4′,’C4′,85))
修改操作用代数表示分两步实现:先删去原元组,再插入新元组。题目中未给出原先的成绩,所以用” ”代替,检索时可忽略。
UPDATE SC SET GRADE=85 WHERE SNO='S4' AND CNO='C4'
第五章:关系数据库标准语言--SQL
1、SQL语句按实现的功能分为三类:
(1)数据定义语句 (数据模式定义、删除、修改)
(2)数据操纵语句 (数据查询与维护)
(3)数据控制语句 (数据存取控制授权与收权)
2、SQL语句的三个特点:
(1)SQL具有自主式语言和嵌入式语言两种使用方式
(2)SQL具有语言简洁、易学易懂的特点
(3)SQL支持三级数据模式结构
1)全体基本表构成了数据库的全局逻辑模式(一个)
2)视图和部分基本表构成了数据库的外模式(子模式)(多个)
3)数据库的存储文件和索引文件构成了关系数据库的内模式(一个)
3、SQL的数据控制语句包括授权、收权和拒绝访问
例题:用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示
Student表结构
列名 说明 数据类型 约束
Sno 学号 字符串,长度为7 主码
Sname 姓名 字符串,长度为10 非空
Ssex 性别 字符串,长度为2 取‘男’或‘女’
Sage 年龄 整数 取值15~45
Sdept 所在院系 字符串,长度为20 默认为‘计算机系’
Create table Student (
Sno varchar(7) primary key,
Sname varchar(10) not null,
Ssex char (2) check(Ssex=‘男’or Ssex=’女’),
Sage int check(Sage between 15 and 45),
Sdept varchar(20) default(‘计算机系’) )
Course 表结构
列名 说明 数据类型 约束
Cno 课程号 字符串,长度为10 主码
Cname 课程名 字符串,长度为20 非空
Ccredit 学分 整数 取值大于
0
Semester 学期 整数 取值大于0
Period 学时 整数 取值大于0
Create table course (
Cno varchar(10) primary key,
Cname varchar(20) not null,
Ccredit int check(Sctedit>0),
Semester int check(Semester>0),
Period int check(Period>0) )
SC表结构
列名 说明 数据类型 约束
Sno 学号 字符串,长度为7 主码,引用Student的外码
Cno 课程号 字符串,长度为10 主码,引用Course的外码
Grade 成绩 整数 取值0~100
Create table SC (
Sno varchar(7) foreign key references student(Sno),
Cno varchar(10) foreign key references course(Cno),
Grade int check(Grade between 0 and 100),
Primary key (Sno,Cno))
5、SQL进行表数据查询:看实验报告
第六章 SQL Server 关系数据库管理系统
考试不做要求,所以没整理,如果有整理后续补充。
第七章;关系数据库理论
1、关系数据理论包括两个方面的内容
(1)关系数据库设计的理论——关系规范化理论和关系模式分解方法
(2)关系数据库操作的理论——关系数据的查询和优化的理论
2、关系模式规范化是解决关系数据库中插入、删除数据冗余而引入的概念
第八章 数据库保护技术
1、数据库的保护功能主要包括确保数据的安全性、完整性、并发控制和数据恢复。
2、数据安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。
3、数据库安全控制的一般方法(5种)
A 用户表示与鉴别
B 存取控制 (a、自主存取控制方法 b、强制存取控制方法)
C 视图机制
D 审计
E 数据加密
3.2、数据库的完整性是指数据的正确性和相容性。
3.3、数据完整性约束可以分为表级约束、元祖级约束、属性级约束。
4、SQL sever 的安全体系结构(4层安全防线)
A windows NT 操作系统的安全防线
B SQL sever 的运行安全防线
C SQL sever 数据库的安全防线
D SQL sever 数据库对象的安全防线
5、SQL sever 的安全认证模式
A windows安全认证模式
B 混合安全认证模式
6、SQL Server 并发控制机制方法为:事务和加锁
7、事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的单位
8、事务的4个特性:
(1)原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么一个也不做
(2)一致性:事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态。
(3)隔离性:说明一个事务的执行不能被其他事务干扰,即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
(4)持续性:也称为永久性,持续性是指一个事务一旦提交,它对数据库中的数据的改变就是永久性的,接下来的其他操作或故障不应该对其执行结果有任何影响。
9、锁的类型
基本的封锁类型有两种:排他锁(x),共享锁(s)。
。。。。。