PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU
4.1) Mô hình thực thể liên kết
Mô hình Thực thể/ Liên kết (Entity/ Association Model) là mô hình dữ liệu do
P.P.Chen đưa ra năm 1976 và sau đó được dùng khá phổ biến trên thế giới.
Nó có ưu điểm là khá đơn giản và gần với tư duy trực quan. Khi xem xét các
thông tin, người ta thường gom cụm chúng xung quanh các vật thể. Chẳng hạn các
thông tin về tên, tuổi, địa chỉ, chiều cao, cân nặng… được gom cụm với nhau xung
quanh một người, trong khi các thông tin về số đăng ký, nhãn mác, kiểu dáng, mầu
sơn, dung tích xi lanh…lại được gom với nhau xung quang một xe máy. Mô hình thực
thể liên kết mô tả tập hợp các dữ liệu dùng trong một hệ thống theo cách gom cụm như
vậy. Mô hình E/A xuất phát từ ba khái niệm cơ bản : thực thể, liên kết và thuộc tính.
Vì chương trình tập trung chủ yếu vào nghiệp vụ bán hàng nên phần này chủ
yếu phân tích thực thể psBanHang.
Các thực thể :
Một thực thể (entity) là một vật thể cụ thể hay trừu tượng, tồn tại thực sự và khá
ổn định trong thế giới thực mà ta muốn phản ánh nó trong hệ thống thông tin.
Các thuộc tính :
Thuộc tính (property hay attribute) là một giá trị dùng để mô tả một khía cạnh
nào đó của một thực thể.
thực thể được mô tả bởi cùng một tập hợp các kiểu thuộc tính và biểu diễn cho
một lớp các tự nhiên các vật thể trong thế giới thực.
Các liên kết :
Liên kết một - một : liên kết một - một giữa hai thực thể T1 và T2 là liên kết
mà ứng với mỗi dữ liệu trong thực thể T1 có nhiều nhất một dữ liệu trong thực
thể T2 và ngược lại. Ký hiệu của liên kết một - một : 1 -1 hay 1:1.
Liên kết một - nhiều : một liên kết một - nhiều từ thực thể T1 đến thực thể T2
là liên kết ứng với mỗi dữ liệu trong thực thể T1 có một hoặc nhiều hoặc
không có dữ liệu nào trong thực thể T2 nhưng mỗi dữ liệu trong thực thể T2
có duy nhất một dữ liệu trong thực thể T1. Ký hiệu của liên kết một nhiều là :
1 – n hay 1 : n.
Liên kết nhiều - nhiều : một liên kết nhiều - nhiều từ thực thể T1 đến thực thể
T2 là liên kết mà ứng với mỗi dữ liệu trong thực thể T1 có một hoặc nhiều
hoặc không có dữ liệu nào trong thực thể T2 và ngược lại ứng với mỗi dữ liệu
trong thực thể T2 có một hoặc nhiều hoặc không có dữ liệu nào trong thực thể
T1. Ký hiệu liên kết này là n – n hay n : n.
Xét thực thể psDonHang :
Với mỗi phiếu suất đơn hàng có thể có một hoặc nhiều phiếu suất thanh toán
do một đơn hàng có thể được thanh toán nhiều lần. Mỗi lần thanh toán có thể
dùng các ngoại tệ khách nhau và mỗi lần thanh toán chỉ thanh toán cho một
đơn hàng duy nhất. Như vậy liên kết giữa thực thể psDonHang và thực thể
psThanhToan là liên kết một nhiều.
Mỗi một loại ngoại tệ có thể xuất hiện trong một hoặc nhiều đơn hàng tuy
nhiên trong mỗi đơn hàng chỉ có một loại ngoại tệ duy nhất được giao dịch tại
thời điểm thanh toán. Như vậy liên kết giữa thực thể tdNgoaiTe và thực thể
psDonHang là liên kết một nhiều.
Mỗi một hình thức thanh toán có thể xuất hiện trong một hoặc nhiều đơn hàng
khác nhau. Mỗi đơn hàng tại thời điểm thanh toán chỉ thanh toán theo một
hình thức duy nhất. Như vậy liên kết giữa thực thể tdHinhThucThanhToan và
thực thể psDonHang là liên kết một nhiều.
Mỗi một khách hàng có thể xuất hiện trong một hoặc nhiều đơn hàng khác
nhau. Mỗi đơn hàng tại thời điểm thanh toán chỉ thanh toán theo một khách
hàng duy nhất. Như vậy liên kết giữa thực thể tdKhachHang và thực thể
psDonHang là liên kết một nhiều.
Mỗi một loại chiết khấu có thể xuất hiện trong một hoặc nhiều đơn hàng khác
nhau. Mỗi đơn hàng tại thời điểm thanh toán chỉ thanh toán theo một loại chiết
khấu duy nhất. Như vậy liên kết giữa thực thể tdChietKhau và thực thể
psDonHang là liên kết một nhiều.
Mỗi một kho hàng có thể xuất hiện trong một hoặc nhiều đơn hàng khác nhau.
Mỗi đơn hàng tại thời điểm nhập hàng \ xuất hàng chỉ nhập \ xuất tại một kho
duy nhất. Như vậy liên kết giữa thực thể tdKhoHang và thực thể psDonHang
là liên kết một nhiều.
Mỗi một đơn hàng có thể gồm một hoặc nhiều món ăn, mỗi món ăn có thể
xuất hiện trong một hoặc nhiều đơn hàng. Như vậy liên kết giữa thực thể
psDonHang và tdMonAn là liên kết nhiều nhiều.
Mỗi một đơn hàng có thể gồm một hoặc nhiều bàn ăn, mỗi bàn ăn có thể xuất
hiện trong một hoặc nhiều đơn hàng. Vậy liên kết giữa thực thể psDonHang
và tdBanAn là liên kết nhiều nhiều.
Mỗi một đơn hàng có thể gồm một hoặc nhiều đơn vị tính món ăn, mỗi đơn vị
tính có thể xuất hiện trong một hoặc nhiều đơn hàng. Vậy liên kết giữa thực
thể psDonHang và tdDonViTinh là liên kết nhiều nhiều.
Một nhân viên làm một hoặc nhiều đơn hàng nhưng mỗi đơn hàng chỉ do duy
nhất một nhân viên làm do đó mối liên giữa thực thể tdNhanVien và
psDonHang là liên kết một nhiều.
Từ những phân tích trên ta có mô hình thực thể liên kết :
4.2) Mô hình quan hệ
4.3) Chi tiết các bảng dữ liệu
psThanhToan
Mục đích : Lưu trữ thông tin về các hoá đơn thanh toán cho các đơn hàng :
Mỗi một đơn hàng có thể được thanh toán thành nhiều lần. Mỗi lần thanh
toán tương ứng với một psThanhToan.
IDChiTiet : mã của phiếu xuất thanh toán.
ID : mã đơn hàng.
NgoaiTeID : mã của ngoại tệ được giao dịch.
Tỷ giá : tỷ giá của ngoại tệ đó so với tiền Việt Nam tại thời điểm thanh toán.
Tỷ giá tại thời điểm thanh toán có thể khác với tỷ giá trong tdNgoaiTe.
Số tiền : số tiền giao dịch.
Phân loại : dùng để phân biệt đây là phiếu thanh toán xuất hay nhập
tdChietKhau
Mục đích : Lưu trữ thông tin các loại Chiết khấu.
ChiếtKhấuID : mã chiết khấu.
Tên chiết khấu : lưu trữ tên của mỗi loại chiết khấu.
[convert] : chuyển tên chiết khấu sang một dạng chuẩn không viết hoa và
không có dấu khoảng trắng giữa các ký tự.
Ví dụ : Tên chiết khấu : Đại lý