Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

On Tap CSDL 2

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

ÔN TẬP MÔN CƠ SỞ DỮ LIỆU

CHƢƠNG 1: TỔNG QUAN VỀ CSDL


– Cơ sở dữ liệu là gì?
– Lợi ích của việc sử dụng cơ sở dữ liệu
– Kiến trúc 3 mức: View level, Logical level, Physical level
– Tính chất của cơ sở dữ liệu quan hệ, các hệ thống sử dụng cơ sở dữ liệu quan hệ.
– Cơ sở dữ liệu không quan hệ.
CHƢƠNG 2: MÔ HÌNH THỰC THỂ KẾT HỢP VÀ MÔ HÌNH QUAN HỆ
1. Mô hình thực thể kết hợp:
– Thực thể, Kiểu thực thể (loại thực thể)
– Thuộc tính
– Mối kết hợp: 1-1, 1-N, N-N
– Chỉ số của mối kết hợp (min, max)

A B D
G

E F
C

A B D
G
(1,n) (1,1)
E F
C

MALOP
TENLOP
LOP

(30,60) SISO

NGAYSINH MAMH
LANTHI TENMH
(1,1)
(1,1)
SINHVIEN (1,N) (1,1) KETQUA (0,N) MONHOC
KETQ
SOTC
HOTEN DIEM

2. Mô hình quan hệ:


– Quan hệ
– Thuộc tính
– Bộ
– Lược đồ quan hệ

Page 1
Ví dụ quan hệ MONHOC
MAMH TENMH SOTC
MH01 CSDL 3
MH02 TCC 2
MH03 LTW 3
MH04 ABC
Lược đồ quan hệ tương ứng: MONHOC(MAMH,TENMH,SOTC)
– Khóa chính: gồm một hoặc nhiều thuộc tính, được chọn từ tập khóa, có duy nhất 1,
giá trị ko được rỗng (Not null).
Ví dụ: Lược đồ quan hệ NHAVIEN(MANV, HOTEN, EMAIL, DIENTHOAI, CMND)
có 4 khóa: MANV, EMAIL, DIENTHOAI, CMND. Trong các khóa này, MANV được chọn
làm khóa chính.
– Khóa ngoại: gồm một hoặc nhiều thuộc tính, tham chiếu đến khóa chính, trên mỗi
quan hệ có thể không có, có 1 hoặc nhiều, có thể rỗng (null)
Ví dụ: Xét 2 quan hệ LOP và SINHVIEN. Trên quan hệ SINHVIEN có khóa ngoại là
MALOP tham chiếu đến khóa chính là MALOP trên quan hệ LOP.
Lưu ý: Thuộc tính khóa chính và khóa ngoại có thể khác nhau, tuy nhiên kiểu dữ liệu và
chiều dài phải giống nhau.
LOP
MALOP TENLOP SISO
L01 11DHTH 30
L02 12DHTH 50
SINHVIEN
MASV HOTEN MALOP
SV01 MINH L01
SV02 CHÂU L01
SV03 BÌNH L02
– Siêu khóa là tập thuộc tính chứa hoặc bằng khóa.
3. Chuyển mô hình thực thể kết hợp sang mô hình quan hệ:
– Chuyển mối kết hợp 1-N:

A B D
G

E F
C

hoặc

Page 2
E
F
ABC
DG
MASV

Chuyển sang lược đồ quan hệ:


E(A,B,C)
F(D,G,A)
Ví dụ: chuyển sơ đồ sau sang các lược đồ quan hệ:

MALOP MASV NGAYSINH

LOP SINHVIEN

TENLOP SISO HOTEN

LOP(MALOP,TENLOP,SISO)
SINHVIEN(MASV,HOTEN,NGAYSINH,MALOP)
– Chuyển mối kết hợp 1-1

A B D
G

E F
C

TH1: E(A,B,C) TH2: F(D,G)


F(D,G,A) E(A,B,C,D)
Lưu ý: tùy vào gốc độ quản lý sẽ chọn trường hợp 1 hay trường hợp 2.
Ví dụ: Chuyển sơ đồ sau sang lược đồ quan hệ
NGAYSINH
MATHE
NGAYC
MASV
SINHVIEN THESV

HOTEN
Theo trường hợp 1:
SINHVIEN(MASV,HOTEN,NGAYSINH)
THESV(MATHE,NGAYC,MASV)
Theo trường hợp 2:
THESV(MATHE,NGAYC)
SINHVIEN(MASV,HOTEN,NGAYSINH,MATHE)
Ở đây, ta chọn trường hợp 1, vì theo thứ tự nhập dữ liệu thì thông tin sinh viên sẽ nhập
trước, thông tin thẻ sinh viên sẽ nhập sau.
(Lưu ý: thứ tự nhập liệu: quan hệ chứa khóa chính nhập trước, quan hệ chứa khóa ngoại
nhập sau).

Page 3
– Chuyển mối kết hợp N-N

A B D
G
F
Ví dụ E1: T

C P
Chuyển mô hình thực thể kết hợp sau sang các lược đồ quan hệ
MAHD MAHG
DONGIA
TENHG
HOADON HANGHOA
CHITHIETHD
DVT
NGAYLAP SOLUONG
HOADON(MAHD, NGAYLAP)
HANGHOA(MAHG, TENHG, DVT)
CHITIETHD(MAHD, MAHG, SOLUONG, DONGIA)

Ví dụ 2: Mối kết hợp nhiều nhiều biểu diễn dạng kiểu thực thể yếu:
NGAYSINH MAMH
LANTHI
TENMH
MASV
SINHVIEN KETQUA MONHOC
KETQ
SOTC
HOTEN DIEM
SINHVIEN(MASV,HOTEN,NGAYSINH)
MONHOC(MAMH, TENMH, SOTC)
KETQUA(MASV,MAMH, LANTHI, DIEM)

Bài tập: Chuyển môn hình thực thể kết hợp sau sang các lược đồ quan hệ:
MAKH TENKH TENNSX
MANSX
DIACHI NHASX
KHACH DIACHI

MAHD DONGIA MAHG MALOAI


TENHG

HOADON CHITHIETHD HANGHOA LOAIHANG

NGAYLAP SOLUONG DVT TENLOAI


TENNCC
NGAYNHAP

NHACC PHIEUNHAP CHITHIETPN DONGIA

MANCC DIACHI MAPN SOLUONG

Page 4
CHƢƠNG 3: ĐẠI SỐ QUAN HỆ
- Dựa vào lược đồ quan hệ cho trước để thực hiện:
+ Phân tích câu truy vấn (yêu cầu, điều kiện, các quan hệ)
+ Xác định các phép toán cần sử dụng (giải thích được vì sao sử dụng các phép toán)
+ Xác định những quan hệ liên quan (lưu ý: ko được thừa)
+ Viết biểu thức truy vấn bằng đại số quan hệ.
Ví dụ: Cho cơ sở dữ liệu gồm các lược đồ quan hệ sau:
LOP (MaLop, TenLop)
SINHVIEN(MaSV, HoTen, NgaySinh, Phai, MaLop)
MONHOC(MaMH, TenMH, SoTC)
KETQUA(MaSV, MaMH, Diem)
a/ Cho biết mã và họ tên những sinh viên thuộc lớp có tên là 07DHTH
– Giải thích sử dụng phép toán:
Câu truy vấn sử dụng các phép toán: Phép kết tự nhiên (vì có liên quan đến 2 quan hệ là
SINHVIEN và LOP), phép chọn (vì có điều kiện chọn tên lớp = 07DHTH), phép chiếu (vì
yêu cầu cho biết mã và họ tên sinh viên)
– Viết biểu thức truy vấn:

MASV,HOTEN(TENLOP='07dhth'(LOP*SINHVIEN))

hoặc cách 2:

MASV,HOTEN(TENLOP='07dhth'(LOP) *SINHVIEN)

a’/ Cho biết mã và họ tên những sinh viên thuộc lớp có mã là L01

MASV,HOTEN(MALOP='L01'(SINHVIEN))
b/ Mã và tên những môn học nào có số tín chỉ <2
c/ Liệt kê danh sách những sinh viên (mã sinh viên, họ tên) học môn có mã là MH001
d/ Liệt kê danh sách những sinh viên (mã sinh viên, họ tên) học môn có tên là Cơ sở dữ liệu
e/ Cho biết danh sách môn học (mã mh, tên mh) mà sinh viên có mã sv001 học
e’/ Cho biết danh sách môn học (mã mh) mà sinh viên có mã sv001 học

Page 5
CHƢƠNG 4: NGÔN NGỮ SQL
4.1 Cấu trúc câu truy vấn SQL
SELECT [* | DISTINCT] <danh_sách_cột>//Lưu ý: chỉ những cột yêu cầu
FROM <danh_sách_bảng liên quan> //Lưu ý: ko được thừa bảng
[WHERE <biểu_thức_điều_kiện>]
[GROUP BY <danh_sách_tên_nhóm>]
[HAVING <biểu_thức_điều_kiện_nhóm>]
[ORDER BY<tên_cột 1> [ASC | DESC], <tên_cột 2> [ASC | DESC],...]
4.2. Thứ tự thực thi một câu truy vấn
FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY
Ví dụ: Cho 2 quan hệ như sau:
NHANVIEN THAMGIA
MANVHOTENPHAI MANV MADA SOGIO
NV001Trần Văn TuấnNam NV002Đỗ ThịNV01 DA1 20 Thị LanNữ NV004Trần MinhNam
BìnhNữ NV003Nguyễn
NV01 DA2 30
NV02 DA1 15
NV02 DA3 25
NV03 DA3 10
NV03 DA2 15

Xét câu truy vấn: Cho biết mã, họ tên, phái của những nhân viên NỮ tham gia >= 2 đề án.
SELECT NHANVIEN.MANV, HOTEN, PHAI
FROM NHANVIEN, THAMGIA
WHERE NHANVIEN.MANV=THAMGIA.MANV AND PHAI=N'Nữ'
GROUP BY NHANVIEN.MANV, HOTEN, PHAI
HAVING COUNT(MADA)>=2

Thứ tự thực thi của câu truy vấn trên đƣợc thể hiện nhƣ sau:
1. FROM: Xác định các quan hệ liên quan là NHANVIEN và THAMGIA
NHANVIEN THAMGIA
MANVHOTENPHAI MANV MADA SOGIO
NV001Trần Văn TuấnNam NV002Đỗ ThịNV01 DA1 20 Thị LanNữ NV004Trần MinhNam
BìnhNữ NV003Nguyễn
NV01 DA2 30
NV02 DA1 15
NV02 DA3 25
NV03 DA3 10

2. WHERE: Thực hiện điều kiện


NHANVIEN.MANV=THAMGIA.MANV

MANV HOTEN PHAI MADA SOGIO


NV001 Trần Văn Tuấn Nam DA1 20
NV001 Trần Văn Tuấn Nam DA2 30
NV002 Đỗ Thị Bình Nữ DA1 15
NV002 Đỗ Thị Bình Nữ DA3 25
NV003 Nguyễn Thị Lan Nữ DA3 10

Page 6
PHAI=N'Nữ'

MANV HOTEN PHAI MADA SOGIO


NV002 Đỗ Thị Bình Nữ DA1 15
NV002 Đỗ Thị Bình Nữ DA3 25
NV003 Nguyễn Thị Lan Nữ DA3 10

3. GROUP BY: Thực hiện gom nhóm


GROUP BY MANV, HOTEN, TUOI

MANV HOTEN PHAI MADA SOGIO


DA1 15
NV002 Đỗ Thị Bình Nữ
DA3 25
NV003 Nguyễn Thị Lan Nữ DA3 10

4. HAVING: Lấy điều kiện trên nhóm


COUNT(MADA)>=2

MANV HOTEN PHAI MADA SOGIO


DA1 15
NV002 Đỗ Thị Bình Nữ
DA3 25

5. SELECT: Lấy yêu cầu


SELECT MANV, HOTEN, TUOI

MANV HOTEN TUOI PHAI


NV002 Đỗ Thị Bình 32 Nữ

4.3 Phân tích yêu cầu để viết câu truy vấn


+ Yêu cầu của câu truy vấn là gì? => đặt trong SELECT
+ Những bảng nào cần thiết (tối thiểu) sử dụng trong câu truy vấn => FROM
+ Điều kiện câu truy vấn là gì? => WHERE
+ Nhận biết câu truy vấn có gom nhóm hay không? => GROUP BY
+ Có điều kiện nhóm hay không? => HAVING
+ Có dùng truy vấn con hay không? (có...nhiều nhất/ít nhất, không/chưa đăng ký...)
Ví dụ: Cho lƣợc đồ CSDL nhƣ sau:
LOP (MaLop, TenLop)
SINHVIEN(MaSV, HoTen, NgaySinh, Phai, MaLop)
MONHOC(MaMH, TenMH, SoTC)
KETQUA(MaSV, MaMH, Diem)
Hãy phân tích và viết các câu truy vấn sau bằng SQL:
1/ Sinh viên Trần Văn Nam học những môn nào? thông tin liệt kê gồm: mã môn học,
tên môn học.
SELECT MONHOC.MAMH,TENMH
FROM SINHVIEN,MONHOC,KETQUA
Page 7
WHERE SINHVIEN.MASV=KETQUA.MASV
AND MONHOC.MAMH=KETQUA.MAMH
AND HOTEN=N'Trần Văn Nam'

2/ Cho biết mã môn, tên môn và số lượng sinh viên học tương ứng
SELECT MAMH,TENMH,COUNT(MASV)
FROM MONHOC,KETQUA
WHERE MONHOC.MAMH=KETQUA.MAMH
GROUP BY MAMH,TENMH

3/ Mã những môn học nào có số sinh viên học > 50


