共计 8649 个字符,预计需要花费 22 分钟才能阅读完成。
数据库 1 期末温习
主观题:
大题:
ER 图(画 ER 图)
而后问你如何转化成关系模型 写数据库根本表
语法树查问优化
关系运算表达式
查问写 SQL 语句
老师的温习课重点
第一章 数据库发展史
-
数据管理技术三个阶段:人工治理、文件系统、数据库系统
-
文件系统的三个缺点:数据冗余、不一致性、数据分割弱
-
数据库系统三个阶段:
- 层次模型 / 前面的逻辑数据模型和构造模型
特点:有根树,个别示意一对多分割,也能够示意多对多;用 指针 示意分割
- 网状模型 有向图,能示意多对多 m:n;用 指针 示意分割
-
关系模型 二维表格示意实体集,外键和主键(公共属性)示意分割
-
关系模型的个性:
- 每列不可分
- 没有两行完全相同
- 没有行序和列序(有时候会有列序,为了不便)
-
关系模型的三个完整性束缚
- (属于关系完整性)实体完整性
- (属于关系完整性)参照完整性
- 用户自定义完整性
-
- 层次模型 / 前面的逻辑数据模型和构造模型
-
数据库专业术语
- 数据库 DB
-
数据库管理系统 DBMS
数据库管理系统的次要性能
- 数据库的 定义 性能
- 数据库的 操纵 性能
- 数据库的 爱护 性能
- 数据库的 保护 性能
- 数据字典
- 数据库系统 DBS:采纳数据库技术的计算机系统
第二章 数据库系统构造
-
三个世界:<u> 事实 </u> 世界、<u> 信息 </u> 世界、<u> 机器 </u> 世界
-
数据形容(概念和逻辑)
-
概念设计中的数据形容
- 实体
- 实体集
- 属性
- 实体标识符
-
逻辑设计中的数据形容
- 字段 / 数据项 – 对应属性
- 记录 – 对应实体
- 文件 – 对应实体集
- 关键码 – 对应实体标识符
-
-
数据分割的形容
分割的元数:与一个分割无关的实体集个数
-
二元分割的类型:
- 一对一
- 一对多
- 多对多
- 实体联通词:起码和最多关系 <min,max>
-
概念和逻辑数据模型
数据模型(Data Model):示意实体类型和实体间分割的模型
- 概念 (数据) 模型:面对现实世界的第一层形象(ER 模型)
最驰名的概念模型就是“实体分割模型”(即 ER 模型)
概念模型独立于计算机系统,独立于 DBMS(齐全不波及信息在计算机系统的任何表白),用于建设 信息世界 的数据模型
-
逻辑模型 / 构造模型:面对现实世界的第二层形象
逻辑 / 构造数据模型从计算机的观点对于数据建模
间接面向数据库的逻辑构造 ,间接与 DBMS 无关,用于建设 机器世界 的数据模型
- 层次模型
- 网状模型
-
关系模型
- 个性: 二维表格表实体集, 由若干个关系模式组成的汇合
-
关系模型的 3 个完整性束缚
- 实体完整性
- 参照完整性
- 用户自定义完整性
- 面向对象模型
- 概念 (数据) 模型:面对现实世界的第一层形象(ER 模型)
-
数据模型三要素
- 数据结构
- 数据操纵
- 完整性束缚
-
三级构造两级映像
从某个角度看到的数据个性称为“数据视图“
-
三级构造
- 外模式(外模式能够多个)用户应用 DML 数据操纵语言对数据库进行操作
单个用户能够看到的数据个性
用户与数据库系统的接口
外模式是 概念模式的逻辑子集
- 模式 / 概念模式(模式只有一个)模式 DDL 语言 schema data definition language
所有用户的数据定义
DB 中所有数据的 整体逻辑构造
不波及到存储构造、拜访技术
- 内模式 内模式 DDL:物理方面 的形容
定义外部记录类型、索引和文件组成形式
- 外模式(外模式能够多个)用户应用 DML 数据操纵语言对数据库进行操作
-
二级映像(确保数据独立性)
- 外模式 / 模式(放在外模式形容):逻辑独立性 / 逻辑数据独立性
- 模式 / 内模式(放在内模式形容):物理独立性 / 物理数据独立性
-
两个数据独立性:应用程序和数据库的数据结构之间互相独立 不受影响
- 逻辑独立性(外模式 / 模式)
改概念模式 只须要批改外模式 / 模式 外模式不受影响
- 物理独立性(模式 / 内模式)
改内模式 只须要批改模式 / 内模式 模式不受影响
- 逻辑独立性(外模式 / 模式)
-
第三章 关系运算
-
关系数据模型
- 定义
二维表格示意实体集,外键 / 关键码示意实体间分割的数据模型
- 关系的性质(1)属性是原子的 不可分(2)没有反复元组(3)没有行序(4)实践上没有列序,有时为了不便能够有列序
-
关键码 / 键
由一个或者多个属性组成
蕴含在 任意候选键 中的属性称为 主属性 ,不蕴含在任何候选键中的称为 非主属性或非键属性
- 超键:能惟一标识元组的属性或属性集
- 候选键:能惟一标识元组却不含多余属性的属性集 就是候选键
- <u> 主键:如果有多个候选键,就抉择其中一个为主键(下划线)</u>
- 外键:蕴含的另一个关系的属性(波浪线)
R 中有 S 主键 那么 S 是参照关系 R 是依赖关系
-
关系模型三级体系结构
- 关系子模式 ( 外模式是关系子模式汇合)
数据不间接来自关系模式中的数据 而是从若干关系模式中抽取满足肯定条件的
- 关系模式 ( 概念模式 是关系模式汇合)用 DDL 定义
对关系的形容,包含模式名、组成该关系的属性名等。具体的关系称为实例
- 存储模式 ( 内模式是存储模式汇合)
关系如何在物理存储设备上存储的
- 关系子模式 ( 外模式是关系子模式汇合)
-
关系模型的完整性规定
实体完整性规定 和参照完整性规定 是关系模型必须满足的完整性的约束条件,称为<u> 关系完整性规定 </u>
- 实体完整性规定:元组中主键的值不能为空
- 参照完整性规定:外键为空或者为对应某个主键
关系数据库中,关系和关系的分割是通过 公共属性(一个表的主键和另一个表的外键)实现的。
这个外键要么是空值 null,要么就是在另一个表的主键存在的
外键和对应的主键 能够不同名,然而要定义在雷同值域上
- 用户自定义的完整性规定
-
关系模式的三个组成部分:
- 数据结构
- 数据操作
- 完整性规定
- 定义
-
关系查询语言(依据实践根底不同分两类)
- 关系代数语言 :关系代数以 汇合操作 为根底
- 关系演算语言:关系演算以 谓词演算 为根底
-
过程性语言与非过程性语言:
- 过程性语言(PASCAL、C 等程序设计语言):编程时必须指出“干什么”及“怎么干”的语言;
-
非过程性语言(关系查询语言):编程时只须指出“干什么”, 不用指出“怎么干”
- 关系代数语言非过程性较弱,因为要指定每一个步骤怎么做
-
关系代数(汇合操作)这里的考试考查形式就是要你写【关系查问】
数据操纵语言 DML(用户应用的)分为 查问 语句和 更新 语句两种
-
关系代数的五个基本操作 并 查 笛卡尔 投影 抉择
- 并 Union OR
要求:两个关系都有 n 个属性,相应属性取自同一个域(属性性质统一)
两个关系中所有元组形成一个新关系 运算后果打消反复元组
- 差 Difference NOT EXISTS
要求:两个关系都有 n 个属性,相应属性取自同一个域(属性性质统一)
R- S 是属于 R 而不属于 S 的所有元组
- 笛卡尔积 FROM A,B
R 有 m 个元组 r 个属性 S 有 n 个元组 s 个属性 那么 R X S 有m x n 个元组 每个元组有 r + s 个属性
前 r 个重量来自 R 的一个元组 后 s 个重量来自 S 的一个元组
- 投影 Projection SELECT DISTINCT
对关系垂直宰割 去掉一些列 重新安排程序 <u> 再删去反复的元组 </u>
列出所有学生的学号、姓名、籍贯:$$\pi_{学号,姓名,籍贯}(S)$$
- 抉择 Selection WHERE
对关系程度宰割,抉择复合条件的元组
抉择学生表中性别为女的元组:$\sigma_{SEX=’ 女 ’}(S)$
- 并 Union OR
-
引出的 4 个组合运算(要能用根本运算示意)
- 交 Intersection (两遍差)
能够用两个差示意
R-(R-S) 或者 S-(S-R)
-
联接 Join(笛卡尔积 + 抉择的组合)
联接的 <u> 程序不重要 </u>!
- $\theta$ 联接: 从笛卡尔积中抉择属性值满足某 $\theta$ 操作的元组
- F 联接: 从笛卡尔积中抉择属性间接满足某一公式 F 的元组
- 天然联接(非凡的 等值连贯 ,要求两个关系中进行比拟的重量是雷同的属性,并且去掉反复的属性)天然联接相当于 笛卡尔积 ➡️ 抉择 ➡️ 投影去反复的列
- 交 Intersection (两遍差)
- 除 DivisionNOT EXISTS(NOT EXISTS)
除是笛卡尔积 差 投影组成的(一长串不必背)
定义:假如 R➗S 中的元组为 t 那么 t 和 S 中的任何元组 u 组成的新元组 <t,u> 肯定在关系 R 中
- 投影相当于 select distinct 打消了反复行
-
关系代数书写小技巧
- 个别规定
- 否定 没有 不包含用 差
- 全副 / 蕴含用 除
- 能用天然联结就用天然联结
-
裁减的关系代数操作
- 内部并
内部并不一定要求两个表 R 和 S 有雷同的关系模式
如果 RS 关系不同就取 R 和 S 的所有属性(公共属性只取一次)新关系由属于 R 或者属于 S 的元组形成
两个表并在一起 在新减少的属性上填空值 null
-
外联接
- 保留因为不存在公共属性相等的元组
- 左外联接就把右边的全副保留
- 右外联接就把左边的全副保留
- 半联接(分布式数据库经常用到)
R 和 S 的天然联接 在关系 R 的属性集上的投影
半联接不合乎交换律
- 内部并
-
-
关系演算(以谓词演算为根底)– 不考给查问写关系演算 主观题考
- 元组关系 演算:元组为变量 {t|P(t) } t 代表一个元组
元组前 没有 用到存在量词或者全称量词 就叫做自在元组变量
否则就叫束缚元组变量
- 域关系 演算:域为变量{t1,t2,…,tk|P(t1…tn) },t1,t2…tk 代表一个元组
- 元组关系 演算:元组为变量 {t|P(t) } t 代表一个元组
-
关系运算的安全性
在 无限关系 上的 关系代数操作 后果都 不会导致 有限关系和无穷验证,关系代数零碎是平安的!!
然而 元组关系演算 和域关系演算 可能会导致 有限关系和无穷验证
所以要对于元组关系演算进行 平安束缚
- 平安的元祖关系演算
- 平安的域关系演算
- 什么是平安的?不导致无穷验证和有限关系
有限关系:元组个数为无穷多
无穷验证:验证公式虚实时要无穷屡次
- 平安束缚是什么?对关系演算表达式施加限度条件,对表达式中的 变量取值规定一个范畴,使之不产生有限关系和无穷次验证,这种表达式被称为是平安表达式
- 关系运算的等价性
并,差,笛卡尔积,投影和抉择是关系代数最基本操作,形成了 关系代数运算的最小齐备集
在这根底上,关系代数、平安的元组操作演算、平安的域关系演算在 <u> 关系的表白和操作能力 </u> 上是 等价 的
-
查问优化(必考)
优化就是如何 <u> 安顿操作的程序 </u>
- 等价变换规定 - 书 p58 页
-
6 条优化个别策略
- <u> 尽早抉择 </u>
- F 联接运算代替 笛卡尔积 + 抉择
- 同时计算一串抉择和投影
- 如果屡次呈现一个子表达式,把子表达式的后果保存起来防止反复计算
- 适当对关系文件预处理
- 计算表达式之前预计一下怎么计算合算 RxS 哪个作为外层循环
-
(上课讲的三个例子)
- 笛卡尔积
- 投影再抉择
- 抉择再投影(发现要先抉择)
-
语法树的优化过程 - 第三章作业外面有 - 应该就专门考这个
关系代数表达式能够化成一棵语法树,叶子是关系,非叶子结点是关系代数操作
关系代数表达式的优化:
- 用等价变换规定把 $\sigma_{F1\wedge …\wedge F_n}(E)$ 的子表达式变为 $\sigma_{F_1}(…\sigma_{F_n}(E)…)$
- 对于抉择操作,尽可能移到叶端
- 对于投影操作,尽可能移到叶端
- 把抉择和投影合并为单个抉择、单个投影或者一个抉择后跟一个投影
- <span style=’background:yellow’> 把语法树 <u> 内结点分组 </u>:每个二元运算结点(X $\cup$ —)与它的间接先人(不超过别的二元运算结点)的一元运算结点($\sigma$ 或 $\pi$)分为一组;如果它的子孙结点始终到叶子都是一元运算,也并入这个组。但如果二元运算是笛卡尔积且前面不是与它组合成等值联接的抉择时,不能将抉择与这个二元运算并入一组 </span>
- 生成一个程序
-
查问的优化算法
- 天然连贯变为笛卡尔 + 抉择 + 投影
- 拆开抉择
- 抉择尽可能移到叶子
- 不须要的都投影去掉,只剩下最必须的属性
-
分组
- 相邻投影抉择分一组
- 每组一个二元运算 x
第四章 结构化查询语言 SQL
SQL 是介于关系代数与关系演算之间的语言,SQL 的性能包含 查问、操纵、定义和管制 四方面。
-
SQL 的概述
-
SQL 数据库的体系结构
- SQL 模式 schema 是表和束缚的汇合
- 一个表 Table 是行的汇合 每行是列的序列 每一列对应一个数据项
- 一个表能够是根本表(理论存在数据库中的表),能够是视图(从根本表活着其余视图导出的表,数据库中只寄存视图的定义,视图是虚表)
- 根本表能够跨存储文件,存储文件能够放多个根本。一个表能够多个索引,索引放在存储文件中;每个存储文件与外存上一个物理文件对应。存储文件的逻辑构造就组成了关系数据库中的内模式。
- 用户能够用 SQL 语句对视图和根本表进行查问等操作(用户看来视图和根本表都是关系 / 表格)
- SQL 用户能够是应用程序,能够是终端用户。
-
SQL 体系结构
- 外模式 - 对应视图
- 模式 - 对应根本表
- 内模式 - 对应存储文件
-
SQL 的组成:数据定义,数据操纵,数据管制,嵌入式 SQL 的应用
- 数据定义 SQL DDL
定义 SQL 模式、根本表、视图和索引
-
数据操纵 SQL DML
- 数据查问
- 数据更新(插入 删除 批改)
-
数据管制 SQL DCL
- 根本表、视图受权
- 完整性束缚
- 事务管制语句
- 嵌入式 SQL 的应用
- 数据定义 SQL DDL
-
-
SQL 的数据定义
SQL 的数据定义 包含对于 4 个货色:SQL 模式 schema、根本表 table、视图 view、索引 index的创立撤销操作。
模式定义 / 数据库定义
- SQL 模式创立:create database/schema< 模式名 > [AUTHORIZATION < 用户名 >]
-
SQL 模式撤销:drop database/schema< 模式名 > [CASCADE | RESTRICT]
- cascade(连锁式) SQL 模式和上司的根本表、视图、索引都撤销
- restrict(束缚式) SQL 模式下没有任何上司元素的时候能力撤销 否则回绝
根本表的创立批改和撤销
-
根本表创立
- 语法:
create table SQL 模式名. 根本表名(
列名 类型,
…
完整性束缚,
…)
-
完整性束缚 / 规定的三个子句
- 查看子句(check)
-
主键子句(primary key)
- 外键子句 (foreign key) 体现了参照完整性
- 语法:
- 根本表撤销
语法:drop table 根本表名 [CASCADE | RESTRICT]
DROP TABLE S RESTRICT;
索引的定义
-
创立索引
语法:
create [UNIQUE] index 索引名 on 根本表名 (< 列名 >[秩序]..)
秩序包含
-
ASC 升序
- DESC 降序
- 撤销索引
语法:drop index < 索引名 >
视图的定义(对于更新有限度)
- 创立
语法:create view 视图名(列名表)as select 查问语句;
- 查问
- 更新(限度)
- 不是所有视图都能够更新(见后)
- 视图也被称为 <u> 虚表 </u>(零碎把视图的定义存在数据字典中,不存数据)
-
-
SQL 数据查问 / 数据操纵(40 分 SQL 和关系代数 8 个题各 5 分)
给数据库 给插入删除要求 写 SQL 语句
-
SELECT 语句格局
-
语法:
SELECT [DISTINCT] 指标表的列名或者列表达式序列 FROM 根本表名和(或)视图序列|表援用 [WHERE 行条件表达式] -- 行条件子句 [ GROUP BY 列名组列 -- 分组子句 [HAVING 组条件表达式] ] -- 组条件子句 [ORDER BY 列名[ ASC | DESC], ··· ] -- 排序子句
-
SELECT 语句执行步骤:
- 读取 FROM 中根本表和视图 执行笛卡尔积
- 选取满足 WHERE 的元组
- 依照 GROUP 子句给指定列分组 提取满足 HAVING 子句中组条件表达式的组
- 依照 SELECT 的列名求值输入
- 依照 ORDER 排序 如果有多个 ORDER 就顺次
-
- 单表查问
字符串匹配符 LIKE
语法:列名 LIKE 字符串常数
罕用通配符:
%: 示意和任意长度 (0 也能够) 的字符串匹配
_: 示意和任意单个字符匹配
SELECT cname FROM S WHERE cname like 'wang%';
- 多表查问
同名属性要加关系名 例如
S.sno
-
联结操作
-
联接的类型:
- INNER JOIN 内联接
- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN
- CROSS JOIN 穿插联接(笛卡尔积)
-
联接的语法:
from X inner join Y on X.sno=Y.sno….
select distinct X.jno from SPJ X inner join SPJ Y on X.jno=Y.jno where (X.pno='P3') and (Y.pno='P5');
-
-
聚合函数 个别会跟分组 GROUP BY 还有组条件 HAVING 一起
- COUNT(*)
- COUNT(列名)
- SUM(列名)
- AVG(列名)
- MAX(列名)
- MIN(列名)
- 数据分组
个别会先分组再进行聚合运算
先 GROUP BY 分组 再依照 HAVING 子句的条件来抉择 HAVING 是抉择组
-
汇合操作
- 汇合的并、交、差操作
-
汇合的四个比拟操作
-
汇合成员资格比拟
- 元组 IN 汇合
- 元组 NOT IN 汇合
-
汇合成员算数比拟
元组 $\theta$ SOME(汇合)
元组 $\theta$ ALL(汇合)
查问最低廉的商品价格:
select distinct pno,price from SPJ where price>=all(select price from SPJ);
- 空关系测试 抉择“所有”的应用用 2 次 NOT EXISTS
EXISTS (汇合)
NOT EXISTS (汇合)
用 EXISTS 测试一个汇合是否为非空或空 NOT EXISTS(X) 当 X 为空时 其值为 True 否则为 False
- 反复元组的测试
UNIQUE (汇合) 检测一个汇合中是否有反复元组
NOT UNIQUE (汇合)
-
-
-
SQL 的数据更新(数据插入,删除,批改)
- 数据插入 insert
INSERT INTO 根本表名(列名表) VALUE (元组值);
INSERT INTO J(JNO,JNAME,JCITY) VALUES ('J8','地铁二号线','上海');
- 数据删除 delete
一次只能删一个关系外面的元组
DELETE FROM < 表名 > WHERE < 条件表达式 >
delete from SPJ where sno in(select sno from S where sname='西方配件厂');
- 数据批改
UPDATE 根本表名
SET 列名 = 值表达式[, 列名 = 值表达式···]
[WHERE 条件表达式]
如果省略 WHERE 示意批改表中的所有元组
update S set sno='1' where sno='2';
-
对视图的更新(有限度)
- 对视图的更新最初要转变为对根本表的更新
-
视图更新的三条规定
- 如果视图是从多个根本表用联结操作导出的,不容许更新操作
- 如果导出视图时应用了分组和聚合操作,不容许更新操作
- 如果视图是从单个根本表应用抉择、投影操作导出,且包含根本表的主键或某个候选键,视图称为“行列子集视图”,能够更新操作
-
视图能够更新和不能更新的状况
-
能够更新
- 只有 行列子集视图 能够更新
- 行列子集视图:单个根本表 仅抉择投影 操作,且后果蕴含 主键或某个候选键 的视图
-
不能更新
- 多个根本表联结操作
- 应用了分组和聚合
-
- 数据插入 insert
-
嵌入式 SQL(主观题:概念和利用)
-
SQL 语言能够在
- 终端交互方式
- <u> 嵌在高级语言的程序中(嵌入式)</u> 应用, 被嵌入的高级语言叫做 <u> 宿主语言 </u>
- 为什么须要嵌入式 SQL?
SQL 基于关系模型
高级语言基于根本数据类型
- 数据交互 - 共享变量: 援用宿主语言的程序变量 应用这些变量前加冒号:
- 工作模式 - 游标(并不是始终要用)
游标的作用:协调 SQL 一次解决一批而宿主语言一次解决一条的不同
游标 能够对立 SQL 中一次一汇合 与程序中一次一记录 的工作形式
-
游标的应用场景 只有 DML 语言会应用游标
- 查问后果有多条
-
-
要对以后的记录进行操作
-
游标不应用的场景
- 数据定义 DDL 数据管制 DCL 不须要应用游标
-
插入,删除,更新不须要
- 查问是单后果不必游标
-
第六章 ER 模型
- 会画(9 周的研究题)
给文字叙述 / 需要 画 ER 图 或者补充残缺
画完之后转化为关系模式 标主键外键
-
实体模型的根本属性
-
实体 E(用方框示意)
- 实体名
- 属性 …
-
分割 R(用菱形框示意)
- 元数(几个实体之间的分割)
- 连通词(几对几)
- 基数
-
属性(用椭圆示意,主键加下划线)
能惟一标识实体的属性或属性集称为“实体标识符”/“主键”
- 根本属性和复合属性
-
单值属性和多值属性
- 单值属性
-
多值属性(用双椭圆示意)
批改 ER 模型对多值属性进行变动的两种办法
- 减少几个新属性(把多值属性拆成很多不同属性)
- 减少新实体:减少一个依赖于原来实体的 1:N 弱实体(用单方框示意)
- 导出属性(虚线椭圆和虚线连线示意)
属性不仅能够从其余属性导出,也能够从实体导出
-
空值(不好 难解决 减少复杂性)
- 值无意义:占位空值
- 值临时不晓得:未知空值
- 不晓得有没有意义或者值是什么:未知
-
-
分割的设计
- 分割的元数:一个分割波及到的实体集个数
- 分割的联通词:分割波及到的实体集之间对应的形式,二元分割中就有 1:1, 1:N , M:N , M:1
- 分割的基数
两个实体集 E1 和 E2,E1 中每个实体与 E2 中有分割实体的数目的最小值 Min 和最大值 Max 形成 E1 的基数,用 (Min,Max) 示意
-
ER 模型的裁减
- 弱实体(单方框和双菱形)
弱实体用单方框
实体和弱实体的分割用双菱形
- 子类和超类
子类实体继承超类实体的所有属性
这种继承性通过子类实体和超类实体具备雷同标识符 / 主键实现的
超类用两端有双线的方框示意,超类与子类的分割用加圈的线示意
- 弱实体(单方框和双菱形)
-
ER 模型转化关系模式!!!
- 实体间接转为关系模式(一个实体就是一个关系模式,实体有几个属性关系模式就几个属性)
-
把 ER 图中的分割转化为关系模式
- 1 对 1 分割: 抉择任意实体,把其中的一个的主键放在另一个实体做为外键
- 1 对多分割: 在多的这边增加一个外键:1 的主键
-
多对多分割:增加新的关系模式 / 新的根本表来示意分割
- 分割的属性是关系模式属性
- 新关系模式 / 新根本表的主键是两个实体的主键汇合
- 弱实体转化关系模式
例子:学生 -1-n- 社会关系
1 对多:1 的主键作为外键放在多的一边 作为主键的一部分
期末试卷题型散布
- 主观题
- 抉择 10 分
- 判断 10 分
- 填空 10 分
- SQL 和关系代数各 4 句 40 分
留神点:1. 除操作
- 优化查问 - 语法树 15 分
- 给文字描述画 ER 图 - 转化为关系模式
主键外键标分明 属性不肯定要全副写 15 分
高分不容易 及格很容易
去年的数据库试卷:
题目
车 C(CNO,CTYPE,CID,CDATE,)
驾照 D(DNO)
部门 B(BNO,BNAME,BTEL)
部门用车 BC(BNO,CNO,DNO,RQ,DEST,DIS,FECS)
RQ 是日期 DIS 是间隔!
sql 重点考分组 group by having
关系代数和 sql 都会考除和差
关系代数题:
- 为部门 b01 服务 车型是丰田 费用 <600 的驾驶员
- 没有被部门 b09 应用过的车的 xxx
- 查问驾驶过所有车辆的驾驶员(除所有车)
- 查问应用沪 xxx 和沪 xxx 的驾驶员
- 19 年用车超过 xxx 次的部门(group by)
- 查问定过所有车的部门