Tải bản đầy đủ (.pdf) (44 trang)

BÀI TẬP THỰC HÀNH CƠ SỞ DỮ LIỆU pot

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 (851.67 KB, 44 trang )

Bài tập thực hành cơ sở dữ liệu:

1
BÀI TẬP THỰC HÀNH CƠ SỞ DỮ LIỆU
Buổi 1:
Khởi động SQL server 2005
Start\Programs File\MicroSoft SQL Server 2005\SQL Server Management Studio
Xuất hiện hộp thoại sau


- Khai báo thông tin kết nối:
 Server type: <chọn loại Server cần kết nối>
 Server name: <chọn tên Server cần kết nối>
Bài tập thực hành cơ sở dữ liệu:

2
 Authentication: Chọn chế độ xác thực là Windows authentication hoặc SQL
Server authentication. Nếu chọn chế độ là SQL Server authentication thì phải cho
biết Login name (mặc định là sa) và Password.
- Chọn Connect. Nếu kết nối thành công thì cửa sổ Microsoft SQL Server Management
Studio xuất hiện

Bài tập thực hành cơ sở dữ liệu:

3
- Nhấn nút New Query

Khi cài SQL Server xong, hệ thống sẽ tự động tạo một vài CSDL mặc định:
 Master
 Model
 Tempdb


 Msdb
Sinh viên khảo sát một số thông tin trong các cơ sở dữ liệu có sẵn ở trên.
Xem các CSDL bằng câu lệnh: SP_helpdb
 Hai tập tin vật lý để lưu trữ dữ liệu:
o Lưu trữ dữ liệu (data file)
o Lưu trữ các giao tác mà người dùng đã thực hiện (transaction log file)

Các tập tin CSDL trong SQL Server được chia thành 3 loại tập tin.
 Tập tin dữ liệu chính (Primary Data File). Phần mở rộng của tập tin này là *.mdf
 Tập tin thứ yếu (Secondary Data Files) (không bắt buộc phải có khi tạo mới
CSDL). Phần mở rộng của tập tin này là *.ndf
Bài tập thực hành cơ sở dữ liệu:

4
 Tập tin lưu trữ (Log Files). Phần mở rộng là *.ldf
Các thuộc tính CSDL trong SQL Server
 Tên CSDL (Database name): dài tối đa 128 ký tự, duy nhất trong SQL Server.
 Vị trí tập tin (File location): Thông thường tập tin này sẽ được lưu tại
C:\Program Files\Microsoft SQL Server\MSSQL\ Data
 Tên tập tin (File name): là tên luận lý của mỗi loại tập tin dữ liệu tương ứng mà
hệ thống SQL Server dùng để quản lý bên trong.
 Kích thước ban đầu (Initial size): là kích thước khởi tạo của tậ
p tin dữ liệu khi
CSDL mới được tạo lập.
 Tăng kích thước tập tin dữ liệu (File growth)
 Kích thước tối đa tập tin dữ liệu (Maximun file size)
Ví dụ: Tạo CSDL có tên QLSV với kích thước ban đầu là 50 MB, tự động tăng kích
thước lên 10% khi dữ liệu đầy, kích thước tăng trưởng tập tin tối đa không quá 200MB.
Và tập tin lưu vết với kích thước ban đầu lúc khởi tạo là 10MB, tự
động tăng kích thước

tập tin lên 5 MB khi dữ liệu bị đầy, kích thước tăng trưởng tập tin không giới hạn.
 Cách 1: Tạo trong Query Analyzer (bằng câu lệnh)
