Hồ Cẩm Hà - ĐH Sư phạm Hà nội 31KiÕn tróc cña mét hÖ qu¶n trÞ CSDL Bộ tiền xử lí ngôn ngữ thao tác dữ liệu Bộ xử lí truy vấn Chương trình dịch ngôn ngữ khai báo dữ liệu Mã chương trình
Trang 1Hồ Cẩm Hà - ĐH Sư phạm Hà nội 1
Mục tiêu
ắCung cấp những kiến thức cơ bản về nguyên lý tổ chức và khai
thác đúng đắn một hệ CSDL, đặc biệt trong mô hình quan hệ.
ắCung cấp và rèn cho sinh viên khả năng thiết kế (logic) một hệ
Trang 2Hồ Cẩm Hà - ĐH Sư phạm Hà nội 2
Tµi liÖu tham kh¶o
thùc hµnh, 2 tËp, NXBGD 2004-2005
quèc gia, 2004
së tri thøc, Biªn dÞch : TrÇn §øc Quang tËp 1, tËp 2, NXB Thèng kª, 1999
1998
Thuvientailieu.net.vn
Trang 3Hồ Cẩm Hà - ĐH Sư phạm Hà nội 3
Tµi liÖu tham kh¶o
5 Date C.J., “An introduction to database systems”, seventh edition, Addison Wesley, 2000
6 Hector Garcia - Monila, Ullman J.D., Jennifer Widom “Database
Systems: The complete Book", Prentice Hal, 2002
7 Thomas Connolly, Carolyn Begg, Anne Strachan, " Database systems
A Practical Approach to Design, Implementation, and
Management ", Second Edition, Addison Wesley Longman Limited 1999.
8 Ullman J.D., J Widom “ A first course in Database Systems ", Prentice
- Hall, 1997
Thuvientailieu.net.vn
Trang 4HỆ THỐNG THÔNG TIN
Thuvientailieu.net.vn
Trang 5Hồ Cẩm Hà - ĐH Sư phạm Hà nội 5
Chương1 Khái quát về các hệ CSDL
1.CSDL là gì?
tích hợp các dữ liệu phản ánh hoạt động
(operational data) của một tổ chức
nhiều người dùng với các mục đích khác nhau
Tại sao cần đến các hệ CSDL
Thuvientailieu.net.vn
Trang 6Hệ quản trị cơ sở dữ liệu là gì?
Phần mềm cho phép người dùng giao tiếp với CSDL, cung cấp môi trường
thuận lợi và hiệu quả để tìm kiếm và
lưu trữ thông tin của CSDL
Thuvientailieu.net.vn
Trang 72 K iến trúc ba mức của một hệ CSDL
Mục đích : sự tách biệt quan niệm về
CSDL của nhiều người sử dụng với
những chi tiết biểu diễn về vật lý của
CSDL
Thuvientailieu.net.vn
Trang 9Hồ Cẩm Hà - ĐH Sư phạm Hà nội 9
4 §éc lËp d÷ liÖu
Lược đồ khái niệm
Trang 11 Enterprise Database – wide-area
network (hundreds or thousands of
users)
Thuvientailieu.net.vn
Trang 13Hồ Cẩm Hà - ĐH Sư phạm Hà nội 13
Workgroup database with local area network
Thuvientailieu.net.vn
Trang 15Hồ Cẩm Hà - ĐH Sư phạm Hà nội 15
Components of the
Database Environment
for managing the database
maintaining the database
designing databases and software
databases
Thuvientailieu.net.vn
Trang 21Thuvientailieu.net.vn
Trang 22Hồ Cẩm Hà - ĐH Sư phạm Hà nội 22
6.Database Management System
DBMS manages data resources like an operating system manages hardware resources
DBMS Database
containing centralized shared data
Trang 23 Từ điển dữ liệu là một tệp các dữ liệu về dữ liệu
xác định
Thuvientailieu.net.vn
Trang 24Hồ Cẩm Hà - ĐH Sư phạm Hà nội 24
Ngôn ngữ thao tác dữ liệu (DML)
Tìm kiếm thông tin lưu trữ trong CSDL;
Chèn thêm thông tin mới vào CSDL;
Xoá bỏ thông tin khỏi CSDL;
Sửa đổi thông tin được lưu trữ trong CSDL.
Tính thủ tục/phi thủ tục (procedure/nonprocedure)
Thuvientailieu.net.vn
Trang 25Thuvientailieu.net.vn
Trang 26Hồ Cẩm Hà - ĐH Sư phạm Hà nội 26
Chất lượng DBMS
và khả năng đáp ứng nhu cầu thực tế
các đòi hỏi ngày càng cao hơn của người dùng, bởi vậy các
Thuvientailieu.net.vn
Trang 27Hồ Cẩm Hà - ĐH Sư phạm Hà nội 27
Vài nét về quá trình phát triển DBMSs
Management System) của hãng IBM (mô hình dữ liệu phân cấp)
đời đánh dấu sự xuất hiện đầu tiên của một hệ quản trị CSDL dựa
của hãng IBM mang tên System-R ra đời Từ những năm 1980
đến nay hàng trăm hệ quản trị CSDL kiểu quan hệ ra đời cho cả
tượng và hướng đối tượng-quan hệ Thuvientailieu.net.vn Thế hệ thứ ba
Trang 29(4) Cung cấp các dịch vụ điều khiển tương tranh để đảm bảo tính
nhất quán dữ liệu khi có nhiều phiên làm việc với CSDL
(5) Cung cấp một cơ chế để khôi phục dữ liệu
(6) Cung cấp các dịch vụ bản quyền
(7) Hỗ trợ cho truyền thông dữ liệu
(8) Cung cấp các dịch vụ đảm bảo tính toàn vẹn dữ liệu Thuvientailieu.net.vn
Trang 30Thuvientailieu.net.vn
Trang 31Hồ Cẩm Hà - ĐH Sư phạm Hà nội 31
KiÕn tróc cña mét hÖ qu¶n trÞ CSDL
Bộ tiền xử lí ngôn ngữ thao tác dữ liệu
Bộ xử lí truy vấn Chương trình
dịch ngôn ngữ khai báo dữ liệu
Mã chương trình Bộ quản lí cơ sở
dữ liệu
Bộ quản lí từ điển
DBMS
Phương thức truy cập
Bộ quản lí tệp
Bộ đệm của hệ thống
Trang 32Hồ Cẩm Hà - ĐH Sư phạm Hà nội 32
Trình kiểm tra
tính toàn vẹn
Trình quản lý quyền truy cập
Trình tối ưu hóa câu hỏi
Trình quản lý các giao tác
Trình xử lý câu lệnh
Trang 33Hệ quản trị cơ
sở dữ liệu
Hệ điều hành
Hệ quản lí Nhập / xuất (I/O)
Lược đồ ngoài (External Scheme)
Lược đồ khái niệm (logical Scheme)
Lược đồ vật lý (Physical Scheme)
Vùng đệm 1àm việc của chương trình ứng dụng A
Vùng đệm 1àm việc của hệ quản trị cơ sơ
dữ liệu
CSDL
Thuvientailieu.net.vn
Trang 35Hồ Cẩm Hà - ĐH Sư phạm Hà nội 35
Sơ lược về các kiến trúc hệ quản trị
CSDL đa người dùng
Hình 1.12 Kiến trúc tệp-máy chủ (file - server)
File - server lưu giữ các tệp dữ liệu mà các ứng dụng và hệQTCSDL cần đến Tuy nhiên các ứng dụng và hệ QTCSDL chạy trên mỗi trạm làm việc (workstation) và yêu cầu các tệp dữ liệu ở file - server khi cần đến
LAN Cỏc tệp được gửi về trạm làm việc Cỏc yờu cầu về dữ
liệu
Cơ sở dữ liệu File-server
Trạm làm việc 1
Trạm làm việc 2
Trạm làm việc 3
Thuvientailieu.net.vn
Trang 36Thuvientailieu.net.vn
Trang 37 Chi phí cho phần cứng có thể được giảm do chỉ cần server có cấu hình đủ mạnh để lưu trữ và quản trị cơ sở dữ liệu.
Chi phí cho truyền thông được giảm do một phần trong các thao tác của ứng dụng
được giải quyết trên client, truyền thông trên mạng chỉ gồm: yêu cầu về truy cập cơ
sở dữ liệu của client gửi đến server và dữ liệu kết quả từ server gửi cho client
Nâng cao được khả năng đảm bảo tính nhất quán của dữ liệu Server có thể kiểm soát được tính toàn vẹn bởi các ràng buộc này được định nghĩa và kiểm tra chỉ tại
đó.
Kiến trúc này phù hợp với việc xây dựng các hệ thống có tính mở.
Thuvientailieu.net.vn
Trang 39Hồ Cẩm Hà - ĐH Sư phạm Hà nội 39
Tãm t¾t ch−¬ng 1
Trang 40Xin cảm ơn !
Thuvientailieu.net.vn
Trang 41Hồ Cẩm Hà
CƠ SỞ DỮ LIỆU QUAN HỆ
Thuvientailieu.net.vn
Trang 43Thuvientailieu.net.vn
Trang 44Hồ Cẩm Hà Chương 2
Ví dụ
Thuvientailieu.net.vn
Trang 45Hồ Cẩm Hà Chương 2
Các khái niệm cơ bản
R = <Ω, F>
Ω là tập hữu hạn các thuộc tính của quan hệ,
F là tập các điều kiện giữa các thuộc tính(ràng buộc toàn vẹn)
Thuvientailieu.net.vn
Trang 46Hồ Cẩm Hà Chương 2
Các khái niệm cơ bản
Với lược đồ quan hệ R, theo thời gian, nhiều quan hệ có cấu trúc và ràng buộc toàn vẹn được mô tả bởi lược đồ này Mỗi quan hệ như vậy còn được gọi là một thể hiện của lược đồ R
ký hiệu r(R)
ký hiệu t[X], t[Ai] với X ⊆ Ω
Thuvientailieu.net.vn
Trang 47Hồ Cẩm Hà Chương 2
Các tính chất đặc trưng của một quan hệ
Thuvientailieu.net.vn
Trang 48bộ giống hệt nhau trong một quan hệ
Thuvientailieu.net.vn
Trang 49Hồ Cẩm Hà Chương 2
Ví dụ
Thuvientailieu.net.vn
Trang 51Hồ Cẩm Hà Chương 2
Các khái niệm cơ bản
Siêu khóa của một lược đồ quan hệ R là một tập hợp gồm một hay nhiều thuộc tính của lược đồ R có tính chất xác định duy nhất một bộ trong mỗi thể hiện của R
Khóa của một lược đồ quan hệ là một siêu khóa của lược đồ này sao cho mọi tập con thực sự của nó không là siêu khóa
Thuvientailieu.net.vn
Trang 52Hồ Cẩm Hà Chương 2
Các khái niệm cơ bản
Khóa dự tuyển (candidate key)
Khóa chính (primary key)
thuộc tính khóa, thuộc tính không khóa
một hay nhiều thuộc tính là khóa của một lược đồ quan hệ khác
Thuvientailieu.net.vn
Trang 53Hồ Cẩm Hà Chương 2
Thuvientailieu.net.vn
Trang 55INSERT <NHAN-VIEN; “Nguyễn Hương”, ”Lan”, “943775”,
Thuvientailieu.net.vn
Trang 57Hồ Cẩm Hà Chương 2
Các thao tác cập nhật dữ liệu trên các quan hệ
Phép sửa đổi (Update)
MODIFY <NHAN-VIEN; MSNV=”123456”; LUONG = 4000>
Thuvientailieu.net.vn
Trang 58Hồ Cẩm Hà Chương 2
Tãm t¾t ch−¬ng 2
lược đồ quan hệ (cấu trúc của quan hệ và các ràng buộc)
quan hệ là một bảng với tất cả các bộ đang tồn tại trong đó, bảng này là một thể hiện của lược đồ quan hệ
siêu khóa là một tập thuộc tính xác định các bộ một cách duy nhất trong quan hệ
khóa dự tuyển là các siêu khóa nhỏ nhất
Khóa chính là một khóa dự tuyển được chọn dùng để nhận diện các
bộ
hệ có vai trò làm khóa dự tuyển trong một quan hệ khác
Thuvientailieu.net.vn
Trang 59Hồ Cẩm Hà 19
Xin cảm ơn !
Thuvientailieu.net.vn
Trang 60C h−¬ng 3
Ngôn ngữ thao tác dữ liệu
Thuvientailieu.net.vn
Trang 61Hồ Cẩm Hà Chương 3 2
Ngôn ngữ đại số quan hệ
hợp và đặc trưng)
Thuvientailieu.net.vn
Trang 67(p,q) = { p1, p2 , , pn , q1, q2 , , qm }
r ⋈ Ai θ Bj s = {(t, u)/ t ∈ r, u ∈ s và t[Ai] θ u[Bj]}
Thuvientailieu.net.vn
Trang 68Hồ Cẩm Hà Chương 3 9
Các phép toán đặc biệt trên quan hệ
Phép kết nối (join)
r ⋈ Ai θ Bj s = {(t, u)/ t ∈ r, u ∈ s và t[Ai] θ u[Bj]}
Trường hợp θ là “=” gọi là kết nối bằng
kết nối tự nhiên sử dụng kí hiệu r * s (hoặc r ⋈ s )
Ví dụ
Thuvientailieu.net.vn
Trang 70Hồ Cẩm Hà Chương 3 11
Các phép toán đặc biệt trên quan hệ
Phép kết nối nửa (semi join)
r ⊲F s = ΠA(r ⋈ F s )
Ví du
CUNG_UNG ⊲ F SAN_PHAM
với F là điều kiện:
(CUNG_UNG.MA_SP = SAN_PHAM.MA_SP) AND (SOLUONG>1500).
Thuvientailieu.net.vn
Trang 71Hồ Cẩm Hà Chương 3 12
Các phép toán đặc biệt trên quan hệ
Phép kết nối ngoài trái (left outer join)
kết nối ngoài phải (right outer join)
(Đọc tài liệu)
Thuvientailieu.net.vn
Trang 72Hồ Cẩm Hà Chương 3 13
Các phép toán quan hệ bổ sung
(Additional Relational Operations)
Trang 73Hồ Cẩm Hà Chương 3 14
Các phép toán quan hệ bổ sung
(Additional Relational Operations)
Trang 74Hồ Cẩm Hà Chương 3 15
Chú ý
không phải là một đại lượng vô hướng kể cả khi nó chỉ gồm
bỏ khỏi nhóm khi thực hiện một hàm kết tập
khác
Thuvientailieu.net.vn
Trang 75Hồ Cẩm Hà Chương 3 16
Dùng các biểu thức đại số quan hệ
biểu diễn câu hỏi
ΠHOTEN, LUONG (NHAN_VIEN*
(ΠMA-DV (σ(TEN-PHONG=”Nghiên cứu và phát triển ) (PHONG))))
Thuvientailieu.net.vn
Trang 76Hồ Cẩm Hà Chương 3 17
Dùng các biểu thức đại số quan hệ
biểu diễn câu hỏi
Câu hỏi 3
Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết mã
số dự án, đồng thời cho biết họ tên, ngày sinh của trưởng phòng quản lý
dự án này.
KQTG ← (ΠMA-DA, MA-DV(σ(DIA-DIEM-DA=”TT Khí tượng thủy văn HN’ )(DU_AN))
KETQUA ← ΠMA-DA, HO-TEN, NG-SINH(NHAN_VIEN ⋈ MA-NV=MA-TP (PHONG*KQTG))
Thuvientailieu.net.vn
Trang 77Hồ Cẩm Hà Chương 3 18
Dùng các biểu thức đại số quan hệ
biểu diễn câu hỏi
Câu hỏi 4
Tìm tên những nhân viên làm việc cho tất cả các dự án do phòng có mã
số P4 quản lý.
ΠHO-TEN((ΠMANV,MA-DA(CHAM_CONG)÷
ΠMA-DA(σ(MA-DV=P4)(DU_AN)))*NHAN_VIEN).
Thuvientailieu.net.vn
Trang 78Hồ Cẩm Hà Chương 3 19
Dùng các biểu thức đại số quan hệ
biểu diễn câu hỏi
Câu hỏi 5
Tìm mã số những dự án có sự tham gia của một người là lãnh đạo phòng trực tiếp quản lý dự án này.
KQTG ← ΠMA-DA, MA-DV(DU_AN) * ΠMA-DV, MA-TP(PHONG)
KETQUA ← KQTG ⋈ ((KQTG.MA-DA=CHAM_CONG.MA-DA) AND (KQTG.MA-TP=CHAM_CONG.MA-NV))
CHAM_CONG
Thuvientailieu.net.vn
Trang 79Có hai loại: ngôn ngữ tân từ biến bộ và ngôn ngữ tân từ biến miền.
Thuvientailieu.net.vn
Trang 80Hồ Cẩm Hà Chương 3 21
Ngôn ngữ tân từ biến bộ
(Tuple relational calculus)
Một câu hỏi đơn giản trong ngôn ngữ tân từ
biến bộ có dạng
{ t ⏐ ĐK( t ) }
Thuvientailieu.net.vn
Trang 81Hồ Cẩm Hà Chương 3 22
Ngôn ngữ tân từ biến bộ
(Tuple relational calculus)
{ t ⏐ NHÂN_VIÊN ( t ) AND t LUONG > 1700 000}
Thuvientailieu.net.vn
Trang 82Hồ Cẩm Hà Chương 3 23
Biểu thức của phép tính biến bộ
Một cách tổng quát, một biểu thức của phép tính biến bộ códạng
{ti.A1, tj.A2,…, tk.An ⏐ ĐK (t1, t2,…, tn, tn+1, tn+2, …, tn+m)}
Thuvientailieu.net.vn
Trang 83Hồ Cẩm Hà Chương 3 24
Biểu thức của phép tính biến bộ
Công thức của phép tính biến bộ được tạo nên từ các công thức nguyên
tố Một công thức nguyên tố thuộc một trong những dạng sau:
(2) ti.A θ tj.B
(3) ti.A θ c
Mỗi công thức nguyên tố sẽ nhận một trong hai giá trị TRUE
và FALSE đối với một tổ hợp các bộ (giá trị chân lý)
Thuvientailieu.net.vn
Trang 84Hồ Cẩm Hà Chương 3 25
Biểu thức của phép tính biến bộ
Các công thức nguyên tố tạo nên công thức của phép tính bộtheo các luật:
(L1) Mỗi công thức nguyên tố là một công thức
(L2) F, F1, F2 là công thức thì (F1 AND F2), (F1 OR F2), NOT(F) là công thức (L3) F là một công thức thì (∃ t )(F) với t là một biến bộ cũng là một công thức (L4) F là một công thức thì (∀ t )(F) với t là một biến bộ cũng là một công thức
Thuvientailieu.net.vn
Trang 86Thuvientailieu.net.vn
Trang 87Thuvientailieu.net.vn
Trang 88Thuvientailieu.net.vn
Trang 89Thuvientailieu.net.vn
Trang 90Thuvientailieu.net.vn
Trang 91{tenX ⏐ ∃ diadiemX ∃ma_dvX
(DU_AN(“D4”,tenX, diadiemX, ma_dvX))}
Thuvientailieu.net.vn
Trang 92Hồ Cẩm Hà Chương 3 33
Ngôn ngữ tân từ biến miền
Ví dụ
Câu hỏi 2
Cho biết họ tên và lương của những nhân viên thuộc phòng
“Nghiên cứu và phát triển”
{ho_tenX, luongX⏐
∃ma_nvX∃ngay_sinhX∃gioi_tinhX ∃ ma_dvX ∃ ma_tpX
(PHONG (ma_dvX, “Nghiên cứu và phát triển”, ma_tpX) AND NHAN_VIEN(ma_nvX,ho_tenX,ngay_sinhX,gioi_tinhX,ma_dvX,luongX))}
Thuvientailieu.net.vn
Trang 93Hồ Cẩm Hà Chương 3 34
Ngôn ngữ tân từ biến miền
Ví dụ
Câu hỏi 3
Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết
mã số dự án, đồng thời cho biết họ tên trưởng phòng quản lý dự án này
{ma_daX, ho_tenX⏐
∃ ten_daX ∃ ma_dvX ∃ten_phongX ∃ma_tpX ∃ngay_sinhX ∃gioi_tinhX ∃luongX ( DU_AN (ma_daX, ten_daX, “TT khí tượng thủy văn HN”, ma_dvX) AND PHONG (ma_dvX, ten_phongX, ma_tpX) AND
NHAN_VIEN (ma_tpX, ho_tenX, ngay_sinhX, gioi_tinhX, ma_dvX, luongX)) }
Thuvientailieu.net.vn
Trang 94Hồ Cẩm Hà Chương 3 35
Tính đầy đủ của NN hỏi
đủ nếu với L, chúng ta có thể biểu diễn được bất cứ một câu
Trang 95Hồ Cẩm Hà Chương 3 36
NGÔN NGỮ SQL
dữ liệu quan hệ
liệu (gồm DDL), cho phép cập nhật và tìm kiếm dữ liệu
(gồm DML)
(view), kiểm soát tính toàn vẹn dữ liệu, cấp phát quyền truy cập, điều khiển các giao tác, thao tác dữ liệu nhúng
Thuvientailieu.net.vn
Trang 96Hồ Cẩm Hà Chương 3 37
SQL
Phần thao tác dữ liệu sẽ có đông đảo người dùng hơn, do chúng ta xem xét phần này trước phần định nghĩa dữ liệu của SQL
Thuvientailieu.net.vn
Trang 99NGÔN NGỮ SQL
Cho biết họ tên của mỗi nhân viên và lương mới của mỗi
người nếu lương họ được tăng 10%
SELECT ho_ten, luong + luong*0.10
FROM nhan_vien
Trong bảng kết quả, nếu muốn có thể đặt tên cho cột thứ
ba, chẳng hạn cột thứ ba được đặt tên là luong_moi, với câu lệnh sau
SELECT ho_ten, luong + luong*0.10 AS luong_moi
Trang 100NGÔN NGỮ SQL
Cho biết danh sách nhân viên có lương trên 2 300 000, với mỗi nhân viên như vậy các thông tin đưa ra gồm: mã nhân viên, họ tên, mã đơn vị và lương
SELECT manv, ho_ten, ma_dv, luong
FROM nhan_vien
WHERE luong > 2 300 000
Thuvientailieu.net.vn
Trang 102NGÔN NGỮ SQL
Có thể tìm biết tên và mã các dự án mà địa điểm có chứa từ
‘UBND’ bằng câu sau:
SELECT ma_da, ten_da, dia_diem_da
FROM du_an
WHERE dia_diem_da LIKE ‘%UBND%’
Thuvientailieu.net.vn
Trang 105NGÔN NGỮ SQL
Câu hỏi: “Có bao nhiêu nhân viên lương cao hơn 3 000 000 ?”
có thể viết như sau:
SELECT COUNT(*) AS vip
FROM nhan_vien
WHERE luong > 3000 000
Thuvientailieu.net.vn
Trang 110NGÔN NGỮ SQL
Xét câu hỏi: ‘Tìm tên của những nhân viên có lương đạt trên mức lương trung bình của tất cả các nhân viên, đồng thời cho biết luôn mức chênh lệch này’ Chúng ta có thể dùng truy vấn sau:
SELECT ho_ten , luong – (SELECT AVG(luong) FROM
Trang 111Thuvientailieu.net.vn
Trang 112NGÔN NGỮ SQL
Theo ngầm định, các tên cột trong câu truy vấn con tham
chiếu đến tên bảng trong câu FROM của truy vấn con này, hoặc có thể tham chiếu đến bảng trong câu FROM của truy vấn ngoài bằng việc xác định tên cột đó
Khi một câu truy vấn con là một trong hai toán hạng của một biểu thức so sánh thì truy vấn con này phải xuất hiện ở vếphải của so sánh
Thuvientailieu.net.vn
Trang 114NGÔN NGỮ SQL
Cần phân biệt mục đích của câu WHERE và
câu HAVING Mặc dù có cú pháp tương tự:
bảng kết quả,
vào bảng kết quả
Thuvientailieu.net.vn
Trang 115NGÔN NGỮ SQL
Điều kiện chọn (lọc) trong câu HAVING luôn
chứa ít nhất một hàm gộp, nếu không thì điều kiện này có thể chuyển vào câu WHERE
Nên nhớ rằng hàm gộp không được dùng trong câu WHERE
Thuvientailieu.net.vn