SELECT MAMH
FROM KETQUA
GROUP BY MAMH
HAVING COUNT(MASV)>50

4/ Mã và tên những lớp nào có số lượng sinh viên nhiều nhất


SELECT MALOP,TENLOP
FROM LOP,SINHVIEN
WHERE LOP.MALOP=SINHVIEN.MALOP
GROUP BY MALOP,TENLOP
HAVING COUNT(MASV)>=ALL(SELECT COUNT(MASV)
FROM SINHVIEN
GROUP BY MALOP)

5/ Mã và tên những môn học nào không có sinh viên học.


SELECT MAMH,TENMH
FROM MONHOC
WHERE MAMH NOT IN(SELECT MAMH
FROM KETQUA)
hoặc
SELECT MAMH,TENMH
FROM MONHOC
WHERE NOT EXISTS(SELECT *
FROM KETQUA
WHERE MONHOC.MAMH=KETQUA.MAMH)

6/ Liệt kê những sinh viên (Mã sv, họ tên) có điểm môn cơ sở dữ liệu cao nhất.
SELECT SINHVIEN.MASV,HOTEN
FROM SINHVIEN,KETQUA,MONHOC
WHERE SINHVIEN.MASV=KETQUA.MASV AND KETQUA.MAMH=MONHOC.MAMH
AND TENMH=N'Cơ sở dữ liệu'
AND DIEM>=ALL(SELECT DIEM
FROM KETQUA,MONHOC
WHERE KETQUA.MAMH=MONHOC.MAMH
AND TENMH=N'Cơ sở dữ liệu')

4.4 Từ câu truy vấn đã có, tìm câu hỏi tƣơng ứng
Dựa vào ý nghĩa của từng mệnh đề trong cấu trúc câu truy vấn để viết ngược từ câu truy vấn
sang yêu cầu câu hỏi.
Ví dụ:
SELECT SINHVIEN.MASV,HOTEN
FROM SINHVIEN,KETQUA,MONHOC

Page 8
WHERE SINHVIEN.MASV=KETQUA.MASV AND KETQUA.MAMH=MONHOC.MAMH
AND TENMH=N'Cơ sở dữ liệu' AND DIEM>=8
Chọn từ các mệnh đề:
SELECT SINHVIEN.MASV,HOTEN =>Cho biết mã và họ tên những sinh viên
WHERE ...TENMH=N'Cơ sở dữ liệu' AND DIEM>=8 => học môn cơ sở dữ liệu,
điểm từ 8 từ 8 trở lên.

=> Cho biết mã và họ tên những sinh viên học môn cơ sở dữ liệu có điểm từ 8 trở lên.
4.5. Xác định khóa chính, khóa ngoại. Viết lệnh SQL tạo khóa chính, khóa ngoại
- Xác định khóa chính, khóa ngoại (xem bài tập chương 2 - giáo trình CSDL khoa CNTT)
- Viết lệnh tạo khóa chính, khóa ngoại: dùng cấu trúc
ALTER TABLE <tên bảng>
ADD CONSTRAINT PK_<tên ràng buộc> PRIMARY KEY (tên cột khóa chính)
ADD CONSTRAINT FK_<tên ràng buộc> FOREIGN KEY(tên cột khóa ngoại)
REFERENCES <tên bảng chứa khóa chính>(tên cột khóa chính)
4.6. Xác định kết quả của câu truy vấn, giải thích từng bƣớc cách thực hiện một câu
truy vấn.
SELECT MONHOC.MAMH,TENMH
FROM MONHOC,KETQUA
WHERE MONHOC.MAMH=KETQUA.MAMH
GROUP BY MONHOC.MAMH,TENMH
HAVING COUNT(MASV)>=ALL(SELECT COUNT(MASV)
FROM KETQUA
GROUP BY MAMH)

- Kết quả: tìm ra danh sách môn học (MAMH, TENMH) với điều kiện là có nhiều sinh viên
học nhất.
- Giải thích: Truy vấn con thực hiện trước cho kết quả là số sinh viên của từng môn học. Từ
khóa >= ALL sẽ tìm được số sinh viên cao nhất. Kết quả này sẽ làm điều kiện cho truy vấn
lớn để tìm được những môn học có số sinh viên học cao nhất.

CHƢƠNG 5: RÀNG BUỘC TOÀN VẸN


*Định nghĩa: Ràng buộc toàn vẹn là các quy tắc được thiết lập trên quan hệ nhằm kiểm tra
dữ liệu mỗi khi thay đổi (thêm/xóa/sửa) phải hợp lý.
Ví dụ: Xét quan hệ MONHOC như sau:

MAMH TENMH SOTC


M001 Cơ sở dữ liệu 3
M002 Thiết kế web 2
M003 Cấu trúc dữ liệu 4
M004 CTRR 3

Trên quan hệ này tồn tại các ràng buộc toàn vẹn:

Page 9
- Giá trị mã môn học phải duy nhất
- Số tín chỉ >=1
* Phân loại ràng buộc toàn vẹn:
- Ràng buộc toàn vẹn trên 1 quan hệ:
+ Liên bộ
+ Miền giá trị
+ Liên thuộc tính
- Ràng buộc toàn vẹn trên nhiều quan hệ:
+ Tham chiếu
+ Liên bộ - liên quan hệ
+ Liên thuộc tính - liên quan hệ
- Liệt kê các ràng buộc toàn vẹn có trên quan hệ.
* Biểu diễn các ràng buộc toàn vẹn:
+ Phát biểu
+ Bối cảnh
+ Nội dung
+ Bảng tầm ảnh hưởng.

Ví dụ 1: Biểu diễn ràng buộc toàn vẹn miền giá trị:


+ Phát biểu: "Số tín chỉ của môn học >=1"
+ Bối cảnh: MONHOC
+ Nội dung:  t  MONHOC: t.SoTC >=1
+ Bảng tầm ảnh hưởng:

Ví dụ 2: Biểu diễn ràng buộc toàn vẹn miền giá trị:


+ Phát biểu: Tuổi của nhân viên phải từ 18 trở lên (>=18)
+ Bối cảnh: NHANVIEN
+ Nội dung:  𝑡  𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁: 𝑡. 𝑇𝑈𝑂𝐼 >= 18
+ Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


NHANVIEN + - +(TUOI)

Ví dụ 3: Biểu diễn ràng buộc tham chiếu giữa PHONGBAN và NHANVIEN:


PHONGBAN(MaPH, TenPH, DiaDiem)
NHANVIEN(MaNV, HoTen, Tuoi, Phai, Luong, MaPH)

Page 10
Lưu ý dạng phát biểu: Mỗi đối tượng thuộc quan hệ chứa khóa ngoại phải có/thuộc
trong quan hệ chứa khóa chính
+ Phát biểu: Mỗi nhân viên phải thuộc về một phòng ban
+ Bối cảnh: NHANVIEN, PHONGBAN
+ Nội dung: 𝑡𝑁𝐻𝐴𝑁𝑉𝐼𝐸𝑁, 𝑢𝑃𝐻𝑂𝑁𝐺𝐵𝐴𝑁: 𝑡. 𝑀𝐴𝑃𝐻 = 𝑢. 𝑀𝐴𝑃𝐻
+ Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


