参考
数据库系统概论(第5版)
第1章 绪论
1.数据库的4个基本概念 P4
- 数据
- 数据库
- 数据库管理系统
- 数据库技术
2.数据管理技术的三个阶段 P6
3.数据模型的组成要素P17
-
数据结构
-
数据操作
-
数据的完整性约束条件
4.常用的数据模型P18
- 层次模型
- 网状模型
- 关系模型P25
- 名词解释:关系、元祖、属性、码、域、分量、关系模式
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
5.三级模式和两级映像 P27
- 三级模式
- 模式
- 外模式
- 内模式
- 二级映像
- 外模式/模式映像
- 模式/内模式映像
习题:1,3,13,15,17
第2章 关系数据库
2.1 关系数据结构及形式化定义
1.域、笛卡尔积、n元组、分量、基数 P37
2.关系、候选码、主码、全码P39
3.关系模式P41
4.关系数据库的逻辑模型是表P42
2.2 关系操作
1.常用的关系操作
2.查询操作P42
- 查询五种基本操作P42
2.3 关系完整性
1.实体完整性规则P44
2.参照完整性P44
- 外码、参照关系、被参照关系的概念P45
- 参照完整性规则P46
3.用户定义的完整性 P47
2.4关系代数
关系代数运算符P47
1.传统的集合运算 P48
- 并
- 差
- 交
- 笛卡尔积
2.专门的关系运算 P49
分量、属性列、元祖的连接、象集的定义
- 选择P50
- 投影P52
- 连接P52
- 等值连接
- 自然连接
- 悬浮元祖、外连接、左外连接、右外连接
- 除运算P54
习题P69
1、3、5、
6.(1)
(2)
(3)
(4)
(5)
8
第3章 关系数据库标准语言SQL
3.3 数据定义P78
1.模式的定义与删除P79
- 定义:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
- 删除:
DROP SCHEMA <模式名><CASCADE I RESTRICT>
- 级联删除
- 限制删除
2.基本表的定义、删除、修改P80
- 定义基本表:
- 数据类型:比较重要的有CHAR、INT、FLOAT、DATE、TIME
- 修改基本表:
- 删除基本表:
DROP TABLE <表名>[RESTRICT | CASCADE]
;
3.索引的建立与删除P85
-
索引的作用
-
建立索引:
- 次序:ASC、DESC
-
修改索引:
ALTER INDEX <旧索引名> RENAME TO <新索引名>
-
删除索引:
DROP INDEX <索引名>
4.数据字典
3.4 数据查询P87
数据查询的一般格式:
1.单表查询 P88
-
选择表中的若干列
- 查询指定列
- 查询全部列
- 查询经过计算的值
- 目标列可以是表达式、字符串常量和函数、定义别名
-
选择表中的若干元祖
- 消除取值重复的行:
DISTINCT
、ALL
- 查询满足条件的元组:
WHERE
- 比较大小
- 确定范围:
BETWEEN
、AND
- 确定集合:
IN
、NOT IN
- 字符匹配:
[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']
、%
、_
- 涉及空值的查询
NULL
- 多重条件查询:
AND
、ALL
- 消除取值重复的行:
-
ORDER BY
子句 -
聚集函数:
COUNT
COUNT( [DISTINCT|ALL] <列名>)
SUM( [DISTINCT|ALL] <列名>)
AVG( [DISTINCT|ALL] <列名>)
MAX( [DISTINCT|ALL] <列名>)
MIN( [DISTINCT|ALL] <列名>)
-
GROUP BY
子句HAVING
语句指定筛选条件
2.连接查询P97
- 等值与非等值连接查询
- 自身连接
- 外连接
3.嵌套查询P101
- 带有IN谓词 P101
- 带有比较运算符的子查询 P104
- 带有ANY (SOME )或ALL 谓词的子查询P105
- 带有EXISTS 谓词的子查询P107
4.集合查询P109
- 集合操作主要包括并操作
UNION
、交操作INTERSECT
和差操作EXCEPT
5.基于派生表的查询
6.SELECT 语旬的一般格式 P112
当忘记查询语句的时候可以来这一页看
3.5 数据更新 P113
1.插入数据
-
插入元祖
-
插入子查询结果
2.修改数据P115
3.删除数据P116
3.6 空值的处理P117
3.7 视图P119
1.定义视图
-
建立视图
-
删除视图
2.查询视图P122
- 视图消解
3.更新视图
4.视图的作用
习题P128
(1)
SELECT *
FROM S
WHERE A='10';
(2)
SELECT A,B
FROM S;
(3)
SELECT A,B,S.C,S.D,E,F
FROM S,T
WHERE S.C=T.C AND S.D=T.D;
(4)
SELECT *
FROM S,T
WHERE S.C=T.C;
(5)
SELECT *
FROM S,T
WHERE S.A<T.E;
(6)
SELECT S.C,S.D,T.*
FROM S,T;
建S表:
CREATE TABLE S(
SNO CHAR(2) UNIQUE,
SNAME CHAR(6),
STATUS CHAR(2),
CITY CHAR(4));
建P表:
CREATE TABLE P(
PNO CHAR(2) UNIQUE,
PNAME CHAR(6),
COLOR CHAR(2),
WEIGHT INT);
建J表:
CREATE TABLE J(
JNO CHAR(2) UNIQUE,
JNAME CHAR(6),
CITY CHAR(4));
建SPJ表:
CREATE TABLE SPJ(
SNO CHAR(2) UNIQUE,
PNO CHAR(2) UNIQUE,
JNO CHAR(2) UNIQUE,
QTY INT);
(1)
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO='J1';
(2)
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO='J1' AND PNO='P1';
(3)
SELECT DISTINCT SNO
FROM SPJ,P
WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'
(4)
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN(
SELECT JNO
FROM SPJ,P,S
WHERE S.CITY ='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)
(5)
A、查询S1供应商供应的零件号
SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT JNO
FROM SPJ
WHERE PNO='P1' AND JNO IN
(SELECT JNO
FROM SPJ
WHERE PNO='P2');
(1)找出所有供应商的姓名和所在城市。
SELECT SNAME,CITY
FROM S
(2)找出所有零件的名称、颜色、重量。
SELECT PNAME,COLOR,WEIGHT
FROM P
(3)找出使用供应商S1所供应零件的工程号码。
SELECT DIST JNO
FROM SPJ
WHERE SNO='S1'
(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECT PNAME,QTY
FROM SPJ,P
WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'
(5)找出上海厂商供应的所有零件号码。
SELECT PNO
FROM SPJ,S
WHERE S.SNO=SPJ.SNO AND CITY='上海'
(6)出使用上海产的零件的工程名称。
SELECT JNAME
FROM SPJ,S,J
WHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO
(7)找出没有使用天津产的零件的工程号码。
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN
(SELECT DISTINCT JNO
FROM SPJ,S
WHERE S.SNO=SPJ.SNO AND S.CITY='天津')
(8)把全部红色零件的颜色改成蓝色。
UPDATE P
SET COLOR='蓝'
WHERE COLOR='红'
(9)由S5供给J4的零件P6改为由S3供应。
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6'
(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
A、DELETE FROM S WHERE SNO=’S2’
B、DELETE FROM SPJ WHERE SNO=‘S2’
(11)请将(S2,J6,P4,200)插入供应情况关系。
INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)
创建视图:
CREATE VIEW VSP
AS SELECT SNO,SPJ.PNO,QTY
FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.JNAME='三建'
(1)找出三建工程项目使用的各种零件代码及其数量。
SELECT DIST PNO,QTY
FROM VSP
(2)找出供应商S1的供应情况。
SELECT DIST *
FROM VSP
WHERE SNO='S1'
第4章 数据库安全性
4.2 数据库安全性控制
1.授权:授予与收回P139
-
GRANT
-
REVOKE
-
创建数据库模式的权限
2.数据库角色P143
- 角色的创建
- 给角色授权
- 将一个角色授予其它的角色或用户
- 角色权限的收回
第5章 数据库完整性P156
数据库的完整性是指数据的正确性和相容性。
为维护数据库的完整性,数据库管理系统必须能够实现如下功能:
- 提供定义完整性约束条件的机制
- 提供完整性检查的方法
- 进行违约处理
5.1 实体完整性P157
-
1.定义实体完整性
-
2.实体完整性检查和违约处理
- 检查主码值是否唯一,如果不唯一则拒绝插入或修改。
- 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
5.2 参照完整性P159
- 1.定义参照完整性
- 2.参照完整性检查和违约处理
5.3 用户定义的完整性P162
- 1.属性上的约束条件
- 2.元组上的约束条件
5.4 完整性约束命名子句P164
- 1.完整性约束命名子句
-
- 修改表中的完整性限制
5.5 域中的完整性限制P166
5.6 断言P166
-
创建断言的语句格式
-
删除断言的语句格式
5.7 触发器P167
1.定义触发器P168
2.激活触发器
3.删除触发器
习题 P172
1、3
第6章 关系数据理论
6.1 问题的提出P177
-
第一范式的定义:关系的每一个分量必须是不可分的数据项
-
第一范式存在的问题P179
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
6.2 规范化P180
1.函数依赖
- X→Y
- 概念:非平凡的函数依赖、平凡的函数依赖、完全函数依赖、部分函数依赖、传递函数依赖
2.码 P181
- 概念:候选码、超码、主码、主属性、非主属性、全码、外码
3.范式P182
- 概念:规范化
4. 2NF P182
- 2NF的概念:
- 图的解释:主码为学号和课程号。学号决定系、学号决定住处、学号和课程号决定成绩、系决定住处。系和住处部分依赖于主码。所以不满足2NF
- 产生的问题
- 插入异常
- 删除异常
- 修改异常
- 解决方案:投影分解
5. 3NF P184
- 3NF的概念:不存在传递依赖
6. BCNF P184
- 定义
7.多值依赖P185
- 定义
8. 4NF P188
- 定义
小结
6.3 数据依赖的公理系统
习题
1、2、6、
第7章 数据库设计
数据库设计步骤
7.3 概念结构设计
1.E-R模型 P215