Nội dung chính của bài giảng môn học Cơ sở dữ liệu được trình bày trong 5 chương, đó là: Nhập môn cơ sở dữ liệu, cơ sở dữ liệu quan hệ, chuẩn hoá cơ sở dữ liệu, thiết kế hệ thống, Cơ sở dữ liệu tài nguyên đất đai. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
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
Nhu cầu quản lý và truy xuất thông tin
Các hình thức tổ chức dữ liệu
Các tính chất của dữ liệu
Các dạng dữ liệu
Trang 6Việ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
Lê Văn Lúa; 21 tuổi; quê quán: Long An Trần thị Son; 19 tuổi; quê quán: Bình Định
Trang 7CSDL 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 10MƠ HÌNH MẠNG (Network model)
Dữ liệu gợp
Trang 11MÔ HÌNH PHÂN CẤP (Hierarchical model)
Trang 12MÔ HÌNH QUAN HỆ (Relational model)
- 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 13MÔ HÌNH QUAN HỆ (Relationship model)
Thuộc tính (Attribute)
Miền giá trị (Domain)
Khoá và thuộc tính khoá (Primary key)
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 175 Quản lý dư thừa dữõ liệu
6 Tương hợp dữ liệu (chuẩn hoá)
Trang 19CHỨC NĂNG HỆ QUẢN TRỊ CSDL
Mô tả dữ liệu
Cập nhật dữ liệu
Điều khiển tính toàn vẹ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
(DOMAIN)
(M2)
001 LUC Trần văn Thành 1.050
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ệ
Siêâu khóa
Khóa
Khóa ngọai
Trang 29Khóa - Khóa ngọai của Quan hệ
Siêu khoá: 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ệ.
Khoá: Trong trường hợp siêu khoá chỉ bao gồm 1 thuộc tính thì gọi là khoá Các thuộc tính trong siêu khoá gọi là thuộc tính khoá Thuộc tính khoá thường đóng vai trò liên kết giữa các quan hệ với nhau.
Khoá 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à khoá chính trong một quan hệ đã xác định thì
Trang 30Ví dụ 1
Đường giao thông của huyện Hóc Môn được phân thành 4 cấp: Đường quốc lộ, đường tỉnh lộ, đường liên xã và đường hẽm Đường quốc lộ có lộ giới 60m; đườ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 cấp đường cũng có kết cấu bề mặt khác 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
Theo số liệu thống kê năm 2005 Huyện 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
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Ệ
Các phép toán đại số quan hệ là phép toán 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 tương ứng một –
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)
Cho Q là một quan hệ với tập thuộc tính Q+, 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 36Phép chiếu
(ví dụ)
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)
Cho hai quan hệ Q1(A1,A2, ,Am) và 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.
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 kiện
Trang 43Phép liên kết(ví dụ)
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]
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
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 47Truy vấn nhóm
ấy được xếp vào cùng nhóm.
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
FROM (Sv Inner Join Lop On Sv.MALOP =
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
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 toà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.
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ữ.
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 toà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
Đượ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,
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ệ.
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).
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ị.
trên nhiều thuộc tính.
đế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à
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)
Trang 62Phụ thuộc hàm – ví dụ
Trang 63Phụ thuộc hàm – ví dụ
Trang 64Phụ thuộc hàm(ví dụ)
MASV → TEN_SV : Mỗi mã sv có một tên :
MAMH → → TEN_MH : Mỗi mã môn học có một tên :
MSGV → TEN_GV: M ỗi mã giáo viên có một
mã số công chức
SHTHUA → TEN_CSD: → TEN_CSD: Mỗi số thửa có một tên
chủ s ử dụng
Trang 65Phụ thuộc hàm(ví dụ)
Trang 66Phụ Thuộc Hàm – ví dụ
Trang 67Phụ Thuộc Hàm
các giá trị có thể có của X và Y trong bảng chứ không phải chỉ dựa trên vài giá trị hiện tại Thực chất phụ thuộc hàm được xác định khi biết nghĩa của các thuộc tính trong
X và Y
do mô tả trong lược đồ khái niệm Xác định được các phụ thuộc hàm là một phần quan trọng trong quá trình hiểu ý
Trang 68Phụ Thuộc Hàm – ví dụ
Trang 69Tính chất phụ thuộc hàm
Cho quan hệ Q với tập thuộc tính Q + , X, Y, Z thuộc Q
+
* Tính chất 1: Tính phản xạ: Nếu Y X X Y (Y là con hoặc = X)
Ví dụ: SOTO_BD, SO_THUA SO_THUA
* Tính chất 2: Tính thêm vào
Nếu X Y thì X Z Y Z (X Z= X Z)
Trang 70Tính chất phụ thuộc hàm
Ba tính chất trên là nội dung hệ tiên đề Amstrong đưa ra năm 1974
Từ ba tính chất trên ta có thể suy diễn ra một số phụ thuộc hàm khác gọi là luật dẫn suy diễn.
Trong một cơ sở dữ liệu với tập phụ thuộc hàm F, giả sử f là một phụ thuộc hàm được suy ra từ F Nếu các phụ thuộc hàm trong F được kiểm tra đúng thì F hiển nhiên là đúng.
Ví dụ
Ví dụ: Xét cơ sở dữ liệu sau:
DANGKY(SOTO_BD, SO_THUA, CHU_SD, L_.DAT, D_TICH,
DT_SD) với các phụ thuộc hàm sau:
f1: SOTO_BD, SO_THUA CHU_SD, L_DAT, D_TICH
f2: CHU_SD DT_SD
f3: SOTO_BD, SO_THUA DT_SD
Qua đó ta thấy phụ thuộc hàm f3 được suy ra từ phụ thuộc hàm f1 và f2 thông qua tính chất bắc cầu