NHANVIEN + - +(MAPH)
PHONGBAN - + +(MAPH)

Ví dụ 4: Biểu diễn ràng buộc tham chiếu giữa PHANCONG và NHANVIEN

NHANVIEN( MaN HoTen, Tuoi, Phai, Luong, MaPH)


PHANCONG(MaNV, MaDA, NgayPC)
+ Phát biểu: Mỗi nhân viên được phân công đề án phải thuộc danh sách nhân viên
+ Bối cảnh... ?
+ Nội dung... ?
+ Bảng tầm ảnh hưởng... ?
Ví dụ 5: Biểu diễn ràng buộc tham chiếu giữa DEAN và PHANCONG
DEAN(MaDA, TenDA, NgayBD, NgayKT)
PHANCONG(MaNV, MaDA, NgayPC)
+ Phát biểu: Mỗi đề án khi phân công cho nhân viên phải thuộc danh sách đề án
+ Bối cảnh... ?
+ Nội dung... ?
+ Bảng tầm ảnh hưởng... ?
Bài tập
Cho lƣợc đồ cơ sở dữ liệu:
PHONGBAN(MaPH, TenPH, DiaDiem)
NHANVIEN(MaNV, HoTen, Tuoi, Phai, Luong, MaPH)
DEAN(MaDA, TenDA, NgayBD, NgayKT)
PHANCONG(MaNV, MaDA, NgayPC)
Biểu diễn các ràng buộc toàn vẹn sau:
1/ Các RBTV liên bộ có trên mỗi quan hệ
2/ Các RBTV tham chiếu có trên NHANVIEN, PHANCONG
3/ RBTV miền giá trị có trên NHANVIEN
Page 11
4/ RBTV liên thuộc tính có trên DEAN
5/ RBTV liên thuộc tính – liên quan hệ có trên DEAN, PHANCONG

CHƢƠNG 6: PHỤ THUỘC HÀM


6.1 Phụ thuộc hàm
- Phụ thuộc hàm là gì?
X  Y: Đọc là X xác định Y hoặc Y phụ thuộc hàm vào X
Mỗi giá trị tại X xác định (tìm được) duy nhất một giá trị tại Y
Ví dụ 1:

MASV  TENSV
MASV  TUOI
MASV  PHAI
MASV  MALOP
Có thể viết gộp: MASV  TENSV, TUOI, PHAI, MALOP
Giải thích: Vì biết được mã sinh viên sẽ xác định (tìm được) chính xác tên sv, tuổi, phái và
mã lớp. Ví dụ có mã sv là SV003 sẽ tìm được chính xác tên sinh viên là LAN, tuổi 20, phái
Nữ và thuộc lớp có mã lớp là 03.
6.2 Hệ tiên đề armstrong
Cho lược đồ quan hệ R, tập thuộc tính U và X,Y,Z,W  U
1. Luật phản xạ: 𝑁e𝑢 𝑌  X 𝑡ℎì X  𝑌 (tập lớn xác định tập con)
2. Luật tăng trưởng: 𝑁e𝑢  𝑈 X  𝑌 𝑡ℎì X  𝑌
3. Luật ắc cầu: 𝑁e𝑢 X  𝑌 𝑌  𝑡ℎì X 
4. Luật phân r : 𝑁e𝑢 X  𝑌 𝑡ℎì X  𝑌 X  (lưu ý: Chỉ được phân rã vế phải)
5. Luật hợp: 𝑁e𝑢 X  𝑌 X  𝑡ℎì X  𝑌
6. Luật tựa bắc cầu: 𝑁e𝑢 X  𝑌 𝑌  𝑡ℎì X 

Ví dụ 2: Cho R(ABCD), F={AB, C D}. Chứng minh AC  ABCD


Ta có: AB => AC BC (tăng trưởng C) (1)
C D => AC AD (tăng trưởng A) (2)
(1) và (2) => AC  ABCD (hợp)

Ví dụ 3: Cho R(ABCDE), F={BC, AE, BCA, DB}. Chứng minh: DAEC


Ta có: DB, BC => D  C (bắc cầu) (1)
DB (giả thuyết), D  C => D  BC (hợp)
Page 12
D  BC, BC  A(gt) => D  A (bắc cầu)
(2) D  A, A  E (gt) => D  E (bắc cầu)
(3) Từ (1),(2),(3)=> D  AEC (hợp)
6.2 Bao đóng của một tập thuộc tính
Thuật toán tìm ao đóng:


Chodụlược
4: đồ
Cho R(ABCDE),
quan F={BC,
hệ , tập thuộc tính U, tập AE, BCA,
phụ thuộc DB}
hàm F, X  . Cần tìm ao đóng X+F ?
Phương pháp:
Tìm ao đóng của các tập thuộc tính: BC (BC+F=?)
Tính liên tiếp tập các thuộc tính X0, X1, X2, theo các ước:
1. Đặt XX00=BC
=X
X 1 x0tA=ABC
2. Lần lược=X các phụ thuộc(xét
hàm phụ củathuộc
, nếu hàm
YZBCA)
có Y Xi thì Xi+1 = Xi  Z, loại YZ ra khỏi
3. TiếpXtục cho đến
2=X1E=ABCEkhi X =X
i+1 (xét
i thì phụ thuộc hàmkết
thuật toán dừng, luận: X+F = Xi
AE)
X3=X2 dừng
=> BC+ = F
ABCE
Tương tự, tìm ao đóng của các tập thuộc tính D, AE?

Định lý
Nếu X+F  Y <=> X  Y
Ví dụ 5: Áp dụng định lý để chứng minh phụ thuộc hàm ở ví dụ 2 và ví dụ 3
* Cho R(ABCD), F={AB, C D}. Chứng minh AC  ABCD
AC+ =ACBD
F
= ABCD (vế phải của pth) => theo định lý trên thì AC  ABCD
* Cho R(ABCDE), F={BC, AE, BCA, DB}. Chứng minh:
DAEC
F
D+ =DBCAE  AEC => DAEC
6.3 Chứng minh một tập thuộc tính là khóa
Cho lược đồ quan hệ R, tập thuộc tính U, tập phụ thuộc hàm F, XU. Ta nói X là một khóa
của R nếu thỏa điều kiện sau:
Ví dụ 6: Cho R(ABCDE), F = {AB, CE, DC, EBD}
1. XU (X+=U)
Chứng minh AD là một khoá của R
2.  YX thì Y➦U (Y+ U)
+ Chứng minh điều kiện 1: ADU?
Ta có: AD+F=ADCEB=U=> ADU (1)

+ Chứng minh điều kiện 2:

Page 13
Xét A  AD, A+ =AB
F
 U =>A ➦U
