Database 关于第一范式的澄清

Database 关于第一范式的澄清,database,Database,在大多数情况下,我理解第一、第二和第三范式。我只想澄清一下我在网上找到的几个规范化示例。第一个例子如下: UNF Supplier: supplier_id, supplier_name, prod_code, prod_desc, cost, markup, dept_cd 1NF: Supplier: supplier_id, supplier_name supplier_product: supplier_id, prod_code, prod_desc, cost, markup,

在大多数情况下,我理解第一、第二和第三范式。我只想澄清一下我在网上找到的几个规范化示例。第一个例子如下:

UNF
Supplier: supplier_id, supplier_name, prod_code, prod_desc, cost, markup, dept_cd

1NF:
Supplier:  supplier_id, supplier_name
supplier_product:  supplier_id, prod_code, prod_desc, cost, markup, dept_cd

2NF:
Supplier:  supplier_id, supplier_name
supplier_product:  supplier_id, prod_code
product:  prod_code, prod_desc, cost, markup, dept_cd

3NF:
Supplier:  supplier_id, supplier_name
Product:  prod_code, prod_desc, dept_cd (FK), supplier_id (FK), cost, markup 
dept:  dept_cd, dept_name, aisle_no
资料来源:

当从UNF移动到1NF时,我们是否只是将组成重复组的值与原始实体的主键一起移动到新实体?在上面的示例中,产品和部门被视为重复组。因此,两者都被移动到第二个实体

这也可以在以下示例中演示:

0NF
ORDER(order#, customer#, name, address, orderdate(product#, description, quantity, unitprice))
1NF
ORDER(order#, customer#, name, address, orderdate)
ORDER_LINE(order#, product#, description, quantity, unitprice)
2NF
ORDER(order#, customer#, name, address, orderdate)
ORDER_LINE(order#, product#, quantity)
PRODUCT(product#, description, unitprice)
3NF
ORDER(order#, customer#, orderdate)
CUSTOMER(customer#, name, address)
ORDER_LINE(order#, product#, quantity)
PRODUCT(product#, description, unitprice)
资料来源:

在这种情况下,只有产品被视为重复组,而不是客户。因此,客户属性保留在原始实体中。我理解正确吗

编辑:另一个例子

一家软件合同和咨询公司维护其员工目前参与的所有各种项目的详细信息。这些细节包括:将该数据规范化为第三范式

•员工人数

•员工姓名

•出生日期

•部门代码

•部门名称

•项目代码

•项目说明

•项目主管 假设以下情况,并将该数据标准化为3NF:

•每个员工编号都是唯一的

•每个部门都有一个部门代码

•每个项目都有一个单独的代码和主管

•每位员工可参与一个或多个项目

•员工姓名不一定是唯一的

•项目代码、项目说明和项目主管是重复字段

UNF
Employee Number, Employee Name, Date of Birth, Department Code, Department Name, Project Code, Project Description, Project Supervisor
1NF  
Employee Number, Employee Name, Date of Birth, Department Code, Department Name
Employee Number, Project Code,  Project Description, Project Supervisor


2NF  
Employee Number, Employee Name, Date of Birth, Department Code, Department Name
Employee Number, Project Code,
Project Code, Project Description, Project Supervisor


3NF  
EmployeeNumber,Employee Name, Date of Birth, *Department Code
Department Code, Department Name 
Employee Number, Project Code
Project Code,  Project Description, Project Supervisor

可能是Hi的副本。你只是在问什么是1NF以及如何达到这一点,这要求我们重写教科书/参考资料。这个问题太宽泛了。无论如何,“1NF”并没有单一的定义,所以何时定义取决于您的引用。“UNF”可能是什么没有限制,因为它只是指非关系的,所以一般来说,没有办法描述如何从一映射到“1NF”。告诉我们你的推荐人,并问一个具体的问题。不要试图从网上学习。阅读出版的教科书。不要使用链接,包括相关文本。每篇文章问1个问题。请在数据库规范化问题上加上标签。