CƠ SỞ DỮ LIỆU NÂNG CAO BÀI TẬP THIẾT KẾ CƠ SỞ DỮ LIỆU
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC
CƠ SỞ DỮ LIỆU NÂNG CAO
BÀI TẬP THIẾT KẾ CƠ SỞ DỮ LIỆU
Giáo viên hướng dẫn: Nhóm học viên thực hiện:
TS Hoàng Quang Trần Như Đăng Tuyên
Trang 2Mục lục
1 Bài 1 – Quản lý thông tin diễn đàn 4
1.1 Mô tả hệ thống 4
1.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 4
1.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 5
1.4 Thiết kế cơ sở dữ liệu thời gian 7
1.5 Xây dựng mô hình hướng đối tượng 8
2 Bài 2 – Quản lý bán hàng 9
2.1 Mô tả hệ thống 9
2.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 9
2.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 10
2.4 Thiết kế cơ sở dữ liệu thời gian 12
2.5 Xây dựng mô hình hướng đối tượng 13
3 Bài 3 – Quản lý phòng thực hành máy tính 14
3.1 Mô tả hệ thống 14
3.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 14
3.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 16
3.4 Thiết kế cơ sở dữ liệu thời gian 17
3.5 Xây dựng mô hình hướng đối tượng 19
4 Bài 4 – Quản lý đề tài nghiên cứu khoa học 19
4.1 Mô tả hệ thống 19
4.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 20
4.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 21
4.4 Thiết kế cơ sở dữ liệu thời gian 23
4.5 Xây dựng mô hình hướng đối tượng 24
5 Bài 5 – Chuẩn bị cho hội thảo khoa học 25
5.1 Mô tả hệ thống 25
5.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 25
5.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 26
5.4 Thiết kế cơ sở dữ liệu thời gian 27
Trang 35.5 Xây dựng mô hình hướng đối tượng 29
6 BÀI LÀM THÊM 29
6.1 Mô hình TimeER 29
6.2 Chuyển từ mô hình TimeER sang mô hình quan hệ 30
Trang 41 Bài 1 – Quản lý thông tin diễn đàn
Ngoài ra hệ thống này còn hỗ trợ việc quản lý các mối quan hệ GOI, THUOC
và THAOLUAN với ngữ nghĩa như sau:
- (t,b) GOI: thành viên t có gởi bài viết b.
- (b,c) THUOC: bài viết b thuộc chủ đề c.
- (b,b’) THAOLUAN: bài viết b thảo luận về bài viết b’.
1.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R
1.2.1 Xây dựng mô hình E-R
THANHVIE
N
TENT V
MATM A
THANHVIEN
MABV TIEUD
E
NOIDUN G
BAIVIET THAOLUA
N GOI
THUO C CHUDE
MACD
TENC
D
Trang 5Mô hình này bao gồm:
Các tập thực thể: được mô tả chi tiết trong bảng sau
BAIVIET Tập tất cả các Bài viết
MABV Mã bài viếtTIEUDE Tiêu đềNOIDUNG Nội dung
CHUDE Tập các Chủ đề của bài viết MACD Mã chủ đề
TENCD Tên chủ đề
Các mối quan hệ:
o (t,b)GOI: thành viên t gởi bài viết b
o (b,c)THUOC: bài viết b thuộc chủ đề c
o (b,b’)THAOLUAN: bài viết b thảo luận về bài viết b’
1.2.2 Xây dựng mô hình quan hệ
1.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa
Để quản lý thông tin về một diễn đàn (Forum) trên một Website, người ta sử dụng lược đồ quan hệ sau:
Trang 6D: MABV E: TIEUDE F: NOIDUNG
G: MACD H: TENCD
Và:
ABC: Mỗi thành viên chỉ có một mã thành viên duy nhất
D EF: Mỗi bài viết có một mã bài viết duy nhất
GH: Mỗi chủ đề có một mã chủ đề duy nhất
Việc thiết kế cơ sở dữ liệu chỉ sử dụng một lược đồ quan hệ như trên có thể nảysinh sự dư thừa dữ liệu và những dị thường trong cập nhập dữ liệu Chính vìvậy, chúng ta sẽ phân tách lược đồ này thành các lược đồ con (đảm bảo đượccác tính chất bảo toàn thông tin và bảo toàn phụ thuộc hàm) như sau:
ADEFGH
ACAC
DEDE
ADFGH
GHGH
ADGBCNF
DFDF
ADGH
ACDEFGH
ABCDEFGH
AB AB AB
Trang 7Suy ra: =(AB, AC, DE, DF, GH,ADH)
Từ các phân tách trên, ta thu được mô hình quan hệ gồm các lược đồ quan hệ sau:
R1=THANHVIEN=<{MATV,TENTV,MATMA}, F={MATV→TENTV,MATMA}> R2=BAIVIET=<{MABV,TIEUDE,NOIDUNG,},F={MABV→TIEUDE, NOIDUNG}> R3=CHUDE=<{MACD,TENCD},F={MACD→TENCD}>
R4=<MATV,MABV,MACD>
1.4 Thiết kế cơ sở dữ liệu thời gian
1.4.1 Yêu cầu bổ sung
Tập thực thể THANHVIEN: cần quản lý thời gian sống của các thànhviên
Thuộc tính MATMA của tập thực thể THANHVIEN: cần quản lý thờigian giao tác
Tập thực thể BAIVIET: cần quản lý thời gian giao tác của các bài viết
Mối quan hệ GOI: cần quản lý thời gian hợp lệ
1.4.2 Xây dựng mô hình TimeER
1.4.3 Xây dựng mô hình quan hệ
THANHVIE
N
TENT V
MATMAT T
THANHVIEN LS
MABV TIEUD
E
NOIDUN G
THAOLUA N
GOI VT
THUO C CHUDE
MACD
TENC D
BAIVIET TT
CHUDE
Trang 81.5 Xây dựng mô hình hướng đối tượng
Từ mô hình E-R đã tạo ở trên, ta chuyển sang mô hình hướng đối tượng nhưsau:
Trang 9- PHIEUNHAP: có các thuộc tính: SP (số phiếu: thuộc tính khóa),
NGAYNHAP(ngày nhập), TENNCC (tên nhà cung cấp)
- HĐXUAT (hóa đơn xuất): có các thuộc tính sau: SOHĐ (số hóa đơn: thuộc
tính khóa), NGAYBAN (ngày bán), TENNMH (tên người mua hàng)
Ngoài ra cần quản lý các thông tin như sau:
- Mỗi phiếu nhập hàng: nhập những mặt hàng nào với số lượng và đơn giátương ứng bao nhiêu
- Mỗi hóa đơn xuất hàng: xuất những mặt hàng nào với số lượng và đơn giátương ứng là bao nhiêu
2.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R
2.2.1 Xây dựng mô hình E-R
MH
TENHAN G
ĐV T
SLHC
GBHT
SLX T
ĐG X T
SOHĐ
NGAYBAN
TENNM H
Trang 102.2.2 Xây dựng mô hình quan hệ
2.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa
Để quản lý thông tin bán hàng của cửa hàng, ta sử dụng lược đồ quan hệ:
E: Tên hàng (TENHANG) F: Đơn vị tính (ĐVT)
G: Số lượng hiện có (SLHC) H: Giá bán hiện tại (GBHT)
I: Số hóa đơn (SOHĐ) J: Ngày bán (NGAYBAN)
K: Tên người mua hàng (TENNMH)
L: Số lượng nhập (SLN) M: Đơn giá nhập (ĐGN)
N: Số lượng xuất (SLX) O: Đơn giá xuất
Và:
A BC : số phiếu xác định ngày nhập và tên nhà cung cấp
D EFGH: mã hàng xác định tên hàng, đơn vị tính, số lượng hiện có, giábán hiện tại
I JK: số hóa đơn xác định ngày bán và tên người mua hàng
IDLM: số hóa đơn và mã hàng xác định số lượng xuất và đơn giá xuấtADNO: số phiếu nhập và mã hàng xác định số lượng nhập và đơn giá nhậpViệc thiết kế cơ sở dữ liệu chỉ sử dụng một lược đồ quan hệ như trên có thể nảysinh sự dư thừa dữ liệu và những dị thường trong cập nhập dữ liệu Chính vìvậy, chúng ta sẽ phân tách lược đồ này thành các lược đồ con (đảm bảo đượccác tính chất bảo toàn thông tin và bảo toàn phụ thuộc hàm) như sau:
Trang 11Suy ra: = (ABC, DEFGH, IJK, IDLM, ADNO, ADI).
Từ các phân tách trên, ta thu được mô hình quan hệ gồm các lược đồ quan hệsau:
PHIEUNHAP=<SP, TENNCC, NGAYNHAP
2.4 Thiết kế cơ sở dữ liệu thời gian
2.4.1 Yêu cầu bổ sung
Trang 12Tập thực thể MATHANG: cần quản lý thời gian sống và giao tác của các mặt
hàng
2.4.2 Xây dựng mô hình TimeER
2.4.3 Xây dựng mô hình quan hệ
MH
TENHAN G
ĐV T
SLHC
GBHT
SLX T
ĐG X T
SOHĐ
NGAYBAN
TENNM H
Trang 132.5 Xây dựng mô hình hướng đối tượng
THUOC: set(NHAPHANG); {Inverse NHAPHANG.CHUA}
DUOCXUAT: set(XUATHANG); {Inverse XUATHANG.XUAT}
Trang 143 Bài 3 – Quản lý phòng thực hành máy tính
- Người thực hiện: Tô Thanh Hải
3.1 Mô tả hệ thống
Khoa Công nghệ thông tin cần tổ chức một cơ sở dữ liệu (CSDL) hiện hành đểquản lý các phòng thực hành máy tính Cho biết các thông tin sau đây về các tậpthực thể:
- PHONGMAY: thông tin về mỗi phòng máy bao gồm: SOPHONG (số phòng) và NGUOIQL (tên người quản lý phòng máy).
- MAYTINH: các máy tính được đánh số, mỗi máy có một số máy duy nhất Ngoài ra, mỗi một máy tính còn có các thông tin về cấu hình máy: CPU, RAM, HDD Các máy tính được bố trí trong các phòng máy (mỗi một
phòng máy phải có tối thiểu 20 máy và tối đa là 50 máy)
- MONHOC: để tiện bố trí cho việc thực hành, CSDL còn phải cho biết mỗi
một phòng máy có khả năng đáp ứng thực hành cho những môn học nào
Mỗi một môn học (có thực hành) ở phòng máy có các thông tin: MAMH (mã môn học), TENMH (tên môn học) và SODVHT (số đợn vị học trình).
Hiển nhiên, mỗi môn học có thể được thực hành ở các phòng máy khácnhau
3.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R
3.2.1 Xây dựng mô hình E-R
Từ thông tin mô tả hệ thống, ta xây dựng mô hình E-R tương ứng như sau:
HD
TenM
Trang 15Mô hình này bao gồm:
Các mối quan hệ:
o (p, t) GomCo: phòng p gồm có máy tính t.
o (p, h) DapUng: phòng p có khả năng đáp ứng thực hành môn học h.
Các tập thực thể: được mô tả chi tiết trong bảng sau:
Trang 16Từ mô hình E-R ở trên, ta chuyển sang mô hình quan hệ như sau:
3.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa
Theo phương pháp này, chúng ta sẽ sử dụng lược đồ quan hệ sau đây để quản lýcác phòng thực hành máy tính:
A→ BCD: số máy xác định CPU, RAM, HDD.
G→HI: mã môn học xác định tên môn học và số đơn vị học trình E→ F: số phòng xác định người quản lý.
Việc thiết kế cơ sở dữ liệu chỉ sử dụng một lược đồ quan hệ như trên có thể nảysinh sự dư thừa dữ liệu và những dị thường trong cập nhập dữ liệu Chính vìvậy, chúng ta sẽ phân tách lược đồ này thành các lược đồ con (đảm bảo đượccác tính chất bảo toàn thông tin và bảo toàn phụ thuộc hàm) như sau:
ABCDEFGHIABCD
Trang 17Suy ra: = (EF, GHI, ABCD, EG).
Từ các phân tách trên, ta thu được mô hình quan hệ gồm các lược đồ quan hệsau:
PHONGMAY=<SoPhong, NguoiQL, {SoPhong→NguoiQL}>
MONHOC=<MaMH, TenMH, SoDVHT, {MaMH→TenMH, SoDVHT}>
MAYTINH=<SoMay, CPU, RAM, HDD, {SoMay→CPU, RAM, HDD, SoPhong}>
3.4 Thiết kế cơ sở dữ liệu thời gian
3.4.1 Yêu cầu bổ sung
Từ thông tin mô tả hệ thống ban đầu, ta tiến hành thiết kế cơ sở dữ liệu thời gianvới các yêu cầu bổ sung như sau:
Thuộc tính NGUOIQL của tập thực thể PHONGMAY: được thay đổi
thành thuộc tính đa trị (tức: tại một thời điểm, một phòng máy có thể gồm nhiều người quản lý) và cần quản lý thời gian hợp lệ.
Tập thực thể MAYTINH: cần quản lý thời gian sống và thời gian giao tác của các máy tính.
Ngoài ra, cần quản lý được thời gian xảy ra các sự kiện: một môn học nào
đó được thực hành tại một phòng máy nào đó
3.4.2 Xây dựng mô hình TimeER
Từ những yêu cầu bổ sung ở trên, ta xây dựng mô hình TimeER tương ứng nhưsau:
DapUng VT
(1,n)
PhongMay
SoPhon g
GomCo
HD D
NguoiQL VT
MonHoc
(1,n) MaMH
TenM
Trang 183.4.3 Xây dựng mô hình quan hệ
Từ mô hình TimeER, ta chuyển sang mô hình quan hệ như sau:
Trong đó, các quan hệ: TR(MAYTINH), TR_NGUOIQL(PHONGMAY) và TR(DAPUNG) là các quan hệ thời gian.
3.5 Xây dựng mô hình hướng đối tượng
Từ mô hình E-R đã tạo ở trên, ta chuyển sang mô hình hướng đối tượng nhưsau:
Trang 194 Bài 4 – Quản lý đề tài nghiên cứu khoa học
- Người thực hiện: Vũ Đức Tuấn
- Mỗi một đề tài phải do một giáo viên hướng dẫn Thông tin về mỗi giáoviên bao gồm mã giáo viên, họ tên, học hàm, học vị
Thông tin về sinh viên được tổ chức trong CSDL bao gồm mã sinh viên, họ tên
và tên lớp mà sinh viên đang theo học Mỗi một đề tài phải có ít nhất một sinhviên tham gia và có không quá 5 sinh viên cùng tham gia trong một đề tài, trong
đó phải có một sinh viên là người chủ trì đề tài (trưởng nhóm làm đề tài)
4.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R
4.2.1 Xây dựng mô hình E-R
Từ thông tin mô tả hệ thống, ta xây dựng mô hình E-R tương ứng như sau:
Trang 20Mô hình này bao gồm:
Các mối quan hệ:
o (p, t) Huongdan: giáo viên p hướng dẫn đề tài t.
o (p, h) Thuchien: sinh viên p thực hiện đề tài h.
Các tập thực thể: được mô tả chi tiết trong bảng sau:
Trang 214 DETAI(mã đề tài)
4.2.2 Xây dựng mô hình quan hệ
4.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa
Để quản lý các đề tài nghiên cứu khoa học của các sinh viên, người ta sử dụng
lược đồ quan hệ sau:
Với các ràng buộc như sau:
+ Mỗi sinh viên có một mã sinh viên duy nhất (A→ BC)+ Mỗi giáo viên có một mã giáo viên duy nhất (G→HIJ)+ Mỗi đề tài có một mã đề tài duy nhất (D→ EF)
Vậy với R = <ABCDEFGHIJ,{A→BC, G→HIJ, D→ EF}>
AHIJHIJHIJHIJBADEFYDEFGHIJEFGHIJFGHIJGHIJ
AEFEFBAGYDEFGDEF
Trang 22R1 = SINHVIEN = <{MaSV, HoTen, TenLop},
F = {MaSV→HoTen, TenLop}>
R2 = GIAOVIEN = <{MaGV, HoTenGV, HocHam, HocVi},
F = {MaGV→HoTenGV, HocHam, HocVi}>
R3 = DETAI = <{MaDT, TenDT, LVNC}, F = {SoDT→TenDT, LVNC}>R4 = <MASV, MADT, MAGV>
4.4 Thiết kế cơ sở dữ liệu thời gian
4.4.1 Yêu cầu bổ sung
Từ thông tin mô tả hệ thống ban đầu, ta tiến hành thiết kế cơ sở dữ liệu thời gianvới các yêu cầu bổ sung như sau:
Trang 23- Cần quản lý thời gian sống của các đề tài.
- Giáo viên hướng dẫn một đề tài có thể thay đổi theo thời gian Cần quản lývấn đề này
Sinh viên chủ trì một đề tài có thể thay đổi theo thời gian Cần quản lý sự thayđổi này
4.4.2 Xây dựng mô hình TimeER
4.4.3 Xây dựng mô hình quan hệ
Trang 244.5 Xây dựng mô hình hướng đối tượng
Từ mô hình E-R đã tạo ở trên, ta chuyển sang mô hình hướng đối tượng như sau:
5 Bài 5 – Chuẩn bị cho hội thảo khoa học
Trang 25- Người thực hiện: Đoàn Thị Thu Minh
5.1 Mô tả hệ thống
Người ta cần phải tổ chức một cơ sở dữ liệu để chuẩn bị cho một hội thảo khoahọc Hội thảo sẽ được chia thành các tiểu ban khác nhau (thông tin về mỗi tiểuban bao gồm: tên tiểu ban, tên người điều khiển và tên thư ký) Các tác giảmuốn tham gia báo cáo trong hội thảo phải gởi trước bản tóm tắt của báo cáo(bao gồm tên và tóm tắt báo cáo) đến một ban tổ chức (BTC) Một tác giả có thểgởi nhiều báo cáo đến BTC và mỗi một báo cáo có thể là của nhiều tác giả Saukhi nhận được bản tóm tắt báo cáo, BTC phải tiến hành bố trí các báo cáo vàotrong các tiểu ban (mỗi một báo cáo chỉ được trình bày ở một tiểu ban nhấtđịnh)
5.2 Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R
5.2.1 Xây dựng mô hình E-R
Từ thông tin mô tả hệ thống, ta xây dựng mô hình E-R tương ứng như sau:
Mô hình này bao gồm:
Các mối quan hệ:
o (tg, b) Gui: tác giả tg gửi bài báo cáo b.
o (b, tb) TrinhBay: bài báo cáo b được trình bày ở tiểu ban tb.
TenTG
TACGIA
TrinhBay Gui
Trang 26 Các tập thực thể: được mô tả chi tiết trong bảng sau:
(Bài báo cáo)
TomTatBC Tóm tắt báo cáo
(Tiểu ban)
TenNDK Tên người điều khiển
5.2.2 Xây dựng mô hình quan hệ
Từ mô hình E-R ở trên, ta chuyển sang mô hình quan hệ như sau:
5.3 Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa
Theo phương pháp này, chúng ta sẽ sử dụng lược đồ quan hệ sau đây để chuẩn
bị cho hội thảo khoa học:
Trang 27A→ B: mã tác giả xác định tên tác giả.
C→D: tên báo cáo xác định bản tóm tắt báo cáo.
E→ FG: tên tiểu ban xác định tên người điều khiển và tên thư ký.
Việc thiết kế cơ sở dữ liệu chỉ sử dụng một lược đồ quan hệ như trên có thể nảysinh sự dư thừa dữ liệu và những dị thường trong cập nhập dữ liệu Chính vìvậy, chúng ta sẽ phân tách lược đồ này thành các lược đồ con (đảm bảo đượccác tính chất bảo toàn thông tin và bảo toàn phụ thuộc hàm) như sau:
E→FG ACE
Suy ra: = (AB, CD, EFG, ACE)
Từ các phân tách trên, ta thu được mô hình quan hệ gồm các lược đồ quan hệsau:
TACGIA=<MaTG, TenTG, {MaTG→TenTG}>
BAIBAOCAO=<TenBC, TomTatBC, {TenBC→TomTatBC}>
TIEUBAN=<TenTB, TenNDK, TenTK, {TenTB→TenNDK, TenTK}>
5.4 Thiết kế cơ sở dữ liệu thời gian
5.4.1 Yêu cầu bổ sung
Từ thông tin mô tả hệ thống ban đầu, ta tiến hành thiết kế cơ sở dữ liệu thời gianvới yêu cầu bổ sung như sau:
Trang 28 Cần quản lý thời gian xảy ra sự kiện: một báo cáo được trình bày ở một tiểuban nào đó.
5.4.2 Xây dựng mô hình TimeER
Từ những yêu cầu bổ sung ở trên, ta xây dựng mô hình TimeER tương ứng nhưsau:
5.4.3 Xây dựng mô hình quan hệ
Từ mô hình TimeER, ta chuyển sang mô hình quan hệ như sau:
Trong đó, quan hệ: TR(TRINHBAY) là quan hệ thời gian.
5.5 Xây dựng mô hình hướng đối tượng
Trang 29Từ mô hình E-R đã tạo ở trên, ta chuyển sang mô hình hướng đối tượng nhưsau:
LAMVIEC VT
GIO/TUAN
È
PHUTHU
OC (0,N)
(1,1)
(1,1)
(1,1)
(1,1) (1,1) (1,1)
Trang 306.2 Chuyển từ mô hình TimeER sang mô hình quan hệ