Xét D  AD, D+ =F
DCE  U =>D ➦U
=> YAD thì Y➦U (2) (1),
(2)=> AD là một khóa của R
6.4. Thuật toán tìm tất cả các khóa
Định nghĩa:
* Tập nguồn: (TN): Gồm các thuộc tính chỉ xuất hiện ở vế trái các phụ thuộc hàm hoặc các
thuộc tính thuộc nhưng không xuất hiện trong các phụ thuộc hàm.
* Tập trung gian (TG): Gồm các thuộc tính xuất hiện ở cả 2 vế các phụ thuộc hàm.
Ví dụ 7: Cho R(ABCDEG), F={AB, BCD, DAG}. Xác định tập nguồn và tập trung
gian
TN={C, E}, TG={A, B, D}
Thuật toán:

Ví 1.
dụ Xác
8: Cho
địnhR(ABC),
tập nguồnF={ACB,
(TN) và tập BA}. Tìm
trung gian tất cả
(TG). các{TN}
Nếu khoá+F=U
củathì
R {TN} là một khoá
duy TG={A,
TN={C}, nhất của B}
. ngược lại qua ước 2
2. Liệt kê tất cả các tập con Xi của tập trung gian và tính {XiTN}. Nếu {XiTN}+F=U thì
{XiTN} là một siêu khoá Si
3. So sánh các siêu khoá Si và Sj, nếu SiSj thì loại Sj ra khỏi tập khoá K. Các tập thuộc tính
còn lại chính là các khoá.

Lưu ý: Nếu TN+F=U thì R có 1 khoá duy nhất là tập nguồn


Ví dụ 9: Cho R(ABCDE), F={A  CE, DB  E, E  B}. Tìm tất cả các khoá của R
TN={A, D}, TG={B, E}
TN+F=ADCEB=U => R có 1 khoá duy nhất là tập nguồn AD
6.5 Các dạng chuẩn
6.5.1. Dạng chuẩn 1: Xem slide bài giảng.
Lưu ý: Lược đồ quan hệ bất kỳ xem như đạt chuẩn 1 nên không cần kiểm tra R có đạt chuẩn
1 hay không.

Page 14
6.5.2. Dạng chuẩn 2:
*Định
Khoá: DùngMột
nghĩa: thuật toánđồtìm
lược khoá
quan hệ đểđược
tìm gọi
ra tất
là cả
đạtcác khoánếu
chuan của mọi
lượcthuộc
đồ R tính không khóa
*đều phụ tính
Thuộc thuộc đầy đủ
không vào=U-{tập
khoá: khóa các thuộc tính khoá}

Ví dụ 10: R(ABCDE) có 2 khoá là AB và AE


Thuộc tính không khoá=U-{A,B,E}={C,D}
* Phụ thuộc đầy đủ: Xét XY, Y được gọi là phụ thuộc đầy đủ vào X nếu  ZX thì Z➦Y
Ví dụ 11: R(ABCDE), F={ABE, D CE, A D}
Xét phụ thuộc hàm ABE. Hỏi E có phụ thuộc đầy đủ vào AB không?
Ta có AAB mà A+F=ADCE  E => A  E => E không phụ thuộc đầy đủ vào AB
* Kiểm tra lƣợc đồ R có đạt chuẩn 2 không?
Ví dụ 12: Cho R(ABCD), F={ABC, BD, BCA}. Kiểm tra có đạt chuan 2 không?
R có 2 khoá: AB và BC (lưu ý: dùng thuật toán để tìm ra tất cả các khoá)
=> thuộc tính ko khóa: U-{A,B,C}=D
Xét BCD, có B BC mà BD (gt) với D là thuộc tính không khoá  D không phụ
thuộc đầy đủ vào khoá BC nên không đạt chuan 2
Lưu ý: xét phụ thuộc hàm BCD phải có cấu trúc: vế trái là khoá và vế phải là thuộc tính
không khoá. Ta được phép ghi BC D mặc dù phụ thuộc hàm này không có trong F vì BC
là khoá thì xác định bất kỳ thuộc tính nào có trong R.
* Nếu tất cả các khoá của R đều có 1 thuộc tính thì R luôn đạt chuẩn 2
Bài tập.
1. Cho R(ABCDE), F={EG  C, E  B, C  DE, EG  A}. Hãy kiểm tra có đạt chuan
2 hay không?
2. Cho R(ABCDEG), F={G  CD, DA  E, D  B, DA  G}. Chứng tỏ không đạt
chuan 2
6.5.3. Dạng chuẩn 3:
Siêu
Địnhkhoá:
nghĩa:MộtMột
tập lược
thuộcđồ
tínhquan
X gọi
hệlà siêu
đượckhoá
gọinếu X chứa
là đạt một khoá
chuan nếu bất
mọikỳphụ thuộc hàm
XYF
Ví dụkhoá thỏa R(ABCD),
13: Cho một trong hai điều kiện
F={AB  C,sau:
B  D, BC  A}
Siêu  Khoá
+ Hoặc X là siêu khóa
+ Hoặc Y là thuộc tính khóa

Page 15
Kiểm tra R có đạt chuan 3 không?
R có 2 khoá: AB và BC (lưu ý: dùng thuật toán để tìm ra tất cả các khoá)
Xét B  D có B không là siêu khoá và D không là thuộc tính khoá  R không đạt chuan 3
6.5.3. Dạng chuẩn BC:

Ví dụ 14:
Định Cho
nghĩa R(ABCD)
: Một lược đồcóquan
= AB hệR CD,
đượcACgọilàB}
đạt chuan BC nếu mọi phụ thuộc
Rhàm
có 2XY
khoá làđều
ABcó
vàvế
ACtrái là siêu
(lưu khóa.
ý: dùng thuật toán để tìm ra tất cả các khoá)
Xét lần lượt các phụ thuộc hàm trong F:
AB  CD: có AB là siêu khoá => thoả chuan BC
AC  B: có AC là siêu khoá => thoả chuan BC
 R đạt chuan BC
6.6. Xác định dạng chuẩn cao nhất của lƣợc đồ
Có 2 cách:
1. Xác định từ chuan 2 -> chuan BC
. Xác định từ chuan BC -> chuan 2
Lưu ý: Lược đồ quan hệ mặc định đạt chuẩn 1 nên ko cần ktra chuẩn 1.
Nếu chuẩn cao nhất của R là:
– Chuan 1 => cần chứng minh R ko đạt chuan 2.
– Chuan 2 => cần chứng minh R đạt chuan và R không đạt chuan 3
– Chuan 3 => cần chứng minh R đạt chuan và R không đạt chuan BC
– Chuan BC => cần chứng minh R đạt chuan BC
Ví dụ 15: Cho R(ABCDE), F={DB  A, E  CB, D  BA, C  E}. Hãy xác định dạng
chuan cao nhất của R?
R có 2 khoá: DC và DE, thuộc tính không khoá là A, B
Kiểm tra chuẩn 2:
Xét DC  A, ta có D  DC mà D  BA => D  A => thuộc tính không khoá A phụ thuộc
không đầy đủ vào khoá DC => R không đạt chuan 2
Vì R không đạt chuan 2 nên dạng chuan cao nhất của R là chuan 1.
Bài tập
Xác định dạng chuan cao nhất của các lược đồ sau:
a/ R(A,B,C,D); F={A  C, D  B, C  AD, C  B}
b/ R(A,B,C,D,E); F={BC  D, D  E, D  C}

