Creat table khoa Idkhoa char20 not null, tenkhoa nvarchar30 not null, mo_ta nvarchar50 null, ; Creat table sinhvien hotensinhvien nvarchar50 not null, ngaysinh date not null, gioitinh
Trang 1TRƯỜNG ĐẠ I H C GIAO THÔNG V N TỌ Ậ ẢI TP H CHÍ MINH Ồ
BÁO CÁO TH C HÀNH MÔN Ự CƠ SỞ DỮ LIỆU
MÃ L P H C PH N: 010112100001 Ớ Ọ Ầ
ĐỀ TÀI:
“QUẢN LÝ CSDL ĐIỂM SINH VIÊN .”
Trần Minh Chi n 2051150088 KM20A ế – –
Nguyễn Minh Chi n 2051150087 KM20A ế – –
Thành ph H ố ồ Chí Minh 2021 –
Trang 2BẢNG PHÂN CÔNG CÔNG VIỆC:
Bùi Th Linh Nhi ị Phần I, Ph n II ầ
Trần Thị Lệ Quyên Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Nguyễn H ng Ng c ồ ọ Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu
Võ Th ịNy Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Nguyễn Th Phúc ị Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Phan Nguy n Ng c ễ ọ Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Phan Qu c Anh ố Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Nguyễn Anh Tu n ấ Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Trần Minh Chi n ế Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu Nguyễn Minh Chi n ế Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu
Cù Minh Phúc Phần III, Phần IV (1,2), Ph n V (1,2,3) ầ
Mỗi phần làm một câu
Trang 3MỤC LỤC
I Trình bày lược đồ quan h d u 1 ệ ữ liệ
II Tạo bảng d u 1 ữ liệ
1 L nh tệ ạo bảng 1
2 L nh tệ ạo khóa 3
III Rèn buộc toàn vẹn (RBTV) 4
IV Truy vấn dữ u 7 liệ a Ngôn ngữ đại số quan hệ 7
b Ngôn ngữ SQL 14
V Cập nhật dữ liệu 16
a Thêm d ữ liệu 16
b Xóa d u 17 ữ liệ c Cập nhật dữ liệu 19
Trang 41
1 khoa (IDkhoa, tenkhoa mo_ta) ,
2 sinhvien (hotensinhvien, ngaysinh, gioitinh, quequan, diachi, sdt, gmailsv, IDSV, IDkhoa, nganh, lop)
3 hoc_phan (Idhocphan, tenhocphan, sotinchi)
4 dkhp (IDSV, namhoc, hocki, ngaydk, iddangki)
5 chitietdangki (iddangki, IDhocphan, chitietdangki) ID
6 dhp ( chitietdangki, diemQT, diemthi, diemketthuc, diemhe4, IDdiemchu, xeploai, nhanxet)
7 drl (IDSV, hocki, namhoc, diemHDtrenlop, diemHDclb, tongdiem, xeploai)
8 Sơ đồ quan h ệ giữa các bảng
II Tạo bảng dữ liệu
Cot1 kieu_du_lieu,
CotN kieu_du_lieu); ”
Trang 5Creat table khoa (
Idkhoa char(20) not null,
tenkhoa nvarchar(30) not null, mo_ta nvarchar(50) null,
);
Creat table sinhvien (
hotensinhvien nvarchar(50) not null, ngaysinh date not null,
gioitinh nvarchar(5) not null,
quequan nvarchar(20) not null, diachi nvarchar(50) not null,
sdt char(12) not null,
gmailsv varchar(30) not null,
IDSV char(20) not null,
Idkhoa char(20) not null,
nganh nvarchar(50) not null,
lop nchar(10) not null,
);
Creat table hoc_phan (
Idhocphan char(10) not null,
tenhocphan nvarchar(50) not null, sotinchi char(2) not null,
);
Creat table dkhp (
IDSV char(20) not null,
namhoc char(10) not null,
hocki char(10) not null,
ngaydk date not null,
iddangki char(10) not null,
Trang 63
Creat table drl (
IDSV char(20) not null,
hocki char(10) not null,
namhoc char(10) not null,
DiemHDtrenlop float not null,
DiemHDclb float not null,
tongdiem float not null,
xeploai nvarchar(10) not null,
);
Creat table dhp (
IDchitietdangki char(10) not null,
diemQT float not null,
diemthi float not null,
diemketthuc float not null,
diemhe4 float not null,
diemchu nchar(10) not null,
xeploai nvarchar(10) not null,
nhanxet nvarchar(10) null,
);
2 Lệnh ạo t khóa
a) Khóa chính (PRIMARY KEY)
ALTER TABLE SINHVIEN ADD CONSTRAIN SV_IDSV_PK PRIMARY T KEY(IDSV)
ALTER TABLE KHOA ADD CONSTRAINT KHOA_IDKHOA_PK PRIMARY KEY (IDKHOA)
ALTER TABLE DKHP ADD CONSTRAINT DKHP_IDDANGKI_PK PRIMARY KEY(IDDANGKI)
ALTER TABLE CHITIETDANGKI ADD CONSTRAINT
CTDK_IDCHITIETDANGKI_PK PRIMARY KEY(IDCHITIETDANGKI)
ALTER TABLE HOC_PHAN ADD CONSTRAINT HP_IDHOCPHAN_PK PRIMARY KEY(IDHOCPHAN)
ALTER TABLE DRL ADD CONSTRAIN DRL_IDSV_PK PRIMARY T KEY(IDSV)
Trang 7b) Khóa ngo ại (FOREIGN KEY)
ALTER TABLE SINHVIEN ADD CONSTRAINT SV_IDKHOA_FK FOREIGN KEY (IDKHOA) REFERENCES KHOA(IDKHOA)
ALTER TABLE DKHP ADD CONSTRAINT DKHP_IDSV_FK FOREIGN KEY(IDSV) REFERENCES SINHVIEN (IDSV)
ALTER TABLE DRL ADD CONSTRAINT DRL_IDSV_FK FOREIGN KEY(IDSV) REFERENCES SINHVIEN (IDSV)
ALTER TABLE DHP ADD CONSTRAINT DHP_IDCHITIETDANGKI_FK FOREIGN KEY(IDCHITIETDANGKI) REFERENCES CHITIETDANGKI (IDCHITIETDANGKI)
ALTER TABLE CHITIETDANGKI ADD CONSTRAINT
CTDK_IDDANGKI_FK FOREIGN KEY(IDDANGKI) REFERENCES DKHP (IDDANGKI)
ALTER TABLE CHITIETDANGKI ADD CONSTRAINT
CTDK_IDHOCPHAN_FK FOREIGN KEY(IDHOCPHAN) REFERENCES HOC_PHAN (IDHOCPHAN)
III Ràng buộc toàn vẹn ữ d liệu.
1 Tổng điểm rèn luyện của sinh viên tối thiểu là 50 và tối đa là 100
Trang 84 -Mỗi sinh viên phải đăng ký vào một khoa của trường.
-Bối cảnh: sinhvien và khoa
-Biểu diễn: SV[MAKHOA] ⊆ KHOA[MAKHOA]
Trang 96 Điểm kết thúc học phần của sinh viên đạt điểm B trở lên
7 -Giới tính của nhân viên chỉ có thể là ‘Nam’ hoặc ‘Nữ’
-Bối cảnh: quan hệ sinhvien
-Biểu diễn gt ∀ ∈SINHVIEN(gt.gioitinh{‘nam’,’nữ’})
Trang 10IV Truy vấn dữ liệu
a) Ngôn ngữ đại số quan hệ.
1 - Phép chọn: chọn ra hotensv có giới tính là Nữ trên quan hệ SINHVIEN
+ Quan hệ: SINHVIEN
+ Thuộc tính: hotensv, gioitinh
+ Điều kiện: gioitinh=N’Nữ’
+ Công thức σ( hotensv ^ gioitinh=N’Nữ’ : )( SINHVIEN)
- Phép chiếu: cho biết diemthi và xeploai trên quan hệ DIEMHP
+ Quan hệ: DIEMHP
+ Thuộc tính: diemthi, xeploai
+ Công thức πdiemthi,xeploai( DIEMHP: )
- Phép chọn, chiếu kết hợp: chọn ra gioitinh Nam và cho biết hotensv, sdt, nganh, lop trên quan hệ SINHVIEN
+ Quan hệ: SINHVIEN
+ Thuộc tính: gioitinh, hotensv, sdt, nganh, lop
Trang 11+ Điều kiện: gioitinh=N’Nam’
+Côngthức: σgioitinh=N’Nam’(πhotensv, sdt, nganh,
+ Thuộc tính : IDkhoa , tenkhoa
+ Công thức : πIDkhoa,tenkhoa (khoa)
• Phép chọn chiếu kết hợp : Cho biết hotensinhvien và IDSV học ở
nganh Kinh tế
+ Quan hệ :SINHVIEN
+Thuộc tính : hotensinhvien , IDSV
+ Điều kiện : nganh = ‘Kinh tế’
+ Công thức : πhotensinhvien,IDSV (σnganh=’Kinh
tế’)(SINHVIEN)
3 - Phép chọ : Chọn ra IDSV có tổng điểm trên 5 trên quan hệ DRn 6 L
Trang 129 + Quan hệ: DRL
+ Thuộc tính: IDSV, tongdiem
+ Điều kiện: tongdiem > 65
+ Công thức: σ( IDSV ^ tongdiem > 65 )( DRL)
- Phép chiế : cho biết diachisv và SDTsv trên quan hệ SINHVIEu N
+ Quan hệ: SINHVIEN
+ Thuộc tính: diachi, sdt
+ Công thức: πdiachi,sdt( SINHVIEN)
- Phép chọn chiếu kết hợp: Chọn ra sinh viên có xeploai khá và cho biết IDSV, học kì, năm học và tổng điểm của sinh viên trên quan hệ DRL
Trang 13+Công thức: πIdsv, hovatensv(SINHVIEN)
• - Chọn chiếu kết hợp: Cho biết mssv và họ tên của các sinh viên sinh năm 2000
+ Quan hệ: sinhvien
+ Thuộc tính: hovatensv,idsv, namsinh
+ Công thức: π idsv, hotensv(ϭnamsinh=2000(SINHVIEN))
5 - Phép chọn: Chọn ra sinh viên có điểm quá trình >5
+ Thuộc tính: Hotensv, diemquatrinh
+ Công thức: πhotensv, diemquatrinh (ĐHP)
- Phép chiếu kết hợp Cho biết tên sinh viên, điểm quá trình của sinh viên : phải >5
+ Quan hệ: ĐHP
+ Thuộc tính: Hotensv, diemquatrinh
+ Công thức: πhotensv, diemquatrinh, Ϭ(diemquatrinh)>5(ĐHP)
6 - Phép chọ : Chọn ra sinh viên xếp loại khn á
+ Quan hệ : DHP
Trang 1411 + Thuộc tính : Xeploai
+ Điều kiện: Xeploai=’khá’
+ Thuộc tính: Hotensv, diemhe4,xeploai
+ Công thức: πhotensv,diemhe4(σxeploai > ‘khá’)(DHP)
7 - Phép chọn: chọn ra idsv có diem hệ 4 nhỏ hơn 3 từ bảng dhp
Trang 15+ Quan hệ :dhp
+Thuộc tính: IDSV,hotensv,diemthi,xeploai
+ Điều kiện:diemthi<8
+ Công Thức: σdiemthi<8( IDSV,hotenv(dhp)) π
8 - Phép chọn: Chọn ra sinh vien có tổng diem rèn luyện trên 70 ở học kì I
+ Quan hệ: drl
+ Thuộc tính: hocki, tongdiem
+ Điều kiện: tongdiem>70 và hocki=1
+ Công thức:σ (tongdiem>70 hocki=1)∧ (drl)
- Phép chiếu: Cho biết điểm chữ, nhận xét,xếp loại,điểm kết thúc từ bảng dhp
+ Quan hệ: dhp
+Thuộc tính: điểm chữ, nhan xét,xep loai,diem ket thuc
+Công thức:π điểm chữ, nhan xét,xep loai,diem ket thuc (DHP)
- Phép chọn chiếu kết hợp Chọn ra sinh vien có nhận xét không đạt và cho : biết idchitietdangki, điểm chữ, điểm hệ 4, xếp loại trên qh dhp
+ Quan hệ : dhp
+Thuộc tính: xeploai,IDchitiet,diemchu,diemhe4,nhanxet + Điều kiện: nhanxet=Khong đạt
+ Công Thức: σ nhanxet=Khong đạt ( πxeploai,IDchitiet,diemchu,diemhe4 (dhp))
9 - Phép chọn : Chọn ra IDSV có ngày đăng ký học phần vào 2021-01 09 -
+ Quan hệ : dkhp
+ Thuộc tính : IDSV, ngaydk
Trang 1613 + Điều kiện : ngaydk='2021-01-09'
+ Công thức : σ( IDSV ^ ngaydk='2021- -09')(dkhp) 01
- Phép chiếu : Cho biết id đăng ký, ID học phần, ID chi tiết đăng ký
+ Thuộc tính : IDSV, hocki, tongdiem
+ Điều kiện : tongdiem > 70
+ Công thức : σtongdiem>70(πIDSV,hocki(drl))
10 - Phép chọn: chọn IDSV có học kì là 5 trên quan hệ drl
+ Quan hệ: DRL
+ Thuộc tính: IDSV, hocki
+ Điều kiện: hocki=5
+ Công thức: σIDSV,hocki = 5 (DRL)
- Phép chiếu: cho biết họ tên sv, quê quán và lop trên quan hệ Sinhvien
+ Quan hệ: sinhvien
+ Thuộc tính: hotensv,quequan,lop
+ Công thức: πhotensv,quequn,lop (sinhvien)
- Phép chọn chiếu kêt hợp: cho biết Idhocphan,tenhocphan và có sotinchi
là 2 trên quan hệ hocphan
Trang 17+ Quan hệ: hocphan
+ Thuộc tính:IDhocphan,tenhocphan,sotinchi
+ Điền kiện: sotinchi=2
+ Công thức:πIDhocphan,tenhocphan(σsotinchi=2 (hocphan))
2 Cho biết những sinh viên học lại ở học kì hè năm học 2020-2021
Select dhp.xeploai, dhp.nhanxet, dkhp.IDSV, dkhp.hocki, dkhp.namhoc
Trang 1815 SELECT hotensv, idsv,ngaysinh, idhocphan, diemketthuc FROM sinhvien,dhp
WHERE (sinhvien.IDSV=dhp.diemketthuc) ANND
sinhvien.IDSV IN (SELECT IDSV From dhp where diemketthuc>=5)
5 Chọn ra sinh viên có điểm quá trình >5 ở HKII
Select hotensv, hocki2, diemquatrinh
From DHP
Where diemquatrinh >5 and hocki = “2”
6 Chọn ra sinh viên xeploai Khá ở HKII
Select hotensv,hocki 2 , xeploai
From DIEMHP
Where xeploai= ‘khá’ and hocki = ‘2’
7 chọn ra sinh viên có đăng kí số tín chỉ nhiều nhất trong học kì 2 năm học 2019-2020
Select sv.hotensv, sotinchi.hp, hocki.banghocphan, namhoc.banghocphan
from sinhvien, hocphan, dkihp
Where sotinchi>=any (select sotinchi, hocki, namhoc from hocphan, dangkihp where hocki='2' and namhoc='2019-2020')
8 Hãy Sắp xếp giảm dần điểm thi những sv có diem thi<5 nhưng vẫn Đạt
select IDchitietdangki,diemthi,nhanxet
from p dh
where diemthi<5 d an nhanxet=’Dat’
group by diemthi,nhanxet,IDchitietdangki
order by diemthi DESC
9 Cho biết số lượng sinh viên có tổng điểm trên 70 ở học kì 1 năm
2020-2021
select tongdiem, hocki, namhoc, count(*) as SL_SV
from l dr
Trang 19where tongdiem > '70' and hocki='hocki1' and 2021'
namhoc='2020-group by tongdiem, hocki, namhoc
order by tongdiem, hocki, namhoc
10 in ra họ tên sinh viên của lớp km20 và có tổng điểm rèn luyện < 8
select sinhvien.hotensinhvien,sinhvien.lop,drl.tongdiem from sinhvien,drl
where sinhvien.lop=’km20’ and drl.tongdiem<8
V Cập nhật dữ liệu.
a) Thêm dữ liệu
1 Thêm dữ liệu vào bảng học phần
insert into banghocphan(mahp,tenhp,sotinchi)
values ('12204587',N'Đại số','3')
2 Thêm dữ liệu vào bảng khoa
INSERT INTO khoa ( IDkhoa, tenkhoa, mo_ta )
VALUES ('678','logistic',N'Chuỗi cung ứng')
3 Thêm một dữ liệu mới vào bảng HOCPHAN
insert into HOCPHAN( IDhocphan,tenhocphan,sotinchi)
values ( '01010011',N' Lập trình mạng','3')
4 Thêm một dữ liệu mới vào bảng dkhp
INESERT INTO DKHP ( IDSV, namhoc, hocki, NgayDK, iddangky) VALUES
('206031','2020-2021','hocki1','1/9/2021','1001')
5 Thêm một dữ liệu với vào bảng chitietdangki
INSERT INTO CHITIETDANGKI (Iddangki, mamonhoc, idchitietdangki) VALUES (‘1011’,’12201110’,’120’)
6 Thêm một dữ liệu vào chitietdangki
Trang 2017 INSERT INTO CHITIETDANGKI (iddangki,mamonhoc,idchitietdangki) VALUES (‘1001’,’12200401’.’110’);
7 Thêm 1 dữ liệu mới vào bảng dhp
INSERT INTO
DIEMHP(IDSV,IDchitietdangki,DiemQT,Diemthi,Diemhe4,Diemchu,Xeploai,Nhanxet,hocki)
VALUES(‘206031’,’122’,’8’,’8’,’3’,’A’,N’khá’,N’đậu’,'hocki1')
8 Thêm 1 dữ liệu mới vào bảng dhp
INSERT INTO
DHP(IDchitietdangki,DiemQT,Diemthi,Diemhe4,diemchu,Xeploai,nhanxet) VALUES
(’134’,’8’,’5.2’,’2.5’,’C+’,N’Trung bình’,N’đậu’)
9 Thêm 1 dữ liệu mới vào bảng điểm rèn luyện
INSERT INTO drl (IDSV, hocki, namhoc, DiemHDtrenlop, DiemHDCLB, tongdiem, xeploai) VALUES
Trang 213 Xóa dòng dữ liệu có hotensinhvien là Võ Thị Ny
delete
m SINHVIEN
fro
where hotensinhvien=N'Võ Thị Ny'
4 Xóa các sinh viên lớp KM20B trong bảng sinh viên
Where hotensv= ‘Nguyễn Thị Phúc’
7 Xóa dòng dữ liệu có idsv ’206031’
Trang 2210 xóa những sinh viên có quê quán TP Ho Chi Minh
delete from sinhvien
where quequan = ‘TP.Ho Chi Minh’
SET mo_ta=’nghiên cứu về chuỗi cung ứng’
WHERE tenkhoa=’Kinh tế vận tải’
3 cập nhập dữ liệu Idhocphan của bảng HOCPHAN từ mã ‘0101001’ thành
mã ‘01010012’
update HOCPHAN
t IDhocphan='01010012' se
Trang 23SET hotensv = Nguyễn Hồng Ngọc
Where hotensv = Nguyễn Hòn Nọc
7 sửa địa chỉ của các sinh viên từ quận 2 thành TP.Thủ Đức
Trang 2421 where DiemHDclb=50
9 Sửa dữ liệu năm học cho bảng drl (2020-2021 -> 2021-2022)