• Tidak ada hasil yang ditemukan

Menentukan batasan integritas

Dalam dokumen BAB 3 METODOLOGI Metodologi Database Planning (Halaman 119-125)

Gambar 3.23 Entity Relational Diagram Model Data Logikal Sesudah Normalisasi

3.3.1.1.5. Menentukan batasan integritas

Batasan integritas adalah batasan yang diharapkan dapat melindungi database menjadi tidak konsisten. Ada lima batasan integritas, yaitu:

1. Data yang diperlukan

Beberapa atribut harus selalu memiliki nilai yang valid.Dengan kata lain, atribut tersebut tidak boleh bernilai null.Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 3 (Sub bab 3.3.1.1 point 3).

2. Batasan domain atribut

Setiap atribut memiliki domain, yang berarti satu set nilai yang legal. Batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 4 (Sub bab 3.3.1.1 point 4)

3. Batasan entity

Batasan entity berarti primary key tidak boleh bernilai null.Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 5 (Sub bab 3.3.1.1 point 5).

4. Batasan referensial

Staff (StaffID, StaffName, Address, Phone, Email, Password, RoleID) Primary Key StaffID

Foreign Key RoleID references Role(RoleID)

ON UPDATE NO ACTION ON DELETE NO ACTION Role (RoleID, RoleName)

Primary Key RoleID

Client (ClientID, ClientName, Address, Phone, Email, Fax) Primary Key ClientID

Supplier (SupplierID, SupplierName, Address, Phone, Fax, Email, SupplierTypeID) Primary Key SupplierID

Foreign Key SupplierTypeID references SupplierType (SupplierTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION

SupplierType (SupplierTypeID, SupplierTypeName) Primary Key SupplierTypeID

AccountBank (AccountID, AccountNumber, BankID) Primary Key AccountID

Foreign Key BankID references Bank (BankID)

ON UPDATE NO ACTION ON DELETE NO ACTION Bank (BankID, BankName)

Primary Key BankID

Material (MaterialID, MaterialName, Unit, Stock, MaterialTypeID) Primary Key MaterialID

Foreign Key MaterialType references MaterialType (MaterialTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION

MaterialType (MaterialTypeID, MaterialTypeName) Primary Key MaterialTypeID

PaymentType (PaymentTypeID, PaymentTypeName) Primary Key PaymentTypeID

StockAdjustmentHeader (StockAdjustmentID, StaffID,

StockAdjustmentDocNumber, StockAdjustmentDate, StockAdjustmentNote) Primary Key StockAdjustmentID

Foreign Key StaffID references Staff (StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

StockAdjustmentDetail ( StockAdjusmentID, MaterialID, Qty) Primary KeyStockAdjustmentID

Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION Project (ProjectID, ClientID, ProjectName, ProjectAddress) Primary Key ProjectID

Foreign Key ClientID references Client (ClientID) ON UPDATE NO ACTION ON DELETE NO ACTION RAB (RAB_ID, StaffID, ProjectID, RAB_date, RAB_Amount) Primary Key RAB_ID

Foreign Key StaffID references Staff (StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key ProjectID references Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION SubRABHeader (SubRAB_ID,RAB_ID, SubRABName) Primary Key SubRAB_ID

Foreign Key RAB_ID references RAB (RAB_ID) ON UPDATE NO ACTION ON DELETE NO ACTION SubRABDetail (SubRAB_ID, MaterialID, Qty, UnitPrice) Primary Key SubRAB_ID

Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION

ProjectOrder(ProjectOrderID, ProjectID, StaffID, ProjectOrderDocNumber, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm)

Primary Key ProjectOrderID

Foreign Key ProjectID references Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff (StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

MaterialUsedHeader (MaterialUsedID, ProjectOrderID, StaffID, MaterialUsedDocNumber, MaterialUsedDate, MaterialUsedNote, CarNo, DriverName,

ProjectOrderDocNumber) Primary Key MaterialUsedID

Foreign Key ProjectOrderID references ProjectOrder (ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key StaffID references Staff (StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION MaterialUsedDetail (MaterialUsedID, MaterialID, Qty) Primary Key MaterialUsedID

Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION

ProjectBill(ProjecBillID, ProjectOrderID, StaffID, ProjectBillDocNumber, ProjectBillDate, ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN)

Primary Key ProjectBillID

Foreign Key ProjectOrderID references ProjectOrder(ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

ProjectPayment(ProjectPaymentID, ProjectBillID, AccountID, StaffID, ProjectPaymentDocNumber, ProjectPaymentDate, ProjectPaymentNote, PaymentTypeID)

Primary Key ProjectPaymentID

Foreign Key ProjectBillID references ProjectBill(ProjectBillID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key PaymentTypeID references PaymentType (PaymentTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION

ProjectAddendumHeader (ProjectAddID, ProjectOrderID, StaffID, ProjectAddDocNumber, ProjectAddDate, ProjectAddNote)

Foreign Key ProjectOrderID references ProjectOrder(ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

ProjectAddendumDetail (ProjectAddID, MaterialID,Qty, UnitPrice, Status) Primary Key ProjectAddID

Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION

AddendumBill (AddendumBillID, ProjectAddID, StaffID, AddendumBillDocNumber, AddendumBillDate, AddendumBillNote, AddendumBillDueDate, PPN)

Primary Key AddendumBillID

Foreign Key ProjectAddID references ProjectAdd(ProjectAddID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

AddendumPayment(AddendumPaymentID, AddendumBillID, AccountID, StaffID, AddendumPaymentDocNumber, AddendumPaymentDate, AddendumPaymentNote, PaymentTypeID)

Primary Key AddendumPaymentID

Foreign Key AddendumBillID references AddendumBill(AddendumBillID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

PurchaseOrderHeader(POID, SupplierID, StaffID, PODocNumber, PODate, PONote, ReceiptDate, Discount, PPN)

Primary Key POID

Foreign Key SupplierID references Supplier(SupllierID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION PurchaseOrderDetail (POID, MaterialID, Qty, UnitPrice)

Primary Key POID

Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION

POReceiptHeader (POReceiptID, POID, StaffID, POReceiptDocNumber, POReceiptDate, POReceiptNote, CarNo, DriverName)

Primary Key POReceiptID

Foreign Key POID references PO(POID)

ON UPDATE NO ACTION ON DELETE NO ACTION POReceiptDetail (POReceiptID, MaterialID, Qty) Primary Key POReceiptID

Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION

PurchaseBill(PurchaseBillID, POID, StaffID, PurchaseBillDocNumber, PurchaseBillDate, PurchaseBillNote, PurchaseBillDueDate)

Primary Key PurchaseBillID

Foreign Key POID references PO(POID)

ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID)

ON UPDATE NO ACTION ON DELETE NO ACTION

PurchasePayment(PurchasePaymentID, PurchaseBillID, AccountID, StaffID, PurchasePaymentDocNumber, PurchasePaymentDate, PurchasePaymentNote, SupplierAccountNo, PaymentTypeID)

Primary Key PurchasePaymentID

Foreign Key PurchaseBillID references PurchaseBill(PurchaseBillID) ON UPDATE NO ACTION ON DELETE NO ACTION

Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID)

5. Batasan perusahaan

Batasan perusahaan merupakan aturan bisnis yang berpengaruh dalam dunia nyata. Dalam perancangan yang telah dibangun, tidak terdapat batasan-batasan yang diberikan perusahaan

3.3.1.1.6. Menggabungkan model data logikal ke dalam model

Dalam dokumen BAB 3 METODOLOGI Metodologi Database Planning (Halaman 119-125)

Dokumen terkait