ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
BÀI TẬP CƠ SỞ DỮ LIỆU NÂNG CAO
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 Dương Phước Đạt
Phạm Anh Đức
Phạm Trung Đức
Trương Khánh Duy
Hoàng Thị Thu Hằng
Huế, 10/2011
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 2/26
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 thời gian 5
1.4. Xây dựng mô hình hướng đối tượng 6
2. Bài 2 – Quản lý bán hàng 7
2.1. Mô tả hệ thống 7
2.2. Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 8
2.3. Thiết kế cơ sở dữ liệu thời gian 9
2.4. Xây dựng mô hình hướng đối tượng 10
3. Bài 3 – Quản lý phòng thực hành máy tính 11
3.1. Mô tả hệ thống 11
3.2. Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 12
3.3. Thiết kế cơ sở dữ liệu thời gian 13
3.4. Xây dựng mô hình hướng đối tượng 15
4. Bài 4 – Quản lý đề tài nghiên cứu khoa học 15
4.1. Mô tả hệ thống 15
- (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)
MaTV TenTV MatMa
THANHVIEN
MaBV TieuDe NoiDung
BAIVIET
ThaoLuan
Goi
Thuoc
CHUDE
MaCD
TenCD
GOI: thành viên t 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.2. Xây dựng mô hình quan hệ
1.3. Thiết kế cơ sở dữ liệu thời gian
1.3.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.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 6/26
• Mối quan hệ GOI: cần quản lý thời gian hợp lệ.
1.3.2. Xây dựng mô hình TimeER
1.3.3. Xây dựng mô hình quan hệ
1.4. 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:
Class THANHVIEN
Properties
MATV: String;
TenTV: String;
MatMa: String;
End THANHVIEN.
ThaoLuanVe(0,1)
DuocThaoLuanBoi(0,n)
(1,1)
(0,n)
TENCD: String;
End CHUDE.
2. Bài 2 – Quản lý bán hàng
2.1. Mô tả hệ thống
Việc quản lý hoạt động bán hàng của một cửa hàng bán thiết bị điện tử được
mô tả như sau:
- Mỗi một mặt hàng được đánh mã số duy nhất và được mô tả thông qua tên, loại
hàng, quy cách, giá bán hiện thời và số lượng hiện có của mặt hàng.
- Khi bán hàng cho khách hàng, người bán hàng sẽ tiến hành lập chứng từ bán
hàng. Mỗi một chứng từ có một số chứng từ duy nhất; ngoài ra, thông qua chứng
từ bán hàng, ta có thể biết được một số thông tin như sau:
o Ngày lập chứng từ;
o Thông tin về khách mua hàng (họ tên, địa chỉ);
o Danh mục các mặt hàng khách mua kèm theo số lượng và đơn giá
(bán).
- Khách hàng khi mua hàng không cần phải thanh toán ngay toàn bộ số tiền của
chứng từ mà có thể trả thành nhiều đợt. Mỗi khi khách hàng thanh toán tiền, phải
tiến hành lập Phiếu thu tiền cho khách hàng. Mỗi phiếu thu tiền được đánh một số
duy nhất gọi là số phiếu, đồng thời trong phiếu thu tiền phải thể hiện được các
thông tin sau:
o Phiếu thu tiền thanh toán cho chứng từ nào;
o Ngày thu tiền;
o Số tiền thu của khách hàng.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 8/26
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
Mô hình này bao gồm:
* Các tập thực thể được mô tả chi tiết trong bảng sau:
Tên tập thực
thể
GBHT
SLB
T
ĐG
B
T
SoCT
NgayBan
HoTenKH
LoaiHang
DiaChi
(1,1)
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 9/26
CHUNGTU
Tập tất cả các chứng từ
của cửa hàng.
SOCT
Số chứng từ
(Thuộc tính khóa)
HOTENKH Họ tên khách hàng
DIACHI Địa chỉ khách hàng
NGAYBAN Ngày bán
PHIEUTHU
Tập các phiếu thu của
cửa hàng.
SOPHIEU
Số phiếu
(Thuộc tính khóa)
SOTIENTHU Số tiền thu
NGAYTHU Ngày thu
PHIEUTHU
MATHANG LT
CHUNGTU
ThanhTo
an
Chua
SoPhieu
MaHang
TenHang
QuyCach
SLH
C
GBHT
SLB
T
ĐG
B
T
SoCT
NgayBan
HoTenKH
LoaiHang
DiaChi
(1,1)
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 11/26
3. Bài 3 – Quản lý phòng thực hành máy tính
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ể:
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ác nhau.
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
Mô hình này bao gồm:
* Các mối quan hệ:
+ (p, t)
∈
GomCo: phòng p gồm có máy tính t.
+ (p, h)
∈
ThucHanh: phòng p 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
(thuộc tính khóa)
NguoiQL Người quản lý
MONHOC
GomC
o
(1,1)
(20,50)
(1,n)
ThucHa
nh
(Môn học)
MaMH
Mã môn học
(thuộc tính khóa)
TenMH Tên môn học
SoDVHT Số đơn vị học trình
3.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:
3.3. Thiết kế cơ sở dữ liệu thời gian
3.3.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 đó.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 14/26
3.3.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:
3.3.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:
MAYTINH LT
MONHOC
GomC
o
(1,1)
- 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.
Class MAYTINH
Properties
SoMay: Integer;
CPU: String;
RAM: String;
HDD: String;
Thuoc: PHONGMAY;
End MAYTINH.
Class PHONGMAY
properties
SoPhong: Integer;
NguoiQL: String;
End PHONGMAY.
Class MONHOC
properties
MaMH: String;
TenMH: String;
SoDVHT: Integer;
ThucHanh: set(PHONGMAY);
End MONHOC.
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 16/26
- 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).
Linhvu
c
MaGV Hoten
Hocham Hocvi
MaSV Hoten Tenlop
ChuT
ri
(1,1)
(0,n)
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 17/26
(nhóm trưởng) (thuộc tính khóa)
2
GIAOVIEN
(giáo viên)
MaGV
Mã giáo viên
(thuộc tính khóa)
HotenGV Họ và tên
Hocham Học hàm
Hocvi Học vị
3
SINHVIEN
(sinh viên)
MaSV
Mã sinh viên
(thuộc tính khóa)
HotenSV Họ và tên
Tenlop Tên lớp
4
DETAI
MaDT
TenDT
Linhvu
c
MaGV Hoten
Hocham Hocvi
MaSV Hoten Tenlop
ChuTri
VT
(1,1)
(0,n)
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 19/26
Trong đó, quan hệ: TR(HUONGDAN), TR(SVCHUTRI), TR(DETAI) là quan
hệ thời gian.
4.4. 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:
Class SINHVIEN
Properties
MaSV:string;
HotenSV:string;
Tenlop: string;
Thuchien: set(DETAI);
End SINHVIEN.
Class DETAI
Properties
MaDT:string;
TenDT:string;
Linhvuc:string;
Huongdan: GIAOVIEN;
ChuTri:SINHVIEN;
TIEUBAN
(1,n)
(1,n)
(1,1)
(1,n)
MaTG
TenBC
TomTatBC
TenTB
TenNĐK
TenTK
BAIBAOCAO
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 21/26
+ (tg, b)
∈
Gui: tác giả tg gửi bài báo cáo b.
+(b, tb)
∈
TrinhBay: bài báo cáo b được trình bày ở tiểu ban tb.
* 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
TACGIA
(Tác giả)
MaTG
Mã tác giả
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.4. 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:TenTG
TACGIA
TrinhBay VT
Gui
TIEUBAN
(1,n)
(1,n)
(1,1)
(1,n)
MaTG
TenBC
TomTatBC
TenTB
TenNDK
TenTK
BAIBA
OCAO
Class TACGIA
properties
GioiTinh
MaLop
TenLop
NgayKG
HOCVIEN
LOPHOC
CHUNGCHI
GHIDANH
CAP
(1,n)
(1,n)
NoiSinh
ThoiGianHoc
SoPhieu
SoTienNop
(1,1)
(1,n)
PHIEUTHUHOCPHI
MaCC TenCC
HocPhi
(1,1)
NgayNopHocPhi
Bài tập thiết kế cơ sở dữ liệu - Nhóm 5 Lớp Khoa học máy tính B 24/26
6.2.Thiết kế cơ sở dữ liệu thời gian
6.2.1. Yêu cầu bổ sung
- Cần quản lý thời gian sống của các loại chứng chỉ khác nhau.
- Cần quản lý thời gian giao tác khi lưu trữ thông tin về một học viên ghi danh vào
một khóa học nào đó.
6.2.2. Xây dựng mô hình TimeER
6.2.3. Xây dựng mô hình quan hệ
MaHV: String;
HoTen: String;
NgaySinh: DateTime;
GioiTinh: Boolean;
NoiSinh:String;
End HOCVIEN.
Class LOPHOC
properties
MaLop: String;
TenLop: String;
NgayKhaiGiang: DateTime;
ThoiGianHoc: Integer;
HocPhi:Integer;
Cap:CHUNGCHIs;
End LOPHOC.
Class PHIEUTHUHOCPHI
properties
SoPhieu: String;
SoTienNop: Integer;
NgayNopHocPhi: DateTime;
End PHIEUTHUHOCPHI.