建模
概念
ER(由ER转化为关系模型得到逻辑模型)
manymany分开写表,oneone一侧做另一侧性质,onemany都可以
逻辑
关系模型
规范化设计
范式
第一范式:原子性,无法再分
第二范式:非主属性,不存在部分函数依赖,如果有函数依赖则必须是完全
第三范式:在第二范式的基础上去掉传递关系
bc范式:消解了所有的不必要的函数依赖,如果有依赖则被依赖的要是候选键
键
超键
候选键:极小超键
主键:一个候选键
层次模型
网状模型
约束
级联、拒绝、setnone
函数依赖
完全函数依赖,部分函数依赖,传递函数依赖
非规范化设计
水平分解:分开前几行后几行
垂直分解:抽出几列
物理
SQL
DDL
事务(并发调度,特性)
特性((A原子性C一致性)I独立性D持久性)
冲突可串行并发操作
两个事物使用同一个资源并有一个是写就是冲突的
前驱图无环就是冲突可串行的
严格两阶锁
日志undo先写日志(从下向上读)redo先写磁盘(从上到下读)
关系代数
基本操作(选择、投影、差、并、笛卡尔积)
到处操作(连接(外链接(信息不丢失)内连接(信息可能丢失))、交)
E.g.
For each of the following statements, indicate whether the entire statement is TRUE or FALSE
- If entity sets A and B have a many-to-many relationship, each entity in A must be related to more than one entity in B. F
SQL allows you to not only create a new table, but also to delete an existing table from the database. T
-
R ▷◁ (S ∩ T) = (R ▷◁ S) ∩ (R ▷◁ T) T
-
Among the“ACID” properties of a good database system, the “I” stands for “inexpensive”. F
-
Once the schema of a database is set, it cannot be changed. F
-
In a table, there is exactly one key, but there can be multiple candidate keys.
T -
The natural join of two relations R(A,B) and S(C,D), which have no common attributes, is equivalent to their Cartesian product. T
-
In SQL, any condition (in the where clause) involving Null values is treated as False. F
-
Given the snapshot of a table as below, we are certain that AB→D is an Functional Dependency of the table. F
-
Given an SQL query, there are often multiple ways of writing it in relational algebra. T
-
The basic operators in relational algebra are π,σ,ρ, ▷◁,∪,-. F
-
join is one of five basic operation F
-
under 3-valued logic,TRUE and (False or Not (unknown))=TRUE F
-
There are scenarios where redundancy in schema design is actually desired T
-
The expression"0!=Null"in the where clause of a SQL query is evaluated to be true F
When any value is compared with NULL, the truth value is UNKNOWN.
1.若一个关系有函数依赖集(AB→CD, A→D),则可确定它最高属于: A
A. 1NF B. 2NF
C. 3NF D. BCNF
2.如果想要查询长度大于等于4,倒数第三个字符为%的字符,LIKE后应为:C
A. ‘% ’ ESCAPE ‘’ B. '%_ ’
C. '%%_ ’ ESCAPE ‘’ D. '%/%_ _ ESCAPE /’
3.有关系模式A (a, b, c, d, e, f),存在如下函数依赖集:B
F={(a)→b,(a, c)→d,(c, d)→e, (e)→f }
可知其候选键是
A. (a, c, e) B. (a, c) C. (b, d, f) D. (a, c, d, e)
4.Which SQL doesn’t have syntax error: D
A. Select a , count(a) From Table A Groupby a Where a>1;F
B. Select max(avg(score)) From Table A Groupby course;
C. Select a, b, c From Table A Groupby a; (g b a就只能有a,select里不能有bc)
D. Select a, count(distinct b) From Table A Groupby a Having count(a)>1;
最早的数据模型是网状数据模型
数据库的( 完整性)是指数据的正确性和相容性
数据库管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段
关系是指D1,D2,D3…Dn的笛卡尔积的子集
DBMS存取控制机制主要包括两部分:强制存取控制,自助存取控制
并发控制会导致的后果:丢失修改,不可重复读,读脏数据
事务的ACID特性
原子性(Atomicity):事务的一组操作是不可分的。要么完全成功,要么完全失败,即使是在发生系统崩溃的情况下。
一致性(Consistency):符合程序员所定义的商业规则(Business Rules)。
隔离性(Isolation):两个事务并行执行的结果和串行执行的结果是一样的。也称可串行性(Serializability)。
持久性(Durability):事务提交后,结果是持久存储的,即使是在系统崩溃时。(内存缓冲区向磁盘的写入,通过日志来实现)。
关系模式中不可以表中套表
一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
上述三级协议的主要区别在于什么操作需要申请封锁,以及何时释放。
三级锁协议可以 B
1) 保证可重复读
2) 不会丢失修改
3) 不会读脏数据
4) 保证可串行化
A1)2)B1)2)3)C1)4)D2)3)4)
关系数据库中存储的是数据以及数据之间的联系。
- 在关系DB中,任何二元关系模式的最高范式必定是BCNF T
- 多值依赖的定义,少了Z=U-X-Y F
- 可串行化的调度一定满足两段锁协议 F
若并发事务都遵守两段锁协议 则对这些事务的任何并发调度策略都是可串行化的 若并发事务的一个调度是可串行化的 不一定所有事务都符合两段锁协议 - 文件系统已具有一定的数据独立性 T
程序和数据有了一定的独立性是在文件系统阶段
下列哪些操作不会破坏参照完整性 B
A在参考表插入元组
B修改参考表的元组
C在被参考表插入元组
D删除被参考表的元组
简答题