1、复习提纲复习提纲 第二章:关系模型的基本概念与基本理论 2.1 数据库的基本概念 数据库数据库是为了某个特殊目的存储在一起的相关数据记录的集合。数据库数据库 是表或者说是关系的集合。 数据库管理系统数据库管理系统,简称 DBMS。是一种软件产品,它把一个企业的数据以 记录的形式在计算机中保存起来(保存在磁盘上) Data Model (Data Model (数据模型数据模型) ) 1.是一组描述如何用计算机化的信息表示现实世界中的数据的定义 2.它同时也描述了访问和更新这些信息的操作类型 数据模型由数据结构、数据操作和完整性约束三部分组成。 2.2 关系模型的基本概念 数据结构: 表(关系)
2、, 属性(column/attribute), 元组(row/tuple), 表头(模式), 域(domain) 关系模型的基本数据结构是二维表 表的标题也被称作关系模式,是表的列名的集合 数据独立性:查询和表的内容无关 约束规则(relational rule) Rule 1. 第一范式规则第一范式规则 关系模型不允许含有多值属性 (有时称为重复字段) 和含有内部关系模型不允许含有多值属性 (有时称为重复字段) 和含有内部 结构(比如记录类型)的列结构(比如记录类型)的列 Thus cant have employees table with column “dependents“ whic
3、h contains multiple dependents names Rule 2. 只能基于内容存取行规则只能基于内容存取行规则 不可以要求检索表的第三行不可以要求检索表的第三行 不允许建立指向行的指针不允许建立指向行的指针 Rule 3. 行唯一性规则行唯一性规则 关系中的任何两个元组 (表中的行) 的值在同一时刻不能是完全关系中的任何两个元组 (表中的行) 的值在同一时刻不能是完全 相同的。所以关系可以被看作是元组的无序集合相同的。所以关系可以被看作是元组的无序集合。 键(key)与超键(superkey) 键就是候选键 超键 is a set of columns that has
4、 the uniqueness property e.g. A superkey for CUSTOMERS:(cid, cname) key is a minimal superkey: no subset of columns also has uniqueness property. e.g. A key for CUSTOMERS:cid 每个表都至少有一个键 空值(null value) 表 T 中的任意行在主键列的取值都不允许为空值(实体完整性规则) 2.3 关系模型的基本理论 关系代数(relational algebra) 表/关系在关系代数中的表示 关系代数中的运算符: 传统
5、的集合运算符 table alias in FROM clause 方法 1 table_name as alias_name 方法 2 table_name alias_name column alias in SELECT clause:expression as alias_name UNION 无重复,UNION ALL 可能有重复 数据更新命令的语句成分 3.2 基本的数据查询命令 单表查询 多表查询: 联接(join)查询 嵌套查询(subquery) 表自身的连接查询 扩展的查询谓词: between and is null, is not null like in, not i
6、n some, any, all exists 3.3 复杂的数据查询命令 统计查询 COUNT SUM AVG MAX MIN select cid from customers c1 where discnt Y,如果对分解中的某一个表 Ti ,有 XYHead(Ti),则称该函 数依赖在 T 的分解中被保持,或者说,T 的分解保持了函数依赖 XY 。此时,我们也说函数依赖 XY “在 Ti 被保持” ,或者说“存 在于 Ti 中”或者“在 Ti 中” 。 算法:到 3NF 且能够满足无损联结性和依赖保持性的分解算法 第七章:数据定义 基表定义命令 基本的建表命令 create table
7、 orders( ordno integer not null, month char(3), cid char(4) not null, aid char(3) not null, pid char(3) not null, qty integer not null constraint qtyck check( qty = 0 ), dollars float default 0.0 constraint dollarsck check ( dollars = 0.0 ), primary key ( ordno ), constraint cidref foreign key (cid)
8、 references customers, constraint aidref foreign key (aid) references agents, constraint pidref foreign key (pid) references products ); create table orders ( ordno integer not null, month char (3), cid char (4) not null references customers, aid char (3) not null references agents, pid char (3) not
9、 null references products, qty integer not null constraint qtyck check ( qty = 0 ), dollars float default 0.0 constraint dollarsck check ( dollars = 0.0 ), primary key (ordno) ); 各种数据完整性约束的含义及其定义方法 完整性约束:实体完整性(主关键字不允许为空且具有唯一性) 、参 照完整性、用户定义完整性 UNIQUE 所有的非空值必须是唯一的,但允许多个空值同时存在 视图(view)定义命令 视图 视图的定义命令 创
10、建视图的子查询语句不能有 order by CREATE VIEW agentorders (ordno, month, cid, aid, pid, qty, charge, aname, acity, percent) AS SELECT o.ordno, o.month, o.cid, o.aid, o.pid, o.qty, o.dollars, a.aname, a.city, a.percent FROM orders o, agents a WHERE o.aid = a.aid; 视图的作用 安全性 授权语句 grant 权限回收语句 revoke 第十章:事务管理 事务(tr
11、ansaction) 事务及其 ACID 特性 事务是数据库提供的一种手段,通过这一手段,应用程序员将一 系列的数据库操作组合在一起作为一个整体以便数据库系统提 供一组保证,也就是事务的 ACID 性质 原子性、一致性、隔离性、持久性 事务的控制语句:事务的启动与结束方式 Commit or rollback 调度(schedule),串行调度(serial schedule),可串行化调度(Serializability Schedule) 冲突(Conflict),冲突 与 冲突可串行化调度 封锁协议 两阶段封锁(Two-Phase Locking) 申请、释放 死锁(deadlock) 事务的隔离级别:SET TRANSACTION 隔离级别与封锁协议的关系 恢复 日志(log) 检查点(checkpoint) 事务/数据库 恢复(recovery)过程