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

Giáo trình cơ sở dữ liệu trịnh hoàng nam

237 276 2

Đ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 237
Dung lượng 8,33 MB

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

Nội dung

1.5.1 Nhóm quản trị cơ sở dữ liệu Quản trị viên cơ sở dữ liệu là nhóm người dùng được phân quyền mạnh nhất trong hệ thống hướng cơ sở dữ liệu, nhóm người dùng này có quyền thực hiện mọi

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG CƠ SỞ DỮ LIỆU 3

1.1 Hệ thống hướng tập tin 5

1.2 Hệ thống hướng cơ sở dữ liệu 6

1.3 Mục tiêu của các hệ cơ sở dữ liệu 7

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

1.5 Người dùng cơ sở dữ liệu 13

1.6 Ngôn ngữ và giao diện ngôn ngữ dữ liệu 15

CHƯƠNG 2: MÔ HÌNH THỰC THỂ KẾT HỢP 22

2.1 Mô hình thực thể kết hợp 24

2.2 Một ứng dụng của mô hình thực thể kết hợp 25

2.3 Các khái niệm trong mô hình thực thể kết hợp 27

2.4 Các vấn đề khi thiết kế mô hình thực thể kết hợp 40

CHƯƠNG 3: MÔ HÌNH THỰC THỂ KẾT HỢP MỞ RỘNG 49

3.1 Những hạn chế của mô hình thực thể kết hợp 51

3.2 Các khái niệm trong mô hình thực thể kết hợp mở rộng 52

3.3 Một ứng dụng của mô hình thực thể kết hợp mở rộng 63

3.4 Các công cụ mô hình thiết kế cơ sở dữ liệu 64

CHƯƠNG 4: MÔ HÌNH DỮ LIỆU QUAN HỆ 71

4.1 Các khái niệm cơ bản 73

4.2 Ràng buộc toàn vẹn trên mô hình quan hệ và lược đồ dữ liệu quan hệ 80

4.3 Các toán tử cập nhật trên quan hệ 85

CHƯƠNG 5: ĐẠI SỐ QUAN HỆ VÀ PHÉP TÍNH QUAN HỆ 94

5.1 Phép toán một ngội 96

5.2 Các phép toán hai ngôi 99

Trang 3

5.4 Phép tính quan hệ trên bộ 112

5.5 Phép tính quan hệ trên miền 120

CHƯƠNG 6: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ 128

6.1 Các giai đoạn thiết kế cơ sở dữ liệu quan hệ 130

6.2 Thiết kế cơ sở dữ liệu ý niệm 133

6.3 Thiết kế cơ sở dữ liệu luận lý 139

CHƯƠNG 7: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC 162

7.1 Định nghĩa dữ liệu và các kiểu dữ liệu 164

7.2 Các ràng buộc cơ bản trong SQL 168

7.3 Các câu lệnh thay đổi lược đồ cơ sở dữ liệu 174

7.4 Các truy vấn cơ bản trong SQL 176

7.5 Các câu truy vấn phức tạp 185

7.6 Các lệnh cập nhật dữ liệu trong SQL 196

CHƯƠNG 8: LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ 206

8.1 Phụ thuộc hàm 208

8.2 Hệ tiên đề các phụ thuộc hàm và phép suy dẫn logic 211

8.3 Một số vấn đề khi thiết kế lược đồ cơ sở dữ liệu quan hệ 223

8.4 Phân tách quan hệ 224

8.5 Các dạng chuẩn của mô hình dữ liệu quan hệ 231

8.6 Các phương pháp chuẩn hóa cơ sở dữ liệu quan hệ 237

CHƯƠNG 9: TỐI ƯU HÓA TRUY VẤN 250

9.1 Tổng quan về tối ưu hóa truy vấn 252

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

9.3 Nguyên tắc tối ưu hóa 254

9.4 Kỹ thuật tối ưu hóa các biểu thức đại số quan hệ 256

9.5 Tối ưu hóa bằng khung nhìn 265

Trang 4

LỜI MỞ ĐẦU

Trong thời đại bùng nổ thông tin, vai trò của hệ thống thông tin ngày càng trở nên quan trọng đối với mọi lĩnh vực hoạt động của doanh nghiệp, đặc biệt trong việc nâng cao khả năng cạnh tranh thông qua các hoạt động phát triển sản phẩm, giảm giá thành, mở rộng thị trường, … Phần lớn các hệ thống thông tin trong doanh nghiệp đều đòi hỏi phải duy trì toàn bộ dữ liệu ở quá khứ, không ngừng bổ sung thêm các dữ liệu mới được ghi nhận

ở hiện tại, và dự đoán các kết quả sẽ xuất hiện trong tương lai Các dữ liệu này không chỉ được sử dụng để thống kê, phân tích, đánh giá tổ chức ở thời điểm hiện tại, mà còn có

khả năng hỗ trợ đưa ra những quyết định ở nhiều cấp quan trọng khác nhau Chính vì lẽ

đó, cơ sở dữ liệu trở thành một bộ phận gắn liền với hệ thống thông tin của doanh nghiệp,

và được coi là một phần không thể tách rời khỏi doanh nghiệp

Thuật ngữ Cơ sở dữ liệu giờ đây được áp dụng rộng rãi trong nhiều lĩnh vực ngoài Công nghệ thông tin, như là Tài chính – Ngân hàng, Kế toán – Kiểm toán, Thẩm định dự án, … Bản thân môn học Cơ sở dữ liệu cũng xuất hiện ở các chương trình đào tạo khác nhau với nhiều trình độ khác nhau từ trung cấp, cao đẳng, đến đại học, và cả sau đại học

Trên thị trường hiện nay có khá nhiều tài liệu tham khảo về Cơ sở dữ liệu, nhưng hầu hết

đều nhắm đến đối tượng người đọc là những sinh viên khối ngành Công nghệ thông tin

hoặc có những kiến thức nhất định về công nghệ thông tin Xuất phát từ thực tế đó, chúng

tôi bắt tay biên soạn giáo trình Cơ sở dữ liệu với cách tiếp cận đơn giản dễ hiểu, phù hợp

Trang 5

Giáo trình tập trung trình bày những kiến thức cần thiết về cơ sở dữ liệu, từ những khái niệm cơ bản khi mới bắt đầu làm quen, cho đến những vấn đề quan trọng, có tính quyết

định tới sự thành bại khi xây dựng một cơ sở dữ liệu thực tế Với các kiến thức lý thuyết được trình bày một cách cô đọng, ngắn gọn và dễ hiểu; các ví dụ minh họa đa dạng,

phong phú, chúng tôi hy vọng giáo trình này đáp ứng được nhu cầu nghiên cứu và học tập của nhiều đối tượng người học khác nhau

Mặc dù có rất nhiều cố gắng trong công tác biên soạn, nhưng giáo trình chắc chắn sẽ có ít nhiều khiếm khuyết Chúng tôi rất mong nhận được các ý kiến đóng góp để có thể hoàn thiện giáo trình trong lần tái bản tiếp theo

TP Hồ Chí Minh, tháng 07 năm 2011

NHÓM BIÊN SOẠN

Trang 6

Nội dung

 Hệ thống hướng tệp tin

 Hệ thống hướng cơ sở dữ liệu

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

 Người dùng cơ sở dữ liệu

 Ngôn ngữ và giao diện ngôn ngữ dữ liệu

Trang 7

Giới thiệu

Khái niệm cơ sở dữ liệu ra đời từ rất sớm, và kể từ đó, cơ sở dữ liệu trở thành một

bộ phận không thể tách rời đối với các hệ thống thông tin trên máy tính Cơ sở dữ liệu ra đời trong bối cảnh hàng loạt vấn đề phát sinh trong các hệ thống sử dụng tệp tin làm phương tiện để lưu trữ dữ liệu

Chúng ta bắt đầu tìm hiểu cơ sở dữ liệu bằng việc giới thiệu một loại công cụ hỗ trợ giao tiếp với cơ sở dữ liệu, đó là hệ quản trị cơ sở dữ liệu Tiếp theo chúng ta phân loại các đối tượng người dùng cơ sở dữ liệu dựa trên quyền hạn và trách nhiệm của họ đối với cơ sở dữ liệu Cuối cùng, chúng ta làm quen với ba nhóm ngôn ngữ mà qua đó chúng ta tương tác với hệ quản trị cơ sở dữ liệu: ngôn ngữ

định nghĩa dữ liệu, ngôn ngữ thao tác dữ liệu, và ngôn ngữ điều khiển dữ liệu

Trang 8

1.1 HỆ THỐNG HƯỚNG TỆP TIN

Một tệp tin có thể 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 Việc xử lý để lấy ra thông tin theo yêu cầu được thực hiện một cách thủ công Tuy nhiên, theo thời gian, khối lượng thông tin ngày càng lớn, việc xử lý để lấy các thông tin theo yêu cầu ngày càng trở nên phức tạp Do đó, máy tính được đưa vào sử dụng Các cặp hồ sơ được chuyển thành tệp trên máy tính và việc xử lý thông tin được thể hiện bằng cách lập trình

