About the Tutorial



Yüklə 0,71 Mb.
Pdf görüntüsü
səhifə31/39
tarix17.01.2022
ölçüsü0,71 Mb.
#51355
1   ...   27   28   29   30   31   32   33   34   ...   39
sql tutorial

CUSTOMERS Table 

CREATE TABLE CUSTOMERS( 

       ID   INT              NOT NULL, 

       NAME VARCHAR (20)     NOT NULL, 

       AGE  INT              NOT NULL, 

       ADDRESS  CHAR (25), 

       PRIMARY KEY (ID) 

); 

This table would have the following record: 



ID 

NAME 

AGE 

ADDRESS 

100 


Sachin 

36 


Lower West Side 

ORDERS Table 

CREATE TABLE ORDERS( 

       ID   INT              NOT NULL, 

       CUSTOMER_ID INT       NOT NULL, 

       ORDERS   VARCHAR(155), 

       PRIMARY KEY (ID) 

); 

This table would have the following records: 



ID 

CUSTOMER_ID 

ORDERS 

10 


100 

Cannon XL-200 

11 

100 


Battery XL-200 


SQL 

 

 



 

 



12 

100 


Tripod Large 

Third Rule of 1NF 

The final rule of the first normal form, create a primary key for each table which we have 

already created. 

 

Database – Second Normal Form (2NF) 

The Second Normal Form states that it should meet all the rules for 1NF and there must 

be no partial dependences of any of the columns on the primary key: 

Consider a customer-order relation and you want to store customer ID, customer name, 

order ID and order detail and the date of purchase: 

CREATE TABLE CUSTOMERS( 

       CUST_ID    INT              NOT NULL, 

       CUST_NAME VARCHAR (20)      NOT NULL, 

       ORDER_ID   INT              NOT NULL, 

       ORDER_DETAIL VARCHAR (20)  NOT NULL, 

       SALE_DATE  DATETIME, 

       PRIMARY KEY (CUST_ID, ORDER_ID) 

); 


This table is in the first normal form; in that it obeys all the rules of the first normal form. 

In this table, the primary key consists of the CUST_ID and the ORDER_ID. Combined, they 

are unique assuming the same customer would hardly order the same thing. 

However,  the  table  is  not  in  the  second  normal  form  because  there  are  partial 

dependencies of primary keys and columns. CUST_NAME is dependent on CUST_ID and 

there's no real link between a customer's name and what he purchased. The order detail 

and purchase date are also dependent on the ORDER_ID, but they are not dependent on 

the CUST_ID, because there is no link between a CUST_ID and an ORDER_DETAIL or their 

SALE_DATE. 

To make this table comply with the second normal form, you need to separate the columns 

into three tables. 

First, create a table to store the customer details as shown in the code block below: 

CREATE TABLE CUSTOMERS( 

       CUST_ID    INT              NOT NULL, 

       CUST_NAME VARCHAR (20)      NOT NULL, 

       PRIMARY KEY (CUST_ID) 




SQL 

 

 



 

10 


 

); 


The next step is to create a table to store the details of each order: 

CREATE TABLE ORDERS( 

       ORDER_ID   INT              NOT NULL, 

       ORDER_DETAIL VARCHAR (20)  NOT NULL, 

       PRIMARY KEY (ORDER_ID) 

); 


Finally, create a third table storing just the CUST_ID and the ORDER_ID to keep a track 

of all the orders for a customer: 

CREATE TABLE CUSTMERORDERS( 

       CUST_ID    INT              NOT NULL, 

       ORDER_ID   INT              NOT NULL, 

       SALE_DATE  DATETIME, 

       PRIMARY KEY (CUST_ID, ORDER_ID) 

); 



Yüklə 0,71 Mb.

Dostları ilə paylaş:
1   ...   27   28   29   30   31   32   33   34   ...   39




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin