Thực hành môn Phân tích thiết kế hệ thống thông tin - Tuần 4: Thiết kế dữ liệu

Dựa theo 6 bước trong phương pháp chuyển đổi từ một mô hình dữ liệu ER sang mô hình

quan hệ dữ liệu, chúng ta có mô hình quan hệ dữ liệu như sau:

docgia(ma_docgia, ho, tenlot, ten, hinh).

thedocgia( ma_docgia, ngaylapthe, ngayhethan)

nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh)

treem(ma_docgia,ma_docgia_nguoilon, ngaysinh)

tuasach(ma_tuasach, tuasach, tacgia, tomtat)

dausach(isbn,ma_tuasach, ngonngu, bia, trangthai)

cuonsach(ma_cuonsach,isbn, tinhtrang)

dangky(isbn,ma_docgia,ngay_dk,ghichu)

phieumuon(isbn, ma_cuonsach,ma_docgia, ngaymuon, ngaytra)

phieutra(isbn, ma_cuonsach,ma_docgia, ngaymuon,ngaytrathatsu, tienphat)

pdf5 trang | Chuyên mục: Phân Tích Thiết Kế Hệ Thống | Chia sẻ: dkS00TYs | Lượt xem: 2698 | Lượt tải: 1download
Tóm tắt nội dung Thực hành môn Phân tích thiết kế hệ thống thông tin - Tuần 4: Thiết kế dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Hướng dẫn thiết kế dữ liệu 
Bộ môn HTTT- Khoa CNTT- ĐH Khoa học Tự Nhiên 1 
CHUYỂN ĐỔI TỪ MÔ HÌNH ER SANG MÔ HÌNH DỮ LIỆU 
QUAN HỆ 
I.Mô hình dữ liệu ER 
docgia
nguoilon treem
bao lanh 1..10..n
dausach
cuonsach
tuasach
co
1..n
1..1
cua 1..1
1..n
dangky
0..n
0..n
phieumuon
lien quan
lien quan0..n
1..1
1..1
0..n
phieutra
co
1..1
1..1
thedocgia
cua
1..1
1..1
II. Sự chuyển đổi từ mô hình dữ liệu ER sang mô hình dữ liệu quan hệ 
Dựa theo 6 bước trong phương pháp chuyển đổi từ một mô hình dữ liệu ER sang mô hình 
quan hệ dữ liệu, chúng ta có mô hình quan hệ dữ liệu như sau: 
docgia(ma_docgia, ho, tenlot, ten, hinh). 
thedocgia( ma_docgia, ngaylapthe, ngayhethan) 
nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) 
treem(ma_docgia,ma_docgia_nguoilon, ngaysinh) 
tuasach(ma_tuasach, tuasach, tacgia, tomtat) 
dausach(isbn,ma_tuasach, ngonngu, bia, trangthai) 
cuonsach(ma_cuonsach,isbn, tinhtrang) 
dangky(isbn,ma_docgia,ngay_dk,ghichu) 
phieumuon(isbn, ma_cuonsach,ma_docgia, ngaymuon, ngaytra) 
phieutra(isbn, ma_cuonsach,ma_docgia, ngaymuon,ngaytrathatsu, tienphat) 
Hướng dẫn thiết kế dữ liệu 
Bộ môn HTTT- Khoa CNTT- ĐH Khoa học Tự Nhiên 2 
III. Nhận xét và đề nghị một số mô hình quan hệ dữ liệu khác 
 Nhận xét 1 : Vì theo yêu cầu của đề bài mã thẻ độc giả chính là mã độc giả, do 
