Bài giảng môn học cơ sở dữ liệu
Trang 1TRƯỜNG ĐH NÔNG LÂM TP.HCM
KHOA QUẢN LÝ ĐẤT ĐAI & BẤT ĐỘNG SẢN
CƠ SỞ DỮ LIỆU
Bài giảng môn học
Giảng viên: ThS Lê Ngọc Lãm Bộ môn: Công Nghệ Địa Chính
Trang 2GIỚI THIỆU MÔN HỌC
Trang 4CHƯƠNG 1 NHẬP MÔN CSDL
Trang 5KHÁI NIỆM CSDL
Khái niệm về dữ liệu
Các hình thức tổ chức dữ liệu
Các tính chất của dữ liệu
Trang 6Sinh viên
Quốc gia
Đơn vị hành chánh
Tỉnh Đồng Nai; cách Tp.HCM 30km
Tỉnh Bình Thuận; cách Tp.HCM 150km
Tỉnh Long An; Cách Tp.HCM 50km
Việt nam; dân số 80 triệu người
Lào; dân số 30 triệu người Thái Lan; dân số 60 triệu người
Trung Quốc; 1,2 tỷ người
Nguyễn thị Mén; 20 tuổi; Quê quán: Tiền Giang
Trần thị Son; 19 tuổi; quê quán: Bình Định
Trang 7CẤU TRÚC 1 HỆ CSLD
CSDL VẬT LÝ
NGƯỜI THIẾT KẾ NGƯỜI SỬ DỤNG
……….
Trang 8TÍNH ĐỘC LẬP DỮ LIỆU
Mức độc lập vật lý ( (Physical data independence)
là khả năng sửa đổi sơ đồ vật lý khơng làm cho các chương trình ứng dụng phải viết lại Các sửa
đổi ở mức vật lý là cần thiết để cải thiện hiệu
năng
Độc lập dữ liệu luận lý (Logical data
independence) là khả năng sửa đổi sơ đồ luận lý khơng làm cho các chương trình ứng dụng phải viết lại Các sửa đổi ở mức luận lý là cần thiết khi cấu trúc luận lý của cơ sở dữ liệu bị thay thế
Trang 9MÔ HÌNH DỮ LIỆU
Mô hình mạng
Mô hình phân cấp
Mô hình thực thể kết hợp
Mô hình quan hệ
Trang 10MÔ HÌNH MẠNG (Network model)
Dữ liệu gôïp
Trang 11MOÂ HÌNH PHAÂN CAÁP (Hierarchical model)
Trang 12MÔ HÌNH QUAN HỆ (Relational model)
Trước khi có RM, dữ liệu được quản lý bằng tập tin – hệ tập tin với các ngôn ngữ: COBOL,
FORTRAN, PASCAL
Những hạn chế của hệ tập tin:
- Có sự liên kết chặt chẽ giữa cấu trúc vật lý –
luận lý và chương trình ứng dụng
- Dư thừa dữ liệu quá lớn
- Người SD ít có khả năng tiếp cận và khai thác dữ liệu
Trang 13MOÂ HÌNH QUAN HEÄ (Relationship model)
Trang 14MÔ HÌNH THỰC THỂ KẾT HỢP
(Entities relationship model)
Thực thể (Entities)
Mối kết hợp (Join)
Trang 15HỆ QUẢN TRỊ CSLD (Database Management System)
• Một cơ sở dữ liệu (CSDL/ DB: DataBase) là một tập
hợp các tập tin cĩ liên quan với nhau, được thiết kế
nhằm làm giảm thiểu sự lặp lại dữ liệu
• Một hệ quản trị cơ sở dữ liệu (HQTCSDL/ DBMS: DataBase Management System) là một hệ thống gồm một CSDL và các thao tác trên CSDL đĩ, được thiết kế trên một nền tảng phần cứng, phần mềm và với một
kiến trúc nhất định
• Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System)
Trang 16Cấu trúc vật lý và luận lý
Trang 17TÍNH CHẤT HỆ QUẢN TRỊ CSDL
1 Độc lập vật lý
2 Độc lập logic
3 Ngôn ngữ phi thủ tục
4 Quản trị dữ liệu
5 Quản lý dư thừa dữõ liệu
6 Tương hợp dữ liệu (chuẩn hoá)
Trang 18LỊCH SỬ HỆ QUẢN TRỊ CSDL
Trang 19CHỨC NĂNG HỆ QUẢN TRỊ CSDL
Mô tả dữ liệu
Tìm kiếm dữ liệu
Cập nhật dữ liệu
Chuyển hoá dữ liệu
Điều khiển tính toàn vẹn dữ liệu
Quản lý giao tác và an toàn dữ liệu
Trang 21Ví dụ
Cách quản lý thông tin về sinh viên đăng ký môn học như sau:
Trang 22Ví dụ (tt)
Những hạn chế trên sẽ được khắc phục nếu tổ chức dữ liệu theo mô hình sau:
Trang 23MỘ SỐ KHÁI NIỆM
THUỘC TÍNH (ATTRIBUTE)
MIỀN GIÁ TRỊ CỦA THUỘC TÍNH
(DOMAIN)
BỘ (TUBLE hay RECORD)
(M2)
Trang 24 Thuộc tính: là tính chất để mô tả đối tượng hay nói cách khác 1 đối tượng được mô tả thông qua thuộc tính của nó.
Miền giá trị: Thuộc tính có thể là một chuỗi các
ký tự hay là một con số hoặc ngày tháng năm Ngoài ra có thể còn là giá trị tiền tệ hay một đơn
vị đo lường nào đó Tập hợp các giá trị này gọi
là Miền giá trị của thuộc tính.
Bộ: Tập hợp các thuộc tính cùng mô tả một đối tượng gọi là Bộ Như vậy có thể nói bộ là một đối tượng cụ thể
MỘ SỐ KHÁI NIỆM
Trang 25MỘ SỐ KHÁI NIỆM
Trang 26Lược đồ quan hệ
Tập tất cả các thuộc tính cần quản lý của một đối tượng cùng với mối liên hệ giữa chúng được gọi là lược đồ quan hệ Lược đồ quan hệ Q với tập thuộc tính {A1,A2, ,An} được viết là
Q(A1,A2, ,An) Tập các thuộc tính của Q được ký hiệu là Q+ Chẳng hạn lược đồ quan hệ sinh viên (Đặt tên là Sv) với các thuộc tính như trên là:
Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP,
HOCBONG, TINH)
Trang 27QUAN HỆ
Trang 28Khóa - Khóa ngọai của Quan hệ
Trang 29Khóa - Khóa ngọai của Quan hệ
Siêu khố: là một tập các thuộc tính để phân biệt giữa các đối tượng với nhau trong một quan hệ.
Khố: Trong trường hợp siêu khố chỉ bao gồm 1 thuộc tính thì gọi là khố Các thuộc tính trong siêu khố gọi là thuộc tính khố Thuộc tính khố thường đĩng vai trị liên kết giữa các quan hệ với nhau.
Khố ngoại: Trong trường hợp 2 quan hệ liên kết với nhau thơng qua 1 thuộc tính nếu thuộc tính này đĩng vai trị là khố chính trong một quan hệ đã xác định thì
Trang 30Ví dụ 1
đường tỉnh lộ, đường liên xã và đường
tỉnh lộ có lộ giới 40m; đường liên xã có lộ giới 15m và đường hẽm có lộ giới 8m Mỗi
nhau; Quốc lộ và tỉnh lộ có kết cấu bê-tông nhựa; đường liên xã và hẽm thường là đường cấp phối hoặc đường đất.
Trang 31Ví dụ 2
Hóc Môn có 02 tuyến đường quốc lộ với chiều dài trên 40km; 06 tuyến đường tỉnh
lộ với chiều dài trên 80km; 15 tuyến đường liên xã và đường nội bộ với chiều dài 150km và 60 con hẽm với tổng chiều dài trên 30km
Trang 32Ví dụ 3
Công ty A kinh doanh rất nhiều mặt hàng thuộc nhiều chủng loại khác nhau, mỗi mặt hàng đều có mã riêng tương ứng với một mức giá nhất định Mỗi nhân viên công ty được giao cho phụ trách một mặt hàng nhất định, các nhân viên được quản lý thông qua mã nhân viên Các thông tin mà công ty quản lý về nhân viên bao gồm: mã nhân viên, tên nhân viên, ngày sinh, địa chỉ, và mặt hàng mà nhân viên đó phụ trách Mỗi mặt hàng đều
có tên và mã mặt hàng cùng với xuất xứ nguồn gốc của mặt hàng đó mà nhân viên cần biết để nhập hàng khi có yêu cầu
Trang 33CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
mà tất cả các hệ quản trị cơ sở dữ liệu đều cài đặt cụ thể bằng các lệnh theo ngôn ngữ riêng Các phép toán này được thực hiện trực tiếp trên các bộ của các quan hệ lưu trữ trong máy tính Việc tổ chức các quan hệ và các bộ của nó có thể được xem như biểu diễn
Trang 34Phép chèn(Insert)
Mục đích của phép chèn là thêm một bộ vào một quan hệ nhất định Kết quả của phép chèn có thể gây ra một số sai sót với những lý do sau đây:
- Bộ mới được thêm vào không phù hợp với lược đồ quan hệ cho trước.
- Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc tính đó.
- Giá trị khóa của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ
Do đó tùy từng quan hệ cụ thể mà có cách khắc phục khác nhau.
Trang 35Phép chiếu (project)
Q+=A1,A2, ,An, X Q+: X là một tập con các thuộc tính của Q.
Phép chiếu Q lên tập thuộc tính X là phép trích cột từ Q gồm những thuộc tính có trong X, các bộ là một phần của các bộ trong Q, được ký hiệu Q[X]
Ví dụ: Người ta chỉ cần biết MA_LD (mã lọai đất) và thời hạn sử dụng của loại đất đó (TH_SD), thực hiện phép chiếu tập con gồm các thuộc tính MA_LD và TH_SD lên quan hệ LOAIDAT Kết quả ta được một quan hệ với hai thuộc tính
Trang 36Pheùp chieáu
(ví duï)
Trang 37Phép chọn:(select)
Cho Q là một quan hệ với tập thuộc tính Q+, Q+= A1,A2, ,An , gọi D(x) là một điều kiện xác định trên Q+ Phép chọn từ Q những bộ thỏa D(x) là một quan hệ Q' với các phần tử (bộ) thuộc Q và thỏa điều kiện D(x).
Trang 38Phép chọn (ví dụ)
Trang 39Phép tích Đề-cac (cartesian
product)
Q2( B1, B2, , Bn), tích Đề-cac của hai quan hệ Q1 và Q2 là quan hệ Q3 có các thuộc tính là hợp các thuộc tính Q1 và Q2, các n bộ là nối của các n bộ trong Q1 và Q2.
Ký hiệu: Q3= Q1* Q2= q3=(q1,q2) Q3/q1 Q1
Trang 40Phép tích Đề-cac (ví dụ)
Trang 41Phép hạn chế một quan hệ
(Restriction)
Phép hạn chế một quan hệ là phép toán một ngôi cho kết quả là một quan hệ có các bộ thỏa mãn một điều kiện hạn chế Điều kiện hạn chế có thể áp dụng trên một hoặc nhiều thuộc tính của quan hệ Có hai chuẩn viết về điều kiện hạn chế của một quan hệ: Chuẩn và (AND) và chuẩn hoặc (OR) Hạn chế của quan hệ Q bằng tiêu chuẩn T là quan hệ Q' có cùng lược đồ (số ngôi) trong đó các n bộ thỏa mãn tiêu chuẩn T.
Ví dụ: Trong quan hệ THUA xác định những thửa có diện tích >1000 và lọai đất là nông nghiệp Quan hệ mới từ điều
Trang 42Phép liên kết:(join)
Q2( B1,B2, ,Bn) và hai thuộc tính Ai
<,<=,>,>=,=,<>
Phép liên kết thực hiện trên hai quan hệ Q1 và Q2 cùng với các thuộc tính Ai và Bj là phép tích Đề-cac của hai quan hệ Q1 và Q2 tạo ra một quan hệ mới có các thuộc tính và các n bộ là ghép nối các n bộ và các thuộc tính của hai quan hệ Q1 và Q2., chỉ lấy
ra những n bộ thỏa mãn điều kiện hạn chế Ai và Bj
Trang 43Pheùp lieân keát(ví duï)
Ai = Dj
Trang 44Câu lệnh SQL
Trang 45Truy vấn chọn
Select [ Distinct | Top n[%]] field1 [ As alias1][,field2 [ As alias2][, ]]
From table1 [ Inner Join table2 On table1.field1 table2.field2] table1.field1 table2.field2] θ table2.field2] θ table2.field2]
Where dieuKien]
Order By field1[ Asc | Desc ][,field2[ Asc | Desc ]][, ]]];
Distinct : loại bỏ các bộ trùng trong quan hệ đích
Top n[%]: Chọn n hay n% mẫu tin đầu tiên.
table : Tên table hay query chứa dữ liệu.
field : Tên field hay một biểu thức.
Alias : Trường hợp field là một biểu thức thì <Alias> là một tên mới của biểu thức.
Inner Join: mỗi mẫu tin của table1 nối với bất kỳ mẫu tin nào của table2 có dữ liệu của field1 thỏa mãn điều kiện so sánh với dữ liệu của field2 tạo thành mẫu tin của query.
điều kiện: Biểu thức mà dữ liệu mẫu tin phải thỏa mãn
Chú ý:
Khi nêu rõ thuộc tính đó thuộc về quan hệ nào ta viết theo cú pháp
tênQuanHệ.tênThuộcTính
Trang 46Truy vấn chọn – ví dụ
Trang 48Truy vấn nhĩm – ví dụ
Ví du: Đếm số lượng sinh viên nữ của mỗi khoa
Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHO A) AS SOLUONG
Trang 49Truy vấn lồng nhau
Là những câu lệnh truy vấn mà trong thành phần WHERE hay
HAVING có chứa thêm một câu lệnh Select khác Câu lệnh select khác này gọi là subquery Ta lồng câu Select vào phần Where hay Having theo cú pháp sau:
o bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL)
ANY, SOME là bất kỳ, ALL là tất cả
Các mẫu tin của query chính thỏa mãn toán tử so sánh với bất kỳ/ tất cả mẫu tin nào của subquery
o bieuThuc [NOT] IN (cauLenhSQL)
Các mẫu tin của query chính có giá trị bằng với một giá trị trong subquery
o [NOT] EXISTS (cauLenhSQL).
Trang 50Truy vấn lồng nhau – ví dụ
Ví du: Lập danh sách sinh viên có học bổng cao nhất
SELECT *
FROM Sv
WHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV);
Ví du: Lập danh sách sinh viên có điểm thi môn CSDL cao nhất
SELECT SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI
FROM sv Inner Join kq On Sv.MASV = Kq.MASV
WHERE MAMH='CSDL' AND DIEMTHI >= ALL
(SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL');
Hiểu và vận dụng tốt lệnh truy vấn dữ liệu là một việc làm cực kỳ cần thiết để tạo ra các kết quả cho báo cáo, thống kê số liệu.
Trang 52Ràng buộc tồn vẹn (Entegrity constraint)
Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ Sự liên hệ này có thể xảy ra trong một lược đồ quan hệ hoặc trong các lược đồ quan hệ của một cơ sở dữ liệu Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thỏa mãn ở mọi thời điểm Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn Trong thực tế ràng buộc
toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực.
Ví dụ 1: Xét cơ sở dữ liệu về quản lý sinh viên, từ CSDL này ta có thể xác định được
một số ràng buộc tòan vẹn sau: R1: không thể có >1 sinh viên có cùng MASV
R2: Tuổi sinh viên phải >= 18 R3: Giới tính ( phái) phải là nam hoặc nữ.
Ví dụ 2: Xét CSDL về đăng ký đất đai ta có các ràng buộc tòan vẹn sau:
R1: Số thửa phải là duy nhất trong một tờ bản đồ.
R2: Diện tích số thửa phải >0 R3: Thời hạn sử dụng phải >50 năm R4: Lọai đất phải là một trong các lọai đất theo qui định của Luật ĐĐ.
Trang 53Kiểm tra Ràng buộc tồn vẹn
Trong hồ sơ phân tích thiết kế hệ thống CSDL cần phải xác định đầy đủ các ràng buộc tòan vẹn và cần phải có thủ tục cụ thể để kiểm tra các ràng buộc tòan vẹn mỗi khi nó bị vi phạm.
Ràng buộc tòan vẹn có thể được kiểm tra theo hai cách:
dụng đối với việc kiểm tra đơn giản, ít tốn thời gian Ví dụ:
kiểm tra miền giá trị, giới tính
dụng với việc kiểm tra phức tạp tốn nhiều thời gian Ví dụ kiểm tra về thời hạn sử dụng tổng diện tích trong ranh giới
hành chính.
Trang 54Các yếu tố của RBTV
1 i u ki n Điều kiện ều kiện ện
1 i u ki n Điều kiện ều kiện ện
Được mô tả một cách hình thức bằng ngôn ngữ tự nhiên hoặc đại số.
Ví dụ: Cho hai quan hệ:
LOAIDAT( MA_LD, TEN_FAO, TEN_VN,
KY_HIEU)
R1: mald1 LOAIDAT mald2 LOAIDAT loaidat1 loaidat2: mald1.MA_LD
mald2.MA_LD (hai loại đất khác nhau thì có
MA_LD khác nhau)
Trang 55Các yếu tố của RBTV
2) Bối cảnh:
buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra ràng buộc toàn vẹn Bối cảnh của một
ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ.
hệ) sau:
LOAIDAT( MA_LD, TEN_FAO, TEN_VN, KY_HIEU)
DOITUONGSD(MA_DTSD, TEN_DTSD, NGAY_DK)
HIENTRANG( KY_HIEU, MD_SD)
DANGKY( SOTO_BD, SO_THUA, MA_LD, MA_DTSD,
KY_HIEU, D_TICH, THOIHAN_SD).
Với các RBTV sau:
Trang 56Các yếu tố của RBTV
R1: Điều kiện: những lọai đất khác nhau sẽ đánh MA_LD khác nhau
Bối cảnh: trong một quan hệ
R2: Điều kiện: Các đối tượng sử dụng khác nhau sẽ đánh MA_DTSD khác nhau
Bối cảnh: trong một quan hệ
R3: Điều kiện: Mục đích sử dụng đất khác nhau sẽ đánh KY_HIEU khác
nhau
Bối cảnh: Trong một quan hệ
R4: Điều kiện: trong cùng một tờ bản đồ SO_THUA phải khác nhau
Bối cảnh: trong cùng một quan hệ
R5: Điều kiện: MA_LD trong DANGKY phải có trong LOAIDAT
Bối cảnh: Trong hai quan hệ DANGKY và LOAIDAT
R6: Điều kiện: MA_DTSD trong DANGKY phải có trong DOITUONGSD Bối cảnh: Trong hai quan hệ DANGKY và DOITUONGSD
Trang 57Tầm ảnh hưởng
Trang 581) Ràng buộc tòan vẹn có bối cảnh là một quan hệ (trên một quan hệ)
a.) Ràng buộc tòan vẹn về miền giá trị: Ràng buộc này ảnh hưởng đén
những thuộc tính về miền giá trị.
b.) Ràng buộc tòan vẹn liên thuộc tính: Là ràng buộc tòan vẹn được xác
định trên nhiều thuộc tính.
c.) Ràng buộc tòan vẹn liên bộ: Là lọai ràng buộc tòan vẹn xác định liên quan đến nhiều bộ trong một quan hệ, khi cần kiểm tra đến ràng buộc tòan vẹn lọai này ta phải xét đến nhiều bộ trong quan hệ, thường gặp nhất là khóa và phụ thuộc hàm (R2 trong Ví dụ 2, phần a)
d.) Ràng buộc tòan vẹn khóa nội: Định nghĩa khóa : Khóa của một quan hệ là tập tối thiểu của các thuộc tính mà mỗi trường hợp cụ thể của nó xác định duy nhất một bộ trong quan hệ.
Phân loại RBTV
Trang 59Phân loại RBTV
2) Ràng buộc tòan vẹn có bối cảnh trên nhiều quan hệ:
a.) Phụ thuộc tồn tại: RBTV kiểu phụ thuộc tồn tại là sự tồn
tại của một bộ trong quan này phụ thuộc vào sự tồn tại của 1 bộ trong quan hệ khác Thường gặp nhất là do sự
hiện diện của khóa ngọai hoặc lồng khóa.
b) RBTV liên bộ và liên quan hệ: Là RBTV liên quan đến một nhóm các bộ giữa các quan hệ – ví dụ hạng mức đất.
c) RBTV liên bộ, liên thuộc tính và liên quan hệ: Là RBTV
mà giá trị của một thuộc tính liên quan đến các thuộc
Trang 61Phụ thuộc hàm (Functional dependency)
Phụ thuộc hàm là sự biểu diễn ràng buộc toàn vẹn dưới hình
thức toán học để bảo đảm thông tin không bị tổn thất khi
phân rã hoặc kết nối giữa các quan hệ.
Cho Q là một quan hệ Q+ là tập thuộc tính của Q; X,Y Q+, XY( :tập rỗng) Ta nói: X xác định Y hay Y phụ thuộc
hàm vào X, ký hiệu:X Y nếu: (luôn xác định cùng trường hợp cụ thể Y khi cho cùng
trường hợp cụ thể X)