106
1 Cơ sở dữ liệu

Co so du lieu - Nguyen Trung Truc

Embed Size (px)

Citation preview

Page 1: Co so du lieu - Nguyen Trung Truc

1

Cơ sở dữ liệu

Page 2: Co so du lieu - Nguyen Trung Truc

2

Các khái niệm cơ bản và định nghĩa. Hệ quản trị CSDL. CSDL quan hệ. Sự phát triển của các hệ CSDL. Mô hình liên kết thực thể. Mô hình dữ liệu quan hệ. Ngôn ngữ SQL. Cơ sở dữ liệu phân tán.

Nội dung

Page 3: Co so du lieu - Nguyen Trung Truc

3

Cơ sở dữ liệu database Cơ sở dữ liệu là sự tập hợp có tổ chức các dữ

liệu có liên quan luận lý với nhau. Dữ liệu (data): sự biểu diễn của các đối

tượng và sự kiện được ghi nhận và được lưu trữ trên các phương tiện của máy tính.

Dữ liệu có cấu trúc: số, ngày, chuỗi ký tự, … Dữ liệu không có cấu trúc: hình ảnh, âm thanh,

đoạn phim, … Có tổ chức (organized): người sử dụng có

thể dễ dàng lưu trữ, thao tác và truy xuất dữ liệu.

Các khái niệm cơ bản và định nghĩa

Page 4: Co so du lieu - Nguyen Trung Truc

4

Cơ sở dữ liệu Có liên quan luận lý (logically related): dữ

liệu mô tả một lãnh vực mà nhóm người sử dụng quan tâm và được dùng để trả lời các câu hỏi liên quan đến lãnh vực này.

Thông tin information Thông tin là dữ liệu đã được xử lý để làm

tăng sự hiểu biết của người sử dụng. Dữ liệu trong ngữ cảnh. Dữ liệu được tổng hợp / xử lý.

Các khái niệm cơ bản và định nghĩa

Page 5: Co so du lieu - Nguyen Trung Truc

5

Các khái niệm cơ bản và định nghĩa

Dữ liệu50010273 Nguyễn Trung Tiến MT00 2050100298 Lê Việt Hùng MT01 1959900012 Trần Hùng Việt MT99 2150200542 Hồ Xuân Hương MT02 1850000075 Bùi Đức Duy MT00 20

Thông tin: dữ liệu trong ngữ cảnhMã sinh viên Họ và tên sinh viên Lớp Tuổi50010273 Nguyễn Trung Tiến MT00 2050100298 Lê Việt Hùng MT01 1959900012 Trần Hùng Việt MT99 2150200542 Hồ Xuân Hương MT02 1850000075 Bùi Đức Duy MT00 20

Page 6: Co so du lieu - Nguyen Trung Truc

6

Các khái niệm cơ bản và định nghĩa

MT0040%

MT0120%

MT0220%

MT9920%

Thông tin: dữ liệu được tổng hợp / xử lý

Page 7: Co so du lieu - Nguyen Trung Truc

7

Hệ thống xử lý tập tin file processing system Hệ thống xử lý tập tin là tập hợp các chương

trình dùng để lưu trữ, thao tác và truy xuất các tập tin dữ liệu có kích thước lớn.

Các tập tin dữ liệu được lưu trữ trong các thư mục (folder).

Hệ thống xử lý tập tin

Page 8: Co so du lieu - Nguyen Trung Truc

8

Các thành phần của hệ thống xử lý tập tin Phần cứng: các máy tính. Phần mềm:

Hệ điều hành Các tiện ích Các tập tin Các chương trình quản lý tập tin Các chương trình ứng dụng tạo các báo cáo từ

các dữ liệu được lưu trữ trong các tập tin. Con người: người quản lý, chuyên gia, người

lập trình, người sử dụng cuối cùng. Các thủ tục: các lệnh và các qui tắc chi phối

việc thiết kế và sử dụng các thành phần của phần mềm.

Dữ liệu: tập hợp các sự kiện.

Hệ thống xử lý tập tin

Page 9: Co so du lieu - Nguyen Trung Truc

9

Quản lý dữ liệu của hệ thống tập tin Ngôn ngữ lập trình: 3GL (third-Generation

Language). Làm gì? Làm như thế nào? Các ngôn ngữ:

COBOL (COmmon Business-Oriented Language)BASIC (Beginner’s All-purpose Symbolic Instruction Code)FORTRAN (FORmula TRANslation)

Các chương trình xử lý tập tin Tạo cấu trúc tập tin. Thêm dữ liệu vào tập tin. Xóa dữ liệu của tập tin Sửa dữ liệu của tập tin. Liệt kê dữ liệu của tập tin.

Hệ thống xử lý tập tin

Page 10: Co so du lieu - Nguyen Trung Truc

10

Nhược điểm của hệ thống xử lý tập tin Phụ thuộc dữ liệu – chương trình (Program-

Data Dependence) Tất cả các chương trình ứng dụng phải duy trì

siêu dữ liệu (phần mô tả) của các tập tin mà chúng sử dụng.

Dư thừa dữ liệu / Trùng lặp dữ liệu (Data Redundancy / Duplication of Data)

Các hệ thống / chương trình khác nhau có các bản dữ liệu riêng biệt của cùng dữ liệu.

Hạn chế việc dùng chung dữ liệu Mỗi ứng dụng có các tập tin riêng biệt, ít sử

dụng chung dữ liệu với các ứng dụng khác.

Hệ thống xử lý tập tin

Page 11: Co so du lieu - Nguyen Trung Truc

11

Nhược điểm của hệ thống xử lý tập tin Thời gian phát triển lâu

Người lập trình phải thiết kế các dạng tập tin dữ liệu riêng và viết cách truy xuất tập tin cho mỗi ứng dụng mới.

Chi phí bảo trì chương trình cao Các nhược điểm nêu trên làm cho việc bảo trì

chương trình gặp nhiều khó khăn, thường chiếm khoảng 80% ngân sách phát triển HTTT.

Hệ thống xử lý tập tin

Page 12: Co so du lieu - Nguyen Trung Truc

12

Mỗi người lập trình phải duy trì dữ liệu riêng biệt.

Mỗi chương trình ứng dụng phải có mã lệnh cho siêu dữ liệu của mỗi tập tin.

Mỗi chương trình ứng dụng phải có các chương trình con xử lý để đọc, thêm, sửa và xóa dữ liệu.

Không có các điều khiển chung và phối hợp.

Các dạng thức tập tin không có cùng chuẩn.

Phụ thuộc dữ liệu

Page 13: Co so du lieu - Nguyen Trung Truc

13

Tốn vùng nhớ để lưu trữ dữ liệu dư thừa. Gây ra các vấn đề khó về bảo trì dữ liệu. Vấn đề chính:

Việc cập nhật dữ liệu của một tập tin có thể dẫn đến các mâu thuẫn dữ liệu.

Vi phạm tính toàn vẹn dữ liệu.

Dư thừa dữ liệu

Page 14: Co so du lieu - Nguyen Trung Truc

14

Dư thừa dữ liệu

Duplicate Data

Page 15: Co so du lieu - Nguyen Trung Truc

15

Kho dữ liệu trung tâm chứa các dữ liệu dùng chung.

Dữ liệu được quản lý bởi một đơn vị điều khiển (controlling agent).

Dữ liệu được lưu trữ theo một dạng thức chuẩn và thích hợp.

Cần phải có một hệ quản trị CSDL.

Cách tiếp cận cơ sở dữ liệu

Page 16: Co so du lieu - Nguyen Trung Truc

16

Ưu điểm của cách tiếp cận CSDL Độc lập dữ liệu – chương trình (data -

program independence). DBMS chứa siêu dữ liệu (metadata), do đó các

ứng dụng không cần quan tâm đến các dạng thức của dữ liệu.

DBMS quản lý các truy vấn và cập nhật dữ liệu, do đó ứng dụng không cần xử lý việc truy xuất dữ liệu.

Giảm tối thiểu sự dư thừa dữ liệu (data redundancy).

Nâng cao tính nhất quán (data consistency) / toàn vẹn dữ liệu (data integrity).

Cách tiếp cận cơ sở dữ liệu

Page 17: Co so du lieu - Nguyen Trung Truc

17

Ưu điểm của cách tiếp cận CSDL Nâng cao việc dùng chung dữ liệu (data

sharing). Những người sử dụng khác nhau có những cái

nhìn khác nhau về dữ liệu. Tăng hiệu suất phát triển ứng dụng. Tuân thủ các tiêu chuẩn.

Tất cả các truy xuất dữ liệu đều được thực hiện theo cùng một cách.

Nâng cao chất lượng của dữ liệu. Các ràng buộc (constraint), các qui tắc hợp lệ

của dữ liệu (data validation rule).

Cách tiếp cận cơ sở dữ liệu

Page 18: Co so du lieu - Nguyen Trung Truc

18

Ưu điểm của cách tiếp cận CSDL Nâng cao tính truy xuất và tính đáp ứng của

dữ liệu. Sử dụng ngôn ngữ truy vấn dữ liệu chuẩn (SQL -

Structured Query Language). Giảm chi phí bảo trì chương trình. Bảo mật (security). Chép lưu (backup) và phục hồi (recovery). Điều khiển tương tranh (concurrency

control).

Cách tiếp cận cơ sở dữ liệu

Page 19: Co so du lieu - Nguyen Trung Truc

19

Chi phí và rủi ro của cách tiếp cận CSDL Chi phí ban đầu

Chi phí cài đặt và quản lý Chi phí chuyển đổi (conversion cost)

Chi phí vận hành Cần nhân viên mới có chuyên môn. Cần phải chép lưu và phục hồi.

Mâu thuẫn về mặt tổ chức Rất khó thay đổi các thói quen cũ.

Cách tiếp cận cơ sở dữ liệu

Page 20: Co so du lieu - Nguyen Trung Truc

20

Hệ quản trị CSDL DBMS – DataBase Management System Hệ quản trị CSDL là tập hợp các chương

trình dùng để quản lý cấu trúc và dữ liệu của CSDL và điều khiển truy xuất dữ liệu trong CSDL.

Cho phép người sử dụng định nghĩa, tạo lập và bảo trì CSDL và cung cấp các truy xuất dữ liệu.

Hệ quản trị cơ sở dữ liệu

Page 21: Co so du lieu - Nguyen Trung Truc

21

Hệ quản trị cơ sở dữ liệu

Page 22: Co so du lieu - Nguyen Trung Truc

22

Các chức năng của hệ quản trị CSDL Lưu trữ, truy xuất và cập nhật dữ liệu

Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language)

Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language).

Quản lý giao tác (transaction management). Điều khiển tương tranh (concurrency control) Chép lưu và phục hồi dữ liệu. Bảo mật dữ liệu

Ngôn ngữ điều khiển dữ liệu (DCL - Data Control Language).

Hỗ trợ truyền thông dữ liệu. Duy trì tính toàn vẹn / nhất quán dữ liệu. Cung cấp các tiện ích.

Hệ quản trị cơ sở dữ liệu

Page 23: Co so du lieu - Nguyen Trung Truc

23

Ngôn ngữ định nghĩa dữ liệu: Tạo cấu trúc của bảng CustomerCREATE TABLE CUSTOMER (CUST_ID NUMBER(11,0) NOT NULL, NAME VARCHAR(25) NOT NULL, ADDRESS VARCHAR(30), CITY VARCHAR(20), CONSTRAINT PK_CUSTOMER PRIMARY KEY (CUST_ID));Ngôn ngữ thao tác dữ liệu: Liệt kê mã, tên và địa chỉ của các khách hàng thuộc thành phố ‘HCM’ SELECT CUST_ID, NAME, ADDRESS FROM CUSTOMER WHERE CITY = ‘HCM’;Ngôn ngữ điều khiển dữ liệu: Cho phép người sử dụng Tien và Truc được phép xem và thêm dữ liệu vào bảng Customer GRANT SELECT, INSERT ON CUSTOMER TO TIEN, TRUC;

Hệ quản trị cơ sở dữ liệu

Page 24: Co so du lieu - Nguyen Trung Truc

24

Mô hình liên kết thực thể (ER) entity-relationship model Mô hình liên kết thực thể là cách tiếp cận

chính để mô hình hóa dữ liệu ý niệm (conceptual data modeling).

Mô hình ER là công cụ giao tiếp giữa người thiết kế CSDL và người sử dụng cuối cùng để xây dựng CSDL trong giai đoạn phân tích.

Mô hình ER được dùng để xây dựng mô hình dữ liệu ý niệm (conceptual data model) nhằm biểu diễn cấu trúc và các ràng buộc của CSDL.

Mô hình liên kết thực thể

Page 25: Co so du lieu - Nguyen Trung Truc

25

Các thành phần của mô hình liên kết thực thể Thực thể và các thuộc tính. Mối liên kết và các thuộc tính.

Mô hình liên kết thực thể

Page 26: Co so du lieu - Nguyen Trung Truc

26

Mô hình liên kết thực thể

Sơ đồ liên kết thực thể (ERD - Entity-Relationship Diagram)

Page 27: Co so du lieu - Nguyen Trung Truc

27

Attribute symbols

Relationship symbols

Entity symbols

A special entity that is also a relationship

Relationship cardinalities specify how many of each entity type is allowed

Relationship degrees specify number of entity types involved

Page 28: Co so du lieu - Nguyen Trung Truc

28

Thể hiện thực thể entity instance Thể hiện thực thể là người, vị trí, đối tượng,

sự kiện, khái niệm (thường tương ứng với một hàng của bảng).

Thực thể nên là đối tượng có nhiều thể hiện trong CSDL. đối tượng có nhiều thuộc tính. đối tượng cần được mô hình hóa.

Thực thể không nên là người sử dụng của hệ CSDL. kết xuất của hệ CSDL (ví dụ bản báo cáo).

Đặc điểm của thực thể là tính phân biệt (distinctness): có thể phân biệt giữa thực thể này với thực thể khác.

Thực thể

Page 29: Co so du lieu - Nguyen Trung Truc

29

Kiểu thực thể entity type Kiểu thực thể là tập hợp các thực thể thuộc

cùng một loại (thường tương ứng với một bảng).

Được biểu diễn bằng hình chữ nhật.

Thực thể

Page 30: Co so du lieu - Nguyen Trung Truc

30

Thuộc tính attribute Thuộc tính là một đặc tính / tính chất của một

kiểu thực thể (thường tương ứng với một vùng tin trong một bảng).

Được biểu diễn bằng hình bầu dục. Các loại thuộc tính

Thuộc tính bắt buộc và thuộc tính tùy chọn. Thuộc tính đơn và thuộc tính phức hợp. Thuộc tính đơn trị và thuộc tính đa trị. Thuộc tính chứa và thuộc tính dẫn xuất. Thuộc tính khóa và thuộc tính không khóa.

Thuộc tính

Page 31: Co so du lieu - Nguyen Trung Truc

31

Thuộc tính đơn và thuộc tính phức hợp Thuộc tính đơn (simple attribute) là thuộc

tính không bị phân rã thành nhiều thuộc tính khác.

Thuộc tính phức hợp (composite attribute) là thuộc tính bị phân rã thành nhiều thuộc tính khác.

Thuộc tính

Page 32: Co so du lieu - Nguyen Trung Truc

32

Thuộc tính

Thuoäc tính ñôn

Thuoäc tính phức hôïp

Page 33: Co so du lieu - Nguyen Trung Truc

33

Thuộc tính đơn trị và thuộc tính đa trị Thuộc tính đơn trị (single-valued attribute) là

thuộc tính chỉ chứa một giá trị. Thuộc tính đa trị (multivalued attribute) là

thuộc tính chứa nhiều giá trị khác nhau thuộc một miền trị, được biểu diễn bằng hình bầu dục nét đôi.

Thuộc tính

Page 34: Co so du lieu - Nguyen Trung Truc

34

Thuộc tính chứa và thuộc tính dẫn xuất Thuộc tính chứa (stored attribute) là thuộc

tính mà giá trị của nó không được suy dẫn từ các thuộc tính khác.

Thuộc tính dẫn xuất (derived attribute) là thuộc tính mà giá trị của nó được suy dẫn từ các thuộc tính khác, được biểu diễn bằng hình bầu dục nét đứt.

Thuộc tính

Page 35: Co so du lieu - Nguyen Trung Truc

35

Thuộc tính

Thuộc tính đơn trị

Thuộc tính đa trị

Thuộc tính chứa

Thuộc tính dẫn xuất

Page 36: Co so du lieu - Nguyen Trung Truc

36

Khóa / thuộc tính xác định key / identifier Khóa là một thuộc tính hoặc tổ hợp các thuộc

tính dùng để xác định duy nhất một thể hiện của một kiểu thực thể.

Thuộc tính khóa và thuộc tính không khóa Thuộc tính khóa là thuộc tính ở trong khóa.

key attribute / prime attribute / identifier attribute Thuộc tính khóa được gạch dưới.

Thuộc tính không khóa (non-key attribute) là thuộc tính không ở trong khóa.

Thuộc tính không khóa còn được gọi là thuộc tính mô tả (descriptor).

Khóa

Page 37: Co so du lieu - Nguyen Trung Truc

37

Khóa đơn và khóa phức hợp Khóa đơn (simple key) là khóa chỉ có một

thuộc tính. Khóa phức hợp (composite key) là khóa có

nhiều hơn một thuộc tính. Khóa dự tuyển

candidate key Khóa dự tuyển là khóa của một kiểu thực thể. Một kiểu thực thể có ít nhất một khóa dự

tuyển.

Khóa

Page 38: Co so du lieu - Nguyen Trung Truc

38

Khóa chính primary key Khóa chính là một khóa tiêu biểu trong các

khóa dự tuyển của một kiểu thực thể. Một kiểu thực thể chỉ có một khóa chính. Khóa chính dùng để liên kết giữa các thực

thể.

Khóa

Page 39: Co so du lieu - Nguyen Trung Truc

39

Khóa

Khóa đơn

Khóa phức hợp

Thuộc tính không khóa

Page 40: Co so du lieu - Nguyen Trung Truc

40

Kiểu mối liên kết relationship type Kiểu mối liên kết là sự liên kết giữa các kiểu

thực thể. Được biểu diễn bằng hình thoi. Mối liên kết có thể có nhiều thuộc tính dùng

để mô tả các đặc tính của sự liên kết giữa các thực thể.

Hai thực thể có thể có nhiều kiểu mối liên kết giữa chúng.

Mối liên kết

Page 41: Co so du lieu - Nguyen Trung Truc

41

Mối liên kết

Mối liên kết có thuộc tính

Hai thực thể có nhiều mối liên kết

Page 42: Co so du lieu - Nguyen Trung Truc

42

Bậc / ngôi của mối liên kết degree / arity of relationship Bậc của mối liên kết là số lượng kiểu thực

thể tham gia đồng thời vào mối liên kết này. Các loại mối liên kết

Mối liên kết 1-ngôi (unary relationship) Mối liên kết 2-ngôi (binary relationship) Mối liên kết 3-ngôi (ternary relationship): 3

kiểu thực thể đồng thời tham gia vào mối liên kết.

Mối liên kết

Page 43: Co so du lieu - Nguyen Trung Truc

43

Mối liên kết

One entity related to another of the same entity type

Entities of two different types related to each other

Entities of three different types related to each other

Page 44: Co so du lieu - Nguyen Trung Truc

44

Mối liên kết

Mối liên kết 1-ngôi

Page 45: Co so du lieu - Nguyen Trung Truc

45

Mối liên kết

Mối liên kết 2-ngôi

Page 46: Co so du lieu - Nguyen Trung Truc

46

Mối liên kết

Mối liên kết 3-ngôi

Page 47: Co so du lieu - Nguyen Trung Truc

47

Lượng số của mối liên kết cardinality of relationship Lượng số của mối liên kết là số lượng thể

hiện thực thể tham gia vào mối liên kết này. Các loại lượng số

một - một (one-to-one): một thực thể a liên kết với một thực thể b; một thực thể b liên kết với một thực thể a.

