-1

我的表格如下:

instructors(instructorID(PK), name, address, contact_details, pps_number,
            job_desc, specialty)
admin(adminID(PK), name, address, contact_details, pps_number, job_desc)
equipment(equipmentID(PK), type_of_equipment, last_used_by, class_used_for,
          date_used)
members(memberID(PK), name, address, contact_number, payment_type,
        membership_paid)
receipt(receiptID(PK), date_and_time, supplier) 
classes(classID(PK), weights, abs, core_strength)

有人可以教我如何使这些正常化吗?

4

1 回答 1

4

“钥匙,整个钥匙,只有钥匙,帮帮我吧,科德。”

这就是关于 3NF 表的“说法”。简单地说,每个表都必须包含一个主键(1NF)。2NF 是“整个键”,这意味着每个表中的所有属性都必须依赖于表的主键。3NF 是“只有钥匙”。要求非关键属性依赖于“只有关键”确保了 3NF。这意味着非键属性不能依赖于任何给定表的主键本身以外的属性。

例如:

instructors(instructorID(PK), name, address, contact_details, pps_number, job_desc, specialty)

这个表有一个主键,所以它适合 1NF。2NF 声明所有属性都依赖于密钥。对于这个表,我个人不认为 job_desc 和专业依赖于讲师本身就实体-属性关系而言。为此,我实际上会像这样将该属性拆分为一个新表。

instructors(instructorID(PK), name, address, contact_details, pps_number, job_ID)
jobs(job_ID, job_desc, specialty)

Instructors 表现在适合 2NF。现在是第三范式。3NF 是“只有键”,这意味着非键属性不能依赖于任何给定表的主键本身以外的属性。

让我们看看讲师的属性:instructorID(PK) - PK 本身。

名称 - 仅取决于讲师本身。

地址 - 仅取决于讲师本身。

contact_details - 仅取决于讲师本身。

pps_number - 我不知道这是什么,所以我不能说它是否应该保留。

job_ID - 仅取决于讲师本身。

该表现在满足 3NF。

这里有一些关于规范化的附加信息,我发现它们很有帮助。

http://en.wikipedia.org/wiki/Third_normal_form

于 2014-01-03T13:46:15.367 回答