Professional Documents
Culture Documents
chap01_00-đã gộp-các trang đã xóa-các trang đã xóa
chap01_00-đã gộp-các trang đã xóa-các trang đã xóa
chap01_00-đã gộp-các trang đã xóa-các trang đã xóa
Ví dụ
- Kinh doanh Thông tin
- Ngân hàng và tài chính
- Giáo dục Chọn lọc
- Hành chính
- Giải trí Dữ liệu
- …
Dữ liệu (Data)
- Một mô tả hình thức về thông tin và hoạt động
Tên, địa chỉ, số điện thoại của khách hàng
Báo cáo doanh thu
Đăng ký học phần
Cơ sở dữ liệu 3
Giới thiệu (tt)
Cơ sở dữ liệu (Database)
- Một tập hợp có cấu trúc của những dữ liệu có liên quan
với nhau được lưu trữ trong máy tính
Danh sách sinh viên
Niên giám điện thoại
Danh mục các đề án
- Một CSDL biểu diễn một phần của thế giới thực (thế giới
thu nhỏ)
- CSDL được thiết kế, xây dựng, và lưu trữ với một mục
đích xác định, phục vụ cho một số ứng dụng và người
dùng
- Tập ngẫu nhiên của các dữ liệu không thể xem là một
CSDL
Cơ sở dữ liệu 4
Giới thiệu (tt)
Hệ quản trị CSDL (Database Management System)
- Tập hợp các chương trình cho phép người sử dụng tạo
ra và duy trì CSDL
- Một phần mềm hệ thống cho phép định nghĩa, xây dựng
và xử lý dữ liệu
Định nghĩa – khai báo bộ khung dữ liệu cùng với các mô tả
chi tiết về dữ liệu
Xây dựng – lưu trữ dữ liệu lên bộ nhớ phụ
Xử lý – truy vấn, cập nhật và phát sinh báo cáo
Cơ sở dữ liệu 5
Giới thiệu (tt)
Hệ CSDL (Database System)
Người sử dụng/Lập trình viên
HQT CSDL
Xử lý truy vấn
Cơ sở dữ liệu 6
Một ví dụ về CSDL (tt)
Quản lý đề án của một công ty
- Định nghĩa CSDL
Cấu trúc bảng, bao gồm các thành phần dữ liệu và kiểu dữ
liệu tương ứng
- Xây dựng CSDL
Đưa dữ liệu vào các bảng
- Xử lý CSDL
Thực hiện các truy vấn: “Cho biết những nhân viên thuộc
phòng 5”
Thực hiện các phép cập nhật: “Chuyển nhân viên Nguyễn
Thanh Tùng sang phòng số 1”
Cơ sở dữ liệu 8
Nội dung chi tiết
Giới thiệu
Quá trình phát triển
Một số đặc tính của CSDL
Người sử dụng CSDL
Kiến trúc của HQT CSDL
Các tính năng của HQT CSDL
Các khái niệm
Ngôn ngữ CSDL
Cơ sở dữ liệu 9
Quá trình phát triển
Tập tin (File)
Cơ sở dữ liệu 10
Quá trình phát triển (tt)
Hạn chế
- Dữ liệu bị trùng lắp và dư thừa
- Thiếu tính nhất quán giữa các dữ liệu
- Khó khăn trong việc truy xuất
- Việc chia sẻ dữ liệu bị hạn chế
- Khó khôi phục
Cơ sở dữ liệu 11
Quá trình phát triển (tt)
Cơ sở dữ liệu (Database)
Hệ
Chương trình ứng dụng 2 Quản
Quản lý dữ liệu Trị CSDL
CSDL
Cơ sở dữ liệu 12
Tính tự mô tả
Hệ CSDL không chỉ chứa bản thân CSDL mà còn
chứa định nghĩa đầy đủ (mô tả) của CSDL
Các định nghĩa được lưu trữ trong catalog
- Chứa các thông tin về cấu trúc tập tin, kiểu và dạng thức
lưu trữ của mỗi thành phần dữ liệu và những ràng buộc
dữ liệu
Dữ liệu trong catalog gọi là meta-data (data of data)
Cơ sở dữ liệu 14
Tính độc lập
Vì định nghĩa về cấu trúc CSDL được lưu trữ trong
catalog nên khi có thay đổi nhỏ về cấu trúc ta ít phải
sửa lại chương trình
Chương trình
Độc lập
Dữ liệu
Cơ sở dữ liệu 15
Tính trừu tượng
Hệ CSDL cho phép trình bày dữ liệu ở một mức
trừu tượng cho phép, nhằm che bớt những chi tiết
lưu trữ thật của dữ liệu
Trừu tượng hóa dữ liệu
- Mô hình dữ liệu
Đối tượng
Thuộc tính của đối tượng
Mối liên hệ
Cơ sở dữ liệu 16
Tính nhất quán
Lưu trữ dữ liệu thống nhất
- Tránh được tình trạng trùng lắp thông tin
Có cơ chế điều khiển truy xuất dữ liệu hợp lý
- Tránh được việc tranh chấp dữ liệu
- Bảo đảm dữ liệu luôn đúng tại mọi thời điểm
Cơ sở dữ liệu 17
Các cách nhìn dữ liệu
Hệ CSDL cho phép nhiều người dùng thao tác lên
cùng một CSDL
Mỗi người đòi hỏi một cách nhìn (view) khác nhau
về CSDL
Một view là
- Một phần của CSDL hoặc
- Dữ liệu tổng hợp từ CSDL
Cơ sở dữ liệu 18
Quản trị viên
Có trách nhiệm quản lý hệ CSDL
- Cấp quyền truy cập CSDL
- Điều phối và giám sát việc sử dụng CSDL
Cơ sở dữ liệu 20
Thiết kế viên
Chịu trách nhiệm về
- Lựa chọn cấu trúc phù hợp để lưu trữ dữ liệu
- Quyết định những dữ liệu nào cần được lưu trữ
Liên hệ với người dùng để nắm bắt được những
yêu cầu và đưa ra một thiết kế CSDL thỏa yêu cầu
này
Có thể là 1 nhóm các DBA quản lý các CSDL sau
khi việc thiết kế hoàn tất
Cơ sở dữ liệu 21
Người dùng cuối
Người ít sử dụng
- Ít khi truy cập CSDL, nhưng cần những thông tin khác
nhau trong mỗi lần truy cập và dùng những câu truy vấn
phức tạp
- Người quản lý
Người sử dụng thường xuyên
- Thường xuyên truy vấn và cập nhật CSDL nhờ vào một
số các chức năng đã được xây dựng sẳn
- Nhân viên
Người sử dụng đặc biệt
- Thông thạo về HQT CSDL, tự xây dựng những truy vấn
phức tạp cho công việc
- Kỹ sư, nhà khoa học, người phân tích,…
Cơ sở dữ liệu 22
Kiến trúc của HQT CSDL
Kiến trúc 3 lược đồ
Ánh xạ ngoài/
Ánh xạ quan niệm
Mức quan niệm Lược đồ quan niệm
Ánh xạ quan niệm/
Ánh xạ trong
Lược đồ trong
Mức trong
Cơ sở dữ liệu 24
Kiến trúc của HQT CSDL (tt)
Mức trong (lược đồ trong)
- Mô tả cấu trúc lưu trữ vật lý CSDL
Mức quan niệm (lược đồ quan niệm)
- Mô tả cấu trúc của toàn thể CSDL cho 1 cộng đồng
người sử dụng, gồm thực thể, kiểu dữ liệu, mối liên hệ
và ràng buộc
- Che bớt các chi tiết của cấu trúc lưu trữ vật lý
Mức ngoài (lược đồ ngoài)
- Còn gọi là mức khung nhìn (view)
- Mô tả một phần của CSDL mà 1 nhóm người dùng quan
tâm đến và che dấu phần còn lại của CSDL đối với
nhóm người dùng đó
Cơ sở dữ liệu 25
Kiến trúc của HQT CSDL (tt)
Độc lập dữ liệu
- Độc lập logic
Khả năng thay đổi lược đồ quan niệm mà không thay đổi lược
đồ ngoài hoặc các CTƯD
- Độc lập vật lý
Khả năng thay đổi lược đồ trong mà không làm thay đổi lược
đồ quan niệm cũng như lược đồ ngoài
Cơ sở dữ liệu 26
Các tính năng của HQT CSDL
Kiểm soát được tính dư thừa của dữ liệu
- Tích hợp các nhu cầu dữ liệu của người dùng để xây
dựng một CSDL thống nhất
Chia sẻ dữ liệu
- Trong môi trường đa người dùng, các HQT phải cho
phép truy xuất dữ liệu đồng thời
Hạn chế những truy cập không cho phép
- Từng người dùng và nhóm người dùng có một tài khoản
và mật mã để truy xuất dữ liệu
Cung cấp nhiều giao diện
- HQT cung cấp ngôn ngữ giữa CSDL và người dùng
Cơ sở dữ liệu 29
Các tính năng của HQT CSDL (tt)
Đảm bảo các ràng buộc toàn vẹn
- RBTV (Integrity Constraints) là những qui định cần được
thỏa mãn để đảm bảo dữ liệu luôn phản ánh đúng ngữ
nghĩa của thế giới thực
- Một số RB có thể được khai báo với HQT và HQT sẽ tự
động kiểm tra. Một số RB khác được kiểm tra nhờ
CTƯD (chuong trinh ung dung)
Khả năng sao lưu dự phòng khi gặp sự cố
- Có khả năng khôi phục dữ liệu khi có sự hư hỏng về
phần cứng hoặc phần mềm
Cơ sở dữ liệu 30
Các tính năng của HQT CSDL (tt)
Các tính năng khác
- Chuẩn hóa
Cho phép DBA định nghĩa và bắt buộc áp dụng một chuẩn
thống nhất cho mọi người dùng
- Uyển chuyển
Khi nhu cầu công việc thay đổi, cấu trúc CSDL rất có thể thay
đổi, HQT cho phép thêm hoặc mở rộng cấu trúc mà không
làm ảnh hưởng đến CTƯD
- Giảm thời gian phát triển ứng dụng
- Tính khả dụng
Khi có một sự thay đổi lên CSDL, tất cả người dùng đều thấy
được
Cơ sở dữ liệu 31
Mô hình dữ liệu
Mô hình dữ liệu (Data Model) bao gồm
- Các khái niệm biểu diễn dữ liệu
- Các phép toán xử lý dữ liệu
Cơ sở dữ liệu 33
Mô hình dữ liệu (tt)
Mô hình mức cao
- Cung cấp các khái niệm gần gũi với người dùng
- Mô hình phải tự nhiên và giàu ngữ nghĩa
- VD: mô hình thực thể kết hợp (ER), mô hình đối tượng…
Mô hình cài đặt
- Đưa ra các khái niệm người dùng có thể hiểu được
nhưng không quá xa với cách dữ liệu được tổ chức thật
sự trên máy tính
- VD: mô hình quan hệ, mô hình mạng, mô hình phân cấp
Mô hình mức thấp (mô hình vật lý)
- Đưa ra các khái niệm mô tả chi tiết về cách thức dữ liệu
được lưu trữ trong máy tính
Cơ sở dữ liệu 34
Ví dụ mô hình ER
dieukien
(0,n)
mhocsau
Cơ sở dữ liệu 35
Ví dụ mô hình đối tượng
SVien
Ten HPhan
Lop hoc
Ten
Nganh
SLuong
1..* 0..*
LapTKB()
InBangDiem() 1
Diem
mo
DiemTH
DiemLT
DiemPrj
0..*
SuaDiem()
MHoc
Ten
Khoa +MHoc truoc
SoTinChi
0..*
CapNhatSTC()
0..* Dieu kien
+MHoc sau
Cơ sở dữ liệu 36
Ví dụ mô hình quan hệ
MHoc
DKien
MaMH
MaMH
TenMH
MaMHTruoc
Khoa
TinChi
Cơ sở dữ liệu 37
Ví dụ mô hình mạng
SVien MHoc
MHOC_SAU
MHOC_MO
MHOC_TRUOC
SVIEN_DIEM
HPhan DKien
KQUA_HPHAN
KQua
Cơ sở dữ liệu 38
Ví dụ mô hình phân cấp
KQua
Mức 1:
DiemTH DiemLT
HPhan SVien
Mức 2: TenSV Lop Nganh
TenHP SLuong
MHoc
Mức 3:
TenMH Khoa TinChi
Cơ sở dữ liệu 39
Lược đồ
Lược đồ CSDL (Database Schema)
- Là các mô tả về cấu trúc và ràng buộc trên CSDL
Cơ sở dữ liệu 40
Thể hiện
Thể hiện CSDL (Database Instance)
- Là dữ liệu hiện thời được lưu trữ trong CSDL ở một thời
điểm nào đó
- Tình trạng của CSDL
Cơ sở dữ liệu 41
Ngôn ngữ CSDL
Ngôn ngữ định nghĩa dữ liệu
(DDL – Data Definition Language)
Xác định ra lược đồ quan niệm
Cơ sở dữ liệu 42
Ngôn ngữ CSDL (tt)
Ngôn ngữ thao tác dữ liệu
(DML – Data Manipulation Language)
Cho phép truy xuất, thêm, xóa, sửa dữ liệu
Mức cao (phi thủ tục)
Mức thấp (thủ tục)
Hết chương I
Cơ sở dữ liệu 43
Giới thiệu
Do tiến sĩ E. F. Codd đưa ra
- “A Relation Model for Large Shared Data Banks”,
Communications of ACM, 6/1970
Cung cấp một cấu trúc dữ liệu đơn giản và đồng bộ
- Khái niệm quan hệ
Có nền tảng lý thuyết vững chắc
- Lý thuyết tập hợp
Là cơ sở của các HQT CSDL thương mại
- Oracle, DB2, SQL Server…
Cơ sở dữ liệu 3
Quan hệ
Các thông tin lưu trữ trong CSDL được tổ chức
thành bảng (table) 2 chiều gọi là quan hệ
1 cột là 1 thuộc tính của nhân viên
Cơ sở dữ liệu 5
Quan hệ (tt)
Quan hệ gồm
- Tên
- Tập hợp các cột
Cố định
Được đặt tên
Có kiểu dữ liệu
- Tập hợp các dòng
Thay đổi theo thời gian
Cơ sở dữ liệu 6
Thuộc tính
Tên các cột của quan hệ
Mô tả ý nghĩa cho các giá trị tại cột đó
Thuộc tính
Cơ sở dữ liệu 7
Lược đồ
Lược đồ quan hệ
- Tên của quan hệ
- Tên của tập thuộc tính
Lược đồ quan hệ
Là tập hợp
Cơ sở dữ liệu 8
Lược đồ (tt)
Lược đồ CSDL
- Gồm nhiều lược đồ quan hệ
Lược đồ CSDL
Cơ sở dữ liệu 9
Bộ
Là các dòng của quan hệ (trừ dòng tiêu đề - tên của
các thuộc tính)
Thể hiện dữ liệu cụ thể của các thuộc tính trong
quan hệ
Dữ liệu cụ thể
của thuộc tính
Cơ sở dữ liệu 10
Miền giá trị
Là tập các giá trị nguyên tố gắn liền với một thuộc
tính
- Kiểu dữ liệu cơ sở
Chuỗi ký tự (string)
Số (integer)
- Các kiểu dữ liệu phức tạp
Tập hợp (set)
Danh sách (list)
Không được chấp nhận
Mảng (array)
Bản ghi (record)
Ví dụ
- TENNV: string
- LUONG: integer
Cơ sở dữ liệu 11
Định nghĩa hình thức
Lược đồ quan hệ
- Cho A1, A2, …, An là các thuộc tính
- Có các miền giá trị D1, D2, …, Dn tương ứng
- Ký hiệu R(A1:D1, A2:D2, …, An:Dn) là một lược đồ quan hệ
vi
Cơ sở dữ liệu 13
Tóm tắt các ký hiệu
Lược đồ quan hệ R bậc n
- R(A1, A2, …, An)
Tập thuộc tính của R
- R+
Quan hệ (thể hiện quan hệ)
- R, S, P, Q
Bộ
- t, u, v
Miền giá trị của thuộc tính A
- DOM(A) hay MGT(A)
Giá trị tại thuộc tính A của bộ thứ t
- t.A hay t[A]
Cơ sở dữ liệu 14
Ràng buộc toàn vẹn
RBTV (Integrity Constraint)
- Là những qui tắc, điều kiện, ràng buộc cần được thỏa
mãn cho mọi thể thiện của CSDL quan hệ
Cơ sở dữ liệu 16
Siêu khóa
Các bộ trong quan hệ phải khác nhau từng đôi một
Siêu khóa (Super Key)
- Gọi SK là một tập con khác rỗng các thuộc tính của R
- SK là siêu khóa khi
r, t1,t2 r, t1 t2 t1[SK] t2[SK]
- Siêu khóa là tập các thuộc tính dùng để xác định tính
duy nhất của mỗi bộ trong quan hệ
- Mọi lược đồ quan hệ có tối thiểu một siêu khóa
Cơ sở dữ liệu 17
Khóa
Định nghĩa
- Gọi K là một tập con khác rỗng các thuộc tính của R
- K là khóa nếu thỏa đồng thời 2 điều kiện
K là một siêu khóa của R
K’ K , K’ K , K’ không phải là siêu khóa của R
Nhận xét
- Giá trị của khóa dùng để nhận biết một bộ trong quan hệ
- Khóa là một đặc trưng của lược đồ quan hệ, không phụ
thuộc vào thể thiện quan hệ
- Khóa được xây dựng dựa vào ý nghĩa của một số thuộc
tính trong quan hệ
- Lược đồ quan hệ có thể có nhiều khóa
Cơ sở dữ liệu 18
Khóa chính
Xét quan hệ
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHONG)
- Có 2 khóa
MANV
HONV, TENNV, NGSINH
- Khi cài đặt quan hệ thành bảng (table)
Chọn 1 khóa làm cơ sở để nhận biết các bộ
Khóa có ít thuộc tính hơn
Khóa được chọn gọi là khóa chính (PK - primary key)
Các thuộc tính khóa chính phải có giá trị khác null
Các thuộc tính khóa chính thường được gạch dưới
Cơ sở dữ liệu 19
Tham chiếu
Một bộ trong quan hệ R, tại thuộc tính A nếu nhận
một giá trị từ một thuộc tính B của quan hệ S, ta gọi
R tham chiếu S
- Bộ được tham chiếu phải tồn tại trước
TENPHG MAPHG
Nghien cuu 5
S
Dieu hanh 4
Quan ly 1
Cơ sở dữ liệu 20
Khóa ngoại
Xét 2 lược đồ R và S
- Gọi FK là tập thuộc tính khác rỗng của R
- FK là khóa ngoại (Foreign Key) của R khi
Các thuộc tính trong FK phải có cùng miền giá trị với các
thuộc tính khóa chính của S
Giá trị tại FK của một bộ t1R
Hoặc bằng giá trị tại khóa chính của một bộ t2S
Hoặc bằng giá trị rỗng
Ví dụ
Khóa chính
Cơ sở dữ liệu 21
Khóa ngoại (tt)
Nhận xét
- Trong một lược đồ quan hệ, một thuộc tính vừa có thể
tham gia vào khóa chính, vừa tham gia vào khóa ngoại
- Khóa ngoại có thể tham chiếu đến khóa chính trên cùng
1 lược đồ quan hệ
- Có thể có nhiều khóa ngoại tham chiếu đến cùng một
khóa chính
- Ràng buộc tham chiếu = Ràng buộc khóa ngoại
Cơ sở dữ liệu 22
Các đặc trưng của quan hệ
Thứ tự các bộ trong quan hệ là không quan trọng
HONV TENNV NGSINH DCHI PHAI LUONG PHG
khác
Cơ sở dữ liệu 25
Các đặc trưng của quan hệ (tt)
Mỗi giá trị trong một bộ
- Hoặc là một giá trị nguyên tố
- Hoặc là một giá trị rỗng (null)
Cơ sở dữ liệu 26
Các qui tắc chuyển đổi
(1) Tập thực thể
- Các tập thực thể (trừ tập thực thể yếu) chuyển thành các
quan hệ có cùng tên và tập thuộc tính
MANV
NGSINH LUONG DCHI TENPHG MAPHG
HONV
(1,1) (1,n)
TENNV NHANVIEN Lam_viec PHONGBAN
PHAI
(1,1) (1,1)
La_truong_phong
PHONGBAN(TENPHG, MAPHG)
Cơ sở dữ liệu 28
Các qui tắc chuyển đổi (tt)
(2) Mối quan hệ
- (2a) Nhiều-Nhiều
Tạo một quan hệ mới có
Tên quan hệ là tên của mối quan hệ
Thuộc tính là những thuộc tính khóa của các tập thực thể liên quan
MANV
NGSINH LUONG DCHI
DDIEM_DA
HONV
MADA
TENNV NHANVIEN THOIGIAN DEAN
TENDA
PHAI (1,n) (1,n)
Phan_cong
Cơ sở dữ liệu 29
Các qui tắc chuyển đổi (tt)
(2) Mối quan hệ
- (2b) Một-Nhiều
Thêm vào quan-hệ-một thuộc tính khóa của quan-hệ-nhiều
MANV
NGSINH LUONG DCHI TENPHG MAPHG
HONV
(1,1) (1,n)
TENNV NHANVIEN Lam_viec PHONGBAN
PHAI
Cơ sở dữ liệu 30
Các qui tắc chuyển đổi (tt)
(2) Mối quan hệ
- (2c) Một-Một
Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia
Hoặc thêm thuộc tính khóa vào cả 2 quan hệ
MANV
NGSINH LUONG DCHI TENPHG MAPHG
HONV
NG_NHANCHUC
TENNV NHANVIEN PHONGBAN
(1,1) (1,1)
PHAI La_truong_phong
Cơ sở dữ liệu 31
Các qui tắc chuyển đổi (tt)
(3) Thực thể yếu
- Chuyển thành một quan hệ
Có cùng tên với thực thể yếu
Thêm vào thuộc tính khóa của quan hệ liên quan
MANV
NGSINH LUONG DCHI
HONV
(1,n)
TENNV NHANVIEN Co_than_nhan QUANHE
NGSINH
PHAI (1,1)
PHAI
THANNHAN
TENTN
Cơ sở dữ liệu 32
Giới thiệu
Xét một số xử lý trên quan hệ NHANVIEN
- Thêm mới một nhân viên
- Chuyển nhân viên có tên là “Tùng” sang phòng số 1
- Cho biết họ tên và ngày sinh các nhân viên có lương
trên 20000
TENNV HONV NGSINH DCHI PHAI LUONG PHONG
Cơ sở dữ liệu 3
Giới thiệu (tt)
Có 2 loại xử lý
- Làm thay đổi dữ liệu (cập nhật)
Thêm mới, xóa và sửa
- Không làm thay đổi dữ liệu (rút trích)
Truy vấn (query)
Cơ sở dữ liệu 4
Nhắc lại
Đại số
- Toán tử (operator)
- Toán hạng (operand)
Trong số học
- Toán tử: +, -, *, /
- Toán hạng - biến (variables): x, y, z
- Hằng (constant)
- Biểu thức
(x+7) / (y-3)
(x+y)*z and/or (x+7) / (y-3)
Cơ sở dữ liệu 5
Đại số quan hệ
Biến là các quan hệ
- Tập hợp (set)
Toán tử là các phép toán (operations)
- Trên tập hợp
Hội (union)
Giao (intersec)
Trừ (difference)
- Rút trích 1 phần của quan hệ
Chọn (selection)
Chiếu (projection)
- Kết hợp các quan hệ
Tích Cartesian (Cartesian product)
Kết (join)
- Đổi tên
Cơ sở dữ liệu 6
Đại số quan hệ (tt)
Hằng số là thể hiện của quan hệ
Biểu thức
- Được gọi là câu truy vấn
- Là chuỗi các phép toán đại số quan hệ
- Kết quả trả về là một thể hiện của quan hệ
Cơ sở dữ liệu 7
Phép toán tập hợp
Quan hệ là tập hợp các bộ
- Phép hội R S
- Phép giao R S
- Phép trừ R S
Cơ sở dữ liệu 9
Phép toán tập hợp (tt)
Ví dụ
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAITN)
Cơ sở dữ liệu 10
Phép hội
Cho 2 quan hệ R và S khả hợp
Phép hội của R và S
- Ký hiệu R S
- Là một quan hệ gồm các bộ thuộc R hoặc thuộc S, hoặc
cả hai (các bộ trùng lắp sẽ bị bỏ)
R S = { t / tR tS }
Ví dụ
R A B S A B RUS A B
1 2
2 3
1
Cơ sở dữ liệu 11
Phép giao
Cho 2 quan hệ R và S khả hợp
Phép giao của R và S
- Ký hiệu R S
- Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S
R S = { t / tR tS }
Ví dụ
R A B S A B
1 2
2 3
1
Cơ sở dữ liệu 12
Phép trừ
Cho 2 quan hệ R và S khả hợp
Phép trừ của R và S
- Ký hiệu R S
- Là một quan hệ gồm các bộ thuộc R và không thuộc S
R S = { t / tR tS }
Ví dụ
R A B S A B
1 2
2 3
1
Cơ sở dữ liệu 13
Các tính chất
Giao hoán
RS=SR
RS=SR
Kết hợp
R (S T) = (R S) T
R (S T) = (R S) T
Cơ sở dữ liệu 14
Phép chọn
Được dùng để lấy ra các bộ của quan hệ R
Các bộ được chọn phải thỏa mãn điều kiện chọn P
Ký hiệu
P (R)
Cơ sở dữ liệu 16
Phép chọn (tt)
Kết quả trả về là một quan hệ
- Có cùng danh sách thuộc tính với R
- Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ
R A B C D
(A=B)(D>5) (R)
1 7
5 7
12 3
23 10
Cơ sở dữ liệu 17
Phép chọn (tt)
Phép chọn có tính giao hoán
( p1 p2 (R)) =
Cơ sở dữ liệu 18
Phép chiếu
Được dùng để lấy ra một vài cột của quan hệ R
Ký hiệu
A1, A2, …, Ak(R)
10
20
1
1
A,C (R)
30 1
40 2
Cơ sở dữ liệu 22
Phép chiếu (tt)
Phép chiếu không có tính giao hoán
X,Y (R) = (
X Y (R))
A1, A2, …, An( A1, A2, …, Am(R)) =
Cơ sở dữ liệu 23
Phép chiếu mở rộng
Mở rộng phép chiếu bằng cách cho phép sử dụng
các phép toán số học trong danh sách thuộc tính
Cơ sở dữ liệu 28
Phép chiếu mở rộng (tt)
Ví dụ
- Cho biết họ tên của các nhân viên và lương của họ sau
khi tăng 10%
Cơ sở dữ liệu 29
Chuỗi các phép toán
Kết hợp các phép toán đại số quan hệ
- Lồng các biểu thức lại với nhau
A1, A2, …, Ak
( P (R)) (
P A1, A2, …, Ak (R))
Cơ sở dữ liệu 30
Phép gán
Được sử dụng để nhận lấy kết quả trả về của một
phép toán
- Thường là kết quả trung gian trong chuỗi các phép toán
Ký hiệu
Ví dụ
- B1 S P (R)
Cơ sở dữ liệu 31
Phép đổi tên
Được dùng để đổi tên
- Quan hệ
Xét quan hệ R(B, C, D)
S(R) : Đổi tên quan hệ R thành S
- Thuộc tính
X, C, D (R) : Đổi tên thuộc tính B thành X
S(X,C,D)(R)
Cơ sở dữ liệu 32
Ví dụ 7
Cho biết họ và tên nhân viên làm việc ở phòng số 4
- Quan hệ: NHANVIEN
- Thuộc tính: HONV, TENNV
- Điều kiện: PHG=4
Cơ sở dữ liệu 35
Phép tích Cartesian (tt)
Ví dụ
RS
R A B
1
2
S B C D
10 +
10 +
20 -
10 -
Cơ sở dữ liệu 36
Phép tích Cartesian (tt)
Ví dụ unambiguous
R A B
RS A R.B S.B C D
1
2 1 10 +
1 10 +
1 20 -
S B C D 1 10 -
2 10 +
10 +
2 10 +
10 +
2 20 -
20 -
2 10 -
10 -
Cơ sở dữ liệu 37
Phép tích Cartesian (tt)
Thông thường theo sau phép tích Cartesian là phép
chọn
RS A=S.B (R S)
1 10 + 1 10 +
1 10 + 2 10 +
1 20 - 2 20 -
1 10 -
2 10 +
2 10 +
2 20 -
2 10 -
Cơ sở dữ liệu 38
Ví dụ 8
Với mỗi phòng ban, cho biết thông tin của người
trưởng phòng
- Quan hệ: PHONGBAN, NHANVIEN
- Thuộc tính: TRPHG, MAPHG, TENNV, HONV, …
TENPHG MAPHG TRPHG NG_NHANCHUC
Cơ sở dữ liệu 39
Ví dụ 8 (tt)
B1: Tích Cartesian PHONGBAN và NHANVIEN
PB_NV (NHANVIEN PHONGBAN)
KQ TRPHG=MANV(PB_NV)
Cơ sở dữ liệu 40
Ví dụ 9
Cho biết lương cao nhất trong công ty
- Quan hệ: NHANVIEN
- Thuộc tính: LUONG
Cơ sở dữ liệu 41
Ví dụ 9 (tt)
B1: Chọn ra những lương không phải là lớn nhất
R1 (LUONG (NHANVIEN))
R2 NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN R1)
R3 NHAN_VIEN.LUONG (R2)
Cơ sở dữ liệu 42
Ví dụ 10
Cho biết các phòng ban có cùng địa điểm với phòng
số 5
- Quan hệ: DIADIEM_PHG
- Thuộc tính: DIADIEM, MAPHG
- Điều kiện: MAPHG=5
Phòng 5 có tập hợp những Phòng nào có địa điểm nằm
địa điểm nào? trong trong tập hợp đó?
1 TP HCM 1 TP HCM
4 HA NOI 4 HA NOI
5 VUNGTAU 5 VUNGTAU
5 NHATRANG 5 NHATRANG
5 TP HCM 5 TP HCM
Cơ sở dữ liệu 43
Ví dụ 10 (tt)
B1: Tìm các địa điểm của phòng 5
DD_P5(DD) DIADIEM
( MAPHG=5 (DIADIEM_PHG))
R1 MAPHG5 (DIADIEM_PHG)
R2 DIADIEM=DD (R1 DD_P5)
KQ MAPHG (R2)
Cơ sở dữ liệu 44
Phép kết
Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan
hệ thành 1 bộ
Ký hiệu R S
- R(A1, A2, …, An) và S(B1, B2, …, Bm)
Kết quả của phép kết là một quan hệ Q
- Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm)
- Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn
một số điều kiện kết nào đó
Có dạng Ai Bj
Ai là thuộc tính của R, Bj là thuộc tính của S
Ai và Bj có cùng miền giá trị
là phép so sánh , , , , ,
Cơ sở dữ liệu 46
Phép kết (tt)
Phân loại
- Kết theta (theta join) là phép kết có điều kiện
Ký hiệu R C S
C gọi là điều kiện kết trên thuộc tính
Cơ sở dữ liệu 47
Tập đầy đủ các phép toán ĐSQH
Tập các phép toán , , , , được gọi là tập đầy
đủ các phép toán ĐSQH
- Nghĩa là các phép toán có thể được biểu diễn qua chúng
- Ví dụ
RS = RS ((RS) (SR))
R CS = C(RS)
Cơ sở dữ liệu 57
Phép chia (tt)
Ví dụ
RS
R A B C D E S D E
a a 1 a 1
a a 1 b 1
a b 1
a a 1
a b 3
a a 1
a b 1
a b 1
Cơ sở dữ liệu 60
Phép chia (tt)
Biểu diễn phép chia thông qua tập đầy đủ các phép
toán ĐSQH
Q1 Y (R)
Q2 Q1 S
Q3 Y(Q2 R)
T Q1 Q2
Cơ sở dữ liệu 63
Hàm kết hợp
Nhận vào tập hợp các giá trị và trả về một giá trị
đơn
- AVG
- MIN
- MAX
- SUM
- COUNT
Cơ sở dữ liệu 65
Phép chia
Được dùng để lấy ra một số bộ trong quan hệ R sao
cho thỏa với tất cả các bộ trong quan hệ S
Ký hiệu R S
- R(Z) và S(X)
Z là tập thuộc tính của R, X là tập thuộc tính của S
XZ
Kết quả của phép chia là một quan hệ T(Y)
- Với Y=Z-X
- Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ
tRR thỏa 2 điều kiện
tR(Y) = t R(Z) S(X) T(Y)
tR(X) = tS(X) X Y
Cơ sở dữ liệu 59
Phép gom nhóm
Được dùng để phân chia quan hệ thành nhiều nhóm dựa
trên điều kiện gom nhóm nào đó
Ký hiệu
IF1(A1), F2(A2), …, Fn(An)(E)
G1, G2, …, Gn
Cơ sở dữ liệu 67
Phép kết ngoài
Mở rộng phép kết để tránh mất mát thông tin
- Thực hiện phép kết
- Lấy thêm các bộ không thỏa điều kiện kết
Có 3 hình thức
- Mở rộng bên trái
- Mở rộng bên phải
- Mở rộng 2 bên
Cơ sở dữ liệu 71
Các thao tác cập nhật
Nội dung của CSDL có thể được cập nhật bằng các
thao tác
- Thêm (insertion)
- Xóa (deletion)
- Sửa (updating)
Các thao tác cập nhật được diễn đạt thông qua
phép toán gán
Cơ sở dữ liệu 74
Thao tác thêm
Được diễn đạt
Rnew Rold E
- R là quan hệ
- E là một biểu thức ĐSQH
Ví dụ
- Phân công nhân viên có mã 123456789 làm thêm đề án
mã số 20 với số giờ là 10
Cơ sở dữ liệu 75
Thao tác xóa
Được diễn đạt
Rnew Rold E
- R là quan hệ
- E là một biểu thức ĐSQH
Ví dụ
- Xóa các phân công đề án của nhân viên 123456789
PHANCONG PHANCONG
MANV=‘123456789’(PHANCONG)
Cơ sở dữ liệu 76
Thao tác sửa
Được diễn đạt
Ví dụ
- Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần
Cơ sở dữ liệu 78
3/25/2024
Giới thiệu
Ngôn ngữ ĐSQH
- Cách thức truy vấn dữ liệu
- Khó khăn cho người sử dụng
SQL (Structured Query Language)
- Ngôn ngữ cấp cao
- Người sử dụng chỉ cần đưa ra nội dung cần truy vấn
- Được phát triển bởi IBM (1970s)
- Được gọi là SEQUEL
- Được ANSI công nhận và phát triển thành chuẩn
SQL-86
SQL-92
SQL-99
Cơ sở dữ liệu 3
Cơ sở dữ liệu 4
2
Ví dụ 18
Cho biết họ tên nhân viên và tên phòng ban mà họ
phụ trách nếu có
- Quan hệ: NHANVIEN, PHONGBAN
- Thuộc tính: TENNV, TENPH
Cơ sở dữ liệu 72
3/25/2024
Cơ sở dữ liệu 5
3
3/25/2024
Kiểu dữ liệu
Số (numeric)
- INTEGER
- SMALLINT
- NUMERIC, NUMERIC(p), NUMERIC(p,s)
- DECIMAL, DECIMAL(p), DECIMAL(p,s)
- REAL
- DOUBLE PRECISION
- FLOAT, FLOAT(p)
Cơ sở dữ liệu 7
Cơ sở dữ liệu 8
4
3/25/2024
Cơ sở dữ liệu 9
Ví dụ - Tạo bảng
CREATE TABLE NHANVIEN (
MANV CHAR(9),
HONV VARCHAR(10),
TENLOT VARCHAR(20),
TENNV VARCHAR(10),
NGSINH DATETIME,
DCHI VARCHAR(50),
PHAI CHAR(3),
LUONG INT,
MA_NQL CHAR(9),
PHG INT
)
Cơ sở dữ liệu 10
10
5
3/25/2024
Cơ sở dữ liệu 11
11
Ví dụ - RBTV
CREATE TABLE NHANVIEN (
HONV VARCHAR(10) NOT NULL,
TENLOT VARCHAR(20) NOT NULL,
TENNV VARCHAR(10) NOT NULL,
MANV CHAR(9) PRIMARY KEY,
NGSINH DATETIME,
DCHI VARCHAR(50),
PHAI CHAR(3) CHECK (PHAI IN (‘Nam’, ‘Nu’)),
LUONG INT DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
Cơ sở dữ liệu 12
12
6
3/25/2024
Ví dụ - RBTV
CREATE TABLE PHONGBAN (
TENPB VARCHAR(20) UNIQUE,
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME DEFAULT (GETDATE())
)
Cơ sở dữ liệu 13
13
14
7
3/25/2024
Cơ sở dữ liệu 15
15
Cơ sở dữ liệu 16
16
8
3/25/2024
Xóa RBTV
ALTER TABLE <Tên_bảng> DROP <Tên_RBTV>
Cơ sở dữ liệu 17
17
Cơ sở dữ liệu 18
18
9
3/25/2024
19
Cú pháp
DROP TABLE <Tên_bảng>
Ví dụ
DROP TABLE NHANVIEN
Cơ sở dữ liệu 20
20
10
3/25/2024
NHANVIEN
HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG
PHONGBAN
Cơ sở dữ liệu 21
21
Ví dụ
CREATE DOMAIN Kieu_Ten AS VARCHAR(30)
Cơ sở dữ liệu 22
22
11
3/25/2024
Cơ sở dữ liệu 23
23
Cơ sở dữ liệu 24
24
12
3/25/2024
25
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
SELECT L
L ( R C (R))
FROM
WHERE C
Cơ sở dữ liệu 26
26
13
3/25/2024
Ví dụ
MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG
333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5
987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5
Cơ sở dữ liệu 27
27
Mệnh đề SELECT
Cơ sở dữ liệu 28
28
14
3/25/2024
Tên bí danh
Cơ sở dữ liệu 29
29
Mở rộng
MANV HO TEN
Cơ sở dữ liệu 30
30
15
3/25/2024
Mở rộng
MANV LUONG10%
333445555 33000
987987987 27500
Cơ sở dữ liệu 31
31
SELECT DISTINCT
LUONG LUONG
FROM NHANVIEN
WHERE PHG=5 AND PHAI=‘Nam’
LUONG
30000
25000
- Tốn chi phí
25000
38000 - Người dùng muốn thấy
38000
Cơ sở dữ liệu 32
32
16
3/25/2024
Độ ưu tiên
Cơ sở dữ liệu 35
35
BETWEEN
Cơ sở dữ liệu 36
36
18
3/25/2024
NOT BETWEEN
Cơ sở dữ liệu 37
37
LIKE
Ký tự bất kỳ
SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen %’
Chuỗi bất kỳ
Cơ sở dữ liệu 38
38
19
3/25/2024
NOT LIKE
Cơ sở dữ liệu 39
39
ESCAPE
‘Nguyen_’
Cơ sở dữ liệu 40
40
20
3/25/2024
Ngày giờ
‘1955-12-08 17:30:00’
Cơ sở dữ liệu 41
41
NULL
42
21
3/25/2024
NULL
Cơ sở dữ liệu 43
43
Mệnh đề FROM
MANV MAPHG
333445555 1
333445555 4
333445555 5
987987987 1
987987987 4
987987987 5
… …
Cơ sở dữ liệu 44
44
22
3/25/2024
Tên bí danh
Cơ sở dữ liệu 45
45
Ví dụ 1
Với những đề án ở ‘Ha Noi’, cho biết mã đề án, mã
phòng ban chủ trì đề án, họ tên trưởng phòng cùng
với ngày sinh và địa chỉ của người ấy
Cơ sở dữ liệu 46
46
23
3/25/2024
Ví dụ 4
Tìm họ tên của những nhân viên được “Nguyen
Thanh Tung” phụ trách trực tiếp
Cơ sở dữ liệu 49
49
Mệnh đề ORDER BY
Dùng để hiển thị kết quả câu truy vấn theo một thứ
tự nào đó
Cú pháp
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
ORDER BY <danh sách các cột>
Cơ sở dữ liệu 50
50
25
3/25/2024
MA_NVIEN SODA
999887777 10
999887777 30
987987987 10
987987987 30
987654321 10
987654321 20
987654321 30
Cơ sở dữ liệu 51
51
Cơ sở dữ liệu 52
52
26
3/25/2024
Cơ sở dữ liệu 53
53
Cơ sở dữ liệu 54
54
27
3/25/2024
Ví dụ 7
Tìm những nhân viên không có thân nhân nào
Cơ sở dữ liệu 57
57
Cơ sở dữ liệu 58
58
29
3/25/2024
Cơ sở dữ liệu 59
59
Cơ sở dữ liệu 60
60
30
3/25/2024
Cơ sở dữ liệu 61
61
Ví dụ 5
Cơ sở dữ liệu 62
62
31
3/25/2024
Cơ sở dữ liệu 67
67
Ví dụ 6
Tìm nhân viên có người thân cùng tên và cùng giới
tính
Cơ sở dữ liệu 68
68
34
3/25/2024
Ví dụ 10
Tìm những trưởng phòng có tối thiểu một thân nhân
Cơ sở dữ liệu 71
71
Cơ sở dữ liệu 72
72
36
3/25/2024
R A B C D E S D E RS A B C
a a 1 bi a 1 ai a
a a 1 b 1 a
a b 1
a a 1
a b 3
a a 1
a b 1
a b 1
Cơ sở dữ liệu 73
73
Cơ sở dữ liệu 74
74
37
3/25/2024
Ví dụ 11
Tìm tên các nhân viên được phân công làm tất cả
các đồ án
Cơ sở dữ liệu 75
75
Ví dụ 11 (tt)
Tìm tên các nhân viên được phân công làm tất cả
các đồ án
Cơ sở dữ liệu 76
76
38
3/25/2024
Ví dụ 14
Cho biết số lượng nhân viên của từng phòng ban
PHG SL_NV
5 3
4 3
1 1
MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG
333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5
987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5
453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 5
999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 4
987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 4
987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 4
888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL 1
Cơ sở dữ liệu 81
81
Gom nhóm
Cú pháp
SELECT <danh sách các cột>
FROM <danh sách các bảng>
WHERE <điều kiện>
GROUP BY <danh sách các cột gom nhóm>
Cơ sở dữ liệu 82
82
41
3/25/2024
Ví dụ 14
Cho biết số lượng nhân viên của từng phòng ban
Cơ sở dữ liệu 83
83
Ví dụ 15
Với mỗi nhân viên cho biết mã số, họ tên, số lượng
đề án và tổng thời gian mà họ tham gia
MA_NVIEN SODA THOIGIAN
123456789 1 32.5
123456789 2 7.5
333445555 2 10.0
333445555 3 10.0
333445555 10 10.0
888665555 20 20.0
987987987 10 35.0
987987987 30 5.0
987654321 30 20.0
987654321 20 15.0
453453453 1 20.0
453453453 2 20.0
Cơ sở dữ liệu 84
84
42
3/25/2024
Ví dụ 16
Cho biết những nhân viên tham gia từ 2 đề án trở
lên
MA_NVIEN SODA THOIGIAN
123456789 1 32.5
123456789 2 7.5
333445555 2 10.0
333445555 3 10.0
333445555 10 10.0
888665555 20 20.0 bị loại ra
987987987 10 35.0
987987987 30 5.0
987654321 30 20.0
987654321 20 15.0
453453453 1 20.0
453453453 2 20.0
Cơ sở dữ liệu 85
85
Cơ sở dữ liệu 86
86
43
3/25/2024
Nhận xét
Mệnh đề GROUP BY
- Các thuộc tính trong mệnh đề SELECT (trừ những thuộc
tính trong các hàm kết hợp) phải xuất hiện trong mệnh
đề GROUP BY
Mệnh đề HAVING
- Sử dụng các hàm kết hợp trong mệnh đề SELECT để
kiểm tra một số điều kiện nào đó
- Chỉ kiểm tra điều kiện trên nhóm, không là điều kiện lọc
trên từng bộ
- Sau khi gom nhóm điều kiện trên nhóm mới được thực
hiện
Cơ sở dữ liệu 89
89
Cơ sở dữ liệu 90
90
45
3/25/2024
Ví dụ 12
Tìm tên các nhân viên được phân công làm tất cả
các đồ án
Cơ sở dữ liệu 93
93
Cơ sở dữ liệu 94
94
47
3/25/2024
Cơ sở dữ liệu 95
95
Cú pháp
SELECT <danh sách các cột>
FROM R1, R2, (<truy vấn con>) AS tên_bảng
WHERE <điều kiện>
Cơ sở dữ liệu 96
96
48
3/25/2024
Ví dụ 18
Cho biết những phòng ban (TENPHG) có lương
trung bình của các nhân viên lớn lơn 20000
Cơ sở dữ liệu 97
97
Kết ngoài
Cơ sở dữ liệu 98
98
49
3/25/2024
Cú pháp
CASE <tên cột>
WHEN <giá trị> THEN <biểu thức>
WHEN <giá trị> THEN <biểu thức>
…
[ELSE <biểu thức>]
END
Cơ sở dữ liệu 101
101
Ví dụ 22
Cho biết họ tên các nhân viên đã đến tuổi về hưu
(nam 60 tuổi, nữ 55 tuổi)
Cơ sở dữ liệu 102
102
51
3/25/2024
Cơ sở dữ liệu 107
107
Ví dụ
Cơ sở dữ liệu 108
108
54
3/25/2024
Cơ sở dữ liệu 109
109
Cơ sở dữ liệu 110
110
55
3/25/2024
Ví dụ
CREATE TABLE THONGKE_PB (
TENPHG VARCHAR(20),
SL_NV INT,
LUONG_TC INT
)
Cơ sở dữ liệu 111
111
Lệnh DELETE
Dùng để xóa các dòng của bảng
Cú pháp
Cơ sở dữ liệu 112
112
56
3/25/2024
Cơ sở dữ liệu 115
115
333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 5
987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 5
453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 5
999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 4
987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 4
987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 4
888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL 1
333445555 10 10.0
888665555 20 20.0
987987987 10 35.0
987987987 30 5.0
987654321 30 20.0
453453453 1 20.0
Cơ sở dữ liệu 116
116
58
3/25/2024
MANV HONV TENLOT TENNV NGSINH DCHI PHAI LUONG MA_NQL PHG
333445555 Nguyen Thanh Tung 12/08/1955 638 NVC Q5 Nam 40000 888665555 NULL
5
987987987 Nguyen Manh Hung 09/15/1962 Ba Ria VT Nam 38000 333445555 NULL
5
453453453 Tran Thanh Tam 07/31/1972 543 MTL Q1 Nu 25000 333445555 NULL
5
999887777 Bui Ngoc Hang 07/19/1968 33 NTH Q1 Nu 38000 987654321 4
987654321 Le Quynh Nhu 07620/1951 219 TD Q3 Nu 43000 888665555 4
987987987 Tran Hong Quang 04/08/1969 980 LHP Q5 Nam 25000 987654321 4
888665555 Pham Van Vinh 11/10/1945 450 TV HN Nam 55000 NULL 1
Cơ sở dữ liệu 117
117
Lệnh UPDATE
Dùng để thay đổi giá trị của thuộc tính cho các dòng
của bảng
Cú pháp
UPDATE <tên bảng>
SET <tên thuộc tính>=<giá trị mới>,
<tên thuộc tính>=<giá trị mới>,
…
[WHERE <điều kiện>]
Cơ sở dữ liệu 118
118
59
3/25/2024
Ví dụ
UPDATE NHANVIEN
SET NGSINH=’08/12/1965’
WHERE MANV=‘333445555’
DELETE NHANVIEN
SET LUONG=LUONG*1.1
Cơ sở dữ liệu 119
119
Ví dụ 25
Với đề án có mã số 10, hãy thay đổi nơi thực hiện
đề án thành ‘Vung Tau’ và phòng ban phụ trách là
phòng 5
UPDATE DEAN
SET DIADIEM_DA=’Vung Tau’, PHONG=5
WHERE MADA=10
Cơ sở dữ liệu 120
120
60
3/25/2024
Lệnh UPDATE
Nhận xét
- Những dòng thỏa điều kiện tại mệnh đề WHERE sẽ
được cập nhật giá trị mới
Cơ sở dữ liệu 121
121
Cơ sở dữ liệu 122
122
61
3/25/2024
Khung nhìn
Bảng là một quan hệ được tổ chức lưu trữ vật lý
trong CSDL
Cơ sở dữ liệu 123
123
Cơ sở dữ liệu 124
124
62
3/25/2024
Bảng ảo này có
- Danh sách thuộc tính trùng với các thuộc tính trong
mệnh đề SELECT
- Số dòng phụ thuộc vào điều kiện ở mệnh đề WHERE
- Dữ liệu được lấy từ các bảng ở mệnh đề FROM
Cơ sở dữ liệu 125
125
Ví dụ
Cơ sở dữ liệu 126
126
63
3/25/2024
SELECT TENNV
FROM NV_P5
WHERE HONV LIKE ‘Nguyen’
TENNV
( HONV=‘Nguyen’ (NV_P5))
Cơ sở dữ liệu 127
127
TENNV,TENDA,THOIGIAN(TMP)
Cơ sở dữ liệu 128
128
64
3/25/2024
Cơ sở dữ liệu 129
129
UPDATE NV_P5
SET HONV=‘Pham’
WHERE MANV= ‘123456789’
Cơ sở dữ liệu 130
130
65
3/25/2024
Cơ sở dữ liệu 131
131
Chỉ mục
Chỉ mục trên thuộc tính A là một cấu trúc dữ liệu làm
cho việc tìm kiếm mẫu tin có chứa A hiệu quả hơn
SELECT *
FROM NHANVIEN Đọc 10.000 bộ
Cơ sở dữ liệu 132
132
66
3/25/2024
Ví dụ
Cơ sở dữ liệu 133
133
Cơ sở dữ liệu 134
134
67
3/25/2024
Ví dụ
Xét quan hệ
- PHANCONG(MA_NVIEN, SODA, THOIGIAN)
Giả sử
- PHANCONG được lưu trữ trong 10 block
Chi phí để đọc toàn bộ dữ liệu của PHANCONG là 10
- Trung bình một nhân viên tham gia 3 đề án và một đề án
có khoảng 3 nhân viên làm
Dữ liệu được trải đều trong 10 block
Chi phí để tìm một nhân viên hay một đề án là 3
- Khi sử dụng chỉ mục
Chi phí đọc hay cập nhật chỉ mục
- Thao tác thêm cần 2 lần truy xuất đĩa
Cơ sở dữ liệu 135
135
Ví dụ (tt)
Giả sử có 3 thao tác được thực hiện thường xuyên
- Q1
SELECT SODA, THOIGIAN
FROM PHANCONG
WHERE MA_NVIEN=‘123456789’
- Q2
SELECT MANV
FROM PHANCONG
WHERE SODA=1 AND THOIGIAN=20.5
- Q3
INSERT INTO PHANCONG
VALUES ( 123456789’, 1, 20.5)
Cơ sở dữ liệu 136
136
68
Khái niệm
RBTV (Integrity Constraints) xuất phát từ những qui
định hay điều kiện
- Trong thực tế
- Trong mô hình dữ liệu
Các thao tác làm thay đổi dữ liệu không nên được thực hiện
một cách tùy tiện vì có thể đưa CSDL đến một tình trạng ‘xấu’
(không phản ánh đúng thế giới thực mà mô hình dữ liệu đại
diện)
RBTV là một điều kiện được định nghĩa trên một
hay nhiều quan hệ khác nhau
Các RBTV là những điều kiện bất biến mà mọi thể
hiện của quan hệ đều phải thỏa ở bất kỳ thời điểm
nào
Cơ sở dữ liệu 3
Khái niệm (tt)
Tại sao cần phải có RBTV?
- Bảo đảm tính kết dính của các thành phần cấu tạo nên
CSDL
- Bảo đảm tính nhất quán của dữ liệu
- Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế
Ví dụ
- Mức lương của một người nhân viên không được vượt
quá trưởng phòng (R1)
- Người quản lý trực tiếp (của một nhân viên) phải là một
nhân viên trong công ty (R2)
Cơ sở dữ liệu 4
Bối cảnh
Bối cảnh của một RBTV
- Là những quan hệ có khả năng bị vi phạm RBTV khi
thực hiện các phép cập nhật
Ví dụ (R1)
- Mức lương của một người nhân viên không được vượt
quá trưởng phòng
Các phép cập nhật
Cập nhật lương cho nhân viên
Thêm mới một nhân viên vào một phòng ban
Bổ nhiệm trưởng phòng cho một phòng ban
Bối cảnh: NHANVIEN, PHONGBAN
Cơ sở dữ liệu 6
Nội dung (Điều kiện- Biểu diễn-)
Nội dung của một RBTV được phát biểu bằng
- Ngôn ngữ tự nhiên
Dễ hiểu nhưng thiếu tính chặt chẽ
Cơ sở dữ liệu 8
Nội dung (tt)
Ví dụ (R1)
- Ngôn ngữ tự nhiên
Mức lương của một người nhân viên không được vượt quá
trưởng phòng
Cơ sở dữ liệu 9
Nội dung (tt)
Ví dụ (R2)
- Ngôn ngữ tự nhiên
Người quản lý trực tiếp phải là một nhân viên trong công ty
Cơ sở dữ liệu 10
Bảng tầm ảnh hưởng
Bảng tầm ảnh hưởng
- Xác định thao tác cập nhật nào cần phải kiểm tra RBTV
khi được thực hiện trên quan hệ bối cảnh
Có 2 loại
- Bảng tầm ảnh hưởng cho một RBTV
- Bảng tầm ảnh hưởng tổng hợp
Cơ sở dữ liệu 11
Bảng tầm ảnh hưởng một RBTV
Quan hệ 2
…
Quan hệ n
Cơ sở dữ liệu 12
Ví dụ 3
Cơ sở dữ liệu 16
Ví dụ 4 (tương tự Ví dụ 3)
- Bối cảnh:
- Biểu diễn:
Cơ sở dữ liệu 17
RBTV - Liên bộ
Sự tồn tại của một hay nhiều bộ phụ thuộc vào sự
tồn tại của một hay nhiều bộ khác trong cùng quan
hệ
R A B C D
1 1
5 7
12 3
23 9
Cơ sở dữ liệu 18
Ví dụ 5
PHONGBAN(MAPB,TENPB,TRGPHG,NGAYNC)
Tên phòng là duy nhất (RR1)
Cơ sở dữ liệu 19
Ví dụ 6
PHANCONG( MANV,MADA, THOIGIAN)
Một nhân viên được tham gia tối đa 5 đề án (RR2)
- Bối cảnh: PHANCONG
- Biểu diễn:
Card {p,q PHANCONG: p.MANV = q.MANV} 5
Cơ sở dữ liệu 20
Ví dụ 7
THIDAU(NGAY, GIO, DOI, SOBAN)
Mỗi trận đấu là cuộc thi đấu của đúng 2 đội (RR3)
Cơ sở dữ liệu 21
RBTV - Liên thuộc tính
Là ràng buộc giữa các thuộc tính trong cùng quan
hệ
R A B C D
1 1
5 7
12 3
23 9
Cơ sở dữ liệu 22
Ví dụ 8
NHANVIEN(MANV,HONV,TENNV,NS,PHAI,LUONG, MA_NQL, PHG)
Một nhân viên không quản lý trực tiếp chính mình
(RR4)
- Bối cảnh: NHANVIEN
- Biểu diễn: t NHANVIEN(t.MA_NQL=Null v t.MA_NQL<>t.MANV)
Cơ sở dữ liệu 23
Ví dụ 9
KHOAHOC(MAKH, TENKH, BDAU, KTHUC)
Mỗi khóa học kéo dài ít nhất 3 tháng (RR5)
Cơ sở dữ liệu 24
RBTV - Tham chiếu –Nhiều Quan hệ -
Giá trị xuất hiện tại các thuộc tính trong một quan hệ
nào đó phải tham chiếu đến giá trị khóa chính của
một quan hệ khác cho trước
R A B C D
S E F
1 1
7 1
5 7
3 2
12 3
23 9
Cơ sở dữ liệu 26
RBTV - Tham chiếu (tt)
NHANVIEN(MANV,HONV,TENNV, NS, LUONG, MA_NQL, PHG)
Còn gọi là phụ thuộc tồn tại
Thường có bối cảnh là hai quan hệ
- Nhưng có trường hợp suy biến thành một quan hệ
- Ví dụ (RR7): Người quản lý trực tiếp phải là một nhân
viên trong công ty
Bối cảnh:
Biểu diễn:
Cơ sở dữ liệu 27
RBTV - Liên bộ, liên quan hệ
Là ràng buộc xảy ra giữa các bộ trên nhiều quan hệ
khác nhau
R A B C D
1 1
5 7
12 3
23 9
S A B C
2 7
4 7
2 3
2 10
Cơ sở dữ liệu 28
Ví dụ 11
Xét 2 quan hệ sau:
HOADON(SOHD, MAKH, NGAYHD)
CTHD(SOHD, MAHH, DGIA, SLUONG)
Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn
(RR8)
- Bối cảnh: HOADON, CTHD
- Biểu diễn:
hd HOADON
Card ctCTHD(hd.SOHD=ct.SOHD) 1
Cuối
- Bảng tầm ảnh hưởng:
RR8 Thêm Xóa Sửa
HOADON + [SOHD] + + [SOHD]
CTHD - + + [SOHD]
Cơ sở dữ liệu 29
RBTV - Liên thuộc tính, liên quan hệ
R A B C D S A B C
1 1 2 7
5 7 4 7
12 3 2 3
23 9 2 10
Cơ sở dữ liệu 30
Ví dụ 12
PHONGBAN(MAPB, TENPB, TRGPHG, NGAY_NC)
NHANVIEN(MANV, HONV,TENNV,NGAYSINH,LUONG, PHG)
Ngày sinh của trưởng phòng phải nhỏ hơn ngày
nhận chức (RR9)
- Bối cảnh: PHONGBAN, NHANVIEN
- Biểu diễn:
p PHONGBAN(nNHANVIEN(p.TRGPHG=n.MANV
p.NGAY_NC > n.NGAYSINH))
- Bảng tầm ảnh hưởng:
RR9 Thêm Xóa Sửa
PHONGBAN + [NGAY_NC] - + [NGAY_NC]
NHANVIEN - - +[NGAYSINH]
Cơ sở dữ liệu 31
RBTV - Thuộc tính tổng hợp
Thuộc tính tổng hợp
- Là thuộc tính có giá trị được tính toán từ các thuộc tính
khác
Cơ sở dữ liệu 32
Ví dụ 13
PHONGBAN(TENPHG, MAPB, TRGPHG, NGAY_NC, SO_NV)
NHANVIEN(MANV, HONV,TENNV,NGAYSINH,PHAI,LUONG, PHG)
Số nhân viên của một phòng ban phải bằng tổng số
lượng nhân viên thuộc phòng đó (RR13)
- Bối cảnh: PHONGBAN, NHANVIEN
- Biểu diễn:
pPHONGBAN,nNHANVIEN:p.SO_NV =
Card {p.MAPB=n.PHG}
- Bảng tầm ảnh hưởng:
Cơ sở dữ liệu 33
RBTV – Chu trình
Lược đồ CSDL có thể được biểu diễn bằng đồ thị
- Đỉnh
Tên quan hệ
Quan hệ
Thuộc tính Tên thuộc tính
- Cạnh
Đường nối một đỉnh quan hệ với một đỉnh thuộc tính trong
lược đồ CSDL
Chu trình
- Đồ thị xuất hiện đường đi khép kín ~ Lược đồ CSDL có
chu trình
Cơ sở dữ liệu 34
Ví dụ 14
Nhân viên chỉ được phân công vào các đề án do
phòng ban của mình phụ trách
PHG=PHONG
MANV=MA_NVIEN SODA=MADA
MA_NVIEN, SODA
PHANCONG
Cơ sở dữ liệu 35
Ví dụ 14 (tt)
Nhân viên chỉ được phân công vào các đề án do
phòng ban của mình phụ trách
- Bối cảnh:
- Biểu diễn:
Cơ sở dữ liệu 36
Cài đặt
Các RBTV được cài đặt bởi
- Primary key
- Foreign key
- Check contraint
- Assertion
- Trigger
- Transaction
Cơ sở dữ liệu 39
Assertion
Là một biểu thức SQL luôn mang giá trị TRUE tại
mọi thời điểm
- Người sử dụng cần cho biết cái gì phải đúng
Cú pháp
CREATE ASSERTION <Tên_assertion> CHECK (<Điều_kiện>)
Cơ sở dữ liệu 40
Trigger
Là tập hợp các lệnh được thực hiện tự động khi
xuất hiện một biến cố nào đó
thêm
xóa
sửa Biến
cố
trước
sau
Cơ sở dữ liệu 47
Trigger (tt)
Cú pháp
CREATE TRIGGER <Tên_trigger>
AFTER|BEFORE INSERT|UPDATE|DELETE ON <Tên_bảng>
REFERENCING
NEW ROW|TABLE AS <Tên_1>
OLD ROW|TABLE AS <Tên_2>
FOR EACH ROW | FOR EACH STATEMENT
WHEN (<Điều kiện>)
<Tập_lệnh_SQL>
Cơ sở dữ liệu 48
Transaction
Là tập các lệnh thực hiện một xử lý nào đó trong
một ứng dụng CSDL, sao cho
- Hoặc là tất cả các lệnh đều được thực hiện thành công
- Hoặc là không có lệnh nào được thực hiện
Cơ sở dữ liệu 53
Ví dụ 7
Mỗi trận đấu là cuộc thi đấu của đúng 2 đội
Cơ sở dữ liệu 54
Ví dụ 7 (tt)
Cơ sở dữ liệu 55
Ví dụ 11
Mỗi hóa đơn phải có ít nhất một chi tiết hóa đơn
Giao tác Thêm_hóa_đơn
Thêm HOADON
Thêm chi tiết thứ 1 vào CTHD
Thêm chi tiết thứ 2 vào CTHD
…
Nếu có một thao tác thêm thất bại thì
Quay lui giao tác
Ngược lại
Hoàn tất giao tác
Cuối nếu
Cuối giao tác
Cơ sở dữ liệu 56
Ví dụ 11 (tt)
Cơ sở dữ liệu 57
Stored Procedure
Các DBMS thương mại cung cấp cách thức lưu trữ
các hàm hay thủ tục
- Được lưu trữ trong lược đồ CSDL
- Được sử dụng trong các câu lệnh SQL
Cú pháp
CREATE PROCEDURE <Tên_thủ_tục> <DS_tham_số>
AS
Khai báo biến cục bộ
Thân chương trình
GO
EXEC <Tên_thủ_tục> <DS_ tham_số>
Cơ sở dữ liệu 58
Ví dụ 7
Mỗi trận đấu là cuộc thi đấu của đúng 2 đội
EXEC Thêm_trận_đấu x, y
Cơ sở dữ liệu 59
Nhận xét
DBMS sẽ kiểm tra RBTV
- Sau khi một thao tác cập nhật diễn ra trên CSDL
- Cuối mỗi giao tác
Cơ sở dữ liệu 60