CREATE DATABASE QLSV
ON PRIMARY (NAME = QLSV,
FILENAME= ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\ QLSV.mdf’,
SIZE=50MB, MAXSIZE = 200MB,
FILEGROWTH = 10%, Đường dẫn có thể thay đổi tùy theo từng máy
LOG ON(NAME = QLSV_Log,
FILENAME= ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\ QLSV_Log.ldf',
SIZE=10MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB) Đường dẫn có thể
thay đổi tùy theo từng máy
 Cách 2: Tạo trong Enterprise Manager (công cụ)
Right_Click vào Database/New Database
Bài tập thực hành cơ sở dữ liệu:

5

Nhập tên CSDL vào

Sử dụng CSDL trên:
USE QLSV
Tạo một bảng đơn giản trong CSDL QLSV
Tên CSDL
Click
Bài tập thực hành cơ sở dữ liệu:

6
CREATE TABLE LOP
( Malop char(6) NOT NULL,
TenLop varchar(20) NOT NULL,

SiSo smallInt NOT NULL
)
Tạo cấu trúc bảng có giá trị mặc định
CREATE TABLE LOP
( Malop char(6) NOT NULL,
TenLop varchar(20) NOT NULL,
SiSo smallInt Default 0
)
Tạo cấu trúc bảng có giá trị định danh
CREATE TABLE LOP
( Malop int Identity(1000,5),
TenLop varchar(20) NOT NULL,
SiSo smallInt Default 0
)
Sinh viên quan sát và cho biết ý nghĩa của (1000,5) trong cột MaLop.
Tạo bảng bằng Enterprise Manager
 Right_click Tables/ New Table…

Bài tập thực hành cơ sở dữ liệu:

7
Tạo các cột cho bảng















Đặt tên bảng

Thay đổi cấu trúc bảng
Thêm cột vào bảng
Ví dụ
: Thêm cột Nien_khoa có kiểu dữ liệu int vào bảng LOP
ALTER TABLE LOP
ADD Nien_khoa int
Sửa đổi kiểu dữ liệu của cột
Ví dụ:
Sửa kiểu dữ liệu của cột Nien_khoa thành kiểu char gồm 9 kí tự.
Nhập tên thuộc tính
Kiểu dữ liệu
Bài tập thực hành cơ sở dữ liệu:

8
ALTER TABLE LOP
ALTER COLUMN Nien_khoa char(9)
Thay đổi tên cột
Ví dụ:
Thay đổi tên cột Nien_khoa thành khoa_hoc trong bảng LOP
EXEC sp_rename ‘LOP.nien_khoa’, ‘khoa_hoc’, ‘COLUMN’
Hủy bỏ cột hiện có bên trong bảng
Ví dụ:

Xóa cột Nien_Khoa trong bảng LOP
ALTER TABLE LOP
DROP COLUMN Nien_khoa
Thay đổi tên bảng
Ví dụ:
Thay đổi tên bảng LOP thành LOPHOC
EXEC sp_rename ‘LOP’, ‘LOPHOC’
Sinh viên có thể tạo một cơ sở dữ liệu khác để thực tập.

Bài tập thực hành cơ sở dữ liệu:

9
Buổi 2:
Tạo CSDL QLDACT (Quản lý đề án công ty)
Create database QLDACT
Go
Use QLDACT
Go
Và tạo các bảng sau cho CSDL trên (chưa tạo RBTV):
CREATE TABLE PB PHONG BAN
( Maphg INT NOT NULL,
Tenphg VARCHAR(10),
ma_nql CHAR(9),
ng_nhanchuc DATETIME
);
go
CREATE TABLE NV - - NHANVIEN
( Manv CHAR(9) not null,
Honv VARCHAR(15),
Tenlot CHAR(15),

Tennv VARCHAR(15),
ngsinh DATETIME,
dchi VARCHAR(30),
phai CHAR(4),
ma_nql CHAR(9),
luong int ,
phg INT
);
go

Bài tập thực hành cơ sở dữ liệu:

10
Create table DA DE AN
( Mada int not null,
Tenda varchar(15) not null,
Diadiem_da varchar(15),
phong int
);
go
Create table PC PHAN CONG
( Ma_nvien char(9) not null,
Mada int not null,
Thoigian decimal(3,1)
);
go
Create table TN - - THAN NHAN
( Ma_nvien char(9) not null,
Tentn char(10) not null,
Phai char(3),

Ngsinh datetime,
Quanhe
varchar(8)
);
Go
create table DD_P DIA DIEM PHONG
( Maphg int not null,
Diadiem varchar(10) not null,
);
Mở bảng NV thêm ràng buộc khóa ngoại.
alter table NV
add constraint NV_MaNV_PK primary key (MaNV)
Bài tập thực hành cơ sở dữ liệu:

11
Mở bảng PB thêm ràng buộc khóa chính, khóa ngoại vào.
alter table PB
add constraint pb_Maphg_pk primary key (Maphg),
constraint ma_nql_fk foreign key (ma_nql) references Nv(manv)
Xóa các bảng đã tạo
drop table NV
drop table PB
Xóa luôn cơ sở dữ liệu vừa tạo
drop database QLDACT
A. Các quan hệ
NHANVIEN (HONV, TENLOT, TENNV, MANV, NGSINH, DIACHI, PHAI, LUONG, MA_NQL,
PHG)
Mỗi nhân viên đều được ghi nhận lại Họ, Tên lót và Tên, có một mã duy nhất, có ngày sinh, địa
chỉ, phái (giới tính), lương sẽ được phụ trách trực tiếp bởi một người quản lý (cũng là một nhân
viên) và thuộc về một phòng ban duy nhất.

THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)
Để quan tâm nhiều hơn đến các nhân viên, công ty sẽ ghi nhận một số thông tin về các thân
nhân của các nhân viên. Tên, ngày tháng năm sinh và mối quan hệ của các thân nhân sẽ được
ghi lại.
PHONGBAN (TENPHG, MAPHG, TRPHG, NG_NHANCHUC)
Mỗi phòng ban đều có mã duy nhất, có tên phòng, do một nhân viên nào đó phụ trách, và ghi
nhận cả ngày trưởng phòng đó bắt đầu phụ trách phòng.
DIADIEM_PHG (MAPHG, DD_P)
Mỗi phòng ban có thể có một hay nhiều địa điểm.
DEAN (TENDA, MADA, DD_DA, PHONG)
Công ty sẽ thực hiện các đề án khác nhau. Do đó mỗi đề án đều ghi lại mã và tên đề án. Địa
điểm thực hiện đề án cũng như phòng ban chủ trì đề án đều được ghi nhận.
Bài tập thực hành cơ sở dữ liệu:

12
PHANCONG (MA_NVIEN, SODA, THOIGIAN)
Mỗi nhân viên có thể tham gia vào nhiều đề án khác nhau, và mỗi đề án có thể được nhiều nhân
viên tham gia. Khi nhân viên tham gia đề án, thì mã nhân viên đó, mã đề án đó cũng như thời
gian làm việc của nhân viên cho đồ án trong một tuần sẽ được ghi lại.
B. Mô tả chi tiết:
PHONGBAN(MAPHG, TENPHG, TRPHG, NGNC)
STT Thuộc tính Kiểu dữliệu Diễn giải
1 MAPHG Số nguyên Mã phòng ban
2 TENPHG Chuỗi (100) Tên phòng ban
3 TRPHG chuỗi (9) Mã nhân viên trưởng phòng
4 NG_NHANCHUC Ngày (mm/dd/yyyy) Ngày nhận chức

NHANVIEN (HONV, TENLOT, TENNV, MANV, NGSINH, DIACHI, PHAI, LUONG, MA_NQL,
PHG)
STT Thuộc tính Kiểu dữ liệu Diễn giải

1 MANV Chuỗi(9) Mã khoa
2 HONV Chuỗi (15) Tên sinh viên
3 TENLOT Chuỗi (15) Năm học hiện tại
4 TENNV Chuỗi (15) Mã khoa
5 NGSINH Ngày (mm/dd/yyyy) Ngày sinh
6 PHAI Chuỗi(4) Phái: Nam, Nữ
7 DCHI Chuỗi (50) Địa chỉ của nhân viên
8 MA_NQL Chuỗi (9) Mã người quản lý
9 PHG Số nguyên Mã phòng ban
10 LUONG Số thực Mức lương

Bài tập thực hành cơ sở dữ liệu:

13
DEAN(MADA, TENDA, DDIEM_DA, PHONG)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MADA Số nguyên Mã đề án
2 TENDA Chuỗi (50) Tên đề án
3 DD_DA chuỗi (50) Địa điểm diễn ra đề án
4 PHONG Số nguyên Mã phòng quản lý đề án

PHANCONG(MA_NVIEN, SODA, THOIGIAN)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MA_NVIEN Chuỗi (9) Mã nhân viên
2 SODA Số nguyên Mã đề án
3 THOIGIAN Số thực Thời gian làm việc trong 1 đề án của nhân viên

DIADIEM_PHG(MAPHG, DIADIEM)
STT Thuộc tính Kiểu dữliệu Diễn giải
1 MAPHG Số nguyên Mã phòng ban

2 DD_P Chuỗi (30) Địa điểm của phòng ban

THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)
STT Thuộc tính Kiểu dữliệu Diễn giải
1 MA_NVIEN Chuỗi (9) Mã nhân viên
2 TENTN Chuỗi (30) Tên thân nhân
3 PHAI Chuỗi (4) Phái: Nam, Nữ
4 NGSINH Ngày (mm/dd/yyyy) Ngày sinh
5 QUANHE Chuỗi (10) Mối quan hệ của thân nhân với nhân viên



Bài tập thực hành cơ sở dữ liệu:

14
C. Sơ đồ quan hệ của lược đồ