một - nhiều (one-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với một thực thể a.

nhiều - nhiều (many-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với nhiều thực thể a.

Mối liên kết

Page 48: Co so du lieu - Nguyen Trung Truc

48

Ràng buộc lượng số cardinality constraint Ràng buộc lượng số là số lượng thể hiện của

thực thể này có thể hoặc phải liên kết với một thể hiện của thực thể khác.

Lượng số nhỏ nhất Nếu 0 là tùy chọn (optional). Nếu một hoặc nhiều là bắt buộc (mandatory).

Lượng số lớn nhất Số lượng lớn nhất.

Mối liên kết

Page 49: Co so du lieu - Nguyen Trung Truc

49

Mối liên kết

Page 50: Co so du lieu - Nguyen Trung Truc

50

Mối liên kết

Mối liên kết 1-ngôi một-một có lượng số tùy chọn

Mối liên kết 2-ngôi một-nhiều có lượng số bắt buộc

Page 51: Co so du lieu - Nguyen Trung Truc

51

Mối liên kết

Mối liên kết có lượng số tối đa xác định

Lượng số lớn nhất

Page 52: Co so du lieu - Nguyen Trung Truc

52

Quan hệ (relation) là một bảng dữ liệu hai chiều bao gồm nhiều hàng (mẩu tin) và nhiều cột (thuộc tính hoặc vùng tin). Mỗi hàng là duy nhất: không thể có hai hàng

có cùng các giá trị ở tất cả vùng tin. Thứ tự của các hàng là không quan trọng. Thứ tự của các cột là không quan trọng. Không phải mọi bảng đều là quan hệ. Quan

hệ là một bảng không chứa các hàng giống hệt nhau.

Quan hệ

Page 53: Co so du lieu - Nguyen Trung Truc

53

Quan hệ

Quan hệ: Supplier

Snum Name City

S1 Nguyễn Trung Tiến SF

S2 Trần Thị Yến LA

S3 Nguyễn Văn An SF

Page 54: Co so du lieu - Nguyen Trung Truc

54

Khóa key Khóa quan hệ là một tập nhỏ nhất các thuộc

tính dùng để xác định duy nhất một hàng. Một khóa chỉ có một thuộc tính được gọi là

khóa đơn (simple key). Một khóa có nhiều thuộc tính được gọi là

khóa phức hợp (composite key). Khóa thường được sử dụng làm chỉ mục

(index) của bảng dữ liệu để làm tăng tốc độ xử lý câu truy vấn.

Quan hệ

Page 55: Co so du lieu - Nguyen Trung Truc

55

Khóa Một quan hệ phải có ít nhất một khóa và có

thể có nhiều khóa. Các thuộc tính thuộc một khóa được gọi là

thuộc tính khóa (prime attribute), các thuộc tính còn lại trong lược đồ quan hệ được gọi là các thuộc tính không khóa (nonprime attribute).

Các thuộc tính khóa được gạch dưới. Các thuộc tính khóa không được có giá trị

rỗng (null value).

Quan hệ

Page 56: Co so du lieu - Nguyen Trung Truc

56

Khóa Tất cả các khóa của một quan hệ được gọi là

khóa dự tuyển (candidate key). Một trong các khóa dự tuyển được chọn làm

khóa tiêu biểu, khóa này được gọi là khóa chính (primary key).

Một quan hệ chỉ có một khóa chính và có thể có nhiều khóa dự tuyển.

Trong một quan hệ, một hoặc nhiều thuộc tính được gọi là khóa ngoại (foreign key) nếu chúng là khóa chính của một quan hệ khác.

Quan hệ

Page 57: Co so du lieu - Nguyen Trung Truc

57

Cơ sở dữ liệu quan hệ (relational database) bao gồm các bảng (quan hệ) biểu diễn các thực thể và các khóa chính / khóa ngoại biểu diễn các mối liên kết.

Cơ sở dữ liệu quan hệ

Page 58: Co so du lieu - Nguyen Trung Truc

58

Cơ sở dữ liệu quan hệ

Primary Key

Foreign Key (implements 1:N relationship between customer and order)

Combined, these are a composite primary key (uniquely identifies the order line)…individually they are foreign keys (implement M:N relationship between order and product)

Page 59: Co so du lieu - Nguyen Trung Truc

59Cơ sở dữ liệu quan hệ.

Cơ sở dữ liệu quan hệ

Page 60: Co so du lieu - Nguyen Trung Truc

60

Mỗi quan hệ (bảng) tương ứng với một kiểu thực thể hoặc với một kiểu mối liên kết nhiều - nhiều.

Mỗi hàng tương ứng với một thể hiện thực thể hoặc với một thể hiện mối liên kết nhiều - nhiều.

Mỗi cột tương ứng với một thuộc tính. Từ quan hệ (relation) trong cơ sở dữ liệu

quan hệ không có cùng nghĩa với từ mối quan hệ (relationship) trong mô hình ER.

Sự tương ứng với mô hình ER

Page 61: Co so du lieu - Nguyen Trung Truc

61

Lược đồ cơ sở dữ liệu database schema Lược đồ cơ sở dữ liệu là một tập hợp các lược

đồ quan hệ. Trong một lược đồ cơ sở dữ liệu, các tên

lược đồ quan hệ là duy nhất.

Lược đồ cơ sở dữ liệu

Lược đồ cơ sở dữ liệu:

Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)

Dept (Deptnum, Name, Area, Mgrnum)

Supplier (Snum, Name, City)

Supply (Snum, Pnum, Deptnum, Quan)

Page 62: Co so du lieu - Nguyen Trung Truc

62

Qui tắc 1: Biến đổi một kiểu thực thể thành một quan hệ. Đối với kiểu thực thể thông thường (regular

entity type): khóa của quan hệ là khóa của kiểu thực thể.

Thuộc tính của quan hệ là thuộc tính của kiểu thực thể.

Quan hệ chỉ chứa các thuộc tính thành phần của thuộc tính phức hợp.

Quan hệ không chứa các thuộc tính đa trị.

Biến đổi ERD thành các quan hệ

Page 63: Co so du lieu - Nguyen Trung Truc

63

Biến đổi ERD thành các quan hệ

Biến đổi kiểu thực thể thông thường

CUSTOMER relation

CUSTOMER entity type with simple attributes

Page 64: Co so du lieu - Nguyen Trung Truc

64

Biến đổi ERD thành các quan hệ

CUSTOMER entity type with composite attribute

CUSTOMER relation with address detail

Biến đổi thuộc tính phức hợp

Page 65: Co so du lieu - Nguyen Trung Truc

65

Qui tắc 2: Biến đổi thuộc tính đa trị thành một quan hệ. Quan hệ chứa khóa của kiểu thực thể và

thuộc tính đa trị. Khóa của quan hệ gồm khóa của kiểu thực

thể và thuộc tính đa trị.

Biến đổi ERD thành các quan hệ

Page 66: Co so du lieu - Nguyen Trung Truc

66

Biến đổi ERD thành các quan hệ

Biến đổi thuộc tính đa trị

Multivalued attribute becomes a separate relation with foreign key

1–to–many relationship between original entity and new relation

Page 67: Co so du lieu - Nguyen Trung Truc

67

Qui tắc 3: Biểu diễn mối liên kết 1-ngôi hoặc 2-ngôi có lượng số một-một. Đặt khóa của kiểu thực thể bên phía bắt buộc

và các thuộc tính của mối liên kết vào quan hệ của kiểu thực thể bên phía tùy chọn.

Biến đổi ERD thành các quan hệ

Page 68: Co so du lieu - Nguyen Trung Truc

68

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số một - một

EMPLOYEE relation with recursive foreign key

EMPLOYEE entity with Manages relationship

Page 69: Co so du lieu - Nguyen Trung Truc

69

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số một - một

Page 70: Co so du lieu - Nguyen Trung Truc

70

Qui tắc 4: Biểu diễn mối liên kết 1-ngôi hoặc 2-ngôi có lượng số một-nhiều. Đặt khóa của kiểu thực thể bên phía một và

các thuộc tính của mối liên kết vào quan hệ của kiểu thực thể bên phía nhiều.

Biến đổi ERD thành các quan hệ

Page 71: Co so du lieu - Nguyen Trung Truc

71

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số một - nhiều

EMPLOYEE relation with recursive foreign key

EMPLOYEE entity with Manages relationship

Page 72: Co so du lieu - Nguyen Trung Truc

72

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số một - nhiều

Note the mandatory one

Again, no null value in the foreign key…this is because of the mandatory minimum cardinality

Page 73: Co so du lieu - Nguyen Trung Truc

73

Qui tắc 5: Biến đổi mối liên kết 1-ngôi hoặc 2-ngôi có lượng số nhiều-nhiều thành một quan hệ. Quan hệ chứa các khóa của các kiểu thực thể

tham gia vào mối liên kết. Khóa của quan hệ gồm cả hai khóa của hai

kiểu thực thể. Thuộc tính của quan hệ là thuộc tính của mối

liên kết.

Biến đổi ERD thành các quan hệ

Page 74: Co so du lieu - Nguyen Trung Truc

74

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số nhiều - nhiều

Bill-of-materials relationships (M:N)

ITEM and COMPONENT relations

Page 75: Co so du lieu - Nguyen Trung Truc

75

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số nhiều - nhiều

New intersection relationForeign key

Foreign key

Composite primary key

The Supplies relationship will need to become a separate relation

Page 76: Co so du lieu - Nguyen Trung Truc

76

Qui tắc 6: Biến đổi mối liên kết 3-ngôi thành một quan hệ. Quan hệ chứa ba khóa của ba kiểu thực thể

tham gia vào mối liên kết. Mối liên kết có bao nhiêu kiểu thực thể bên

phía một thì quan hệ có bấy nhiêu khóa: đối với một kiểu thực thể bên phía một thì khóa của quan hệ gồm cả hai khóa của hai kiểu thực thể còn lại. Nếu không có kiểu thực thể bên phía một thì khóa của quan hệ bao gồm cả ba khóa của ba kiểu thực thể.

Thuộc tính của quan hệ là thuộc tính của mối liên kết.

Biến đổi ERD thành các quan hệ

Page 77: Co so du lieu - Nguyen Trung Truc

77

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết ba ngôi

Page 78: Co so du lieu - Nguyen Trung Truc

78

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết ba ngôi

Page 79: Co so du lieu - Nguyen Trung Truc

79

Ngôn ngữ truy vấn có cấu trúc (SQL -Structured Query Language) là một ngôn ngữ chuẩn được dùng để tạo lập và truy vấn các cơ sở dữ liệu quan hệ.

SQL là một ngôn ngữ chuẩn cho các hệ quản trị CSDL quan hệ (RDBMS - Relational DBMS).

Ngôn ngữ SQL

Page 80: Co so du lieu - Nguyen Trung Truc

80

Ngôn ngữ SQL là một ngôn ngữ tựa tiếng Anh (English-like language), sử dụng các từ như select, insert, delete trong tập lệnh.

Ngôn ngữ SQL là một ngôn ngữ phi thủ tục (nonprocedural language). Chỉ ra các thông tin gì cần thiết (what). Không cần phải chỉ ra cách thực hiện như

thế nào (how) để có được các thông tin này. SQL xử lý các tập hợp mẩu tin (bảng) hơn

là mỗi lần một mẩu tin đơn lẻ.

Các đặc điểm của ngôn ngữ SQL

Page 81: Co so du lieu - Nguyen Trung Truc

81

Nhiều loại người có thể sử dụng SQL: người quản trị CSDL (DBA), người lập trình ứng dụng, người quản lý, người sử dụng cuối cùng (end user).

SQL cung cấp nhiều lệnh cho nhiều công việc khác nhau: Truy vấn dữ liệu. Thêm vào, cập nhật và xóa bỏ các hàng của

bảng. Tạo lập, thay đổi và xóa bỏ các đối tượng

CSDL. Điều khiển truy xuất cơ sở dữ liệu và các đối

tượng CSDL. Bảo đảm tính nhất quán của CSDL.

Các đặc điểm của ngôn ngữ SQL

Page 82: Co so du lieu - Nguyen Trung Truc

82

Ngôn ngữ định nghĩa dữ liệu DDL - Data Definition Language Các lệnh dùng để định nghĩa CSDL: tạo lập

(create), thay đổi (alter) và hủy bỏ (drop) các đối tượng dữ liệu, thiết lập các ràng buộc.

Ngôn ngữ thao tác dữ liệu DML - Data Manipulation Language Các lệnh dùng để bảo trì và truy vấn CSDL:

thêm (insert), sửa (update), xóa (delete) dữ liệu của bảng, truy vấn (select).

Ngôn ngữ điều khiển dữ liệu DCL - Data Control Language Các lệnh dùng để điều khiển CSDL: quản trị

các quyền (grant, revoke).

Ngôn ngữ SQL

Page 83: Co so du lieu - Nguyen Trung Truc

83

Các bước tạo một bảng Bước 1. Xác định kiểu dữ liệu của các cột. Bước 2. Xác định các cột có thể hoặc không

thể có giá trị rỗng (null value). Bước 3. Xác định các cột phải có các giá trị

duy nhất (các khóa dự tuyển). Bước 4. Xác định khóa chính – khóa ngoại. Bước 5. Xác định các giá trị mặc nhiên. Bước 6. Xác định các ràng buộc trên các cột

(mô tả miền trị). Bước 7. Tạo bảng và các chỉ mục của bảng.

Định nghĩa một bảng

Page 84: Co so du lieu - Nguyen Trung Truc

84

Lệnh CREATE TABLE dùng để tạo cấu trúc của một bảng.

Cú pháp của lệnh CREATE TABLE:

CREATE TABLE <table name>

(<column_definition>, …

[<table_constraint_definition>]);

Định nghĩa một bảng

Page 85: Co so du lieu - Nguyen Trung Truc

85

Định nghĩa một bảng

Định nghĩa các cột và kiểu dữ liệu của các cột.

Non-nullable specification

Primary keys can never have NULL values

Xác định khóa chính.

Page 86: Co so du lieu - Nguyen Trung Truc

86

Định nghĩa một bảng

Non-nullable specifications

Primary key

Khóa chính là khóa phức hợp (nhiều thuộc tính).

Default value

Domain constraint

Kiểm tra các giá trị của các cột.

Page 87: Co so du lieu - Nguyen Trung Truc

87

Định nghĩa một bảng

Xác định các khóa ngoại và thiết lập các mối liên kết

Primary key of parent table

Foreign key of dependent table

Page 88: Co so du lieu - Nguyen Trung Truc

88

Hủy bỏ bảng

Lệnh DROP TABLE dùng để hủy bỏ một bảng.

Cú pháp của lệnh DROP TABLE:

DROP TABLE <table name> [CASCADE CONSTRAINTS];

Hủy bỏ bảng Order_Line_T

DROP TABLE Order_Line_T;

Page 89: Co so du lieu - Nguyen Trung Truc

89

Lệnh SELECT

Dùng để truy vấn dữ liệu của một bảng hoặc nhiều bảng.

Cú pháp của lệnh SELECT:

SELECT [DISTINCT] <list of expressions>

[INTO <list of variables>]

FROM <list of tables>

[WHERE <row conditions>]

[GROUP BY <list of expressions>

[HAVING <group conditions>]]

[ORDER BY <list of expressions>];

Page 90: Co so du lieu - Nguyen Trung Truc

90

Các mệnh đề của lệnh SELECT SELECT: liệt kê các cột (các biểu thức) của

kết quả. FROM: các bảng hoặc các khung nhìn chứa

dữ liệu cần thiết cho truy vấn. WHERE: điều kiện xử lý các hàng để tạo ra

kết quả. GROUP BY: gom nhóm các hàng. HAVING: điều kiện xử lý các nhóm. ORDER BY: sắp thứ tự kết quả.

Lệnh SELECT

Page 91: Co so du lieu - Nguyen Trung Truc

91

Lệnh SELECT

Thứ tự xử lý các mệnh đề của lệnh SELECT.

Page 92: Co so du lieu - Nguyen Trung Truc

92

Lệnh SELECT

SELECT *

FROM Order_T;

SELECT Order_ID, Order_Date, Customer_ID

FROM Order_T;

SELECT DISTINCT Order_Date “Date of Order”

FROM Order_T;

SELECT Order_ID AS Identifier, Order_Date Date

FROM Order_T;

Page 93: Co so du lieu - Nguyen Trung Truc

93

Lệnh SELECT

SELECT Product_ID, Standard_PriceFROM Product_TWHERE Standard_Price < 275;

SELECT Cust.Customer_Name AS Name, Customer_AddressFROM Customer_T CustWHERE Customer_Name = ‘Home Furnishings’;

SELECT Product_ID, Standard_PriceFROM Product_WHERE Standard_Price BETWEEN 100 AND 200;

SELECT Customer_Name, City, StateFROM Customer_TWHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’);

