基本概念

数据模型

  • 数据模型的三要素: 数据结构(最重要)、数据操作、数据的约束条件, 分别是__静态特性、动态特性、完整性约束条件__
  • 五种常用数据模型: 根本区别是__数据之间的联系表示方式不同__, 层次和网状模型通称为__非关系模型__
    • 层次模型: 有且只有一个节点没有双亲节点, 根节点
    • 关系模型: 数据的逻辑结构就是一张__二维表__
    • 面向对象模型: __面向对象概念__和__数据库技术__的结合
    • 对象关系模型: __面向对象概念__和__关系数据库技术__的结合

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采用__镜像__和__日志文件__