Hình 1.1 Mô hình hoạt động hệ thống hướng tệp tin

Việc áp dụng hệ thống hướng tệp tin có một số ưu điểm như sau:

 Việc xây dựng các ứng dụng cũng như các tệp tin dữ liệu đáp ứng cho từng công việc riêng biệt cho nên về cơ bản ít tốn thời gian, không đòi hỏi đầu tư nhiều về thời gian, vật chất, đồng thời lại có thể nhanh chóng đưa vào sử dụng

 Thông tin được khai thác chỉ phục vụ cho một số ít người sử dụng với một

số mục đích cụ thể, cho nên tính an toàn cao, khả năng đáp ứng nhanh chóng, kịp thời

Tuy nhiên, các hệ thống kiểu này cũng có nhiều nhược điểm, cụ thể như sau:

 Dư thừa thông tin, cùng một thông tin được lưu trữ nhiều điểm khác nhau

Điều này gây ra việc lãng phí bộ nhớ, dễ dàng gây sai sót trong khi cập nhật

Trang 9

dữ liệu, dữ liệu trở nên thiếu đồng bộ, không nhất quán, thậm chí còn xung

đột lẫn nhau

 Sự phụ thuộc chặt chẽ giữa chương trình ứng dụng Mỗi khi có sự thay đổi

về 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 phải thay đổi theo Điều này gây ra khó khăn lớn cho việc bảo trì hệ thống

Để khắc phục những nhược điểm nói trên, hệ thống hướng cơ sở dữ liệu ra đời và

không ngừng phát triển cho đến ngày nay

1.2 HỆ THỐNG HƯỚNG CƠ SỞ DỮ LIỆU

Dữ liệu là những sự kiện có thể ghi lại được, và thường không có ý nghĩa Trong khi đó, thông tin là ý nghĩa của dữ liệu sau khi đã được người sử dụng xử lý trong một ngữ cảnh cụ thể nào đó

Cơ sở dữ liệu là hệ thống các dữ liệu có cấu trúc được lưu trữ trên các thiết bị lưu trữ thứ cấp để thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc nhiều chương trình ứng dụng với nhiều mục đích khác nhau Trong khái niệm này, chúng ta cần nhấn mạnh cơ sở dữ liệu phải là một tập hợp các dữ liệu có liên quan

về mặt luận lý, chứ không phải là những dữ liệu rời rạc, không có mối quan hệ với nhau Các dữ liệu này phải có cấu trúc, và chúng phải có khả năng đáp ứng các nhu cầu khai thác thông tin của nhiều người sử dụng

Sự ra đời của các hệ thống hướng cơ sở dữ liệu đã giải quyết triệt để những vấn đề

mà hệ thống hướng tệp tin gặp phải trước đó, cụ thể như sau:

 Giảm sự trùng lặp dữ liệu xuống mức thấp nhất, và do đó đảm bảo được tính nhất quán và toàn vẹn dữ liệu

 Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau

 Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng

Trang 10

1.3 MỤC TIÊU CỦA HỆ THỐNG HƯỚNG CƠ SỞ

DỮ LIỆU

Hệ thống hướng cơ sở dữ liệu với những ưu điểm tuyệt đối của nó so với hệ thống hướng tệp tin ra đời trước đó đã nhanh chóng được giới chuyên môn chấp nhận và

đưa vào triển khai Khi xây dựng một hệ thống hướng cơ sở dữ liệu thương mại

hay phi thương mại, chúng ta đều hướng tới thực hiện các mục tiêu chính yếu sau

đây:

a) Đảm bảo ý nghĩa của dữ liệu Dữ liệu có tính chia sẻ, nhiều người có

quyền sử dụng, thậm chí là thay đổi giá trị của dữ liệu, từ đó làm thay đổi ý nghĩa của dữ liệu Do đó, dữ liệu cần thường xuyên được theo dõi, kiểm tra,

rà soát, và cập nhật để phản ánh đúng giá trị mà nó đại diện

b) Đảm bảo tính riêng tư và quyền khai thác dữ liệu của người sử dụng

Mặc dù dữ liệu có tính chia sẻ, nhưng không phải tất cả dữ liệu đều được chia sẻ, hoặc là không phải bất kỳ người sử dụng nào cũng có quyền khai thác như nhau đối với một dữ liệu cụ thể Người sử dụng không chỉ có thể thiết lập các thông số liên quan đến việc chia sẻ dữ liệu dùng chung, mà còn

có thể cấp quyền và thu hồi quyền khai thác dữ liệu đối với những người

dùng khác trong hệ thống

c) Đảm bảo giải quyết xung đột dữ liệu Xuất phát từ việc dữ liệu được chia

sẻ, sự xung đột về quyền khai thác dữ liệu sẽ xuất hiện giữa những người dùng khác nhau trong hệ thống Cùng một dữ liệu đó, cùng lúc có nhiều yêu cầu thực hiện thêm, sửa, hay xóa Hệ thống nhìn chung không thể xử lý

đồng thời tất cả các yêu cầu đó cùng lúc Do đó, chúng ta cần phải duy trì

cơ chế ưu tiên truy xuất dữ liệu cũng như cơ chế giải quyết tình trạng khóa

chết trong quá trình khai thác cạnh tranh

d) Đảm bảo toàn vẹn dữ liệu khi có sự cố Cơ sở dữ liệu thường được xem là

một bộ sưu tập dữ liệu trong một khoảng thời gian dài thường là vài năm,

Trang 11

trữ liên tục, chúng ta cần phải xây dựng cơ chế sao lưu, phục hồi nhằm đảm bảo dữ liệu được nguyên vẹn và không bị gián đoạn trong trường hợp hệ

 Định nghĩa 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 dữ liệu sẽ được lưu trữ trong cơ sở dữ liệu

 Xây dựng cơ sở dữ liệu bao gồm việc 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

 Thao tác cơ sở dữ liệu bao gồm việc thực hiện các chức năng truy vấn cơ

sở dữ liệu để lấy ra những thông tin cần thiết, cập nhật cơ sở dữ liệu để phản ánh sự các thay đổi trong thế giới thực và tạo ra các báo cáo từ dữ liệu trong cơ sở dữ liệu

Nói cách khác, hệ quản trị cơ sở dữ liệu là công cụ giúp người sử dụng hay các chương trình ứng dụng tương tác với cơ sở dữ liệu Cả ba yếu tố này hình thành nên một hệ thống hướng cơ sở dữ liệu (xem hình 1.2)

Trang 12

1.4.2 Phân loại

Thực tế, có rất nhiều tiêu chí có thể được sử dụng để phân loại các hệ quản trị cơ

sở dữ liệu Ở đây, chúng tôi chỉ giới thiệu ba tiêu chí quan trọng nhất, đó là mô hình dữ liệu, tính đa người dùng, và tính phân tán của hệ quản trị cơ sở dữ liệu

a) Dựa trên mô hình dữ liệu

 Mô hình dữ liệu quan hệ (relational data model): là mô hình dữ liệu chủ

yếu được sử dụng trong hầu hết các hệ quản trị cơ sở dữ liệu thương mại hiện nay

 Mô hình dữ liệu phân cấp ( hierarchical data model)và mô hình dữ liệu mạng (network data model): phổ biến trong quá khứ, những ứng dụng

lâu đời vẫn còn sử dụng các mô hình này cho tới ngày nay

 Mô hình dữ liệu đối tượng (object oriented data model): được hiện thực

trong một số hệ thống thương mại nhưng chưa được sử dụng rộng rãi

 Mô hình dữ liệu đối tượng – quan hệ (object relational data model): ra

đời do quá trình phát triển các hệ quản trị cơ sở dữ liệu có liên quan nối

tiếp với nhau, là sự kết hợp của mô hình quan hệ và nhiều khái niệm trong cơ sở dữ liệu đối tượng

b) Dựa trên số người dùng mà hệ thống hỗ trợ

 Hệ thống đơn người dùng (single-user database management system):

chỉ hỗ trợ mỗi người dùng tại một thời điểm Loại này thường chỉ sử dụng với các máy PC

 Hệ thống đa người dùng (multi-user database management system): hỗ

trợ nhiều người dùng đồng thời, loại này chiếm đa số các loại hệ quản trị cơ sở dữ liệu

c) Dựa trên vị trí đặt hệ thống

 Hệ quản trị cơ sở dữ liệu tập trung (centralized data management

system): là hệ quản trị cơ sở dữ liệu có dữ liệu chỉ chứa tại một nơi duy

Trang 13

 Hệ quản trị cơ sở dữ liệu phân tán (distributed data management

system): chứa dữ liệu và phần mềm hệ quản trị cơ sở dữ liệu tại nhiều nơi khác nhau, kết nối với nhau thông qua đường truyền mạng

