– Tính dị thường không nhất quán: • tại một thời điểm thông tin về cùng một đối tượng lại có thể khác nhau trên các tập tin khác nhau trong cùng một hệ thống thông tin, điều này thường
Trang 1CƠ SỞ DỮ LIỆU
Email: khanhltn@gmail.com
Trang 2GIỚI THIỆU MÔN HỌC
• Môn học cung cấp cho sinh viên các kiến thức lý thuyết về thiết kế
cơ sở dữ liệu, xét dạng chuẩn và phân rã các ược đồ cơ sở dữ liệu đạt chuẩn tốt nhất, truy vấn trên cơ sở dữ liệu.
• Gồm 7 chương:
– Chương 1: Giới thiệu
– Chương 2: Mô hình dữ liệu quan hệ
– Chương 3: Ngôn ngữ SQL
– Chương 4: Ràng buộc toàn vẹn
– Chương 5: Phụ thuộc hàm
– Chương 6: Chuẩn hóa cơ sở dữ liệu
– Chương 7: Tối ưu hóa câu truy vấn
• Số Tín chỉ: 4 (45,0,,0,105)
• Số tiết: 75 LT: 45 TH: 30
Trang 3GIỚI THIỆU MÔN HỌC
• Thông tin giảng viên:
– ThS Lương Thị Ngọc Khánh
– Email: khanhltn@gmail.com
– http://itam.tut.edu.vn/~khanhltn
Trang 4Tài liệu tham khảo
– Tóm tắt bài giảng môn Cơ sở dữ liệu – Trường ĐH Tôn Đức Thắng
– Lập trình ứng dụng chuyên nghiệp SQL server 2000 – Pham Hữu Khang
– Modern Database Management – Jeffrey A.Hoffer 2000
– Nguyên lý các hệ cơ sở dữ liệu và cơ sở tri thức – D Ullman
– Các hệ cơ sở dữ liệu – lý thuyết và thực hành (tập 1, 2) - Hồ Thuần, Hồ Cẩm Hà
– Giáo trình nhập môn cơ sở dữ liệu – Nguyễn An Tế
Trang 5Chương I
GIỚI THIỆU
Email: khanhltn@gmail.com
Trang 6Nội dung chương I
• CSDL là gì? Tại sao cần tới các hệ CSDL?
• Cơ sở dữ liệu
– Khái niệm
– Ưu điểm
– Các đối tượng sử dụng csdl
– Hệ quản trị csdl
• Các mô hình dữ liệu
Trang 7CSDL là gì? Tại sao cần tới các hệ CSDL?
- Các hệ thống dùng phương pháp xử lý tập tin
• Để lưu trữ thông tin và dữ liệu cho công việc của các cơ quan tổ chức, có thể lưu trữ dưới dạng các file riêng rẽ
và lúc cần lại lấy ra để thao tác, xử lý
Hệ thống dùng phương pháp xử lý tập tin được sử dụng rộng rãi trong suốt những năm 60s, 80s này có ưu điểm
là thời gian triển khai ngắn, ít đầu tư lớn về vật chất, nhân sự và công sức phân tích - thiết kế, rất phù hợp với các bài toán nhỏ
Tuy nhiên, đối với các bài toán có nhu cầu xử lý dữ liệu lớn các vấn đề sau sẽ nảy sinh:
Trang 8CSDL là gì? Tại sao cần tới các hệ CSDL?
- Các hệ thống dùng phương pháp xử lý tập tin
– Tính dư thừa dữ liệu:
• đó là sự lặp đi lặp lại của những thông tin được lưu trữ gây ra lãng phí công sức và dễ dẫn đến tình trạng dị thường.
– Tính dị thường (không nhất quán):
• tại một thời điểm thông tin về cùng một đối tượng lại có thể khác nhau trên các tập tin khác nhau trong cùng một hệ thống thông tin, điều này thường là do dư thừa dữ liệu gây ra.
Trang 9CSDL là gì? Tại sao cần tới các hệ CSDL?
- Các hệ thống dùng phương pháp xử lý tập tin
– Sự thiếu chia sẻ thông tin giữa các hệ thống và khó
mở rộng hệ thống hay kết nối với các hệ thống khác
– Các dị thường của truy cập tương tranh:
• để tăng tính hiệu quả và trả lời nhanh hơn, nhiều hệ thống cho phép nhiều người dùng cập nhật dữ liệu đồng thời và như vậy có thể dẫn đến dữ liệu không nhất quán.
– Tính không toàn vẹn, an toàn dữ liệu:
• Thể hiện sự không đầy đủ của các thông tin cần lưu trữ cho các mục đích yêu cầu của hệ thống thông tin An toàn dữ liệu như các cơ chế bảo mật, phân cấp đối tượng sử dụng
dữ liệu và cả việc sao lưu dữ liệu dự phòng.
Để khắc phục và giải quyết được các vấn đề trên, buộc chúng ta phải thay đổi cách tiếp cận hệ thống tiếp cận CSDL.
Trang 10Cơ sở dữ liệu
- Khái niệm
• Cơ sở dữ liệu:
– Có thể được xem là tập hợp có cấu trúc của thông tin, được lưu trữ trên các thiết bị trữ tin để có thể thỏa mãn yêu cầu khai thác thông tin đồng thời cho nhiều người sử dụng hay nhiều chương trình ứng dụng với các mục đích khác nhau.
• Ưu điểm:
– 1 Về bản thân thông tin lưu trữ:
• Giảm thiểu sự trùng lắp thông tin đến mức thấp nhất, do đó giúp
– Bảo đảm tính nhất quán – Tính toán vẹn của dữ liệu
Trang 11Cơ sở dữ liệu
- Ưu điểm
• Ưu điểm: (tt)
– Về hiệu quả sử dụng thông tin:
• Chia sẻ thông tin cho nhiều người dùng khác nhau
• Tiết kiệm tài nguyên
• Tăng hiệu quả khai thác
– Những vấn đề nảy sinh:
• Cần xác định rõ trách nhiệm đối với
– Sự an toàn của dữ liệu – Tính chính xác của dữ liệu
» Ai có trách nhiệm cập nhật, chỉnh sửa
» Những thông tin nào được phép sửa – Cần một cơ chế bảo mật hay phân quyền khai thác thông tin của người sử dụng
– Giải quyết sự tranh chấp trong truy cập dữ liệu khi có nhiều người dùng cùng truy cập đến một nguồn dữ liệu.
Trang 12Cơ sở dữ liệu
- Các đối tượng sử dụng csdl
• Người sử dụng không chuyên về lĩnh vực tin học và csdl:
– Csdl cần có các công cụ để những người này có thể sử dụng và khái thác csdl khi cần.
• Chuyên viên tin học biết khai thác csdl:
– Những người này có thể xây dựng các ứng dụng khác nhau phục vụ cho nhiều mục đích khác nhau trên csdl.
• Người quản trị csdl:
– Là người hiểu biết về tin học, về các hệ quản trị csdl và hệ thống máy tính
– Là người tổ chức csdl (khai báo cấu trúc, ghi nhận yêu cầu bảo
Trang 13• Mô hình dữ liệu:
– Là sự hình thức hóa toán học gồm có hai phần:
• ký hiệu mô tả dữ liệu
• tập hợp các phép toán diễn tả sự ràng buộc trong dữ liệu và các phép xử lý trên dữ liệu
Cơ sở dữ liệu
- Kiến trúc ba mức của một hệ CSDL
Trang 143 mức biểu diễn một CSDL:
• Mức vật lý (mức trong):
– Là các loại tệp dữ liệu, tệp giao dịch, tệp chỉ dẫn… theo cấu trúc nào đó được lưu trữ trên các thiết bị lưu trữ tin.
• Mức khung nhìn (View - mức ngoài):
– Là cách nhìn, là quan điểm của từng người sử dụng đối với CSDL mức khái niệm Mỗi khung nhìn là một phần của CSDL hoặc trừu tượng hóa một phần của CSDL mức khái niệm.
• Mức khái niệm: (mô hình ER)
– Là sự trừu tượng hóa thế giới thực khi gắn liền với người sử dụng CSDL HQTCSDL cung cấp khả năng định nghĩa dữ liệu ở mức
Cơ sở dữ liệu
- Kiến trúc ba mức của một hệ CSDL (tt)
Trang 15Cơ sở dữ liệu
khái niệm
Trang 16Cơ sở dữ liệu
- Hệ quản trị CSDL
• Hệ quản trị cơ sở dữ liệu (HQTCSDL, database
management system)
– Phần mềm dùng để tạo lập và xử lý dữ liệu.
– Các HQTCSDL thường gặp như: Oracle, Paradox,
MS Access, Sybase, Foxpro, SQL Server….
• CSDL là một thành phần trong HQTCSDL
Trang 17Cơ sở dữ liệu
- Hệ quản trị CSDL (tt)
• Ví dụ: Một DS các số điện thoại, họ tên, địa chỉ của
những người quen.
– có thể lưu trữ DS này trong một chiếc đĩa sử dụng máy tính cá nhân và các phần mềm như ACCESS hoặc, EXCEL…
– Tập hợp các dữ liệu có liên quan với nhau này hàm chứa trong nó một ngữ nghĩa nào đó vì vậy đó là một CSDL Các phần mềm Access, Excel là hệ quản trị CSDL
Trang 18Cơ sở dữ liệu
- Hệ quản trị CSDL (tt)
• Các chức năng của HQTCSDL
Một HQTCSDL phải có khả năng giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra, hai khả năng cơ bản là:
– Quản lý dữ liệu ở mức xử lý tệp như một hệ điều hành
– Truy cập các khối lượng dữ liệu lớn có hiệu quả
Ngoài ra còn có các chức năng khác như:
– Cung cấp giao diện giữa users và CSDL và giữa CSDL với các
Trang 19Các mô hình dữ liệu
• Mô hình dữ liệu
– là một tập hợp các khái niệm và ký pháp dùng để mô
tả dữ liệu, các mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức.
– gồm ba thành phần:
• phần mô tả cấu trúc của CSDL;
• phần mô tả các thao tác, định nghĩa các phép toán được phép trên dữ liệu;
• phần mô tả các ràng buộc toàn vẹn để đảm bảo sự chính xác của dữ liệu.
– Mỗi loại mô hình đặc trưng cho một phương pháp tiếp cận dữ liệu của người phân tích - thiết kế dữ liệu
Trang 20Các mô hình dữ liệu (tt)
Phân chia thành 3 nhóm:
• Mô hình dữ liệu logic trên cơ sở đối tượng:
– mô hình thực thể mối quan hệ
– mô hình hướng đối tượng
– mô hình dữ liệu ngữ nghĩa
– mô hình dữ liệu chức năng
• Mô hình dữ liệu logic trên cơ sở bản ghi:
Trang 21Các mô hình dữ liệu (tt)
• Mô hình dữ liệu logic trên cơ sở bản ghi:
– Mô hình mạng (Network model):
• các khái niệm chính: các mẩu tin (record), loại mẩu tin (record type) và loại liên hệ (set type).
• Mỗi loại mẩu tin đặc trưng cho một đối tượng riêng biệt như:
Khoa, SinhVien,…
• mỗi loại mẩu tin được ký hiệu bằng một hình chữ nhật, mỗi
thể hiện của một loại mẩu tin được gọi là mẩu tin
• Ví dụ, loại mẩu tin SinhVien có các mẩu tin là các sinh viên đang theo học tại trường.
• Loại liên hệ là sự liên kết giữa mẩu tin chủ và mẩu tin thành
viên.Mô hình được biểu diễn là một đồ thị có hướng.
Trang 22Các mô hình dữ liệu (tt)
• Mô hình thực thể kết hợp (Entity Relationship Model)
– Các khái niệm chính:
• Thực thể:
– Là một đối tượng hoặc một khái niệm có thể nhận biết một cách duy nhất (tương tự khái niệm mẫu tin trong mô hình dữ liệu mạng) Vd: SinhVien, Khoa, MonHoc
– Có 2 loại thực thể:
» Thực thể yếu: là thực thể mà sự tồn tại của nó phụ thuộc vào một thực thể khác Vd: Thực thể ThanNhan phụ thuộc vào NhanVien Kí hiệu bằng đường viền kẻ đôi.
» Thực thể mạnh: là thực thể có một hay nhiều thực thể yếu phụ thuộc vào sự tồn tại của nó Kí hiệu bằng
Trang 23Các mô hình dữ liệu (tt)
• Mô hình thực thể kết hợp (tt)
• Loại thực thể: là một loại đối tượng hoặc khái niệm tồn tại độc lập.
• Thuộc tính của loại thực thể: là các đặc tính riêng biệt của loại thực thể.
• Khóa của loại thực thể: là các thuộc tính nhận diện loại thực thể.
• Loại của mối kết hợp: là sự liên kết giữa một loại thực thể mạnh và một loại thực thể yếu Giữa 2 thực thể có nhiều mối kết hợp.
• Số ngôi của mối kết hợp: tổng số loại thực thể tham gia vào mối kết hợp Mối kết hợp cũng có thuộc tính riêng của nó.
Trang 24Các mô hình dữ liệu (tt)
– Mô hình phân cấp (Hierachical model):
• Mô hình dữ liệu là một cây, trong đó các nút biểu diễn tập các thực thể, giữa các nút cha và nút con được liên hệ theo một mối quan hệ xác định
– Mô hình quan hệ (Relation model):
• Mô hình dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan
hệ, tức là các tập k-bộ với k cố định.
– Mô hình hướng đối tượng (Object Oriented Data Model)
• Sử dụng các khái niệm như: lớp (class), đối tượng, sự kế thừa (inheritance), kế thừa bội.
• Đặc trưng cơ bản của cách tiếp cận này là: tính đóng gói
Trang 25Chương II
MÔ HÌNH DỮ LIỆU QUAN HỆ
Email: khanhltn@gmail.com
Trang 26Nội dung chương II
• Các định nghĩa:
– Mở đầu
– Các khái niệm: thuộc tính, miền giá trị
– Mô hình quan hệ
– Lược đồ quan hệ, lược đồ CSDL
– Khóa của lược đồ quan hệ
• Đại số quan hệ
• Bài tập chương II
Trang 27CÁC ĐỊNH NGHĨA - MỞ ĐẦU
Ti05020 Lê Ngọc Phúc 06-12-1988 9.0 240.000 Ti05023 Nguyễn Mỹ Truyền 20-02-1987 8.2 180.000 Ti05027 Phạm Thu Hoa 23-05-1987 8.5 180.000 Ti05006 Phạm Thu Hường 23-06-1987 7.8 120.000
• Bảng trên lưu thông tin về xếp loại học bổng của sinh viên Trong bảng này, ta có:
– maSoSV, hoTenSV, ngaySinh, mucHBg được gọi là các
Trang 28CÁC ĐỊNH NGHĨA - MỞ ĐẦU (tt)
• Cho tập hữu hạn các phần tử U = {A1, A2, … An}
tập U được gọi là tập các thuộc tính Mỗi phần tử Ai- của tập U có một miền giá trị tương ứng, ta ký
hiệu là D(Ai).
Trang 29CÁC ĐỊNH NGHĨA - Mô hình quan hệ là gì?
• Mô hình CSDL quan hệ gọi tắt là mô hình quan hệ
do E.F Codd đề xuất năm 1971, mô hình này bao gồm:
– Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như quan hệ, bộ, thuộc tính, khóa cính, khóa ngoại,…
– Một tập hợp các phép toán trên dữ liệu như phép toán tập hợp, phép toán quan hệ.
– Ràng buộc toàn vẹn quan hệ
Trang 30CÁC ĐỊNH NGHĨA – Thuộc tính
Thuộc tính (attribute, arity)
– Là các đặc trưng của đối tượng
• Vd: BTQL điểm thi của sinh viên, với đối tượng sinh viên ta cần phải chú ý đến các đặc trưng riêng như: họ tên, ngày sinh, học bổng, tỉnh, lớp mà sinh viên theo học… các thuộc tính.
– được phân biệt bằng tên gọi
– phải thuộc vào một kiểu dữ liệu nhất định (số, chuỗi, ngày tháng, lôgic, hình ảnh…)
– Lưu ý: trong cùng một đối tượng không được có hai thuộc tính cùng tên.
– Thông thường mỗi thuộc tính chỉ chọn lấy giá trị trong một tập
con của kiểu dữ liệu miền giá trị của thuộc tính đó
Trang 31CÁC ĐỊNH NGHĨA – Lược đồ quan hệ, Lược đồ
CSDL
• Lược đồ quan hệ (Relation
– là 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 những mối liên hệ giữa chúng.
– Sau này ta thường nói là cho lược đồ quan hệ R trên tập thuộc tính U, ký hiệu R(U), hoặc R(A1,…,An).
– Vd: ta có LĐQH sinh viên (đặt tên là SV) với các
thuộc tính như sau:
SV(maSoSV, hoTenSV, ngaySinh, diemTB, mucHbg)
- Một LĐQH có một ý nghĩa gọi là tân từ của LĐQH
- Mỗi sinh viên có một mã số duy nhất, mỗi mã số xác định tất
cả các thuộc tính của sinh viên đó như họ tên, ngày sinh, mức học bổng…
Trang 32CÁC ĐỊNH NGHĨA – Lược đồ QH, Lược đồ CSDL (tt)
• Nhiều lược đồ quan hệ cùng nằm trong một hệ thống quản lý
được gọi là một lược đồ CSDL.
– Ví dụ lược đồ CSDL để quản lý điểm của sinh viên có thể gồm những lược đồ quan hệ sau:
SV(maSV, hotenSV, ngaySinh, maLop, tinh, hocBong)
Lop(maLop, tenLop, siSo, maKhoa)
Khoa(maKhoa, tenKhoa, soCB)
MonHoc(maMH, tenMH, soTiet)
KetQua(maSV, maMH, diemThi)
– Nhận xét:
Trang 33CÁC ĐỊNH NGHĨA – Lược đồ QH, Lược đồ CSDL (tt)
• Định nghĩa quan hệ (relation):
– Sự thể hiện của lược đồ quan hệ ở một thời điểm
– Cụ thể, một quan hệ r trên lược đồ quan hệ R là một tập con của tích Descartes (Decac) của các miền giá trị D(Ai) với i = 1…n.
– Một cách hình thức, r là một QH trên tập thuộc tính U nếu:
r ⊂ D(A1) x D(A2) x … x D(An)
trong đó D(Ai) là miền giá trị của thuộc tính Ai
– Lưu ý: Thường dùng các ký hiệu R, Q, S để chỉ các lược đồ quan hệ và các ký hiệu r, q, s để chỉ các quan hệ.
• Ví dụ:
– Bảng 2.1 lưu trữ hồ sơ sinh viên là một quan hệ, với U = {maSoSV, hoTenSV, ngaySinh, diemTB, mucHbg}
Trang 34CÁC ĐỊNH NGHĨA – Lược đồ QH, Lược đồ CSDL (tt)
• Nhận xét:
– quan hệ r là một bảng hai chiều:
• trên cột thứ i là các giá trị của D(Ai),
• trên mỗi dòng của bảng là bộ n giá trị của các miền giá trị của các thuộc tính Ai Một dòng chứa thông tin về một đối tượng và gọi là một bộ (phần tử) của quan hệ.
– Trên một lược đồ quan hệ có thể xây dựng được nhiều quan hệ khác nhau, cứ thay đổi một dòng hoặc một cột ta được một quan hệ mới
– cần lưu ý với cách nhìn của tập hợp thì việc thêm vào một dòng
Trang 35CÁC ĐỊNH NGHĨA – Lược đồ QH, Lược đồ CSDL (tt)
ma hoten nsinh donvi luong phucap thuong
• Ví dụ: Cho U = {ma, hoten, donvi, nsinh, luong, phucap, thuong} và
quan hệ r trên lược đồ R(U) như trên:
– Quan hệ r ở trên có năm phần tử Mỗi phần tử là một bộ 8 giá trị (còn gọi là 7-bộ)
• Lưu ý:
– Về sau không cần quan tâm đến bản chất nội tại của mô hình quan hệ, đôi khi để cho tiện ta
ký hiệu các thuộc tính bằng các chữ cái in hoa A, B, C và tập các thuộc tính bằng X, Y, Z, còn các giá trị cụ thể của miền giá trị của chúng bằng các chữ cái thường a, b, c…
Trang 36CÁC ĐỊNH NGHĨA – Khóa của lược đồ quan hệ
• 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.
• Nếu ký hiệu tập thuộc tính có tính chất như vậy là
SK thì thì có một ràng buộc trên r(R) đó là: ti(SK) ≠ tj(SK), với ti, tj là hai bộ khác nhau bất kỳ trong r.
• Nhận xét:
– Cho R (U), nếu SK là siêu khóa của R thì SK ⊆ U
Trang 37CÁC ĐỊNH NGHĨA – Khóa của lược đồ quan hệ (tt)
• Khóa của 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.
• Ví dụ:
– Lược đồ quan hệ SV, thuộc tính maSV là khóa
• Khóa chính (primary key)
– Khóa chính là một khóa tối tiểu được người phân tích chọn để cài đặt.
• Khóa dự tuyển (candidate key)
– Các khóa dự tuyển là các khóa tối tiểu khác mà không phải là khóa chính.
Trang 38CÁC ĐỊNH NGHĨA – Khóa của lược đồ quan hệ (tt)
• Khóa ngoài (khóa ngoại) của một lược đồ quan hệ
là một tập hợp gồm một hay nhiều thuộc tính là khóa của một lược đồ quan hệ khác.
• Trong mô hình dữ liệu quan hệ, khóa đóng vai
trò quan trọng vì nó giúp nhận biết thực thể một cách nhanh chóng trong CSDL
• Thuộc tính khóa
– Là thuộc tính có tham gia vào một khóa bất kỳ (dự
Trang 39CÁC ĐỊNH NGHĨA - Lược đồ và thể hiện của CSDL
• Toàn bộ mô tả CSDL được gọi là lược đồ CSDL (database schema) Tương ứng với ba mức trừu xuất dữ liệu nói trên có
• Toàn bộ dữ liệu lưu trữ trong CSDL tại một thời điểm nhất
định được gọi là một thể hiện của CSDL (database
instance)
Nhiều thể hiện của CSDL có thể tương ứng với cùng một lược đồ CSDL
Trang 40CÁC ĐỊNH NGHĨA - Lược đồ và thể hiện của CSDL (tt)
MaNV Hodem Ten Tuoi Luong MaNV Ten Ma_chi_nhanh
MaNV Hodem Ten Ngay_sinh Tuoi Luong Ma_chi_nhanh