Page 94: Co so du lieu - Nguyen Trung Truc

94

Lệnh SELECT

SELECT Product_Description, Product_Finish, Standard_PriceFROM Product_TWHERE (Product_Description LIKE ‘%Desk’

OR Product_Description LIKE ‘_A%’)AND Standard_Price > 300;

SELECT Product_ID, Product_Finish, Standard_PriceFROM Product_TWHERE Product_Description IS NULL;

SELECT COUNT(*)FROM Order_Line_TWHERE Order_ID = 1004;

Page 95: Co so du lieu - Nguyen Trung Truc

95

Lệnh SELECT

SELECT State, COUNT(State)

FROM Customer_T

WHERE State IN (‘FL’, ‘TX’, ‘CA’, ‘HI’)

GROUP BY State

HAVING COUNT(State) > 1

ORDER BY State DESC;

Page 96: Co so du lieu - Nguyen Trung Truc

96

Lệnh INSERT

Thêm dữ liệu vào một bảng

Cú pháp của lệnh INSERT - Thêm một hàng:

INSERT INTO <table name> [(<list of columns>)]

VALUES (<list of expressions>);

Cú pháp của lệnh INSERT - Thêm nhiều hàng:

INSERT INTO <table name> [(<list of columns>)]

SELECT statement;