Page 16
c/ R(A,B,C,D); F={AB  C, B  D, C  AB}
d/ R(A,B,C,D,E); F={A  E, CD  B, E  D, B  C}
e/ R(A,B,C,D,E); F={AE  BCD, C  A, A  E}
f/ R(A,B,C,D,E,G); F={AE  C, CG  A, BD  G, GA  E}

--------------------- CAU HOI ----------------------------


1. Trình bày vai trò của cơ sở dữ liệu trong môt phần mềm ứng dụng?
Cơ sở dữ liệu (CSDL) là một phần quan trọng của hầu hết các phần mềm ứng dụng hiện đại. CSDL thường chứa
thông tin về các đối tượng và hoạt động liên quan như người dùng, sản phẩm, đơn hàng, v.v... Lợi ích của việc sử
dụng cơ sở dữ liệu trong phần mềm ứng dụng bao gồm:
1. Tính toàn vẹn dữ liệu: Với cơ sở dữ liệu, các loại lỗi dữ liệu có thể được kiểm tra và khắc phục để đảm bảo tính
toàn vẹn dữ liệu.
2. Truy xuất dữ liệu: Các dữ liệu được lưu trữ trong cơ sở dữ liệu có thể được truy xuất và lấy ra cho các mục đích
xử lý dữ liệu như in, xuất file Excel, v.v...
3. Tính nhất quán dữ liệu: Sử dụng cơ sở dữ liệu giúp đảm bảo rằng các dữ liệu được lưu trữ đồng nhất và không
có sự sai khác.
4. Chia sẻ dữ liệu: Dữ liệu được lưu trữ trong cơ sở dữ liệu có thể được chia sẻ giữa nhiều ứng dụng khác nhau.
5. Giảm thiểu thời gian phát triển: Sử dụng cơ sở dữ liệu giúp giảm thiểu thời gian phát triển ứng dụng bằng cách
sử dụng các công cụ quản lý cơ sở dữ liệu như Entity Framework hoặc LINQ.
Tóm lại, cơ sở dữ liệu đóng một vai trò rất quan trọng trong phát triển phần mềm ứng dụng và giúp cho việc quản
lý dữ liệu trở nên dễ dàng và tiết kiệm thời gian.
2. Hãy liệt kê một số cách lưu trữ khác và so sánh với việc lưu trữ bằng cơ sở dữ liệu?
Ngoài cơ sở dữ liệu, còn có các cách lưu trữ khác như:
1. File system: Lưu trữ dữ liệu trong các tệp tin và thư mục trên đĩa cứng hoặc bộ nhớ flash. Tuy nhiên, việc quản
lý dữ liệu sẽ không được hiệu quả và thiếu tính bảo mật.
2. NoSQL database: Đây là loại cơ sở dữ liệu phi quan hệ, thường được sử dụng cho các ứng dụng web và các ứng
dụng đám mây. NoSQL database thường có khả năng mở rộng tốt hơn so với cơ sở dữ liệu quan hệ, nhưng lại
thiếu tính linh hoạt và khả năng truy vấn phức tạp.
3. Key-value store: Dữ liệu được lưu trữ theo cặp key-value, giúp cho việc truy xuất nhanh chóng và hiệu quả.
Tuy nhiên, key-value store không thể hiện được mối quan hệ giữa các đối tượng.
So sánh với cơ sở dữ liệu, các phương pháp lưu trữ này thường thiếu tính bảo mật, tính linh hoạt trong việc truy
vấn dữ liệu và khả năng mở rộng. Cơ sở dữ liệu cung cấp tính toàn vẹn dữ liệu và quản lý dữ liệu hiệu quả hơn
các phương pháp khác. Bên cạnh đó, việc sử dụng các công cụ quản lý cơ sở dữ liệu như SQL Server, Oracle hoặc
MySQL giúp cho việc phát triển ứng dụng được nhanh chóng và tiết kiệm thời gian hơn.
3. Hãy cho biết trong trường hợp nào nên dùng cơ sở dữ liệu, trường hợp nào có thể không dùng cơ sở dữ
liệu để lưu trữ
Việc sử dụng cơ sở dữ liệu phải được xem xét kỹ lưỡng, tùy thuộc vào tính chất và yêu cầu của ứng dụng. Dưới
đây là một số trường hợp nên và không nên sử dụng cơ sở dữ liệu:

Nên sử dụng cơ sở dữ liệu trong những trường hợp:


