1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)

144 1,4K 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 144
Dung lượng 2,01 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ột cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên các thiết bị mang tin, có nhiều người sử dụng và được tổ chức theo một mô hình..  Kiểm soát được tí

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG BÀI GIẢNG

HỌC PHẦN: CƠ SỞ DỮ LIỆU

Trình độ đào tạo

Hệ đào tạo

: :

Đại học

Chính quy

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

KHOA CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG BÀI GIẢNG

HỌC PHẦN: CƠ SỞ DỮ LIỆU

Trình độ đào tạo: Đại học

Hệ đào tạo : Chính quy Ngành : CNTT

NĂM 2014-2015

Trang 2

MỤC LỤC

1 CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU 7

1.1 Dữ liệu - thông tin 7

1.1.1 Dữ liệu 7

1.1.2.Thông tin 9

1.2 Các hệ thống xử lý truyền thống 9

1.3 Hệ cơ sở dữ liệu 10

1.3.1 CSDL là gì? 10

1.3.2 Hệ quản trị CSDL 11

1.3.2.Các chức năng của một hệ quản trị cơ sở dữ liệu 12

1.3.3.Các đặc trƣng của giải pháp cơ sở dữ liệu 13

1.3.4 Lƣợc đồ và trạng thái cơ sở dữ liệu 15

1.4 Các mô hình dữ liệu 16

Các loại mô hình cơ sở dữ liệu 17

1.4.1 Mô hình thực thể - liên kết (thực thể -quan hệ) 18

1.4.2 Mô hình dữ liệu quan hệ 18

1.4.3 Mô hình dữ liệu mạng 18

1.4.4 Mô hình dữ liệu phân cấp 19

2 MÔ HÌNH THỰC THỂ LIÊN KẾT 20

2.1 Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu 20

2.2 Các thành phần cơ bản của mô hình ER 22

2.2 1 Thực thể và thuộc tính 22

2.2 2 Kiểu thực thể, tập thực thể, khóa và tập giá trị 23

2.2.3 Kiểu liên kết, tập liên kết và các thể hiện 25

2.2.4.Cấp liên kết, tên vai trò và kiểu liên kết đệ quy 26

2.2.5 Các ràng buộc trên các kiểu liên kết 27

2.2.6.Thuộc tính của các kiểu liên kết 28

2.2.7.Các kiểu thực thể yếu 28

2.3 Ví dụ về thiết kế CSDL dựa trên mô hình ER 29

2.4 Tổng kết mô hình thực thể - liên kết 31

2 4.1 Tóm tắt 31

2.4.2.Câu hỏi luyện tập 31

3 MÔ HÌNH QUAN HỆ - CHUYỂN MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ 33

3.1.Các khái niệm 33

3.1.1.Thuộc tính (Attribute) 33

3.1.2.Lƣợc đồ quan hệ (relation schema) 34

3.1.3 Quan hệ (relation) 34

3.1.4.Bộ (tuple) 35

3.1.5.Siêu khóa - khóa (super key - key) 35

3.2 Cơ sở dữ liệu quan hệ và lƣợc đồ cơ sở dữ liệu quan hệ 37

3.3 Ràng buộc toàn vẹn 39

3.3.1 Khái niệm ràng buộc toàn vẹn 39

Trang 3

3.3.2 Các yếu tố của ràng buộc toàn vẹn 40

3.3.3 Phân loại ràng buộc toàn vẹn 41

3.4 Các phép tính trên cơ sở dữ liệu quan hệ 45

3.4.1 Các phép toán cập nhật trên quan hệ 45

3.4.2 Tìm kiếm dữ liệu (truy vấn dữ liệu) 47

3.5 Các quy tắc chuyển đổi từ lược đồ CSDL ER sang thiết kế quan hệ 47

3.6 Chuyển đổi mô hình cụ thể 52

4 BÀI TẬP VÀ THẢO LUẬN VỀ THIẾT KẾ CSDL DỰA TRÊN 2 Ô HÌNH CSDL: ER VÀ QUAN HỆ 53

4.1 Nhắc lại lý thuyết 53

4.2 Bài tập – thảo luận 53

5 NGÔN NGỮ ĐẠI SỐ QUAN HỆ 53

5.1 Các phép toán đại số quan hệ 53

5.1.1.Phép chọn (SELECT) 53

5.1.2 Phép chiếu (PROJECT) 55

5.1.3 Phép đặt lại tên (RENAME) 56

5.1.4 Các phép toán lý thuyết tập hợp 57

5.1.5.Phép nối (JOIN) 58

5.1.6.Tập hợp đầy đủ các phép toán quan hệ 60

5.1.7.Phép chia 61

6 CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ (TIẾP) 61

6.1.Các phép toán quan hệ bổ sung 61

6.1.1.Các hàm nhóm và các phép nhóm 61

6.1.2.Các phép toán khép kín đệ quy 62

6.2 Một số ví dụ về truy vấn trong đại số quan hệ 63

7 CƠ BẢN VỀ TỐI ƯU HÓA MỘT CÂU HỎI TRUY VẤN 64

7.1 Mở đầu 64

7.2 Tổng quan về tối ưu hóa câu hỏi 64

7.3 Phương pháp ước lượng cây đại số quan hệ 66

7.4 Nguyên tắc tối ưu hóa 67

7.5 Kỹ thuật tối ưu hoá các biểu thức đại số quan hệ 67

7.5.1 Biểu thức quan hệ 67

7.5.2 Biến đổi biểu thức quan hệ 68

7.5.3 Các quy tắc tương đương 68

7.5.4 Một số nhận xét khi thực hiện tối ưu hóa câu hỏi 71

7.6 Ví dụ tối ưu hóa các câu hỏi 72

7.7 Bài tập 73

8 BÀI TẬP – THẢO LUẬN VỀ NGÔN NGỮ ĐẠI SỐ QUAN HỆ 76

8.1 Nhắc lại lý thuyết 76

8.2 Bài tập – thảo luận 76

9 NGÔN NGỮ TRUY VẤN CẤU TRÚC SQL 76

Trang 4

9.1 SQL là chuẩn ngôn ngữ ANSI để truy cập CSDL 76

9.1.1 SQL là gì? 76

9.1.2 SQL là một chuẩn 77

9.2 Bảng CSDL 77

9.3 Ngôn ngữ truy vấn cấu trúc (SQL) 77

9.3.1 SQL là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language) 77

9.3.2 SQL là ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language) 78

9.4 Các kiểu dữ liệu 78

9.5 Câu lệnh định nghĩa dữ liệu (create database, create table, alter table, drop table ) 79

9.5.1 Tạo một CSDL 79

9.5.2 Tạo một bảng trong một CSDL 79

9.5.3 Các ràng buộc toàn vẹn (TBTV) và cách tạo ràng buộc trên bảng 80

9.5.4.Lệnh sửa đổi bảng(alter table) 84

9.6 Bài tập 85

10.THỰC HÀNH CÂU LỆNH CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE 86

11 TRUY VẤN DỮ LIỆU VÀ CẬP NHẬT DỮ LIỆU 86

11.1 Cập nhật dữ liệu 86

11.1.1 Câu lệnh thêm dữ liệu (insert) 86

11.1.2 Câu lệnh sửa đổi dữ liệu (update) 87

11.1.3 Câu lệnh xóa dữ liệu (delete) 87

11.2 Truy vấn cơ bản 88

11.2.1 Cú pháp cơ bản của câu lệnh select cơ bản 88

11.2.2 SQL và đại số quan hệ 89

11.2.3 Mệnh đề select 89

11.2.4 Mệnh đề where 90

11.2.5 Mệnh đề order by 92

11.2.6 Kết nối bảng 93

11.3 Các bài tập về truy vấn cơ bản 94

12 CÁC PHÉP TOÁN TẬP HỢP VÀ TRUY VẤN LỒNG 94

12.1 Các phép toán tập hợp 94

12.1.1 Toán tử UNION 94

12.1.2 Toán tử EXCEPT và INTERSECT 95

12.2 Truy vấn lồng 95

12.2.1 Truy vấn lồng phân cấp 96

12.2.2 Truy vấn lồng tương quan 96

12.3 Bài tập liên quan đến các phép toán tập hợp và truy vấn lồng 97

13 THỰC HÀNH RBTV 97

14 THỰC HÀNH VỀ CẬP NHẬT DỮ LIỆU 97

15 THỰC HÀNH VỀ TRUY VẤN CƠ BẢN 97

16 THỰC HÀNH VỀ CÁC PHÉP TOÁN TẬP HỢP VÀ TRUY VẤN LỒNG 97

17 HÀM KẾT HỢP VÀ GOM NHÓM, MỘT SỐ TRUY VẤN KHÁC 97

Trang 5

17.1 Hàm kết hợp 97

17.1.1 Hàm count(), min(), max(), sum(), avg() 97

17.2 Gom nhóm 100

17.2.1 Cú pháp 100

17.2.2 Điều kiện trên nhóm 100

17.3 Thứ tự thực hiện câu truy vấn có mệnh đề Group by và Having 101

17.4 Bài tập liên quan đến hàm kết hợp và gom nhóm 102

17.5 Một số dạng truy vấn khác 102

17.5.1 Truy vấn con ở mệnh đề From 102

17.5.2 Điều kiện kết nối ở mệnh đề From 102

17.6 Các bài tập liên quan đến một số dạng truy vấn khác 103

18 THỰC HÀNH HÀM KẾT HỢP VÀ GOM NHÓM 103

19 THỰC HÀNH MỘT SỐ DẠNG TRUY VẤN KHÁC 103

20 KIỂM TRA THỰC HÀNH 103

21 PHỤ THUỘC HÀM 103

21.1 Khái niệm 103

21.2 Một số tính chất của phụ thuộc hàm 105

21.3 Định nghĩa suy dẫn theo quan hệ 106

21.4 Hệ tiên đề Amstrong (Armstrong‟s Axioms) 107

21.5 Định nghĩa suy dẫn theo hệ tiên đề Amstrong 108

21.6 Bao đóng của tập thuộc tính (closures of attribute sets) 108

21.6.1 Thuật toán tìm bao đóng của một tập thuộc tính 111

21.6.2 Thuật toán cơ bản tìm F+ 114

22 PHỦ CỦA TẬP PHỤ THUỘC HÀM 115

22.1 Định nghĩa tương đương 115

22.2 Các tập phụ thuộc hàm tương đương 116

22.3 Phụ thuộc hàm không dư thừa 117

22.3.1 Phụ thuộc hàm dư thừa 117

22.3.2 Phủ không dư 118

22.4 Phủ thu gọn 119

22.4.1 Phụ thuộc hàm có vế trái dư thừa: 119

22.4.2 Tập phụ thuộc hàm có vế phải một thuộc tính: 119

22.4.3 Tập phụ thuộc hàm không dư thừa (phủ không dư): 119

22.4.4 Tập phụ thuộc hàm tối thiểu: 120

23 BÀI TẬP VỀ PHỤ THUỘC HÀM 121

23.1 Nhắc lại lý thuyết 121

23.2 Bài tập áp dụng 121

24 KHÓA CỦA LƯỢC ĐỒ QUAN HỆ 121

24.1 Siêu khóa và khóa 121

24.2 Họ Sperner và khóa 122

24.3 Một số vấn đề về khóa 123

Trang 6

24.3.1.Tìm một khoá của lược đồ quan hệ 123

24.3.2 Kiểm tra một tập cho trước có phải là khoá hay không? 124

24.3.3 Giao của tất cả các khoá 124

24.3.4 Thuật toán kiểm tra một lược đồ đã cho có một hay nhiều khoá 127

24.3.5 Thuật toán tìm tất cả các khoá của lược đồ quan hệ 127

25 BÀI TẬP VỀ KHÓA CỦA LƯỢC ĐỒ QUAN HỆ 130

25.1 Nhắc lại lý thuyết 130

25.2 Bài tập 130

26 CÁC DẠNG CHUẨN CƠ BẢN CỦA LƯỢC ĐỒ QUAN HỆ 130

26.1 Một số khái niệm liên quan 130

26.2 Các dạng chuẩn 131

26.2.1 Dạng chuẩn 1( 1NF-first normal form) 132

26.2.2 Dạng chuẩn 2NF (second normal form) 133

26.2.3 Dạng chuẩn 3 (3NF- Third normal form) 135

