4.4.1. Xây dựng mô hình thực thể liên kết mở rộng
Để xây dựng mô hình thực thể liên kết phải xác định được ba yếu tố: kiểu thực thể, các thuộc tính của kiểu thực thể và các liên kết.
a. Phát hiện kiểu thực thể
Từ việc xem xét cụ thể các thực thể của hệ thống mà ta suy ra có nên thiết lập kiểu thực thể tương ứng hay không. Một thực thể sẽ được mở rộng thành kiểu thực thể nếu nó thỏa mãn:
o Thông tin về thực thể là cần thiết cho hệ thống.
o Nó thuộc một tập các thực thể cùng loại mà hệ thống cần quản lý.
Các kiểu thực thể có thể xuất hiện ở các tác nhân ngoài, các luồng thông tin nội bộ, các kho dữ liệu. Tìm các kiểu thực thể từ ba nguồn:
o Thông tin tài nguyên: con người, kho bãi, tài sản,….
o Thông tin giao dịch: là các nguồn thông tin đến từ môi trường mà kích hoạt một chuỗi hoạt động chuỗi hoạt động của hệ thống.
o Thông tin tổng hợp: thường dưới dạng thống kê, liên quan đến vạch kế hoạch kiểm soát
Ví dụ: Phát hiện kiểu thực thể của Hệ thống cung ứng vật tư
Các tài nguyên: Nhà cung cấp, Phân xưởng, Mặt hàng, Tồn kho,
Các giao dịch: Dự trù, Đơn hàng, Giao hàng, Hóa đơn, Phát hàng
Các thông tin tổng hợp: Báo cáo nhận/phát hàng.
b. Phát hiện các thuộc tính
Trong phần gạch chân các danh từ hoặc động từ mô tả trong bảng khảo sát, những cái nào không được xét đến mà không lập thành kiểu thực thể sẽ lập thành kiểu thuộc tính trong một kiểu thực thể mà nó mô tả
Ví dụ. Bài toán vật tư sau khi thực hiện bước này ta có các kiểu thực thể như sau
o Nhà cung cấp(Tên NCC, Địa chỉ NCC, Điều kiện bán hàng, Mã hàng, Đơn giá chuẩn)
o Phân xưởng(Tên phân xưởng, Địa chỉ, Số điện thoại)
o Mặt hàng(Mã hàng, Tên hàng, Đơn vị tính, Mô tả)
o Dự trù (SH dự trù, Tên phân xưởng, Địa chỉ, Ngày dự trù, Mã hàng, Lượng đặt, Lượng yêu cầu)
o Đơn hàng (SH đơn hàng, tên NCC, Ngày đơn hàng, Mã hàng, Lượng đặt, Đơn giá lượng nhận, Lượng trả tiền )
o Giao hàng(SH giao hàng, Tên NCC, Ngày giao hàng, mã hàng, Lượng giao, SH đơn hàng)
o Hóa đơn (SH hóa đơn, Tên NCC, Ngày hóa đơn, Mã hàng, Số lượng, Đơn giá, Thành tiền, SH giao hàng)
o Phát hàng (SH phát hàng, Tên phân xưởng, Ngày phát hàng, Mã hàng, Lượng phát)
o Tồn kho(Mã hàng, Tên hàng, Đơn vị tính, Số lượng tồn)
o Xuất nhập kho (SH xuất nhập, Ngày xuất nhập, Mã hàng, Lượng xuất nhập, Xuất nhập)
c. Phát hiện các kiểu liên kết
Chỉ xác định những liên kết giữa các kiểu thực thể đã phát hiện ở trên và ghi nhận những liên kết có ích cho quản lý.
Trong bài toán Quản lý vật tư ta phát hiện các liên kết giữa chúng bằng cách duyệt lại quá trình giao dịch (Từ khi phân xưởng đưa dự trù đến khi phân xưởng nhận được hàng), gạch chân các động từ diễn tả mối liên hệ giữa các dữ liệu trong hệ thống, qua đó ta sẽ thấy được các mối liên hệ giữa các kiểu thực thể.
Hình 4 – 2. Mô hình ER mở rộng
4.4.2. Chuyển từ ER mở rộng về ER kinh điển
Các bước thực hiện
Các hệ QT CSDL quan hệ ngày nay đòi hỏi giá trị đơn cho các kiểu thuộc tính và cấm khái niệm thừa kế giữa các quan hệ. Do đó để thành lập một CSDL quan hệ bắt đầu từ một lược đồ khái niệm theo mô hình ER mở rộng, trước hết cần phải chuyển lược
đồ này sang ER kinh điển. Sau đây là các quy tắc để biến đổi mô hình ER mở rộng sang mô hình ER kinh điển
Quy tắc 1: Xử lý các thuộc tính đa trị của một kiểu thực thể. Thay một kiểu thuộc tính đa trị T của một kiểu thực thể A bởi một kiểu thực thể mới E – T và kết nối A với E – T bởi một kiểu liên kết. Đưa vào kiểu thực thể mới E – T một kiểu thuộc tính đơn trị t, tương ứng với giá trị thành phần của T. Nghiên cứu bản số mới cho kiểu liên kết mới (giữa A và E - T)
Ví dụ. Kiểu thực thể nhân viên có kiểu thuộc tính đa trị là : các ngoại ngữ
Chuyển sang ER kinh điển, ta có
Một trường hợp đặc biệt quan trọng thường gặp trong mô hình hóa là trường hợp các chứng từ có bảng. Ví dụ như Hóa đơn sau
Ta nhận thấy trong Hóa đơn trên có hai danh mục
o Các danh mục ở ngoài bảng, chỉ nhận một giá trị duy nhất.
o Các danh mục ở trong bảng, có thể nhận nhiều giá trị
HÓA ĐƠN Số ______ Họ tên khách hàng:__________________________ Địa chỉ:______________________________
Hình thức thanh toán:_________________________
Mã hàng Tên hàng Đơn vị tính Số lượng Đơn giá Thành tiền Cộng tiền:___________________ Ngày: ______________________
Khi tiến hành mô hình hóa, một cách tự nhiên ta diễn tả Hóa đơn là một kiểu thực thể với tất cả danh mục có trong Hóa đơn được lấy làm kiểu thuộc tính. Như vậy ta có một mô hình ER mở rộng. Sau đó ta biến đổi ER mở rộng về ER kinh điển bằng cách loại bỏ các thuộc tính đa trị. Ở đây chỉ cần tạo một kiểu thực thể phụ thuộc duy nhất, mà mỗi thực thể trong đó tương ứng với một dòng các giá trị viết trong bảng
trở thành
Quy tắc 2: Xử lý các kiểu thuộc tính đa trị của một kiểu liên kết: Thực thể hóa kiểu liên kết đó rồi áp dụng qui tắc 1 cho kiểu thực thể mới lập
Hai kiểu thuộc tính Các môn học, các năm học của kiểu liên kết Dạy là kiểu thuộc tính đa trị. Ta có thể biến đổi như sau
Qui tắc 3: Xử lý các kiểu thực thể con. Giả sử kiểu thực thể A có kiểu thực thể con là B. Có hai cách xử lý tùy chọn như sau.
Qui tắc 3.1: Loại bỏ kiểu thực thể B và bổ sung mọi kiểu thuộc tính của B vào trong A, đồng thời một kiểu thuộc tính cho phép phân loại các thực thể của A (thuộc tính B hay không thuộc tính B). Chuyển mọi kiểu liên kết với B sang A, và nghiên cứu cụ thể các bản số tối thiểu.
Qui tắc 3.2. Thay mối liên quan thừa kế giữa A và B bởi một kiểu liên kết giữa A và B mà các bản số tối đa đều là 1.
Nếu áp dụng qui tắc 3.2.
Chú ý:
- Trong mô hình ER trên khi Loại người = Viên chức, các kiểu thuộc tính Bút hiệu, Số tác phẩm không dùng tới, nghĩa là không có giá trị. Tuy nhiên để cho các kiểu thuộc tính đối với một kiểu thực thể luôn có giá trị, trong trường hợp trên, ta gán cho kiểu thuộc tính một giá trị quy ước: NULL (được hiểu là không tồn tại hoặc chưa được biết).
- Nếu kiểu thuộc tính Loại người là thuộc tính đa trị (nghĩa là có người vừa là nhà văn vừa là viên chức), ta lại phải áp dụng qui tắc 1 để xử lý tiếp, lúc đó mô hình ER trở thành
Hình 4 – 3. Mô hình ER kinh điển
4.4.3. Chuyển từ ER kinh điển về ER hạn chế
Các bước thực hiện.
Tuy bị hạn chế rất ngặt nghèo về hình thức biểu diễn, song khả năng diễn tả của mô hình hạn chế vẫn không hề giảm sút. Bằng chứng là ta có thể biến đổi mọi mô hình ER kinh điển về mô hình ER hạn chế nhờ một số qui tắc sau.
Qui tắc 4: Xử lý liên kết 1 – 1. Có hai cách thực hiện
Cách 1. Xem 1 – 1 là trường hợp riêng của 1 – n và vẽ lại nó bằng 1 đường nối thẳng. Cách làm này vi phạm hạn chế của mô hình, hoặc dễ gây hiểu lầm nên ít dùng.
Ví dụ
Cách 2. Gộp hai kiểu thực thể có quan hệ 1 – 1 thành một kiểu thực thể duy nhất, bằng cách hòa trộn hai danh sách các kiểu thuộc tính với nhau.
Ví dụ
Qui tắc 5: Xử lý các kiểu liên kết 2 ngôi n – n và các kiểu liên kết nhiều ngôi : thực thể hóa mối liên kết đó bằng một kiểu thực thể mới có chứa các kiểu thuộc tính là khóa của các kiểu thực thể tham gia (tập hợp các khóa này tạo thành các khóa bội của kiểu thực thể mới). Nối kiểu thực thể này với các kiểu thực thể tham gia liên kết bằng các liên kết 1 – n.
Ví dụ
Các kiểu thuộc tính khóa và kiểu thuộc tính kết nối
Đối với mô hình ER hạn chế, ta cần phải chỉ rõ khóa cho mỗi kiểu thực thể. Khóa có thể là khóa đơn (chỉ gồm một kiểu thuộc tính), hoặc là khóa bội (gồm nhiều kiểu thuộc tính).
Ta gọi một kiểu thuộc tính kết nối (hay khóa ngoài) là một kiểu thuộc tính vốn là khóa của một kiểu thực thể, nhưng lại xuất hiện trong một kiểu thực thể khác với nhiệm vụ mô tả mối quan hệ giữa hai kiểu thực thể.
Dễ dàng rút ra quy luật sau: Nếu một kiểu thực thể B có chứa một kiểu thuộc tính kết nối, là khóa của một kiểu thực thể A, thì giữa A và B có một kiểu liên kết 1 – n (đầu nhiều về phía B)
Nếu trong một mô hình ER hạn chế, ta sử dụng một cách có hệ thống các thuộc tính kết nối để phản ánh các kiểu liên kết 1 – n giữa các kiểu thực thể, thì các đường nối 1 – n có thể xóa bỏ. Lúc đó mô hình chỉ còn là một tập hợp các kiểu thực thể. Vì vậy mô hình ER hạn chế còn được gọi là mô hình thực thể. Tuy nhiên ta vẫn giữ lại các đường nối 1 – n trong mô hình nhằm làm cho mô hình dễ đọc, dễ hiểu hơn.
Với bài toán vật tư
o Biểu diễn lại các quan hệ 1 – n
o Tách quan hệ n – n thành 1 – n Ta có thể vẽ mô hình ER hạn chế như sau.
Kết luận
Mô hình thực thể liên kết là một trong những công cụ quan trọng trong việc phân tích hệ thống có cấu trúc. Nó đưa ra được một mô hình tương đối tốt trong đó lượng ký hiệu, thông tin là ít nhất và mô tả thế giới thực đầy đủ nhất.
Mô hình thực thể liên kết chú ý đến các mối liên kết giữa các thực thể và cho người phân tích nhìn thấy được sự ràng buộc của các mối liên kết. Tuy nhiên mô hình này chưa đưa ra được được hết các thuộc tính của từng thực thể nên không phản ánh hết cái cần mô tả về hệ thống, cần phải có mô hình khác để bổ sung thông tin hay thay thế
BÀI 3. MÔ HÌNH QUAN HỆ
Mô hình CSDL quan hệ hay ngắn gọn là mô hình quan hệ được E.F.Codd phát triển vào đầu những năm 1970, với các ưu điểm sau:
Đơn giản: các dữ liệu được biểu diễn dưới dạng duy nhất là quan hệ, các bảng giá trị khá tự nhiên, dễ hiểu đối với người dùng không chuyên tin học.
Chặt chẽ: các khái niệm được hình thức hóa cao, cho phép áp dụng các công cụ toán học, các thuật toán.
Trừu tượng hóa cao: mô hình chỉ dừng ở mức quan niệm, nghĩa là độc lập với mức vật lý, với sự cài đặt, với các thiết bị. Nhờ đó làm tính độc lập giữa dữ liệu và chương trình cao.
Cung cấp các ngôn ngữ truy cập dữ liệu ở mức cao (như SQL,…) dễ sử dụng và trở thành chuẩn.
Ở đây ta sử dụng mô hình quan hệ như bước tiếp nối để hoàn chỉnh lược đồ dữ liệu đã lập theo mô hình ER.
4.1. CÁC KHÁI NIỆM
a. Quan hệ
Cho D1, D2,…., Dn là n miền giá trị, không nhất thiết khác nhau. Theo định nghĩa toán học ta có: Tích đề các của các tập D1, D2,…., Dn được ký hiệu là D1x D2 x….x Dn là tập các bộ n của dãy sắp thứ tự (d1, d2,…., dn) trong đó di ∈Di với i = 1,n.
Nói cách khác D1 x D2 x….x Dn = {(d1, d2,…., dn)| di ∈Di với i = 1,2,….,n}. Một quan hệ
là R⊆ D1 x D2 x….x Dn.
Nếu viết tất cả các bộ n của quan hệ R, mỗi bộ trên một dòng, các thành phần cùng vị trí trên các bộ được gióng thẳng đứng với nhau, ta có một bảng hai chiều với: số n các cột được gọi là cấp của quan hệ, số m các dòng được gọi là bản số của quan hệ. Ví dụ: Cho D1 là tập người và D2 là tập các số nguyên dương. Quan hệ R⊆ D1 x D1 x D2 trong đó mỗi bộ <a, b, c> diễn tả một cuộc hôn nhân (anh a lấy chị b vào năm c) có thể biểu diễn thành bảng như sau:
Cột thứ nhất Cột thứ hai Cột thứ ba
Hải Hạnh 1975
Quỳnh Nga 1956
Hòa Cúc 1980
b. Thuộc tính
Theo định nghĩa toán học về quan hệ, các miền D1, D2,…., Dn là có thứ tự. Chúng không thể trao đổi vị trí cho nhau, vì vai trò của chúng trong sự diễn tả ý nghĩa của quan hệ là gắn với vị trí. Chẳng hạn ở ví dụ trên cột thứ nhất được diễn tả là chồng, cột thứ hai được diễn tả là vợ và cột thứ ba được diễn tả là năm kết hôn. Tráo đổi vị trí sẽ làm ý nghĩa của quan hệ bị sai lạc
Tuy nhiên nếu ta đem tên vai trò của mỗi cột gắn cho cột đó (xem là tên của cột), thì vị trí lại không còn quan trọng nữa. Gọi tên đó c ủa mỗi cột là một thuộc tính. Trong tin học, ta xem ý nghĩa của mỗi cột là được giải thích bởi tên của cột đó (thuộc tính) chứ không phải bởi vị trí của cột đó. Như vậy ví dụ trên có thể được viết lại với các thuộc tính cho số thứ tự của cột
Chồng Vợ Năm kết hôn
Hải Hạnh 1975
Quỳnh Nga 1956
Hòa Cúc 1980
c. Khóa
o Khoá chính: Khoá chính của một quan hệ (Primary Key-PK) là một hoặc một nhóm thuộc tính xác định duy nhất một bộ trong quan hệ. Khoá
chính của quan hệ là định danh của thực thể tương ứng. Trong quan hệ các thuộc tính thuộc khoá chính được gạch chân và được gọi là các thuộc tính khoá.
Ví dụ: SINH VIÊN (m ã S V, họ tên, ngày sinh, quê quán, lớp) – mã SV là khoá chính của quan hệ SINH VIÊN.
Khi chọn khoá chính cần phải xem xét các tiêu chuẩn sau: khoá chính phải xác định được duy nhất một bộ trong quan hệ, phải có số thuộc tính ít nhất, phải không thay đổi theo thời gian.
o Khoá ghép: Khoá ghép là khoá có từ hai thuộc tính trở lên.
Ví dụ: GIẢNG DẠY(m ã G V , m ã M H , ngày bắt đầu, ngày kết thúc) – khoá chính của quan hệ GIẢNG DẠY là một khoá ghép gồm hai thuộc tính mã GV và mã MH.
o Khoá ngoài: Một khoá ngoài được sử dụng để thiết lập một mối quan hệ. Đó là thuộc tính mô tả của quan hệ này nhưng đồng thời lại là thuộc tính khoá trong quan hệ khác. Trong quan hệ các thuộc tính khoá ngoài được in nghiêng hoặc gạch chân bằng nét đứt.
Ví dụ: LỚP (t ên l ớ p, khoa, phòng học)
SINH VIÊN (m ã S V, họ tên, ngày sinh, quê quán, tên lớp) – tên lớp là khoá ngoài của quan hệ SINH VIÊN
d. Lược đồ quan hệ
Một lược đồ quan hệ là sự hợp thành của hai yếu tố một cấu trúc gồm tên quan hệ và một danh sách các thuộc tính (mỗi thuộc tính gắn với một miền), thường có dưới dạng R(A1, A2, …., An), một tập hợp các rang buộc toàn vẹn, tức là các điều kiện mà mọi quan hệ trong lược đồ đều phải thỏa mãn.
Như vậy, có thể nói lược đồ quan hệ là một khuôn mẫu, hay nói đúng hơn là một cái lọc, cho phép thiết lập một họ các quan hệ cùng ngữ nghĩa. Ví dụ: Lược đồ quan hệ SINH VIÊN(Mã sinh viên, Họ tên, Ngày sinh,….).
Ràng buộc toàn vẹn trong lược đồ quan hệ là điều kiện ràng buộc đối với giá trị của một hay nhiều thuộc tính. Nhằm đảm bảo tính hợp lý trong thế giới thực của các thực thể trong mô hình; trong hệ thống thông tin, giúp hệ thống phát hiện những sai lệch trong thu thập, xử lý và truyền thông tin; trở thành những kiểm soát để sàng lọc các giá trị không hợp lý trong hệ thống tin học hóa sau này. Có các loại ràng buộc toàn vẹn sau: