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

Cơ sở dữ liệu mẫu sử dụng trong giáo trình

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)