第三正規化的表需要滿足以下條件:
create table customers(
cust_id int not null,
cust_name varchar (
20) not null,
dob date,
street varchar(
200),
city varchar(
100),
state varchar(
100),
zip varchar(
12),
email_id varchar(
256),
primary key (cust_id)
);
(cust_id int not null,
cust_name varchar (
20) not null,
dob date,
street varchar(
200),
city varchar(
100),
state varchar(
100),
zip varchar(
12),
email_id varchar(
256),
primary key (cust_id)
);
然後修改customers表:create table address(
zip varchar(
12),
street varchar(
200),
city varchar(
100),
state varchar(
100),
primary key (zip)
);
(zip varchar(
12),
street varchar(
200),
city varchar(
100),
state varchar(
100),
primary key (zip)
);
消除傳遞依賴的好處包括兩個方面。首先時間少了重複資料,所以資料庫更小。create table customers(
cust_id int not null,
cust_name varchar (
20) not null,
dob date,
zip varchar(
12),
email_id varchar(
256),
primary key (cust_id)
);
(cust_id int not null,
cust_name varchar (
20) not null,
dob date,
zip varchar(
12),
email_id varchar(
256),
primary key (cust_id)
);
第二個好處是資料完整性。如果修改了重複的資料,存在部分修改的風險,尤其是分散在多個不同位置的重複資料。例如,如果位址和郵編資料儲存在3個或4個不同的表中,任何郵編的修改需要涉及所有表中的記錄。
第三正規化 3NF 定義
3nf建立在2nf之上,它要求所有的非主鍵列都必需直接依賴於主鍵,不包括任何傳遞依賴 transitive dependency 這裡的傳遞依賴指的是從a b,b c,所以可以從a c。具體含意參見以下示例。舉例來說明,比如有課程student表如下所示。student 表 學生編號 學生姓名 戶口...
資料庫三正規化3NF指什麼?
三正規化面試的時候問的比較多,概念需要了解下 資料庫設計三大正規化 為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。第一正規化 確保每列保持原子性 第...
(二)資料庫正規化3NF簡解
表 實體 字段 列 屬性 3nf設計原則 和 表關係 1 第一正規化 1nf 字段 字段原子性。最小的實際意義的文字單元指資料庫表的每一列都是不可分割的基本資料項,屬性 不可分割,不可二義!2 第二正規化 2nf 表 行的原子性,元組 表,實體的原子性。資料庫表中的每個例項或行必須可以被唯一地區分。...