2. Proses Pembelian
4.2.2.8 Validasi logikal data model secara global
Pada perancangan basis data ini, kami tidak melakukan langkah validasi logikal data model secara global.
Gambar 4.11 Validasi logikal data model secara global 4.2.2.9 Periksa untuk pertumbuhan dimasa datang
Model data logikal yang dirancang sudah disesuaikan dengan kemungkinan yang terjadi di masa depan, selama tidak terjadi perubahan kebutuhan dari user.
4.2.3 Perancangan Fisikal
Perancangan basis data fisik adalah proses yang menghasilkan gambaran dari implement database pada secondary storage. Tahap ini menggambarkan base relation, penyusunan dan pemberian indek file yang digunakan untuk mencapai akses data yang efisien, batasan integritas, dan tingkat keamanan (Connolly dan Begg, 2010, p523).
Perancangan basis data fisikal terdiri dari tahap perancanganan, yaitu: 1. Memetakan model data logikal untuk target DBMS
• Desain base relation.
• Desain representasi dan derived data. • Desain batasan umum.
2. Desain penyusunan dan pemberian index pada file • Analisis transaksi.
• Memilih index.
• Memperkirakan ukuran kapasitas disk yang dibutuhkan. 3. Desain user views
4. Desain mekanisme keamanan
5. Mempertimbangkan petunjuk untuk pengaturan redundancy 6. Monitor dan tune sistem operasional
4.2.3.1 Memetakan Model Data Logikal Untuk Target DBMS
Tujuan dari langkah ini adalah untuk menghasilkan skema basis data relasional dari model data logikal yang dapat diimplementasikan di DBMS (Connolly dan Begg, 2010, p524).
Tujuan dari langkah ini adalah untuk memutuskan bagaimana kita menampilkan base relation yang ditemukan dari model data logikal ke dalam target DBMS (Connolly dan Begg, 2010, p525). Desain Base Relation
• MsCustomor
Domain UserId: Fixed length character string, length 8 DomainPassword: Variable length character string, length 10 Domain FirstName: Variable length character string, length 15 Domain LastName: Variable length character string, length 15 Domain Gender: Integer
Domain Address: Variable length character string, length 100 Domain BankAccountNo: Variable length character string, length 15 MsCustomer(
UserId UserId NOT NULL,
Password CustomerPassword NOT NULL,
FirstName CustomerFirstName NOT NULL,
LastName CustomerLastName NOT NULL,
Gender Gender NOT NULL,
Address CustomerAddress NOT NULL,
BankAccountNo BankAccountNo NOT NULL,
PRIMARY KEY (UserId), )
• MsEmplyee
Domain EmployeeId: Fixed length character string , length 8
Domain Status: Integer MsEmployee(
EmployeeId EmployeeId NOT NULL, EmployeeName EmployeeName NOT NULL, Status EmployeeStatus NOT NULL, PRIMARY KEY (EmployeeId),
)
• MsProduct
Domain ProductId: Fixed length character string , length 8
Domain ProductName: variable length character string , length 10 Domain Price: Decimal, length 10,2
Domain Stock : Integer MsProduct(
ProductId ProductId NOT NULL,
ProductName ProductName NOT NULL,
Price Price NOT NULL,
Stock Stock NOT NULL,
PRIMARY KEY (ProductId), )
• Testimonial(
Domain TestimonialId: Fixed length character string , length 8 Domain UserId: Fixed length character string , length 8
Domain Comment: Variable length character string , length 100 Domain FirstName: Variable length character string , length 15
Domain Status: Integer
Domain EmployeeId: Fixed length character string , length 8 Testimonial(
TestimonialId TestimonialId NOT NULL,
UserId UserId NOT NULL,
Comment TestimonialComment NOT NULL,
Status Status NOT NULL,
EmployeeId EmployeeId NOT NULL,
FirstName CustomerFirstName NOT NULL, PRIMARY KEY (TestimonialId),
FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY EmployeeId REFERENCES MsEmployee (EmployeeId) ON UPDATE CASCADE ON DELETE CASCADE, )
• MsVendor
Domain VendorId: Fixed length character string , length 8
Domain VendorName: variable length character string , length 20 Domain Address: variable length character string , length 100 MsVendor(
VendorId VendorId NOT NULL,
VendorName VendorName NOT NULL,
Address VendorAddress NOT NULL,
PRIMARY KEY (VendorId), )
• TrSales
Domain SalesNo: Fixed length character string , length 12 Domain Status: Integer
Domain UserId: Fixed length character string , length 8 Domain RequestedDate: DateTime, format yyyy-mm-dd Domain PaymentStatus: Integer
Domain TransactionDate: DateTime, format yyyy-mm-dd Domain FirstName : variable length character string , length 15 Domain ProductId: Fixed length character string , length 8
Domain ProductName: variable length character string , length 10 Domain Price: Decimal, length 10,2
TrSales
SalesNo SalesNo NOT NULL,
FirsName CustomerFirstName NOT NULL,
ProductId ProductId NOT NULL,
ProductName ProductName NOT NULL,
Price Price NOT NULL,
Status SalesStatus NOT NULL,
UserId UserId NOT NULL,
RequestedDate SalesRequestDate NOT NULL, PaymentStatus PaymentStatus NOT NULL, TransactionDate SalesTransactionDate NOT NULL, PRIMARY KEY(SalesNo),
FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• TrPurchase
Domain PurchaseNo: Fixed length character string , length 12 Domain VendorId: Fixed length character string , length 8 Domain Description: Variable length character string , length 50 Domain TransactionDate: DateTime, format yyyy-mm-dd
Domain VendorName : Variable length character string , length 20 Domain ProductId: Fixed length character string , length 8
Domain ProductName: Variable length character string , length 10 Domain Price: Decimal, length 10,2
TrPurchase(
PurchaseNo PurchaseNo NOT NULL,
VendorName VendorName NOT NULL,
ProductId ProductId NOT NULL,
ProductName ProductName NOT NULL,
Price Price NOT NULL,
VendorId VendorId NOT NULL,
Description PurchaseDescription NOT NULL, TransactionDate PurchaseTransactionDate NOT NULL, PRIMARY KEY (PurchaseNo),
FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,
• PurchaseRetur
Domain PurchaseReturId: Fixed length character string , length 12 Domain PurchaseNo: Fixed length character string , length 12 Domain TransactionDate: DateTime, format yyyy-mm-dd
Domain VendorName: Variable length character string , length 20 Domain ProductId: Fixed length character string , length 8
Domain ProductName: Variable length character string , length 10 Domain QTY : Integer
Domain Price: Decimal, length 10,2 PurchaseRetur(
PurchaseReturId PurchaseReturId NOT NULL,
VendorName VendorName NOT NULL,
ProductId ProductId NOT NULL,
ProductName ProductName NOT NULL,
PurchaseNo PurchaseNo NOT NULL,
TransactionDate PurchaseReturDate NOT NULL,
QTY Quantity NOT NULL,
Price Price NOT NULL,
PRIMARY KEY (PuchaseReturId),
FOREIGN KEY PurchaseNo REFERENCES TrPurchase (PurchaseNo) ON UPDATE CASCADE ON DELETE CASCADE, )
• SalesRetur
Domain SalesReturId: Fixed length character string , length 12 Domain SalesNo: Fixed length character string , length 12
Domain TransactionDate: DateTime, format yyyy-mm-dd Domaim QTY: Integer
Domain Price: Decimal, length 10,2
Domain FirstName: Variable length character string , length 15 Domain ProductId: Fixed length character string , length 8 Domain ProductName: Variable length character string , length 8 SalesRetur(
SalesReturId SalesReturId NOT NULL,
QTY Quantity NOT NULL,
Price Price NOT NULL,
FirstName CustomerFirstName NOT NULL,
ProductId ProductId NOT NULL,
ProductName ProductName NOT NULL,
SalesNo SalesNo NOT NULL,
TransactionDate SalesReturDate NOT NULL, PRIMARY KEY (SalesReturId),
FOREIGN KEY SalesNo REFERENCES TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE,
)
• Payment
Domain PaymentNo: Fixed length character string , length 12 Domain BankName: Variable length character string , length 20 Domain BankAccountNo : Variable length character string, length 15 Domain Amount: Integer
Domain Status: Integer
Domain TransactionDate: Date, length 10, format yyyy-mm-dd Domain UserId: Fixed length character string , length 8
Payment(
PaymentNo PaymentNo NOT NULL,
UserId UserId NOT NULL,
BankName BankName NOT NULL,
Amount PaymentAmount NOT NULL,
SalesNo SalesNo NOT NULL,
BankAccountNo BankAccountNo NOT NULL, Status PaymentStatus NOT NULL, TransactionDate PaymentDate NOT NULL, PRIMARY KEY (PaymentNo),
FOREIGN KEY SalesNo REFERENCES TrSales (SalesId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• TrSalesDetail
Domain SalesNo: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer
Domain Price: Decimal, length 10,2 TrSalesDetail(
SalesNo SalesNo NOT NULL,
Price Price NOT NULL,
ProductId ProductId NOT NULL,
QTY Quantity NOT NULL,
PRIMARY KEY (SalesNo, ProductId)
FOREIGN KEY SalesNo REFERENCES TrSales (SalesNo) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY ProductId REFERENCES MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• TrPurchaseDetail
Domain PurchaseNo: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer
Domain Price: Decimal, length 10,2 TrPurchaseDetail(
PurchaseNo PurchaseNo NOT NULL,
Price Price NOT NULL,
ProductId ProductId NOT NULL,
QTY Quantity NOT NULL,
PRIMARY KEY (PurchaseNo, ProductId)
FOREIGN KEY PurchaseNo REFERENCES TrPurchase (PurchaseNo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ProductId REFERENCES MsProduct (ProductlId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• TrSalesReturDetail
Domain SalesReturId: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8 Domain QTY: Integer
Domain Price: Decimal, length 10,2 TrSalesReturDetail(
SalesReturId SalesReturId NOT NULL,
Price Price NOT NULL,
ProductId ProductId NOT NULL,
QTY Quantity NOT NULL,
PRIMARY KEY (SalesReturId, ProductId)
FOREIGN KEY SalesReturId REFERENCES TrSalesRetur (SalesReturId) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ProductId REFERENCES MsProduct (ProductId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• TrPurchaseReturDetail
Domain PurchaseReturId: Fixed length character string , length 12 Domain ProductId: Fixed length character string , length 8
Domain QTY: Integer
Domain Price: Decimal, length 10,2 TrPurchaseReturDetail(
PurchaseReturId PurchaseReturId NOT NULL,
ProductId ProductId NOT NULL,
QTY Quantity NOT NULL,
PRIMARY KEY (PurchaseReturId, ProductId)
FOREIGN KEY PurchaseReturId REFERENCES TrPurchaseRetur (PurchaseReturId) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY ProductId REFERENCES MsProduct (ProductlId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• CustomerPhone
Domain CustomerPhoneNo: variable length character string , length 15
Domain UserId: Fixed length character string , length 8 CustomerPhone(
CustomerPhoneNo CustomerPhoneNo NOT NULL,
UserId UserId NOT NULL,
PRIMARY KEY (CustomerPhoneNo)
FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• CustomerEmail
Domain CustomerEmailNo: Variable length character string , length 30
CustomerEmail(
CustomerEmailNo CustomerEmailNo NOT NULL,
UserId UserId NOT NULL,
PRIMARY KEY (CustomerEmailNo)
FOREIGN KEY UserId REFERENCES MsCustomer (UserId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• VendorPhone
Domain VendorPhoneNo: Fixed length character string , length 15 Domain VendorId: Fixed length character string , length 8
VendorPhone(
VendorPhoneNo VendorPhoneNo NOT NULL,
VendorId VendorId NOT NULL,
PRIMARY KEY (VendorPhoneNo),
FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,
)
• VendorEmail
Domain VendorEmailNo: Fixed length character string , length 30 Domain VendorId: Fixed length character string , length 8
VendorEmail(
VendorEmailNo VendorEmailNo NOT NULL,
VendorId VendorId NOT NULL,
FOREIGN KEY VendorId REFERENCES MsVendor (VendorId) ON UPDATE CASCADE ON DELETE CASCADE,
)