Bài tập thực hành cơ sở dữ liệu:

15
D. Thể hiện của lược đồ quan hệ
NHANVIEN
HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG
Nguyen Bao Hung 123456789 09/01/1965 73 Phan Dang Luu,
Phu Nhuan, TpHCM
Nam 30000 333445555 5
Phan Van Nghia 333445555 08/12/1955 63 Tran Huy Lieu,
Phu Nhuan, TpHCM
Nam 40000 888665555 5

Au Thi Vuong 999887777 19/01/1968 32 Cao Ba Nha, Q1,
TpHCM
Nu 25000 987654321 4
Du Thi Hau 987654321 20/06/1941 29 Bach Dang, Tan
Binh, TpHCM
Nu 43000 888665555 4
Tran Van Nam 666884444 15/09/1962 97 Dien Bien Phu,
Binh Thanh, TpHCM
Nam 38000 333445555 5
Hoang Kim Yen 453453453 31/07/1972 56 Thich Quang Duc,
Phu Nhuan, TpHCM
Nu 25000 333445555 5
Nguyen Van Giap 987987987 29/03/1969 98 Huynh Van Banh,
Phu Nhuan, TpHCM
Nam 25000 987654321 4
Le Van Bo 888665555 10/11/1937 45 Ho Van Hue, Phu
Nhuan, TpHCM
Nam 55000 null 1

PHONGBAN TENPHG MAPHG TRPHG NG_NHANCHUC DIADIEM_PHG MAPHG DIADIEM
Nghien cuu
5
333445555 22/06/1988
1
Phu Nhuan
Hanh chinh 4 987654321 01/01/1995 4 Go Vap
Giam doc 1 888665555 19/06/1981
5
Tan Binh
5Phu Nhuan

5 Thu Duc
THANNHAN DEAN
MA_NVIEN TENTN PHAI NGSINH QUANHE TENDA MADA DDIEM_DA PHONG
333445555
Anh
Nu
05/04/1986 Con gai San pham X
1
Tan Binh 5
333445555 The
Nam
25/10/1983 Con trai San pham Y 2 Thu Duc 5
333445555 Loi
Nu
03/05/1958 Vo San pham Z 3 Phu Nhuan 5
987654321 An
Nam
28/02/1942 Chong Tin hoc hoa 10 Go Vap 4
123456789 Minh
Nam
04/01/1988 Con trai Tai to chuc 20 Phu Nhuan 1
123456789 Anh
Nu
30/12/1988 Con gai Phuc loi 30 Go Vap 4
123456789 Yen
Nu
05/05/1967 Vo
Bài tập thực hành cơ sở dữ liệu:

16


PHANCONG
MA_NVIEN SODA THOIGIAN MA_NVIEN SODA THOIGIAN MA_NVIEN SODA THOIGIAN
123456789
1
32.5 333445555 2 10.0 999887777 10 10.0
123456789 2 7.5 333445555 3 10.0 987987987 10 35.0
666884444 3 40.0 333445555 10 10.0 987987987 30 5.0
453453453 1 20.0 333445555 20 10.0 987654321 30 20.0
453453453 2 20.0

999887777 30 30.0

987654321 20 15.0
888665555 20 null

Bài tập thực hành cơ sở dữ liệu:

17
Tạo lại CSQL QLDACT và tạo các bảng bao gồm tất cả các ràng buộc toàn vẹn (khóa
chính, khóa ngoại, check, default, unique,…), mỗi ràng buộc đều có đặt tên cho nó.
GVHD thực hành chỉ cho sinh viên cách tạo khóa chính, khóa ngoại bằng Enterprise
Manager.
create database QLDACT
go
use QLDACT
go
CREATE TABLE PB
( maphg INT constraint PB_Maphg_PK primary key,
tenphg VARCHAR(10) constraint PB_Tenphg_UQ UNIQUE,

ma_nql CHAR(9),
ng_nhanchuc DATETIME default (getdate())
);
go
CREATE TABLE NV
( Manv CHAR(9) constraint NV_MaNV_PK
primary key,
Honv VARCHAR(15) NOT NULL,
Tenlot CHAR(15),
Tennv VARCHAR(15) NOT NULL,
Ngsinh DATETIME,
Dchi VARCHAR(30),
Phai CHAR(4) constraint NV_Phai_CK CHECK (phai IN ('Nam', 'Nu')),
ma_nql CHAR(9) constraint NV_Ma_nql_Fk foreign key (ma_nql)
references NV(Manv),
Luong int ,
Phg INT constraint NV_phg_Fk foreign key (phg) references PB(Maphg)
);
go
Bài tập thực hành cơ sở dữ liệu:

18
Bài tập thực hành cơ sở dữ liệu:

19
Create table DA
( Mada int constraint DA_MaNV_PK primary key,
Tenda varchar(15) not null,
Diadiem_da varchar(15),
Phong int constraint DA_phong_Fk foreign key (phong) references PB(Maphg)

);
go
Create table PC
( Ma_nv char(9) not null,
Mada int not null,
Thoigian decimal(3,1) ,
constraint PC_MaNV_Mada_PK PRIMARY KEY (Ma_nv, Mada),
constraint PC_Ma_nv_Fk FOREIGN KEY (ma_nv)
REFERENCES NV (manv),
constraint PC_Mada_Fk FOREIGN KEY (mada) REFERENCES DA (mada)
);
go
Create table TN
( Ma_nv char(9) not null,
Tentn char(10) not null,
Phai char(3) constraint TN_Phai_CK CHECK (phai IN ('Nam', 'Nu')),
Ngsinh datetime ,
Quanhe varchar(10) ,
constraint TN_Ma_nv_Tentn_Fk PRIMARY KEY (Ma_nv, TENTN),
constraint TN_Ma_nv_Fk FOREIGN KEY (ma_nv)
REFERENCES NV (manv)
);
go
Bài tập thực hành cơ sở dữ liệu:

20
create table DD_P
( Maphg INT NOT NULL,
Diadiem varchar(10) not null,
constraint DD_P_Maphg_Diadiem_pk primary key (maphg, diadiem),

constraint DD_P_Maphg_Fk FOREIGN KEY (maphg) REFERENCES PB(maphg)
);
Mở bảng PB ra thêm ràng buộc khóa ngoại cho thuộc tính ma_nql.
alter table PB
add constraint PB_ma_nql_Fk foreign key (ma_nql) references NV(manv)

Cho cơ sở dữ liệu QLSV như sau:
A. Các quan hệ
• Khoa(Makh, TenKH) Khoa
Mỗi Khoa có một mã số
duy nhất (MAKH) để phân biệt với các khoa khác. Xác định
một tên Khoa (TenKh) duy nhất
• SV(MASV,TEN,NAM,KHOA) – Sinh viên
Mỗi sinh viên có một mã số sinh viên (MASV) để phân biệt với các sinh viên khác. Mỗi
sinh viên có tên sinh viên (TEN), đăng ký học một khoa và năm học hiện tại (NAM) là
một trong các năm từ 1 đến 4.
• MH( MAMH,TENMH, TINCHI, KHOA) –Môn học
Mỗi mônhọc có một mã số (MAMH) để phân biệt với các môn học khác, tên mônhọc
(TENMH) không trùng lắp nhau. Mỗi môn học do một khoa (KHOA) phụ trách và có số
tín chỉ quy định (TINCHI).
• DK (MAMH, MAMH_TRUOC) – Điều ki
ện
Mỗi mônhọc (MAMH) có thể không có, có một hay nhiều môn học bắt buộc phải học
trước (MAMH_TRUOC)
Bài tập thực hành cơ sở dữ liệu:

21
• LOP_MH (MA_LopMH, MAMH, HOCKY, NAM, GV) – Lớp môn học
Mỗi lớp môn học có một mã (MA_LopMH) duy nhất để phân biệt với các lớp môn học
khác. Mỗi lớp môn học sẽ mở cho một môn học (MAMH) thuộc học kỳ (HOCKY) trong

năm học (NAM) và do một giáo viên phụ trách (GV).
• KQ(MASV, MAKH, DIEM) – Kết quả
Mỗi sinh viên (MASV) theo học một lớp môn học (MA_LopMH) sẽ có một điểm
số(DIEM). Sinh viên chỉ theo học các lớp môn học mở ra cho môn học thuộc về khoa
mà sinh viên
đang theo học. Ứng với một lớp môn học mà sinh viên theo học, sinh viên
có một điểm số duy nhất (DIEM) từ 0 đến 10 điểm
B. Mô tả chi tiết:
Khoa (MaKh, TenKh)
Stt Thuộctính Kiểudữliệu Diễngiải
1 MaKH Chuỗi(4) Mãkhoa
2 TenKh Chuỗi(20) Tênkhoa

