diff --git "a/\351\203\255\345\260\217\347\207\225/20240907\346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\357\274\2102\357\274\211/9\346\234\2107\346\227\245\347\254\224\350\256\260.md" "b/\351\203\255\345\260\217\347\207\225/20240907\346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\357\274\2102\357\274\211/9\346\234\2107\346\227\245\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..4e8fc03b5c3e3a78facb2c1bb885a14226d37647 --- /dev/null +++ "b/\351\203\255\345\260\217\347\207\225/20240907\346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\357\274\2102\357\274\211/9\346\234\2107\346\227\245\347\254\224\350\256\260.md" @@ -0,0 +1,49 @@ +### 9月7日笔记 + +#### 一、第一范式(1NF) + +**概念**:第一范式要求数据库表中的所有字段都是不可分割的最小数据单位,即每个字段都是原子性的。这意味着表中的字段不能是集合、数组或其他复合类型。 + +**案例**:假设有一个学生信息表,其中有一个字段是“联系方式”,包含了电话和邮箱。为了满足第一范式,需要将“联系方式”拆分为“电话”和“邮箱”两个独立字段。 + +#### 二、第二范式(2NF) + +**概念**:第二范式在第一范式的基础上,要求表中的所有非主属性完全依赖于主键。如果一个关系满足第一范式,并且不存在非主属性对主键的部分依赖,则称该关系满足第二范式。 + +**案例**:考虑一个订单表,包含订单号、商品名称、商品数量、客户姓名和客户联系方式。若订单号是主键,商品名称和商品数量依赖于订单号,但客户姓名和客户联系方式仅依赖于客户,不依赖于订单号。为了满足第二范式,需要将订单表拆分为订单表和客户表,订单表与客户表通过客户ID进行关联。 + +#### 三、第三范式(3NF) + +**概念**:第三范式在第二范式的基础上,要求表中的所有字段不仅完全依赖于主键,而且不存在传递依赖。即非主属性之间不能相互依赖。 + +**案例**:假设有一个员工信息表,包含员工ID、部门名称、部门经理。在这个表中,部门名称依赖于员工ID,而部门经理又依赖于部门名称。为了满足第三范式,需要将员工信息表拆分为员工表和部门表,员工表与部门表通过部门ID进行关联。 + +#### 四、表与表之间的关系 + +##### 1. 一对一(1:1)关系 + +概念:一对一关系表示一个表中的行最多对应另一个表中的一行。 + +案例:假设有两个表,一个是员工表(Employee),另一个是员工详细信息表(EmployeeDetail)。每个员工在员工详细信息表中只有一条记录,这种情况下,员工表与员工详细信息表之间就存在一对一的关系。 + +##### 2. 一对多(1:N)关系 + +概念:一对多关系表示一个表中的一行可以对应另一个表中的多行。 + +案例:考虑订单表(Order)和订单详情表(OrderDetail)。一个订单可以有多个订单详情,但每个订单详情只属于一个订单。因此,订单表与订单详情表之间是一对多的关系。 + +##### 3. 多对多(N:M)关系 + +概念:多对多关系表示一个表中的多行可以对应另一个表中的多行。 + +案例:学生表(Student)和课程表(Course)之间存在多对多的关系。一个学生可以选修多门课程,而一门课程也可以被多名学生选修。通常,这种关系通过一个中间表(例如选课表Enrollment)来实现,其中包含学生ID和课程ID。 + +- **一对一关系**:通常通过共享主键或唯一外键来实现。 +- **一对多关系**:在“多”的表中创建一个外键,指向“一”的表的主键。 +- **多对多关系**:创建一个中间表,它包含两个表的主键作为外键。 + + + +#### 五、picgo的使用 + +ps:gitee插件无法安装 \ No newline at end of file