1.4.3 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 được đánh giá là tốt, nếu thực hiện được các chức năng cơ bản sau đây:

 Lưu trữ các định nghĩa, các mô tả về bản thân cơ sở dữ liệu (siêu dữ liệu) trong một từ điển dữ liệu Hệ quản trị cơ sở dữ liệu sử dụng từ điển dữ liệu

để tìm kiếm các cấu trúc dữ liệu và các mối liên kết theo yêu cầu của người

sử dụng Mọi sự thay đổi trong cơ sở dữ liệu đều được ghi nhận vào từ điển

dữ liệu Nói cách khác, sự độc lập giữa chương trình ứng dụng và dữ liệu

được đảm bảo tối đa

 Tạo ra các cấu trúc phức tạp theo yêu cầu để lưu trữ dữ liệu Người sử dụng

được giải phóng khỏi việc định nghĩa và lập trình cho các đặc trưng vật lý

của dữ liệu Công việc này do hệ quản trị cơ sở dữ liệu đảm nhiệm

 Chuyển đổi yêu cầu ý niệm về dữ liệu của người sử dụng thành các câu lệnh xác định vị trí lưu trữ vật lý và lấy ra các dữ liệu theo yêu cầu

 Tạo ra một cơ chế phân quyền và gán quyền chặt chẽ, đảm bảo sự riêng tư

và an toàn bảo mật trong cơ sở dữ liệu

 Hỗ trợ cơ chế cho phép nhiều người sử dụng cùng truy cập đến cơ sở dữ liệu

 Cung cấp các phương thức sao lưu, phục hồi dữ liệu nhằm đảm bảo sự an toàn và toàn vẹn dữ liệu

 Cung cấp các phương tiện ngôn ngữ hỗ trợ người sử dụng thực hiện các tác

vụ liên quan tới cơ sở dữ liệu

Trang 14

1.4.4 Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu

Một hệ quản trị cơ sở dữ liệu được phân thành nhiều phân hệ, mỗi phân hệ thực hiện một chức năng trong hệ thống tổng thể Hình 1.3 minh họa các thành phần cơ bản của một hệ quản trị cơ sở dữ liệu

Trong số các thành phần cấu thành nên hệ quản trị cơ sở dữ liệu, bản thân cơ sở dữ liệu và từ điển dữ liệu thường được lưu trữ trên ổ đĩa cứng và do hệ điều hành quản lý theo cơ chế input, output Bộ quản lý dữ liệu lưu trữ cấp cao sử dụng các thông tin về hệ quản trị cơ sở dữ liệu vốn được lưu trữ trên ở đĩa cứng Đường kẻ

đứt nối và các điểm đánh dấu A, B, C, D, E cho biết tác động của bộ quản lý dữ

liệu lưu trữ cấp cao đối với hoạt động của hệ quản trị cơ sở dữ liệu Nhiệm vụ chính của bộ quản lý dữ liệu lưu trữ cấp cao là đảm bảo quá trình trao đổi dữ liệu giữa ổ đĩa lưu trữ với dữ liệu của hệ thống thông qua việc quản lý hoạt động của các bộ đệm trong bộ nhớ chính Một khi dữ liệu nằm trong các bộ đệm của bộ nhớ chính, không chỉ bản thân hệ quản trị cơ sở dữ liệu mà cả những trình ứng dụng cũng có thể sử dụng dữ liệu này

Trình biên dịch ngôn ngữ định nghĩa dữ liệu thực hiện các định nghĩa lược đồ

được khai báo trong các lệnh định nghĩa dữ liệu và lưu giữ thông tin về các lược

đồ này trong từ điển dữ liệu của hệ quản trị cơ sở dữ liệu Từ điển dữ liệu về cơ

bản là nơi chứa đựng toàn bộ thông tin về cơ sở dữ liệu như là tên, kích thước các tệp tin, tên và kiểu của các thực thể dữ liệu, thông tin về các lược đồ, các ràng buộc trong cơ sở dữ liệu Các thành phần của hệ quản trị cơ sở dữ liệu sẽ sử dụng các thông tin trong từ điển dữ liệu mỗi khi có nhu cầu

Bộ xử lý cơ sở dữ liệu chịu trách nhiệm xử lý các truy cập cơ sở dữ liệu mỗi khi chúng xuất hiện Nó tiếp nhận và thực thi các yêu cầu từ người sử dụng hoặc trình

ứng dụng thông qua các trình biên dịch tương ứng như là trình biên dịch ngôn ngữ định nghĩa dữ liệu, trình biên dịch ngôn ngữ thao tác dữ liệu, trình biên dịch truy

Trang 15

vấn, Các thành phần này phối hợp hoạt động thành một thể thống nhất, đảm bảo thực hiện đầy đủ các chức năng của một hệ quản trị cơ sở dữ liệu

Hình 1.3 Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu

1.5 NGƯỜI DÙNG CƠ SỞ DỮ LIỆU

Như đã trình bày ở trên, hệ quản trị cơ sở dữ liệu là bộ công cụ hỗ trợ thực hiện các hoạt động trên một (số) cơ sở dữ liệu nào đó Tuy nhiên, không phải người sử dụng nào cũng được quyền thao tác trực tiếp hoặc gián tiếp (thông qua trình ứng dụng) trên hệ quản trị cơ sở dữ liệu Ở đây, chúng ta sẽ phân biệt một số nhóm người dùng cơ sở dữ liệu dựa trên sự phân loại quyền thực hiện các thao tác trên

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

Trang 16

1.5.1 Nhóm quản trị cơ sở dữ liệu

Quản trị viên cơ sở dữ liệu là nhóm người dùng được phân quyền mạnh nhất trong

hệ thống hướng cơ sở dữ liệu, nhóm người dùng này có quyền thực hiện mọi thao tác trên cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm có liên quan nhằm đảm bảo hoạt động hiệu quả, chính xác, nhanh chóng và liên tục của hệ thống Cụ thể, nhóm quản trị cơ sở dữ liệu có quyền thực hiện các hoạt động sau

đây:

 Phân quyền truy cập cơ sở dữ liệu

 Giám sát quá trình vận hành cơ sở dữ liệu

 Sao lưu, khôi phục cơ sở dữ liệu

 Phân bổ tài nguyên phần cứng, phần mềm khi hệ thống có nhu cầu

 Chịu trách nhiệm trong trường hợp hệ thống có lỗ hổng bảo mật hoặc thời gian đáp ứng chậm

1.5.2 Nhóm thiết kế cơ sở dữ liệu

Nhóm thiết kế cơ sở dữ liệu là nhóm người chịu trách nhiệm về việc phân tích và thiết kế cơ sở dữ liệu, đảm bảo cơ sở dữ liệu được thiết kế đúng đắn, chính xác, hiệu quả, an toàn, đáp ứng tất cả các yêu cầu về dữ liệu trong hiện tại và tương lai

Cụ thể, nhóm thiết kế cơ sở dữ liệu thực hiện các công việc sau đây:

 Lựa chọn các cấu trúc phù hợp để biểu diễn và lưu trữ dữ liệu

 Làm việc với những người dùng cơ sở dữ liệu tiềm năng để nắm bắt được yêu cầu của họ nhằm đảm bảo các bản thiết kế phù hợp với yêu cầu

 Liên hệ với từng nhóm người dùng để xây dựng các khung nhìn dữ liệu cho phù hợp với cấu trúc cơ sở dữ liệu và yêu cầu của mỗi nhóm Bản thiết kế cuối cùng phải thỏa mãn yêu cầu của tất cả các nhóm

Thông thường, nhóm thiết kế cơ sở dữ liệu được xếp chung với nhóm quản trị cơ

sở dữ liệu

Trang 17

1.5.3 Nhóm người dùng cuối

Người dùng cuối là nhóm người có nhu cầu truy cập cơ sở dữ liệu để thực hiện các thao tác khai thác hay quản lý nội dung của cơ sở dữ liệu cơ sở dữ liệu tồn tại chính là để đáp ứng nhu cầu dữ liệu của nhóm người dùng này Cụ thể, nhóm người dùng cuối có nhu cầu thực hiện các thao tác sau đây:

 Truy xuất dữ liệu phục vụ nhu cầu tương tác hoặc thống kê với nhiều khung nhìn khác nhau

 Cập nhật dữ liệu theo hình thức trực tuyến hoặc theo phiên

Tùy từng sự phân quyền, gán quyền cụ thể, người dùng cuối có thể tương tác trực tiếp với cơ sở dữ liệu thông qua hệ quản trị cơ sở dữ liệu, hoặc tương tác gián tiếp với cơ sở dữ liệu thông qua các chương trình ứng dụng có khai báo sử dụng cơ sở

dữ liệu

1.5.4 Nhà phân tích hệ thống và nhân viên lập trình ứng dụng

Nhà phân tích hệ thống có nhiệm vụ xác định yêu cầu của những người dùng cuối

để xây dựng đặc tả các giao tác đáp ứng nhu cầu của họ Sau đó, nhân viên lập

trình ứng dụng sử dụng những đặc tả này để hiện thực chương trình, và họ tiến hành thử nghiệm, xử lý lỗi, lập tài liệu cũng như bảo trì những giao tác được xây dựng sẵn này Cả hai loại người dùng này thường được gọi chung là kỹ sư phần mềm Họ cần phải thật quen thuộc với cấu trúc của hệ quản trị cơ sở dữ liệu để hoàn thành công việc của mình

1.5.5 Nhân viên bảo trì hệ thống

Nhóm người dùng cuối cùng, nhưng không kém phần quan trọng đối với hệ thống hướng cơ sở dữ liệu đó là nhóm nhân viên bảo trì hệ thống Những người này tuy không trực tiếp làm việc với cơ sở dữ liệu nhưng công việc của họ nhằm giúp cho

hệ thống hoạt động liên tục 24/24 Nhiệm vụ chính của nhóm người dùng này bao:

Trang 18

 Nhân viên thiết kế/ hiện thực hệ thống: làm nhiệm vụ thiết kế và hiện thực

giao diện và các chức năng của hệ quản trị cơ sở dữ liệu nhằm cung cấp cho người sử dụng một phần mềm đóng gói hoàn chỉnh

 Nhân viên phát triển công cụ: làm nhiệm vụ thiết kế và hiện thực các gói

phần mềm đi kèm với hệ quản trị cơ sở dữ liệu nhằm nâng cao hiệu suất trong thiết kế và sử dụng cơ sở dữ liệu Chúng bao gồm các gói phần mềm

hỗ trợ việc thiết kế cơ sở dữ liệu, theo dõi hiệu suất, giao diện ngôn ngữ tự nhiên, đồ họa, giả lập, mô phỏng, và thử nghiệm dữ liệu Những công cụ đi kèm này thường được các nhà cung cấp phát triển và đưa vào thị trường

1.6 NGÔN NGỮ VÀ GIAO DIỆN NGÔN NGỮ DỮ

LIỆU

Hệ quản trị cơ sở dữ liệu về cơ bản là một phần mềm cung cấp nhiều tiện ích hỗ trợ người dùng thực hiện các thao tác quản lý, thiết kế, cập nhật và truy vấn dữ liệu Tuy nhiên, cũng như nhiều hệ thống khác, để có thể thao tác được với hệ quản trị cơ sở dữ liệu, người dùng cần phải thực hiện đúng các cơ chế, nắm rõ các quy tắc do hệ quản trị cơ sở dữ liệu đặt ra Nói cách khác, để hệ quản trị cơ sở dữ liệu thực hiện đúng ý đồ, người sử dụng cần phải truyền đạt mệnh lệnh theo đúng cách mà hệ quản trị cơ sở dữ liệu quy định

Hệ thống các hướng dẫn thực hiện mệnh lệnh do hệ quản trị cơ sở dữ liệu quy định

được thể hiện thông qua tập ngôn ngữ và các giao diện dành riêng cho từng nhóm đối tượng người dùng Chỉ những mệnh lệnh được quy định trong tập ngôn ngữ

này mới được hệ quản trị cơ sở dữ liệu thực thi, ngược lại, người sử dụng sẽ nhận

được thông báo lỗi tương ứng

Trong phần này, chúng ta sẽ lần lượt tìm hiểu ba ngôn ngữ dữ liệu phổ biến nhất

được hệ quản trị cơ sở dữ liệu hỗ trợ người sử dụng:

 Ngôn ngữ định nghĩa dữ liệu

Trang 19

 Ngôn ngữ điều khiển dữ liệu

1.6.1 Ngôn ngữ định nghĩa dữ liệu

Ngôn ngữ định nghĩa dữ liệu là loại ngôn ngữ được sử dụng để định nghĩa cấu trúc của các thành phần trong cơ sở dữ liệu Khi đó hệ quản trị cơ sở dữ liệu đóng vai trò là một trình biên dịch chuyên xử lý các câu lệnh định nghĩa dữ liệu nhằm xác

định đặc tả cấu trúc các lược đồ và lưu trữ các đặc tả này trong danh mục của cơ

sở dữ liệu

Thông qua ngôn ngữ định nghĩa dữ liệu, chúng ta có thể tạo mới, chỉnh sửa, và xóa các lược đồ trong cơ sở dữ liệu Do vai trò quan trọng của mình, cho nên ngôn ngữ định nghĩa dữ liệu được dành riêng cho nhóm quản trị và thiết kế cơ sở dữ liệu

1.6.2 Ngôn ngữ thao tác dữ liệu

Khi các lược đồ đã được hiện thực thành các cơ sở dữ liệu, người sử dụng có nhu cầu thực hiện các thao tác như thu thập, chèn, sửa, và xóa dữ liệu Hệ quản trị cơ

sở dữ liệu cung cấp cho người sử dụng ngôn ngữ thao tác dữ liệu như là một phương tiện giúp họ tương tác với cơ sở dữ liệu Do tính phổ biến của mình, ngôn ngữ này dành cho mọi đối tượng người sử dụng

1.6.3 Ngôn ngữ điều khiển dữ liệu

Ngoài hai loại ngôn ngữ dữ liệu nói trên, hệ quản trị cơ sở dữ liệu còn cung cấp cho người dùng ngôn ngữ điều khiển dữ liệu nhằm hỗ trợ họ thực hiện các khai báo bảo mật thông tin và cấp quyền hạn khai thác cơ sở dữ liệu cho những người

sử dụng khác trong hệ thống Ngôn ngữ này dành cho nhóm quản trị viên cơ sở dữ liệu và một số người dùng đặc biệt khác trong hệ thống

Trang 20

1.6.4 Các giao diện ngôn ngữ dữ liệu

Để thuận tiện cho người sử dụng thực hiện các tác vụ trên cơ sở dữ liệu, hệ quản

trị cơ sở dữ liệu cung cấp các giao diện thích hợp cho từng nhóm người sử dụng

cơ sở dữ liệu cũng như cho từng ngôn ngữ dữ liệu

Các loại giao diện được hệ quản trị cơ sở dữ liệu hỗ trợ hiện nay bao gồm:

 Giao diện trình đơn dùng cho web client hay trình duyệt: loại này thường

gồm các danh mục lựa chọn gọi là trình đơn nhằm hướng dẫn người dùng các bước tạo lập yêu cầu

 Giao diện form: để thêm dữ liệu vào, người dùng có thể điền đầy đủ thông

tin vào một form hướng dẫn Ngoài ra, họ còn có thể điền chỉ một vài thông tin vào form rồi yêu cầu hệ quản trị cơ sở dữ liệu thu thập những dữ liệu trùng khớp với các mục đã điền Các form thường xây dựng dành cho những dùng thông thường với các giao tác đã được tạo sẵn

 Giao diện người dùng đồ họa: hiển thị mỗi lược đồ cho người dùng dưới

dạng sơ đồ Người dùng sẽ đặc tả truy vấn bằng việc thao tác với các sơ đồ này Loại giao diện này thường bao gồm cả trình đơn và form

 Giao diện ngôn ngữ tự nhiên: loại này chấp nhận các yêu cầu bằng tiếng

Anh hay một ngôn ngữ khác Một giao diện ngôn ngữ tự nhiên thường có

“lược đồ” của riêng nó, tương tự như lược đồ ý niệm cơ sở dữ liệu, và một

từ điển các từ vựng chính

Giao diện này hoạt động bằng cách tham khảo các từ vựng trong lược đồ của nó cũng như trong từ điển để thông dịch các yêu cầu Nếu thông dịch thành công, giao diện này sẽ sinh một truy vấn cấp cao tương ứng và gửi

đến hệ quản trị cơ sở dữ liệu yêu cầu xử lý Ngược lại, giao diện sẽ phát

sinh một hộp thoại yêu cầu người dùng hiệu chỉnh yêu cầu

 Giao diện dành cho người dùng thông thường: những loại người dùng

thông thường như các giao dịch viên ngân hàng, thường chỉ có một số thao

Trang 21

mỗi nhóm người dùng này một loại giao diện đặc biệt bao gồm các câu lệnh tắt giúp họ giảm bớt thời gian mô tả những tác vụ thường xuyên sử dụng

 Giao diện dành cho quản trị cơ sở dữ liệu: hầu hết hệ quản trị cơ sở dữ liệu

đều chứa một số câu lệnh cần quyền truy cập đặc biệt mà chỉ có quản trị cơ

sở dữ liệu mới có quyền thực hiện Những câu lệnh này bao gồm việc tạo tài khoản, thiết lập các thông số hệ thống, gán thông tin tài khoản, chỉnh sửa lược đồ và tái tổ chức cấu trúc lưu trữ của cơ sở dữ liệu

là một phần mềm thực hiện chức năng hiện thực và duy trì cơ sở dữ liệu trên máy tính Bản thân cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu là hai thành phần cấu thành nên hệ thống hướng cơ sở dữ liệu Tiếp theo chúng ta tìm hiểu nhiệm vụ, quyền hạn cụ thể cho từng nhóm người sử dụng cơ sở dữ liệu để cuối cùng, chúng

ta nghiên cứu các ngôn ngữ dữ liệu và giao diện ngôn ngữ dữ liệu hỗ trợ người dùng tương tác với hệ quản trị cơ sở dữ liệu

Trang 22

C H Ư Ơ N G

2222

MÔ HÌNH THỰC THỂ KẾT HỢP

Mục tiêu

Chương này tập trung nghiên cứu một phương pháp dùng để xác định cấu trúc của

cơ sở dữ liệu Phương pháp này được xây dựng dựa trên mô hình thực thể kết hợp

Đây được xem như là nhiệm vụ quan trọng đầu tiên mà nhân viên thiết kế dữ liệu

phải thực hiện trong quy trình phát triển cơ sở dữ liệu cho hệ thống thông tin

Trang 23

Giới thiệu

Mô hình thực thể kết hợp từ khi được ra đời đã được xem như là nền tảng của các phương pháp phân tích và thiết kế hệ thống Nó được sử dụng rộng rãi trong các công cụ hỗ trợ công nghệ phần mềm (computer-aided software engineering, viết tắt là CASE), và trong các hệ thống cơ sở dữ liệu Mô hình này được xem là nền tảng của mô hình chu trình phát triển ứng dụng và phần mềm hệ quản trị cơ sở dữ liệu DB2 cùng của IBM

Mặc dù hiện nay, trong thiết kế cơ sở dữ liệu người ta thường ưu tiên sử dụng ngôn ngữ mô hình hóa hợp nhất (unified modelling language, viết tắt là UML), nhưng mô hình thực thể kết hợp tỏ ra thích hợp hơn đối với những người mới bắt

đầu nghiên cứu về cơ sở dữ liệu và tìm cách xây dựng cơ sở dữ liệu đầu tiên cho

bản thân mình

Chính vì lý do đó, chúng tôi chọn mô hình thực thể kết hợp làm đối tượng nghiên cứu trong giáo trình này nhằm tạo điều kiện thuận lợi để người đọc có thể dễ dàng tiếp cận và thực hiện thành thạo các thao tác đặc tả dữ liệu bằng ngôn ngữ mô hình hóa theo hướng thực thể kết hợp

Trang 24

2.1 MÔ HÌNH THỰC THỂ KẾT HỢP

Như chúng ta đã biết, hầu hết các ứng dụng công nghệ thông tin hiện nay đều cần

sử dụng đến cơ sở dữ liệu cho dù với những mục đích khác nhau Hai hệ thống phần mềm có cùng chức năng những được áp dụng tại hai tổ chức khác nhau thì không chỉ khác nhau về mặt tổ chức, mà còn có thể khác nhau về mặt dữ liệu Nói cách khác, cơ sở dữ liệu luôn phản ánh đúng thực trạng của tổ chức đang sử dụng

nó Làm thế nào để chúng ta có thể đạt được một cơ sở dữ liệu thể hiện nguyên vẹn tình trạng hiện tại của tổ chức và đáp ứng đầy đủ mọi nhu cầu về dữ liệu của người sử dụng? Chúng ta nhất thiết cần phải xây dựng bản thiết kế cơ sở dữ liệu cho tổ chức

Mô hình thực thể kết hợp (entity relationship model) được xây dựng dựa trên sự

đặc tả thế giới thực bao gồm một tập các đối tượng cơ sở có tên gọi là tập thực thể,

và một tập các liên kết giữa các đối tượng này với nhau Mô hình này còn được gọi là mô hình ý niệm hay là mô hình khái niệm vì nó được xây dựng chủ yếu trên nền tảng các khái niệm trong tổ chức, và thực tế, nó được dùng để biểu diễn cấu trúc tổng thể của tổ chức Mô hình thực thể kết hợp là một trong hai phương pháp thiết kế cơ sở dữ liệu phổ biến nhất hiện nay (phương pháp còn lại sử dụng ngôn ngữ mô hình hóa hợp nhất UML)

Mục đích của việc xây dựng mô hình thực thể kết hợp là cung cấp cho chúng ta một bức tranh tổng thể về kết cấu dữ liệu của hệ thống, mà không quan tâm đến việc sẽ hiện thực dữ liệu đó ra sao Như vậy, mô hình thực thể kết hợp sẽ giúp chúng ta trả lời câu hỏi trong cơ sở dữ liệu có những dữ liệu gì và chúng liên quan với nhau ra sao, chứ không cho biết làm sao để đạt được cơ sở dữ liệu đó

Trang 25

2.2 MỘT ỨNG DỤNG CỦA MÔ HÌNH THỰC THỂ

KẾT HỢP

Để thuận lợi cho người đọc, trong toàn bộ giáo trình này chúng tôi sử dụng duy

nhất một cơ sở dữ liệu để minh họa cho mọi ví dụ Cơ sở dữ liệu này xây dựng dựa trên nhu cầu thực tế của một công ty chuyên về công nghệ thông tin, cụ thể như sau:

 Công ty được tổ chức thành nhiều đơn vị với các thông tin bao gồm: tên

đơn vị, số hiệu đơn vị Mỗi đơn vị có thể có nhiều văn phòng đại diện tại

những địa điểm khác nhau Đơn vị được quản lý bởi một nhân viên giữ chức vụ trưởng đơn vị Hệ thống cũng yêu cầu phải duy trì thông tin về ngày ký quyết định bổ nhiệm cho từng trưởng đơn vị

 Mỗi đơn vị điều hành nhiều dự án Thông tin về dự án bao gồm: tên dự án,

số hiệu, và địa điểm thực hiện dự án

 Công ty duy trì thông tin về nhân viên bao gồm: họ và tên, mã số, mức lương, giới tính, ngày sinh và ngày ký hợp đồng làm việc với công ty Mỗi nhân viên thuộc biên chế một đơn vị nhưng có thể tham gia nhiều dự án khác nhau Các dự án này không nhất thiết phải do cùng một đơn vị quản

lý Công ty cũng theo dõi thời gian (tính bằng số giờ làm việc trong tuần) tham gia từng dự án của mỗi nhân viên Ngoài ra, mỗi nhân viên còn chịu

sự giám sát của một nhân viên khác

 Cuối cùng, công ty có chế độ bảo hiểm dành cho người thân của nhân viên Thông tin về người thân bao gồm tên, giới tính, ngày sinh và mối liên hệ với nhân viên

Do hầu hết các hệ quản trị cơ sở dữ liệu cũng như các công cụ phát triển phần mềm được xây dựng trên nền ngôn ngữ tiếng Anh, cho nên chúng ta cũng cần ánh

Trang 26

thấy trong cơ sở dữ liệu COMPANY có bốn nhóm đối tượng cơ sở (cùng các

thông tin đi kèm) được liệt kê sau đây:

Bên cạnh đó, sau khi phân tích bản đặc tả, chúng ta cũng phát hiện ra được các mối liên quan giữa các đối tượng cơ sở với nhau Chúng được này được trình bày theo tên theo sau là các đối tượng cơ sở Cụ thể như sau:

Trang 27

Tiếp theo, để làm quen với mô hình thực thể kết hợp, chúng ta tìm hiểu các thành phần cơ bản tạo nên mô hình này và các định nghĩa khác có liên quan tới việc thiết

kế mô hình thực thể kết hợp

2.3 CÁC KHÁI NIỆM

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

Đối tượng trung tâm của mô hình thực thể kết hợp chính là thực thể Thực thể là

những đối tượng dữ liệu cơ bản chứa nội dung các thông tin cần thu thập Do đó, thực thể có thể là một sự vật hoặc một hiện tượng tồn tại độc lập trong thế giới thực; nó cũng có thể là một đối tượng tồn tại dưới dạng vật lý (như là con người, cuốn sách, …) hoặc ở dạng ý niệm (như là công ty, lớp học, …)

Trang 28

trưng của thực thể là một thuộc tính của thực thể đó Khi xác định thuộc tính cho một kiểu thực thể, chúng ta cần phải lựa chọn miền giá trị cho thuộc tính đó Miền giá trị của một thuộc tính thực chất là tập hợp các giá trị mà thuộc tính đó có thể nhận được Miền giá trị có thể là tập các số nguyên, các số thực, các xâu ký tự, hoặc là tập liệt kê một số giá trị cụ thể Miền giá trị cũng có thể là một tích Decartes của nhiều tập giá trị khác nhau Tập thực thể là tập hợp các thực thể có cùng kiểu thực thể

VÍ DỤ 2.1: Miền giá trị của thuộc tính

Trong CSDL COMPANY trình bày ở trên, mỗi thực thể DEPARTMENT có ba

thuộc tính, lần lượt là DName, DNumber, và DLocation, trong khi mỗi thực thể

DEPENDENT có tới bốn thuộc tính, lần lượt là DName, DSex, DBirthdate, và

DRelationship Miền giá trị của DNumber có thể là tập các số nguyên, của DBirthdate là tập các giá trị ngày tháng, của DSex có thể là tập liệt kê gồm hai giá