26.2.4 Dạng chuẩn Boyce Codd ( BCNF- Boyce Codd normal form) 135

26.4 Mối quan hệ giữa các dạng chuẩn cơ bản 136

27 PHÉP TÁCH LƯỢC ĐỒ QUAN HỆ 137

27.1 Tách lược đồ quan hệ 137

27.2 Phép tách bảo toàn phụ thuộc hàm 141

27.3 Tách không mất thông tin thành các lược đồ ở dạng BCNF 141

27.4 Bài tập và thảo luận về phép tách 143

27.5.Tổng kết 143

28 BÀI TẬP – THẢO LUẬN VỀ CÁC DẠNG CHUẨN HÓA VÀ PHÉP TÁCH CỦA LĐ 144

28.1 Nhắc lại lý thuyết 144

28.2 Bài tập – thảo luận 144

Trang 7

1 CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU

Lý thuyết CSDL là lĩnh vực của tin học nhằm nghiên cứu các cơ chế, nguyên

lý, phương pháp tổ chức, lưu trữ dữ liệu trên các thiết bị mang tin, nhằm khai thác có hiệu quả dữ liệu được lưu trữ

Các cơ sở dữ liệu và các hệ cơ sở dữ liệu đã trở thành một thành phần chủ yếu trong cuộc sống hàng ngày của xã hội hiện đại Trong vòng một ngày con người có thể

có nhiều hoạt động cần có sự giao tiếp với cơ sở dữ liệu như: đến ngân hàng để rút tiền

và gửi tiền, đăng ký chỗ trên máy bay hoặc khách sạn, truy cập vào thư viện đã tin học hoá để tìm sách báo, đặt mua tạp chí ở một nhà xuất bản…Tại các ngân hàng, các cửa hàng, người ta cũng cập nhật tự động việc quản lý tiền bạc, hàng hoá

Tất cả các giao tiếp như trên được gọi là các ứng dụng của cơ sở dữ liệu truyền thống Trong các cơ sở dữ liệu truyền thống, hầu hết các thông tin được lưu giữ và truy cập là văn bản hoặc số Những năm gần đây, những tiến bộ về kỹ thuật đã đưa đến những ứng dụng mới của cơ sở dữ liệu Các cơ sở dữ liệu đa phương tiện bây giờ có thể lưu trữ hình ảnh, phim và tiếng nói Các hệ thống thông tin địa lý có thể lưu trữ và phân tích các bản đồ, các dữ liệu về thời tiết và các ảnh vệ tinh Kho dữ liệu và các hệ thống phân tích trực tuyến được sử dụng trong nhiều công ty để lấy ra và phân tích những thông tin có lợi từ các cơ sở dữ liệu rất lớn nhằm đưa ra các quyết định Các kỹ thuật

cơ sở dữ liệu động và thời gian thực được sử dụng trong việc kiểm tra các tiến trình công nghiệp và sản xuất Các kỹ thuật tìm kiếm cơ sở dữ liệu đang được áp dụng cho World Wide Web để cung cấp việc tìm kiếm các thông tin cần thiết cho người sử dụng bằng cách duyệt qua Internet

Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các cơ sở

kỹ thuật của cơ sở dữ liệu truyền thống Mục đích của giáo trình này là nghiên cứu các

cơ sở kỹ thuật đó Trong chương này chúng ta sẽ định nghĩa cơ sở dữ liệu, hệ quản trị

cơ sở dữ liệu, mô hình cơ sở dữ liệu và các thuật ngữ cơ bản khác

1.1 Dữ liệu - thông tin

1.1.1 Dữ liệu

Dữ liệu là các sự kiện không có cấu trúc, không có ý nghĩa Mọi thông tin được

quản lý trên máy tính điện tử theo bất kỳ phương cách gì cũng đều phải được thể hiện

bằng các dữ liệu ghi trên một thiết bị lưu trữ nào đó Trong tin học, dữ liệu được hiểu

là sự biểu diễn các thông tin đưa vào máy tính điện tử để xử lý và thường có các dạng

sau đây:

Trang 8

Hình 1-1 Các dạng dữ liệu cơ bản

Để lưu trữ trong máy tính điện tử cả dữ liệu số, phi số và tri thức đều được mã hoã bằng các số nhị phân

- Dữ liệu dạng số bao gồm các số nguyên và các số thực Ví dụ: 8 (Số nguyên), -57

(Số nguyên), 43.56 (Số thực) Một dạng dữ liệu khác đặc trưng cho các đại lượng logic thường được “ số hoá ” qua các giá trị 0 và 1

- Dữ liệu phi số bao gồm các văn bản (dạng chữ), âm thanh và hình ảnh

- Dữ liệu dạng tri thức: bao gồm các sự kiện và các luật dẫn Ví dụ: Bạn Hà đạt

điểm tổng kết 9 ở môn Tin học (sự kiện) Nếu học sinh đạt tổng kết từ 8 trở lên ở môn nào thì học sinh ấy được xếp loại giỏi ở môn đó (Luật dẫn)

Tuỳ theo mục đích xử lý chúng ta có thể tiếp tục phân chia dữ liệu thành các cấu trúc nhỏ hơn hoặc gộp các dữ liệu thành các cấu trúc lớn hơn, phức tạp hơn

Vài ví dụ tiêu biểu về dữ liệu:

+ An đạt 550 điểm trên tổng số 600 điểm

+ Nhà tôi cách trường 10km

+ Hà sinh ngày 23 tháng 6 năm 883

+ Nhạc được ghi trên băng từ

+ Bức hình của bạn

Bản thân dữ liệu không có ý nghĩa nếu không được sắp sếp hay kết hợp thêm vài

dữ liệu nữa Ví dụ như điểm của An Thật tốt khi biết An được điểm cao nhưng khi

dữ liệu này được kèm thêm một dữ liệu khác như:

+ An đạt 500 trên tổng số 600 điểm

+ Hoà đạt 300 trên tổng số 600 điểm

Thì chúng ta có thể làm được nhiều hơn Bây giờ chúng ta có thể so sánh chúng và biết thêm một ít về An:

+ An đạt 500 điểm và

+ An đạt điểm cao hơn Hoà

Dữ liệu

Dữ liệu dạng phi số

Sự kiện

Luật dẫn

Hình ảnh

Âm thanh Văn

bản

Trang 9

Xa hơn nếu chúng ta có điểm các sinh viên lớp An, ta sẽ biết nhiều hơn nữa Ta có thể tính xem An đứng thứ mấy trong lớp Vì vậy dữ liệu được xem là quan trọng chỉ khi nào được xử lý Để hiểu rõ hơn hãy xem một ví dụ khác:

+ Bình sinh ngày 20 tháng 10 năm 881

Kết hợp với với một dữ liệu nào đó như ngày hiện tại:

+ Hôm nay là ngày 20 tháng 10 năm 2004 sẽ cho ta biết được Bình bao nhiêu tuổi

1.1.2.Thông tin

a Khái niệm

Khi dữ liệu được xử lý để cho nó có ý nghĩa hơn thì lúc đó sẽ được gọi là thông tin

Một vài ví dụ về thông tin:

a An đạt điểm cao hơn Hoà

b Chuyến tàu bị trễ mấy 30 phút

c Giờ thì bình 24 tuổi

b Đặc điểm của thông tin

 Thông tin mang lại cho con người sự hiểu biết, nhận thức tốt hơn về những đối tượng trong đời sống xã hội, trong thiên nhiên, giúp cho họ thực hiện hợp lý công việc cần làm để đạt tới mục đích một cách tốt nhất Con người có nhu cầu đọc báo, nghe đài, xem phim, video, đi tham quan, du lịch, tham khảo ý kiến người khác, để nhận được thêm thông tin mới Nốt nhạc trong bản sô-nát ánh trăng của Beethoven làm cho người nghe cảm thấy được sự tươi mát, êm dịu của đêm trăng Những thông tin về cảm xúc của tác giả đó được truyền đạt lại

 Thông tin có thể được phát sinh, được lưu trữ, được truyền, được tìm kiếm, được xử lý, được sao chép, nhân bản Thông tin cũng có thể méo mó, bị biến dạng, sai lệch hoặc bị phá huỷ do nhiễu tác động hay do người xuyên tạc

 Thông tin được thể hiện dưới nhiều dạng hình thức khác nhau như sóng ánh sáng, sóng âm, sóng điện từ, các ký hiệu viết trên giấy hoặc khắc trên gỗ, trên đá, trên các tấm kim loại… Chúng còn được gọi là những vật mang tin

 Cùng một thông tin có thể được biểu diễn bằng những dữ liệu khác nhau Cũng là năm đơn vị, trong hệ thập phân ta dùng ký hiệu “5” nhưng trong hệ đếm La

mã lại dùng kí hiệu: “V” Dữ liệu (kí hiệu) có thể là biểu diễn các thông tin khác nhau Cùng kí hiệu “I” nhưng trong tiếng Anh có nghĩa là đại từ nhân xưng ngôi thứ nhất (tôi) còn trong toán học đó lại là chữ số La mã có giá trị là 1 đơn vị

c So sánh dữ liệu và thông tin

1 Một tập hợp các sự kiện và số liệu 1 Dữ liệu được tổ chức và sắp xếp

2 Không có giá trị nhiều 2 Luôn luôn có ích

3 Được chuyển thành thông tin 3 Cũng có thể chuyển thành dữ liệu

1.2 Các hệ thống xử lý truyền thống

Trang 10

Tiếp cận CSDL đã giải quyết 3 vấn đề của hệ tập tin theo lối cũ:

Vấn đề 1: cấu trúc logic và cấu trúc vật lý

Kiến trúc bên trong HQTCSDL quan hệ tách biệt rõ ràng giữa:

- cấu trúc luận lý của tất cả tập tin và chương trình ứng dụng khai thác tập tin này và

- cấu trúc vật lý của csdl và phần lưu trữ các tập tin

Tiếp cận này tạo cho người quản trị CSDL có thể thay đổi cấu trúc vật lý hay nơi lưu trữ của tập tin

mà không ảnh hưởng đến chương trình ứng dụng

Vấn đề 2: dư thừa dữ liệu

Khi HQTCSDLQH được giới thiệu, nhiều tổ chức mong tích hợp các tập tin đã phân tán khắp trong

tổ chức vào một CSDL tập trung Dữ liệu có thể chia sẻ cho nhiều ứng dụng khác nhau

và người sử dụng có thể khai thác đồng thời các tập con dữ liệu liên quan đến họ Điều này làm hạn chế sự dưthừa dữ liệu

Vấn đề 3: Sự khai thác dữ liệu của người sử dụng

Trong hệ QTCSDLQH người dùng có thể trực tiếp khai thác dữ liệu thông qua việc sử dụng các câu truy vấn hay các công cụ báo cáo được cung cấp bởi hệ QTCSDL

- Cơ sở dữ liệu là một tập các dữ liệu về một đối tượng cần được cần được quản lý, được lưu trữ trên các thiết bị mang tin, và được quản lý theo một cơ chế thống nhất, nhằm thực hiện tốt các chức năng sau:

+ Mô tả dữ liệu

+ Cập nhật dữ liệu

+ Tìm kiếm nói riêng, khai thác dữ liệu nói chung

- Hệ quản trị CSDL (database management system) là một hệ thống phần mềm giúp người sử dụng có thể thực hiện các chức năng: mô tả dữ liệu, cập nhật và tìm kiếm

- Người quản trị CSDL là người có thể thực hiện các thao tác sau:

Trang 11

Một cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu

trữ trên các thiết bị mang tin, có nhiều người sử dụng và được tổ chức theo một mô hình Dữ liệu là những sự kiện có thể ghi lại được và có ý nghĩa

Ngày nay CSDL tồn tại trong mỗi ứng dụng thông dụng, ví dụ:

- Hệ kho và kiểm kê

- Hệ đặt chỗ máy bay

- Hệ nguồn nhân lực

- hệ dịch vụ công cộng như cấp nước, điện, khí đốt

- Điều khiển quá trình chế tạo và sản xuất

Các tính chất của một cơ sở dữ liệu

Một cơ sở dữ liệu có các tính chất sau:

1 Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu Những thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu hoặc là một “thế giới nhỏ” (miniworld)

2 Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang một ý nghĩa cố hữu nào đó Một cơ sở dữ liệu không phải là một tập hợp tuỳ tiện