Page 97: Co so du lieu - Nguyen Trung Truc

97

Lệnh INSERT

INSERT INTO Customer_T

VALUES (001, ‘Contemporary Casuals’,

‘1355 S. Himes Blvd.’, ‘Gainesville’, ‘FL’, 32601);

INSERT INTO Product_T (Product_ID,

Product_Description, Product_Finish, Standard_Price, Product_On_Hand)

VALUES (1, ‘End Table’, ‘Cherry’, 175, 8);

INSERT INTO CA_Customer_T

SELECT *

FROM Customer_T

WHERE State = ‘CA’;

Page 98: Co so du lieu - Nguyen Trung Truc

98

Lệnh DELETE

Xóa bỏ các hàng của một bảng

Cú pháp của lệnh DELETE:

DELETE [FROM] <table name>

[WHERE <row conditions>];

Xóa một số hàng của bảng Customer_T

DELETE FROM Customer_T

WHERE State = ‘HI’;

Xóa tất cả các hàng của bảng Customer_T

DELETE FROM Customer_T ;

Page 99: Co so du lieu - Nguyen Trung Truc

99

Lệnh UPDATE

Cập nhật dữ liệu của các hàng của một bảng

Cú pháp của lệnh UPDATE:

UPDATE <table name> [<alias>]

