# 为什么需要设计数据库?
--当数据库较为复杂的时候需要设计数据库
# 设计数据库的步骤
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:列要和主键有直接关系,不能间接相关
***