Langkah 2. Membangun dan memvalidasi data model logikal 4.3.2.1 Menurunkan (derive) relasi untuk model data logikal
4.3.2.2 Validasi Relasi dengan menggunakan Normalisasi Proses normalisasi meliputi langkah berikut ini :
• First Normal Form ( 1NF )
Pada bentuk normal pertama (First Normal Form – 1NF) ini, kita akan mengidentifikasi dan menghilangkan data berulang (repeating groups).
• Second Normal Form ( 2NF )
Pada bentuk normal kedua (Second Normal Form – 2NF) ini, kita akan menghilangkan partial dependency pada primary key.
• Third Normal Form ( 3NF )
Pada bentuk normal ketiga (Third Normal Form – 3NF) ini, kita akan menghilangkan transitive dependency pada primary key.
Berikut ini merupakan langkah-langkah normalisasi yang dilakukan : 1. Vendor
Unnormlized Form ( UNF ) : Tabel Vendor telah dalam UNF karena
mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Tabel Vendor telah dalam 1NF karena tidak
mengandung data berulang (repeating groups).
Vendor (Vendor_ID, Vendor_Name, Address, Fax, Contact_Person, Contact_Person_Phone)
Second Normal Form ( 2NF ) : Tabel Vendor telah dalam 2NF karena tidak
mengandung partial dependency.
V endor_ID V endor_Name A ddress Fax Contact_Person Contact_Person_Phone
f d1
f d2
(Primary Key)
(Transitive Dependency)
f d3 (Candidate Key)
fd1 Vendor_ID → Vendor_Name, Address, Fax, Contact_Person (Primary Key) fd2 Contact_Person → Contact_PersonPhone (Transitive Dependency) fd3 Vendor_ID, Contact_Person → Vendor_Name, Address, Fax
(Candidate Key) Vendor (Vendor_ID, Vendor_Name, Address, Fax, Contact_Person, Contact_Person_Phone)
Third Normal Form ( 3NF ) :
Relasi baru yang terbentuk :
Vendor (Vendor_ID, Vendor_Name, Address, Fax, Contact_Person) Contact_Person (Contact_Person, Contact_Person_Phone)
2. Delivery Order
Unnormlized Form ( UNF ) : Tabel Delivery Order telah dalam UNF karena
mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Kita hilangkan data berulang (repeating groups)
dengan memasukkan data Delivery Order yang sesuai kedalam tiap baris.
Delivery_Order (DO_No, Date_Of_Issued, Vendor_ID, Vendor_Name, Ship_to, Ref. PPB/PPJ_No, Ref. Contract_No, {Item_Code, Item_Description, Quantity, Unit, Delivery_Schedule, Note}, PO_No, Emp_ID, Emp_Name)
Hasil 1NF :
Delivery_Order_Header (DO_No, Date_Of_Issued, Vendor_ID, Vendor_Name, Ship_to, Ref. PPB/PPJ_No, Ref. Contract_No, PO_No, Emp_ID, Emp_Name)
Delivery_Order_Detail (Item_Code, Item_Description, Quantity, Unit, Delivery_Schedule, Note, DO_No)
Second Normal Form ( 2NF ) : Tabel Delivery_Order_Header dan
Delivery_Order_Detail telah dalam 2NF karena tidak mengandung partial
dependency.
DO_No Date_Of _Issued Vendor_ID Vendor_Name Ship_to Ref . PPB/PPJ_No Ref . Contract_No
Item_Code Item_Description Quantity Unit Deliv ery _Schedule Note
PO_No Emp_ID Emp_Name
(Primary Key ) f d1 f d2 (Transitiv e Dependency ) DO_No f d3 (Transitiv e Dependency ) (Primary Key ) f d4
fd1 DO_No → Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No, Ref.Contract_No, PO_No, Emp_ID (Primary Key)
fd2 Vendor_ID → Vendor_Name (Transitive Dependency) fd3 Emp_ID → Emp_Name (Transitive Dependency)
fd4 Item_Code → Item_Description, Quantity, Unit, Delivery_Schedule, Note, DO_No (Primary Key)
Third Normal Form ( 3NF ) :
Delivery_Order_Header :
fd1 DO_No → Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No, Ref.Contract_No, PO_No, Emp_ID (Primary Key)
fd2 Vendor_ID → Vendor_Name (Transitive Dependency) fd3 Emp_ID → Emp_Name (Transitive Dependency)
Delivery_Order_Detail :
fd4 Item_Code → Item_Description, Quantity, Unit, Delivery_Schedule, Note, DO_No (Primary Key)
Relasi baru yang terbentuk :
Delivery_Order_Header (DO_No, Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No, Ref.Contract_No, PO_No, Emp_ID)
Delivery_Order_Detail (Item_Code, Item_Description, Quantity, Unit, Delivery_Schedule, Note, DO_No)
Vendor (Vendor_ID, Vendor_Name) Employee (Emp_ID, Emp_Name)
3. Purchase Order
Unnormlized Form ( UNF ) : Tabel Purchase Order telah dalam UNF karena
mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Kita hilangkan data berulang (repeating groups)
dengan memasukkan data Purchase Order yang sesuai ke dalam tiap baris.
Purchase Order (PO_No, Date_Of_Issued, Vendor_ID, Vendor_Name, Ship_to, Ref.PPB/PPJ_No, {Item_Code, Item_Description, Quantity, Unit, Unit_Price, Total_Price, Note}, Total, Disc, Nett, PPN/VAT_10%, Emp_ID, Emp_Name)
Hasil 1NF :
Purchase_Order_Header (PO_No, Date_Of_Issued, Vendor_ID, Vendor_Name, Ship_to, Ref. PPB/PPJ_No, Emp_ID, Emp_Name)
Purchase_Order_Detail (Item_Code, Item_Description, Quantity, Unit, Unit_Price, Note, PO_No)
Second Normal Form ( 2NF ) : Tabel Purchase_Order_Header dan
Purchase_Order_Detail telah dalam 2NF karena tidak mengandung partial
PO_No Date_Of _Issued Vendor_ID Vendor_Name Ship_to Ref . PPB/PPJ_No
Item_Code Item_Description Quantity Unit Unit_Price Note
Emp_ID Emp_Name (Primary Key ) f d1 f d2 (Transitiv e Dependency ) PO_No f d3 (Transitiv e Dependency ) (Primary Key ) f d4
fd1 PO_No → Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No, Emp_ID (Primary Key)
fd2 Vendor_ID → Vendor_Name (Transitive Dependency) fd3 Emp_ID → Emp_Name (Transitive Dependency)
fd4 Item_Code → Item_Description, Quantity, Unit, Unit_Price, Note, PO_No (Primary Key)
Third Normal Form ( 3NF ) :
Purchase_Order_Header :
fd1 PO_No → Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No,
Emp_ID (Primary Key)
fd2 Vendor_ID → Vendor_Name (Transitive Dependency) fd3 Emp_ID → Emp_Name (Transitive Dependency)
Purchase_Order_Detail :
fd4 Item_Code → Item_Description, Quantity, Unit, Unit_Price, Note, PO_No (Primary Key)
Relasi baru yang terbentuk :
Purchase_Order_Header (PO_No, Date_Of_Issued, Vendor_ID, Ship_to, Ref.PPB/PPJ_No, Emp_ID)
Purchase_Order_Detail (Item_Code, Item_Description, Quantity, Unit, Unit_Price, Note, PO_No)
Vendor (Vendor_ID, Vendor_Name) Employee (Emp_ID, Emp_Name)
4. Purchase Requisition
Unnormlized Form ( UNF ) : Tabel Purchase Requisition telah dalam UNF
karena mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Kita hilangkan data berulang (repeating groups)
dengan memasukkan data Purchase Requisition yang sesuai ke dalam tiap baris. Purchase_Requisition (PR_No, Date_Of_Issued, {Item_Material_Code, Item_Description, Unit_Price, Quantity, Total, Item_Note}, Grand_Total, Emp_ID)
Hasil 1NF :
Purchase_Requisition_Header (PR_No, Date_Of_Issued, Emp_ID)
Purchase_Requisition_Detail (Item_Material_Code, Item_Description, Unit_Price, Quantity, Item_Note, PR_No)
Second Normal Form ( 2NF ) : Tabel Purchase Requisition telah dalam 2NF
karena tidak mengandung partial dependency.
PR_No Date_Of _Issued
Item_Material_Code Item_Description Unit_Price Quantity Item_Note Emp_ID (Primary Key ) f d1 PR_No (Primary Key ) f d2
fd1 PR_No → Date_Of_Issued, Emp_ID (Primary Key) fd2 Item_Material_Code → Item_Description, Unit_Price, Quantity, Item_Note, PR_No (Primary Key)
Third Normal Form ( 3NF ) : Tabel Purchase Requisition telah dalam 3NF
5. Asset
Unnormlized Form ( UNF ) : Tabel Asset telah dalam UNF karena
mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Kita hilangkan data berulang (repeating groups)
dengan memasukkan data Asset yang sesuai ke dalam tiap baris.
Asset (Asset_No, Asset_Name, Brand, Type, DO_No, Date_Of_Issued, {Item_Code, Item_Description, Serial_No}, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID )
Hasil 1NF :
Asset_Header (Asset_No, Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID)
Asset_Detail (Item_Code, Item_Description, Serial_No, Asset_No)
Second Normal Form ( 2NF ) : Tabel Asset_Header dan Asset_Detail telah
dalam 2NF karena tidak mengandung partial dependency.
Asset_No Asset_Name Brand Ty pe DO_No Date_Of_Issued Price
Item_Code Item_Description Serial_No
Currency Time_Usage Unit_Code
(Primary Key ) f d1 (Primary Key ) f d2 Emp_ID Status Asset_No
fd1 Asset_No → Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID (Primary Key) fd2 Item_Code → Item_Description, Serial_No, Asset_No (Primary Key)
Third Normal Form ( 3NF ) : Tabel Asset_Header dan Asset_Detail telah dalam
3NF karena tidak mengandung transitive dependency.
6. History
Unnormlized Form ( UNF ) : Tabel History telah dalam UNF karena
mentransformasi data dari sumber informasi ke dalam tabel berbentuk baris dan kolom.
First Normal Form ( 1NF ) : Kita hilangkan data berulang (repeating groups)
dengan memasukkan data History yang sesuai ke dalam tiap baris.
History (History_ID, Asset_No, Asset_Name, Brand, Type, {Item_Code, Item_Description, Serial_No}, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID, Expired_Date, Expired_Description, Historical_Status)
Hasil 1NF :
History_Header (History_ID, Asset_No, Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID, Expired_Date, Expired_Description, Historical_Status)
History_Detail (Item_Code, Item_Description, Serial_No, History_ID)
Second Normal Form ( 2NF ) : Tabel History_Header dan History_Detail telah
dalam 2NF karena tidak mengandung partial dependency.
Asset_No Asset_Name Brand Ty pe DO_No Date_Of _Issued Price
Item_Code Item_Description Serial_No
Currency Time_Usage Unit_Code
(Primary Key ) f d1 (Primary Key ) f d3 Emp_ID Status
History _ID Expired
_Date Expired_De scription Historical_ Status History _ID ( Transitiv e Dependency ) f d2
fd1 History_ID → Asset_No, Expired_Date, Expired_Description, Historical_Status (Primary Key)
fd2 Asset_No → Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID (Transitive Dependency) fd3 Item_Code → Item_Description, Serial_No, History_ID (Primary Key)
Third Normal Form ( 3NF ) :
History_Header
fd1 History_ID → Asset_No, Expired_Date, Expired_Description, Historical_Status (Primary Key)
fd2 Asset_No → Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID (Transitive Dependency) History_Detail
Relasi baru yang terbentuk :
History_Header (History_ID, Expired_Date, Expired_Description, Historical_Status, Asset_No)
History_Detail (Item_Code, Item_Description, Serial_No, History_ID)
Asset_Header (Asset_No, Asset_Name, Brand, Type, DO_No, Date_Of_Issued, Price, Currency, Time_Usage, Unit_Code, Status, Emp_ID)