1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng môn nhập môn cơ sở dữ liệu(1)

170 303 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 170
Dung lượng 3,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 4

hoạ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 8

của một CSDL, cho dù bản thân CSDL đó có thể bị thay đổi

Trang 10

kế CSDL, sử dụng CSDL và DBMS Người dùng (People)

Trang 13

Mụ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 14

xử 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 15

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

Trang 16

khai.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 17

Sự độ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 18

13

Trang 19

phả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 21

Object-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 22

21

khai.hq@ou.edu.vn

Các thành phần của DBMS

Trang 24

Khuynh 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 25

DBMS 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 27

Nhằ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 29

Kỹ 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 31

Kiể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 33

khai.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 35

Cá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 36

Miề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 37

Khó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 39

Mứ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 45

và lỗi bẫy lỗ hổng (chasm traps)

37

Trang 46

Cá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 49

Sự 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 50

Mộ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 53

Quan 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 54

X 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 55

Khó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 56

Sự 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 57

Quan 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 58

Cho 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 63

Chươ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 65

Chương 5: Đại số quan hệ và Phép toán quan hệ Trang 7

Trang 70

R 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 81

47

Trang 82

rms, 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 91

position, 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 92

khai.hq@ou.edu.vn

Ví dụ 6.3 Không sử dụng DISTINCT

SELECT propertyNo FROM Viewing;

19

Trang 93

Ví dụ 6.4 Dùng các field tính toán

SELECT staffNo, fName, lName, salary/12 FROM Staff;

21

Trang 94

khai.hq@ou.edu.vn

Ví dụ 6.7

Trang 95

WHERE position IN ('Manager', ‘Supervisor');

Trang 97

comment IS NULL;

30

Trang 98

32

Chương 6: Ngôn ngữ SQL thao tác dữ liệu Trang 16

Trang 101

WHERE position = 'Manager';

Trang 103

GROUP 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 112

s.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 119

Liệ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 121

EXISTS

(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 124

WHERE 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 126

UPDATE Staff SET salary = salary*1.05 WHERE position = 'Manager';

94

Trang 129

Mụ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 130

Ví dụ:

CREATE DOMAIN SexType AS CHAR

Trang 131

Miề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 132

Rà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 133

13

khai.hq@ou.edu.vn

Ràng buộc từ phía công ty

Trang 134

Có thể dùng CHECK/UNIQUE trong câu lệnh CREATE và ALTER TABLE.

Hay:

CREATE ASSERTION AssertionName CHECK (searchCondition)

Trang 135

bao 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 136

Khó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 137

CREATE 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);

Ngày đăng: 23/10/2014, 17:48

HÌNH ẢNH LIÊN QUAN

Bảng tổng kết Ràng buộc theo mức tham gia - bài giảng môn nhập môn cơ sở dữ liệu(1)
Bảng t ổng kết Ràng buộc theo mức tham gia (Trang 44)
Bảng Staff: xóa giá trị default 'Assistant' cho cột - bài giảng môn nhập môn cơ sở dữ liệu(1)
ng Staff: xóa giá trị default 'Assistant' cho cột (Trang 138)

TỪ KHÓA LIÊN QUAN

w