数据库系统

三级模式

  • 外模式
    • 数据库的用户使用的局部数据的逻辑结构和特征的描述
    • 数据库用户的数据视图,是与某一应用程序有关的数据的逻辑表示。
  • 概念模式
    • 它是数据库中全体数据的逻辑结构和特征的描述;
    • 模式是所有用户的公共数据视图。因为数据库是多人共享使用的,模式就是大家都看到的样子,综合了所有用户的数据需求。
  • 内模式
    • 数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
      • 记录的存储方式:如顺序存储,按B树结构存储,Hash存储)
      • 索引的组织方式:B+树索引,hash索引,Join index索引
      • 数据是否压缩存储
      • 数据是否加密

两级映射

  • 外模式/概念模式映射

    保证了数据的逻辑独立性。当模式改变时,数据库管理员修改有关的外模式/模式映像,使外模式保持不变;而应用程序是根据数据的外模式编写的,从而应用程序不必修改,保证了数据与应用程序的逻辑独立性,简称为数据的逻辑独立性。

  • 概念模式/内模式映射

    保证了数据的物理独立性。

    • 当数据的存储结构改变时(如本来我们用堆存储,改成了B+树),数据库管理员修改模式/内模式映像,使模式保持不变。
    • 应用程序不受影响,保证了数据与程序的物理独立性,简称为数据的物理独立性。

数据库的设计

E-R模型

在这里插入图片描述

集成的方法

  • 多个局部E-R图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部E-R。

集成产生的冲突及解决办法

  • 属性冲突:包括属性域冲突和属性取值冲突。
  • 命名冲突:包括同名异义和异名同义。
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。

一个实体型转换为一个关系模式

  • 1:1联系
  • 1:n联系
  • m:n联系

三个以上实体间的一个多元联系

关系代数

  • 笛卡尔乘积
  • 投影
  • 选择
  • 联接

规范化理论

函数依赖

设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y门=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y。

价值与用途

  • 主键:唯一标识
  • 候选键:
    • 将关系模式的函数依赖关系用“有向图”的方式表示
    • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
    • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
  • 外键:其他关系的主键

范式

  • 1NF:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
  • 2NF:当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
  • 3NF:第三范式(3NF):当且仅当R是1NP,且E中没有非主属性传递依赖于码时,则称R是第三范式。
  • BCNF:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

由上往下逐步优化,已解决插入异常、删除异常、数据冗余

模式分解

  • 保持函数依赖分解
    设数据库模式p={R1,R2,…,R}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD
  • 无损分解
    什么是有损,什么又是无损?
    有损:不能还原。
    无损:可以还原。
  • 无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式

并发控制

事务

  • 原子性
  • 一致性
  • 隔离性
  • 持续性

封锁协议

  • 一级封锁协议。事务T在修改数据R之前必须先对其加区锁,直到事务结束才释放。可防止丢失修改
  • 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放$锁。可防止丢失修改,还可防止读“脏”数据
  • 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
  • 两段锁协议。可串行化的。可能发生死锁

整性约束

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束
  • 触发器

数据库安全

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户帐户、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
密码存储和传输对远程终端信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据备份

优点缺点
冷备份非常快速的备份方法(只需复制文件);容易归档(简单复制即可):容易恢复到某个时间点上(只需将文件再复制回去):能与归档方法相结合,做数据库”最佳状态”的恢复;低度维护,高度安全单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作:若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
热备份可在表空间或数据库文件级备份,备份的时间短:备份时数据库仍可使用:可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复:因难于维护,所以要特别小心,不允许“以失败告终”
  • 完全备份:备份所有数据
  • 差量备份:仅备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据
  1. 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
  2. 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
  3. 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
  4. 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。

日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中

反规范化

由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降

  • 增加派生性冗余列
  • 增加冗除列
  • 重新组表
  • 分割表
  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值