1nf
資料表中的所有欄位都是不可分割的原子值,如果字段值還可以拆分,就不滿足第一正規化。
create table student2(
id int primary key,
name varchar(20),
adress varchar(30)
);insert into student2 values(1,'張三','中國江蘇省無錫市濱湖區蠡湖大道1800號');
insert into student2 values(2,'李四','中國江蘇省無錫市新吳區濱湖大道1700號');
insert into student2 values(3,'王五','中國江蘇省無錫市濱湖區江南大道1600號');
這裡位址可以細分
中國//江蘇省//無錫市//濱湖區蠡湖大道1800號
按照這樣劃分可以再生成乙個資料表
create table student3(
id int primary key,
name varchar(20),
country varchar(30),
privence varchar(30),
city varchar(30),
details varchar(30)
);insert into student3 values(1,'張三','中國','江蘇省','無錫市','濱湖區蠡湖大道1800號');
insert into student3 values(1,'李四','中國','江蘇省','無錫市','新吳區濱湖大道1700號');
insert into student3 values(1,'王五','中國','江蘇省','無錫市','濱湖區江南大道1600號');
嚴格說來上述的資料表也不算第一正規化,因為濱湖區蠡湖大道1800號,還能再細分為濱湖區//蠡湖大道//1800號
正規化,涉及的越詳細,對於某些實際操作可能會更好(例如需要統計有多少無無錫市的人,這樣便於篩選),但是不一定都是好處,要根據實際設計的需求。
2nf必須是滿足第一正規化的前提下,第二正規化要求,除主鍵外的每一列都必須完全依賴主鍵。如果要出現不完全依賴,只可能發生在聯合主鍵的情況之下。
例:訂單表
create table myorder(
product_id int,
customer_id int,
product_name varchar(20),
customer_name varchar(20),
primary key(product_id,customer_id)
);
在上述資料表中,除主鍵外的其他列,只依賴於主鍵的部分字段。
product_name 只依賴於 product_id
customer_name 只依賴於 customer_id
如果想要其滿足第二正規化,則應該拆表
create table myorder(
order_id int primary key,
product_id int,
customer_id int
);create table product(
id int primary key,
name varchar(20)
);create table customer(
id int primary key,
name varchar(20)
);
3nf
必須先滿足第二正規化,除開主鍵列的其他列之間不能有傳遞依賴。
create table myorder(
order_id int primary key,
product_id int,
customer_id int,
phone varchar(15)
);
在上述表中,phone依賴於customer_id,因此不滿足第三正規化。 資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...
資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...
資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...