这部分是老师给的考点大纲内容
关系模式(元组、属性)
属性(码、域)
码(超码、候选码、主码、外码)
形式化关系查询语言(关系代数、关系演算)
关系代数(基本运算:选择、投影、集合并、集合差、笛卡尔积、更名;附加运算:集合交、自然连接、赋值、外连接;扩展运算:广义投影、聚集)
关系演算(元组关系演算、域关系演算)
数据库设计(需求分析、概念设计、逻辑设计、物理设计)
概念设计——实体-联系模型(ER图的设计,ER图转换为关系模式)
逻辑设计——规范化理论(函数依赖理论,第三范式、BC范式)
函数依赖理论(Armstrong公理、函数依赖集闭包、属性集闭包、最小覆盖)
Armstrong公理(三条规则:自反律、增广律、传递律;三条推论:分解律、合并律、伪传递律)
第三范式、BC范式(定义;分解:无损分解、保持函数依赖)
事务管理(事务的ACID特性、并发控制、故障恢复——基于日志的恢复机制)
并发控制(隔离级别、基于封锁的协议)
SQL语言(DDL语言、DML语言、DCL语言、TCL语言)
DDL语言——CRATE/ALTER/DROP(数据库、表、视图、约束、索引;函数、存储过程、触发器)
DML语言(SELECT:多表连接、嵌套子查询、分组聚集、排序;INSERT、UPDATE、DELETE)
DCL语言(GRANT、REVOKE)
TCL语言(COMMIT、ROLLBACK)
程序语言访问数据库的基本方法(ODBC/JDBC/ADO.NET;SQL语言嵌入宿主语言)
下面是选择题的一些零碎的考点
外模式
模式
内模式
外模式是最接近用户的模式
外模式/模式映像:保证逻辑独立性
模式/内模式映像:保证物理独立性
模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图。一个数据库只能有一个模式。
外模式是模式的一个子集,一个模式可以有多个外模式。
内模式定义了数据库中全部数据的物理结构,还定义了数据存储的方法等。一个数据库只有一个内模式。
DBS(数据库系统)包含DBMS(数据库管理系统)
数据库的概念模型独立于(具体的机器和DBMS)
DBMS是(再操作系统支持下的系统软件)
下列哪个模型不可以归属到逻辑模型?()
E-R图模型 层次模型 网状模型 关系模型
若D1={a1,a2,a3},D2={1,2,3,},则D1*D2集合中共有元组(9)个
直接3*3。如果问的是属性个数就是6(3+3)
行对应元组,列对应属性
对一个关系做投影操作后,新关系的元组个数(等于)原来关系的元组个数。
投影是选出列,选择是选出行
自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的(属性)
选取关系中 满足某个条件的元组的关系代数运算称为(选择运算)
两个关系在没有公共属性时,其自然连接操作表现为(笛卡尔积)
若某查询语句中有“%田_ _”语句,在查询结果中有可能含有()CD
A.张田 B.陈力田 C.田华 D.刘田耕
%代表0或多个,_代表一个英文字符,且必须为一个
在CREATE TABL语句中实现完整性约束的子句有()。ABCD
A.NOT NULL B.PRIMARY KEY C.FOREIGN KEY D.CHECK
完整性约束包括三个,一共是实体完整性、参照完整性和用户自定义完整性约束。
实体完整性是对主码的约束,参照完整性是对外码的约束
用户自定义完整性约束包括NOT NULL、CHECK等
不能执行 ABCD
职工表
职工号 | 职工名 | 部门号 | 工资 |
001 | 李红 | 01 | 580 |
005 | 刘军 | 01 | 670 |
025 | 王芳 | 03 | 720 |
038 | 张强 | 02 | 650 |
部门表
部门号 | 部门名 | 主任 |
01 | 人事处 | 高平 |
02 | 财务处 | 蒋华 |
03 | 教务处 | 许红 |
04 | 学生处 | 杜琼 |
- 从职工表中删除行(‘025’,‘王芳’,‘03’,720)
- 将行(‘005’,‘乔兴’,‘04’,750)插入到职工表中
- 将职工号为‘001‘的工资改为700
- 将职工号为‘038‘的部门号改为’03‘
【解析】A.删除只要在表中能找到对应的行就能删除;B.不行,职工号是主码,不能重复,005已经存在于表中;D.可以,只要能在部门表中能找到对应的部门号就可以更改,如果改为“05‘就不行,因为表中不存在05的部门号,这实际上就是参照完整性约束。
数据库管理系统经历了人工管理、文件管理、数据库系统管理三个阶段。
- 人工管理
没有专门硬件软件
数据没有独立性,数据不保存
- 文件管理
具有一定独立性
文件系统
冗余大
- 数据库系统管理
结构化
共享高,冗余低易扩充(冗余用于不会消除)
独立性高
由DBMS(数据库管理系统)统一管理
E-R图转换成关系模式,最多可以转换为()个关系模式
看实体个数,以及有没有多对多的关系,多对多关系需要单独创建一个关系模式,一对多、一对一不需要,关系模式个数=多对多关系个数(if have)+实体个数
设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是()D
A.该操作不存在问题 B.该操作丢失修改 C.该操作不能重复读 D.该操作读“脏“数据
T1 | T2 |
读A=100 A=A*2写回 ROLLBACK 恢复A=100 | 读A=200 |
读“脏“数据意思就是读到了没有用的数据,只要在题目中看到”回滚“(ROLLBACK)基本就是读”脏“数据
设有两个事务T1、T2,其并发操作如图所示,下面评价正确的是()B
A.该操作不存在问题 B.该操作丢失修改 C.该操作不能重复读 D.该操作读“脏“数据
T1 | T2 |
读A=10 A=A-5写回 | 读A=10 A=A-8写回 |
T1想要修改A的值为5,此时T2又对A进行了修改使其变成了2,这时候T1的修改就丢失了。一般情况下两个事务“同时“读”同时“改就会造成操作丢失修改。
如果出现一个事务内读A写A又读A写A,则说明该操作不能重复读
事务的ACID特性
- 原子性
- 一致性
- 隔离性
- 持续性
视图创建完成后,数据字典中存放的是(视图的定义)
使用SQL语句进行查询操作时,若希望查询结果中不出现重复元组,应在SELECT子句中使用(DISTIGCT)保留字
当关系模式R属于3NF,下列说法中()是正确的。B
A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常
C.一定属于BCNF D.A和C都是
3NF要是消除了插入和删除异常就不用再引入BCNF了。
关系模式中的关系模型至少是(1NF)
两端锁协议保证了并发调度的可串行性
插入异常是该插入的没插入
删除异常是指不该删除的被删除了
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
冲突:属性冲突、命名冲突、结构冲突
X锁写锁排它锁
S锁读锁共享锁(Share)
当事务对A加了S锁,其他事务可以对A加S锁不能加X锁
当事务对A加了X锁,其他任何事务不能对A加任何类型的锁
要保证数据库逻辑数据独立性,需要修改的是(模式与外模式的映射)
(数据冗余很高)不属于数据库特点
数据库特点包括数据共享、数据完整性和数据独立性高等
学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是(一对多)
反映现实世界中实体及实体间联系的信息模型是(E-R模型)
对数据库并发操作有可能带来的问题包括(读“脏“数据)
关系数据模型的三个组成成分:完整性规则、数据结构和数据操作
对关系代数表达式的优化策略中,首先要做的是(尽早执行选择运算)
事务有多个性质,包括原子性、一致性、隔离性和持续性(不包含一致性)
SQL语言通常称为结构化查询语言
如何构造一个合适的数据逻辑结构是关系数据库规范化理论主要解决的问题
SQL语言提供数据库定义、数据操纵、数据控制等功能
数据库保护问题包括:安全性保护、完整性、故障恢复和并发控制等多方面
关系代数中专门的关系运算包括:选择、投影、连接和除法
数据库中常用的四种文件组织方式是:顺序文件、索引文件、散列文件和倒排文件
关系数据库数据操作的处理单位是关系,层次和网状数据库数据操作的处理单位是记录
在关系数据库模型中,两个关系R1和R2之间存在1:M的联系,可以通过一个关系R2中的外部关键字值在相关联的另一个关系R1中检索相对应的记录
数据库的逻辑模型设计阶段,任务是将总体E-R模型转换成关系模型。
关系规范化理论是设计关系数据库的指南和工具
当数据库被破坏后,如果事先保存了日志文件和数据库的副本,就有可能恢复数据库
关系中主码的取值必须唯一且非空,这条规则是数据流完整性规则
事务:事务是一个不可分割的操作序列,是数据库环境中的逻辑工作单位
DBA:控制数据整体结构、负责DBS正常运行的人或机构
SQL语言中的视图:在SQL中,外模式一级数据结构的基本单位是视图,它是从若干基本表和其他视图中构造出来的,视图并不存储对应的数据,只是将视图的定义存有数据字典中。
数据字典:是对系统中数据的详细描述,它提供对数据库数据描述的集中管理
数据库管理系统的主要功能有哪些:数据库定义、操纵、保护、存储、维护和数据字典
数据库系统中常见的故障有哪些:事务内部故障、系统故障、介质故障、计算机病毒故障
简述SQL语言的组成
数据定义、数据操纵、数据控制、嵌入式SQL语言的使用规定
说明关系模型有哪三类完整性规则?
实体完整性、参照完整性、用户自定义完整性
要保证数据库的数据独立性,需要修改的是三层模式之间的两种映射
不正确的是数据库避免了一切数据的重复
必须进行查询优化的是关系数据库
在视图上不能完成的操作是在视图上定义新的基本表
关系数据模型的三个组成部分中包括完整性约束、数据结构、恢复(不包括数据操作 )
不属于关系数据库特点的是(多用户访问)
属于的是数据冗余小、数据共享性高、数据独立性高
数据库的并发操作可能带来的问题包括(丢失更新)
在基本SQL语言中不可以实现(并发控制)
下面是一些大题题目
程序设计题
题一
S(SNO,SN,CITY)
P(PNO,PN,COLOR)
J(JNO,JN,CITY)
SPJ(SNO,JNO,PNO,QTY)
其中:SNO为供应商号,SN为供应商姓名,CITY为所在城市;PNO为零件号,PN为零件名称,COLOR为颜色;JNO为工程项目号,JN为工程项目名称;QTY为数量。
- 试用关系代数语言完成下列查询:求出使用全部零件的工程项目名称。
- 试用SQL语言完成下列查询:把零件号为P2的零件重量增加5,颜色改为黄色。
- 试用SQL完成以下查询:取出一个以上供应商提供的零件号。
UPADE P
SET weight = weight + 5, COLOR = ‘黄色’
WHERE PNO = “P2”
【解析】
出现查找“全部”的字眼,用除法来做,要求的放在除号右边即被除数的位置。此题查找的是“零件“的工程项目名称,所以到有关零件的表中去寻找,找到P(PNO,PN,COLOR)这个表是零件的,其中能用的只有PNO零件号,颜色和名称对于查找没有其他用处。此时再来找除号左边的除数,因为要求的是零件的“工程项目“名称,所以要和工程项目的表联系起来(也可以说此时和PNO有关的除了P只有SPJ了),找到SPJ(SNO,JNO,PNO,QTY)中既PNO零件号又有JNO工程项目号,可以将工程项目和零件连接在一起,拿这个来做除数。接着由于最后要的是工程项目“名称“,所以再与J(JNO,JN,CITY)进行连接,完成查询。
这里说是查询实际上是更新,更新的时候在SQL语句中我们用的是UPADE,UPADE后跟要更新的表名,再用SET写要更新的内容(此题中式重量增加5,颜色改为黄色),WHERE后跟条件(即是更新哪个零件)。
查询我们用的是SELECT,SELECT什么FROM 表的格式,跟数量有关的都会用GROUP BY进行分组,再用COUNT进行计数。
题2
现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)
课程(课号,课名,学分)
学习(学号,课号,分数)
用关系代数实现下列查询:
- 检索“国际贸易”专业中获得奖学金1000元的学生信息,包括学号、姓名、课名和分数;
用SQK语句实现下列查询:
- 检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业;
- 对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元;
题3
设有下列关系模式:
CUSTOMERS(CID,CNAME,CITY,DISCNT)
PRODUCTS(PID,PNAME,CITY,QUANTITY,PRICE)
ORDERS(ORDID,DATE,CID,PID,QTY,DOLLARS)
客户表CUSTOMERS由客户号(CID)、客户名(CNAME)、客户所在城市(CITY)、每个客户的产品折扣率(DISCNT)组成;产品表PRODUCTS由产品号(PID)、产品名(PNAME)、产品库所在城市(CITY)、销售数量(QUANTITY)、产品单价(PRICE)组成;订单表ORDERS由订单号(ORDID)、定货日期(DATE)、客户号(CID)、产品号(PID)、定货数量(QTY)、订货总金额(DOLLARS)组成。
用关系代数实现下列查询:
- 查询订购了全部产品的客户姓名。
用SQL语句实现下列查询:
- 查询2009年3月1日前订购电风扇的客户姓名。
- 查询被订购超过10次的产品名。
应用题
题一
设有关系模式R(C,T,S,N,G),其中C代表课程,T代表教师的职工号,S代表学生号,N代表学生的姓名,G代表成绩。
其函数依赖集F={C→T,CS→G,S→N},即每一门课由一名教师讲授,每个学生每门课只有一个成绩,学生的学号决定学生的姓名。
- 求该关系模式的候选码(键)
- 将该关系模式分解为即符合BCNF,又具有无损连接的若干关系模式。
题2
设关系模式R<U,F>其中:U={A,B,C,D,E,P}, F={A→B,C→P,E→A,CE→D},求出R的所有候选关键字。
候选关键字和候选码是一个东西
题3
判断下面的关系模式最高属于第几范式,并说明理由。
R({A,B,C},{AC→B,AB→C,B→C})
题4
设关系R具有属性集合{O,I,S,A,B},函数依赖集合{I→B,IS→A,A→O}。把R分解成3NF,并使其具有无损连接性和函数依赖保持性。
有关系数据库如下:
学生(学号,姓名,性别,专业、奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
检索没有获得奖学金、同时至少有一门课程成绩在 95 分以上的学生信息,包 括学号、姓名和专业;
检索没有任何一门课程成绩在 80 分以下的所有学生的信息,包括学号、姓名 和专业
对成绩得过满分(100 分)的学生,如果没有获得奖学金的,将其奖学金设为 1000 元
定义学生成绩得过满分(100 分)的课程视图 AAA,包括课程号、名称和学分;
现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
检索至少学过课程号为“C135”和“C219”的学生信息,包括学号、姓名和 专业;
从学生表中删除成绩出现过 0 分的所有学生信息
定义“英语”专业学生所学课程的信息视图 AAA,包括学号、姓名、课程号 和分数