You are on page 1of 9

TRƯỜNG ĐẠI HỌC THƯƠNG MẠI

HỌC KỲ I NĂM HỌC 2021 – 2022

(Phần dành cho sinh viên/ học viên)

Bài thi học phần: Quản trị Cơ sở dữ liệu Số báo danh: 39


Mã số đề thi: 09 Lớp: 2158eCIT2521
Ngày thi: 21/12/2021 Tổng số trang: 9 Họ và tên: Bùi Thị Khánh

Điểm kết luận:


GV chấm thi 1: …….………………………......

GV chấm thi 2: …….………………………......

Bài làm:
Câu hỏi 1:
a, Trình bày quá trình phục hồi CSDL. Lấy ví dụ minh họa:
 Qúa trình phục hồi CSDL:
Phục hồi CSDL giúp khôi phục CSDL về trạng thái chính xác khi xảy ra lỗi. Nói cách khác,
nó cho phép CSDL đi đến trạng thái nhất quán sau một sự cố bất ngờ. Do đó, quá trình phục hồi
cải thiện độ tin cậy của cơ sở dữ liệu.
Các lỗi CSDL có thể yêu cầu phục hồi được chia thành 3 loại:
- Sự cố yêu cầu
- Sự cố ứng dụng hoặc giao dịch
- Sự cố truyền thông
+ Quá trình phục hồi CSDL là quá trình khôi phục lại một bản sao lưu (Bản sao lưu là 1 bản
sao của CSDL. Ta có thể dùng bản sao lưu này để khôi phục lại CSDL nếu như CSDL đã mất) :
- Xác định CSDL cần được phục hồi
- Xác định bản sao lưu tốt nhất được sử dụng
- Khôi phục bản sao:
 Chép tất cả dữ liệu trong bản sao vào CSDL khôi phục

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 1/9


 Bất kỳ giao dịch nào không hoàn thành trong database backup thì được roll back để
đảm bảo tính nhất quán dữ liệu.
 Quá trình này đảm bảo CSDL sau khi khôi phục là một bản sao của CSDL khi thực
hiện sao lưu, trừ những giao dịch không hoàn thành bị roll back. Điều này đảm bảo
tính toàn vẹn dữ liệu.
- Kiểm tra CSDL vừa khôi phục
- Xem lại nhật ký CSDL
Ngoài ra để tránh việc cố tình viết đè lên CSDL đã tồn tại, quá trình khôi phục thực hiện
kiểm tra an toàn một cách tự động. Quá trình khôi phục không thực hiện nếu:
 Tên CSDL khôi phục đã tồn tại trên server và tên CSDL cần khôi phục không tương
ứng với tên CSDL ghi trong backup set.
 Tên CSDL đã tồn tại trên server nhưng dữ liệu bên trong không giống với dữ liệu bản
sao database backup
 Một hoặc nhiều file yêu cầu tạo tự động bằng thao tác khôi phục (không để ý đến
CSDL đó tồn tại hay chưa) nhưng những file này có cùng tên với CSDL đã tồn tại rồi.
Tuy nhiên việc kiểm tra an toàn có thể không có tác dụng nếu có mục đích viết đè.
+ Quá trình phục hồi đối tượng CSDL trải qua các bước:
- Xác định nguyên nhân gây ra sự cố: Việc xác định nguyên nhân gây ra sự cố là bước đầu,
giúp nhà quản trị nhận định được vấn đề và dễ dàng phân tích lỗi.
- Phân tích lỗi
- Xác định đối tượng cần được phục hồi
- Xác định mối quan hệ giữa các đối tượng CSDL cần được phục hồi
- Xác định bản sao lưu gần nhất được sử dụng
- Khôi phục bản sao
- Xem lại nhật ký CSDL
 Ví dụ minh họa: với CSDL Quan_li_nhansu
- Xác định đúng tên CSDL cần phục hồi : Quan_li_nhansu
- Xem các bản sao lưu trước đó và lựa chọn ra bản sao lưu tốt nhất
- Thực hiện các thao tác để phục hồi CSDL Quan_li_nhansu
- Mở lại và kiểm tra CSDL đã được phục hồi

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 2/9


b, Cơ sở dữ liệu và diagram:
 Cơ sở dữ liệu:
use master
go

if exists ( select name from sys.databases where name = 'STT39_20D190143_BuiThiKhanh' )


drop database STT39_20D190143_BuiThiKhanh
go

create database STT39_20D190143_BuiThiKhanh ;


use STT39_20D190143_BuiThiKhanh
go

create table Chuyen_bay


(
MaCB char(5) primary key,
TenCB nvarchar(30) not null,
Diemdi nvarchar(40) not null,
Diemden nvarchar(40) not null
)
go

create table Phi_cong


(
MaPC char(5) not null primary key,
TenPC nvarchar(30) not null,
Ngaysinh datetime not null,
Gioitinh nvarchar(3) not null,
Trinhdo nvarchar(15) not null,
Sonamcongtac int not null
)
go

