Mức ý niệm Conceptual Level – là một view tổng quát cho cả CSDL – miêu tả dữ liệu gì được lưu trong CSDL và mối quan hệ giữa các dữ liệu đó ra sao... Object-based Data Models – Mô hình t
Trang 4hoạt
– Các chương trình được viết theo các chức năng định sẳn, nếu
có yêu cầu chức năng nào mới thì phải viết một chương trình mới
8
Chương 1: Tổng quan về cơ sở dữ liệu Trang 4
Trang 8của một CSDL, cho dù bản thân CSDL đó có thể bị thay đổi
Trang 10kế CSDL, sử dụng CSDL và DBMS Người dùng (People)
Trang 13Mục đích của việc ánh xạ mức ngoài/mức ý niệm và mức ý niệm/mức trong
Ý nghĩa của sự độc lập dữ liệu giữa logic và vật lý Phân biệt DDL và DML
Các chức năng và dịch vụ chính yếu của DBMS Các thành phần phần mềm của DBMS
Ý nghĩa của kiến trúc client–server và sự tiện lợi của kiến trúc này đối với DBMS
Trang 14xử lý giao tác (Transaction Processing Monitor) Chức năng và tầm quan trọng của catalog hệ thống (system catalog)
Cấu trúc mức trong của CSDL không bị ảnh hưởng bởi sự thay đổi các yếu tố mức vật lý
DBA có thể thay đổi cấu trúc mức ý niệm nhưng
Trang 15Mức ý niệm (Conceptual Level) – là một view tổng quát cho cả CSDL – miêu tả dữ liệu gì được lưu trong CSDL và mối quan hệ giữa các dữ liệu đó ra sao
Trang 16khai.hq@ou.edu.vn
Kiến trúc 3 mức ANSI-SPARC
Mức trong (Internal Level) – là sự thể hiện ở mức vật lý của CSDL trên máy tính
– miêu tả dữ liệu được lưu như thế nào trong CSDL
Trang 17Sự độc lập về dữ liệu (Data Independence) (1)
Độc lập về mặt logic:
– Loại trừ sự thay đổi của lược đồ mức ngoài khi lược đồ mức ý niệm thay đổi
– Cho phép lược đồ mức ý niệm thay đổi (ví dụ khi thêm/bớt thực thể)
– Không yêu cầu thay đổi của lược đồ mức ngoài hay viết lại chương trình ứng dụng
– Cho phép lược đồ mức trong thay đổi (ví dụ khi dùng cách tổ chức file khác nhau, các thiết bị hay các cấu trúc lưu trữ khác nhau) – Không yêu cầu thay đổi lược đồ mức ý niệm hay mức ngoài
11
Trang 1813
Trang 19phải làm như thế nào (HOW) để thao tác dữ liệu Ngôn ngữ DML phi thủ tục (Non-Procedural DML)
– Cho phép user đưa ra yêu cầu về dữ liệu đang cần
(WHAT), chứ không nói cách thức hệ thống phải truy xuất dữ liệu đó như thế nào
ví dụ ngôn ngữ SQL, ngôn ngữ QBE – Công cụ tạo cửa sổ giao diện (Forms Generators) – Công cụ tạo bảng báo cáo (Report Generators) – Công cụ tạo biểu đồ dữ liệu (Graphics Generators) – Công cụ tạo ứng dụng (Application Generators)
15
khai.hq@ou.edu.vn
Trang 20– Mô hình lấy đối tượng làm nền tảng (Object-based) – Mô hình lấy record làm nền tảng (Record-based) – Mô hình vật lý (Physical)
17
khai.hq@ou.edu.vn
Các mô hình dữ liệu (Data Models)
Trang 21Object-based Data Models – Mô hình thực thể-mối kết hợp (Entity-Relationship) – Mô hình ngữ nghĩa (Semantic)
– Mô hình chức năng (Functional) – Mô hình hướng đối tượng (Object-Oriented) Record-based Data Models
– Mô hình quan hệ (Relational Data Model) – Mô hình mạng (Network Data Model) – Mô hình phân cấp (Hierarchical Data Model) Physical Data Models
Mô hình hóa mức ý niệm là quá trình xây dựng một
mô hình thông tin, mô hình này độc lập với mức hiện thực chi tiết
Kết quả là một mô hình dữ liệu mức ý niệm (conceptual data model)
19
khai.hq@ou.edu.vn
Các chức năng của DBMS (1)
1. Lưu, truy xuất và cập nhật dữ liệu
Trang 2221
khai.hq@ou.edu.vn
Các thành phần của DBMS
Trang 24Khuynh hướng hiện nay ít dùng kiến trúc này, vì máy mainframe rất đắc tiền và các máy đầu cuối ngày càng mạnh hơn
25
khai.hq@ou.edu.vn
Kiến trúc xử lý từ xa (Teleprocessing) (2)
Trang 25DBMS và applications chạy trên các máy workstation.
Các nhược điểm:
– Chiếm đường truyền trên mạng nhiều – Nhiều bảng sao DBMS trên các máy workstation – Phức tạp trong việc kiểm soát đồng thời, phục hồi dữ liệu và toàn vẹn dữ liệu
27
khai.hq@ou.edu.vn
Kiến trúc File-Server (2)
Trang 26– Truy xuất rộng hơn đến các database – Tăng tốc độ
– Có thể giảm giá thành phần cứng – Giảm chi phí truyền dữ liệu – Tăng tính nhất quán dữ liệu
29
khai.hq@ou.edu.vn
Kiến trúc Client-server (2)
30
Trang 27Nhằm tạo ra một môi trường có tính nhất quán Đặc biệt dùng cho việc xử lý giao tác trực tuyến (Online Transaction Processing (OLTP))
32
Trang 28– Tên của các user hợp lệ – Tên của các mục dữ liệu trong database – Ràng buộc trên các mục dữ liệu (data items) – Các mục dữ liệu user có thể truy xuất được và kiểu truy xuất Được dùng bởi modules Kiểm soát quyền hợp lệ (Authorization Control) và kiểm tra sự toàn vẹn (Integrity Checker)
HẾT CHƯƠNG 2
34
Chương 2: Môi trường của cơ sở dữ liệu Trang 17
Trang 29Kỹ thuật tạo mô hình ER dùng ngôn ngữ UML (Unified Modeling Language)
Nhận diện và xử lý các lỗi của mô hình ER Xây dựng mô hình ER theo nhu cầu
2
Chương 3: Mô hình thực thể - Mối kết hợp Trang 1
Trang 31Kiểu của thực thể – Là nhóm các đối tượng có cùng các thuộc tính, các đối tượng tồn tại độc lập nhau
Thể hiện của thực thể (Entity occurrence) – Là đối tượng của một thực thể, được xác định là tồn tại duy nhất (không trùng lắp với các đối tượng khác)
Trang 32– Là mối liên kết cụ thể được xác định là tồn tại duy nhất. Mối liên kết này bao gồm các phần tham gia vào liên kết từ các thực thể
Trang 33khai.hq@ou.edu.vn
Các loại mối kết hợp
Cấp của mối kết hợp (Degree of a Relationship) – Là số các thực thể tham gia vào mối kết hợp Tên của mối kết hợp theo cấp:
– Cấp 2: mối kết hợp binary – Cấp 3: mối kết hợp ternary – Cấp 4: mối kết hợp quaternary.
Trang 35Các loại mối kết hợp
Mối kết hợp hồi quy (Recursive Relationship) – Là mối kết hợp có một kiểu thực thể tham gia vào hơn một lần với các vai trò khác nhau
Mối kết hợp hồi quy nên được đặt tên theo vai trò của thực thể khi tham gia vào mối kết hợp đó
Trang 36Miền của thuộc tính – Là tập các giá trị có thể có được của thuộc tính
17
khai.hq@ou.edu.vn
Khóa (Key)
Khóa ứng viên (Candidate Key) – Là tập nhỏ nhất các thuộc tính, tập này xác định được duy nhất từng thể hiện của thực thể
Khóa chính (Primary Key)
Trang 37Khóa ghép (Composite Key) – Là khóa có từ 2 thuộc tính trở lên
Kiểu thực thể yếu (Weak Entity Type) – Là kiểu thực thể ph ụ thu ộc vào kiểu thực thể khác
Trang 39Mức tham gia kết hợp: là (đoạn) số l ượ ng các th ể hi
ệ n của một kiểu thực thể có thể kết hợp v ớ i m ộ t th
ể hi ệ n của một kiểu thực thể khác trên một mối kết hợp
Ràng buộc theo các quy tắc nghiệp vụ (business rules)
23
(Structural Constraints) (2)
Các mối kết hợp có cấp (degree) phổ biến là 2 (binary), tức là các mối kết hợp trên 2 kiểu thực thể Các mối kết hợp cấp 2 thường thấy là:
– một – một one-to-one (1:1) – một – nhiều one-to-many (1:*) – nhiều – nhiều many-to-many (*:*)
24
Chương 3: Mô hình thực thể - Mối kết hợp Trang 12
Trang 44– Là số luợng lớn nhất các thể hiện của kiểu thực thể tham
gia vào mối kết hợp Participation (Số tham gia)
– Là số xác định xem tất cả thể hiện hay chỉ một vài thể
hiện của một kiểu thực thể tham gia vào mối kết hợp
Trang 45và lỗi bẫy lỗ hổng (chasm traps)
37
Trang 46Các lỗi có thể có ở mô hình ER (2)
Fan Trap (lỗi bẫy mơ hồ) – Khi mối quan hệ giữa một số thể hiện của thực thể
có tính mơ hồ (ambiguous), không rõ nghĩa.
Chasm Trap (lỗi bẫy lỗ hổng) – Khi không có đủ các mối quan hệ giữa các thể hiện của thực thể
Trang 49Sự tương đồng giữa mối quan hệ trong toán học và mối quan hệ trong mô hình quan hệ
Thuộc tính của mối quan hệ trong cơ sở dữ liệu Cách xác định khóa ứng viên, khóa chính, và khóa ngoại
Ý nghĩa của “sự toàn vẹn của thực thể” và “sự toàn vẹn trong tham khảo”
Mục đích và sự tiện lợi của view
Trang 50Một thuộc tính (attribute) là một cột của quan hệ Miền (domain) là tập hợp các giá trị có thể có của một hay nhiều thuộc tính
3
khai.hq@ou.edu.vn
Các thuật ngữ của mô hình quan hệ (2)
Bộ (tuple) là một hàng của quan hệ Cấp (hay mức–degree) là số lượng thuộc tính của quan hệ
Số thể hiện (hay số lượng, hay lực lượng – cardinality)
là số bộ của một quan hệ
Cơ sở dữ liệu quan hệ (Relational Database) là một tập các quan hệ đã được chuẩn hóa (normalized relations), mỗi quan hệ có tên khác nhau
4
Trang 53Quan hệ có thể được đặc tả bằng điều kiện chọn ra các cặp của quan hệ, ví dụ:
n
Trang 54X D i
i =1
Bất kỳ tập con nào của tích Đề-các trên sẽ là một quan
hệ trên n tập hợp, mỗi bộ của quan hệ này sẽ có n thành phần
Lược đồ (của) cơ sở dữ liệu quan hệ (Relational database schema)
– Là tập hợp các lược đồ quan hệ – Tên của các lược đồ quan hệ phải khác nhau
12
khai.hq@ou.edu.vnCác thuộc tính của quan hệ
Tên của các quan hệ không được trùng nhau Mỗi ô (cell) trong quan hệ chứa đúng một giá trị đơn trị Tên thuộc tính không được trùng nhau
Tất cả giá trị của một thuộc tính phải có cùng một miền giá trị (cùng domain)
Không có 2 hay nhiều bộ (tuple) giống nhau Không bắt buộc thứ tự của các thuộc tính trong quan hệ
Trang 55Khóa ứng viên (Candidate Key) – Là siêu khóa
– Không có tập con thực sự là siêu khóa – Nếu bỏ bớt đi một thuộc tính thì không còn tính chất xác định duy nhất một bộ trong quan hệ
Khóa thay thế (Alternate Keys) – Là các khóa ứng viên không được chọn làm khóa chính
Khóa ngoại (Foreign Key) – Là một thuộc tính, hay một tập các thuộc tính của một quan hệ trùng với một khóa ứng viên của một quan hệ nào đó
15
Trang 56Sự toàn vẹn của quan hệ (Relational Integrity) (1)
Giá trị Null – Là giá trị của thuộc tính mà giá trị đó chưa biết hoặc không thể áp dụng vào bộ nào được
– Có liên quan đến các dữ liệu không đầy đủ, hay các dữ liệu ngoại lệ
– Biể u di ễ n s ự không có d ữ li ệ u – Không phải là giá trị zero hay giá trị rỗng, vì các giá trị này không phải biểu diễn sự không có dữ liệu
Trang 57Quan hệ nền (Base Relation) – Là quan hệ tương ứng với một thực thể trong lược đồ mức ý niệm
– Các bộ của quan hệ nền được lưu thật sự (mức vật lý) trong cơ sở dữ liệu
Khung nhìn dữ liệu (View) – Là các kết quả có được nhờ sử dụng các toán tử quan hệ áp dụng trên các quan hệ nền
Nội dung của một view được định nghĩa như là một truy vấn (query) trên một hay nhiều quan hệ nền
View có tính chất động, nghĩa là các thay đổi trên các quan hệ nền sẽ ảnh hưởng lập tức lên các view có liên quan
Trang 58Cho phép user truy xuất dữ liệu theo cách thức có thể tùy biến được, nhờ vậy cùng một dữ liệu có thể được xem theo các cách khác nhau, bởi các user khác nhau, vào cùng một thời điểm
Giúp đơn giản hóa việc thực hiện các phép toán trên các quan hệ nền
Nếu view cập nhật được dữ liệu thì các quan hệ nền phía dưới cũng sẽ chịu ảnh hưởng theo
Phân view làm 3 lớp:
– Không cập nhật dữ liệu được (not updateable) – Cập nhật dữ liệu được (updateable)
- Không cho phép cập nhật nếu việc truy vấn liên quan đến nhiều quan hệ nền
- Không cho phép cập nhật nếu có dùng các phép
Trang 63Chương 5: Đại số quan hệ và Phép toán quan hệ Trang 5
Trang 64được Nếu R có i bộ và S có j bộ thì phép hội có tối đa (i+j) bộ
12
Chương 5: Đại số quan hệ và Phép toán quan hệ Trang 6
Trang 65Chương 5: Đại số quan hệ và Phép toán quan hệ Trang 7
Trang 70R F S
– Tạo ra 1 quan hệ có các bộ là kết quả từ phép chọn theo điều kiện F trên kết quả của phép tích Đề-các của R và S
– Điều kiện F có dạng R.a i θ S.b i trong đó θ là 1 trong 6 phép so sánh <, ≤, >, ≥, =, ≠
Trang 8147
Trang 82rms, rnt,oN, sN, bN) ∧ (cN = cN1) ∧ (pN = pN1) ∧ cty = ‘Glasgow’)}
49
Trang 86– Thực hiện các truy vấn dữ liệu
N Ngôn ngữ của CSDL phải mạnh và dễ học
N Ngôn ngữ của CSDL phải có tính cơ động (khả chuyển)
N Ngôn ngữ SQL có định dạng mềm dẻo
N Ngôn ngữ SQL thuộc loại ngôn ngữ phi thủ tục (chỉ cần miêu tả CÁI GÌ chúng ta muốn)
INSERT INTO Staff VALUES ('SG16', 'Brown', 8300);
SELECT staffNo, lName, salary FROM Staff
Trang 91position, sex, DOB, salary, branchNo FROM Staff;
N Có thể dùng dấu * để miêu tả “lấy tất cả các cột:
SELECT * FROM Staff;
Trang 92khai.hq@ou.edu.vn
Ví dụ 6.3 Không sử dụng DISTINCT
SELECT propertyNo FROM Viewing;
19
Trang 93Ví dụ 6.4 Dùng các field tính toán
SELECT staffNo, fName, lName, salary/12 FROM Staff;
21
Trang 94khai.hq@ou.edu.vn
Ví dụ 6.7
Trang 95WHERE position IN ('Manager', ‘Supervisor');
Trang 97comment IS NULL;
30
Trang 9832
Chương 6: Ngôn ngữ SQL thao tác dữ liệu Trang 16
Trang 101WHERE position = 'Manager';
Trang 103GROUP BY branchNo
ORDER BY branchNo;
43
Trang 105(SELECT branchNo FROM Branch WHERE street = '163 Main St');
47
khai.hq@ou.edu.vn
Ví dụ 6.19 Dùng truy vấn con
Trang 106(SELECT AVG(salary) FROM Staff);
49
khai.hq@ou.edu.vn
Ví dụ 6.20 Dùng truy vấn con và hàm thống kê
Trang 108(SELECT salary FROM Staff WHERE branchNo = 'B003');
54
Chương 6: Ngôn ngữ SQL thao tác dữ liệu Trang 27
khai.hq@ou.edu.vn
Trang 109(SELECT salary FROM Staff WHERE branchNo = 'B003'); 56
Chương 6: Ngôn ngữ SQL thao tác dữ liệu Trang 28
khai.hq@ou.edu.vn
Ví dụ 6.23 Dùng ALL
Trang 112s.staffNo = p.staffNo ORDER BY b.branchNo, s.staffNo,
propertyNo;
63
Trang 117(SELECT * FROM Branch b WHERE s.branchNo = b.branchNo AND
city = 'London');
74
Chương 6: Ngôn ngữ SQL thao tác dữ liệu Trang 37
Trang 119Liệt kê tất cả các thành phố có chi nhánh hay có tài
sản.
(SELECT city FROM Branch WHERE city IS NOT NULL) UNION (SELECT city
FROM PropertyForRent WHERE city IS NOT NULL);
FROM PropertyForRent WHERE city IS NOT NULL);
Trang 120(SELECT city FROM Branch) INTERSECT
Trang 121EXISTS
(SELECT * FROM PropertyForRent p WHERE p.city = b.city);
81
khai.hq@ou.edu.vn
Ví dụ 6.34 Dùng phép trừ EXCEPT Liệt kê tất cả các thành phố có chi nhánh nhưng không
có tài sản.
(SELECT city FROM Branch) city FROM EXCEPT
(SELECT PropertyForRent);
NOr (SELECT * FROM Branch) EXCEPT CORRESPONDING BY city (SELECT * FROM PropertyForRent); 82
(SELECT city FROM PropertyForRent);
SELECT DISTINCT city FROM Branch b WHERE NOT EXISTS
(SELECT * FROM PropertyForRent p WHERE p.city = b.city);
83
Trang 124WHERE s.staffNo = p.staffNo GROUP BY s.staffNo, fName, lName) UNION
(SELECT staffNo, fName, lName, 0 FROM Staff
WHERE staffNo NOT IN (SELECT DISTINCT staffNo
khai.hq@ou.edu.vn
Ví dụ 6.37 Dùng lệnh INSERT INTO… SELECT…
Trang 126UPDATE Staff SET salary = salary*1.05 WHERE position = 'Manager';
94
Trang 129Mục đích của VIEW Tạo và xóa VIEW dùng SQL.
Cách DBMS thực hiện các thao tác trên VIEW.
Điếu kiện để VIEW cập nhật dữ liệu được
Ưu và nhược điểm của VIEW
Mô hình giao tác theo chuẩn ISO Dùng lệnh GRANT và REVOKE
Trang 130Ví dụ:
CREATE DOMAIN SexType AS CHAR
Trang 131Miền có thể được xóa bằng DROP DOMAIN:
DROP DOMAIN DomainName [RESTRICT | CASCADE]
Chuẩn ISO hỗ trợ mệnh đề FOREIGN KEY trong câu lệnh CREATE và ALTER TABLE
PRIMARY KEY(staffNo) PRIMARY KEY(clientNo, propertyNo) Chỉ dùng một mệnh đề PRIMARY KEY cho mỗi bảng.
Đối với các thuộc tính khác, muốn cấm việc trùng dữ liệu thì dùng lệnh UNIQUE:
UNIQUE(telNo)
9
Trang 132Ràng buộc trong tham khảo dữ liệu
Khóa ngoại (FK) là 1 hay nhiều cột có tính chất liên kết mỗi hàng ở bảng con chứa FK đến 1 hàng có giá trị tương ứng trong bảng cha.
Vậy nếu FK chứa một giá trị, thì giá trị đó phải tham khảo đến một hàng hiện hữu ở bảng cha của FK.
Chuẩn ISO hỗ trợ định nghĩa FOREIGN KEY trong CREATE và ALTER TABLE:
Thao tác update/delete trên bảng cha có liên quan đến
FK bị phụ thuộc vào mệnh đề ON UPDATE và ON DELETE:
11
Trang 13313
khai.hq@ou.edu.vn
Ràng buộc từ phía công ty
Trang 134Có thể dùng CHECK/UNIQUE trong câu lệnh CREATE và ALTER TABLE.
Hay:
CREATE ASSERTION AssertionName CHECK (searchCondition)
Trang 135bao gồm tập hợp các lược đồ (schema) Lược đồ có tên theo ý nghĩa là tập hợp các đối tượng CSDL có liên quan nhau
Các đối tượng trong một lược đồ có thể là: tables, views, domains, assertions, collations, translations, và các tập ký tự. Một lược đồ của một tác giả.
không rỗng sẽ không xóa được
Trang 136Khóa chính phải đặt NOT NULL FOREIGN KEY có chỉ ra chế độ thao tác xóa/sửa ở cột
có liên quan bảng cha
20
Trang 137CREATE DOMAIN StaffNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT staffNo FROM Staff));
CREATE DOMAIN PNumber AS VARCHAR(5);
CREATE DOMAIN PRooms AS SMALLINT;
CHECK(VALUE BETWEEN 1 AND 15);
CREATE DOMAIN PRent AS DECIMAL(6,2) CHECK(VALUE BETWEEN 0 AND 9999.99);