“三大范式”及数据库设计

# 为什么需要设计数据库?
--当数据库较为复杂的时候需要设计数据库

# 设计数据库的步骤
  1.收集信息(专业人士)
  2.标识实体(Entity)--找名词/表名
  3.为实体标识属性
  4.标识实体之间的关系(Relationship)
  5.画图
  6.编写sql语句建表(根据"三大范式")

# 映射基数
  "一对一"、"一对多"、"多对一"、"多对多"

为什么需要数据规范化(注意:三大范式(满足N-1范式) 可以帮助我们 规范数据的的设计。
  好处:防止数据混乱、数据冗余;
  缺点:很难严格排除出所有不满足的表,难拆分,影响一定的性能
  实际使用时,需要"规范性"和"易用性、性能"综合考虑)


***第一范式(1st NF)*** --每列不可分割
    确保每列的原子性(不可拆):如果每列都是不可分的最小数据单元(也称为最小的原子单元),
则满足了"第一范式"

 

***第二范式(2st NF)*** --一个表,一件事(若一张表不满足2NF,就要拆分,然后通过将一个表的主键设置为另一张表的外键,来对两张表进行关联)

    宏观:要求每个表只描述一件事情(例如,一个student表 描述的都是学生字段)
     微观:通过2NF定义:除了主键外地其他字段,都依赖主键(A―>B就是B决定了A)

***第三范式(3st NF)*** --列要和主键有直接的关系,不能间接相关
    如果一个关系满足2NF,并且除了主键以外的其他列都传递依赖于主键列,
满足第三范式(3NF)

微观:除了主键以外的其他字段,都不传递依赖于主键
X――>Y――>Z:X决定了Z,Z传递依赖X

 

 

# 数据库设计软件:Power Designer

name:给用户看的,只能用于显示
code:代码实际操作

***
事务具有哪些特性?
  原子性、一致性、隔离性、永久性(ACID)

索引的目的是?
  加快检索

简述“三范式”含义
  1.1st NF:每列不可分割
  2.2st NF: 一个表,一件事
  3.3st NF:列要和主键有直接关系,不能间接相关

***

posted @ 2020-07-23 22:14  弹弹大魔王  阅读(17)  评论(0编辑  收藏  举报