vậy khóa chính của quan hệ thedocgia chính là ma_docgia. Nhưng câu hỏi đặt ra 
ở đây là chúng ta có nên có quan hệ thedocgia này hay không? Nếu có thì mục 
đích để làm gì? Chúng ta nhận thấy thông tin cần thiết cho một độc giả đã thể hiện 
đầy đủ trên quan hệ docgia(nguoilon,treem), như vậy chức năng chính của quan 
hệ thedocgia là chỉ cung cấp thông tin ngaylaple và ngayhethan, mà hai thuộc 
tính này được truy xuất thường xuyên để kiểm tra tình trạng thẻ độc giả có còn 
hợp lệ không khi độc giả mượn sách. Vậy rõ ràng khi có yêu cầu hệ thống kết 
xuất thông tin độc giả cùng với thông tin thẻ độc giả thì chúng ta phải thực hiện 
một phép kết giữa hai quan hệ docgia và thedocgia mới lấy được đầy đủ thông 
tin, nhưng giả sử hệ thống chúng ta rất quan tâm đến tốc độ của việc truy xuất 
thông tin, thì việc thực hiện phép kết này là không nên chút nào. Do vậy chúng ta 
cần nên gộp quan hệ thedocgia vào trong quan hệ docgia, vì khi chúng ta để lại 
quan hệ thedocgia thì cũng không có ích lợi gì hơn cho hệ thống. Do đó quan hệ 
docgia và thedocgia được gộp chung thành quan hệ docgia như sau: 
docgia(ma_docgia, ho, tenlot, ten, hinh, ngaylapthe, ngayhethan). 
 Nhận xét 2: Tiếp theo chúng ta thấy việc tồn tại của quan hệ phieumuon và 
phieutra là có nên hay không? Rõ ràng là chúng ta thấy không nên vì phải chấp 
nhận một sự trùng lắp dữ liệu quá lớn, muốn truy xuất thông tin thì phải kết giữa 
hai bảng (công việc được khuyến cáo là cần hạn chế càng tốt vì phép kết làm 
chậm tốc độ truy xuất thông tin), đồng thời với việc lưu trữ dư thừa như vậy sẽ 
làm cho kích thước lưu trữ trong hệ thống bị phình bự. 
Dữ liệu minh họa cho hai bảng phieumuon và phieutra (dữ liệu trùng lắp quá 
nhiều, lưu trữ thừa làm cho kích thước hệ thống bị phình to) 
1. Phieumuon 
isbn ma_cuonsach ma_docgia ngaymuon 
1 1 1 01/01/2004 
1 1 1 10/2/2004 
1 1 1 10/6/2004 
1 1 1 10/8/2004 
... ... ... ... 
... ... ... ... 
2. Phieutra 
isbn ma_cuonsach ma_docgia ngaytra ngaytrathatsu tienphat 
1 1 1 15/01/2004 10/01/2004 0 
1 1 1 24/02/2004 10/03/2004 50.000 
1 1 1 24/06/2004 20/06/2004 0 
1 1 1 24/08/2004 20/8/2004 0 
... ... ... ... ... ... 
... ... ... ... ... ... 
Do vậy ý tưởng đầu tiên là chúng ta nên gộp hai quan hệ phieumuon và phieutra 
thành quan hệ muontra như sau: 
muontra( isbn, ma_cuonsach ,ma_docgia, ngaymuon, ngaytra, ngaytrathatsu, 
tienphat) 
Hướng dẫn thiết kế dữ liệu 
Bộ môn HTTT- Khoa CNTT- ĐH Khoa học Tự Nhiên 3 
 Dữ liệu minh họa cho quan hệ muontra 
isbn ma_cuonsach ma_docgia ngaymuon ngaytra Ngaytrathatsu tienphat 
1 1 1 01/01/2004 15/01/2004 10/01/2004 0 
1 1 1 10/2/2004 24/02/2004 10/03/2004 50.000 
1 1 1 10/6/2004 24/06/2004 20/06/2004 0 
1 1 1 10/8/2004 24/08/2004 20/8/2004 0 
... ... ... ... ... ... ... 
... ... ... ... ... ... ... 
 Nhận xét 3: với quan hệ muontra mới chúng ta nhận thấy rằng vẫn còn sự trùng 
