Tải bản đầy đủ (.doc) (31 trang)

CƠ SỞ DỮ LIỆU NÂNG CAO BÀI TẬP THIẾT KẾ CƠ SỞ DỮ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1013.37 KB, 31 trang )

ĐẠ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


4. Bài 4 – Quản lý đề tài nghiên cứu khoa học 20
4.1. Mô tả hệ thống 20
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 22
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 25
5. Bài 5 – Chuẩn bị cho hội thảo khoa học 25
5.1. Mô tả hệ thống 26
5.2. Thiết kế cơ sở dữ liệu xuất phát từ mô hình E-R 26
5.3. Thiết kế cơ sở dữ liệu bằng phương pháp chuẩn hóa 27
5.4. Thiết kế cơ sở dữ liệu thời gian 28
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 3/31
5.5. Xây dựng mô hình hướng đối tượng 29
6. BÀI LÀM THÊM 30
6.1. Mô hình TimeER 30
6.2. Chuyển từ mô hình TimeER sang mô hình quan hệ 31
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 4/31
1. Bài 1 – Quản lý thông tin diễn đàn
- Người thực hiện: Trần Ngự Bình
1.1. Mô tả hệ thống
Để quản lý thông tin về một diễn đàn (Forum) trên một Website, người ta tổ
chức một cơ sở dữ liệu nhằm quản lý các tập thực thể sau:
- THANHVIEN: Tập các thành viên tham gia diễn đàn, có các thuộc tính:
MATV (mã thành viên: thuộc tính khóa), TENTV (tên thành viên) và MATMA
(mật mã).
- BAIVIET: Tập các bài viết, có các thuộc tính MABV (mã bài viết: thuộc tính
khóa), TIEUDE (tiêu đề bài viết) và NOIDUNG (nội dung bài viết).
- CHUDE: Tập các chủ đề của các bài viết, có các thuộc tính MACD (mã chủ
đề: Thuộc tính khóa) và TENCD (tên chủ đề).
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’.
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

NOIDUN
G
BAIVIET
THAOLUA
N
GOI
THUO
C
CHUDE
MACD
TENC
D
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 5/31
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ể
Giải thích
Thuộc tính
Tên Giải thích
THANHVIEN
Tập tất cả các Thành viên
tham gia diễn đàn.
MATV Mã thành viên
TENTV Tên thành viên
MATMA Mật mã
BAIVIET Tập tất cả các Bài viết
MABV Mã bài viết
TIEUDE 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:
R = <U,F>
Trong đó:
U = { A, B, C, D, E, F, G,H }
F = { ABC, D EF, GH }
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à:
ABC: 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
GH: 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ả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ì
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:
ADEFGH
AC
AC
DE
DE
ADFGH
GH
GH
ADG
BCNF
DF
DF
ADGH
ACDEFGH
ABCDEFGH
AB
AB

AB
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 7/31
Suy 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à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

G
THAOLUA
N
GOI
VT
THUO
C
CHUDE
MACD
TENC
D
BAIVIET TT
CHUDE
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 8/31
1.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:
Class THANHVIEN
Properties
MATHANHVIEN: String;
TENTV: String;
MATMA: String;
GOI: set(BAIVIET); {Inverse BAIVIET.GOI}
End THANHVIEN.
Class BAIVIET
Properties
MABV: String;
TIEUDE: String;
NOIDUNG: String;
GOI: THANHVIEN

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

NGAYNHA
P
(1,n)
(1,n)
(1,n)(1,n)
PHIEUNHAP MATHANG
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 10/31
2.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ệ:
R = <U,F>
Trong đó:
U = { A, B, C, D, E, F, G,H, I, J, K }
F = { A BC, D  EFGH , I JK, IDLM,ADNO }
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
IDLM: số hóa đơn và mã hàng xác định số lượng xuất và đơn giá xuất
ADNO: 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

A→BC ADEFGHIJKLMNO
DEFGH
D→ EFGH ADIJKLMNO
IJK
I→JK ADILMNO
IDLM
ID→LM ADINO
ADNO
AD→NO ADI
Suy 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
{SP→TENNCC,NGAYNHAP}>
• MATHANG=<MH, TENHANG, ĐVT, SLHC, GBHT,
{MH→TENHANG, ĐVT, SLHC, GBHT}>
• PHIEUXUAT=<SOHĐ,NGAYBAN, TENNMH, {SOHĐ→NGAYBAN,
TENNMH }>
• NHAP= <SP,MH, SLN, ĐGN, {SP,MH→SLN, ĐGN }>
• XUAT=<SOHĐ, MH, SLX, ĐGX, {SOHĐ,MH→SLX, ĐGX }>
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 12/31
2.4. Thiết kế cơ sở dữ liệu thời gian
2.4.1. Yêu cầu bổ sung
Tậ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
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 13/31
2.4.2. Xây dựng mô hình TimeER
2.4.3. Xây dựng mô hình quan hệ

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

