24/05/2018, 18:24

Phụ lục Giao trinh He quan tri CSDL-SQL

Trong toàn bộ nội dung giáo trình, hầu hết các ví dụ được dựa trên cơ sở dữ liệu mẫu được mô tả dưới đây. Cơ sở dữ liệu này được cài đặt trong hệ quản trị cơ sở dữ liệu SQL Server 2000 và được sử dụng để quản lý sinh viên và điểm thi ...

Trong toàn bộ nội dung giáo trình, hầu hết các ví dụ được dựa trên cơ sở dữ liệu mẫu được mô tả dưới đây. Cơ sở dữ liệu này được cài đặt trong hệ quản trị cơ sở

dữ liệu SQL Server 2000 và được sử dụng để quản lý sinh viên và điểm thi của sinh viên trong một trường đại học. Để tiện cho việc tra cứu và kiểm chứng đối với các ví

dụ, trong phần đầu của phụ lục chúng tôi giới thiệu sơ qua về cơ sở dữ liệu này.

Cơ sở dữ liệu bao gồm các bảng sau đây:

• Bảng KHOA lưu trữ dữ liệu về các khoa hiện có ở trong trường

• Bảng LOP bao gồm dữ liệu về các lớp trong trường

• Bảng SINHVIEN được sử dụng để lưu trữ dữ liệu về các sinh viên trong trường.

• Bảng MONHOC bao gồm các môn học (học phần) được giảng dạy trong trường

• Bảng DIEMTHI với dữ liệu cho biết điểm thi kết thúc môn học của các sinh viên

Mối quan hệ giữa các bảng được thể hiện qua sơ đồ dưới đây

Các bảng trong cơ sở dữ liệu, mối quan hệ giữa chúng và một số ràng buộc được cài đặt như sau:

CREATE TABLE khoa
(
makhoa NVARCHAR(5) NOT NULL
CONSTRAINT pk_khoa PRIMARY KEY,
tenkhoa NVARCHAR(50) NOT NULL ,
dienthoai NVARCHAR(15)   NULL
)
CREATE TABLE lop
(
malop NVARCHAR(10) NOT NULL 
    
CONSTRAINT pk_lop  PRIMARY KEY,
tenlop NVARCHAR(30) NULL   , 
khoa SMALLINT NULL   , 
hedaotao NVARCHAR(25) NULL   , 
namnhaphocINT NULL , 
siso  INT           NULL , 
makhoa NVARCHAR(5) NULL
)
CREATE TABLE sinhvien
(
masv NVARCHAR(10) NOT NULL
              CONSTRAINT pk_sinhvien PRIMARY KEY,
hodem NVARCHAR(25) NOT NULL ,
ten NVARCHAR(10) NOT NULL ,
ngaysinh SMALLDATETIME NULL ,
gioitinh      BIT           NULL , 
noisinh NVARCHAR(100) NULL ,
malop NVARCHAR(10) NULL
)
CREATE TABLE  monhoc
(
mamonhoc NVARCHAR(10) NOT NULL
               CONSTRAINT pk_monhoc PRIMARY KEY, 
tenmonhoc NVARCHAR(50) NOT NULL ,
sodvht SMALLINT NOT NULL
)
CREATE TABLE diemthi
(
mamonhoc NVARCHAR(10) NOT NULL ,
masv
NVARCHAR(10) NOT NULL , 
diemlan1 NUMERIC(5, 2) NULL , 
diemlan2 NUMERIC(5, 2) NULL,
CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv)
)
ALTER TABLE  lop
ADD
CONSTRAINT fk_lop_khoa 
FOREIGN KEY(makhoa) 
REFERENCES khoa(makhoa) 
ON DELETE CASCADE
ON UPDATE CASCADE 
ALTER TABLE sinhvien 
ADD
CONSTRAINT fk_sinhvien_lop 
FOREIGN KEY (malop) 
REFERENCES lop(malop)
ON DELETE CASCADE
ON UPDATE CASCADE
ALTER TABLE diemthi
ADD
CONSTRAINT fk_diemthi_monhoc 
FOREIGN KEY (mamonhoc) 
REFERENCES monhoc(mamonhoc) 
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_diemthi_sinhvien
FOREIGN KEY (masv)
REFERENCES sinhvien(masv) 
ON DELETE CASCADE
ON UPDATE CASCADE
ALTER TABLE monhoc
ADD
CONSTRAINT chk_monhoc_sodht
CHECK(sodvht>0 and sodvht<=5)
ALTER TABLE diemthi
ADD
CONSTRAINT chk_diemthi_diemlan1
CHECK (diemlan1>=0 and diemlan1<=10),
CONSTRAINT chk_diemthi_diemlan2
CHECK (diemlan2>=0 and diemlan2<=10)
0