create table Chitiet_Chuyenbay


(
MaCB char(5) not null,

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 3/9


MaPC char(5) not null,
Thoigianbay datetime not null,
Sogiobay int not null,
constraint pk_chitietCB primary key (MaCB,MaPC,Thoigianbay),
constraint pk_Chuyenbay foreign key (MaCB) references Chuyen_bay(MaCB),
constraint pk_Phicong foreign key (MaPC) references Phi_cong(MaPC)
)

insert into Chuyen_bay


values
('VN001',N'Sài Gòn - Hà Nội',N'Sài Gòn',N'Hà Nội'),
('VN002',N'Sài Gòn - Huế',N'Sài Gòn',N'Huế'),
('VN003',N'Sài Gòn - Đà Nẵng',N'Sài Gòn',N'Đà Nẵng'),
('VN004',N'Cần Thơ - Hà Nội',N'Cần Thơ',N'Hà Nội'),
('VN005',N'Cà Mau - Hà Nội',N'Cà Mau',N'Hà Nội'),
('VN006',N'Hà Nội - Phú Quốc',N'Hà Nội',N'Phú Quốc'),
('VN007',N'Quảng Ngãi - Hà Nội',N'Quảng Ngãi',N'Hà Nội'),
('VN008',N'Nghệ An - Hà Nội',N'Nghệ An',N'Hà Nội'),
('VN009',N'Trà Vinh - Hà Nội',N'Sài Gòn',N'Hà Nội'),
('VN010',N'Sóc Trăng - Hà Nội',N'Sài Gòn',N'Hà Nội')
go

insert into Phi_cong


values
('PC001',N'Nguyễn Văn A','7/2/1994',N'Nam','A',8),
('PC002',N'Nguyễn Thị A','7/23/1994',N'Nam','B',6),
('PC003',N'Nguyễn Văn B','10/2/1990',N'Nam','C',14),
('PC004',N'Buì Thị C','7/3/1996',N'Nam','A',30),
('PC005',N'Nguyễn Tú D','7/7/1995',N'Nam','B',24),
('PC006',N'Nguyễn Văn E','8/6/1994',N'Nam','D',23),
('PC007',N'Nguyễn Văn F','4/4/1990',N'Nam','A',20),
('PC008',N'Nguyễn Văn G','7/2/1991',N'Nam','B',5),
('PC009',N'Nguyễn Văn H','8/12/1997',N'Nam','A',9),
('PC010',N'Nguyễn Văn I','7/4/1992',N'Nam','C',10)
go

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 4/9


insert into Chitiet_Chuyenbay
values
('VN001','PC001','2/12/2021',6),
('VN002','PC001','3/2/2021',4),
('VN003','PC002','4/7/2021',5),
('VN004','PC010','5/10/2021',3),
('VN005','PC010','4/2/2022',9),
('VN008','PC001','6/10/2023',4),
('VN006','PC009','4/8/2021',9),
('VN006','PC004','12/10/2020',5),
('VN006','PC003','4/2/2021',9),
('VN006','PC005','5/10/2020',5)

 Diagram:

Câu 2:

a, Thực hiện truy vấn để hiển thị danh sách các chuyến bay có tên là “Hà Nội – Phú Quốc”

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 5/9


select *
from Chuyen_bay CB inner join Chitiet_Chuyenbay CTCB on CB.MaCB = CTCB.MaCB
where TenCB = N'Hà Nội - Phú Quốc'

b, Xây dựng view hiển thị thông tin về các phi công điều khiển chuyến bay. Thông tin bao
gồm: mã phi công, tên phi công, tổng số chuyến bay và tổng số giờ bay.
create view TT_Phicong1
as
select CTCB.MaPC, TenPC, Count(MaCB) as 'TongCB', Sum(Sogiobay) as 'Tonggiobay'
from Phi_cong PC inner join Chitiet_Chuyenbay CTCB on PC.MaPC = CTCB.MaPC
group by CTCB.MaPC,TenPC

Thực hiện:
SELECT * FROM TT_Phicong1

c, Xây dựng thủ tục hiển thị thông tin về các chuyến bay do phi công điều khiển với số năm
công tác lớn hơn số năm công tác do người dùng nhập vào từ bàn phím
create proc TT_Chuyenbay11 @sonamCT int
as
begin
select CTCB.MaCB, CTCB.MaPC, CB.TenCB, Thoigianbay, Sogiobay, Diemdi, Diemden,
Sonamcongtac
from Phi_cong PC inner join Chitiet_Chuyenbay CTCB on PC.MaPC = CTCB.MaPC
inner join Chuyen_bay CB on CTCB.MaCB = CB.MaCB
where PC.Sonamcongtac > @sonamCT
end

Thực hiện:
exec TT_Chuyenbay11 10;

