【数据库原理】设计数据库,关系模式规范化

  1. 设计数据库系统:需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库的运行和维护。
  2. 需求分析:根据用户需求收集数据。
  3. 概念设计:概念模型(实体-联系模型),E-R图。消除局部E-R图冲突,去冗余。【做E-R图】
  4. 属性冲突:属性值冲突、取值单位冲突。【学号:int/char。单位:kg/g】
  5. 命名冲突:同名异义、异名同义。【单位:单位部门/衡量数据。教室/宿舍:房间】
  6. 结构冲突:同一对象不同应用中的抽象意义,可为实体,也可为属性。在局部1:1,另一局部1:n。同一实体在不同局部属性个数、排列次序不同。
  7. 冗余:冗余的存在容易破坏数据库的完整性。【同一数据多次出现】
  8. 逻辑设计:关系模式,数据模型,关系模式规范化,二维表。【将E-R图转化为关系模式,做二维表】
  9. E-R图–>二维表转换规则:实体转换,每个实体类型转换为一个关系模式。联系转换,相同键的关系可以合并。
  10. 1:1联系:任一个关系模式中加入另一个关系模式的键和联系的属性。【任选一个实体,加入另一个实体的键和联系的属性】
  11. 1:n联系:在n端实体类型转换的关系模式中加入1端实体类型的键和联系类型的属性。【n端实体,都加入1端实体的键和联系的属性】
  12. m:n联系:将联系类型也转换为关系模式,属性为两端实体的键加上联系类型的属性,键为两端实体键的组合。
  13. 属性间的数据依赖:属性值之间相互依赖又相互制约,是数据内在的性质。【一个学号只能有一个人,一个学院可以有多个人】
  14. 函数依赖:给定一个属性值,可以查找到唯一的另一个属性值。对于任意记录都满足。
  15. 关系模式R(U),X,Y均属于U的自己,r是R的任一具体关系,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则X函数决定Y,Y函数依赖于X,记作X—>Y。X为决定因素,Y为依赖因素。【任意两个元组t和s,t[X]=s[X],则t[Y]=s[Y]。X—>Y】
  16. 关系模式规范化:通过依赖关系识别数据表中的潜在冗余,规范化过程就是在函数依赖的基础上,识别和消除部分依赖和传递依赖来优化表结果。确保所有非主属性逗能函数依赖于主键或复合主键。
  17. 非平凡的函数依赖:X—>Y,X不包含Y 。
  18. 平凡的函数依赖: X—>Y,X包含Y。
  19. 完全函数依赖:若 X—>Y,对于任一X真子集X’,都有Y不函数依赖于X’。
  20. 部分函数依赖:若 X—>Y,存在某一X真子集X’,有Y函数依赖于X’。【部分依赖会导致数据冗余和更新异常】
  21. 部分依赖缺陷举例:复合主键的情况下,在选课表中,学号和课程号是复合主键,但是课程名只依赖于课程号,而不是复合主键。所以多名学生选课时,课程名这一属性会多次记录,造成冗余,增加修改工作。
    【举个栗子,上千个学生选5门课程,有了课程号这一列就足够了,课程名这一列无需记录上千次,只需要再做个5元组的课程表。当学生毕业后,新生未录入数据库,删除选课表之后,课程号和课程名会出现丢失。而成绩这一属性,必须知道学号和课程号才能知道对应唯一的成绩,完全依赖于复合主键。】
student-idcourse-idcourse-name
202401c01数据库原理
202402c01数据库原理
202401c02数据结构
  1. 传递函数依赖: X—>Y,且Y不函数依赖于X,X—>Z。【传递函数依赖会导致数据冗余和数据一致性问题。】
  2. 传递函数依赖缺陷举例:员工表中非主属性依赖于另一个非主属性,间接依赖于主键。虽然主键可以唯一确定该非主属性,但会造成冗余【与部分依赖同理,部门名称明显冗余。可单独列表】
employee-idnamedepartment-iddepartment-name
202401张三d01销售部
202402李四d01技术部
  1. 范式:1NF、2NF、3NF(BCNF)、4NF、5NF。
  2. 1NF:关系模式R中不包含多值属性。【每个属性必不可分】
  3. 2NF:1NF基础上,R中的非主属性完全函数依赖于候选键。【消除部分依赖,避免数据冗余和更新异常】
  4. 3NF:2NF基础上,R中非主属性不传递函数依赖于任何候选键。【非主属性不能通过非主属性间接依赖于主键,减少数据冗余,提高数据结构的稳定性】
  5. BCNF:3NF基础上,每个决定因素都包含主键。【主属性对主键不能存在部分依赖。不存在主属性决定主属性的情况】
  6. 满足3NF不BCNF的反例:主键为(仓库id,商品id)或(管理员id,商品id)可推出另外两个属性。存在着情况(仓库id)–>(管理员id),(管理员id)–>(仓库id)。【仓库和管理员是一一对应关系,可以单独做表】
仓库-id商品id管理员id商品数量
202401001m01200
202402001m02300
  1. 应用的范式等级越高,则表越多。表多会带来很多问题:查询时要连接多个表,增加了查询的复杂度,降低了数据库查询性能。
    【现今,磁盘空间成本基本可以忽略不计,数据冗余所造成的问题并直接决定应用数据库范式。并不是应用的范式越高越好,看实际情况而定。第三范式很大程度上减少了数据冗余,减少了造成插入异常,更新异常,和删除异常。大多数情况应用第三范式足够,一定情况下2NF也可以。】
  2. 物理设计:存储结构,索引方法(一个属性经常使用,则建立索引)、聚簇方法(某些属性值的重复率高,某关系经常出现连接操作)、哈希方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值