Data Base 2 Review

五、规范化设计

函数依赖

  1. 数据库的规范化设计理论:数据依赖、范式、模式设计

    • 核心作用:数据依赖

    • 设计标准:范式

  2. 泛关系模式存在的问题:

    • 数据冗余
    • 修改/插入/删除异常

1NF,2NF,3NF,BCNF

无损分解

  1. 模式设计方法原则

    表达性、分离性、最小冗余性

七、数据库设计

规划

  • 输出:可行性分析报告+数据库系统规划纲要

需求分析

  • 输入:信息需求+处理需求
  • 输出:需求说明书
  • 步骤:
    1. 分析用户活动,产生用户活动图(业务流程)
    2. 确定系统范围,产生系统范围图(人机界面)
    3. 分析用户活动所涉及的数据,产生数据流图DFD
    4. 分析系统数据,产生数据字典DD

概念设计

  • 输入:DFD
  • 输出:分ER图 -> 总ER图
  • 步骤:
    1. 进行数据抽象,设计局部概念模式
    2. 将局部概念模式综合成全局概念模式
    3. 评审

逻辑设计

  • 输入:
    • 独立于DBMS的概念模式
    • 处理需求
    • 约束条件
    • DBMS特性
  • 输出:
    • DBMS可处理的模式
    • 子模式
    • 应用程序设计指南
    • 物理设计指南
  • 步骤:
    1. 形成初始模式:ER 实体类型/联系类型 -> 记录类型
    2. 子模式设计:应用程序和数据库系统的接口
    3. 应用程序设计梗概:设计应用程序草图
    4. 模式评价:
      • 定量分析
      • 性能测量
    5. 修正模式:使模式适应信息的不同表示
  • ER->关系模型转换规则
    • 1:1
      • 可以在任意一关系模式属性中加入另一方的键和联系属性
    • 1:N
      • N端加入1端的键和联系属性
    • M:N
      • 联系类型转换成关系
      • 属性为两端实体的键
    • 弱实体 1:N(弱实体)
      • 1端键作为外键加入弱实体
      • 弱实体主键由父表主键和自身候选键组成

物理设计

  • 输入:基本数据模型
  • 输出:物理结构
  • 步骤:
    1. 存储记录结构设计
    2. 确定数据存放位置
    3. 存取方法的设计
    4. 完整性和安全性考虑
    5. 程序设计

实现

运行和维护

八、数据库的管理

事务ACID

数据库恢复

  1. 恢复方法: 转储和建立日志
  2. 故障:
    • 事务故障
    • 系统故障
    • 介质故障

数据库并发(两种锁,活死锁,可串行化)

  1. 并发操作的三个问题:
    • 丢失更新
    • 读脏数据
    • 不一致分析

数据库完整性(3静态,1动态)

  1. 完整性:正确性、有效性、相容性

  2. 完整性约束:

    • 域约束

    • 基本表约束

      FOREIGN KEY (..) REFERENCES TABLE(..)

    • 断言

    • 触发器:

      • 元组级触发器:for each row
      • 语句级触发器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE  TRIGGER  TRI_UPD_SC               /*触发器的命名*/
INSTEAD OF UPDATE OF CNO ON SC /*时间、事件、目标*/
REFERENCING /*设置变量*/
OLD_TABLE AS OLDSTUFF /*为语句级触发器设置变量*/
NEW_TABLE AS NEWSTUFF
FOR EACH ROW
WHEN50 >= ALLSELECT COUNT(SNO) /*动作时间条件*/
FROM ((SC EXCEPT OLDSTUFF) UNION NEWSTUFF)
GROUP BY CNO)))
BEGIN ATOMIC /*动作体*/
DELETE FROM SC /*触发动作1*/
WHERE (SNO,CNO,GRADE) IN OLDSTUFF;
INSERT INTO SC /*触发动作2*/
SELECT * FROM NEWSTUFF
END;

数据库安全

1
2
3
GRANT SELECT,UPDATE(PRICE) ON TABLE TO WANG [WITH GRANT OPTION]

REVOKE .. ON .. FROM .. [CASCADE|RESTRICT]

九、分布式数据库系统

物理上分散,逻辑上集中

  1. 数据独立性:逻辑独立性+物理独立性
  2. 分类:
    • 同构同质型
    • 同构异质型:DBMS型号不同
    • 异构型

数据分片

  • 水平分片
  • 垂直分片
  • 导出分片(导出水平分片):水平分片的条件不是本关系属性的条件,而是其他关系属性的条件
  • 混合分配,三种混合

三条规则:

  • 完备性
  • 可重构
  • 不相交

数据分配

  • 集中式
  • 分割式:数据一份,分割成的每个逻辑片段被指派到特定场地
  • 全复制式:数据在每个场地重复存储
  • 混合式:介于分割式和全复制式。每个子集安置在一个或多个场地

全局关系、逻辑片段、场地(物理映像)

十、对象数据库系统

对象联系图

  • 平面关系模型:基本数据类型
  • 嵌套关系模型:基本数据类型、关系类型(集合)
  • 复合对象模型:基本数据类型、关系类型、结构类型(元组类型)
  • 面向对象:基本类型、复合类型、引用类型
image-20240527132513389
  1. 用ORDB的定义语言,定义这个数据库:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE  TYPE  MyString  char  varying

    CREATE TABLE department(university MyString,
    dname MyString,
    staff setof(ref(faculty)),
    dire ref(director));

    CREATE TABLE faculty(fno integer,fname MyString,
    languages setof(MyString),
    countries setof(MyString),
    works_for ref(department));

    CREATE TABLE director(dno integer) Under faculty;
  2. 检索精通俄语(Russian)的教师工号和姓名。

    1
    2
    3
    SELECT  fno, fname
    FROM faculty
    WHERE ‘Russian’ in languages;

  3. 检索上海地区各大学超过50岁的教师人数

    1
    2
    3
    4
    5
    SELECT  A.uname,count(SELECT  * 
    FROM A.staff as B
    WHERE B.age>50
    FROM university as A
    WHERE A.city = ˊshanghaiˊ;

tips

  1. 关系模式n个属性,可能的函数依赖4n个,平凡的函数依赖3n个,正确的调度n!个
  2. B的函数依赖要写B-> Φ, B->B
  3. 候选码为全码的关系模式一定是满足BCNF

Data Base 2 Review
http://example.com/2024/05/27/Data-Base-2-Review/
作者
lsl
发布于
2024年5月27日
许可协议