3 Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của người sử dụng Nói cách khác, một cơ sở dữ liệu có một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới thực và một nhóm người quan tâm tích cực đến các nội dung của nó

Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi Có những cơ sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ sở dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi lớn) Các cơ

sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết Một cơ sở dữ liệu có thể được tạo

ra và duy trì một cách thủ công và cũng có thể được tin học hoá Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì bằng bằng một nhóm chương trình ứng dụng hoặc bằng

1.3.2 Hệ quản trị CSDL

Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng tạo

ra, duy trì và khai thác một cơ sở dữ liệu Nó là một hệ thống phần mềm phổ dụng, làm dễ quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau

Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu trúc và các

ràng buộc cho các dữ liệu sẽ được lưu trữ trong cơ sở

Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các phương tiện lưu

trữ được hệ quản trị cơ sở dữ liệu kiểm soát

Trang 12

Thao tác một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ liệu để lấy

ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu

Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hoá có thể là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một tập các phần mềm được tạo ra với một mục đích riêng)

Người ta gọi cơ sở dữ liệu và hệ cơ sở dữ liệu bằng một thuật ngữ chung là hệ cơ sở

dữ liệu Môi trường của một hệ cơ sở dữ liệu được mô tả bằng hình vẽ dưới đây

Hình 1-2 Môi trường của một hệ cơ sơ dữ liệu

Một hệ quản trị CSDL (HQTCSDL) là Một tập các phần mềm quản lý CSDL và cung cấp các dịch vụ xử lý CSDL cho các những người phát triển ứng dụng và người dùng cuối

- HQTCSDL cung cấp một giao diện giữa người sử dụng và dữ liệu

- HQTCSDL biến đổi CSDL vật lý thành CSDL logic

- Loại quan hệ như như ORACLE của Oracle, DB2 của IBM, ACCESS của Microsoft Access

- Loại đối tượng là một tiếp cận khá mới trong thiết kế HQTCSDL và việc sử dụng loại này sớm trở nên phổ biến

Hiện tại, loại HQTCSDL chính được sử dụng trong công nghệ là loại HQTCSDL quan

hệ (RDBMS) Loại này đã chiếm lĩnh trong công nghệ trên 10-14 năm cuối cùng khi đánh bật loại HQTCSDL phân cấp và gần đây là HQTCSDL mạng

1.3.2.Các chức năng của một hệ quản trị cơ sở dữ liệu

Một hệ quản trị cơ sở dữ liệu hiện nay có các chức năng sau :

Trang 13

 Kiểm soát được tính dư thừa của dữ liệu

- Tích hợp các nhu cầu dữ liệu của người dùng để xây dựng một CSDL thống nhất

 Chia sẻ dữ liệu

- Trong môi trường đa người dùng, các HQT phải cho phép truy xuất dữ liệu đồng thời

 Hạn chế những truy cập không cho phép

- Từng người dùng và nhóm người dùng có một tài khoản và mật mã để truy xuất dữ liệu

 Cung cấp nhiều giao diện

- HQT cung cấp ngôn ngữ giữa CSDL và người dùng

 Đảm bảo các ràng buộc toàn vẹn

- RBTV (Integrity Constraints) là những qui định cần được thỏa mãn để đảm bảo dữ liệu luôn phản ánh đúng ngữ nghĩa của thế giới thực

- Một số RB có thể được khai báo với HQT và HQT sẽ tự động kiểm tra Một số RB khác được kiểm tra nhờ CTƯD

 Khả năng sao lưu dự phòng khi gặp sự cố

- Có khả năng khôi phục dữ liệu khi có sự hư hỏng về phần cứng hoặc phần mềm

- Giảm thời gian phát triển ứng dụng

- Tính khả dụng

 Khi có một sự thay đổi lên CSDL, tất cả người dùng đều thấy được

1.3.3.Các đặc trưng của giải pháp cơ sở dữ liệu

Trước khi khái niệm cơ sở dữ liệu ra đời, hệ thống tệp (file) là một phương pháp được áp dụng trong việc quản lý Một tệp có thể được xem là một cặp hồ sơ lưu trữ các thông tin liên quan đến từng công việc riêng biệt Ví dụ, trong một cơ quan, bộ phận tài vụ sẽ có một cặp hồ sơ liên quan đến lương của các nhân viên, bộ phận tổ chức có cặp hồ sơ liên quan đến vấn đề nhân sự… Việc xử lý để lấy ra các thông tin như là các thống kê về lương, về quá trình công tác… lúc đầu được thực hiện một cách thủ công Dần dần, khối lượng thông tin ngày càng lớn, việc xử lý thông tin ngày càng phức tạp, người ta sử dụng máy tính vào việc quản lý Các cặp hồ sơ được chuyển

Trang 14

thành các tệp trên máy tính và việc xử lý thông tin được thực hiện bằng cách lập trình (trong một ngôn ngữ lập trình thế hệ 3)

Việc quản lý theo giải pháp hệ thống tệp có rất nhiều nhược điểm Thứ nhất, đó là sự

dư thừa thông tin: cùng một thông tin được lưu trữ nhiều lần (chẳng hạn, danh sách nhân viên có mặt trong tệp lương và cũng có mặt cả trong tệp nhân sự) Điều đó gây ra việc lãng phí bộ nhớ và dễ gây sai sót trong khi cập nhật dữ liệu, dễ sinh ra các dữ liệu không đúng đắn Thứ hai, đó là việc phụ thuộc giữa chương trình ứng dụng và dữ liệu Mỗi khi có sự thay đổi cấu trúc tệp và các dữ liệu trong tệp,

chương trình ứng dụng khai thác thông tin trên tệp đó cũng thay đổi theo Điều đó gây

ra khó khăn lớn cho việc bảo trì

Giải pháp cơ sở dữ liệu ra đời đã giải quyết được những nhược điểm đó Cụ thể, giải pháp cơ sở dữ liệu có những đặc trưng sau:

1 Bản chất tự mô tả của hệ cơ sở dữ liệu

Một đặc trưng cơ bản của giải pháp cơ sở dữ liệu là hệ thống cơ sở dữ liệu không chỉ gồm có bản thân cơ sở dữ liệu mà còn có cả định nghĩa hoặc mô tả đầy đủ về cấu trúc

cơ sở dữ liệu và các ràng buộc Định nghĩa này được lưu trữ trong từ điển hệ thống, nó chứa các thông tin như là cấu trúc của mỗi tệp, kiểu và dạng lưu trữ của từng mục dữ liệu Các thông tin được lưu giữ trong từ điển gọi là siêu dữ liệu (meta-data) và chúng

mô tả cấu trúc của dữ liệu nguyên thuỷ (hình 1-1) Phần mềm hệ quản trị cơ sở dữ liệu

và những người sử dụng cơ sở dữ liệu sử dụng từ điển để lấy thông tin về cấu trúc của

cơ sở dữ liệu

2 Sự độc lập giữa chương trình và dữ liệu

Trong hệ thống tệp, cấu trúc của các tệp cơ sở dữ liệu được nhúng vào trong các chương trình truy cập, vì vậy bất kỳ một thay đổi nào về cấu trúc của một tệp cũng đòi hỏi phải thay đổi tất cả các chương trình truy cập đến tệp đó Ngược lại, các chương trình truy cập của hệ quản trị cơ sở dữ liệu không đòi hỏi việc thay đổi như thế Cấu trúc của các tệp dữ liệu được lưu trữ trong từ điển tách rời với các chương trình truy cập Tính chất này gọi là sự độc lập dữ liệu – chương trình

3 Hỗ trợ các khung nhìn dữ liệu nhiều thành phần

Một cơ sở dữ liệu có nhiều người sử dụng, mỗi một người có thể đòi hỏi một phối cảnh hoặc một khung nhìn (view) khác nhau Một khung nhìn có thể là một tập con của cơ sở dữ liệu hoặc nó có thể chứa các dữ liệu ảo, đó là các dữ liệu được trích ra từ các tệp cơ sở dữ liệu khác nhau nhưng không được lưu trữ một cách rõ ràng Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cung cấp nhiều công cụ để định nghĩa các khung nhìn nhiều thành phần

4 Chia sẻ dữ liệu và nhiều người sử dụng

Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cho phép nhiều người sử dụng truy cập đồng thời đến cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu phải có phần mềm kiểm tra cạnh tranh để đảm bảo rằng các người sử dụng cập nhật đến cùng một cơ sở dữ liệu

Trang 15

phải được thực hiện theo cách được kiểm tra để cho kết quả của các cập nhật là đúng

đắn

1.3.4 Lược đồ và trạng thái cơ sở dữ liệu

Trong một mô hình dữ liệu cần phải phân biệt rõ giữa mô tả của cơ sở dữ liệu và bản thân cơ sở dữ liệu Mô tả của một cơ sở dữ liệu được gọi là lược đồ cơ sở dữ liệu, nó

được xác định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay đổi thường xuyên Đa số các mô hình dữ liệu có các quy ước hiển thị các lược đồ Hiển thị của một lược đồ được gọi là biểu đồ của lược đồ đó Một biểu đồ lược đồ chỉ thể hiện một vài khía cạnh của lược đồ như là các kiểu bản ghi, các mục dữ liệu và một số kiểu ràng buộc Các khía cạnh khác không được thể hiện trong biểu đồ lược đồ

Các dữ liệu trong một cơ sở dữ liệu có thể thay đổi một cách thường xuyên Các dữ

liệu trong một cơ sở dữ liệu tại một thời điểm cụ thể được gọi là một trạng thái cơ sở

dữ liệu hoặc là ảnh (snapshot) của cơ sở dữ liệu Nhiều trạng thái quan hệ có thể được

xây dựng để làm tương ứng với một lược đồ cơ sở dữ liệu cụ thể Mỗi khi chúng ta chèn vào hoặc loại bỏ một bản ghi, sửa đổi giá trị của một mục dữ liệu trong một bản ghi, chúng ta đã làm thay đổi trạng thái của cơ sở dữ liệu sang một trạng thái khác Việc phân biệt giữa lược đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu là rất quan trọng Khi chúng ta định nghĩa một cơ sở dữ liệu mới, ta chỉ đặc tả lược đồ cơ sở dữ liệu cho

hệ quản trị cơ sở dữ liệu Tại thời điểm này, trạng thái của cơ sở dữ liệu là một trạng thái rỗng, không có dữ liệu Chúng ta nhận được trạng thái ban đầu của cơ sở dữ liệu khi ta nhập dữ liệu lần đầu tiên Từ đó trở đi, mỗi khi một phép toán cập nhật được thực hiện đối với cơ sở dữ liệu, chúng ta nhận được một trạng thái cơ sở dữ liệu khác Tại mọi thời điểm, cơ sở dữ liệu có một trạng thái hiện tại Hệ quản trị cơ sở dữ liệu có trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở dữ liệu là một trạng thái vững chắc, nghĩa là một trạng thái thoả mãn cấu trúc và các ràng buộc được đặc tả trong lược đồ

Vì vậy, việc đặc tả một lược đồ đúng đắn cho hệ quản trị cơ sở dữ liệu là một việc làm cực kỳ quan trọng và lược đồ phải được thiết kế một cách cẩn thận Hệ quản trị cơ sở

dữ liệu lưu trữ các mô tả của các cấu trúc lược đồ và các ràng buộc – còn gọi là siêu

dữ liệu – vào trong từ điển (catalog) của hệ quản trị sao cho phần mềm hệ quản trị cơ

sở dữ liệu có thể tham khảo đến lược đồ khi nó cần Đôi khi người ta còn gọi lược đồ

là mục tiêu (intension) và trạng thái cơ sở dữ liệu là mở rộng (extension) của lược đồ

Trang 16

- Quyết định những dữ liệu nào cần được lưu trữ

 Liên hệ với người dùng để nắm bắt được những yêu cầu và đưa ra một thiết kế CSDL thỏa yêu cầu này

 Có thể là 1 nhóm các DBA quản lý các CSDL sau khi việc thiết kế hoàn tất + Người dùng cuối

- Kỹ sư, nhà khoa học, người phân tích,…

d Kiến trúc của cơ sở dữ liệu

 Mức trong (lược đồ trong)

- Mô tả cấu trúc lưu trữ vật lý CSDL

 Mức quan niệm (lược đồ quan niệm)

- Mô tả cấu trúc của toàn thể CSDL cho 1 cộng đồng người sử dụng, gồm thực thể, kiểu dữ liệu, mối liên hệ và ràng buộc

- Che bớt các chi tiết của cấu trúc lưu trữ vật lý

 Mức ngoài (lược đồ ngoài)

- Còn gọi là mức khung nhìn (view)

- Mô tả một phần của CSDL mà 1 nhóm người dùng quan tâm đến và che dấu phần còn lại của CSDL đối với nhóm người dùng đó

1.4 Các mô hình dữ liệu

Mô hình dữ liệu là sự trừu tượng hoá môi trường thực Mỗi loại mô hình dữ liệu đặc trưng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân tích thiết kế CSDL Mỗi loại mô hình dữ liệu đều có những ưu điểm và những mặt hạn chế của nó, nhưng vẫn có những mô hình dữ liệu nổi trội và được nhiều người quan tâm nghiên cứu

Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn trong việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu Vì vậy, thiết kế cơ sở dữ liệu trở thành hoạt động chính trong môi trường cơ sở dữ liệu

Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng các mô hình Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực

Trang 17

Các trừu tượng như vậy cho phép ta khảo sát các đặc điểm của các thực thể và các mối liên hệ được tạo ra giữa các thực thể đó Việc thiết kế các mô hình tốt sẽ đưa ra các cơ

sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt Ngược lại, mô hình không tốt sẽ đưa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng

Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm (kí hiệu) dùng để biểu

diễn các cấu trúc của cơ sở dữ liệu Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu Nhiều mô hình còn

có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác

Sau đây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu

Vào những năm sáu mươi, thế hệ đầu tiên của CSDL ra đời dưới dạng mô hình thực

thể kết hợp, mô hình mạng và mô hình phân cấp

Vào những năm bảy mươi, thế hệ thứ hai của CSDL ra đời Đó là mô hình dữ

liệu quan hệ do EF Codd phát minh Mô hình này có cấu trúc logic chặt chẽ Đây là

mô hình đã và đang được sử dụng rộng khắp trong công tác quản lý trên phạm vi toàn cầu Việc nghiên cứu mô hình dữ liệu quan hệ nhằm vào lý thuyết chuẩn hoá các quan

hệ và là một công cụ quan trọng trong việc phân tích thiết kế các hệ CSDL hiện nay Mục đích của nghiên cứu này nhằm bỏ đi các phần tử không bình thường của quan hệ khi thực hiện các phép cập nhật, loại bỏ các phần tử dư thừa

Sang thập kỷ tám mươi, mô hình CSDL thứ ba ra đời, đó là mô hình cơ sở dữ

liệu hướng đối tượng, mô hình cơ sở dữ liệu phân tán, mô hình cơ sở dữ liệu suy diễn,…

Trong phần tiếp theo sau đây, chúng tôi sẽ trình bày về mô hình dữ liệu tiêu biểu nhất

để thiết kế (bước đầu) một ứng dụng tin học đó là mô hình thực thể kết hợp Trong các chương còn lại của giáo trình này chúng tôi sẽ trình bày về mô hình dữ liệu quan hệ

Các loại mô hình cơ sở dữ liệu

Có rất nhiều mô hình dữ liệu đã được đề nghị Chúng ta có thể phân loại các mô hình

dữ liệu dựa trên các khái niệm mà chúng sử dụng để mô tả các cấu trúc cơ sở dữ liệu

Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung cấp các khái

niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng Các mô hình này

tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn dữ liệu

Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các khái niệm

mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào Các khái niệm do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với người sử dụng thông thường Ở giữa hai

loại mô hình này là một lớp các mô hình dữ liệu thể hiện, chúng cung cấp những khái

niệm mà người sử dụng có thể hiểu được và không xa với cách tổ chức dữ liệu bên

trong máy tính Người ta còn gọi loại mô hình dữ liệu này là loại mô hình dữ liệu mức

Trang 18

logic Các mô hình dữ liệu thể hiện che giấu một số chi tiết về việc lưu trữ dữ liệu

nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính

chúng ta sẽ nghiên cứu một mô hình dữ liệu mức quan niệm, mô hình thực thể - liên kết, gọi tắt là mô hình ER (Entity – Relationship Model) Mô hình này sử dụng các khái niệm thực thể, thuộc tính, mối liên kết, để diễn đạt các đối tượng của thế giới

thực Một thực thể diễn đạt một đối tượng hoặc một khái niệm của thế giới thực Ví

dụ, một thực thể là một nhân viên hoặc một dự án được mô tả trong cơ sở dữ liệu Một thuộc tính diễn đạt một đặc trưng nào đó của thực thể Chẳng hạn, họ tên, lương… là các thuộc tính của thực thể nhân viên Một mối liên kết giữa hai hay nhiều thực thể diễn đạt một mối quan hệ qua lại giữa các thực thể Ví dụ, giữa thực thể nhân viên và thực thể dự án có mối liên kết một nhân viên

làm việc trên một dự án Mô hình dữ liệu hướng đối tượng cũng là một mô hình dữ

liệu bậc cao Nó sử dụng các khái niệm như lớp, phương thức, thông điệp… Bạn đọc

có thể tìm hiểu về mô hình này trong các tài liệu [1], [2]

Các mô hình dữ liệu thể hiện là các mô hình được sử dụng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại Ba mô hình nổi tiếng thuộc loại này là mô hình quan

hệ, mô hình mạng và mô hình phân cấp Các mô hình mạng và phân cấp ra đời trước

và được sử dụng rộng rãi trong quá khứ (trước 870) Vào đầu những năm 70, mô hình quan hệ ra đời Do tính ưu việt của nó, mô hình quan hệ dần dần thay thế các mô hình mạng và phân cấp Chúng ta sẽ nghiên cứu về mô hình quan hệ

Các mô hình dữ liệu vật lý mô tả cách lưu trữ dữ liệu trong máy tính giới thiệu các thông tin như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập…

1.4.1 Mô hình thực thể - liên kết (thực thể -quan hệ)

Hiện nay mô hình dữ liệu quan hệ thường được dùng trong các hệ quản trị CSDL, đây

là mô hình dữ liệu ở mức vật lý Để thành lập được mô hình này, thường là phải dùng

mô hình dữ liệu ở mức quan niệm để đặc tả, một trong những mô hình ở dạng đó là mô hình thực thể quan hệ (sau đó mới dùng một số quy tắc để chuyển hệ thống từ mô hình này về mô hình dữ liệu quan hệ)

1.4.2 Mô hình dữ liệu quan hệ

Mô hình dữ liệu quan hệ (Ralational Data Model)- gọi tắt là mô hình quan

hệ, do EF.Codd đề xuất năm 870 Nền tảng lý thuyết của nó là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị

Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, và thực tiễn đã cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất Mô hình dữ liệu này cùng với mô hình thức thể kết hợp đang được sử dụng rộng rãi trong việc phân tích và thiết kế CSDL hiện nay

1.4.3 Mô hình dữ liệu mạng

Mô hình dữ liệu mạng (Network Data Model) - còn được gọi tắt là mô hình mạng hoặc

mô hình lưới (Network Model) là mô hình được biểu diễn bởi một đồ thị có hướng Trong mô hình này người ta đưa vào các khái niệm: mẫu tin hay bản ghi (Record), loại

Trang 19

mẫu tin (Record Type) và loại liên hệ (Set Type): (a) Loại mẫu tin (Recorde Type) là mẫu đặc trưng cho 1 loại đối tượng riêng biệt Chẳng hạn như trong việc quản lý nhân sự tại một đơn vị, đối tượng cần phản ảnh của thế giới thực có thể là Phòng, Nhân viên, Công việc, lý lịch do đó có các loại mẫu tin đặc trưng cho từng đối tượng này Trong đồ thị biểu diễn mô hình mạng mỗi loại mẫu tin được biểu diễn bởi một hình chữ nhật, một thể hiện (Instance) của một loại mẫu tin được gọi là bản ghi Trong ví dụ trên loại mẫu tin Phòng có các mẫu tin là các phòng, ban trong đơn vị; loại mẫu tin nhân viên có các mẫu tin là các nhân viên đang làm việc tại các phòng ban của cơ quan (b) Loại liên hệ (Set Type) là sự liên kết giữa một loại mẫu tin chủ với một loại mẫu tin thành viên Trong đồ thị biểu diễn mô hình mạng mỗi loại liên hệ được biểu diễn bởi một hình bầu dục (oval) và sự liên kết giữa 2 loại mẫu tin được thể hiện bởi các cung có hướng (các mũi tên) đi từ loại mẫu tin chủ tới loại liên hệ và từ loại liên hệ tới

Trong loại liên kết người ta còn chỉ ra số lượng các mẫu tin tham gia trong mối kết hợp Có các loại liên hệ sau:

 1 - 1 (One-to-One): Mỗi mẫu tin của loại mẫu tin chủ chi kết hợp với đúng 1 mẫu tin của loại mẫu tin thành viên Ví dụ, mỗi nhân viên có duy nhất một lý lịch cá nhân

 1- n (One-to-Many): Mỗi mẫu tin của loại mẫu tin chủ chi kết hợp với 1 hay nhiều mẫu tin của loại mẫu tin thành viên Ví dụ, mỗi phòng ban có từ 1 đến nhiều nhân viên Mỗi 1 nhân viên chỉ thuộc một phòng ban nhất định

 n-1 (Many-to-One): Nhiều mẫu tin của loại mẫu tin chủ chỉ kết hợp với đúng 1 mẫu tin của loại mẫu tin thành viên Ví dụ, nhiều nhân viên cùng làm một công việc

Đệ quy (Recursive): Một loại mẫu tin chủ cũng có thể đồng thời là loại mẫu tin

thành viên với chính nó Ta nói rằng loại liên hệ này là đệ quy

Ví dụ về mô hình dữ liệu mạng đối với CSDL nhân sự của một đơn vị

Trong đồ thị này, chúng ta có 4 loại mẫu tin: PHÒNG, NHÂN-VIÊN, CÔNG-VIỆC

và LÝ-LỊCH;

4 loại liên kết:

phòng gồm 1 đến nhiều nhân-viên;

• nhân-viên có đúng 1 lý-lịch;

• nhiều nhân-viên cùng làm một công-việc;

• 1 nhân-viên có thể có 1 hay nhiều nhân-viên là thân nhân của mình

1.4.4 Mô hình dữ liệu phân cấp

 Mô hình dữ liệu phân cấp (Hierachical Data Model) - được gọi tắt là mô hình phân cấp (Hierachical Model): Mô hình là một cây (Tree), trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với nhau theo

Trang 20

Mô hình dữ liệu phân cấp sử dụng các khái niệm sau: (a) Loại mẫu tin: giống khái niệm mẫu tin trong mô hình dữ liệu mạng (b) Loại mối liên hệ: Kiểu liên hệ là phân cấp, theo cách: Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là nó thuộc một chủ duy nhất Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1n, và từ mẫu tin (hay bản ghi - record) thành viên với

Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất

Các dòng là các mẫu tin (hay bản ghi) có độ dài thay đổi

Mẫu tin đặc trưng cho tỉnh, thành phố gồm: Mã số tỉnh thành, Tên tỉnh thành phố '02' là Mã số Thành phố Hồ Chí Minh

· Mẫu tin đặc trưng cho quận huyện gồm Mã số tỉnh thành + Mã số quận huyện, Tên quận huyện trong tỉnh thành phố đó '0201' là Mã số quận Nhất của

· Mẫu tin đặc trưng cho phường xã gồm Mã số tỉnh thành + Mã số quận huyện + Mã số phường xã, Tên phường xã thuộc quận huyện trong tỉnh thành phố đó '020101' là Mã số phường Bến Nghé, Quận Nhất, TP.Hồ Chí Minh Mẫu tin đặc trưng cho địa bàn điều tra trong một phường xã '02010101' là

mã số địa bàn điều tra số 01 trong phường Bến Nghé

· Mẫu tin đặc trưng cho hộ điều tra, gồm Mã số tỉnh + Mã số quận + Mã số phường + Mã số địa bàn + Số thứ tự hộ điều tra trong địa bàn, Tổng số nhân khẩu trong hộ, Trong đó: Nữ, Tổng số trẻ dưới 16 tuổi

· Mẫu tin đặc trưng cho nhân khẩu của hộ, gồm các thông tin xác định hộ điều tra, Số thứ tự nhân khẩu trong hộ, Quan hệ với chủ hộ (8), Giới tính (1,2,3), Tháng sinh, Năm sinh, Trình độ văn hóa,

