3.3 Perancangan Basis Data Konseptual .1 Identifikasi Tipe Entitas
3.4.5 Mendefinisikan batasan integritas / Integrity Constraint
Langkah ini bertujuan untuk memeriksa batasan – batasan integritas yang direpresentasikan di dalam model data logikal yang telah dibentuk. Ada beberapa pertimbangan dalam memeriksa Integrity Constraint yaitu :
1. Required Data
Memastikan bahwa atribut tertentu yang sangat dibutuhkan tidak diperbolehkan memiliki nilai NULL. Batasan ini telah terpenuhi seperti yang tertera pada bagian (3.3.3) dengan beberapa tambahan baris sebagai berikut :
Tabel 3. 21 Penambahan Kamus Atribut Position pada Tahap Pengecekan Integrity Constraint
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value PositionID Identifikasi unik dari
sebuah member dari Position
Char (4) No No
Position Nama jabatan dari seorang karyawan
Varchar (30) No No
134
Tabel 3. 22 Penambahan Kamus Atribut DetailMessage pada Tahap Pengecekan Integrity Constraint
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value MessageID Identifikasi unik
dari sebuah member dari Message
Char (8) No No
Comment Pesan yang dibuat oleh Customer atau Sales
Varchar (200) No No
CommentPost Nama seseorang yang menuliskan Comment
Varchar (50) No No
CommentTime Waktu pada saat Comment dibuat
Date No No
Tabel 3. 23 Penambahan Kamus Atribut ProductType pada Tahap Pengecekan Integrity Constraint
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value ProductTypeID Identifikasi unik dari
sebuah member dari ProductType
135
ProductType Tipe dari suatu produk Varchar (20) No No
Tabel 3. 24 Penambahan Kamus Atribut DetailTransaction pada Tahap Pengecekan Integrity Constraint
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value DocumentNo Identifikasi unik dari
sebuah member dari Transaction
Char (5) No No
ProductID Identifikasi unik dari sebuah member dari Product
Char (10) No No
Qty Jumlah produk yang dibeli Int (11) No No DetailDate Waktu pada saat suatu
produk dipilih untuk dimasukkan ke dalam cart
Datetime No No
Tabel 3. 25 Penambahan Kamus Atribut RequestDetail pada Tahap Pengecekan Integrity Constraint
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value RequestID Nomor surat permintaan
produk ke pabrik
136
Atribut Deskripsi Tipe Data dan Panjang
Nulls Multi Value ProductID Identifikasi unik dari
sebuah member dari Product
Char (10) No No
Qty Jumlah produk yang
diminta oleh gudang
Int (11) No No
2. Attribute Domain Constraint
Menentukan domain atau nilai yang diperbolehkan dalam satu atribut. Batasan ini telah terpenuhi seperti yang tertera pada bagian (3.3.4) dengan beberapa tambahan baris sebagai berikut :
Tabel 3. 26 Penambahan Atribut Domain setelah Dilakukan Pengecekan Integrity Constraint
Nama Entitas Atribut Domain Atribut Position PositionID Char dengan panjang 4 karakter
Position Varchar dengan panjang 30 karakter DetailMessage MessageID Char dengan panjang 8 karakter
Comment Varchar dengan panjang 200 karakter CommentPost Varchar dengan panjang 50 karakter CommentTime Date
137
Nama Entitas Atribut Domain Atribut ProductType ProductTypeID Char dengan panjang 2 karakter
ProductType Varchar dengan panjang 20 karakter DetailTransaction DetailDate Datetime
DocumentNo Char dengan panjang 5 karakter ProductID Char dengan panjang 10 karakter Qty Int dengan panjang 11 digit RequestDetail RequestID Char dengan panjang 4 karakter
ProductID Char dengan panjang 10 karakter Qty Int dengan panjang 11 digit 3. Multiplicity
Merupakan batasan jumlah yang ditempatkan pada hubungan antar data dalam basis data. Batasan ini telah terpenuhi seperti yang tertera pada bagian (3.3.2).
4. Entity Integrity
Memastikan primary key suatu entitas tidak bernilai NULL. Batasan ini telah dipenuhi seperti yang telah tertera pada bagian (3.3.5) dan telah ditentukan pula pada kamus data atribut pada tabel 3.18.
138 5. Referential Integrity
Memastikan foreign key tidak memiliki nilai NULL dan dalam model data logikal tidak ditemukan adanya kemungkinan foreign key yang bernilai NULL.
Tabel 3. 27 Tabel Relasi Setelah Melakukan Proses Referential Integrity
No Relation
1 Employee (EmployeeID, EmployeeName, EmployeeAdd, EmployeePhone, EmployeePass, PositionID)
Primary Key : EmployeeID
Foreign Key : PositionID references Position(PositionID) ON UPDATE CASCADE ON DELETE NO ACTION
2 Position (PositionID, Position) Primary Key : PositionID
3 Customer (CustomerID, CustomerName, CustomerAdd, CustomerTaxNo, CustomerPhone, CustomerFax, CustomerCP, CustomerPass, DeliveryAdd)
Primary Key : CustomerID
4 Message (MessageID, Topic, MessageTime, MessagePost, CustomerID, EmployeeID)
Primary Key : MessageID
Foreign Key : EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
139
No Relation
Foreign Key : CustomerID references Customer(CustomerID) ON UPDATE CASCADE ON DELETE NO ACTION
5 DetailMessage (MessageID, Comment, CommentPost, CommentTime) Primary Key : MessageID, CommentTime
Foreign Key : MessageID references Message ON UPDATE CASCADE ON DELETE NO ACTION
6 Delivery (DeliveryID, DeliveryDate, WarehouseID, VehicleID) Primary Key : DeliveryID
Foreign Key : WarehouseID references Warehouse(WarehouseID) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : VehicleID references Vehicle(VehicleID) ON UPDATE CASCADE ON DELETE NO ACTION
7 Product (ProductID, ProductName, ProductPrice, ProductSize, ProductImage, ProductTypeID)
Primary Key : ProductID
Foreign Key : ProductTypeID references ProductType(ProductTypeID) ON UPDATE CASCADE ON DELETE NO ACTION
8 ProductType (ProductTypeID, ProductType) Primary Key : ProductTypeID
9 Transaction (DocumentNo, CustomerID, PurchaseOrderID, TransactionDate, MaturityDate, SalesConfirmDate, DeliveryID, EmployeeID, Status, DeliveryStatus, PaymentStatus, TransferNo)
140
No Relation
Primary Key : DocumentNo
Foreign Key : CustomerID references PurchaseOrder(CustomerID) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : PurchaseOrder ID references
PurchaseOrder(PurchaseOrderID) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : DeliveryID references Delivery(DeliveryID) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
10 DetailTransaction (DocumentNo, ProductID, Qty, DetailDate) Primary Key : DocumentNo, ProductID
Foreign Key : DocumentNo references Transaction(DocumentNo) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : ProductID references Product(ProductID) ON UPDATE CASCADE ON DELETE NO ACTION
11 PurchaseOrder (PurchaseOrderID, PurchaseOrderDate, CustomerID, EmployeeID)
Primary Key : PurchaseOrderID
Foreign Key : CustomerID references Customer(CustomerID) ON UPDATE CASCADE ON DELETE NO ACTION
141
No Relation
UPDATE CASCADE ON DELETE NO ACTION 12 Input (CustomerID, EmployeeID, InputDate)
Primary Key : CustomerID, EmployeeID
Foreign Key : CustomerID references Customer(CustomerID) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key : EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
13 Vehicle (VehicleID, WarehouseID, VehicleName) Primary Key : VehicleID
Foreign Key : WarehouseID references Warehouse(WarehouseID) ON UPDATE CASCADE ON DELETE NO ACTION
14 Warehouse (WarehouseID, WarehouseName, WarehouseAdd, WarehousePhone, WarehouseFax, WarehousePass, VerPass) Primary Key : WarehouseID
15 Request (RequestID, RequestDate, WarehouseID) Primary Key : RequestID
Foreign Key : WarehouseID references Warehouse(WarehouseID) ON UPDATE CASCADE ON DELETE NO ACTION
16 RequestDetail (RequestID, ProductID, Qty) Primary Key : RequestID, ProductID
Foreign Key : RequestID references Request(RequestID) ON UPDATE CASCADE ON DELETE NO ACTION
142
No Relation
Foreign Key : ProductID references Product(ProductID) ON UPDATE CASCADE ON DELETE NO ACTION
3.4.6 Melakukan Review Model Data Logikal dengan User
Pada tahap ini diperlukan proses diskusi dengan pihak kantor cabang untuk melakukan review apakah model data logikal telah sesuai dengan kebutuhan dan telah memenuhi semua persyaratan data user. Setelah melakukan diskusi, model data yang telah dibentuk dinyatakan cukup memenuhi persyaratan yang diperlukan perusahaan.