trị {‘F’,’M’} ứng với hai giới tính Nữ và Nam

 Đối với mỗi thực thể chúng ta cần phải xác định giá trị cụ thể cho từng thuộc tính

của nó Các giá trị thuộc tính đó sau này sẽ là những thành phần dữ liệu được lưu trữ trong CSDL

VÍ DỤ 2.2: Giá trị của thực thể

Thực thể DEPARTMENT được mô tả trong ví dụ 2.1 có các giá trị lần lượt cho

các thuộc tính DName, DNumber, DLocation là ‘Phòng Phần mềm trong nước’, 1,

và {‘TP Hà Nội’, ‘TP Hồ Chí Minh’}



2.3.1.1 Thuộc tính đơn và thuộc tính tổ hợp

Trong mô hình thực thể kết hợp mỗi thuộc tính biểu diễn một đặc trưng riêng của

tập thực thể và mỗi thực thể có một giá trị tại từng thuộc tính này Thuộc tính tổ

Trang 29

được dùng như một thuộc tính đơn, tuy nhiên, trong nhiều trường hợp chúng ta lại

quan hệ tới từng thành phần riêng lẻ của nó

VÍ DỤ 2.3: Thuộc tính đơn và thuộc tính tổ hợp

Trong tập thực thể EMPLOYEE, thuộc tính ESSN là một thuộc tính đơn, vì

chúng ta không thể phân rã thuộc tính này thành nhiều thuộc tính khác Trong khi

đó, chúng ta có thể xem thuộc tính EName (họ tên nhân viên) là thuộc tính tổ hợp,

nó có thể được phân rã thành hai thuộc tính đơn khác là EFName, ELName với ý

nghĩa lần lượt là họ và tên nhân viên



2.3.1.2 Thuộc tính đơn trị và đa trị

Một thực thể tại mỗi thuộc tính có một giá trị tương ứng Trong nhiều trường hợp,

giá trị này là một giá trị đơn, và chúng ta gọi là thuộc tính đơn trị Tuy nhiên, cũng

có trường hợp, giá trị của một thuộc tính không phải là giá trị đơn, mà là một tập

hợp của nhiều giá trị đơn Khi đó, thuộc tính được gọi là đa trị Mỗi thuộc tính đa

trị có thể có giới hạn trên và giới hạn dưới để ràng buộc số giá trị tối đa và tối thiểu của thuộc tính đó trong từng thực thể

VÍ DỤ 2.4: Thuộc tính đơn trị và thuộc tính đa trị

Trong tập thực thể DEPARTMENT, thuộc tính DNAME là thuộc tính đơn trị,

trong khi thuộc tính DLocation lại là thuộc tính đa trị, nó cho biết các địa điểm mà

thực thể đang xét có văn phòng đại diện Trong trường hợp chúng ta chỉ cho phép một đơn vị có tối đa 5 văn phòng đại diện, giới hạn trên của thuộc tính này là 5



2.3.1.3 Thuộc tính lưu trữ và thuộc tính dẫn xuất

Như đã trình bày ở trên, thuộc tính cho biết đặc trưng của thực thể, giá trị của thuộc tính dùng để phân biệt các thực thể với nhau, và được lưu trữ trong cơ sở dữ

Trang 30

được là do kết quả của phép tính toán dựa trên các thuộc tính khác Đôi khi, người

ta còn gọi thuộc tính lưu trữ là thuộc tính độc lập còn thuộc tính dẫn xuất là thuộc tính phụ thuộc

VÍ DỤ 2.5: Thuộc tính lưu trữ và thuộc tính dẫn xuất

Giả sử tập thực thể EMPLOYEE được mở rộng bằng một thuộc tính EAge với ý

nghĩa biểu diễn độ tuổi hiện tại của nhân viên Rõ ràng, giá trị của thuộc tính này

có thể được tính từ giá trị của thuộc tính EBirthdate tương ứng Do đó, thuộc tính

EAge gọi là thuộc tính dẫn xuất Thuộc tính EBirthdate không phụ thuộc vào bất

kỳ thuộc tính nào khác nên gọi là thuộc tính lưu trữ



2.3.1.4 Giá trị null

Nói đến một thực thể cụ thể, tức là chúng ta nói đến giá trị tại các thuộc tính của thực thể đó Tuy nhiên, với một số thuộc tính của thực thể, chúng ta có thể không biết giá trị của chúng có tồn tại hay không, hoặc nếu tồn tại thì không biết cụ thể là

gì, hay không thể sử dụng các giá trị đó ở thời điểm hiện tại, … Khi đó, chúng ta

có thể sử dụng một giá trị đặc biệt, đó là giá trị null với nhiều cách diễn giải khác nhau: giá trị không biết, giá trị tồn tại nhưng không xác định, hoặc thuộc tính

tương ứng không áp dụng cho thực thể đang xem xét

VÍ DỤ 2.6: Giá trị NULL

Giả sử một thực thể EMPLOYEE có giá trị null tại thuộc tính EBirthdate Điều

này chỉ có thể được giải thích là do chúng ta không biết thông tin về ngày sinh của nhân viên đó



2.3.1.5 Tập thực thể

Trong mô hình thực thể kết hợp, chúng ta không biểu diễn các thực thể riêng lẻ

Có nghĩa là, giả sử chúng ta có 5 thực thể phân biệt có cùng các thuộc tính là

Trang 31

đó trên mô hình Thay vào đó, chúng ta chỉ cần biểu diễn một khái niệm đại diện

cho cả 5 thực thể giống nhau đó Khái niệm này được gọi là tập thực thể

DEPARTMENT Tập thực thể được định nghĩa như là một nhóm các thực thể có

các thuộc tính giống nhau Để biểu diễn tập thực thể, chúng ta cần cung cấp tên gọi (duy nhất) và danh sách các thuộc tính của tập thực thể đó

VÍ DỤ 2.7: Tập thực thể trong cơ sở dữ liệu COMPANY

Như vậy trong COMPANY ứng với mỗi nhóm đối tượng cơ sở chúng ta có một

tập thực thể cùng tên kèm theo các thuộc tính của chúng Ví dụ như tập thực thể

DEPARTMENT có các thuộc tính DName, DNumber, và DLocation Tương tự

như thế đối với các tập thực thể EMPLOYEE, PROJECT, và DEPENDENT



Để biểu diễn tập thực thể và các thuộc tính kèm theo trên mô hình thực thể kết hợp

chúng ta sử dụng hai loại hình vẽ là hình chữ nhật và hình elip Hình 2.8 sau đây

sẽ cho chúng ta hình ảnh về mô hình thực thể kết hợp đối với ứng dụng mẫu được trình bày trong mục 2.2

Hình 2.1 Biểu diễn các tập thực thể trong CSDL COMPANY

2.3.1.6 Thuộc tính khóa

Trang 32

đó, hai thực thể trong một tập thực thể cũng không thể giống nhau Mỗi thực thể được phân biệt bởi một bộ giá trị ứng với các thuộc tính của nó Vì thế, hai thực

thể trong một tập thực thể phải có ít nhất một giá trị khác nhau trong hai bộ giá trị tương ứng của chúng Nói cách khác, hai thực thể này phải khác nhau ở tại ít nhất một thuộc tính (gọi là thuộc tính phân biệt)

Nếu trong tập thực thể có một thuộc tính có khả năng phân biệt tất cả các thực thể

trong tập thực thể đó, thì thuộc tính đó được gọi là khóa của tập thực thể Tuy

nhiên, không phải lúc nào trong tập thực thể cũng tồn tại một thuộc tính như thế Khi đó, chúng ta phải tìm kiếm một tập hợp gồm nhiều thuộc tính có khả năng

phân biệt hai thực thể bất kỳ, và cũng gọi chúng là khóa của tập thực thể

Một cách khái quát, trong một tập thực thể, luôn tồn tại một tập hợp gồm ít nhất một thuộc tính có khả năng phân biệt hai thực thể bất kỳ trong tập thực thể đó Tập

hợp các thuộc tính này được gọi là khóa của tập thực thể đang xét

VÍ DỤ 2.8: Thuộc tính khóa của tập thực thể

Trong tập thực thể EMPLOYEE, không có hai thực thể nào có thể có giá trị giống

nhau tại thuộc tính ESSN Do đó, {ESSN} là khóa của EMPLOYEE Nếu chúng

ta giả định rằng, tại một địa điểm không thể có hai dự án cùng tên, thì {PName,

PLocation} là một khóa của tập thực thể PROJECT



Một tập thực thể có thể có nhiều khóa, các khóa này không nhất thiết có số thuộc tính giống nhau, thậm chí, một thuộc tính cũng có thể xuất hiện trong nhiều khóa Chúng ta chọn một trong số các khóa của tập thực thể, thường là khóa có ít thuộc tính nhất, làm khóa chính, những khóa còn lại được gọi là khóa phụ Chú ý rằng, trong trường hợp khóa có một thuộc tính, chúng ta chỉ cần ghi tên thuộc tính mà

