💡河南大学计算机与信息工程学院2023年下半年学期期末考试重点
💡 《数据库系统概论》期末重点汇总(自用)
😄😄😄
💡 题型:
单项选择题——10 * 2分
填空题——10 * 2分
简答题——4 * 7.5分
综合设计题——2 * 15分
一、各章知识点汇总
第一章
1.基本概念
数据、数据库、数据库管理系统、数据库系统
- 数据(data):
-
-
- 数据是数据库中存储的基本对象。
- 描述事物的符号记录称为数据。
- 数据的含义成为数据的语义,数据与其语义是不可分的。
-
- 数据库(DataBase,DB)
-
-
- 是长期存储在计算机内、有组织的、可共享的大量数据的集合。
- SQL Server支持C/S体系结构。
- 每个SQL Server都有两类数据库:
-
-
-
-
- 系统数据库
- 用户数据库
-
-
-
-
- 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
- 特点:
-
-
-
-
- 永久存储
- 有组织
- 可共享
-
-
- 数据库管理系统(DBMS)
-
-
- 数据库管理系统是位于用户和操作系统之间的一层数据管理软件。
- 主要功能:
-
-
-
-
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 其他功能(通信功能)
-
-
- 数据库系统(DBS)
-
-
- 数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
- 人们常常把数据库系统简称为数据库。
-
2.数据模型的组成
- 数据模型是数据库系统的核心和基础。
- 两类数据模型:
-
- 概念模型(信息模型)
- 逻辑模型和物理模型
- 组成:
-
- 数据结构
-
-
- 是系统对静态特性的描述。
-
-
- 数据操作
-
-
- 是系统对动态特性的描述。
-
-
- 数据的完整性约束
-
-
- 是一组完整性规则。
-
3.三种主要数据库模型
- 层次模型
- 网状模型
- 关系模型
层次模型和网状模型统称为格式化模型。
4.数据库系统三级模式和二级映像
三级模式:
-
- 外模式(子模式/用户模式)
-
-
- 介于模式与应用之间。
- 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
- 是数据库用户的数据视图。
- 一个应用程序只能使用一个外模式。
-
-
- 模式(逻辑模式)
-
-
- 是数据库中全体数据的逻辑结构和特征的描述。
- 是所有用户的公共数据视图。
- 是数据库系统模式结构的中间层。
- 一个数据库只有一个模式。
-
-
- 内模式(存储模式)
-
-
- 是数据物理结构和存储方式的描述。
- 是数据库内部的组织方式
- 一个数据库只有一个内模式。
-
二级映像:
-
- 外模式/模式映像
-
-
- 模式描述的是数据的全局逻辑结构。
- 外模式描述的是数据的局部逻辑结构。
- 同一个模式可以有多个外模式。
- 对于每一个外模式,数据库系统都有一个外模式/模式映像。
- 保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
-
-
- 模式/内模式映像
-
-
- 模式/内模式映像是唯一的。
- 保证了数据与程序的物理独立性,简称数据的物理独立性。
- 内模式依赖于它的全局逻辑结构,独立于外模式。
-
第二章
1.关系数据库系统的基本特征
关系模型三要素:
-
- 关系数据结构
- 关系操作集合
- 关系完整性约束
特征:
- 数据集中控制
- 数据独立性高
- 数据共享性好
- 数据冗余度小
- 数据结构化
- 统一的数据保护功能
2.关系的完整性约束
三类完整性约束:
- 实体完整性
- 参照完整性
- 用户定义的完整性
关系的两个不变性:实体完整性和参照完整性。
3.关系代数运算
关系代数运算是以集合运算为基础的运算。
集合运算:
-
- 并
- 差
- 交
- 笛卡尔积
关系运算:
-
- 选择——选择满足给定条件的诸元组。
- 投影——选择出若干属性列组成新的关系(并消去重复元组)。
- 连接——从两个关系的笛卡尔积中选取属性间满足一定条件的元组
-
-
- 等值连接:从两个关系的笛卡尔积中选取属性值相等的元组。
- 自然连接:要求关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。
-
-
- 除运算——同时从行和列角度进行运算。
第三章
1.SQL的主要功能
- 数据定义
- 数据查询
- 数据操纵
- 数据控制
SQL功能 | 谓词 |
数据定义 | CREATE,DROP,ALTER |
数据查询 | SELECT |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOKE,DENY |
2.基本表的定义、删除与修改
基本表的定义:
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
/* 列级完整性约束条件*/
Sname CHAR(20) UNIQUE,
/* Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
删除基本表:
DROP TABLE Student CASCADE/RESTRICT ;
- 基本表定义被删除,数据被删除
- 表上建立的索引、视图、触发器等一般也将被删除
- 若表上建有视图,选择RESTRICT时表不能删除
- 如果选择CASCADE时可以删除表,视图也自动被删除
修改基本表:
- 向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;
- 将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数
ALTER TABLE Student ALTER COLUMN Sage INT;
- 增加课程名称必须取唯一值的约束条件
ALTER TABLE Course ADD UNIQUE(Cname);
3.索引的概念和特点
概念:索引就是加快检索表中数据的方法。
特点:
- 索引可以加快数据库的检索速度。
- 索引降低了数据库插入、修改、删除等维护任务的速度。
- 索引创建在表上,不能创建在视图上。
- 索引既可以直接创建,也可以间接创建。
- 可以在优化隐藏中,使用索引。
- 使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引。
- 根据索引的顺序与数据表的物理顺序是否相同,可以把索引分为两类型:聚簇索引和非聚簇索引。
4.插入、删除、修改、查询数据
插入:
(1)插入元组:
- 插入一条选课记录 ('2112080234','1')。
INSERT
INTO SC(Sno,Cno)
VALUES('2112080234','1');
(2)插入子查询结果
- 对每一个系,求学生的平均年龄,并把结果存入数据库。
INSERT
INTO Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;
删除:
(1)删除某一个元组的值:
- 删除学号为2112080234的学生记录。
DELETE
FROM Student
WHERE Sno='2112080234';
(2)删除多个元组的值:
- 删除所有学生的选课记录。
DELETE
FROM SC;
切记:delete删除全部的时候,后面没有“*”,直接空着。
(3)带子查询的删除语句:
- 删除计算机科学系所有学生的选课记录。
DELETE
FROM SC
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='CS');
修改:
(1)修改某一个元组的值
- 将学生2112080234的年龄改为22岁。
UPDATE Student
SET Sage=22
WHERE Sno='2112080234';
(2)修改多个元组的值
- 将所有学生的年龄增加1岁。
UPDATE Student
SET Sage=Sage+1;
(3)带子查询的修改语句
- 将计算机科学系全体学生的成绩清零。
UPDATE SC
SET Grade=0
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='CS');
查询:
(1)单表查询
- 查询全体学生的学号与姓名。
SELECT Sno,Sname
FROM Student;
(2)查询全部列
- 查询全体学生的详细记录。
SELECT *
FROM Student;
(3)完整查询语句详见课本P89-P114
5.视图
- 视图与基本表不同,是一个虚表。
- 数据库中只存放视图的定义,不存放对应的数据。
- 具体代码详见课本P121-P127
- 视图定义在表之上,对视图的一切操作最终也要转换为对基本表的操作。
- 视图的作用:
(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
(5)适当利用视图可以更清晰地表达查询。
第四章
1.什么是数据库的安全性
数据的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。
2.实现数据库系统安全性的技术和方法
- 用户身份鉴别
-
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
- 自主存取控制DAC
-
- 通过授权,控制对敏感数据的存取。
- 具体授权代码详见课本P141-P147 。
- 在数据库系统中,定义存取权限称为授权。
- 用户权限是由两个要素组成的:数据库对象和操作类型。
- 在关系数据库系统中,存取控制的对象不仅有数据本身,还有数据库模式。
- 强制存取控制MAC
-
- 对数据进行密级标注,符合密级要求的用户才可操纵数据。
- 在强制存取控制中,数据库管理系统所管理的全部实体分为主体和客体两大类。
-
-
- 主体——系统中的活动实体
- 客体——系统中的被动实体
-
- 视图
-
- 通过对不同用户定义不同视图,可以把要保密的数据对无权访问用户隐藏。
- 视图机制间接地实现支持存取谓词的用户权限定义。
- 审计
-
- 把用户对数据库的操作存入审计日志,便于重现。
- 既能审计成功操作,也能审计失败操作。
- 数据加密
-
- 存储加密
-
-
- 透明存储加密——内核级加密保护方式,对用户完全透明
- 非透明存储加密——通过多个加密函数实现
-
-
- 传输加密
-
-
- 链路加密——报文报头均加密
- 端到端加密——只加密报文,不加密报头
-
- 推理控制
- 隐蔽信道
- 数据隐私保护
存取控制机制主要包括定义用户权限和合法权限检查两部分。
第五章
1.什么是数据库的完整性
数据库的完整性是指数据的正确性和相容性。
正确性:符合现实世界语义。
相容性:符合逻辑。
2.关系数据库管理系统完整性实现的机制
- 实体完整性——定义主码
-
- 列级定义主码:
create table Student
(
Sno char(9) primary key, /*在列级定义主码*/
Sname char(20) not null,
Ssex char(2),
Sage smallint,
Sdept char(20)
);
-
- 表级定义主码:
create table Student
(
Sno char(9),
Sname char(20) not null,
Ssex char(2),
Sage smallint,
Sdept char(20)
primary key(Sno) /*在表级定义主码*/
);
- 参照完整性——定义外码
create table SC
(
Sno char(9) not null,
Cno char(4) not null,
grade samllint,
primary key(Sno,Cno), /*在表级定义实体完整性*/
foreign key (Sno) references Student(Sno), /*在表级定义参照完整性*/
foreign key (Cno) references Course(Cno), /*在表级定义参照完整性*/
);
违约处理:
-
- 拒绝执行
- 级联操作
- 设置为空值
- 用户定义完整性
create table DEPT
(
Deptno numeric(2),
Dname char(9) unique not null, /*要求列值唯一,且不能取空值*/
Location char(10),
primary key (Deptno)
);
- 断言
限制数据库课程最多60名学生选修。
create assertion ASSE_SC_DB_NUM
check (60>= (select count(*)
from Course,SC
where SC.Cno=Course.Cno and Course.Cname='数据库')
);
- 触发器
-
- 触发器是用户定义在关系表上的一类由事物驱动的特殊过程。
- 触发器不能定义在视图上。
- 一旦定义,触发器将被保存在数据库服务器中。
- 任何用户对表的增、删、改操作均由服务器自动激活相应的触发器。
定义一个触发器,当在SC表中作更新和插入操作时,如果学生成绩小于60,自动改为60。
create trigger insert_or_update_grade
on SC
for insert update
as
update SC set grade =60
from inserted i
where SC.Sno=i.Sno and SC.Cno=i.Cno and i.grade<60;
第六章
1.函数依赖的基本概念
- 平凡的函数依赖
-
- X->Y,但Y包含于X
- 非平凡的函数依赖
-
- X->Y,但Y不包含于X
2.完全函数依赖、部分函数依赖、传递函数依赖
- 完全函数依赖
-
- 整个属性组是码,且任意属性组的真子集不能构成码。
- 部分函数依赖
-
- 存在属性组的真子集能构成码。
- 传递函数依赖
-
- 在同一个关系模式中存在A->B,B->C,这就能推出来A->C,为传递函数依赖。
3.候选码、主码
- 候选码:当一个关系有n个属性或属性组可以唯一标识时,则说明该关系有n个候选码。
- 超码:函数依赖于属性(完全部分均可)
- 主码:在候选码中选定其中一个作为主码。候选码中出现过的属性称为主属性。非主属性就是不包含在任何候选码中的属性。
- 全码:整个属性组是码
- 外码:属性或属性组X不是当前关系模式的码,是另一个模式的码
4.各个范式的含义
- 1NF
-
- 每个分量必须是不可分的数据项。
- 第一范式就是无重复的列。
- 可能存在四方面的问题:
-
-
- 数据冗余度大
- 插入异常
- 删除异常
- 修改异常
-
- 2NF
-
- 每一个非主属性完全依赖于任何一个候选码。
- 第二范式就是每一行被码唯一标识。
- 3NF
-
- 每一个非主属性既不传递依赖于码,也不部分依赖于码。
- 第三范式要求一个数据库表中不能包含其他表中已包含的非码信息。
- 仍可能存在插入异常和删除异常。
- 可能存在主属性对码的部分依赖和传递依赖。(BCNF范式将解决这个问题)
- BCNF
-
- 每一个决定因素都包含码。
- 在函数范畴内已实现了彻底的分离,已消除了插入异常和删除异常。
- 判断是否为BCNF:
(1)找出每一组关系的决定因素。
(2)找出候选码(可能是好几组候选码)。
(3)判断每一个决定因素是否都包含码(包含其中一个候选码就行)。
- 4NF
-
- 在BCNF基础上消除了多值依赖。
- 在多值依赖范畴内,实现了最高的规范化程度。
规范化过程:
第七章
1.数据库的设计过程
- 需求分析
-
- 了解与分析用户需求。
- 建立数据字典
- 概念结构设计
-
- 通过对用户需求进行综合、归纳、抽象,形成一个独立于具体DBMS的概念模型。
- 形成ER图。
-
-
- 各子系统的ER图之间的冲突:
-
-
-
-
- 属性冲突
- 命名冲突
- 结构冲突
-
-
-
-
- ER图三要素:
-
-
-
-
- 实体型
- 实体的属性
- 实体型之间的联系
-
-
-
- 概念结构设计中划分实体和属性的方法:
-
-
- 分类
- 聚合
- 概括
-
-
- 表示概念结构的常用方法和描述工具是实体-联系方法。
- 逻辑结构设计
-
- 将ER图转换为具体的数据模型。
- 根据要求建立视图形成外模式。
- 如何构造出一个合适的数据逻辑结构是关系数据库规范化理论主要解决的问题。
- 设计用户子模式在逻辑结构设计阶段完成。
- 子模式DLL用来描述数据库的局部逻辑结构。
- 物理结构设计
-
- 为逻辑数据模型选取一个合适的应用环境的物理结构、存储结构和存取方法。
- 常用的存取方法:
-
-
- 索引方法
- 聚簇方法
-
-
- 进行物理存储安排,建立索引,形成内模式。
- 数据库实施
-
- 根据逻辑设计、物理设计,建立数据库,编写调试应用程序。
- 数据库实施阶段包括两项重要工作:
-
-
- 数据的载入
- 应用程序的编码和调试
-
- 数据库运行与维护
-
- 维护工作主要包括:
-
-
- 数据库的转储和恢复。
- 数据库的安全性、完整性控制。
- 数据库性能的监督、分析和改造。
- 数据库的重组织与重构造。
-
第八章
1.存储过程的概念和特点
概念:
- 将一些能够完成特定功能或者需要多次使用的功能编写成各个子程序,并将子程序保存在SQLServer服务器中,用户通过子程序名来调用。
- 这些子程序就是存储过程。
特点:
- 增加性能
- 运行效率高
- 可保证数据的安全性和完整性
- 降低网络的通信量
- 方便实施企业规划
第九章
1.代数优化和物理优化的概念
- 代数优化(逻辑优化):
-
- 概念:改变查询语句中操作的次序和组合,不涉及底层的存取路径。对于一个查询语句有许多存取方案,它们的执行效率不同,仅仅进行代数优化是不够的。
- 物理优化(非代数优化):
-
- 概念:要选择高效合理的操作算法或存取路径,求得优化的查询计划。
- 代数优化与逻辑优化属于查询优化。
补充一点知识点:
- 课本上的查询处理步骤只有四步:
-
- 查询分析
- 查询检查
- 查询优化
- 查询执行
- 有个题目给出了查询处理全过程:
-
- 查询缓存
- 查询解析
- 查询预处理
- 查询优化
- 查询执行
第十章
1.事务的概念和性质
- 概念:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
- 性质(ACID特性):
-
- 原子性
- 一致性
- 隔离性
- 持续性(永久性)
第十一章
1.并发操作所带来的哪些数据库不一致
- 数据不一致性:
-
- 丢失修改
- 不可重复读
- 读 "脏" 数据
- 产生以上三种现象的原因是并发操作破坏了事务的隔离性。
- 并发控制的主要方法是封锁机制。
- 为了应对这些数据不一致性,主要技术主要有:
-
- 封锁
-
-
- 基本封锁类型有两种:
-
-
-
-
- 排他锁(写锁)
- 共享锁(读锁)
-
-
-
- 时间戳
- 乐观控制法
- 多版本并发控制
预防死锁通常有两种方法:一次封锁法和顺序封锁法。
二、简答题汇总
1.数据库系统的特点。
- 数据结构化——数据库系统与文件系统的本质区别。
- 数据的共享性高、冗余度低且易扩充。
- 数据独立性高。
- 数据由数据库管理系统统一管理和控制。
2.数据库管理系统的功能。
- 数据定义功能
- 数据组织、存储和管理
- 数据操控
- 数据库的事务管理和运行管理
- 数据库的建立和维护
- 其他功能,如与其他软件系统通信
3.数据库的安全性。
- 概念:数据库的安全性:保护数据库,以防不合法使用造成的数据泄漏、更改或破坏。
- 不安全因素与对应措施:
-
- 非授权用户对数据库的恶意存取和破坏
-
-
- 措施:
-
-
-
-
- 身份鉴别
- 存取控制
- 视图
-
-
-
- 重要或敏感数据泄露
-
-
- 措施:
-
-
-
-
- 强制存取控制
- 加密存储
- 加密传输
-
-
-
- 安全环境的脆弱性
-
-
- 措施:
-
-
-
-
- 加强计算机系统的安全性保证
-
-
安全性技术:
-
- 1.用户身份鉴别
-
-
- 1.1静态口令鉴别
- 1.2动态口令鉴别
- 1.3生物特征鉴别
- 1.4智能卡鉴别
-
-
- 2.自主存取控制DAC
- 3.强制存取控制MAC
- 4.视图
- 5.审计
- 6.数据加密
-
-
- 6.1存储加密
-
-
-
-
- 透明存储加密
- 非透明存储加密
-
-
-
-
- 6.2传输加密
-
-
-
-
- 链路加密
- 端到端加密
-
-
-
- 7.推理控制
- 8.隐蔽信道
- 9.数据隐私保护
4.数据库设计过程的各个阶段以及主要工作。
- 需求分析:了解用户需求(数据与处理)
- 概念结构设计:形成概念模型
- 逻辑结构设计:将概念结构转化为某个数据库管理系统所支持的数据模型
- 物理结构设计:选择合适的物理结构(存取)
- 数据库实施:设计人员简历数据库,写程序,数据入库,试运行
- 数据库运行和维护:正式使用,不断改进
完整型回答:
1. 需求分析阶段:是整个设计的基础,了解用户需求(数据与处理),该阶段做的是否充分与准确,决定了构建数据库的速度和质量,独立于具体的数据库管理系统。
2. 概念结构设计:是整个设计的关键,通过对用户需求进行综合、归纳和抽象,形成一个独立于数据库管理系统的概念模型,常见的概念模型:E-R图,实体联系方法。
3. 逻辑结构设计:将概念结构转化为某个数据库管理系统所支持的数据模型,并对其进行优化,与数据库管理系统类型相关。
4. 物理结构设计: 为逻辑数据结构选取一个最适合应用环境的物理结构。包括存储结构和存取方法,由数据库管理系统自动完成,建立索引在物理结构设计阶段。
5. 数据库实施:创建数据库模式,装入数据,数据库试运行。
6. 数据库运行和维护:数据库运行过程中的评估、调整与修改由数据库管理员负责。
5.根据关系模式写出数据依赖、主属性、非主属性、主码并判断满足第几范式。
例题1:
关系模式R(员工编号,日期,零件数,部门名称,部门经理),表示某个工厂中生产零件数以及员工所在部门和经理信息。已知语义:每个员工每天只有一个日生产零件数,每个员工只在一个部门工作,每个部门只有一个经理。
要求:
(1)写出关系模式R的基本函数依赖和码
(2)判断R是几范式,并说明原因
(3)将R分解成高一级范式
解:
设关系模式R中的员工编号为A,日期为B,零件数为C,部门名称为D,部门经理为E
(1)写出关系模式R的基本函数依赖和码
根据上述语义确定基本函数依赖集
F={ (A,B) -> C,A -> D,D -> E}
码为 (A,B)
(2)判断R是几范式,并说明原因?
R是第一范式(1NF)
原因:因为码为 (A,B) 存在非主属性(部门名称)对码的部分函数依赖
(员工编号 -> 部门名称)
(3)将R分解成高一级范式
只要消除非主属性对码的部分函数依赖就行
分解
R1(A,B,C)
R2(A,D,E)
即:
R1(员工编号,日期,零件数)
R2(员工编号,部门名称,部门经理)
例题2:
关系模式R(商店编号,商品编号,商品库存数量,部门编号,负责人),表示某商业集团数据库中的想关信息。已知道语义:每个商店的每种商品只在该商店的一个部门中销售。每个商店的每个部门只有一位负责人,每个商店的每种商品只有一个库存数量。
要求:
(1)写出关系模式R的基本函数依赖和码
(2)判断R是几范式,并说明原因
(3)将R分解成高一级范式
解:
(1)写出关系模式R的基本函数依赖和码
设商店编号为A,商品编号为B,商品库存数量为C,部门编号为D,负责人为E
根据题干中的语义确定基本函数依赖集
F = { (A,B) -> D , ( (A,D) -> E , (A,B) -> C }
码为 (A,B) 即(商店编号,商品编号)
(2)判断R是几范式,并说明原因
R是第二范式(2NF)
原因:
存在非主属性 (E) 对码 (A,B) 的传递函数依赖,所以R是二范式不是三范式
(3)分解
R1 (A,B,C,D)
R2 (A,D,E)
即:
R1(商店编号,商品编号,商品库存数量,部门编号)
R2(商店编号,部门名称,负责人)
例题3:
关系模式R(教师编号,教师姓名,所在部门,借阅图书编号,书名,借书日期,还书日期,备注),表示某图书馆数据库中的相关信息,已知语义:教师编号决定教师姓名,且教师编号唯一,借阅图书编号决定书名,且借阅图书编号是唯一的,教师编号、借阅图书编号和借书日期决定还书日期。
要求:
(1)写出关系模式R的基本函数依赖和码
(2)判断R是几范式,并说明原因
(3)将R分解三级范式
解:
设教师编号为A,教师姓名为B,所在部门为C,借阅图书编号为D,书名为E,借书日期为F,还书日期为G,备注为H。
(1)写出关系模式R的基本函数依赖和码
根据题干中的语义确定基本函数依赖集
F = { A -> B , D -> E , A -> C , A -> H , (A,D,F) -> G }
码为 (A,D,F)
即:
(教师编号,借阅图书编号,借书日期)
(2)判断R是几范式,并说明原因
R是第一范式(1NF)
原因:
存在非主属性 (B,E) 对码 (A,D,F) 的部分函数依赖
(3)
R1 (A,B,C)
R2 (D,E)
R3 (A,D,F,G,H)
即:
R1(教师编号,教师姓名,所在部门)
R2(借阅图书编号,书名)
R3(教师编号,借阅图书编号,借书日期,还书日期,备注)
三、综合设计题汇总
1.根据需求描述画出数据库的E-R图,并将E-R图转换成关系模式。
例题1:
数据库设计,现有某高校图书管理系统的局部应用,包括 "读者",“书”两个实体,已知每个读者可借阅多本书,每本书可以被多个读者借阅,每本书在借阅时要记录借书日期和还书日期。
要求:
(1)请设计适当的属性,画出E-R图。
(2)请将E-R图转换为关系模式(之处关系名、属性名、主码)。
(3)写出关系模式应该遵循的实体完整性、参照完整性约束条件。
解:
(1)
(2)
读者表(读者编号,读者姓名,读者性别,读者电话)
书表(书编号,书名,出版社,作者)
借阅表(读者编号,书编号,借书日期,还书日期)
(3)
实体完整性:读者表中的读者编号 为主码 不为空 ,书表中的书编号 为主码 不为空 ,借阅表中的读者编号以及书编号为主码,不为空。
参照完整性:借阅表中的读者编号参照读者表中的读者编号,借阅表中的书编号参照书表中的书编号。
例题2:
数据库设计,现在有某超市管理系统的局部应用,包括“超市”,“员工”两个实体。已知每个超市聘用多名员工,每名员工只能在一家超市工作,超市聘用的员工有聘期和每月底薪。要求:
(1)请设计适当的属性,画出E-R图。
(2)请将E-R图转换为关系模式(之处关系名、属性名、主码)。
(3)写出关系模式应该遵循的实体完整性、参照完整性约束条件。
解:
(1)
(2)和(3)照猫画虎跟例题1差不多。
2.SQL综合应用,使用SQL语句完成对一个信息处理系统的各项操作。
猜测应该是跟头歌上实训差不多,可以看看头歌的实训题,还有课本第三章和第四章的代码。还涉及到课本第二章的关系代数演算的相互转换。
四、参考题库
CSDN上找的“数据库题库”,感觉可以参考下。
(引号里面就是链接)