ĐẠI HỌC HUẾ
TRƯỜ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
Nguyễn Vũ Cát Trường
Nguyễn Thị Thanh Tâm
Trần Thị Thành
Lê Bá Minh Phong
Huế, 11/2011
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 2/31
Mụ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 15
3.1. Mô tả hệ thống 15
3.2. Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 15
3.3. Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 17
3.4. Thiết kế cơ sở dữ liệu thời gian 18
3.5. Xây dựng mô hình hướng đối tượng 19
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’.
Biết rằng:
- Mỗi bài viết phải do đúng một và chỉ một thành viên gởi lên, còn mỗi một
thành viên có thể gởi nhiều bài viết.
- Một bài viết khi được gởi lên diễn đàn chỉ thuộc một chủ đề nào đó và cũng có
những chủ đề không có bất kỳ bài viết nào.
- Mỗi bài viết có thể là một bài thảo luận cho một bài viết đã được gởi trước đó
hoặc cũng có thể không (tức là một bài viết được gởi lên để các thành viên khác
tham gia thảo luận). Hiển nhiên có thể có những bài viết được gởi lên diễn đàn
nhưng không có ai tham gia thảo luận.
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
THAOLUANVE(0,1)
DUOCTHAOLUANBOI(0,n)
(1,1)
(0,n)
(1,1)
(0,n)
THANHVIE
N
TENT
V
MATM
A
THANHVIEN
MABV TIEUD
E
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:
R = <U,F>
Trong đó:
U = { A, B, C, D, E, F, G,H }
F = { ABC, D EF, GH }
Với:
A: MATV B: TENTVC: MATMA
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 6/31
D: 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
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ành
viên.
• Thuộc tính MATMA của tập thực thể THANHVIEN: cần quản lý thời
gian 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ệ
THAOLUANVE(0,1)
DUOCTHAOLUANBOI(0,n)
(1,1)
(0,n)
(1,1)
(0,n)
THANHVIE
N
TENT
V
MATMAT
T
THANHVIEN LS
MABV TIEUD
E
NOIDUN
THUOC: CHUDE
THAOLUANVE: BAIVIET
DUOCTHAOLUANBOI: set(BAIVIET)
End BAIVIET.
Class CHUDE
Properties
MACD: String;
TENCD: String;
THUOC: set(BAIVIET); {Inverse BAIVIET.THUOC}
End CHUDE.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 9/31
2. Bài 2 – Quản lý bán hàng
- Người thực hiện: Trần Văn Long
2.1. Mô tả hệ thống
Để hỗ trợ việc quản lý mua bán hàng hóa tại một cửa hàng, người ta xây dựng
một cơ sở dữ liệu nhằm giúp quản lý các tập thực thể sau:
- MATHANG: Tập các mặt hàng, có các thuộc tính: MH(mã mặt hàng:
thuộc tính khóa), TENHANG (tên hàng), ĐVT (đơn vị tính), SLHC (số
lượng hiện có), GBHT (giá bán hiện thời)
- 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
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ệ:
R = <U,F>
Trong đó:
U = { A, B, C, D, E, F, G,H, I, J, K }
F = { A BC, D EFGH , I JK, IDLM,ADNO }
Với:
A: Số phiếu (SP) B: Tên nhà cung cấp (TENNCC)
C: Ngày nhập (NGAYNHAP) D: Mã hàng (MH)
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ất
ADNO: số phiếu nhập và mã hàng xác định số lượng nhập và đơn giá
nhập
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ảy
sinh sự dư thừa dữ liệu và những dị thường trong cập nhập dữ liệu. Chính vì
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 11/31
vậy, chúng ta sẽ phân tách lược đồ này thành các lược đồ con (đảm bảo được
các tính chất bảo toàn thông tin và bảo toàn phụ thuộc hàm) như sau:
ABCDEFGHIJKLMNO
ABC
2.5. Xây dựng mô hình hướng đối tượng
NGAYNHA
P
(1,n)
(1,n)
(1,n)(1,n)
PHIEUNHAP MATHANG LT
HĐXUAT
NHAP
XUAT
SP
TENNCC
SLNĐGN
MH
TENHAN
G
ĐV
T
SLHC
GBHT
SLX
T
ĐG
X
T
SOHĐ
NGAYBAN
TENNM
H
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 14/31
SOHĐ: Interger;
NGAYBAN: DateTime;
TENNMH: String;
XUAT: set(XUATHANG);
End HOADONXUAT.
Class XUATHANG
Properties
Id_xuathang: allID;
SLX: real;
ĐGX: real;
XUAT: set(MATHANG);
THUOC: HĐXUAT; {Inverse HĐXUAT.XUAT}
End XUATHANG.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 15/31
3. 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ập
thự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).
T
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 16/31
Mô 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:
STT Tập thực thể Tập thuộc tính Ghi chú
1
PhongMay
(Phòng máy)
SoPhong Số phòng
NguoiQL Người quản lý
2
MayTinh
(Máy tính)
SoMay Số máy
CPU Bộ vi xử lý
RAM Bộ nhớ RAM
HDD Ổ đĩa cứng
3
MonHoc
(Môn học)
MaMH Mã môn học
TenMH Tên môn học
SoDVHT Số đơn vị học trình
Suy 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 gian
vớ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
GomC
o
RAM: String;
HDD: String;
Thuoc: PHONGMAY;
End MAYTINH.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 20/31
4. 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
4.1. Mô tả hệ thống
Trường ĐHKH cần tổ chức một CSDL để quản lý các đề tài nghiên cứu khoa
học của sinh viên. Cho biết một số thông tin liên quan như sau:
- Mỗi một đề tài khi đăng ký thực hiện được cấp một mã số duy nhất.
Ngoài ra, mỗi một đề tài còn có tên đề tài và lĩnh vực nghiên cứu mà đề tài
thực hiệ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áo
viê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 sinh
viê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:
Class PHONGMAY
properties
SoPhong: Integer;
NguoiQL: String;
GomCo: set(MAYTINH); {Inverse MAYTINH.Thuoc}
DapUng: set(MonHoc);
End PHONGMAY.
Class MONHOC
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:
STT Tập thực thể Tập thuộc tính Ghi chú
1
NHOMTRUONG
(nhóm trưởng)
MaDT Mã đề tài
2
GIAOVIEN
(giáo viên)
MaGV Mã giáo viên
HotenGV Họ và tên
Hocham Học hàm
Hocvi Học vị
3
SINHVIEN
(sinh viên)
MaSV Mã sinh viên
HotenSV Họ và tên
Tenlop Tên lớp
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 22/31
4
DETAI
(mã đề tài)
MaDT Mã đề tài
TenDT Tên đề tài
Linhvuc Lĩnh vực
4.2.2. Xây dựng mô hình quan hệ
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 23/31
Ta có kết quả phân tách:
=>
ρ
=(ABC, GHIJ, DEF, ADG)
ρ
1
= (ABC, ABC)
ρ
2
= (GHIJ, GHIJ)
ρ
3
= (DEF, DEF)
ρ
4
= (ADG)
Vậy, ta được Mô hình quan hệ gồm các lược đồ quan hệ sau:
R1 = 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 gian
với các yêu cầu bổ sung như sau:
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 24/31
- Cần quản lý thời gian sống của các đề tài.
MaSV:string;
HotenSV:string;
Tenlop: string;
Thuchien: DETAI;
End SINHVIEN.
Class NHOMTRUONG
Inherits: SINHVIEN
Properties
MaDT:string;
End NHOMTRUONG.
Class DETAI
Properties
MaDT:string;
TenDT:string;
Linhvuc:string;
Thuchien: set (SINHVIEN);
Huongdan: GIAOVIEN;
End DETAI.
Class GIAOVIEN
Properties
MaGV:string;
HotenGV:string;
Hocham:string;
Hocvi:string;
Huongdan: set (DETAI);
End GIAOVIEN.