Ở đây rõ ràng là một sự phân cấp trong file CSDL Một tỉnh thành phố (thì) có nhiều quận huyện, một quận huyện chỉ thuộc một tỉnh thành duy nhất Một quận huyện (thì) có nhiều phường xã và một phường

xã chỉ thuộc một quận huyện duy nhất Mỗi phường xã được chia thành nhiều địa bàn điều tra, mỗi địa bàn chỉ thuộc một phường xã duy nhất v.v

2 MÔ HÌNH THỰC THỂ LIÊN KẾT

Trong chương này chúng ta sẽ làm quen với mô hình thực thể - liên kết, gọi tắt là mô hình ER ( Entity-Relationship Model) Đó là một mô hình dữ liệu mức quan niệm phổ biến, tập trung vào các cấu trúc dữ liệu và các ràng buộc Mô hình này thường được sử dụng để thiết kế các ứng dụng cơ sở dữ liệu và nhiều công cụ thiết kế cơ sở dữ liệu sử dụng các khái niệm của nó

2.1 Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu

Trang 21

Quá trình thiết kế một cơ sở dữ liệu sử dụng mô hình quan niệm bậc cao được minh họa bằng hình 2-1

Bước đầu tiên là tập hợp các yêu cầu và phân tích Trong bước này, người thiết kế cơ

sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các yêu cầu về dữ liệu của họ Kết quả của bước này là một tập hợp ghi chép súc tích về các yêu cầu của những người sử dụng Những yêu cầu sẽ được đặc tả càng đầy đủ và chi tiết càng tốt Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu cầu về chức năng của ứng dụng: đó là các thao tác do người sử dụng định nghĩa sẽ được áp dụng đối với cơ sở dữ liệu

Mỗi khi tất cả các yêu cầu đã được thu thập và phân tích, bước tiếp theo là tạo ra lược

đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức

cao Bước này gọi là thiết kế quan niệm Lược đồ quan niệm là một mô tả súc tích về

các yêu cầu dữ liệu của những người sử dụng Nó bao gồm các mô tả chi tiết của các kiểu thực thể, kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm

do các mô hình dữ liệu bậc cao cung cấp Lược đồ quan niệm mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đều thỏa mãn và các đòi hỏi này không chứa các mâu thuẫn Giải pháp này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ Một thiết kế cơ sở dữ liệu quan niệm tốt sẽ làm dễ cho công việc của những người thiết kế cơ sở dữ liệu

Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, chúng ta có thể sử dụng các phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng Điều đó cũng giúp khẳng định rằng lược đồ quan niệm thỏa mãn mọi yêu cầu chức năng được xác định Nếu có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ quan niệm cho phù hợp

Bước tiếp theo trong việc thiết kế cơ sở dữ liệu là việc cài đặt một cơ sở dữ liệu bằng cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn Hầu hết các hệ quản trị cơ sở dữ liệu sử dụng một mô hình dữ liệu cài đặt (thể hiện), chẳng hạn như mô hình quan hệ hoặc đối tượng, vì vậy lược đồ quan niệm được chuyển từ mô hình dữ liệu bậc cao

thành mô hình dữ liệu cài đặt Bước này gọi là thiết kế logic hoặc là ánh xạ mô hình dữ liệu Kết quả của bước này là một lược đồ cơ sở dữ liệu dưới dạng một mô hình dữ

liệu cài đặt của hệ quản trị cơ sở dữ liệu

Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý Trong bước này ta phải

chỉ ra các cấu trúc bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu Song song với các hoạt động đó, các chương trình ứng dụng cũng được thiết kế

và cài đặt như là các giao tác (transaction) cơ sở dữ liệu tương ứng với các đặc tả giao tác mức cao

Trang 22

Hình 2-1 Sơ đồ mô tả các bước chính của việc thiết kế

2.2 Các thành phần cơ bản của mô hình ER

2.2 1 Thực thể và thuộc tính

Đối tượng được trình bày trong mô hình ER là thực thể Thực thể là một “vật” trong

thế giới thực, có sự tồn tại độc lập Một thực thể có thể là cụ thể, tức là chúng ta có thể cảm nhận được bằng các giác quan, hoặc có thể là trừu tượng, tức là cái mà chúng ta không cảm nhận được bằng các giác quan nhưng có thể nhận biết được bằng nhận thức Một cái ô tô, một nhân viên,… là những thực thể cụ thể Một đơn vị công tác, một trường học… là những thực thể trừu tượng

Mỗi một thực thể có các thuộc tính, đó là các đặc trưng cụ thể mô tả thực thể đó Ví

dụ, một thực thể Nhânviên được mô tả bằng Họtên, Tuổi, Địachỉ, Lương… của nhân

viên đó Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc tính của nó Ví dụ, nhân viên nv1 có các giá trị cho các thuộc tính Họtên, Tuổi, Địachỉ, Lương của nó là “ Lê

Thế giới thực

TẬP HỢP VÀ PHÂN TÍCH CÁC YÊU CẦU

THIẾT KẾ QUAN NIỆM

THIẾT KẾ LÔ GIC

Các chương trình ứng dụng

Lược đồ bên trong

Trang 23

Vân”, 32, “Hà nội”, 500000 Các giá trị thuộc tính mô tả mỗi thực thể sẽ trở thành một phần chính của các dữ liệu sẽ được lưu giữ trong cơ sở dữ liệu Trong mô hình ER có mặt nhiều kiểu thuộc tính: thuộc tính đơn, thuộc tính phức hợp, thuộc tính đơn trị, thuộc tính đa trị, thuộc tính được lưu trữ, thuộc tính suy diễn được, thuộc tính có giá trị không xác định, thuộc tính phức tạp

Thuộc tính đơn là thuộc tính không thể phân chia ra được thành các thành phần nhỏ hơn Ví dụ, thuộc tính Tuổi của một nhân viên là một thuộc tính đơn Thuộc tính phức hợp là thuộc tính có thể phân chia được thành các thành phần nhỏ hơn, biểu diễn các

thuộc tính cơ bản hơn với các ý nghĩa độc lập

Những thuộc tính có giá trị duy nhất cho một thực thể cụ thể gọi là các thuộc tính đơn trị Ví dụ, Họtên là một thuộc tính đơn trị của thực thể nhân viên, mỗi nhân viên có

một họ tên duy nhất Trong một số trường hợp, một thuộc tính có thể có một tập giá trị

cho cùng một thực thể Những thuộc tính như vậy gọi là thuộc tính đa trị Ví dụ, thuộc

tính Bằngcấp của một người Một người có thể không có bằng cấp nào, người khác có thể có một bằng, người khác nữa có thể có nhiều bằng Như vậy, các người khác nhau

có thể có một số giá trị khác nhau cho thuộc tính Bằngcấp Thuộc tính Bằngcấp là một thuộc tính đa trị

Thuộc tính được lưu trữ là các thuộc tính mà giá trị của nó được nhập vào khi cài đặt

cơ sở dữ liệu Trong một số trường hợp, hai hay nhiều thuộc tính có giá trị liên quan đến nhau Ví dụ, thuộc tính Tuổi và thuộc tính Ngàysinh của một người Với một người cụ thể, ta có thể tính tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của Ngàysinh Thuộc tính mà giá trị của nó có thể tính được thông qua giá trị của các

thuộc tính khác gọi là thuộc tính suy diễn được

Các giá trị không xác định (null values): Trong một số trường hợp, một thực thể cụ thể

có thể không có các giá trị áp dụng được cho một thuộc tính Ví dụ, thuộc tính Sốđiệnthoại của thực thể nhân viên sẽ không có giá trị đối với các nhân viên không có

số điện thoại Trong trường hợp như vậy, ta phải tạo ra một giá trị đặc biệt gọi là giá trị không xác định (null) Giá trị không xác định được tạo ra khi một thuộc tính có giá trị không áp dụng được hoặc khi không biết

Các thuộc tính phức tạp: Là sự kết hợp của các thuộc tính phức hợp và đa trị

2.2 2 Kiểu thực thể, tập thực thể, khóa và tập giá trị

Các kiểu thực thể và các tập thực thể: Một cơ sở dữ liệu thường chứa những nhóm

thực thể như nhau Ví dụ, một công ty thuê hàng trăm nhân viên và lưu giữ những thông tin tương tự liên quan đến mỗi nhân viên Các thực thể nhân viên này chia sẻ các thuộc tính giống nhau nhưng mỗi thực thể có các giá trị riêng cho các thuộc tính đó

Một kiểu thực thể là một tập hợp các thực thể có các thuộc tính như nhau Một

kiểu thực thể trong cơ sở dữ liệu được mô tả bằng tên và các thuộc tính Vídụ: NHÂNVIÊN (Họtên, Tuổi, Lương), CÔNGTY (Tên, Địađiểm, Giámđốc) Một tập hợp các thực thể của một kiểu thực thể cụ thể trong cơ sở dữ liệu tại một thời điểm được gọi là một tập thực thể, nó thường được tham chiếu đến bằng cách sử dụng tên của

Trang 24

kiểu thực thể Ví dụ, NHÂNVIÊN vừa dùng để chỉ một kiểu thực thể, vừa để chỉ tập hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu Hình 2-2 minh họa các kiểu thực thể NHÂNVIÊN, CÔNGTY và các tập thực thể tương ứng

Một kiểu thực thể được biểu diễn trong lược đồ ER như là một hộp hình chữ nhật có chứa tên kiểu thực thể Các thuộc tính được đặt trong các hình ô van và được nối với các kiểu thực thể bằng các đường thẳng Các thuộc tính phức hợp cũng được nối với các thuộc tính thành phần của nó bằng đường thẳng Các thuộc tính đa trị được hiển thị trong các hình ô van đúp (hình 2-3)

Một kiểu thực thể mô tả một lược đồ (hoặc một mục đích) cho một tập các thực thể

chia sẻ cùng một cấu trúc Tập hợp các thực thể của một kiểu thực thể cụ thể được

nhóm vào một tập thực thể và được gọi là một thể hiện của một kiểu thực thể

NHÂNVIÊN (Họtên, Tuổi, Lương)

CÔNGTY (Tên, Địadiểm, Giámđốc) Nv1

(Lê Lan, 30, 800000)

Nv2 (Trần Bá, 45, 1000000)

Nv3 (Hoàng Vân, 14, 600000)

Ct1 (CT Phần mềm, Hà nội, Vũ An)

Ct2 (CT Hoa quả, Hải phòng, Lê Hà)

Ct3 (CT Máy tính, Hà nội, Phan Anh)

Hình 2-2 Kiểu thực thể và tập thực thể

Thuộc tính khóa của một kiểu thực thể: Một ràng buộc quan trọng trên các thực thể của một kiểu thực thể là khóa Một kiểu thực thể thường có một thuộc tính mà các giá trị

của nó là khác nhau đối với mỗi thực thể tiêng biệt trong một tập thực thể Thuộc tính

như vậy gọi là thuộc tính khóa và các giá trị của nó có thể dung để xác định từng thực

thể một cách duy nhất Ví dụ, thuộc tính Tên của kiểu thực thể CÔNGTY là khóa của kiểu thực thể đó vì mỗi thực thể công ty có một tên duy nhất Đôi khi, nhiều thuộc tính kết hợp với nhau tạo thành một khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này phải khác nhau đối với mỗi thực thể Trong trường hợp như vậy ta có một thuộc tính

khóa phức hợp Chú ý rằng khóa phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính

thành phần phải có mặt trong thuộc tính phức hợp để thỏa mãn tính chất duy nhất Trong biểu đồ đồ họa của mô hình ER, thuộc tính khóa được biểu diễn bằng cách gạch ngang dưới tên của nó (hình 2-3)

Khi chỉ ra rằng một thuộc tính là khóa của một kiểu thực thể nghĩa là tính chất duy nhất nêu trên phải được thỏa mãn đối với đối với mỗi mở rộng của kiểu thực thể Như vậy, ràng buộc khóa cấm hai thực thể bất kỳ có giá trị cho thuộc tính khóa như nhau tại cùng một thời điểm Đó là một ràng buộc trên tất cả các thể hiện của thực thể Ràng

Trang 25

buộc khóa cũng như các ràng buộc sẽ được giới thiệu về sau được lấy ra từ các ràng buộc của “thế giới nhỏ” của cơ sở dữ liệu

