Khái niệm mô hình dữ liệu
• Các khái niệm trong một mô hình dữ liệu được xây dựng
bởi cơ chế trừu tượng hóa và mô tả bằng ngôn ngữ hay
biểu diễn đồ họa.
• Một tập hợp các khái niệm được dùng để diễn tả tập các
đối tượng dữ liệu cũng như những mối quan hệ giữa
chúng trong hệ thống thông tin cần tin học hóa
• Là cầu nối giữa thế giới thực với mô hình cơ sở dữ liệu
bên trong máy tính.
Mô hình dữ liệu mức khái niệm
• Mục tiêu: hiểu rõ thành phần dữ liệu của hệ thống (các
thực thể/đối tượng dữ liệu và quan hệ của chúng)
Mô hình thực thể kết hợp
Sơ đồ lớp, đối tượng dữ liệu7
Mô hình thực thể kết hợp
(ERD – Entity Relationship Diagrams)
Các khái niệm cơ bản
Lớp thực thể
Thực thể
Thuộc tính
Mối kết hợp, bản số
Một số khái niệm mở rộng
Mối kết hợp đệ qui
Mối kết hợp nhiều ngôi
Chuyên biệt hóa, tổng quát hóa
RBTV
59 trang |
Chia sẻ: candy98 | Lượt xem: 782 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích thiết kế Hệ thống thông tin - Chương 3: Phân tích và Thiết kế thành phần dữ liệu - Tăng Mỹ Thảo, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1PHÂN TÍCH THIẾT KẾ
HỆ THỐNG THÔNG TIN
GV: ThS Tăng Mỹ Thảo
Email: thaotm@uit.edu.vn
2Chương 3
PHÂN TÍCH VÀ THIẾT KẾ
THÀNH PHẦN DỮ LIỆU
3Mục tiêu
4Mục tiêu
• Hiểu rõ, mô tả lại toàn bộ dữ liệu của hệ thống
• Chuẩn bị cho việc cài đặt thành phần dữ liệu trong hệ
thống
Đưa ra các mô hình dữ liệu
Mô hình dữ liệu quan niệm
Mô hình dữ liệu logic
5Khái niệm mô hình dữ liệu
• Các khái niệm trong một mô hình dữ liệu được xây dựng
bởi cơ chế trừu tượng hóa và mô tả bằng ngôn ngữ hay
biểu diễn đồ họa.
• Một tập hợp các khái niệm được dùng để diễn tả tập các
đối tượng dữ liệu cũng như những mối quan hệ giữa
chúng trong hệ thống thông tin cần tin học hóa
• Là cầu nối giữa thế giới thực với mô hình cơ sở dữ liệu
bên trong máy tính.
6Mô hình dữ liệu mức khái niệm
• Mục tiêu: hiểu rõ thành phần dữ liệu của hệ thống (các
thực thể/đối tượng dữ liệu và quan hệ của chúng)
Mô hình thực thể kết hợp
Sơ đồ lớp, đối tượng dữ liệu
7Mô hình thực thể kết hợp
(ERD – Entity Relationship Diagrams)
Các khái niệm cơ bản
Lớp thực thể
Thực thể
Thuộc tính
Mối kết hợp, bản số
Một số khái niệm mở rộng
Mối kết hợp đệ qui
Mối kết hợp nhiều ngôi
Chuyên biệt hóa, tổng quát hóa
RBTV
8Thực thể
• Là thể hiện của mọi đối tượng mà nhận diện được từ tổ
chức. (giống như bộ trong quan hệ)
• Thực thể hay còn gọi là đối tượng
• Ví dụ: nhân viên A, mặt hàng B, đơn đặt hàng C,
9Loại thực thể, thuộc tính
Lớp thực thể
Tập hợp các thực thể có
chung đặc điểm, hành vi
Có thể xem giống như lớp đối
tượng
Thuộc tính: Mỗi thực thể bao
gồm một số thuộc tính gắn với
nó. Mỗi thuộc tính thể hiện
tính chất, đặc trưng của thực
thể.
KHÁCH HÀNG
MAKH
TENKH
DIACHI
DIENTHOAI
HONNHAN
KHÁCH HÀNG
MAKH
TENKH
DIACHI
DIENTHOAI
HONNHAN
10
Mối kết hợp
• Thể hiện sự quan hệ ngữ nghĩa giữa các loại thực thể
với nhau
• Một hình thoi có tên, tên của mối kết hợp thể hiện ngữ
nghĩa
• Mối kết hợp là “cái có sau”, không thể đứng độc lập nếu
không có các loại thực thể.
• Ta có thể đặt tên cho mối quan hệ hoặc một hướng của
mối quan hệ.
KHÁCH HÀNG
MAKH
TENKH
DIACHI
DIENTHOAI
HONNHAN
ĐƠN ĐẶT HÀNG
MAĐĐH
NGAYLAP
có
1-n 1-1
11
Mối kết hợp, bản số
• Bản số: thể hiện số lượng các thực thể thuộc một lớp
thực thể ở nhánh bên kia có liên hệ với một thực thể ở
nhánh bên này của mối kết hợp. [0-1], [0-n], [1-1], [1-
n]
• Thuộc tính (riêng): Trong một số trường hợp nào đó
mối kết hợp có thể có những thuộc tính riêng của nó.
• Khóa: khóa của mối kết hợp thường là tổ hợp khóa của
các lớp thực thể tham gia vào mối kết hợp.
ĐƠN ĐẶT HÀNG
MADDH
NGAYDAT
NGAYGIAODUKIEN
HÀNG HÓA
MAHANG
TENHANG
Đặt
hàng
1-n 0-n
SOLUONG
DONGIA
THANHTIEN
12
Lớp thực thể phụ thuộc (dependency)
NV
Con NV
- STT_con
- Tên con NV
-
MS_NV
MS_NV
1-1
0-n
• Nhấn mạnh rằng sự tồn tại của lớp đối tượng này phụ thuộc
hoàn toàn vào lớp đối tượng kia
13
Lớp thực thể thành phần (composition)
• Thể hiện mối kết hợp: một thực thể thuộc lớp này là một
thành phần của một thực thể thuộc lớp kia.
• Quan hệ thành phần bao gồm hàm ý phụ thuộc.
• Giống như mối kết hợp bình thường, ta có thể đặt tên cho
mối kết hợp hoặc một hướng của mối kết hợp.
Ví dụ:
Lớp thực thể “Xe máy”
Lớp thực thể “Bánh xe”, “Động cơ”, “Đèn trước”, “Đèn
sau”,
14
Mô hình thực thể kết hợp mở rộng
• Mối kết hợp đệ qui
NV
Quản lý
1-n
1-1
15
Mô hình thực thể kết hợp mở rộng
• Mối kết hợp nhiều ngôi
SV ĐKH NH_HK
MÔN
MA_SV
MA_MON
NH
HK
(0,n) (0,n)
(0,n)
ĐIỂM
16
Mô hình thực thể kết hợp mở rộng
• Nhiều mối kết hợp trên cùng những thực thể
C.BAY
T.PHỐ
ĐI
ĐẾN
1-1 1-n
1-1
1-n
17
Mô hình thực thể kết hợp mở rộng
• Chuyên biệt/tổng quát hóa
NHÂN VIÊNThực thể tổng quát
MS_NV
TEN_NV
NTNS
thuộc tính
chung
NV_VAN PHONG NV_SAN XUAT
quan hệ thừa kế
MS_NV
TEN_NV
NTNS
Thuộc tính đặc thù của
nhân viên sản xuất
MS_NV
TEN_NV
NTNS
Thuộc tính đặc thù của nhân
viên văn phòng
Thực thể
chuyên biệt
18
Mô hình thực thể kết hợp mở rộng
• Mối kết hợp định nghĩa trên mối kết hợp (cấp 2)
SP
CTĐĐH
ĐĐH
MA_SP MA_ĐĐH
0-n 1-n
HĐ
(MA_ĐĐH, MA_SP)
MA_HĐ
(MA_HĐ, MA_ĐĐH, MA_SP)
19
Mô tả các RBTV
• RBTV: là những quy tắc kiểm tra nhằm đảm bảo tính
đúng đắn của dữ liệu khi thực hiện các thao tác thêm,
xóa, sửa.
• RBTV hỗ trợ thêm về khả năng diễn đạt ngữ nghĩa trên
mô hình E-R.
• RBTV thường có thể phát biểu bằng ngôn ngữ tự nhiên (mức
quan niệm), ngôn ngữ hình thức (mức logic), hay thuật giải
(mức vật lý).
• Xác định các RBTV trên dữ liệu của HTTT hoàn toàn có thể
thực hiện được dựa trên việc phân loại các ràng buộc toàn vẹn.
20
Mô tả các RBTV
• Ví dụ: bài toán bán hàng
SP
CTĐĐH
ĐĐH
MA_SP MA_ĐĐH
0-n 1-n
HĐ
(MA_ĐĐH, MA_SP)
MA_HĐ
(MA_HĐ, MA_ĐĐH, MA_SP)
21
RBTV – Một thực thể
• Miền giá trị thuộc tính
Ví dụ:
CTDDH.soluongdh > 0 (số lượng các mặt hàng có trong
chi tiết đơn đặt hàng phải lớn hơn 0)
CTDDH.dongia > 0 (đơn giá của các mặt hàng có trong
chi tiết đơn đặt hàng phải lớn hơn 0).
22
RBTV – Một thực thể
• Ràng buộc liên thuộc tính: Một trong những dạng
thức đặc biệt của loại ràng buộc toàn vẹn này là ràng
buộc về khóa (phụ thuộc hàm suy từ khóa).
• Ví dụ:
Ma_ddh ngaydh
(Biết mã số đơn đặt hàng sẽ biết ngày đặt hàng)
Ma_ddh ngaygiaodk
(Biết mã số đơn đặt hàng sẽ biết ngày giao hàng dự kiến)
DDH.ngaydathang < DDH.ngaygiaodukien
CTDDH.thanhtien = CTDDH.soluongdh * CTDDH.dongia
23
RBTV – Một thực thể
• Ràng buộc liên bộ: giữa nhiều thực thể trong cùng
một lớp thực thể hay giữa nhiều bộ trong cùng một quan
hệ.
• Ví dụ: Trong thực thể tồn kho hàng hóa
TONKHO(MAHANG, THANG, NAM, TONDAUKY,
TONCUOIKY) thì số lượng tồn đầu phải bằng số lượng tồn
cuối của tháng trước đó.
24
RBTV – Nhiều thực thể
• Ràng buộc liên thuộc tính, liên thực thể:
Ví dụ: Ngày đặt hàng của một đơn đặt hàng phải nhỏ hơn
(trước) ngày giao hàng trên phiếu giao hàng cho đơn đặt
hàng tương ứng
• Ràng buộc liên bộ, liên thực thể:
Ví dụ: Số lượng tồn của một mặt hàng bằng tổng các chi
tiết nhập hàng trừ tổng chi tiết xuất hàng liên quan đền
mặt hàng đó.
25
Xây dựng mô hình quan niệm
• Xác định các loại thực thể.
Con người, tổ chức
(vd: sinh viên, nhân viên, phòng ban, khoa, )
Vật thể, phi vật thể
(vd: Hàng hóa, xe, máy bay, tài khoản, hóa đơn, )
• Xác định các mối kết hợp: dựa trên đặc tả yêu cầu thực
tế cũng như business logic của ứng dụng
• Kiểm tra, hoàn chỉnh mô hình quan niệm dữ liệu.
• Mô tả các ràng buộc toàn vẹn trên mô hình E-R.
26
Các nguyên tắc kiểm tra
mô hình quan niệm dữ liệu
• Tên thuộc tính: xuất hiện chỉ 1 lần trong toàn mô hình.
• Một thuộc tính có một giá trị duy nhất trong một thể
hiện của loại thực thể hay mối kết hợp.
• Mỗi thể hiện của một mối kết hợp được hình thành từ
một thể hiện của các TT/ MKH cấp trên mà nó được định
nghĩa.
• Khóa nhận diện một thể hiện MKH chính là tổ hợp các
khóa của TT/MKH.
• Nếu có 1 thuộc tính phụ thuộc vào 2 thuộc tính khác của
cùng một loại thực thể thì có nghĩa là có một lớp thực
thể ẩn trong lớp thực thể ban đầu.
27
Các nguyên tắc kiểm tra
mô hình quan niệm dữ liệu
SP
CTĐĐH
ĐĐH
MA_SP MA_ĐĐH
0-n 1-n
HĐ
(MA_ĐĐH, MA_SP)
MA_HĐ
(MA_HĐ, MA_ĐĐH, MA_SP)
28
Các nguyên tắc kiểm tra
mô hình quan niệm dữ liệu
Số xe -> màu, công suất,
Loại xe -> màu, công suất,
29
Bài tập ERD
Bài 1:
Quản lý thông tin khách uống bia, loại bia và quán bia
nhằm cho biết các thông tin sau:
a/ Loại bia ưa thích nhất của mỗi khách.
b/ Các khách uống bia của các quán
c/ Loại bia ở mỗi quán
Xây dựng ERD.
30
Bài tập ERD
Bài 2:
Một công ty bảo hiểm cần xây dựng CSDL để quản lý
công
việc hoạt động của mình. CSDL phải thỏa mãn các yêu
cầu:
a/ Mỗi nhân viên cần có các thông tin Tên, Lương, Địa chỉ
b/ Mỗi người quản lý sẽ quản lý ít nhất 1 nhân viên
c/ Mỗi nhân viên sẽ quản lý nhiều khách hàng.
d/ Mỗi khách hàng cần biết các thông tin Tên, Địa chỉ,
Thời gian bảo hiểm, loại bảo hiểm. (Mỗi loại bảo hiểm
có một thời gian nhất định)
31
Bài tập ERD
Bài 3: Một công ty cần quản lý thông tin về các đề án như
sau.
Mỗi đề án sẽ do một kỹ sư phụ trách (phụ trách chính)
Một kỹ sư có thể tham gia thực hiện và phụ trách nhiều đề
án.
Mỗi buổi họp được xác định bởi thời gian, địa điểm phòng
thông qua mã phòng và những người tham gia buổi họp
liên quan đến 1 đề án cụ thể.
Xây dựng ERD
32
Mô hình dữ liệu mức logic
Mục tiêu: chuẩn bị cho việc cài đặt CSDL của hệ thống
Mô hình dữ liệu quan hệ (Hệ quản trị CSDL quan hệ)
Mô hình dữ liệu HĐT (Hệ quản trị CSDL HĐT)
33
Mô hình dữ liệu mức logic
• Xây dựng mô hình quan hệ dữ liệu (tổ chức dữ liệu) từ
mô hình thực thể kết hợp (quan niệm dữ liệu).
• Tối ưu hóa mô hình quan hệ dữ liệu.
• Mô tả các ràng buộc toàn vẹn ở mức thiết kế tổ chức.
(thường dùng ngôn ngữ toán học).
• Thiết kế các khung nhìn dữ liệu (views), cũng như các
chỉ mục (index) được sử dụng trong xử lý sau này.
34
Mô hình quan hệ
• Mô hình dữ liệu quan hệ (Relational Data Model):
do Edgar Frank "Ted" Codd đề xuất năm 1970. Nền
tảng cơ bản của nó là khái niệm lý thuyết tập hợp trên
các quan hệ
35
Chuyển ERD thành RDM
• b1. Chuyển các khái niệm chuyên biệt hóa, tổng quát
hoá khái niệm quan hệ
• b2. Chuyển thực thể quan hệ.
• b3. Chuyển các mối kết hợp bậc 1 quan hệ.
• b4. Chuyển các mối kết hợp bậc i quan hệ (i = bậc
trước +1)
• Lặp lại bước 4 cho đến khi hết các mối kết hợp.
• b5. Nhập tất cả các quan hệ cùng khóa lại với nhau.
• b6. Chuẩn hóa các quan hệ.
• b7. Xem xét các RBTV.
36
Chuyển ERD thành RDM
Chuyển thành Tổng quát hóa
NV
- ...
-
- LOẠI_NV
NV(MÃ_NV, ..., LOẠI_NV)
NV MA_NV
HOTEN
NV_CANBONV_TK
• Lưu ý ở B1: Chuyên biệt, tổng quát hóa Quan hệ
Tổng quát hóa
37
Chuyển ERD thành RDM
Bằng cấp thư ký
NV MA_NV
HOTEN
NV_CANBONV_TK
Chuyển thành Tổng quát hóa
NV •
• LOẠI_NV
• Bằng cấp thứ ký
• Bậc cán bộ
NV(MÃ_NV, ..., LOẠI_NV, Bằng cấp thư ký, Bậc cán bộ)
Bậc cán bộ
Ở mức chuyên biệt có thuộc tính riêng (số lượng thuộc tính riêng < 3)
38
Chuyển ERD thành RDM
Lưu ý: Trong trường hợp này khi chuyển cần cộng thêm
một ràng buộc toàn vẹn (để đảm bảo về mặt ngữ nghĩa
với mô hình ban đầu).
nv NV
Nếu nv.LOAI_NV = “thư ký” thì
Nv. Bậc cán bộ = “giá trị trống”.
Nguợc lại
Nv. bằng cấp thư ký = “giá trị trống”.
Cuối nếu
Cuối
39
Chuyển ERD thành RDM
Trường hợp có mối kết
hợp ở mức chuyên biệt
hóa
Số thuộc tính riêng < 3,
chuyển thành tổng quát
hóa & cộng thêm RBTV
RBTV: nhân viên là cán
bộ thì có tham gia vào
các đề án, ngược lại nếu
nhân viên thư ký thì
không.
NV MA_NV
HOTEN
NV_CANBONV_TK
ĐỀ ÁN
40
Chuyển ERD thành RDM
Chuyên biệt hóa: trong trường hợp số thuộc tính riêng >= 3
Chuyển thành Chuyên biệt hóa
NV MA_NV
HOTEN
NV_CANBONV_TK
-...
- Số thuộc
tính riêng > 3
-...
-Số thuộc tính
riêng > 3
P.BAN
thuộc
NV_TK NV_CANBO - MA_NVCB
- HOTEN_CB
- ...
- Thuộc tính riêng
- MA_NVTK
- HOTEN_TK.
- ...
- Thuộc tính riêng
P.BAN
41
Chuyển ERD thành RDM
• Một số điều cần lưu ý ở bước 3 + bước 4.
Ví dụ: Một cửa hàng mua bán đồ thời trang cần quản lý
giá bán của các bộ quần áo.
Mỗi áo vét và quần chỉ được thuộc một “bộ 2” duy nhất
Mỗi “bộ 2” có thể kết hợp với 1 áo gilê để tạo nên một
“bộ 3”
ÁO VÉT
QUẦN
ÁO GILÊ
MA_GILE
MAU_GILE
MA_AV
MAU_AV
KIEU_AV
MA_Q
MAU_Q
KIEU_Q
Bộ 2
Bộ 3
(0, 1)
(0, 1)
- Giá Bộ 2
- Giá Bộ 3
(0, n)
42
Chuyển ERD thành RDM
Chuyển sang mô hình quan hệ
ÁO VÉT (MA_AV, MAU_AV, KIEU_AV, )
QUẦN (MA_Q, MAU_Q, KIEU_Q, )
ÁO GILÊ (MA_GILE, MAU_GILE)
Bộ 2 (MA_AV, MA_Q, Giá Bộ 2)
Bộ 3 (MA_AV, MA_Q, MA_GILE, Giá Bộ 3)
– Trong quan hệ “Bộ 2” có 2 phụ thuộc hàm sau:
MA_AV MA_Q
MA_Q MA_AV
– Có 2 phụ thuộc hàm này là do cách đánh chỉ số là (0,
1) và (0, 1). Nếu chỉ số là (0, n) và (0, n) thì sẽ không
có 2 phụ thuộc hàm trên.
43
Chuyển ERD thành RDM
Lưu ý: Bản số có chỉ số “tối đa” là 1 -> chỉ phụ thuộc
hàm từ đó đi ra.
44
Chuyển ERD thành RDM
Ví dụ 1: Một cửa hàng mua bán đồ thời trang cần quản
lý giá bán của các bộ quần áo.
Mỗi áo vét có thể kết hợp với 1 quần tạo nên một “bộ 2”
duy nhất.
Mỗi “bộ 2” có thể kết hợp với 1 áo gilê để tạo nên một “bộ
3”
45
Chuẩn hóa mô hình dữ liệu quan hệ
Thêm bớt các quan hệ
Thêm bớt các thuộc tính
46
Chuẩn hóa mô hình dữ liệu quan hệ
• Thêm bớt các bảng
Các bảng dữ liệu chỉ có 1 thuộc tính thường sẽ bị loại bỏ.
Chúng ta cần cân nhắc xem có nên hay không khi thêm/bớt các
bảng trung gian sử dụng để lưu trữ những kết quả xử lý trung
gian hay để tổng hợp dữ liệu.
(Ví dụ quan hệ tồn kho trong bài toán bán hàng)
Hiệu chỉnh các RBTV sau khi thêm/hủy bảng thuộc tính
47
Chuẩn hóa mô hình dữ liệu quan hệ
• Thêm/bớt các thuộc tính
Ví dụ: trong ứng dụng “quản lý mua bán hàng”. Trong các bảng
CTĐĐH (Chi tiết đơn đặt hàng), CTHĐBL (chi tiết hóa đơn bán
lẻ), CTPGH(chi tiết phiếu giao hàng), CTPNH(chi tiet phiếu
nhập hàng), chúng ta có thể loại bỏ thuộc tính Dongia (đơn
giá). Như vậy mỗi khi cần thông tin đơn giá thì chúng ta sẽ gọi
thực hiện một thủ tục tính đơn giá.
Ví dụ: Khi chúng ta loại bỏ thuộc tính Dongia trong bảng
CTĐĐH thì đồng thời chúng ta cũng phải loại bỏ luôn ràng buộc
toàn vẹn sau:
CTĐĐH.thanhtien = CTĐĐH.Soluong * CTĐĐH.Dongia
48
Mô tả các RBTV ở mức thiết kế logic
• Những điều kiện ứng dụng cần thỏa mãn tại mọi thời
điểm
• Dựa trên việc phân loại RBTV để kiểm tra các RBTV
RBTV trên 1 quan hệ
RBTV miền giá trị
RBTV liên thuộc tính
RBTV liên bộ
RBTV trên nhiều quan hệ
RBTV liên quan hệ, liện thuộc tính
RBTV liên quan hệ, liên bộ
RBTV tổng hợp
49
Mô tả các RBTV ở mức thiết kế logic
• Mô tả 1 RBTV
Diễn giải
Biểu diễn bằng ngôn ngữ hình thức
Bối cảnh, bảng tầm ảnh hưởng
50
Mô tả RBTV
• Nội dung
Ngôn ngữ tự nhiên: dễ hiểu
Ngôn ngữ hình thức: chặt chẽ
Ví dụ:
Giới tính của nhân viên là nam hoặc nữ
n NHANVIEN: n.GIOITINH in {‘Nam’, ‘Nữ’}
51
Mô tả RBTV
• Bối cảnh
• Một quan hệ
• Nhiều quan hệ
• Bảng tầm ảnh hưởng
+ : có thể vi phạm RBTV
- : không thể vi phạm RBTV
+ (A) : có thể vi phạm RBTV khi thao tác trên thuộc tính
A
- (*) : không thể vi phạm RBTV do thao tác không thực
hiện được
Thêm Xóa Sửa
Quan hệ R1 + + - (*)
Quan hệ Rn - - + (T)
52
Mô tả RBTV
• Ví dụ:
n1, n2 NHANVIEN: n1 ≠ n2
Hay n1[MANV] ≠ n2[MANV]
Thêm Xóa Sửa
PHONGBAN + - - (*)
Không thể sửa
thuộc tính khóa
53
Ví dụ về các RBTV
Ví dụ 1: Cho các quan hệ của bài toán bán hàng như
sau:
• DMKH (Ma_kh, Hoten, Diachi, Dienthoai)
• DMHH (Ma_hh, Tenhh, dvt)
• DDH (Ma_ddh, Ngaydh, Ngaygiaodk, Ma_kh)
• PGH(Ma_pgh, Ngaypgh, Ma_ddh)
• HDBL (Ma_hdbl, Ngayhdbl, Hotenkh, Diachikh)
• PNH (Ma_pnh, Ngaypnh, Ma_kh)
• PCT (Ma_pct, Ngaypct, Thanhtien, Diengiai, Ma_kh)
• PTT (Ma_ptt, Ngayptt, Thanhtien, Diengiai, Ma_kh)
• CTPNH (Ma_pnh, Ma_hh, Soluong, Thanhtien)
• CTDDH (Ma_ddh, Ma_hh, Soluong, Thanhtien)
• CTPGH (Ma_pgh, Ma_hh, Soluong, Thanhtien)
• CTHDBL (Ma_hdbl, Ma_hh, Soluong, Thanhtien)
• CONGNO (Ma_kh, thangnamcn, Sonodk, Tienno,
Tienthu)
• TONKHO (Ma_hh, thangnamtk, Tondk, Slnhap, Slxuat)
54
Ví dụ về các RBTV
RBTV1: Giá trị của các thuộc tính số lượng(soluong),
thành tiền (thanhtien) trong quan hệ chi tiết đơn đặt
hàng (ctddh) phải lớn hơn 0.
Mô tả:
ctddh CTĐĐH
(ctddh.soluong > 0) (ctddd.thanhtien > 0)
Cuối
Bối cảnh, bảng tầm ảnh hưởng:
Thêm Xóa Sửa
CTĐĐH +(soluong, thanhtien) - +(soluong, thanhtien)
55
Ví dụ về các RBTV
RBTV 2: Trong quan hệ tồn kho (TONKHO) thì giá trị của thuộc
tính tồn đầu kỳ (Tondk) của tháng này phải bằng số lượng tồn
đầu kỳ (Tondk) của tháng trước đó cộng cho số lượng nhập trừ
cho số lượng xuất của tháng trước đó đối với mặt hàng liên
quan đang xét.
Mô tả: tk (TONKHO)
! tk’ (TONKHO):
(tk.Ma_hh= tk’.Ma_kh)
(tk.Tondk = tk’.Tondk + tk’.Slnhap – tk’.Slxuat)
Cuối
Bối cảnh, bảng tầm ảnh hưởng:
Thêm Xóa Sửa
CTĐĐH
+ (Tondk)
- +
(Tondk, Slnhap, Slxuat)
56
Ví dụ về các RBTV
RBTV3: Tổng số lượng hàng nhập (slnhap) trong quan hệ tồn kho
hàng hóa (TONKHO) của một mặt hàng x trong một tháng y nào đó
bằng tổng số lượng các chi tiết phiếu nhập hàng có liên quan đến
mặt hàng x vào tháng y trong quan hệ chi tiết phiếu nhập hàng
(ctpnh).
57
Ví dụ về các RBTV
Thêm Xóa Sửa
TONKHO + - + (slnhap)
CTPNH + + +(soluong)
PNH - - -
Bối cảnh, bảng tầm ảnh hưởng:
58
Xây dựng mô hình dữ liệu mức vật lý
Tạo cơ sở dữ liệu (create database).
Tạo các bảng dữ liệu (create tables).
Tạo các ràng buộc dữ liệu.
Thiết kế, cài đặt các views.
Cài đặt các thủ tục xử lý trong DBMS chẳng hạn như Store
procedure hay Triggers để kiểm tra và tự động xử lý khi có
những thao tác dữ liệu vi phạm các ràng buộc toàn vẹn đề ra.
Lưu ý: có thể dùng các công cụ chuyển/import từ mô hình
quan niệm, logic vào một hệ DBMS.
59
Bài tập
• Chuyển các mô hình ERD đã xây dựng (bài tập 1, 2, 3 về
ERD) sang mô hình quan hệ.
• Suy nghĩ về bài toán bán hàng trong trường hợp một
đơn đặt hàng có thể trả tiền nhiều lần bằng các hóa đơn
khác nhau.
• Thực hành: chọn một hệ DBMS để cài đặt mô hình quan
hệ cũng như hiện thực các RBTV.