bỏ qua ký hiệu tập hợp đi kèm

Trang 33

VÍ DỤ 2.9: Khóa chính và khóa phụ của tập thực thể

Trong tập thực thể PROJECT, với giả định như trong ví dụ 2.8, tập các thuộc tính

{PName, PLocation} là một khóa Ngoài ra, trong tập thực thể này, không thể có hai thực thể có giá trị bằng nhau tại thuộc tính PNumber, PNumber là một khóa

khác của PROJECT Chúng ta chọn PNumber là khóa chính, trong khi {PName,

PLocation} là khóa phụ của tập thực thể PROJECT

về mặt ý nghĩa của các dữ liệu, mà cụ thể là mối liên quan giữa các tập thực thể? Các liên kết được sử dụng để thực hiện nhiệm vụ đó

Theo đó, một liên kết là một sự kết hợp giữa một số thực thể Các thực thể này có thể thuộc các tập thực thể khác nhau, hoặc thuộc cùng một tập thực thể Một kiểu liên kết giữa các tập thực thể được định nghĩa như là tập hợp các liên kết giữa các thực thể thuộc các tập thực thể nói trên

Xét theo quan điểm toán học, kiểu liên kết R giữa các tập thực thể E 1 , E 2 , …, E n

thực chất là một quan hệ toán học trên E 1 , E 2 , …, E n và được ký hiệu là

RE 1×E 2×…×E n Trong đó, mỗi liên kết r i R kết hợp n thực thể e 1 , e 2 , …, e n với

nhau (e i E i ) và được gọi là một thể hiện của kiểu liên kết R Vì kiểu liên kết R có

sự tham gia của n tập thực thể, nên R còn gọi là liên kết bậc n Nói cách khác, bậc

của kiểu liên kết chính là số tập thực thể tham gia trong liên kết đó

Trang 34

VÍ DỤ 2.10: Liên kết hai ngôi

Trong COMPANY ứng với mỗi mối liên quan giữa các đối tượng cơ sở chúng ta

tạo một kiểu liên kết cùng tên kèm theo các tập thực thể tham gia trong kiểu liên

kết đó Ví dụ, chúng ta có kiểu liên kết MANAGES giữa hai tập thực thể

DEPARTMENT và EMPLOYEE Đây là kiểu liên kết bậc hai (còn gọi là hai

ngôi) do có hai tập thực thể tham gia trong liên kết



2.3.2.2 Phân loại

Để đảm bảo mối liên hệ về mặt ngữ nghĩa của các kiểu thực thể, chúng ta cần phải

chọn lựa kiểu liên kết cũng như các kiểu thực thể tham gia trong các kiểu liên kết

đó Người ta tiến hành phân loại các kiểu liên kết chủ yếu dựa trên số lượng các

tập thực thể tham gia trong một liên kết: liên kết bậc 2 (liên kết hai ngôi) và liên kết bậc cao (từ 3 trở lên) Thực tế liên kết bậc 2 là loại liên kết phổ biến nhất, trong khi một liên kết bậc cao có thể được phân tách thành nhiều liên kết bậc 2 mà vẫn đảm bảo đầy đủ ý nghĩa của liên kết Ví dụ sau đây sẽ cho chúng ta thấy cách thức chuyển đổi một liên kết bậc 3 thành 3 liên kết bậc 2

VÍ DỤ 2.11: Phân rã liên kết nhiều ngôi thành nhiều liên kết hai ngôi

Giả sử trong COMPANY chúng ta định nghĩa thêm tập thực thể REPORT nhằm

mục đích thể hiện các báo cáo mà mỗi nhân viên đã thực hiện theo định kỳ cho

từng dự án mà họ tham gia Rõ ràng trong trường hợp này, kiểu liên kết WORKS

ON có sự tham gia của ba tập thực thể là EMPLOYEE, PROJECT, và

REPORT Chúng ta có thể phân tách kiểu liên kết 3 ngôi này thành các kiểu liên

kết 2 ngôi bằng cách thay thế kiểu liên kết WORKS ON bằng tập thực thể

WORKS ON, sau đó, tạo 3 liên kết 2 ngôi giữa WORKS ON với lần lượt EMPLOYEE, PROJECT, và REPORT

Trang 35

Hình 2.2 Biến đổi liên kết ba ngôi thành các liên kết hai ngôi

a) Liên kết một – một là dạng liên kết đơn giản nhất của kiểu liên kết hai ngôi

Nó diễn tả mối quan hệ giữa một thực thể trong tập thực thể này với nhiều nhất một thực thể trong tập thực thể kia và ngược lại

VÍ DỤ 2.12: Biểu diễn liên kết một – một

Trong COMPANY kiểu liên kết MANAGES là kiểu liên kết một – một nếu chúng

ta có giả định như sau: tại mỗi thời điểm một đơn vị có duy nhất một trưởng đơn vị; ngược lại, mỗi nhân viên có thể là trưởng của (nhiều nhất) một đơn vị nào đó

mà thôi

Trang 36

b) Liên kết một – nhiều là loại liên kết mà trong đó một thực thể trong tập thực

thể E 2 được kết hợp với nhiều thực thể trong tập thực thể E 1, nhưng mỗi thực

thể trong tập thực thể E 1 chỉ kết hợp với nhiều nhất một thực thể trong tập thực

thể E 2 Loại liên kết này được gọi là liên kết nhiều – một từ E 1 đến E 2

VÍ DỤ 2.13: Biểu diễn liên kết một – nhiều

Trong COMPANY kiểu liên kết WORKS FOR là kiểu liên kết nhiều – một từ

EMPLOYEE đến DEPARTMENT với ý nghĩa một đơn vị quản lý nhiều nhân

viên, một nhân viên thuộc biên chế của nhiều nhất một đơn vị

Hình 2.4 Biểu diễn liên kết một – nhiều trong CSDL COMPANY



c) Liên kết nhiều – nhiều là loại liên kết mà trong đó không có sự giới hạn về số

lượng thực thể trong mỗi tập thực thể tham gia Nói cách khác, với kiểu liên

kết nhiều – nhiều giữa hai tập thực thể E 1 và E 2, chúng ta có thể hiểu là mỗi

thực thể trong tập thực thể E 1 có thể kết hợp với nhiều thực thể trong tập thực

thể E 2 và ngược lại

VÍ DỤ 2.14: Biểu diễn liên kết nhiều – nhiều

Trong COMPANY kiểu liên kết WORKS ON là kiểu liên kết nhiều – nhiều giữa

EMPLOYEE và PROJECT với ý nghĩa một nhân viên có thể tham gia nhiều dự

án, và ngược lại, một dự án có nhiều nhân viên cùng tham gia

Trang 37

2.3.2.3 Thuộc tính của liên kết và vai trò của tập thực thể trong liên kết

Khi thể hiện kiểu liên kết trong mô hình thực thể kết hợp, để người đọc có thể hiểu chính xác về nhiệm vụ của từng tập thực thể trong liên kết chúng ta xác định vai trò của từng tập thực thể tham gia trong liên kết đó

VÍ DỤ 2.15: Vai trò của thực thể trong liên kết

Xét kiểu liên SUPERVISES giữa hai thực thể cùng thuộc tập thực thể

EMPLOYEE Để thể hiện rõ vai trò của từng thực thể trong liên kết (nhân viên

nào là quản lý trực tiếp cho nhân viên kia), chúng ta cần thể hiện rõ vai trò của chúng ngay trên liên kết này Cụ thể như sau:

Hình 2.6 Biểu diễn vai trò của tập thực thể trong liên kết

Rõ ràng, với vai trò supervisor, một nhân viên là lãnh đạo trực trực tiếp của không hoặc nhiều nhân viên khác Ngược lại, với vai trò supervisee, một nhân viên chịu

sự quản lý của nhiều nhất một nhân viên khác



Trong mô hình thực thể kết hợp, thuộc tính không chỉ được dùng để thể hiện đặc trưng của tập thực thể, mà nó còn được dùng để bổ sung thông tin cho kiểu liên kết Trong trường hợp sau, thuộc tính được gọi là thuộc tính của kiểu liên kết, thuộc tính gắn với liên kết Ví dụ 2.16 sẽ cho chúng ta biết tại sao phải sử dụng thuộc tính của kiểu liên kết mà không phải là thuộc tính của tập thực thể

VÍ DỤ 2.16: Thuộc tính của liên kết

Trong COMPANY kiểu liên kết WORKS ON cho chúng ta biết mỗi nhân viên

tham gia nhiều dự án, và ngược lại, một dự án có nhiều nhân viên tham gia Tuy nhiên, nhu cầu thông tin về tham gia các dự án của nhân viên không chỉ có thế

Trang 38

thuộc tính này gắn liền với tập thực thể nào, EMPLOYEE hay PROJECT? Nếu

đây là thuộc tính của EMPLOYEE, nghĩa là mỗi nhân viên có một giá trị duy