1. Ứng dụng có dữ liệu phức tạp với nhiều mối quan hệ giữa các bảng hoặc đối tượng.
2. Ứng dụng cần thao tác với dữ liệu nhanh chóng và hiệu quả.
3. Dữ liệu cần được bảo mật và quản lý chặt chẽ.
4. Ứng dụng có nhiều người dùng cùng truy cập và cập nhật dữ liệu.
5. Cần thực hiện các truy vấn phức tạp hoặc phân tích dữ liệu.
Không nên sử dụng cơ sở dữ liệu trong những trường hợp:
1. Ứng dụng có dữ liệu đơn giản và không có mối quan hệ giữa các đối tượng.
2. Ứng dụng cần lưu trữ dữ liệu tạm thời hoặc có tính chất tạm thời.
3. Dữ liệu không quan trọng và không cần phải được bảo mật.
4. Các tập tin hoặc hình ảnh có kích thước lớn.
Tuy nhiên, việc sử dụng cơ sở dữ liệu hay không phụ thuộc vào yêu cầu cụ thể của từng ứng dụng và mục đích sử
dụng dữ liệu đó. Do đó, việc đánh giá và lựa chọn phương án lưu trữ phù hợp là rất quan trọng trong quá trình
phát triển ứng dụng.
4. Hãy kể tên một công ty hoặc tổ chức. doanh nghiệp có sử dụng cơ sở dữ liệu. Trình bày dấu hiệu nhận
Page 17
biết tại công ty đó có sự tương tác với cơ sở dữ liệu?
Một ví dụ về công ty sử dụng cơ sở dữ liệu là Google. Google sử dụng cơ sở dữ liệu để lưu trữ thông tin về các
trang web trên Internet, kết quả tìm kiếm và hơn thế nữa. Dưới đây là một số dấu hiệu nhận biết tại công ty có sự
tương tác với cơ sở dữ liệu:
1. Công ty sử dụng phần mềm quản lý cơ sở dữ liệu như SQL Server, Oracle hoặc MySQL.
2. Công ty có các chức năng liên quan đến cơ sở dữ liệu như thêm, sửa, xóa, truy vấn dữ liệu.
3. Công ty có các ứng dụng liên quan đến dữ liệu như phân tích dữ liệu, báo cáo, xuất dữ liệu.
4. Công ty có các chức năng bảo mật dữ liệu như đăng nhập, phân quyền người dùng.
5. Công ty có các kế hoạch sao lưu và khôi phục dữ liệu.
Nếu công ty có những dấu hiệu này thì có thể nhận biết rằng họ có sự tương tác với cơ sở dữ liệu.
5. Hãy kể tên 3 hệ quản trị cơ sở dữ liệu quan hệ, 2 hệ quản trị cơ sở dữ liệu không quan hệ, 1 hệ quản trị cơ
sở dữ liệu hướng đối tượng
3 hệ quản trị cơ sở dữ liệu quan hệ:
1. MySQL
2. Microsoft SQL Server
3. Oracle Database
2 hệ quản trị cơ sở dữ liệu không quan hệ:
1. MongoDB
2. Cassandra
1 hệ quản trị cơ sở dữ liệu hướng đối tượng:
1. db4o (Database for Objects)
6. Hãy trình bày các nhóm người dùng trên cơ sở dữ liệu. Mỗi nhóm cho ví dụ minh học
Các nhóm người dùng trên cơ sở dữ liệu phổ biến bao gồm:
1. Người quản trị cơ sở dữ liệu (Database Administrator - DBA): Là người có trách nhiệm giám sát và quản lý
toàn bộ cơ sở dữ liệu. Công việc của họ bao gồm thiết kế cơ sở dữ liệu, tối ưu hóa hiệu suất, sao lưu và khôi phục
dữ liệu, đảm bảo tính bảo mật và sẵn sàng hỗ trợ cho các người dùng khác trong tổ chức. Ví dụ: DBA của công ty
ABC.
2. Nhà phát triển ứng dụng (Application Developer): Là người sử dụng cơ sở dữ liệu để xây dựng các ứng dụng.
Họ có thể tạo ra các ứng dụng với các ngôn ngữ lập trình như Java, C#, Python và sử dụng các công cụ quản lý cơ
sở dữ liệu như Entity Framework hoặc LINQ để truy xuất và xử lý dữ liệu. Ví dụ: Nhà phát triển ứng dụng tại
công ty XYZ.
3. Người dùng cuối (End user): Là người sử dụng các ứng dụng được xây dựng trên cơ sở dữ liệu. Họ thường là
nhân viên trong tổ chức và sử dụng các ứng dụng để thao tác với dữ liệu. Ví dụ: Nhân viên bán hàng của công ty
QWE sử dụng ứng dụng quản lý đơn hàng để nhập thông tin đơn hàng mới.
Các nhóm người dùng này có mối quan hệ phức tạp với cơ sở dữ liệu và trách nhiệm khác nhau khi sử dụng cơ sở
dữ liệu. Việc hiểu rõ về các nhóm người dùng này sẽ giúp cho việc quản lý và phát triển cơ sở dữ liệu trở nên dễ
dàng hơn.
7. Hãy trình bày kiến trúc 3 mức của một hệ cơ sở dữ liệu. Nêu ví dụ minh họa
Kiến trúc 3 mức của một hệ cơ sở dữ liệu bao gồm:

1. Mức Cơ sở dữ liệu (Physical level): Mức này miêu tả cách cơ sở dữ liệu được lưu trữ trên đĩa cứng, bao gồm
các chi tiết về cấu trúc file, khối và bộ nhớ đệm. Các đối tượng của mức này bao gồm các block, trang, extent và
segment. Đây là mức thấp nhất của kiến trúc cơ sở dữ liệu và hầu hết người dùng không cần quan tâm đến nó.
Ví dụ: Một bảng trong cơ sở dữ liệu Oracle được lưu trữ trên đĩa cứng dưới dạng một hoặc nhiều segment, mỗi
segment lại được chia thành nhiều extents và mỗi extent lại được chia thành nhiều block.
2. Mức Mô tả (Logical level): Mức này miêu tả cách dữ liệu được tổ chức theo các khái niệm logic và mối quan
hệ giữa chúng. Các đối tượng của mức này bao gồm các bảng, trường, ràng buộc và quan hệ giữa các bảng.
Ví dụ: Trong hệ cơ sở dữ liệu MySQL, một bảng có thể được tạo ra với các trường như id, name và address. Mối
quan hệ giữa các bảng được xác định thông qua khóa ngoại.
3. Mức Ứng dụng (View level): Mức này miêu tả cách người dùng cuối truy xuất và xử lý dữ liệu. Các đối tượng
của mức này bao gồm các view, thủ tục lưu trữ và các câu lệnh truy vấn. Người dùng có thể sử dụng các công cụ
truy vấn để truy xuất dữ liệu từ cơ sở dữ liệu.
Ví dụ: Người dùng có thể truy vấn các thông tin sản phẩm trong cơ sở dữ liệu bằng câu lệnh SQL như SELECT
ProductName, Price FROM Products WHERE CategoryID = 1.
Việc hiểu rõ kiến trúc 3 mức của một hệ cơ sở dữ liệu là rất quan trọng để thiết kế, phát triển và duy trì cơ sở dữ
liệu một cách hiệu quả.
8. Tính chất của cơ sở dữ liệu quan hệ, các hệ thống sử dụng cơ sở dữ liệu quan hệ
Cơ sở dữ liệu quan hệ (Relational Database) là một loại cơ sở dữ liệu được tổ chức theo mô hình quan hệ. Trong
đó, dữ liệu được lưu trữ trong các bảng (table), mỗi bảng gồm nhiều hàng (row) và cột (column). Cột thường biểu
Page 18
diễn cho các thuộc tính của đối tượng, trong khi hàng chứa thông tin về các đối tượng.

Tính chất của cơ sở dữ liệu quan hệ bao gồm:

1. Độ đơn giản: Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) rất đơn giản để sử dụng và triển khai.

2. Tính nhất quán: Dữ liệu trong các bảng liên kết với nhau được đảm bảo tính nhất quán, không xảy ra tình trạng
dữ liệu bị lặp lại hay mất mát dữ liệu.

3. Tính linh hoạt: Các bảng có thể được kết hợp với nhau thông qua các khóa ngoại để truy xuất và lấy dữ liệu từ
nhiều bảng khác nhau.

4. Khả năng mở rộng: Hệ thống RDBMS có thể mở rộng quy mô dữ liệu một cách dễ dàng bằng cách thêm mới
các bảng hoặc các cột trong bảng.