d, Xây dựng trigger thực hiện việc xem lại danh sách các chuyến bay sau khi cập nhật
(Insert, Update) ở bảng Chuyến bay.
create trigger TrG_XemDS_Chuyenbay
on Chuyen_bay
for insert, update

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 6/9


as
begin
select * from Chuyen_bay
end

Thực hiện:
insert into Chuyen_bay
values ('VN012',N'Thái Nguyên - Hà Nội',N'Thái Nguyên',N'Hà Nội')

update Chuyen_bay
set TenCB = N'Hải Phòng - Hà Nội', Diemdi = N'Hải Phòng'
where MaCB = 'VN012'

e, Tái cấu trúc cơ sở dữ liệu:


Hệ thống quản lý CSDL cần quản lý thêm thông tin về hãng máy bay. Vì vậy để làm tốt việc
quản trị CSDL cần phải tái cấu trúc lại CSDL trên.
i. CSDL Cần lưu trữ thông tin:
- Thông tin về chuyến bay: Mã chuyến bay, tên chuyến bay, điểm đi, điểm đến
- Thông tin về phi công: Mã phi công, tên phi công, ngày sinh, giới tính, trình độ, số năm công
tác
- Phi công điều khiển chuyến bay với thời gian bay, số giờ bay khác nhau.
- Thông tin về các hãng máy bay: mã hãng, tên hãng
- Thông tin về máy bay của hãng được hãng hàng không sử dụng: Số hiệu, tốc độ, tầm bay, số
ghế.
ii. Từ đó xác định được 4 thực thể : chuyến bay, phi công, hãng máy bay, máy bay
iii. Các thực thể này có mối quan hệ :
- Mỗi phi công có thể điều khiển 1 hoặc nhiều chuyến bay. Mỗi chuyến bay có thể được điều
khiển bởi những phi công khác nhau.( với thời gian bay khác nhau )
- Một hãng máy bay chỉ sản xuất ra một loại máy bay. Máy bay cùng loại sẽ có số hiệu khác
nhau nhằm phân biệt.
- Trong một chuyến bay nhất định chỉ sử dụng một máy bay. Giả sử mỗi chuyến bay được bố trí
1 lần cho 1 ngày.
iv. Qua quá trình xác định thuộc tính cho thực thể, chuyển đổi ta thu được các quan hệ:
- Hang_maybay ( Mahang, Tenhang )
- CT_Maybay ( Sohieu, Tocdo, Tambay, Soghe, Mahang )

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 7/9


- Chuyen_bay ( MaChuyenbay, TenChuyenbay, Diemdi , Diemden )
- CT_Chuyenbay ( MaChuyenbay, MaPhicong, Thoigianbay, Sogiobay, Sohieu )
- Phi_cong ( MaPhicong, TenPhicong, Ngaysinh, Gioitinh, Trinhdo, Sonamcongtac )
CSDL được tái cấu trúc lại như sau:

 SQL:
use master
go

if exists ( select name from sys.databases where name = 'STT39_20D190143_BuiThiKhanh' )


drop database STT39_20D190143_BuiThiKhanh
go

create database STT39_20D190143_BuiThiKhanh ;


use STT39_20D190143_BuiThiKhanh
go

create table Hang_maybay


(
Mahang char(5) primary key,
Tenhang char(5) not null
)

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 8/9


create table CT_Maybay
(
Sohieu char(5) not null primary key,
Tocdo nvarchar(20) not null,
Tambay char(15) not null,
Soghe int not null,
Mahang char(5) not null,
constraint pk_HangMB foreign key (Mahang) references Hang_maybay (Mahang)
)

create table Chuyen_bay


(
MaChuyenbay char(5) primary key,
TenChuyenbay nvarchar(30) not null,
Diemdi nvarchar(40) not null,
Diemden nvarchar(40) not null
)
go

create table Phi_cong


(
MaPhicong char(5) not null primary key,
TenPhicong nvarchar(30) not null,
Ngaysinh datetime not null,
Gioitinh nvarchar(3) not null,
Trinhdo nvarchar(15) not null,
Sonamcongtac int not null
)
go

create table Chitiet_Chuyenbay


(
MaChuyenbay char(5) not null,
MaPhicong char(5) not null,
Thoigianbay datetime not null,
Sogiobay int not null,
Sohieu char(5) not null,
constraint pk_chitietCB primary key (Machuyenbay,MaPhicong),
constraint pk_Chuyenbay foreign key (MaChuyenbay) references
Chuyen_bay(MaChuyenbay),
constraint pk_Phicong foreign key (MaPhicong) references Phi_cong(MaPhicong),
constraint pk_Maybay foreign key (Sohieu) references CT_Maybay(Sohieu)
)

Họ tên SV/HV: Bùi Thị Khánh - Mã LHP: 2158eCIT2521 Trang 9/9

You might also like