lắp dữ liệu nhưng nhưng chúng ta dễ dàng truy xuất nhanh các thông tin mượn trả 
sách cho thư viện. Với quan hệ này rất phù hợp cho một hệ thống yêu cầu về mặt 
tốc độ truy xuất thông tin nhanh kể cả chấp nhận sự trùng lắp dữ liệu. Nhưng nếu 
hệ thống yêu cầu không được trùng lắp thông tin thì sao? Lúc này chắc chắn 
chúng ta không nên để nguyên quan hệ muontra mà phải nên phân thành hai 
quan hệ muon và qtrinhmuon như sau: 
muon( isbn, ma_cuonsach ,ma_docgia) 
qtrinhmuon(isbn, ma_cuonsach,ngaymuon,ma_docgia, ngay tra, ngaytrathatsu 
tienphat) 
Dữ liệu minh họa cho hai quan hệ muon và qtrinhmuon 
1. muon 
isbn ma_cuonsach ma_docgia 
1 1 1 
2. qtrinhmuon 
isbn ma_cuonsach ngaymuon ma_docgia ngaytra ngaytrathatsu tienphat 
1 1 01/01/2004 1 15/01/2004 10/01/2004 0 
1 1 10/2/2004 1 24/02/2004 10/03/2004 50.000 
1 1 10/6/2004 1 24/06/2004 20/06/2004 0 
1 1 10/8/2004 1 24/08/2004 20/8/2004 0 
... ... ... ... ... ... ... 
... ... ... ... ... ... ... 
 Nhận xét 4: với dữ liệu minh họa trên ta thấy có giảm bớt sự trùng lắp thông tin 
và kích thước cho hệ thống. Nhưng nếu chúng ta muốn hệ thống lưu trữ tốt nhất, 
không bị trùng lắp thông tin, cũng như kích thước hệ thống càng nhỏ càng tốt thì 
sao? Lúc đó ta vẫn chọn phương án trên, nhưng để tránh việc lưu trữ nhiều và 
phép kết xảy ra giữa hai bảng thực hiện nhanh hơn ta chọn lại cách đặt khóa chính 
trên bảng muon, nghĩa là ta không chọn 3 thuộc tính isbn, ma_cuonsach, 
ma_docgia làm khóa chính mà chúng ta thêm vào một thuộc tính ma_phieumuon 
để làm khóa chính. Như vậy lúc đó hai quan hệ muon, và qtrinhmuon có sự thay 
đổi như sau: 
muon( ma_phieumuon, isbn, ma_cuonsach ,ma_docgia) 
qtrinhmuon(ma_phieumuon,ngaymuon, ngay tra, ngaytrathatsu tienphat) 
Hướng dẫn thiết kế dữ liệu 
Bộ môn HTTT- Khoa CNTT- ĐH Khoa học Tự Nhiên 4 
Dữ liệu minh họa cho hai bảng 
1. muon 
ma_phieumuon isbn ma_cuonsach ma_docgia 
PM01 1 1 1 
2. qtrinhmuon 
Ma_phieumuon ngaymuon ngaytra Ngaytrathatsu tienphat 
PM01 01/01/2004 15/01/2004 10/01/2004 0 
PM01 10/2/2004 24/02/2004 10/03/2004 50.000 
PM01 10/6/2004 24/06/2004 20/06/2004 0 
PM01 10/8/2004 24/08/2004 20/8/2004 0 
... ... ... ... ... 
... ... ... ... ... 
IV. Kết luận 
Như vậy dựa trên sự phân tích và nhận xét ở trên chúng ta có thể có những mô hình quan 
hệ có thể sử dụng: 
a. Mô hình 1: trường hợp xấu nhất(trùng lắp, kết xuất chậm, kích thước hệ thống 
lớn)  
b. Mô hình 2: (hệ thống truy xuất nhanh, chấp nhận sự trùng lắp thông tin) 
docgia(ma_docgia, ho, tenlot, ten, hinh). 
thedocgia( ma_docgia, ngaylapthe, ngayhethan) 
nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) 
treem(ma_docgia,ma_docgia_nguoilon, ngaysinh) 
tuasach(ma_tuasach, tuasach, tacgia, tomtat) 
dausach(isbn,ma_tuasach, ngonngu, bia, trangthai) 
cuonsach(ma_cuonsach,isbn, tinhtrang) 
dangky(isbn,ma_docgia,ngay_dk,ghichu) 
phieumuon(isbn, ma_cuonsach,ma_docgia, ngaymuon, ngaytra) 
phieutra(isbn, ma_cuonsach,ma_docgia, ngaymuon,ngaytrathatsu, tienphat) 
docgia(ma_docgia, ho, tenlot, ten, hinh,ngaylapthe, ngayhethan) 
nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) 
treem(ma_docgia,ma_docgia_nguoilon, ngaysinh) 
tuasach(ma_tuasach, tuasach, tacgia, tomtat) 
dausach(isbn,ma_tuasach, ngonngu, bia, trangthai) 
cuonsach(ma_cuonsach,isbn, tinhtrang) 
dangky(isbn,ma_docgia,ngay_dk,ghichu) 
muontra( isbn, ma_cuonsach ,ma_docgia, ngaymuon, ngaytra, ngaytrathatsu, 
tienphat) 
Hướng dẫn thiết kế dữ liệu 
Bộ môn HTTT- Khoa CNTT- ĐH Khoa học Tự Nhiên 5 
c. Mô hình 3: hệ thống vẫn còn sự trùng lắp thông tin, khi thực hiện phép kết vẫn 
còn phải kết trên cả ba thuộc tính khóa chính của quan hệ muon 
d. Mô hình 4: hệ thống không còn sự trùng lắp thông tin 
\ 
 Như vậy: tùy theo yêu cầu của hệ thống mà chúng ta lựa chọn một mô hình 