Class MATHANG
Properties
Id_mathang:allID;
MH: String;
TENHANG: String;
ĐVT: String;
SLHC: real;
GBHT: real;
THUOC: set(NHAPHANG); {Inverse NHAPHANG.CHUA}
DUOCXUAT: set(XUATHANG); {Inverse XUATHANG.XUAT}
End MATHANG.
Class PHIEUNHAP
Properties
Id_phieunhap: allID;
SP: Integer;
NGAYNHAP: DateTime;
TENNCC: String;
NHAP: set (NHAPHANG);
End PHIEUNHAP.
Class NHAPHANG
Properties
Id_nh: allID;
SLN: real;
ĐGN: real;
CHUA: MATHANG;
THUOC: PHIEUNHAP; {Inverse PHIEUNHAP.NHAP}
End NHAPHANG.
Class HĐXUAT
Properties
Id_hdx: allID;

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).

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
Từ thông tin mô tả hệ thống, ta xây dựng mô hình E-R tương ứng như sau:
MonHoc
GomC
o
(1,1)
(20,50)
(1,n)
DapUn
g
(1,n)
PhongMay
SoPhon
g
NguoiQ
L
MayTinh
SoMay
CPU
RA
M
HD
D
MaMH
TenM
H
SoDVH

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

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:
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 17/31
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:
R = <U, SC>
Trong đó:
• U = {A, B, C, D, E, F, G, H, I}
• SC={A→BCD, G→HI, E→ F}
Với:
A: SoMay B: CPU C: RAM
D: HDD E: SoPhong F: NguoiQL
G: MaMH H: TenMH I: SoDVHT
Và:
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ả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ì
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:
ABCDEFGHI
ABCD
A→BCD EFGHI
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 18/31
EF
E→F EGHI
GHI
G→HI EG

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

(1,1)
(20,50)
MayTinh LT
SoMay
CPU
RA
M
HD
D
NguoiQL
VT
MonHoc
(1,n)
MaMH
TenM
H
SoDVH
T
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 19/31
3.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:
Class MAYTINH
Properties
SoMay: Integer;
CPU: String;

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

properties
MaMH: String;
TenMH: String;
SoDVHT: Integer;
DapUngBoi: set(PHONGMAY); {Inverse PHONGMAY.DapUng}
End MONHOC.
DETAI
Huongda
n
GIAOVIEN
Thuchie
n
SINHVIEN NHOMTRUONG
(1,1)
(1,n)
(1,5)
(1,1)
MaDT
TenDT
Linhvu
c
MaGV Hoten
Hocham Hocvi
MaSV Hoten Tenlop MaDT
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 21/31
Mô 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:
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ệ

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:
R(A, B, C, D, E, F, G, H, I, J)
Trong đó:
A: MaSV F: LINHVUC
B: HoTenSV G: MaGV
C: TenLop H: HoTenGV
D: MaDT I: HocHam
E: TenDT J: HocVi
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}>
Y = ABCDEFGHIJ
ABC
( A BC )
ADEFGHIJ
GHIJ
( G  HIJ )
ADEFG
DEF
( D  EF )
ADG
Є BCNF
ABCBCBCBCBCBCBCBDEFGHIJYABCEFGHIJABCFGHIJABCGHIJABCHIJABCIJABCJ
ABC
AHIJHIJHIJHIJBADEFYDEFGHIJEFGHIJFGHIJGHIJ
AEFEFBAGYDEFGDEF

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, ABC)
ρ
2
= (GHIJ, GHIJ)
ρ
3
= (DEF, DEF)
ρ
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.

- 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ệ
SINHVIEN NHOMTRUONG
Thuchien
VT
DETAI LS GIAOVIEN
Huongdan
VT
(1,1)
(1,n)
(1,5)
(1,1)
MaDT
TenDT
Linhvu
c
MaGV Hoten
Hocham Hocvi
MaSV Hoten Tenlop MaDT
Bài tập thiết kế cơ sở dữ liệu - Nhóm 4 25/31
4.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
Class SINHVIEN
Properties

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.

×