nhất tại thuộc tính Hours Phải chăng mọi nhân viên đều tham gia các dự án với số giờ lao động bằng nhau và bằng chính giá trị tại thuộc tính Hours? Điều này là

không thực tế Tương tự, nếu Hours là thuộc tính của PROJECT, chẳng lẽ mọi

nhân viên tham gia một dự án đều có số giờ lao động bằng nhau và bằng chính giá

trị tại thuộc tính Hours của dự án đó? Điều này cũng phi lý Như vậy, thuộc tính

Hours không là thuộc tính của EMPLOYEE, mà cũng không là thuộc tính của

PROJECT Nó là thuộc tính của kiểu liên kết WORKS ON, nó bổ sung thông tin

cho liên kết này với đúng ý nghĩa của liên kết này: mỗi liên kết trong kiểu liên kết

WORKS ON cho biết sự kết hợp giữa một nhân viên và một dự án

Hình 2.7 Biểu diễn thuộc tính của liên kết WOKRSON trong CSDL COMPANY



2.3.3 Tập thực thể yếu

Trong quá trình định danh các tập thực thể và các kiểu liên kết giữa các tập thực

thể, chúng ta nhận thấy có trường hợp tập thực thể E 1 phụ thuộc chặt chẽ vào tập

thực thể E 2 thông qua kiểu liên kết R Sự phụ thuộc này có thể được diễn tả như sau: mỗi thực thể e 2 trong E 2 kết hợp với nhiều thực thể e 1 trong E 1 theo các liên

kết r trong R Khi thực thể e 2 bị xóa ra khỏi E 2 , tất cả các thực thể e 1 và các liên

kết r nói trên đều lần lượt bị xóa ra khỏi E 1 và R mà không có bất kỳ sự lựa chọn nào khác Khi đó, người ta gọi E 1 là tập thực thể yếu, R là kiểu liên kết hỗ trợ, và

E 2 là tập thực thể hỗ trợ Ví dụ sau đây minh họa chi tiết một tập thực thể yếu

trong COMPANY

Trang 39

VÍ DỤ 2.17: Tập thực thể yếu

Trong COMPANY, tập thực thể DEPENDENT cho biết thông tin về người thân

của mỗi nhân viên thông qua kiểu liên kết BELONG TO Rõ ràng, mỗi nhân viên

có nhiều người thân, ngược lại, mỗi người thân chỉ có quan hệ gia đình với một

nhân viên nào đó Giả sử một nhân viên tên An có hai người thân tên gọi lần lượt

là Bình và Lành Điều gì xảy ra với hai thực thể ứng với hai người thân tên Bình

và Lành nếu thực thể ứng với nhân viên tên An bị xóa khỏi tập thực thể

EMPLOYEE? Rõ ràng, lúc này người tên An không còn là nhân viên của công ty,

và như vậy, không có lý do gì để công ty duy trì thông tin về những người thân

của anh ta Kết quả, hai thực thể ứng với hai người thân tên Bình và Lành bị xóa ra

khỏi tập thực thể DEPENDENT Chính vì sự phụ thuộc chặt chẽ này, cho nên tập

thực thể DEPENDENT được gọi là tập thực thể yếu, còn HAS và EMPLOYEE

có tên gọi lần lượt là kiểu liên kết hỗ trợ, và tập thực thể hỗ trợ

Hình 2.8 Biểu diễn tập thực thể yếu DEPENDENT trong CSDL COMPANY



Như vậy, tập thực thể E 1 được gọi là yếu khi nó phụ thuộc vào tập thực thể E 2

thông qua một kiểu liên kết hỗ trợ có tên là R Các điều kiện sau đây xác định E 1

tập thực thể yếu và R là kiểu liên kết hỗ trợ:

 Kiểu liên kết R là loại liên kết hai ngôi nhiều – một từ E 1 đến E 2

 Tập thực thể E 1 không có khóa, nó phải nhận khóa từ tập thực thể E 2 về làm khóa cho nó

Trang 40

VÍ DỤ 2.18: Khóa của tập thực thể yếu

Tập thực thể DEPENDENT không có khóa, do đó nó phải nhận khóa từ tập thực

thể EMPLOYEE về làm khóa Như vậy, khóa của DEPENDENT là {ESSN,

DName}



2.4 CÁC VẤN ĐỀ KHI THIẾT KẾ MÔ HÌNH THỰC

THỂ KẾT HỢP

2.4.1 Các ký hiệu sử dụng trong mô hình thực thể kết hợp

Khi thiết kế mô hình thực thể kết hợp, chúng ta chú trọng biểu diễn cấu trúc của

dữ liệu thông qua các tập thực thể, các thuộc tính, các kiểu liên kết hơn là biểu diễn những thể hiện cụ thể của dữ liệu Sở dĩ chúng ta làm như thế là bởi vì cấu trúc dữ liệu sau khi đã được cài đặt thành cơ sở dữ liệu và đưa vào sử dụng thì rất

ít bị thay đổi Những sự thay đổi liên quan đến cấu trúc của cơ sở dữ liệu thường rất tốn kém cả về thời gian lẫn chi phí

Bảng 2.1 tóm tắt lại toàn bộ ký hiệu được sử dụng trong mô hình thực thể kết hợp

và ý nghĩa của chúng

2.4.2 Quy tắc đặt tên trong mô hình thực thể kết hợp

Trong quá trình thiết kế cơ sở dữ liệu nói chung và mô hình thực thể kết hợp nói riêng, việc xác định tên gọi cho các tập thực thể, thuộc tính, kiểu liên kết và các vai trò không phải lúc nào cũng thuận lợi Bản thiết kế của chúng ta phải vừa rõ ràng, mạch lạc, đầy đủ ý nghĩa vì không phải chỉ chúng ta, những người thiết kế,

sử dụng nó, mà còn nhiều nhóm người dùng khác cũng có nhu cầu tham khảo nó Chúng ta có xu hướng đặt tên cho các thành phần trong mô hình thực thể kết hợp bằng các từ ngữ có ý nghĩa, càng đơn giản càng tốt Chúng ta nên chọn tên tập thực thể là các danh từ số ít, bởi vì tên tập thực thể thường áp dụng cho từng thực

Ngày đăng: 03/12/2015, 00:17

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 1.3. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu (Trang 15)
Hình 3.6. Lưới phân cấp đối với tập thực thể EMPLOYEE - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 3.6. Lưới phân cấp đối với tập thực thể EMPLOYEE (Trang 57)
Hình 3.7. Lược đồ UML ứng với mô hình thực thể kết hợp của - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 3.7. Lược đồ UML ứng với mô hình thực thể kết hợp của (Trang 60)
Hình 3.8. Lược đồ UML ứng với cây phân cấp được trình bày trong ví dụ 3.8 - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 3.8. Lược đồ UML ứng với cây phân cấp được trình bày trong ví dụ 3.8 (Trang 60)
Hình 4.2. Lược đồ cơ sở dữ liệu COMPANY - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 4.2. Lược đồ cơ sở dữ liệu COMPANY (Trang 67)
Hình 4.4. Hai thể hiện của quan hệ EMPLOYEE - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 4.4. Hai thể hiện của quan hệ EMPLOYEE (Trang 69)
Hình 5.11. Sử dụng kết hợp phép chọn, phép chiếu sau phép nhân chéo. - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 5.11. Sử dụng kết hợp phép chọn, phép chiếu sau phép nhân chéo (Trang 91)
Hình 6.1. Các tập thực thể trong ví dụ mẫu - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.1. Các tập thực thể trong ví dụ mẫu (Trang 120)
Hình 6.3. Mô hình thực thể kết hợp của ví dụ mẫu - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.3. Mô hình thực thể kết hợp của ví dụ mẫu (Trang 121)
Hình 6.4. Tinh chỉnh mô hình ở bước 3 với một số yêu cầu bổ sung - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.4. Tinh chỉnh mô hình ở bước 3 với một số yêu cầu bổ sung (Trang 122)
Hình 6.6. Ánh xạ kiểu liên kết hai ngôi một – một sang quan hệ. - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.6. Ánh xạ kiểu liên kết hai ngôi một – một sang quan hệ (Trang 126)
Hình 6.7. Ánh xạ kiểu liên kết hai ngôi một – nhiều sang quan hệ - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.7. Ánh xạ kiểu liên kết hai ngôi một – nhiều sang quan hệ (Trang 128)
Hình 6.13. Lớp con chung KEY_MAN trong mối liên hệ đa thừa kế. - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.13. Lớp con chung KEY_MAN trong mối liên hệ đa thừa kế (Trang 137)
Hình 6.15. Lược đồ cơ sở dữ liệu COMPANY ứng với mô hình ở hình 6.4. - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 6.15. Lược đồ cơ sở dữ liệu COMPANY ứng với mô hình ở hình 6.4 (Trang 138)
Hình 8.3. Một thể hiện của quan hệ WORKSON1 - Giáo trình cơ sở dữ liệu   trịnh hoàng nam
Hình 8.3. Một thể hiện của quan hệ WORKSON1 (Trang 188)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w