dữ liệu quan hệ thích hợp để cài đặt. 
 Bài tập sinh viên: 
 Phân tích và tìm ra nhiều mô hình quan hệ khác (có đánh giá ưu và 
khuyết điểm của chúng) 
 Tìm và mô tả tất cả các ràng buộc toàn vẹn cho từng mô hình. 
docgia(ma_docgia, ho, tenlot, ten, hinh,ngaylapthe, ngayhethan) 
nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) 
treem(ma_docgia,ma_docgia_nguoilon, ngaysinh) 
tuasach(ma_tuasach, tuasach, tacgia, tomtat) 
dausach(isbn,ma_tuasach, ngonngu, bia, trangthai) 
cuonsach(ma_cuonsach,isbn, tinhtrang) 
dangky(isbn,ma_docgia,ngay_dk,ghichu) 
muon( isbn, ma_cuonsach ,ma_docgia) 
qtrinhmuon(isbn, ma_cuonsach,ngaymuon,ma_docgia,ngay tra, ngaytrathatsu 
tienphat) 
docgia(ma_docgia, ho, tenlot, ten, hinh,ngaylapthe, ngayhethan) 
nguoilon(ma_docgia, sonha, duong, quan, dienthoai, ngaysinh) 
treem(ma_docgia,ma_docgia_nguoilon, ngaysinh) 
tuasach(ma_tuasach, tuasach, tacgia, tomtat) 
dausach(isbn,ma_tuasach, ngonngu, bia, trangthai) 
cuonsach(ma_cuonsach,isbn, tinhtrang) 
dangky(isbn,ma_docgia,ngay_dk,ghichu) 
muon( ma_phieumuon, isbn, ma_cuonsach ,ma_docgia) 
qtrinhmuon(ma_phieumuon,ngaymuon, ngay tra, ngaytrathatsu tienphat) 

File đính kèm:

  • pdfTuan4_Thiet_ke_du_lieu.pdf