基本概念
数据模型
- 数据模型的三要素: 数据结构(最重要)、数据操作、数据的约束条件, 分别是__静态特性、动态特性、完整性约束条件__
- 五种常用数据模型: 根本区别是__数据之间的联系表示方式不同__, 层次和网状模型通称为__非关系模型__
- 层次模型: 有且只有一个节点没有双亲节点, 根节点
- 关系模型: 数据的逻辑结构就是一张__二维表__
- 面向对象模型: __面向对象概念__和__数据库技术__的结合
- 对象关系模型: __面向对象概念__和__关系数据库技术__的结合
DBMS的功能和特征
DBMS由__存储管理器__和__查询处理器__组成
功能
- 提供数据定义语言DDL定义数据库三级结构:外模式,模式,__内模式__以及相互之间的影响
- 定义存在于__数据字典__DD中, 是存储管理依据
- 提供数据操纵语言DML实现基本操作__检索__和__更新__
特征
- 内模式,模式,外模式__之间有__两级映象
- 内模式是数据的__物理结构__和存储方式
- 外模式/模式映象: 模式改变时修改该映象使外模式不变,数据的逻辑独立性
- 模式/内模式映象: 存储结构改变时修改, 数据的物理独立性
关系数据库
基本概念
- 用__二维表__表示实体集, 外码__表示实体间联系的数据模型称为__关系模型
- 数学定义: 域(定义域),D1,D2等笛卡尔积的每个元素叫一个n元组,元组的每一值叫分量, 子集叫做域D1D2上的关系,记作R(D1,D2…), 每一列是属性, 能唯一标识的属性是候选码, 选定一个为主码, 主属性和非主属性
- 列是__同质__的, 每一个分量是不可再分的数据项,规范化的关系
- R1的一个非主属性是R2的主码,则是R1的__外码__
- 完整性规则:必须满足 实体完整性(主码非空)和__参照完整性__(外码只能是空或已有的码字). 还有用户定义的完整性
关系代数
- 一种抽象的__查询语言__
- 非过程性语言
- 以__集合操作__为基础演算
- 对象、结果__都是关系__
- 五个基本操作
- 并$R\cup S$、差$R-S$ 否定、笛卡尔积$R\times S$、投影$\Pi_D(R)$、选择$\sigma_F(R)$;
- 四个组合操作
- 交$R\cap S$=(R-(R-S))、$\theta$连接(可比属性$\bowtie$(等值连接)),自然连接(相同属性$\bowtie$), 除($R\div S$ R中前r-s属性中所有对应S中所有属性的…好难)全部值
- 外连接__舍弃的元组也保存null, __左外连接__只保存左边, __右外连接 只保存右边
域关系演算语言QBE
- 域变量带下划线,P.打印, 写在第一列表示打印整个关系各项, 同一行同一示例名是与的关系,不同示例名是或关系
- 计数CNT, 求和SUM, 平均AVG等,修改U.,插入I.,删除D.
SQL
- CREATE TABLE T(a integer primary key, foreign key cpno references C(cno))
- ALTER TABLE T ADD, DROP, MODIFY
- DROP TABLE
- CREATE unique INDEX i ON T(Tno)
- DROP INDEX i ON T
- SELECT distinct a as 别名 FROM WHERE ORDER BY GRADE DESC
- LIKE _,% ESCAPE
- IS NULL,
- COUNT, SUM, AVG (SELECT COUNT() from sc where * group by having count(*)>10)
- IN谓词是__不相关子查询__
- ANY,ALL
- EXISTS是相关子查询,需要有关系的__连接操作__
- INSERTT INTO T VALUES()
- DELETE FROM WHERE
- UPODATE T SET WHERE
- CREATE VIEW dkfjsdalfjasdlkf as SELECT FROM…
-
DROP VIEW
- 行列子集视图:从单个基本表导出
- 理论上可更新视图:
- 理论上不可更新视图
全部查询!!!
选修了S1学生所选全部课程的学生学号
SELECT SNO
FROM SC A
WHERE NOT EXISTS
(SELECT *
FROM SC B
WHERE B.SNO='S1' and NOT EXISTS
(SELECT *
FROM SC C
WHERE C.SNO=A.SNO and C.CNO=B.CNO))
关系数据理论
关系系统
-
两条三运算:支持关系数据库、选择投影和自然连接运算,不必要求定义任何物理存取路径
-
表式系统(只支持关系数据结构S),最小关系系统(SM加上运算),关系完备的系统(SM全部运算),全关系的系统化(SMI实体和参照完备性)
范式
- 第一范式1NF: 每一个分量必须是不可再分的数据项
- 第二范式2NF: 每一个非主属性完全函数依赖于码,对应没有从主码的一部分指出的箭头,消除非主属性部分依赖
- 第三范式3NF: 不存在Y依赖主码X,Z依赖Y但是X不依赖Y;导出非主属性不部分依赖也不传递依赖码.对应没有不从主码指出的箭头,消除非主属性传递依赖
- BCNF,休整的第三范式,Y非平凡依赖X则X必定含有码;每一决定因素都包含码,消除主属性的部分和传递依赖
- 第四范式: Y非平凡多值依赖X,且X含有码;消除非平凡非函数的多值依赖
- 第五范式: 消除非平凡连接依赖
数据依赖
- 函数依赖:X->Y但Y不含于X,非平凡的函数依赖
- 多值依赖
数据库设计
- 硬件软件和干件(技术与管理的界面)的结合
- 规范设计法六个步骤
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行与维护
数据库保护
- 数据保护__又叫__数据控制,包括__安全性__,完整性,__并发控制__和__数据库恢复__四个方面
- 并发控制包括__封锁__和__时间印__
- 安全性: 自主存取控制DAC, 强制存取控制MAC
- 数据加密: 替换方法, 置换方法
- 恢复技术: Oracle7采用__转储__和__日志文件__, SQL采用__镜像__和__日志文件__