Một kiểu thực thể có thể có nhiều hơn một thuộc tính khóa Ví dụ, nếu một công ty có một mã số duy nhất và một tên duy nhất thì các thuộc tính Mãsốcông ty và Têncôngty đều là các thuộc tính khóa Một kiểu thực thể cũng có thể không có khóa Một thực thể

không có khóa được gọi là kiểu thực thể yếu

Hình 2-3 Biểu diễn kiểu thực thể và các thuộc tính Miền giá trị của các thuộc tính: Mỗi thuộc tính đơn của một kiểu thực thể được kết

hợp với một miền giá trị Đó là một tập các giá trị có thể gán cho thuộc tính này đối với mỗi thực thể riêng biệt Các miền giá trị không hiển thị trong các sơ đồ ER

Một cách toán học, một thuộc tính A của kiểu thực thể E có tập giá trị V có thể được định nghĩa như là một hàm từ E vào tập hợp lực lượng P(V) của V:

A: E → P(V)

Ta ký hiệu giá trị của thuộc tính A đối với thực thể e là A(e) Định nghĩa ở trên đúng cho các thuộc tính đơn trị, đa trị và thuộc tính không xác định Một giá trị không xác định được biểu diễn bằng một tập rỗng Với các thuộc tính đơn trị, A(e) là một giá trị đơn cho thực thể e Các thuộc tính đa trị không có các hạn chế trên A(e) Với một thuộc tính phức hợp A, tập giá trị V là tích Đề các của P(V1)x P(V2)x….xP(Vn), trong

đó V1, V2, …, Vn là tập các giá trị cho các thành phần đơn của A

2.2.3 Kiểu liên kết, tập liên kết và các thể hiện

Một kiểu liên kết R giữa n kiểu thực thể E1, E2, …,En xác định một tập liên kết giữa

các thực thể của các kiểu đó Cũng như các kiểu thực thể và tập thực thể, một kiểu liên kết và tập liên kết tương ứng với nó cũng có tên chung là R Một cách toán học, tập liên kết R là một tập hợp các thể hiện liên kết ri , i= 1,2,… trong đó mỗi ri liên kết n thực thể riêng biệt e1,e2,…,en và mỗi một thực thể ej trong ri là một thành phần của kiểu thực thể Ej , 1≤ j ≤ n Như vậy, một kiểu liên kết R là một quan hệ toán học trên

E1, E2, …, En hoặc có thể định nghĩa như là một tập con của tích Đề các E1 x E2 x …x

En Mỗi kiểu thực thể E1,E2, …, En được gọi là tham gia vào kiểu liên kết R, và tương

tự, mỗi thực thể riêng biệt e1, e2, …, en được gọi là tham gia vào thể hiện liên kết ri = (

e1,e2,…,en)

Một cách không hình thức, mỗi thể hiện liên kết ri trong R là một sự kết hợp của các thực thể, mỗi thực thể thuộc về một kiểu thực thể tham gia vào liên kết Mỗi liên kết rinhư vậy diễn đạt một sự kiện rằng các thực thể tham gia trong r có mối quan hệ với

NHÂNVIÊN

Trang 26

nhau theo một cách nào đó ở trong thế giới thực Ví dụ, trong thực tế, các nhân viên

làm việc cho các đơn vị, nhƣ vậy, có một kiểu liên kết liên kết làm việc cho, liên kết

giữa kiểu thực thể NHÂNVIÊN và kiểu thực thể ĐƠNVỊ

Trong sơ đồ ER, kiểu liên kết đƣợc biểu diễn bằng một hình thoi nối trực tiếp với các hình chữ nhật biểu diễn các kiểu thực thể tham gia vào liên kết Hình 2-4 minh họa kiểu liên kết và thể hiện liên kết

a) Kiểu liên kết

b) Thể hiện liên kết

Hình 2-4 Kiểu liên kết và thể hiện liên kết

2.2.4.Cấp liên kết, tên vai trò và kiểu liên kết đệ quy

Cấp của một kiểu liên kết là số các kiểu thực thể tham gia vào kiểu liên kết đó Một kiểu liên kết có thể có cấp 1, cấp 2, cấp 3,… Ví dụ, kiểu liên kết <làm việc cho> giữa

kiểu thực thể NHÂNVIÊN và kiểu thực thể ĐƠNVỊ là một kiểu liên kết cấp 2 Kiểu

liên kết <biết trước> giữa kiểu thực thể MÔNHỌC với chính nó là một kiểu liên kết

cấp 1…

Đôi khi chúng ta có thể coi một kiểu liên kết nhƣ một thuộc tính của một kiểu thực thể

Ví dụ, nếu kiểu thực thể NHÂNVIÊN có thuộc tính Đơnvị để chỉ ra tên đơn vị mà nhân viên làm việc cho, thì thuộc tính Đơnvị biểu thị một kiểu liên kết Nói cách khác, một thuộc tính của một kiểu thực thể hoặc có chức năng biểu thị một đặc trƣng của kiểu thực thể, hoặc có chức năng biểu thị một kiểu liên kết giữa kiểu thực thể đó với các kiểu thực thể khác Các thuộc tính biểu thị một kiểu liên kết có thể đơn trị hoặc đa trị tuỳ theo bản chất của mối liên kết

Các tên vai trò và các kiểu liên kết đệ quy: Mỗi một kiểu thực thể tham gia vào một kiểu liên kết có một vai trò cụ thể trong liên kết Tên vai trò dùng để chỉ rõ vai trò của

các thực thể của kiểu thực thể tham gia liên kết, nó giúp đỡ việc giải thích ý nghĩa của liên kết Ví dụ, trong kiểu liên kết NHÂNVIÊN <làm việc cho > ĐƠNVỊ, vai trò của các thực thể của kiểu thực thể NHÂNVIÊN là nhân viên hoặc công nhân còn vai trò của các thực thể của kiểu thực thể ĐƠNVỊ là đơn vị hoặc nơi thuê công nhân Nếu các kiểu thực thể tham gia vào kiểu liên kết là khác nhau thì tên vai trò là hoàn toàn không

Đv1

Đv2

ĐƠNVỊ

Trang 27

cần thiết bởi vì có thể sử dụng tên các kiểu thực thể làm tên vai trò Tuy nhiên, trong một số trường hợp, một kiểu thực thể có thể tham gia vào một kiểu liên kết với các vai trò khác nhau Trong những trường hợp như vậy, tên vai trò trở nên cần thiết để phân

biệt ý nghĩa của mỗi sự tham gia Các kiểu liên kết như vậy gọi là kiểu liên kết đệ quy

Ví dụ, trong số các nhân viên làm việc cho một đơn vị, có các nhân viên được phân công giám sát các nhân viên khác Như vậy sẽ có một kiểu liên kết giữa các thực thể của kiểu thực thể NHÂNVIÊN: NHÂNVIÊN <giám sát> NHÂNVIÊN Kiểu thực thể NHÂNVIÊN tham gia hai lần vào kiểu liên kết <giám sát>, một lần với vai trò người giám sát, một lần với vai trò người bị giám sát

2.2.5 Các ràng buộc trên các kiểu liên kết

Các kiểu liên kết thường có một số ràng buộc để hạn chế số các tổ hợp có thể của các thực thể có thể tham gia trong tập hợp liên kết tương ứng Các ràng buộc này được xác định từ tình trạng của thế giới thực mà kiểu liên kết biểu diễn Ví dụ, nếu công ty có quy chế là một nhân viên chỉ làm việc cho một đơn vị thì chúng ta phải mô tả ràng buộc này trong lược đồ Có hai loại ràng buộc chính: tỷ số lực lượng và sự tham gia

Tỷ số lực lượng: Tỷ số lực lượng cho một kiểu liên kết chỉ ra số các thể hiện liên kết

mà một thực thể có thể tham gia Với các kiểu liên kết cấp 2, có thể có các tỷ số lực lượng 1:1, 1:N, và M:N Một kiểu liên kết có tỷ số lực lượng 1:1 giữa hai kiểu thực thể A và B có nghĩa là trong kiểu liên kết đó, một thực thể của kiểu A chỉ liên kết với một thực thể của kiểu B và ngược lại, một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A Tỷ số lực lượng 1:N có nghĩa là một thực thể của kiểu A có thể liên kết với nhiều thực thể của kiểu B nhưng một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A Trong kiểu liên kết có tỷ số lực lượng M:N, mỗi thực thể của kiểu A có thể liên kết với nhiều thực thể của kiểu B và ngược lại, mỗi thực thể của kiểu B có thể liên kết với nhiều thực thể của kiểu A Trong biểu diễn của lược đồ ER, các tỷ số lực lượng được biểu diễn bằng cách ghi 1, N, M trên các hình thoi biểu diễn kiểu liên kết (hình 2-5)

Hình 2-5 Tỷ số lực lượng của các kiểu liên kết Các ràng buộc tham gia và sự phụ thuộc tồn tại: Ràng buộc tham gia chỉ ra rằng có

phải sự tồn tại của một kiểu thực thể phụ thuộc vào một kiểu thực thể khác thông qua

một kiểu liên kết hay không Có hai kiểu ràng buộc tham gia: ràng buộc tham gia

toàn bộ và ràng buộc tham gia bộ phận Tham gia toàn bộ nghĩa là tất cả các thực thể của kiểu thực thể phải tham gia vào kiểu liên kết còn tham gia bộ phận nghĩa là chỉ

Trang 28

một bộ phận các thực thể của kiểu thực thể tham gia vào kiểu liên kết Ví dụ, xét kiểu

liên kết NHÂNVIÊN <quản lý> ĐƠNVỊ Trong thực tế, mỗi đơn vị phải có một người

quản lý (là một nhân viên) nhưng không phải nhân viên nào cũng quản lý một đơn vị Như vậy, sự tham gia của các thực thể đơn vị vào kiểu liên kết là toàn bộ còn sự tham gia của các thực thể nhân viên vào kiểu liên kết là bộ phận Sự tham gia toàn bộ còn

được gọi là sự phụ thuộc tồn tại

Trong lược đồ ER, sự tham gia toàn bộ được biểu thị bằng đường nối đôi từ kiểu thực thể đến kiểu liên kết

2.2.6.Thuộc tính của các kiểu liên kết

Các kiểu liên kết cũng có thể có các thuộc tính, giống như các thuộc tính của các kiểu

thực thể Ví dụ, kiểu liên kết <làm việc trên> giữa các kiểu thực thể NHÂNVIÊN và

DỰÁN có thể có thuộc tính Sốgiờ để ghi lại số giờ làm việc của một nhân viên trên một dự án Các thuộc tính của kiểu liên kết cũng được biểu diễn bằng một hình ô van

và được nối với kiểu liên kết Ví dụ:

2.2.7.Các kiểu thực thể yếu

Các kiểu thực thể không có các thuộc tính khoá cho chính mình được gọi là các kiểu thực thể yếu Ngược lại, các kiểu thực thể thông thường (nghĩa là có thuộc tính khoá) được gọi là kiểu thực thể mạnh Các thực thể của một kiểu thực thể yếu được xác định bằng cách liên kết với các thực thể cụ thể của một kiểu thực thể khác phối hợp với một

số giá trị thuộc tính của nó Ta gọi kiểu thực thể khác đó là kiểu thực thể xác định hoặc

kiểu thực thể chủ Ta gọi kiểu liên kết giữa kiểu thực thể yếu và kiểu thực thể chủ của

nó là liên kết xác định của thực thể yếu Một kiểu thực thể yếu luôn luôn có một ràng buộc tham gia toàn bộ (tồn tại phụ thuộc) vào liên kết xác định của nó bởi vì một kiểu thực thể yếu không thể được xác định mà không có kiểu thực thể chủ Ví dụ, trong một công ty, con của nhân viên và nhân viên có thể hưởng chế độ bảo hiểm theo nhân viên

Như vậy, sẽ có một kiểu liên kết NHÂNVIÊN <có> < CON> Đây là một kiểu liên kết

có tỷ số lực lượng 1:N Các thuộc tính của kiểu thực thể CON là Họtên, Ngaysinh, Giớitính Hai người con của hai nhân viên khác nhau có thể có cùng giá trị cho các thuộc tính nhưng nó là hai thực thể khác nhau Chúng chỉ được xác định như hai thực thể khác nhau sau khi xác định một thực thể nhân viên cụ thể có liên quan đến từng người phụ thuộc Mỗi thực thể của kiểu thực thể NHÂNVIÊN được gọi là chủ của các thực thể của kiểu thực thể CON liên kết với nó