Các hệ thống sử dụng cơ sở dữ liệu quan hệ bao gồm nhiều lĩnh vực, từ các ứng dụng tin học cá nhân đến các hệ
thống doanh nghiệp lớn. Ví dụ như các trang web thương mại điện tử, hệ thống quản lý tài sản, hệ thống quản lý
khách hàng, hệ thống quản lý nhân sự, hệ thống quản lý kho và vận chuyển, và nhiều hệ thống khác.
9. Cơ sở dữ liệu không quan hệ là gì?
Cơ sở dữ liệu không quan hệ (Non-Relational Database hay NoSQL) là một loại cơ sở dữ liệu mà không sử dụng
các bảng, hàng và cột như trong cơ sở dữ liệu quan hệ. Thay vào đó, NoSQL lưu trữ dữ liệu ở dạng tài liệu
(document), đồ thị (graph), hoặc key-value pair.

Các loại cơ sở dữ liệu không quan hệ phổ biến gồm:


1. Cơ sở dữ liệu tài liệu (Document-oriented database): Lưu trữ dữ liệu dưới dạng JSON, XML hoặc BSON. Mỗi
tài liệu có thể có một cấu trúc khác nhau và được lưu trữ trong một kho lưu trữ tài liệu.
2. Cơ sở dữ liệu đồ thị (Graph database): Lưu trữ dữ liệu dưới dạng đồ thị, với các nút (node) và các cạnh (edge)
để biểu diễn các quan hệ giữa các đối tượng.
3. Cơ sở dữ liệu key-value (Key-value store): Lưu trữ dữ liệu dưới dạng key-value, với mỗi dữ liệu được lưu trữ
với một khóa duy nhất và giá trị tương ứng.
4. Cơ sở dữ liệu cột (Column-family database): Lưu trữ dữ liệu dưới dạng bảng, nhưng khác với cơ sở dữ liệu
quan hệ, các bảng có thể có số lượng cột khác nhau và các cột này được lưu trữ trong các dòng (row) khác nhau.
Các loại cơ sở dữ liệu không quan hệ được sử dụng rộng rãi trong các ứng dụng web, đặc biệt là khi xử lý các dữ
liệu phi cấu trúc hoặc dữ liệu lớn.
10. Trình bày các chức năng của hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (DBMS - Database Management System) là một phần mềm được sử dụng để quản lý cơ
sở dữ liệu. Nó cung cấp các chức năng cho phép người dùng tạo, sửa đổi, truy xuất và xóa dữ liệu trong cơ sở dữ
liệu của họ. Dưới đây là một số chức năng chính của hệ quản trị cơ sở dữ liệu:
1. Quản lý dữ liệu: DBMS cung cấp các chức năng để tạo, sửa đổi và xóa dữ liệu trong cơ sở dữ liệu. Nó cho phép
người dùng tạo bảng, thêm, sửa đổi hoặc xóa bản ghi từ các bảng này.
2. Bảo mật dữ liệu: DBMS cung cấp các chức năng bảo mật dữ liệu để đảm bảo rằng chỉ những người được ủy
quyền mới có thể truy cập vào cơ sở dữ liệu. Các tính năng bảo mật như kiểm soát truy cập và mã hóa dữ liệu giúp
đảm bảo an toàn cho dữ liệu quan trọng.
3. Đảm bảo tính nhất quán của dữ liệu: DBMS đảm bảo tính nhất quán của dữ liệu bằng cách áp dụng các ràng
buộc dữ liệu. Ví dụ, một ràng buộc khóa ngoại được sử dụng để đảm bảo rằng một bản ghi trong bảng này phải có
một giá trị liên kết hợp lệ trong bảng khác.
4. Truy xuất dữ liệu: DBMS cung cấp các tính năng để truy xuất dữ liệu từ các bảng trong cơ sở dữ liệu. Người
dùng có thể tìm kiếm và lọc dữ liệu, thực hiện các câu lệnh SELECT để truy xuất dữ liệu từ các bảng và sắp xếp,
nhóm hoặc tổng hợp dữ liệu.
5. Sao lưu và phục hồi dữ liệu: DBMS cung cấp các chức năng sao lưu và phục hồi dữ liệu để đảm bảo rằng dữ
liệu của bạn được bảo vệ. Nó cho phép bạn sao lưu và khôi phục cơ sở dữ liệu của mình vào bất kỳ thời điểm nào
trong quá khứ.
6. Quản lý tương tranh: DBMS cung cấp các tính năng để quản lý tương tranh khi nhiều người sử dụng cùng truy
cập vào cơ sở dữ liệu. Nó hỗ trợ các giao thức khóa và xử lý tương tranh để đảm bảo tính nhất quán của dữ liệu
trong các tình huống này.

Tóm lại, hệ quản trị cơ sở dữ liệu là một phần mềm quan trọng giúp người dùng quản lý và bảo vệ dữ liệu của họ.
Nó cung cấp các tính năng để quản lý và truy xuất dữ liệu, đảm bảo tính nhất quán và bảo mật của dữ liệu, sao lưu
và phục hồi dữ liệu và quản lý tương tranh khi nhiều người sử dụng cùng truy cập vào cơ sở dữ liệu.
Page 19
11. Hãy giải thích mối quan hệ giữa thực thể (entity), loại thực thể (entity class) và thể hiện của thực thể
(entity instance)
Trong mô hình quan hệ thực thể-quan hệ (ER - Entity-Relationship model), các đối tượng của dữ liệu được biểu
diễn như là các thực thể (entities). Các thực thể này có thể thuộc về một loại thực thể cụ thể (entity class) và được
biểu diễn bởi các thể hiện của thực thể (entity instance).

- Thực thể (entity): là một đối tượng trong thế giới thực, có thể được phân biệt và có tính chất riêng biệt. Trong
ER, các thực thể được biểu diễn bằng các hình vuông và có tên gọi riêng. Ví dụ, trong một hệ thống quản lý bán
hàng, thực thể "khách hàng" có thể chứa thông tin về tên, địa chỉ, số điện thoại và email của khách hàng.

- Loại thực thể (entity class): là một nhóm các thực thể có các thuộc tính chung và được đặc trưng bởi một tập
thuộc tính chung. Trong ER, các loại thực thể được biểu diễn bằng các hình vuông có đường xén ngang ở phía
trên và có tên gọi riêng. Ví dụ, trong hệ thống quản lý bán hàng, loại thực thể "sản phẩm" có thể chứa thông tin về
tên sản phẩm, mô tả, giá và số lượng.

- Thể hiện của thực thể (entity instance): là một trường hợp cụ thể của một loại thực thể trong thế giới thực. Trong
ER, các thể hiện của thực thể được đại diện bởi các hình vuông được kẻ nét và có tên gọi riêng. Ví dụ, trong hệ
thống quản lý bán hàng, một thể hiện của thực thể "khách hàng" có thể tương ứng với thông tin chi tiết của một
khách hàng cụ thể.

Vì vậy, mối quan hệ giữa thực thể, loại thực thể và thể hiện của thực thể trong ER là như sau: Một loại thực thể là
một nhóm các thực thể có các thuộc tính chung, trong khi thể hiện của thực thể là một trường hợp cụ thể của một
loại thực thể. Các thực thể được biểu diễn bởi các thể hiện của chúng và thuộc về một loại thực thể cụ thể.

Page 20

You might also like