SET <column1> = {<expression>, <subquery>}

[, <column2> = {<expression>, <subquery>} …]

[WHERE <row conditions>];

Cập nhật một số hàng của bảng Product_T

UPDATE Product_T

SET Unit_Price = 775

WHERE Product_ID = 7;

Page 100: Co so du lieu - Nguyen Trung Truc

100

Định nghĩa 1

Cơ sở dữ liệu phân tán (distributed database) là sự tập hợp dữ liệu mà về mặt luận lý chúng thuộc cùng một hệ thống nhưng được đặt ở nhiều nơi (site) của một mạng máy tính. Sự phân tán dữ liệu (data distribution): dữ

liệu phải được phân tán ở nhiều nơi. Sự tương quan luận lý (logical correlation):

dữ liệu của các nơi được sử dụng chung để cùng giải quyết một vấn đề.

Cơ sở dữ liệu phân tán

Page 101: Co so du lieu - Nguyen Trung Truc

101

Ví dụ Một ngân hàng có ba chi nhánh ở các vị trí

địa lý khác nhau. Tại mỗi chi nhánh có một máy tính và một cơ

sở dữ liệu tài khoản, tạo thành một nơi (site) của cơ sở dữ liệu phân tán.

Các máy tính được kết nối với nhau thông qua một mạng máy tính truyền thông.

Một khách hàng có thể gửi tiền và rút tiền tại các chi nhánh.

Cơ sở dữ liệu phân tán

Page 102: Co so du lieu - Nguyen Trung Truc

102

Cơ sở dữ liệu phân tán

Hình 1.1. Cơ sở dữ liệu phân tán trên một mạng phân tán địa lý.

Máy tính 1

TerminalTT

Máy tính 3T TT

Mạng truyềnthông

Cơ sởdữ liệu 1

Máy tính 2

TTT

Cơ sởdữ liệu 2

Cơ sởdữ liệu 3

Chi nhánh 1 Chi nhánh 2

Chi nhánh 3

Page 103: Co so du lieu - Nguyen Trung Truc

103

Cơ sở dữ liệu phân tán

Hình 1.2. Cơ sở dữ liệu phân tán trên một mạng cục bộ.

Máy tính 1 Máy tính 2

Máy tính 3

Mạng cục bộ

Trung tâm máy tính

Chi nhánh 1TTT Cơ sở

dữ liệu 1Cơ sở

dữ liệu 2

Cơ sởdữ liệu 3

Chi nhánh 2TTT

Chi nhánh 3TTT

Page 104: Co so du lieu - Nguyen Trung Truc

104

Cơ sở dữ liệu phân tán

Hình 1.3. Hệ thống đa xử lý (multiprocessor system).

Máy tính phía sau 1

Mạng cục bộ

Máy tính ứng dụng (phía trước)

Cơ sởdữ liệu 1

Cơ sởdữ liệu 2

Cơ sởdữ liệu 3

Trung tâm máy tính

Máy tính phía sau 2

Máy tính phía sau 3

Chi nhánh 1TTT

Chi nhánh 2TTT

Chi nhánh 3TTT

Page 105: Co so du lieu - Nguyen Trung Truc

105

Định nghĩa 2

Cơ sở dữ liệu phân tán là sự tập hợp dữ liệu được phân tán trên các máy tính khác nhau của một mạng máy tính. Mỗi nơi của mạng máy tính có khả năng xử lý tự trị và có thể thực hiện các ứng dụng cục bộ. Mỗi nơi cũng tham gia thực hiện ít nhất một ứng dụng toàn cục, mà nơi này yêu cầu truy xuất dữ liệu ở nhiều nơi bằng cách dùng hệ thống truyền thông con.

Cơ sở dữ liệu phân tán

Page 106: Co so du lieu - Nguyen Trung Truc

106

Định nghĩa 2 Sự phân tán dữ liệu (data distribution): dữ

liệu phải được phân tán ở nhiều nơi. Ứng dụng cục bộ (local application): ứng

dụng được chạy hoàn thành tại một nơi và chỉ sử dụng dữ liệu cục bộ của nơi này.

Ứng dụng toàn cục (hoặc ứng dụng phân tán) (global application / distributed application): ứng dụng được chạy hoàn thành và sử dụng dữ liệu của ít nhất hai nơi.

Cơ sở dữ liệu phân tán