Thông thường, các kiểu thực thể yếu có một khoá bộ phận, đó là một tập hợp các

thuộc tính có thể xác định một cách duy nhất các thực thể yếu liên kết với cùng một

trên

Số giờ

Trang 29

thực thể chủ Ví dụ, nếu hai người con của một nhân viên không bao giờ có tên giống nhau thì thuộc tính Họtên của kiểu thực thể CON là một khoá bộ phận

Trong sơ đồ ER, kiểu thực thể yếu và kiểu liên kết xác định của nó được biểu diễn bằng một hình chữ nhật và một hình thoi nét đôi Ví dụ:

*Các kí hiệu dùng trong cơ sở dữ liệu thực thể - kết hợp:

2.3 Ví dụ về thiết kế CSDL dựa trên mô hình ER

Trang 30

Trong phần này, chúng ta xét ví dụ về việc xây dựng mô hình ER cho cơ sở dữ liệu công ty Như ở trong phần trên đã nói, bước đầu tiên trong việc thiết kế một cơ sở dữ liệu là tập hợp và phân tích các yêu cầu Kết quả của bước này là một tập hợp các ghi chép súc tích về các yêu cầu người sử dụng cũng như tình trạng của nơi ta cần xây dựng cơ sở dữ liệu

Giả sử rằng sau khi tập hợp các yêu cầu và phân tích, hoạt động của công ty được ghi chép lại như sau:

5) Một nhân viên có thể có những người con được hưởng bảo hiểm theo nhân viên Mỗi người con của nhân viên có tên, giới tính, ngày sinh

Hướng dẫn:

- Từ gợi ý giải thiết thứ nhất và cuối, ta nhận thấy trong mô hình CSDL sẽ gồm

4 kiểu thực thể: NHANVIEN, PHONGBAN, DEAN, THANNHAN

+ Xác định các thuộc tính của kiểu thực thể

- Từ gợi ý 2, ta xác định được các thuộc tính của đơn vị (PHONGBAN): Maphong, tenphong, thuộc tính đa trị: diadiem

- Từ gợi ý 3, ta xác định được các thuộc tính của DUAN: MaDA, TenDA, diadiemDA

- Từ gợi ý 4, ta xác định được các thuộc tính của NHANVIEN: MaNV, Hoten, DiaChi, NgaySinh, GioiTinh, Luong

- Từ gợi ý cuối, ta xác định được các thuộc tính của THANNHAN: HotenTN, GioiTinhTN, NgaySinhTN

+ Xác định các kiểu kiên kết:

- Từ gợi ý 2, 3 ta thấy giữa PHONGBAN, NHANVIEN có 2 liên kết: “là trưởng

phòng”, “làm việc” Trong đó liên kết “là trưởng phòng” có thuộc tính Ngày nhận chức

- Từ gợi ý 4, NHANVIEN, DUAN có liên kết “tham gia”, liên kết này có thuộc tính là Sogio

- Từ gợi ý 3, ta thấy giữa PHONGBAN, DUAN có liên kết “quản lý”

- Từ gợi ý cuối: NHANVIEN có nhiều THANNHAN

- Từ gợi ý 4, sẽ có một kiên kết đệ quy “Giám sát”

Trang 31

Từ đó ta xây dựng được mô hình E-R như sau:

2.4.2.Câu hỏi luyện tập

a)Câu hỏi lí thuyết

1- Hãy nói về vai trò của mô hình dữ liệu bậc cao trong quá trình thiết kế cơ sở dữ liệu

2- Liệt kê các trường hợp cần phải sử dụng giá trị null

Trang 32

3- Định nghĩa các thuật ngữ sau: thực thể, thuộc tính, giá trị thuộc tính, thể hiện liên kết, thuộc tính phức hợp, thuộc tính đa trị, thuộc tính suy diễn được, thuộc tính phức tạp, thuộc tính khoá, miền giá trị

4- Kiểu thực thể là gì? Tập thực thể là gì? Giải thích sự khác nhau giữa một thực thể, một kiểu thực thể và một tập thực thể

5- Giải thích sự khác nhau giữa một thuộc tính và một tập giá trị

6 - Kiểu liên kết là gì? Giải thích sự khác nhau giữa một thể hiện liên kết, một tập liên kết và một kiểu liên kết

7- Vai trò tham gia là gì? Khi nào cần phải sử dụng các tên vai trò trong mô tả các kiểu liên kết

8- Mô tả cách chỉ ra các ràng buộc cấu trúc trên các kiểu liên kết

9- Với điều kiện nào một thuộc tính của một kiểu liên kết cấp 2 có thể chuyển thành một thuộc tính của một trong các kiểu thực thể tham gia vào kiểu liên kết

10- Khi chúng ta nghĩ đến các liên kết như là các thuộc tính, các tập giá trị của các thuộc tính đó là gì?

Bài tập 1:

Hãy thiết kế CSDL dạng thực thể kết hợp (Lược đồ ER) của hệ thống đăng ký đề tài nghiên cứu khoa học của giáo viên, với các giả thiết sau:

1 Mỗi năm, mỗi giáo viên phải đăng ký các đề tài nghiên cứu khoa học, ít nhất 1

đề tài và có thể đăng ký nhiều đề tài; một đề tài có thể có nhiều giáo viên đăng

ký Thông tin về mỗi giáo viên gồm: Mã giáo viên, họ tên, giới tính, trình độ, bằng cấp

2 Một giáo viên có thể có nhiều bằng cấp

3 Thông tin về mỗi đề tài gồm: Mã đề tài, tên đề tài, kinh phí cấp cho đề tài

4 Mỗi giáo viên có thể có những người con: thông tin về những người con gồm:

Họ tên, giới tính, năm sinh

Bài tập 2:

Xây dựng mô hình ER cho cơ sở dữ liệu THƯ VIỆN

Hãy xây dựng lược đồ ER cho CSDL “THƯ VIỆN”, dựa trên các ghi chép sau:

1 Thư viện được chia ra thành các nhánh Thông tin về mỗi nhánh gồm có Mã nhánh, Tên nhánh và Địa chỉ

2 Mỗi cuốn sách trong thư viện có các thông tin về Mã sách, Tên sách Nhà xuất bản và Tác giả…

3 Một tác giả có thể viết nhiều cuốn sách Một cuốn sách có thể có nhiều tác giả viết

4 Một nhà xuất bản xuất bản nhiều cuốn sách Một cuốn sách do một nhà xuất bản xuất bản Thông tin về Nhà xuất bản gồm có Tên, Địachỉ và Sốđiệnthoại

5 Một cuốn sách có thể có nhiều bản sao được lưu trữ tại các nhánh Thông tin về bản sao sách gồm Mã sách, số các bản sao

Trang 33

6 Thư viện có những người mượn sách Thông tin về những người mượn sách gồm có Số thẻ, Họ tên, Địa chỉ và Số điện thoại

7 Sách được cho các người mượn mượn tại các nhánh Thông tin về một lần mượn gồm có Ngày mượn và ngày trả

3 MÔ HÌNH QUAN HỆ - chuyển mô hình ER sang mô hình quan hệ

3.1.Các khái niệm

3.1.1.Thuộc tính (Attribute)

Thuộc tính là các đặc điểm riêng của một đối tượng (đối tượng được hiểu như là một loại thực thể ở mô hình thực thể kết hợp), mỗi thuộc tính có một tên gọi và phải thuộc về một kiểu dữ liệu nhất định

Kiểu dữ liệu (data type)

Các thuộc tính được phân biệt qua tên gọi và phải thuộc một kiểu dữ liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…) Kiểu dữ liệu ở đây có thể là kiểu vô hướng hoặc là kiểu có cấu trúc Nếu thuộc tính có kiểu dữ liệu là vô hướng thì nó được gọi là thuộc tính đơn hay thuộc tính nguyên tố, nếu thuộc tính có kiểu dữ liệu có cấu trúc thì

ta nói rằng nó không phải là thuộc tính nguyên tố

Chẳng hạn với sinh viên Nguyễn Văn Thành thì các thuộc tính họ và tên, mã số sinh viên thuộc kiểu chuỗi, thuộc tính ngày sinh thuộc kiểu ngày tháng, hộ khẩu thường trú kiểu chuỗi, thuộc tính hình ảnh kiểu hình ảnh,…

Miền giá trị (domain of values)

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 và tập hợp con đó gọi là miền giá trị của thuộc tính đó Chẳng hạn thuộc tính NỮ có miền giá trị là {nam, nữ}, thuộc tính màu da có miền giá trị là {da trắng, da vàng, da đen, da đỏ}, thuộc tính điểm thi là các số thuộc tập {0; 1; 2,…,10]

Lưu ý rằng nếu không lưu ý đến ngữ nghĩa thì tên của các thuộc tính thường được ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái la tinh: A, B, C, D,… Những chữ cái in hoa X,Y,Z,W,… thường dùng thay cho một nhóm nhiều thuộc tính Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số A1,A2,…,An để chỉ các thuộc tính trong trường hợp tổng quát hay muốn đề cập đến số lượng các thuộc tính Tên thuộc tính phải được đặt một cách gợi nhớ, không nên đặt tên thuộc tính quá dài (vì như thế

sẽ làm cho việc viết các câu lệnh truy vấn trở nên vất vả hơn), nhưng cũng không nên đặt tên thuộc tính quá ngắn (vì nó sẽ không cho thấy ngữ nghĩa của thuộc tính), đặc biệt không đặt trùng tên hai thuộc tính mang ngữ nghĩa khác nhau thuộc hai đối tượng khác nhau

Trong nhiều hệ quản trị cơ sở dữ liệu, người ta thường đưa thêm vào miền giá trị của các thuộc tính một giá trị đặc biệt gọi là giá trị rỗng (NULL) Tuỳ theo ngữ cảnh mà giá trị này có thể đặc trưng cho một giá trị không thể xác định được hoặc một giá trị

Trang 34

chưa được xác định ở vào thời điểm nhập tin nhưng có thể được xác định vào một thời

điểm khác

3.1.2.Lược đồ quan hệ (relation schema)

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 các 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), ký hiệu Q+ = {A1,A2, ,An}

Chẳng hạn lược đồ quan hệ Sinhviên với các thuộc tính như đã được liệt kê trong ví dụ trên được viết như sau:

Sinhvien (MASV, HOTENSV, NGAYSINH, NOISINH,TINH, MALOP)

Thường thì khi thành lập một lược đồ quan hệ, người thiết kế gắn cho nó một ý nghĩa

nhất định, gọi là tân từ của lược đồ quan hệ chẳng hạn tân từ của lược đồ quan hệ

Sinhvien là: ”Mỗi sinh viên có mỗi MASV duy nhất Mỗi MASV xác định các thuộc tính còn lại của sinh viên đó như HOTENSV, NGAYSINH, NOISINH, TINH, MALOP”

Khi phát biểu tân từ cho một lược đồ quan hệ, người thiết kế cần phải mô tả đầy đủ ý nghĩa để người khác tránh hiểu nhầm Dựa vào tân từ này, người ta xác định được tập khoá, siêu khoá của lược đồ quan hệ

Nhiều lược đồ quan hệ cùng nằm trong một hệ thống thông tin được gọi là một lược đồ

cơ sở dữ liệu

Khái niệm lược đồ quan hệ ứng với khái niệm loại thực thể ở mô hình thực thể kết

hợp

3.1.3 Quan hệ (relation)

Sự thể hiện của lược đồ quan hệ ở một thời điểm nào đó được gọi là quan hệ, rõ ràng

là trên một lược đồ quan hệ có thể xác định nhiều quan hệ Thường ta dùng các ký hiệu như R,S,Q để chỉ các lược đồ quan hệ, còn quan hệ thường được dùng bởi các ký hiệu là r, s,q,…

Về trực quan thì quan hệ (hay bảng quan hệ) như là một bảng hai chiều gồm các dòng

và các cột

Một quan hệ có n thuộc tính được gọi là quan hệ n ngôi

Để chỉ quan hệ r xác định trên lược đồ quan hệ Q ta có thể viết r(Q)

Ví dụ:

SINHVIÊN Họtên Mã số Ngàysinh Giớitính Địachỉ

