qq_40722284的博客

电脑杂谈  发布时间:2020-06-10 10:28:51  来源:网络整理

范式_第四范式 数据密集型科学发现_第四范式 数据密集型

第一范式(1NF): 数据表中的每一列(每个字段)必须是不可拆分的最小单位,即确保每一列的原子性;

例如: userInfo: 山东省烟台市131777368781 userAds: 山东省烟台市userTel: 131777368781

第二范式(2NF): 满足1NF后,表中的所有列都必须依赖于主键,并且任何列都不能与主键相关,也就是说,表仅描述了一件事情;

例如: 订单表仅描述与订单相关的信息,因此所有字段都必须与订单ID相关

产品表仅描述与产品相关的信息,因此所有字段都必须与产品ID相关;

因此,订单信息和产品信息不能同时出现在一个表中;如下图所示(1个表分为2个表):

第三范式(3NF): 必须首先满足第二范式(2NF). 要求: 表中的每一列仅与主键直接相关,而不是间接的(表中的每一列只能取决于主键);

例如,订单表中需要与客户相关的信息. 分离客户表单后,在订单表单中仅需要一个用户ID(外键),并且不允许其他客户信息. 因为其他客户信息与用户ID直接相关,而不与订单ID直接相关.

第三范式(3NF)要求表不包含其他表中已经包含的非主键信息. 例如,有一个部门信息表,其中每个部门都有诸如部门号(dept_id),部门名称和部门资料之类的信息. 然后,在员工信息表中列出部门编号之后,不再将与部门相关的信息(例如部门名称和部门资料)添加到员工信息表中. 如果没有部门信息表,则应根据第三范式(3NF)进行构造,否则会有很多数据冗余. 简而言之,第三个范式是该属性不依赖于其他非主要属性. 这个解释是从这里转移的

[如何更好地区分这三种范式]

第一个范式和第二个范式是是否有两个表. 第二种范式表示一个表包含许多不同的实体属性,因此必须将其划分为多个表,而第三种范式要求将其划分为多个表. 如果有多个表,则一个表只​​能具有id(主键),并且不能具有其他任何信息(其他信息始终在具有主键的其他表中查询).

摘要:

第一个范式: 每个表都有一个列,并且该列是不可拆分的最小单位(重点在于该列的原子性,即该列不能划分为其他列)

范式_第四范式 数据密集型科学发现_第四范式 数据密集型

第二个范例: 一个表仅描述一件事(非主键列完全取决于主键还是取决于部分主键)

范例3: 使用外键进行表关联(非主键列直接取决于主键还是直接取决于非主键列)

【五个约束】

1.primary KEY: 设置主键约束;

2. 唯一: 设置唯一约束,不能有重复值;

3. DEFAULT默认值约束,高度DOUBLE(3,2)DEFAULT 1.2高度未输入,默认值为1,2

4. NOT NULL: 设置非空约束,此字段不能为空;

5. 外键: 设置外键约束.

[主键]

1. 注意主键吗?

默认情况下,主键不为空,并且默认键为唯一性约束. 只有主键可以设置自动增长. 自动增长必须是主键,并且主键不一定需要自动增长;

2. 如何设置主键?

在定义列时设置: ID INT PRIMARY KEY

在列定义后设置: 主键(id)

【外键】

1. 设置外键的注意事项:

第四范式 数据密集型_第四范式 数据密集型科学发现_范式

仅INNODB引擎支持外键. 修改my.ini文件以设置default-storage-engine = INNODB. 外键必须与引用列的数据类型相同(数字类型需要相同的长度且无符号,字符串需要相同的类型,长度可以不同).

2个用于设置外键的语法:

CONSTRAINT外键名称FOREIGN KEY(外键字段)REFERENCES参考表(参考字段)ON DELETE SET NULL ON UPDATE CASCADE设置参照完整性

3. 外键约束的引用操作?

参考表的完整操作: 在删除或更新参考表的参考字段时如何处理外键表中的外键;

