位置:首頁 > 數據庫 > SQL教學 > 數據庫 - 第一範式(1NF)

數據庫 - 第一範式(1NF)

第一範式(1NF)設置了一個有組織的數據庫非常基本的規則:

  • 定義所需要的數據項,因為它們成為在表中的列。放在一個表中的相關的數據項。

  • 確保有數據冇有重複的組。

  • 確保有一個主鍵。

1NF的第一條規則:

必須定義的數據項。這要求我們數據要被存儲,組織數據到列,限定數據的每一列包含什麼類型,最後把相關列到自己的表中。

例如,把所有涉及會議地點列到地點表,那些有關會員在會員明細表,等等。

1NF的第二條規則:

下一步驟是確保有數據的無重複組。考慮到我們有如下表:

CREATE TABLE CUSTOMERS(
       ID   INT              NOT NULL,
       NAME VARCHAR (20)     NOT NULL,
       AGE  INT              NOT NULL,
       ADDRESS  CHAR (25),
       ORDERS   VARCHAR(155)
);

因此,如果我們填充這個表一個客戶有多個訂單,那麼數據如下:

ID NAME AGE ADDRESS ORDERS
100 Sachin 36 Lower West Side Cannon XL-200
100 Sachin 36 Lower West Side Battery XL-200
100 Sachin 36 Lower West Side Tripod Large

但按照1NF,我們需要確保數據冇有重複的組。因此,讓我們分解上麵的表格分為兩部分,並使用一個鍵加入行列如下:

CUSTOMERS 表:

CREATE TABLE CUSTOMERS(
       ID   INT              NOT NULL,
       NAME VARCHAR (20)     NOT NULL,
       AGE  INT              NOT NULL,
       ADDRESS  CHAR (25),
       PRIMARY KEY (ID)
);

此表將有以下記錄:

ID NAME AGE ADDRESS
100 Sachin 36 Lower West Side

ORDERS 表 :

CREATE TABLE ORDERS(
       ID   INT              NOT NULL,
       CUSTOMER_ID INT       NOT NULL,
       ORDERS   VARCHAR(155),
       PRIMARY KEY (ID)
);

此表將具有以下記錄:

ID CUSTOMER_ID ORDERS
10 100 Cannon XL-200
11 100 Battery XL-200
12 100 Tripod Large

1NF的第三個規則:

第一範式的最終規則,創建一個主鍵,我們已經在每個表中創建主鍵了。