Hoàng Tùng 4516802 21/03/84 Nam Bắc ninh Trương Định 4620503 14/05/85 Nam Hà nam Phạm An 4611203 16/04/85 Nam Nam định

Đỗ Cung 4521402 20/01/84 Nam Nghệ an

Hình 3-1 Quan hệ SINHVIÊN

Trang 35

3.1.5.Siêu khóa - khóa (super key - key)

S là siêu khoá (super key) của Q nếu với r là quan hệ bất kỳ trên Q, t1, t2 là hai bộ bất

kỳ thuộc r thì t1.S  t2.S

Một lược đồ quan hệ có thể có một hoặc nhiều siêu khoá

Chẳng hạn lược đồ quan hệ Sinhvien ở trên có các siêu khoá là: {MASV,HOTENSV}, {MASV,HOTENSV,TINH },…

Siêu khoá không chứa một siêu khoá nào khác được gọi là khoá chỉ định,

trong trường hợp lược đồ quan hệ có nhiều khoá chỉ định (hay khoá nội), thì khoá

được chọn để cài đặt gọi là khoá chính (trong các phần sau khoá chính được gọi tắt là

khoá) Chẳng hạn với lược đồ quan hệ Sinhvien trên có khoá là {MASV} Thường các thuộc tính khoá được gạch dưới theo kiểu liền nét

Một thuộc tính được gọi là thuộc tính khoá ngoại nếu nó không là thuộc tính khoá của một lược đồ quan hệ này nhưng lại là thuộc tính khoá của một lược đồ quan

hệ khác, chẳng hạn như MALOP là khoá ngoại của lược đồ quan hệ Sinhvien Thường các thuộc tính khoá ngoại được gạch dưới theo kiểu không liền nét

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP)

Lop(MALOP, TENLOP, MAKHOA)

Ý nghĩa thực tế của khoá là dùng để nhận diện một bộ trong một quan hệ, nghĩa

là, khi cần tìm một bộ t nào đó, ta chỉ cần biết giá trị của thành phần khoá của t là đủ

để dò tìm và hoàn toàn xác định được nó trong quan hệ

Trong thực tế đối với các loại thực thể tồn tại khách quan (ví dụ: Sinh viên, Giảng viên, Nhân viên, Hàng hoá,…) người thiết kế cơ sở dữ liệu thường gán thêm cho các lược đồ quan hệ này một thuộc tính giả gọi là mã số để làm khoá (ví dụ: mã số sinh viên, mã số giảng viên, mã số nhân viên, mã số hàng hoá,…) Trong khi đó các lược đồ quan hệ biểu diễn cho sự trừu tượng hoá thường có khoá là một tổ hợp của hai hay nhiều thuộc tính của nó

Một số hệ quản trị cơ sở dữ liệu hiện nay có tự động kiểm tra tính duy nhất trên khoá chính Tức là nếu thêm một bộ mới q2 có giá trị khoá chính trùng với giá trị khoá chính của một bộ q1 nào đó đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại một giá trị khác

Người ta cũng quy ước rằng:

-Trong một bộ của quan hệ các thuộc tính khoá không chứa giá trị rỗng

Trang 36

-Không được phép sửa đổi giá trị thuộc tính khoá của một bộ q Nếu muốn sửa đổi giá trị thuộc tính khoá của một bộ q, người sử dụng phải huỷ bỏ bộ q và sau đó thêm một bộ q‟ với giá trị khoá đã được sửa đổi

b) Các đặc trưng của các quan hệ

+ Thứ tự của các bộ trong một quan hệ

Một quan hệ được định nghĩa như một tập hợp các bộ Các phần tử trong một tập hợp không có thứ tự, vì vậy các bộ trong một quan hệ không có một thứ tự cụ thể Tuy nhiên, trong một tệp, các bản ghi được lưu trữ một cách vật lý trên đĩa vì vậy luôn có một thứ tự giữa các bản ghi Thứ tự này chỉ rõ bản ghi thứ nhất, bản ghi thứ hai, …, bản ghi thứ n

+ Thứ tự của các giá trị bên trong một bộ

Theo định nghĩa quan hệ ở trên, một n-bộ là một danh sách có thứ tự của n giá trị Như vậy thứ tự của các giá trị trong một bộ là quan trọng, từ đó suy ra thứ tự của các thuộc tính trong một lược đồ quan hệ cũng quan trọng Tuy nhiên, ở mức lôgic, thứ tự của các thuộc tính và các giá trị của nó là không thực sự quan trọng khi giữ được sự tương ứng giữa các thuộc tính và các giá trị

Có thể đưa ra một định nghĩa khác về quan hệ, định nghĩa này sẽ làm cho thứ tự của các giá trị trong một bộ là không cần thiết Theo định nghĩa này, một lược đồ quan hệ

R = {A1, A2,…,An} là một tập hợp các thuộc tính và một quan hệ r(R) là một tập hợp hữu hạn các ánh xạ r = {t1, t2, …., tm}, trong đó mỗi ti là một ánh xạ từ R vào D, trong đó D = dom(A1)dom(A2) …dom(An) Trong định nghĩa này, t[Ai] phải ở trong dom(Ai) với 1<= i <= n với mỗi ánh xạ ti trong r Mỗi ánh xạ ti được gọi là một

Các giá trị của một vài thuộc tính trong một bộ cụ thể có thể không biết được hoặc không thích ứng cho nó Trường hợp đó, người ta sử dụng một giá trị đặc biệt gọi là giá trị null.Ví dụ, giả sử quan hệ SINHVIÊN có thuộc tính Sốđiệnthoạiởnhà

Trong một tập thể sinh viên, có người có điện thoại ở nhà, có người không có và cũng

có người có nhưng không biết chắc Với những trường hợp không có hoặc không biết chắc, thuộc tính Sốđiệnthoạiởnhà có giá trị null

Trang 37

+ Thể hiện của một quan hệ

Một lược đồ quan hệ có thể được thể hiện như là một tuyên bố hoặc một khẳng định

Ví dụ lược đồ quan hệ SINHVIÊN ở trên khẳng định rằng, nói chung, một thực thể sinh viên có một mã số, họ tên, ngày sinh, giới tính, địa chỉ Mỗi bộ trong quan hệ được thể hiện như là một sự kiện hoặc như một thể hiện cụ thể của một khẳng định Ngoài các quan hệ biểu diễn các sự kiện về các thực thể, một số quan hệ có thể biểu diễn các sự kiện về mối liên kết Ví dụ, lược đồ quan hệ NHÂNVIÊN_DỰÁN(MãsốNV, MãsốDA, Sốgiờ) khẳng định các nhân viên làm việc với các dự án Mỗi bộ trong quan hệ này liên kết một nhân viên với một dự án mà anh

ta làm việc cho nó

Như vậy, mô hình quan hệ biểu diễn các sự kiện về thực thể và các sự kiện về liên kết dưới dạng duy nhất là các quan hệ

3.2 Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ

Ở trên, chúng ta đã nói đến các lược đồ quan hệ đơn lẻ và các quan hệ đơn lẻ Một cơ

sở dữ liệu quan hệ thường gồm nhiều quan hệ với các bộ giá trị trong các quan hệ được liên kết với nhau theo nhiều cách Trong phần này chúng ta sẽ định nghĩa một cơ

sở dữ liệu quan hệ và một lược đồ cơ sở dữ liệu quan hệ Một lược đồ cơ sở dữ liệu quan hệ S là một tập hợp các lược đồ quan hệ

DỰÁN(TênDA, MãsốDA, ĐịađiểmDA, Mã sốĐV)

NHÂNVIÊN_DỰÁN(MãsốNV, MãsốDA, Sốgiờ)

CON(MãsốNV, Têncon, Giớitính, Ngàysinh)

Hình 3-2 Lược đồ cơ sở dữ liệu “CÔNG TY”

Trang 38

m

4000 NV061 5 NV010 Hoàng Thanh 05/08/79 Nghệ an Nữ 1400 NV014 4 NV014 Phạm Bằng 26/06/52 Bắc ninh Na

m

4300 NV061 4 NV016 Nguyễn Sơn 14/08/73 Hà nam Na

m

3800 NV002 5 NV018 Vũ Hương Giang 26/03/83 Hà nam Nữ 1400 NV002 5 NV014 Trần Lê Hoa 14/03/80 Phú thọ Nữ 1400 NV014 4 NV061 Hoàng Giáp 02/05/47 Hà tĩnh Na

m

5500 Null 1 NHÂNVIÊN_DỰÁN Mã sốNV Mã sốDA Sốgiờ

Trang 39

3.3.1 Khái niệm ràng buộc toàn vẹn

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 cùng một quan hệ hoặc trong các quan hệ của một lược đồ CSDL 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 thoả 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 Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không quá 3 lần,…

Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết

kế - đó là một việc làm rất quan trọng Ràng buộc toàn vẹn được xem như là một công

cụ để diễn đạt ngữ nghĩa của CSDL Một CSDL được thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL

Trang 40

Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật

dữ liệu ( thêm, sửa, xoá) Những ràng buộc toàn vẹn phát sinh phải cần được ghi nhận

và xử lý một cách tường minh (thường là bởi một hàm chuẩn hoặc một đoạn chương trình)

Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến những hậu quả nghiêm trọng về tính an toàn và toàn vẹn dữ liệu, đặc biệt là đối với những cơ sở dữ liệu lớn

3.3.2 Các yếu tố của ràng buộc toàn vẹn

Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm:

- Điều kiện:

Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội dung của nó Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng phụ thuộc hàm Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý sinh viên

Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác trong trường

Mỗi lớp học phải thuộc về một khoa của trường

Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh viên nào trong trường

Mỗi học viên phải đăng ký vào một lớp học trong trường

Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học

Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được của một lớp tại một thời điểm nào đó

- Bối cảnh:

Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng 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 khi tiến hành cập nhật dữ liệu 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

Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật dữ liệu Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau:

Ngày đăng: 21/12/2014, 09:18

HÌNH ẢNH LIÊN QUAN

Hình 1-2. Môi trường của một hệ cơ sơ dữ liệu - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 1 2. Môi trường của một hệ cơ sơ dữ liệu (Trang 12)
Hình 2-1. Sơ đồ mô tả các bước chính của việc thiết kế - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 1. Sơ đồ mô tả các bước chính của việc thiết kế (Trang 22)
Hình 2-2. Kiểu thực thể và tập thực thể - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 2. Kiểu thực thể và tập thực thể (Trang 24)
Hình 2-3. Biểu diễn kiểu thực thể và các thuộc tính - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 3. Biểu diễn kiểu thực thể và các thuộc tính (Trang 25)
Hình 2-4. Kiểu liên kết và thể hiện liên kết  2.2.4.Cấp liên kết, tên vai trò và kiểu liên kết đệ quy - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 4. Kiểu liên kết và thể hiện liên kết 2.2.4.Cấp liên kết, tên vai trò và kiểu liên kết đệ quy (Trang 26)
Hình 2-5. Tỷ số lực lượng của các kiểu liên kết - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 5. Tỷ số lực lượng của các kiểu liên kết (Trang 27)
Hình 2-6. Lược đồ ER “CÔNGTY” - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 2 6. Lược đồ ER “CÔNGTY” (Trang 31)
Hình 3-1. Quan hệ SINHVIÊN - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 3 1. Quan hệ SINHVIÊN (Trang 34)
Hình 3-2. Lược đồ cơ sở dữ liệu “CÔNG TY” - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 3 2. Lược đồ cơ sở dữ liệu “CÔNG TY” (Trang 37)
Hình 3 -3. Cơ sở dữ liệu “CÔNGTY” - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 3 3. Cơ sở dữ liệu “CÔNGTY” (Trang 39)
Bảng này chứa toàn các ký hiệu + ,  – hoặc -(*). - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Bảng n ày chứa toàn các ký hiệu + , – hoặc -(*) (Trang 41)
Hình 5-1. Kết quả phép chọn - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 5 1. Kết quả phép chọn (Trang 54)
Hình 5-2. Kết quả phép chiếu - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 5 2. Kết quả phép chiếu (Trang 56)
Hình 5-3. Kết quả  của các phép toán tập hợp - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 5 3. Kết quả của các phép toán tập hợp (Trang 58)
Hình 5-5. Phép nối tê-ta hai quan hệ - Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015)
Hình 5 5. Phép nối tê-ta hai quan hệ (Trang 59)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w