请参阅操作的可选值:

RESTRICT拒绝删除或更新参考表中的参考字段;

RESTRICT和NO ACTION相同,但是此命令仅在mysql中有效;

当CASCADE删除或更新引用表的引用字段时,外键表的记录将被删除并同步更新;

SET NULL当删除或更新参考表的参考字段时,外键表的外键设置为NULL;

首先,什么是E-R模型?

ER模型是实体连接模型. ER模型基于以下认识: 始终在现实世界中存储有意义的数据,而现实世界由一组实体和一组连接实体组成. ER模型可以成功描述存储在中的数据.

第二,为什么要设计E-R模型?

设计E-R模型可以更有效,更好地模拟现实世界.

三,E-R模型的基本要素

1)实体: 实体是E-R模型的基本对象,是现实世界中各种事物的抽象. 可以彼此区分并可以识别的任何东西都可以视为一个实体. 在一个单元中,常见类型的实体可以分为一个实体集,例如,学生李明,黄鹰等是实体. 为了便于描述,您可以定义一个实体集,例如学生,所有学生都是该集合的成员.

范式_第四范式 数据密集型科学发现_第四范式 数据密集型

2)属性: 每个实体具有各种特征,称为实体的属性,例如学生的学生ID,姓名范式,年龄和其他属性. 实体的属性值是存储在中的主要数据. 可以唯一标识实体的属性或属性组称为实体关键字. 例如,一个实体有多个键. 您可以选择其中一个作为主键.

3)连接: 实体之间存在各种关系,例如领导者与员工之间的关系,并且实体之间的关系被抽象为连接.

E-R图的四个组成部分

矩形框: 代表实体,在矩形框中写下实体的名称

椭圆框: 表示实体或连接的属性

菱形框: 表示联系人,然后在框中输入联系人姓名

连接: 实体与属性之间;实体与连接之间;连接和属性通过一条直线连接(对于连接,在两个实体的连接方向上写1;对于一对多,对于关系,在一个上写1 ;另一侧是N;对于多对多关系,请在两个实体的连接方向上写下N和M. )

五,将E-R模型转换为关系模型

1. 实体到关系

将实体集转换为关系非常简单,只需将实体的属性用作关系的列(实体的所有属性);

2. 从关系到关系的转换

1)联系人要求一个实体的主键是另一实体的属性. 反映在映射中,一个关系的主键用作另一关系的普通列,并且连接本身的属性也应以列的形式植入. 对于的关系,主从关系可以逆转而不会丢失信息

您可以将角色编号用作用户关系中的普通列,反之亦然!

2)一对多关系. 一侧需要为主表,而另一侧应该为从表. 连接的所有属性都是辅助表的列,因此信息不会丢失.

学生和班级: 是从属表,班级信息是主表

第四范式 数据密集型_范式_第四范式 数据密集型科学发现

3)一对多. 无论连接添加到哪一方,都会导致信息丢失.

例如,学生和课程选择. 您可以使用学生ID,课程ID和关系属性---学分作为新的关系列

六. 例子

E-R图表示某个工厂的物料管理的概念模型

实体包括:

仓库: 仓库编号,区域,电话号码;

零件: 零件编号,名称,规格,单价,描述;

供应商: 供应商编号,名称,地址,电话号码范式,帐号;

项目: 项目编号,预算,开始日期;

员工: 员工编号,姓名,年龄,职务;

实体之间的联系

仓库------零件

1. 一个仓库可以存储多个零件,一个零件可以存储在多个仓库中. 仓库和零件多对多.

2. 使用库存表示仓库中某个零件的数量

仓库------员工

1. 一个仓库有多名员工,一个雇员只能在一个仓库中工作. 仓库和员工之间是一对多的关系

2. 领导力与员工之间的领导力之间存在关系. 因为仓库必须有一个负责人,所以领导与领导之间存在联系.

E-R图如下


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-240508-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...