HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
cơ sở tại TP. Hồ Chí Minh
Khoa Công Nghệ Thông Tin 2
o0o
Báo Cáo Đề Tài:
Thi Trắc Nghiệm
( Thiết kế một cơ sở dữ liệu cho hệ thống quản lý thi
trắc nghiệm )
Môn
: Cơ sở dữ liệu
GVHD :
Lớp
:
Khoa
: Công nghệ thông tin
Nhóm :
Gồm 2 thành viên:
MỤC LỤC
1. Mô tả chi tiết bài toán
2
2.Phân tích và xác định các thực thể, thuộc tính và mối liên kết
3
3.Thiết kế
Sơ đồ ERD cho cơ sở dữ liệu thi trắc nghiệm
4
Chuyển đổi ERD sang mô hình dữ liệu quan hệ
5
Bảng cơ sở dữ liệu
6
4.Chuẩn hóa
5.Viết SQL tạo CSDL trong SQL SeVer
*Lược đồ Diagram cơ sở dữ liệu
7
16
19
6.Nhập dữ liệu: (Dùng lệnh INSERT)
20
7.Chạy các Truy vấn: (Dùng lệnh SELECT)
27
8. Báo cáo tổng hợp
48
1
1. Mô tả chi tiết bài toán
-Trường thì sẽ có nhiều khoa, mỗi khoa có mã khoa để phân biệt các khoa với
nhau và tên khoa.
- Mỗi khoa quản lý nhiều lớp, mỗi lớp chỉ thuộc một khoa. Mỗi lớp có mã lớp
dùng để phân biệt các lớp và tên lớp, năm nhập học. Một sinh viên chỉ thuộc 1 lớp .
Thông tin về sinh viên gồm có mã sinh viên để phân biệt các sinh viên, họ, tên sinh
viên, giới tính, địa chỉ.
- Thông tin về giảng viên gồm mã giảng viên dùng để phân biệt các giảng viên, họ
tên giảng viên, giới tính, chuyên môn. Một giảng viên chỉ thuộc duy nhất một khoa,
có thể dạy nhiều lớp nhưng chỉ dạy một môn.
-Thông tin về môn học gồm mã môn học dùng để phân biệt các môn học, tên môn
học, các tiết lý thuyết, các tiết thực hành.
- Giảng viên là người chịu trách nhiệm soạn thảo câu hỏi các môn học để đưa vào
bộ đề thi sau đó nộp cho phòng khảo thí. Một câu hỏi thi có dạng: chọn 1 trong nhiều
lựa chọn.
- Thông tin về phòng gồm mã phòng và tên phòng, mã phòng để phân biệt phòng
giáo vụ và phòng khảo thí:
+ Phòng giáo vụ sẽ có nhân viên phụ trách tiến hành xếp lịch thi cho lớp: gồm
môn học, lần thi và ngày thi.
+ Phòng khảo thí sẽ có nhân viên phụ trách nhận bộ đề thi từ giảng viên sau đó
in ra cho sinh viên thi, nếu như sinh viên đã thi rồi thì không cho thi nữa.
- Sau khi hết thời gian làm bài, giảng viên canh thi sẽ thu bài lại.
Lưu ý:
- Điểm lớn nhất là 10, số điểm các câu là như nhau. Khi hết thời gian quy định thì kết
thúc việc thi.
2. Phân tích và xác định các thực thể, thuộc tính và mối
liên kết:
Thực thể
1. Sinh Viên
Thuộc tính
- Mã sinh viên
+ Họ tên sinh viên
+ Giới tính
+ Địa chỉ
2. Giảng Viên - Mã giảng viên
Mối liên kết
Tập thực thể
(1,n)
(1,n)
(n,n)
- Lớp
- Khoa
- Môn
(1,n)
- Khoa
2
+ Họ tên giảng viên
+ Giới tính
+ Chuyên môn
(1,n)
(n,n)
(n,1)
- Môn học
- Lớp
- Câu hỏi
3. Môn học
- Mã môn học
+ Tên môn học
+ Các tiết lý thuyết
+ Các tiết thực hành
(n,n)
(n,1)
- Sinh viên
- Giảng viên
4. Khoa
- Mã khoa
+ Tên khoa
(n,1)
(n,1)
- Giảng viên
- Sinh viên
5. Nhân Viên
- Mã nhân viên
+ Họ tên nhân viên
+ Giới tính
(1,n)
- Phòng
6. Lịch thi
- Mã lịch thi
+ Ngày thi
+ Lần thi
+ Thời gian
(n,n)
(n,n)
- Lớp
- Môn
7. Bộ đề thi
- Mã đề thi
+ Tên bộ đề thi
+ Số đề thi
(1,1)
(1,n)
(n,1)
- Giảng viên
- Nhân viên
- Câu hỏi
8. Câu hỏi
- Mã câu hỏi
+ Số câu hỏi
(1,n)
(1,n)
(1,n)
(1,1)
- Bộ đề thi
- Giảng viên
- Môn
- Kết quả
9. Lớp
- Mã lớp
+ Tên lớp
+ Năm nhập học
(n,1)
(1,n)
(n,n)
(n,n)
(n,n)
- Sinh viên
- Khoa
- Giảng viên
- Môn
- Lịch thi
10. Kết quả
- Mã kết quả
+ Đáp án
+ Điểm
(1,1)
- Câu hỏi
- Mã phòng
+ Tên phòng
(n,1)
- Nhân viên
11. Phòng
3
3.Thiết kế
Sơ đồ ERD cho cơ sở dữ liệu thi trắc nghiệm
Chuyển đổi ERD sang mô hình dữ liệu quan hệ
*Qui ước:
Primary Key: In đậm, gạch chân
Foreign Key: In nghiên
KHOA (IDKhoa, TenKhoa)
LOP (IDLop, TenLop, IDKhoa, NamNhapHoc)
GIANGVIEN (IDGiangVien, IDKhoa, HoTenGV, GioiTinh, ChuyenMon)
NHANVIEN (IDNhanVien , HoTenNV, GioiTinh)
PHONG (IDPhong, TenPhong)
SINHVIEN (IDSinhVien, IDLop, HoTenSV, GioiTinh, DiaChi)
CAUHOI (IDCauHoi, IDMonHoc,IDKetQua, IDGiangVien, IDBoDeThi,
SoCauHoi, NoiDung)
BODETHI (IDBoDeThi, IDNhanVien, IDGiangVien, TenBoDeThi, SoDeThi)
LICHTHI (IDLichThi, IDMon, IDNhanVien, LanThi, NgayThi, TimeThi)
KETQUA (IDKetQua, DapAn)
4
MONHOC (IDMonHoc, IDSinhVien, IDGiangVien, TenMonHoc, TietLyThuyet,
TietThucHanh)
DANGKIMON (IDMon, IDSinhVien, HocMon)
DANGKILICHTHI ( IDMon,IDLichThi )
Bảng cơ sở dữ liệu
Table
FileName
Type
Constraint
LOP
IDLop
Tenlop
NamNhapHoc
IDKhoa
nchar(20)
nvarchar(40)
int
nchar(20)
Primary Key
Not Null
KHOA
IDKhoa
TenKhoa
nchar(20)
nvarchar(40)
Primary Key
Not null
GIANGVIEN
IDGiangVien
HoTenGV
ChuyenMon
GioiTinh
nvarchar(20)
nvarchar(40)
nvarchar(30)
nchar(3)
Primary Key
Not null
IDKhoa
nchar(20)
IDSinhVien
HoTenSV
GioiTinh
nchar(20)
nvarchar(40)
nvarchar(3)
DiaChi
IDLop
nvarchar(50)
nchar(20)
IDNhanVien
HoTenNV
GioiTinh
nchar(20)
nvarchar(40)
nchar(3)
IDPhong
nchar(20)
Primary Key
Not Null
‘Nam’ or ‘Nữ’
Default ‘Nam’
Foreign Key
IDPhong
TenPhong
nchar(20)
nvarchar(40)
Primary Key
Not null
SINHVIEN
NHANVIEN
PHONG
Foreign Key
‘Nam’ or ‘Nu’
Default ‘Nam’
Foreign Key
Primary Key
Not Null
‘Nam’ or ‘Nu’
Default ‘Nam’
Foreign Key
5
IDBoDeThi
TenBoDeThi
SoBoDeThi
IDNhanVien
IDGiangVien
nchar(20)
nvarchar(40)
int
nchar(20)
nvarchar(20)
Primary Key
Not Null
CAUHOI
IDCauHoi
SoCauHoi
NoiDung
IDMon
IDKetQua
IDGiangVien
IDBoDeThi
nchar(20)
int
text
nchar(20)
nchar(20)
nvarchar(20)
nchar(20)
Primary Key
>=10 Not null
Not Null
Foreign Key
Foreign Key
Foreign Key
Foreign Key
LICHTHI
IDLichThi
SoLanThi
NgayThi
TimeThi
IDSinhVien
nchar(20)
int
nvarchar(20)
nvarchar(20)
nchar(20)
Primary Key
KETQUA
IDKetQua
DapAn
nchar(20)
nvarchar(40)
Primary Key
MON
IDMonHoc
TenMonHoc
SoTietLyThuyet
SoTietThucHanh
IDSinhVien
IDGiangVien
nchar(20)
nvarchar(40)
int
int
nchar(20)
nchar(20)
Primary Key
Not Null
Not Null
Not Null
Foreign Key
Foreign Key
DANGKIMON
IDMon
IDSinhVien
nchar(20)
nchar(20)
Primary Key
Primary Key
DANGKILICHTH
I
IDMon
IDLichThi
nchar(20)
nchar(20)
Primary Key
Primary Key
BODETHI
Foreign Key
Foreign Key
Foreign Key
4.Chuẩn hóa
6
*KHOA
Ta có:
IDKhoa
CNTT
DT
QTKD
VT
+ IDKhoa → TenKhoa
TenKhoa
Công nghệ thông tin
Điện tử
Quản trị kinh doanh
Viễn thông
+ TenKhoa → TenKhoa
=>> Phụ thuộc hàm: ( IDKhoa ) → { TenKhoa }
=> IDKhoa là Key của bảng KHOA.
Bao đóng: { IDKhoa }+ → {IDKhoa,TenKhoa}
Lược đồ ở dạng chuẩn BCNF.
* LỚP
IDLop
D16CQCN01
D16CQCN02
D16CQCN03
D15CQDT01
D17CQQT01
D17CQQT02
D15CQVT01
Ta có:
TenLop
Công nghệ thông tin 1
khóa 2016
Công nghệ thông tin 2
khóa 2016
Công nghệ thông tin 3
khóa 2016
Điện Tử 1 khóa 2015
Quản trị kinh doanh 1
khóa 2017
Quản trị kinh doanh 2
khóa 2017
Viễn Thông 1 khóa
2015
IDKhoa
CNTT
NamNhapHoc
2016
CNTT
2016
CNTT
2016
DT
QTKD
2015
2017
QTKD
2017
VT
2015
+ IDLop → TenLop , IDKhoa , NamNhapHoc
+ TenLop → TenLop
+ IDKhoa → IDKhoa
+ NamNhapHoc → NamNhapHoc
=>> Phụ thuộc hàm: ( IDLop ) → { TenLop,IDKhoa,NamNhapHoc}
=> IDLop là Key của bảng LỚP.
7
IDKhoa là Foreign Key của bảng Lớp.
Bao đóng: {IDKhoa}+ → {IDKhoa,TenKhoa}
=>> { IDLop }+ → { IDLop,TenLop,IDKhoa,TenKhoa,NamNhapHoc}
Lược đồ ở dạng chuẩn BCNF.
*GIẢNG VIÊN
IDGV
0211018
024419
3
0211012
0211044
0211062
0211065
0211079
IDKhoa
CNTT
CNTT
HoTenGV
Hồ Mạnh Tài
Huỳnh Thanh Tâm
GioiTinh
Nam
Nam
ChuyenMon
Cơ sở dữ liệu
Hệ điều hành
CNTT
DT
QTKD
QTKD
VT
Trương Đình Huy
Nguyễn Trọng Huân
Hồ Thị Sáng
Nguyễn Ngọc Thanh
Lê Duy Khánh
Nam
Nam
Nữ
Nữ
Nam
Tin học cơ sở 2
Kỹ thuật vi xử lí
Quản trị học
Tài chính tiền tệ
An ninh mạng viễn thông
Ta có:
+ IDGV → HoTenGV , IDKhoa , GioiTinh , ChuyenMon
+ IDKhoa → IDKhoa
+ HoTenGV → HoTenGV
+ GioiTinh → GioiTinh
+ ChuyenMon → ChuyenMon
=>> Phụ thuộc hàm:
( IDGV ) → { HoTenGV,IDKhoa,GioiTinh,ChuyenMon }
=> IDGV là Key của bảng GIẢNG VIÊN.
IDKhoa là Foreign Key của bảng GIẢNG VIÊN.
Bao đóng: {IDKhoa}+ → {IDKhoa,TenKhoa}
=>> {IDGV}+
→ {IDGV, HoTenGV,IDKhoa,TenKhoa,GioiTinh,ChuyenMon}
Lược đồ ở dạng chuẩn BCNF.
*SINH VIÊN
IDSV
IDLop
HoTenSV
GioiTinh
DiaChi
8
N16DCCN059 D16CQCN01
Bùi Xuân Toàn
Nam
N16DCCN122 D16CQCN02 Nguyễn Thị Lan Phương
Nữ
N16DCCN130 D16CQCN03
Phạm Lý Quỳnh
Nữ
N15DCDT020 D15CQDT01
Tô Quang Huy
Nam
N17DCQT098 D17CQQT01
Cao Thảo My
Nữ
N17DCQT001 D17CQQT02
Mai Sơn
Nam
N15DCVT025 D15CQVT01
Nguyễn Ngọc Luân
Nam
Ta có:
+ IDSV → HoTenSV , IDLop , GioiTinh , DiaChi
Hà Nội
Quảng Trị
TP.HCM
Huế
Nha Trang
Đà Lạt
Đà Nẵng
+ IDLop → IDLop
+ HoTenSV → HoTenSV
+ GioiTinh → GioiTinh
+ DiaChi → DiaChi
=>> Phụ thuộc hàm:
( IDSV ) → { HoTenSV,IDLop,GioiTinh,DiaChi }
=> IDSV là Key của bảng SINH VIÊN.
IDLop là Foreign Key của bảng SINH VIÊN.
Bao đóng:
{ IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{IDKhoa}+ → {IDKhoa,TenKhoa}
=>> {IDSV}+ → { IDSV,HoTenSV,IDLop,
TenLop,IDKhoa,TenKhoa,NamNhapHoc,GioiTinh,DiaChi}
Lược đồ ở dạng chuẩn BCNF.
*PHÒNG
IDPhong
PKT
PGV
Ta có:
TenPhong
Phòng khảo thí
Phòng giáo vụ
+ IDPhong => TenPhong
+ TenPhong => TenPhong
=>> Phụ thuộc hàm: ( IDPhong ) => { TenPhong }
=> IDPhong là Key của bảng PHÒNG.
9
Bao đóng: { IDPhong }+ => { IDPhong,TenPhong}
Lược đồ ở dạng chuẩn BCNF.
*NHÂN VIÊN
IDNV
1001
1002
1003
1004
1005
1006
1007
Ta có:
IDPhong
PKT
PKT
PKT
PKT
PGV
PGV
PGV
HoTenNV
Trần Minh Thu
Phạm Khánh Dư
Đỗ Việt Nam
Phạm Quốc Hùng
Trần Thị Ân
Trần Thị Lành
Nguyễn Thị Giang
GioiTinh
Nữ
Nam
Nam
Nam
Nữ
Nữ
Nữ
+ IDNV → HoTenNV , IDPhong , GioiTinh
+ IDPhong → IDPhong
+ HoTenNV → HoTenNV
+ GioiTinh → GioiTinh
=>> Phụ thuộc hàm : ( IDNV ) → { HoTenNV,IDPhong,GioiTinh }
=> IDNV là Key của bảng NHÂN VIÊN.
IDPhong là Foreign Key của bảng NHÂN VIÊN.
Bao đóng: {IDPhong}+ → {IDPhong,TenPhong}
=>> { IDNV}+ → { IDNV,HoTenNV,IDPhong,TenPhong,GioiTinh}
Lược đồ ở dạng chuẩn BCNF.
*MÔN HỌC
IDMon
TenMon
INT1313
INT1319
INT1154
INT1330
BSA1349
BSA1412
TEL1414
Môn Cơ sở dữ liệu
Môn Hệ điều hành
Môn Tin học cơ sở 2
Môn Kỹ thuật vi xử lí
Môn Quản trị học
Môn Tài chính tiền tệ
Môn An ninh mạng
SoTietL SoTietTH
T
40
5
20
3
30
4
40
0
30
2
30
0
40
5
IDSV
IDGV
N16DCCN059
N16DCCN122
N16DCCN130
N15DCDT020
N17DCQT098
N17DCQT001
N15DCVT025
0211018
0244193
0211012
0211044
0211062
0211065
0211079
10
viễn thông
Ta có:
+ IDMon → TenMon , SoTietLT , SoTietTH , IDSV , IDGV
+ TenMon → TenMon
+ SoTietLT → SoTietLT
+ SoTietTH → SoTietTH
+ IDSV → IDSV
+ IDGV → IDGV
=>> Phụ thuộc hàm:
( IDMon ) → { TenMon,SoTietLT,SoTietTH,IDSV,IDGV }
=> IDMon là Key của bảng MÔN HỌC.
IDSV,IDGV là Foreign Key của bảng MÔN HỌC.
Bao đóng: {IDSV}+ → {IDSV,IDLop,HoTenSV,GioiTinh,DiaChi}
{IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{IDGV}+ → {IDGV, HoTenGV,IDKhoa,GioiTinh,ChuyenMon}
{IDKhoa}+ → { IDKhoa,TenKhoa }
=>> {IDMon}+
→{IDMon,TenMon,SoTietLT,SoTietTH,IDSV,IDLop,TenLop,IDKhoa,
TenKhoa,NamNhapHoc,HoTenSV,GioiTinh,DiaChi,IDGV,HoTenGV,
GioiTinh,ChuyenMon}
Lược đồ ở dạng chuẩn BCNF.
*LỊCH THI
IDLichThi
N2010
N2110
N2210
N2310
N2410
N2510
N2610
IDMon
INT1313
INT1319
INT1154
INT1330
BSA1349
BSA1412
TEL1414
NgayThi
20/10/2018
21/10/2018
22/10/2018
23/10/2018
24/10/2018
25/10/2018
26/10/2018
SoLanThi
1
2
2
1
1
2
1
IDNV
1006
1007
1005
1006
1005
1006
1007
TimeThi
60’
45’
60’
45’
45’
60’
45’
11
Ta có:
+ IDLichThi → IDMon , NgayThi , SoLanThi , IDNV , TimeThi
+ IDMon → IDMon
+ NgayThi → NgayThi
+ SoLanThi → SoLanThi
+ IDNV → IDNV
+ TimeThi → TimeThi
=>> Phụ thuộc hàm:
( IDLichThi ) → { IDMon,NgayThi,SoLanThi,IDNV,TimeThi}
=> IDLichThi là Key của bảng LỊCH THI.
IDMon,IDNV là Foreign Key của bảng LỊCH THI.
Bao đóng:
{IDMon}+ → { IDMon,TenMon,SoTietLT,SoTietTH,IDSV,IDGV}
{IDNV}+ → {IDNV,IDPhong,HoTenNV,GioiTinh}
{IDSV}+ → {IDSV,IDLop,HoTenSV,GioiTinh,DiaChi}
{IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{IDGV}+ → {IDGV, HoTenGV,IDKhoa,GioiTinh,ChuyenMon}
{IDKhoa}+ → { IDKhoa,TenKhoa }
{IDPhong}+ → {IDPhong,TenPhong}
=>> {IDLichThi}+ → {IDLichThi, IDMon,
TenMon,SoTietLT,SoTietTH,IDSV,IDLop,TenLop,IDKhoa,TenKhoa,NamNhapH
oc,HoTenSV,GioiTinh,DiaChi,IDGV,HoTenGV,
GioiTinh,ChuyenMon,NgayThi,SoLanThi,IDNV,IDPhong,TenPhong,
HoTenNV,GioiTinh,TimeThi}
Lược đồ ở dạng chuẩn BCNF.
*KẾT QUẢ
IDKetQua
A1112
A1113
A1114
A1115
ĐapAn
1B,2C,3D,4A,5C,6B,7B,8A,9D,10C
1B,2C,3D,4C,5C,6B,7B,8B,9D,10A,11C,12A,13A,14D,15C
1D,2C,3D,4A,5A,6B,7B,8A,9D,10A
1B,2C,3D,4A,5C,6B,7B,8A,9D,10D
12
A1116
A1117
A1118
Ta có:
1A,2C,3D,4A,5C,6B,7B,8A,9D,10A,11C,12A,13A,14D,15C
1A,2C,3D,4A,5C,6B,7A,8A,9D,10A
1C,2C,3D,4A,5C,6B,7D,8A,9D,10B
+ IDKetQua → ĐapAn
+ ĐapAn → ĐapAn
=>> Phụ thuộc hàm: ( IDKetQua ) → { IDKetQua,ĐapAn}
=> IDKetQua là Key của bảng KẾT QUẢ.
Bao đóng: { IDKetQua }+ → { IDKetQua,ĐapAn}
Lược đồ ở dạng chuẩn BCNF.
*BỘ ĐỀ THI
IDBoĐeThi
BĐT1112
BĐT1113
BĐT1114
BĐT1115
BĐT1116
BĐT1117
BĐT1118
Ta có:
TenBoĐeThi
SoBoĐeThi
Bộ Cơ sở dữ liệu
1
Bộ Hệ điều hành
1
Bộ Tin học cơ sở 2
1
Bộ Kỹ thuật vi xử lí
1
Bộ Quản trị học
1
Bộ Tài chính tiền tệ
1
Bộ An ninh mạng viễn thông
1
IDNV
1001
1002
1003
1004
1002
1004
1001
IDGV
0211018
0244193
0211012
0211044
0211062
0211065
0211079
+ IDBoĐeThi → TenBoĐeThi , SoBoĐeThi , IDNV , IDGV
+ TenBoĐeThi → TenBoĐeThi
+ SoBoĐeThi → SoBoĐeThi
+ IDNV → IDNV
+ IDGV → IDGV
=>> Phụ thuộc hàm:
( IDBoĐeThi ) → {TenBoĐeThi,SoBoĐeThi,IDNV,IDGV}
=> IDBoĐeThi là Key của bảng BỘ ĐỀ THI.
IDNV,IDGV là Foreign Key của bảng BỘ ĐỀ THI.
Bao đóng:
{IDNV}+ → {IDNV,IDPhong,HoTenNV,GioiTinh}
{IDPhong}+ → {IDPhong,TenPhong}
13
{IDGV}+ → {IDGV,IDKhoa,HoTenGV,GioiTinh,ChuyenMon}
{IDKhoa}+ → {IDKhoa,TenKhoa}
=>> {IDBoĐeThi}+ → { IDBoĐeThi,TenBoĐeThi,
SoBoĐeThi,IDNV, IDPhong,TenPhong,HoTenNV,GioiTinh IDGV,
IDKhoa,TenKhoa,HoTenGV,GioiTinh,ChuyenMon,}
Lược đồ ở dạng chuẩn BCNF.
*CÂU HỎI
IDCauHoi
CH1112
CH1113
CH1114
CH1115
CH1116
CH1117
CH1118
SoCauHo
i
10
15
10
10
15
10
10
NoiDung
IDMon
IDGV
IDBoĐeThi
IDKQ
Chương I+II+V
Chương II+IV+V
Chương V+VI
Chương II+III+V
Chương II+V+VI
Chương I+III+VI
Chương I+IV+V
INT1313
INT1319
INT1154
INT1330
BSA1349
BSA1412
TEL1414
0211018
0244193
0211012
0211044
0211062
0211065
0211079
BĐT1112
BĐT1113
BĐT1114
BĐT1115
BĐT1116
BĐT1117
BĐT1118
A1112
A1113
A1114
A1115
A1116
A1117
A1118
Ta có: + IDCauHoi → SoCauHoi,NoiDung,IDMon , IDGV , IDBoĐeThi
+ SoCauHoi → SoCauHoi
+ NoiDung → NoiDung
+ IDMon → IDMon
+ IDGV → IDGV
+ IDBoĐeThi => IDBoĐeThi
=>> Phụ thuộc hàm:
( IDCauHoi ) → {SoCauHoi, NoiDung,IDMon,IDGV, IDBoĐeThi}
=> IDCauHoi là Key của bảng CÂU HỎI.
IDMon,IDGV,IDBoĐeThi là Foreign Key của bảng CÂU HỎI.
Bao đóng:
{IDMon}+ → {IDMon,TenMon,SoTietLT,SoTietTH,IDSV,IDGV}
{IDSV}+ → {IDSV,IDLop,HoTenSV,GioiTinh,DiaChi}
{IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{IDBoĐeThi}+ → {IDBoĐeThi, SoBoĐeThi,SoBoĐeThi,IDNV,IDGV}
14
{IDGV}+ → {IDGV,IDKhoa,HoTenGV,GioiTinh,ChuyenMon}
{IDKhoa}+ → { IDKhoa,TenKhoa }
{IDNV}+ → {IDNV,IDPhong,HoTenNV,GioiTinh}
{IDPhong}+ → {IDPhong,TenPhong}
=>> {IDCauHoi}+ → {IDCauHoi,SoCauHoi,NoiDung,IDMon,
TenMon,SoTietLT,SoTietTH,IDSV,IDLop,TenLop,IDKhoa,TenKhoa,NamNhapHoc,
HoTenSV,GioiTinh,DiaChi,IDGV,HoTenGV,GioiTinh,
ChuyenMon,IDBoĐeThi,TenBoĐeThi,SoBoĐeThi,IDNV,IDPhong,
TenPhong,HoTenNV,GioiTinh}
Lược đồ ở dạng chuẩn BCNF.
*ĐĂNG KÍ MÔN
IDMon
INT1313
INT1319
INT1154
INT1330
BSA1349
BSA1412
TEL1414
IDSV
N16DCCN059
N16DCCN122
N16DCCN130
N15DCDT020
N17DCQT098
N17DCQT001
N15DCVT025
=>> IDMon,IDSV là SuperKey của bảng ĐĂNG KÍ MÔN.
Bao đóng:
{IDMon}+ → {IDMon,TenMon,SoTietLT,SoTietTH,IDSV,IDGV}
{IDSV}+ → {IDSV,IDLop,HoTenSV,GioiTinh,DiaChi}
{IDGV}+ → {IDGV,IDKhoa,HoTenGV,GioiTinh,ChuyenMon}
{IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{ IDKhoa}+ → { IDKhoa,TenKhoa }
=>> {IDMon,IDSV}+
→ { IDMon,TenMon,SoTietLT,SoTietTH,IDSV,
IDLop,TenLop,NamNhapHoc,HoTenSV,GioiTinh,DiaChi,IDGV,IDKhoa,
TenKhoa,HoTenGV,GioiTinh,ChuyenMon }
Lược đồ ở dạng chuẩn BCNF.
15
*ĐĂNG KÍ LỊCH THI
IDMon
INT1313
INT1319
INT1154
INT1330
BSA1349
BSA1412
TEL1414
IDLichThi
N2010
N2110
N2210
N2310
N2410
N2510
N2610
=>> IDMon,IDLichThi là SuperKey của bảng ĐĂNG KÍ LỊCH THI.
Bao đóng:
{IDLichThi}+
→ {IDLichThi,IDMon,NgayThi,SoLanThi,IDNV,TimeThi}
{IDMon}+ → {IDMon,TenMon,SoTietLT,SoTietTH,IDSV,IDGV}
{IDSV}+ → {IDSV,IDLop,HoTenSV,GioiTinh,DiaChi}
{IDGV}+ → {IDGV,IDKhoa,HoTenGV,GioiTinh,ChuyenMon}
{IDLop}+ → {IDLop,TenLop,IDKhoa,NamNhapHoc}
{ IDKhoa}+ → { IDKhoa,TenKhoa }
{IDNV}+ → {IDNV,IDPhong,HoTenNV,GioiTinh}
{IDPhong}+ → {IDPhong,TenPhong}
=>> {IDMon,IDLichThi}+
→ { IDLichThi,IDMon,TenMon,SoTietLT,
SoTietTH,IDSV,IDLop,TenLop,NamNhapHoc,HoTenSV,GioiTinh,DiaChi,IDGV,ID
Khoa,TenKhoa,HoTenGV,GioiTinh,ChuyenMon,NgayThi,
SoLanThi,IDNV,IDPhong,TenPhong,HoTenNV,GioiTinh,TimeThi}
=>> IDMon,IDLichThi là SuperKey của bảng ĐĂNG KÍ LỊCH THI.
Lược đồ ở dạng chuẩn BCNF.
5.Viết SQL tạo CSDL trong SQL SeVer
--Tạo table KHOA
create table KHOA (
IDKhoa nchar(20) primary key (IDKhoa)
,TenKhoa nvarchar(40)
16
)
--Tạo table KẾT QUẢ
create table KETQUA (
IDKetQua nchar(20) primary key (IDKetQua)
,ĐapAn nvarchar(40)
)
--Tạo table PHÒNG
create table PHONG (
IDPhong nchar(20) primary key (IDPhong)
,TenPhong nvarchar(40)
)
--Tạo table LỚP
create table LOP (
IDLop nchar(20) primary key (IDLop)
,TenLop nvarchar(40)
,NamNhapHoc int
,IDKhoa nchar(20)
,foreign key (IDKhoa) references KHOA (IDKhoa)
)
--Tạo table GIẢNG VIÊN
create table GIANGVIEN (
IDGiangVien nvarchar(20) primary key (IDGiangVien)
,HoTenGV nvarchar(40)
,ChuyenMon nvarchar(30)
,GioiTinh nchar(3)
,IDKhoa nchar(20)
,foreign key (IDKhoa) references KHOA (IDKhoa)
)
--Tạo table SINH VIÊN
create table SINHVIEN (
IDSinhVien nchar(20) primary key (IDSinhVien)
,HoTenSV nvarchar(40)
,GioiTinh nchar(3)
,DiaChi nvarchar(50)
,IDLop nchar(20)
,foreign key (IDLop) references LOP (IDLop)
)
--Tạo table NHÂN VIÊN
create table NHANVIEN (
17
IDNhanVien nchar(20) primary key (IDNhanVien)
,HoTenNV nvarchar(40)
,GioiTinh nchar(3)
,IDPhong nchar(20)
,foreign key (IDPhong) references PHONG (IDPhong)
)
--Tạo table BỘ ĐỀ THI
create table BODETHI (
IDBoDeThi nchar(20) primary key (IDBoDeThi)
,TenBoDeThi nvarchar(40)
,SoBoDeThi int
,IDNhanVien nchar(20)
,IDGiangVien nvarchar(20)
,foreign key (IDNhanVien) references NHANVIEN (IDNhanVien)
,foreign key (IDGiangVien) references GIANGVIEN (IDGiangVien)
)
--Tạo table MÔN
create table MON (
IDMon nchar(20) primary key (IDMon)
,TenMonHoc nvarchar(40)
,SoTietLyThuyet int
,SoTietThucHanh int
,IDSinhVien nchar(20)
,IDGiangVien nvarchar(20)
,foreign key (IDSinhVien) references SINHVIEN (IDSinhVien)
,foreign key (IDGiangVien) references GIANGVIEN (IDGiangVien)
)
--Tạo table CÂU HỎI
create table CAUHOI (
IDCauHoi nchar(20) primary key (IDCauHoi)
,SoCauHoi int
,NoiDung text
,IDBoDeThi nchar(20)
,IDGiangVien nvarchar(20)
,IDMon nchar(20)
,IDKetQua nchar(20)
,foreign key (IDBoDeThi) references BODETHI (IDBoDeThi)
,foreign key (IDGiangVien) references GIANGVIEN (IDGiangVien)
,foreign key (IDMon) references MON (IDMon)
,foreign key (IDKetQua) references KETQUA (IDKetQua)
)
18
--Tạo table LỊCH THI
create table LICHTHI (
IDLichThi nchar(20) primary key (IDLichThi)
,SoLanThi int
,NgayThi nvarchar(20)
,TimeThi nvarchar(20)
,IDNhanVien nchar(20)
,IDMon nchar(20)
,foreign key (IDNhanVien) references NHANVIEN (IDNhanVien)
,foreign key (IDMon) references MON (IDMon)
)
--Tạo table ĐĂNG KÍ MÔN
create table DANGKIMON (
IDMon nchar(20) ,
IDSinhVien nchar(20),
foreign key (IDSinhVien) references SINHVIEN (IDSinhVien),
foreign key (IDMon) references MON (IDMon),
primary key (IDMon,IDSinhVien)
)
--Tạo table ĐĂNG LỊCH THI
create table DANGKILICHTHI (
IDMon nchar(20),
IDLichThi nchar(20),
foreign key (IDLichThi) references LICHTHI (IDLichThi),
foreign key (IDMon) references MON (IDMon),
primary key (IDMon,IDLichThi)
)
*Lược đồ Diagram cơ sở dữ liệu.
19
6.Nhập dữ liệu: (Dùng lệnh INSERT)
use ThiTracNghiem
--Nhập liệu cho BẢNG KHOA
insert into KHOA
values ('CNTT','Cong Nghe Thong Tin'),
('DT','Dien Tu'),
('QTKD','Quan Tri Kinh Doanh'),
('VT','Vien Thong');
--Kiểm tra
select * from KHOA
=>> Kết quả:
20
--Nhập liệu cho
BẢNG LỚP
insert into LOP
values
('D16CQCN01','Cong
Nghe Thong Tin 1 Khoa 2016',2016,'CNTT'),
('D16CQCN02','Cong Nghe Thong Tin 2 Khoa 2016',2016,'CNTT'),
('D16CQCN03','Cong Nghe Thong Tin 3 Khoa 2016',2016,'CNTT'),
('D15CQDT01','Dien Tu 1 Khoa 2015',2015,'DT'),
('D17CQQT01','Quan Tri Kinh Doanh 1 Khoa 2017',2017,'QTKD'),
('D17CQQT02','Quan Tri Kinh Doanh 2 Khoa 2017',2017,'QTKD'),
('D15CQVT01','Vien Thong 1 Khoa 2015',2015,'VT');
--Kiểm tra
select * from LOP
=>> Kết quả:
--Nhập liệu cho BẢNG Giảng Viên
insert into GIANGVIEN
values ('0211018','Ho Manh Tai','Co So Du Lieu','Nam','CNTT'),
('0244193','Huynh Thanh Tam','He Dieu Hanh','Nam','CNTT'),
('0211012','Truong Dinh Huy','Tin hoc co so 2','Nam','CNTT'),
('0211044','Nguyen Trong Huan','Ky thuat vi xu li','Nam','DT'),
('0211062','Ho Thi Sang','Quan tri hoc','Nu','QTKD'),
('0211065','Nguyen Ngoc Thanh','Tai chinh tien te','Nu','QTKD'),
('0211079','Le Duy Khanh','An ninh mang Vien thong','Nam','VT');
--Kiểm tra
select * from GIANGVIEN
=>> Kết quả:
21
-liệu
Nhập
cho
BẢNG
Sinh Viên
insert into SINHVIEN
values ( 'N16DCCN059','Bui Xuan Toan','Nam','Ha Noi','D16CQCN01' ),
( 'N16DCCN122','Nguyen Thi Lan Phuong','Nu','Quang Tri','D16CQCN02' ),
( 'N16DCCN130','Pham Ly Quynh','Nu','TP.Ho Chi Minh','D16CQCN03' ),
( 'N15DCDT020','To Quang Huy','Nam','Hue','D15CQDT01' ),
( 'N17DCQT098','Cao Thao My','Nu','Nha Trang','D17CQQT01' ),
( 'N17DCQT001','Mai Son','Nam','Da Lat','D17CQQT02'),
( 'N15DCVT025','Nguyen Ngoc Luan','Nam','Da Nang','D15CQVT01' );
--Kiểm tra
select * from SINHVIEN
=>> Kết quả:
--Nhập liệu cho BẢNG PHONG
insert into PHONG
values ('PKT','Phong Khao Thi'),
('PGV','Phong Giao Vu');
--Kiểm tra
select * from PHONG
=>> Kết quả:
22
--Nhập liệu cho BẢNG NHÂN VIÊN
insert into NHANVIEN
values (1001,'Tran Minh Thu','Nu','PKT'),
(1002,'Pham Khanh Du','Nam','PKT'),
(1003,'Do Viet Nam','Nam','PKT'),
(1004,'Pham Quoc Hung','Nam','PKT'),
(1005,'Tran Thi An','Nu','PGV'),
(1006,'Tran Thi Lanh','Nu','PGV'),
(1007,'Nguyen Thi Giang','Nu','PGV');
--Kiểm tra
select * from NHANVIEN
=>> Kết quả:
--Nhập liệu cho BẢNG MÔN HỌC
insert into MON
values ('INT1313','Mon Co So Du Lieu',40,5,'N16DCCN059','0211018'),
('INT1319','Mon He Dieu Hanh',20,3,'N16DCCN122','0244193'),
('INT1154','Mon Tin hoc co so 2',30,4,'N16DCCN130','0211012'),
('INT1330','Mon Ky Thuat vi xu li',40,0,'N15DCDT020','0211044'),
('BSA1349','Mon Quan Tri hoc',30,2,'N17DCQT098','0211062'),
('BSA1412','Mon Tai chinh tien te',30,0,'N17DCQT001','0211065'),
('TEL1414','Mon An ninh mang Vien thong',40,5,'N15DCVT025','0211079');
--Kiểm tra
23
select * from MON
=>> Kết quả:
--Nhập liệu cho BẢNG LỊCH THI
insert into LICHTHI
values
('N2010',1,'20/10/2018',60,1001,'INT1313'),
('N2110',2,'21/10/2018',45,1002,'INT1319'),
('N2210',2,'22/10/2018',60,1003,'INT1154'),
('N2310',1,'23/10/2018',45,1004,'INT1330'),
('N2410',1,'24/10/2018',45,1005,'BSA1349'),
('N2510',2,'25/10/2018',60,1006,'BSA1412'),
('N2610',1,'26/10/2018',45,1007,'TEL1414');
--Kiểm tra
select * from LICHTHI
=>> Kết quả:
--Nhập liệu cho BẢNG KẾT QUẢ
insert into KETQUA
values ('A1112','1B2C3D4A5C6B7B8A9D10C'),
('A1113','1B2C3D4C5C6B7B8B9D10A11C12A13A14D15C'),
('A1114','1D2C3D4A5A6B7B8A9D10A'),
('A1115','1B2C3D4A5C6B7B8A9D10D'),
('A1116','1A2C3D4A5C6B7B8A9D1011C12A13A14D15C'),
('A1117','1A2C3D4A5C6B7A8A9D10A'),
24