Anda di halaman 1dari 4

Halo semuanya sebelum memulai materi hari ini, saya ingin membetulkan

sesuatu dari pertemuan sebelumnya, bila kalian ingat di pertemuan sebelumnya


terdapat contoh 3NF sebagai berikut
3NF
OrderHeader
PK FK
OrderNumber,CustomerNumber,Date
Customer
PK
CustomerNumber,CustomerName,CustomerAddress,City,Country
OrderDetail
PK FK PK FK
ProductNo,OrderNumber,Quantity
Product
PK
ProductNo,Description,UnitPrice
Disini saya menyatakan bahwa walau city di Table Customer bisa
menentukan country, tidak saya buat tabel terpisah karena ada nama city yang
sama, penjelasan ini sebenarnya kurang lengkap. Pertama dalam kasus ini walau
nama city ada yang sama bisa kita bedakan dengan menambahkan cityId, biasanya
kita memisahkan data untuk menghilangkan redundancy tapi dalam kasus ini
cityId sendiri hanya menentukan nama city begitu juga dengan countryId maka
dari itu saya memutuskan untuk tidak memisahkannya, tapi perlu diingat
idealnya seharusnya dipisah walau awalnya terkesan tidak efektif, bila ada
penambahan data kedepannya akan lebih simpel daripada tidak dipisah.
3NF
OrderHeader
PK FK
OrderNumber,CustomerNumber,Date
Customer
PK
CustomerNumber,CustomerName,CustomerAddress,City,Country
OrderDetail
PK FK PK FK
ProductNo,OrderNumber,Quantity
Product
PK
ProductNo,Description,UnitPrice

Sekarang mari kita lihat materi hari ini, materi hari ini dibagi
menjadi 2 yaitu 3NF gabungan dan membuat ERD menggunakan Visio. Pertama tama
mari kita bahas 3NF gabungan terlebih dahulu. Saya punya 2 database yang
sudah di normalisasi sampai ke tahap 3NF berupa
INVOICE SALES
• 3NF

• SalesTransaction(SalesTransactionId, CustomerId, StaffId, SalesTransactionDate)


• SalesTransactionDetail(SalesTransactionId, WatchId, WQuantity)
• Watch(WatchId, WatchName, WatchPrice)
• Customer(CustomerId, CustomerName, CustomerEmail, CustomerPhone, CustomerAddress)
• Staff(StaffId, StaffName, StaffPositionId)
• StaffPosition(StaffPositionId, StaffPositionName)
dan
INVOICE PURCHASE
2. 3NF
• PurchaseTransaction(PurchaseTransactionId, PurchaseTransactionDate, SupplierId, StaffId)
• PurchaseTransactionDetail(PurchaseTransactionId, WMaterialId, MQuantity)
• WMaterial(WMaterialId, WMaterialName, WMaterialPrice)
• Supplier(SupplierId, SupplierName, SupllierEmail, SupplierPhone, SupplierAddress)
• Staff(StaffId, StaffName, StaffPositionId)
• StaffPosition(StaffPositionId, StaffPositionName)
Nah sekarang kita ingin menggabungkan Invoice Sales dengan Invoice Purchase, bagaimana caranya?
Caranya kita tulis ulang semuanya kecuali yang sama, kalau kita perhatikan kedua duanya sama sama
memiliki Staff dan StaffPosition, makanya kita cukup menulikannya sekali sehingga hasil akhirnya akan
menjadi begini
COMBINED 3NF Purchase Invoice and Sales Invoice

• SalesTransaction(SalesTransactionId, CustomerId, StaffId, SalesTransactionDate)


• SalesTransactionDetail(SalesTransactionId, WatchId, WQuantity)
• Watch(WatchId, WatchName, WatchPrice)
• Customer(CustomerId, CustomerName, CustomerEmail, CustomerPhone, CustomerAddress)
• PurchaseTransaction(PurchaseTransactionId, PurchaseTransactionDate, SupplierId, StaffId)
• PurchaseTransactionDetail(PurchaseTransactionId, WMaterialId, MQuantity)
• WMaterial(WMaterialId, WMaterialName, WMaterialPrice)
• Supplier(SupplierId, SupplierName, SupllierEmail, SupplierPhone, SupplierAddress)
• Staff(StaffId, StaffName, StaffPositionId)
• StaffPosition(StaffPositionId, StaffPositionName)
Sekarang mari kita lihat cara membuat ERD di visio, bagi yang sudah lupa dengan ERD bisa
mengecek di catatan week sebelumnya. Pertama tama buka visio, setelah terbuka akan muncul tampilan
sebagai berikut.
Bila kurang jelas silahkan lihat (gambar 1)

Pertama tama pilih categories, lalu cari opsi Software and Database

(Gambar 2)

Selanjutnya pilih opsi Crows foot database notation.


(Gambar 3)

Di kiri bisa kalian pilih entity untuk membuat suatu entity atau tabel.
(Gambar 4)

Kalian bisa menghubungkan 2 buah entity menggunakan relationship.

(Gambar 5)

Untuk mengedit ujung garisnya agar membentuk panah klik kanan padi garis
relationship dan pilih set begin symbol -> default dan set end symbol ->
default
(Gambar 6)

(Gambar 7)

Terakhir kalian bisa assign primary key dan foreign key dengan cara klik
kanan pada kolom entity. Kalian jug bisa mendelet atau menghilangkan primary
ataupun foreign key.

Sekian materi hari ini bila ada ketidak jelasan silahkan ditanyakan di forum
atau bisa lewat line saya, Terimakasih.

Anda mungkin juga menyukai