Tải bản đầy đủ (.docx) (51 trang)

BÁO CÁO ĐỀ TÀI MÔN CƠ SỞ DỮ LIỆU_THI TRẮC NGHIỆM

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 (1.17 MB, 51 trang )

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


×