diff --git "a/04\345\215\242\344\275\263\345\207\257/9.1\347\254\224\350\256\260.md" "b/04\345\215\242\344\275\263\345\207\257/9.1\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..c0c430a42053d969c6da4102f4478fec99e09230 --- /dev/null +++ "b/04\345\215\242\344\275\263\345\207\257/9.1\347\254\224\350\256\260.md" @@ -0,0 +1,34 @@ +如何进行数据库的设计 +1,根据业务的需求设计数据库,有一套规范叫 三范式 +2,还有一种设计工具PowerDesigner + + +1对1: + +可以转换为一个独立的关系模式 + +可以与任意一端对应的关系模式合并,在任意一方加入对方的主键(主码)变为其外键(外码),并加入联系本身的属性。 + +1对n,n对1: + +可以转换为一个独立的关系模式 +可以与n端对应的关系模式合并**,将1方的主键加入n方作为其外键**,并将联系的属性也加入n方 +m对n: + +可以转换为一个独立的关系模式(新建一张关系表),将联系双方的主键(主码)加入其中,并将联系的属性也加入其中。 +第一范式的目标是确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF) + + +数据库设计的理论依据-范式 +第一范式:确保每一个列(或者叫字段,或者叫属性)都具有原子性,即分无可分。 + +栗子:地址字段 福建省龙岩市新罗区曹溪街道闽西职技术学院南校区望云楼二楼第三实训室,如果业务上有需要区分省市县这些信息的话,那么在数据库设计的时候,就应该拆分这些为多个字段,如果没有则认为违反了原子性,违反了第一范式 + +第一范式是数据库设计理论中要求最低的一个规范 + +第二范式:要求每一个字段都依赖于主键 + +第三范式:要求每一个字段都直接依赖于主键 +如果一个关系满足第一范式,并且除了主键以外的其他列都依赖于该主键,则满足第二范式(2NF) + +如果一个关系满足第二范式,并且除了主键以外的其他列都依赖,且直接于主键列,则满足第三范式(3NF) \ No newline at end of file