SV (MASV, TEN, NAM, KHOA)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MASV Số nguyên Mã sinh viên
2 TENSV Chuỗi (15) Tên sinh viên
3 NAM Số nguyên Năm học hiện tại
4 MAKHOA Chuỗi (4) Mã khoa

MH ( MAMH, TENMH, TINCHI, KHOA)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MAMH Chuỗi (8) Mã môn học
2 TENMH Chuỗi (20) Tên môn học
3 Tinchi Số nguyên Số tín chỉ
4 KHOA Chuỗi (4) Tên khoa

DK (MAMH, MAMH_TRUOC)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MAMH Chuỗi (8) Mã môn học

2 MAMH_TRUOC Chuỗi (8) Mã môn học

Lop_MH (MAKH, MAMH, HOCKY, NAM, GV)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MAKH Số nguyên Mã khóa học
2 MAMH Chuỗi (8) Mã môn học
3 HOCKY Số nguyên Học kỳ
4 NAM Số nguyên Năm học mở khóa học
Bài tập thực hành cơ sở dữ liệu:

22
5 GV Chuỗi(10) Tên giáo viên phụ trách

KQ(MASV, MAKH, DIEM)
STT Thuộc tính Kiểu dữ liệu Diễn giải
1 MASV Số nguyên Mã sinh viên
2 MAKH Số nguyên Mã khóa học
3 DIEM Số nguyên Điểm

C. Sơ đồ quan hệ của lược đồ


D. Thể hiện của lược đồ quan hệ
Khoa MaKh TenKH 
CNTT KhoaCôngnghệthôngtin
TOAN KhoaToán

SV TEN MASV NAM KHOA
Son 17 1 CNTT
Bài tập thực hành cơ sở dữ liệu:


23
Bao 8 2 CNTT

MH TENMH MAMH TINCHI KHOA
Nhap mon tin hoc COSC1310 4 CNTT
Cau truc du lieu COSC3330 4 CNTT
Toan roi rac MATH2410 3 TOAN

Co so du lieu COSC3320 3 CNTT

DK MAMH MAMH_TRUOC
COSC3380 COSC3320
COSC3380 MATH2410

COSC3320 COSC1310

Lop_MH MAKH MAMH HOCKY NAM GV
85 MATH2410 1 86 Kim
92 COSC1310 1 86 An
102 COSC3320 2 87 Nien
112 MATH2410 1 87 Chau
119 COSC1310 1 87 An

135 COSC3380 1 87 Son

KQUA MASV MAKH DIEM
17 112 8
17 119 6
8 85 10

8 92 10
8 102 8

8 135 10


Tạo CSQL QLSV và tạo các bảng bao gồm tất cả các ràng buộc toàn vẹn (khóa chính,
khóa ngoại, check, default, unique,…), mỗi ràng buộc đều có đặt tên cho nó.
create database QLSV
go
use QLSV
go
create table Khoa Khoa
( MaKH char(5) constraint Khoa_MaKH_Pk primary key,
TenKH varchar(20) constraint Khoa_TenKH_UQ unique
);
Bài tập thực hành cơ sở dữ liệu:

24
go
Bài tập thực hành cơ sở dữ liệu:

25
create table SV Sinh viên
( MaSV char(10) constraint SV_MaSV_Pk primary key,
TenSV varchar(30) not null,
Nam int not null,
MaKH char(5) constraint SV_MaKH_FK foreign key (MaKh)
references Khoa(Makh)
);

go
create table MH môn học
( MaMH char(8) constraint MH_MaMH_Pk primary key,
TenMH varchar(20) constraint MH_TenMh_UQ unique,
TinChi int constraint MH_TinChi_DF default (3),
MaKH char(5) constraint
MH_MaKH_FK foreign key (MaKh)
references Khoa(Makh)
);
go
create table DK Điều kiện
( MaMH char(8) not null,
MaMH_Tr char(8)not null ,
constraint DK_MAMH_MaMH_TR_PK primary key(MaMH, MaMH_Tr),
constraint DK_MaMH_FK foreign key (MaMH) references MH(MaMH),
constraint DK_MaMH_Tr_FK foreign key (MaMH_Tr)references MH(MaMH)
);
go
create table Lop_MH Lớp môn học
( Ma_LopMH int constraint Lop_MH_Ma_LopMH_Pk primary
key,
MaMH char(8) constraint Lop_MH_MaMH_FK foreign key (MaMH)
references MH(MaMH),
HocKi int constraint Lop_MH_Hoc_Ki_Ck check (HocKi in (1,2,3)),
NamHoc int,

×