1. Trang chủ
  2. » Giáo án - Bài giảng

TÀI LIỆU DẠY HỌC CƠ SỞ DỮ LIỆU

188 38 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 188
Dung lượng 2,27 MB

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

Nội dung

• Sự cô lập của dữ liệu: dữ liệu nằm trong nhiều tệp và các tệp có thể có định dạng khác nhau Ví dụ, dữ liệu ở khoa đào tạo lưu ở tệp Microsoft Word, trong khi dữ liệu ở phòng quản lí s

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 5

DANH MỤC CÁC TỪ VIẾT TẮT 7

MỤC LỤC 8

CHƯƠNG 1 ĐẠI CƯƠNG VỀ CƠ SỞ DỮ LIỆU 9

1.1 C ÁC KHÁI NIỆM CƠ BẢN 9

1.1.1 Cơ sở dữ liệu 10

1.1.2 Hệ quản trị CSDL 12

1.1.3 Kiến trúc ba mức của một hệ CSDL 13

1.1.4 Vai trò của con người trong hệ CSDL 16

1.1.5 Phân loại hệ CSDL 17

1.2 C ÁC MÔ HÌNH DỮ LIỆU 21

1.2.1 Khái niệm 21

1.2.2 Các mô hình dữ liệu cơ bản 21

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

1.3.1 Các thành phần 26

1.3.2 Xây dựng mô hình thực thể liên kết 30

CÂU HỎI ÔN TẬP CHƯƠNG 1 34

BÀI TẬP CHƯƠNG 1 35

CƠ SỞ DỮ LIỆU MẪU 38

CHƯƠNG 2 MÔ HÌNH DỮ LIỆU QUAN HỆ 40

2.1 C ÁC KHÁI NIỆM CƠ BẢN 40

2.1.1 Thuộc tính 40

2.1.2 Tích Descartes 42

2.1.3 Quan hệ và các tích chất của quan hệ 42

2.1.4 Lược đồ quan hệ (Relation Schema) 44

2.1.5 Lược đồ CSDL quan hệ 45

2.1.6 Thể hiện của quan hệ (Occurrence of a Relation) 45

2.2 K HOÁ CỦA LƯỢC ĐỒ QUAN HỆ 46

2.2.1 Định nghĩa khoá 46

2.2.2 Siêu khoá 48

48

2.2.3 Khoá ngoài (Foreign Key) 48

2.3 C ÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ 48

2.3.1 Các phép toán tập hợp trên quan hệ 49

2.3.2 Các thao tác cơ sở trên các quan hệ 53

2.3.3 Các phép toán khác 56

2.4 C ÁC PHÉP TOÁN TRÊN CSDL QUAN HỆ 60

2.4.1 Phép chèn (Insert) 61

Trang 2

2.4.2 Phép xóa (Delete) 62

2.4.3 Phép cập nhật (Update) 63

TÓM TẮT CUỐI CHƯƠNG 2 65

CÂU HỎI ÔN TẬP CHƯƠNG 2 66

BÀI TẬP CHƯƠNG 2 67

CHƯƠNG 3 NGÔN NGỮ SQL 75

3.1 G IỚI THIỆU SQL 75

3.1.1 Lịch sử ra đời và phát triển 75

3.1.2 Các lệnh của ngôn ngữ SQL 76

3.1.3 Các kiểu dữ liệu 77

3.1.4 Các loại ràng buộc dữ liệu 77

3.1.5 Quy tắc viết câu lệnh trong SQL 82

3.2 C ÁC LỆNH VỚI BẢNG VÀ TỆP CHỈ SỐ 83

3.2.1 Các lệnh với bảng 83

3.2.2 Các lệnh đối với tệp chỉ mục 88

3.3 C ÁC THAO TÁC DỮ LIỆU TRONG SQL 90

3.3.1 Tìm kiếm với câu lệnh đơn giản 91

3.3.2 Tìm kiếm với câu lệnh nâng cao 95

3.3.3 Các hàm thư viện 100

3.3.4 Các lệnh sửa đổi, bổ sung, loại bỏ dữ liệu 102

3.3.5 Các phép toán tập hợp trong SQL 105

TÓM TẮT CUỐI CHƯƠNG 3 108

CÂU HỎI ÔN TẬP CHƯƠNG 3 109

BÀI TẬP CHƯƠNG 3 110

CHƯƠNG 4 THIẾT KẾ CƠ SỞ DỮ LIỆU 114

4.1 T ỔNG QUAN VỀ THIẾT KẾ CSDL 114

4.1.1 Quá trình thiết kế CSDL 114

4.1.2 Dị thường (khuyết tật) dữ liệu 115

4.1.3 Quy ước về ký hiệu 116

4.2 P HỤ THUỘC HÀM 117

4.2.1 Một số khái niệm 117

4.2.2 Hệ tiên đề Armstrong 119

4.2.4 Bao đóng 121

4.2.5 Tính tương đương của các tập pth 123

4.2.6 Phủ cực tiểu 124

4.2.7 Khoá của lược đồ quan hệ 127

4.2.8 Phép tách trên lược đồ quan hệ 131

4.4 C HUẨN HOÁ LƯỢC ĐỒ QUAN HỆ 133

4.4.1 Một số định nghĩa 135

4.4.2 Các dạng chuẩn 136

Trang 3

4.4.3 Chuẩn hoá một lược đồ quan hệ 140

TÓM TẮT CUỐI CHƯƠNG 4 142

CÂU HỎI ÔN TẬP CHƯƠNG 4 143

BÀI TẬP CHƯƠNG 4 144

CHƯƠNG 5 146

CÁC VẤN ĐỀ VỀ AN TOÀN VÀ TOÀN VẸN DỮ LIỆU 146

5.1 S Ự CẦN THIẾT PHẢI BẢO VỆ AN TOÀN CSDL 146

5.2 T ÍNH TOÀN VẸN DỮ LIỆU 147

5.3 R ÀNG BUỘC TOÀN VẸN (RBTV) 147

5.3.1 Khái niệm 147

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

5.3.3 Phân loại RBTV 152

5.3.4 Biểu diễn RBTV bằng phụ thuộc hàm 155

5.4 A N TOÀN DỮ LIỆU 158

5.4.1 Khái niệm 158

5.4.2 Các lệnh về an toàn dữ liệu trong SQL 159

Cấp phát quyền cho người dùng trên các đối tượng CSDL 160

Thu hồi quyền trên đối tượng CSDL 164

Thu hồi quyền thực thi các câu lệnh 165

TÓM TẮT CUỐI CHƯƠNG 5 167

CÂU HỎI ÔN TẬP CHƯƠNG 5 168

BÀI TẬP CHƯƠNG 5 169

CHƯƠNG 6 TỐI ƯU HÓA TRUY VẤN 172

6.1 T ỔNG QUAN CHUNG VỀ TỐI ƯU HOÁ 172

6.2 C ÁC CHIẾN LƯỢC TỐI ƯU 173

6.2.1 Thực hiện phép chọn /phép chiếu càng sớm càng tốt 174

6.2.2 Nhóm các phép chọn và phép chiếu của cùng quan hệ thành một phép toán 174

6.2.3 Tổ hợp các phép chọn xác định với phép tích Đề các thành phép kết nối 174

6.2.4 Tìm các biểu thức con chung trong một biểu thức 174

6.2.5 Xử lí các quan hệ trước khi thực hiện lệnh 174

6.2.6 Đánh giá các chi phí trước khi thực hiện các phép tính 175

6.3 C ÁC BIỂU THỨC TƯƠNG ĐƯƠNG 175

6.3.1 Khái niệm 175

6.3.2 Các biểu thức tương đương 175

6.3.3 Ví dụ về thuật toán tối ưu hoá biểu thức quan hệ 178

6.4 T HUẬT TOÁN 182

TÓM TẮT CUỐI CHƯƠNG 6 185

CÂU HỎI ÔN TẬP CHƯƠNG 6 186

BÀI TẬP CHƯƠNG 6 187

Trang 4

TÀI LIỆU THAM KHẢO 188

Trang 5

LỜI NÓI ĐẦU

Cơ sở dữ liệu (CSDL) (Tiếng Anh là database) là thuật ngữ quen thuộc và là một lĩnh vực được quan tâm đặc biệt không chỉ riêng với những người làm công nghệ thông tin mà còn đối với cả những người làm trong nhiều lĩnh vực khác như thống kê, quản lý doanh nghiệp Các ứng dụng công nghệ thông tin vào công tác quản lý ngày càng nhiều hơn và đa dạng hơn Có thể nói hầu hết các lĩnh vực kinh tế, xã hội, giáo dục, y tế, đều đã ứng dụng các thành tựu mới của công nghệ thông tin vào phục vụ công tác chuyên môn của mình Chính vì vậy, hiểu đúng về CSDL, từ đó thiết kế, tổ chức và xây dựng tốt các CSDL là vấn đề ngày càng nhận được nhiều sự quan tâm Cũng bởi vì lý do đó, Cơ sở dữ liệu là một học phần bắt buộc mang tính chất kinh điển của ngành Công nghệ thông tin nói riêng và nhiều ngành học khoa học kỹ thuật nói chung

Tài liệu tham khảo “Cơ sở dữ liệu” này được xây dựng nhằm đáp ứng nhu cầu học tập và nghiên cứu của sinh viên ngành Công nghệ thông tin, trường Đại học Hồng Đức Tài liệu này được biên soạn dựa trên kinh nghiệm giảng dạy học phần của nhóm tác giả và kế thừa từ các sách và giáo trình:

1 Hồ Thuần, Hồ Cẩm Hà, Các hệ CSDL: Lý thuyết và thực hành (Tập 1, 2), NXB Giáo dục, 2005

2 Jeffrey D Ullman, Biên dịch: Trần Đức Quang, Nguyên lý các hệ CSDL và

cơ sở tri thức, Tập 1, 2, 3, NXB Thống kê, 2002

3 Trịnh Minh Tuấn, Giáo trình thiết kế CSDL, NXB ĐH Quốc gia TP HCM,

2007

4 Lê Tiến Vương, Nhập môn CSDL quan hệ, NXB Khoa học & Kỹ thuật, 2000 Nội dung của tài liệu này bao gồm 6 chương, cung cấp cho người đọc các kiến thức cơ bản về cơ sở dữ liệu (CSDL) như: các định nghĩa về CSDL, mô hình dữ liệu, các hệ quản trị CSDL tương ứng, các ngôn ngữ của hệ quản trị CSDL ; Tài liệu cũng cung cấp cho người đọc các kiến thức về phép toán đại số quan hệ, và các thao tác trên quan hệ bằng ngôn ngữ đại số quan hệ và ngôn ngữ SQL Tài liệu cũng trình bày các phương pháp tổ chức lưu trữ và tìm kiếm, xử lí dữ liệu và tối ưu hoá truy vấn, các vấn đề cơ bản, các thuật toán và các kỹ năng cần thiết để thiết kế được CSDL đúng chuẩn, tối ưu và phù hợp với bài toán cần giải quyết

Trong mỗi phần của tài liệu, chúng tôi cố gắng trình bày ngắn gọn trực tiếp vào bản chất của vấn đề, với các ví dụ minh hoạ cụ thể, dễ hiểu, nhằm hướng tới hai mục tiêu chính cho người học: Nâng cao tư duy trong thiết kế CSDL và rèn luyện kỹ năng làm việc với CSDL Sau mỗi chương đều có các phần tóm tắt cuối chương, câu

Trang 6

hỏi ôn tập và bài tập nhằm giúp sinh viên nắm vững những nội dung chính của từng chương và tự kiểm tra trình độ của bản thân qua việc giải các bài tập

Mặc dù đã rất cẩn trọng trong quá trình biên soạn, tuy nhiên tài liệu không tránh khỏi những thiếu sót và hạn chế Nhóm tác giả rất mong được sự góp ý quí báu của các độc giả và các bạn đồng nghiệp để trong lần tái bản sau, tài liệu được hoàn chỉnh hơn

Mọi góp ý xin gửi về: Bộ môn Các hệ thống thông tin – Khoa Công nghệ Thông tin & Truyền thông – Trường Đại học Hồng Đức

Thanh Hóa, tháng 07 năm 2018

Các tác giả

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

Trang 8

MỤC LỤC

Trang 9

CHƯƠNG 1 ĐẠI CƯƠNG VỀ CƠ SỞ DỮ LIỆU

Cơ sở dữ liệu là thuật ngữ quen thuộc và là một lĩnh vực được quan tâm đặc biệt, giữ vai trò vô cùng quan trọng đối với quá trình xây dựng các hệ thống thông tin

Vì vậy, hiểu đúng về CSDL, từ đó thiết kế, tổ chức, xây dựng và khai thác tốt các CSDL là vấn đề cốt lõi đối với người xây dựng và phát triển hệ thống Chương này trình bày các khái niệm cơ bản và chủ yếu của cơ sở dữ liệu (CSDL) như:

➢ Cơ sở dữ liệu và các vấn đề của hệ CSDL

➢ Hệ quản trị CSDL, kiến trúc ba mức của một hệ CSDL

➢ Các thành phần và vai trò của từng thành phần trong hệ CSDL

➢ Các mô hình dữ liệu cơ bản

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

Dẫn nhập - Tại sao cần CSDL?

Trước những năm 1960, mỗi chương trình ứng dụng đều có một file (tệp) dữ liệu tương ứng và mỗi khi chương trình ứng dụng cần thay đổi, mở rộng thì tệp dữ liệu tương ứng cũng phải thay đổi theo, tệp dữ liệu này được gọi là tệp tin cổ điển Ngày nay, tệp tin cổ điển vẫn đang được sử dụng để thực hiện các hoạt động nghiệp vụ tại nhiều cơ quan, tổ chức chưa được tin học hoá (hoặc tin học hoá chưa triệt để)

Ví dụ 1.1 Trường Đại học X đã tin học hoá nhiều hoạt động nghiệp vụ trong

quản lí đào tạo chính qui (quản lí sinh viên, quản lí điểm, quản lí ngân hàng đề thi…), tuy nhiên, với đào tạo liên thông, vừa làm vừa học, thạc sĩ, vẫn còn rất nhiều hoạt động đang sử dụng tệp tin Phòng quản lí đào tạo sau đại học sử dụng các phần mềm Microsoft Word và Microsoft Excel để quản lí danh sách học viên, các thông tin về học viên, kết quả học tập của học viên sau đại học Phòng quản lí đào tạo không chính qui cũng sử dụng các phần mềm Microsoft Word và Microsoft Excel để quản lí danh sách học viên, các thông tin về học viên, kết quả học tập của học viên liên thông, vừa làm vừa học Các khoa đào tạo (cụ thể là giáo vụ khoa, quản lí sinh viên khoa, ) cũng

sử dụng các phần mềm Microsoft Word và Microsoft Excel để quản lí danh sách học viên, các thông tin về học viên, kết quả học tập của học viên Những chương trình như vậy có ưu và nhược điểm là:

Ưu điểm:

• Việc xây dựng hệ thống các tập tin riêng tại từng đơn vị quản lý ít tốn thời

gian bởi khối lượng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi

đầu tư cơ sở vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh

• Thông tin được khai thác chỉ phục vụ cho mục đích hẹp nên khả năng đáp

ứng nhanh chóng, kịp thời

Nhược điểm:

• Dư thừa dữ liệu và không nhất quán: thông tin được tổ chức ở mỗi phòng

mỗi khác, cũng như phần mềm công cụ để triển khai mỗi nơi cũng rất khác

Trang 10

nhau nên sự phối hợp tổ chức và khai thác ở các phòng là khó khăn Thông tin ở phòng này không sử dụng được cho phòng khác, tại đơn vị con với đơn

vị cấp trên Cùng một thông tin được nhập vào máy tính tại nhiều nơi khác nhau (ví dụ, thông tin về học viên liên thông, vừa làm vừa học vừa được lưu trữ tại các khoa đào tạo, vừa được lưu trữ tại phòng quản lí đào tạo không chính qui), gây ra lãng phí công sức nhập tin và không gian lưu trữ trên các vật mang tin Sự trùng lắp thông tin có thể dẫn đến tình trạng không nhất quán dữ liệu Thông tin được tổ chức ở nhiều nơi nên việc cập nhật cũng dễ làm mất tính nhất quán dữ liệu (Ví dụ, một học viên thôi học có thể được cập nhật thông tin ngay tại khoa đào tạo nhưng sau một thời gian mới được cập nhật tại tổng phòng quản lí đào tạo không chính qui)

• Sự cô lập của dữ liệu: dữ liệu nằm trong nhiều tệp và các tệp có thể có định

dạng khác nhau (Ví dụ, dữ liệu ở khoa đào tạo lưu ở tệp Microsoft Word, trong khi dữ liệu ở phòng quản lí sau đại học lại được lưu ở tệp Microsoft Excel), nên thiếu sự chia sẻ thông tin giữa các nơi và việc kết nối các hệ thống này hay việc nâng cấp ứng dụng sẽ là rất khó khăn

• Khó khăn trong truy cập dữ liệu: việc tổ chức dữ liệu bằng các tệp doc, xls

không cho phép dữ liệu được tìm kiếm theo cách thức thuận tiện và hiệu quả

• Các vấn đề an toàn: thông thường mỗi người dùng chỉ được phép truy cập

một phần dữ liệu và có một số quyền nhất định đối với dữ liệu đó, tuy nhiên đối với tệp tin cổ điển, các chương trình ứng dụng được thêm vào hệ thống theo cách rất khó tiên liệu trước nên rất khó để đảm bảo các vấn đề an toàn

Định nghĩa 1.1 Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu

trúc của các dữ liệu về thế giới thực trong một lĩnh vực nào đó có liên quan với nhau

về mặt logic được lưu trữ ở bộ nhớ ngoài (như băng từ, đĩa từ, ) để có thể thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau [7]

Như vậy, CSDL phải là một tập hợp các thông tin mang tính hệ thống chứ

không phải là các thông tin rời rạc, không có mối quan hệ với nhau Các thông tin này

phải có cấu trúc và tập hợp các thông tin này phải có khả năng đáp ứng các nhu cầu

khai thác của nhiều người sử dụng một cách đồng thời

Trang 11

• Giảm sự trùng lặp thông tin: xuống mức thấp nhất và do đó bảo đảm được

tính nhất quán và toàn vẹn dữ liệu (Cấu trúc của CSDL được định nghĩa một lần và được hệ quản trị CSDL lưu trữ)

• Nhiều khung nhìn (multi-view): đảm bảo dữ liệu có thể được truy xuất theo

nhiều cách khác nhau Vì yêu cầu của mỗi đối tượng sử dụng CSDL là khác

nhau nên tạo ra nhiều khung nhìn vào dữ liệu là cần thiết (Ví dụ: sinh viên chỉ được quyền truy xuất vào CSDL để xem điểm thi, nhân viên phòng đào tạo có quyền truy xuất vào CSDL để cập nhật điểm thi)

• Đảm bảo sự độc lập giữa dữ liệu và chương trình ứng dụng (Insulation

between programs and data): Cho phép thay đổi cấu trúc, dữ liệu trong

CSDL mà không cần thay đổi chương trình ứng dụng

• Nhiều người dùng (multi-users): thông tin được chia sẻ cho nhiều người sử

dụng và nhiều ứng dụng khác nhau

• Trừu tượng hoá dữ liệu (Data Abstraction): người sử dụng chỉ nhìn thấy

mức khái niệm (logic) của CSDL

Tuy nhiên, để đạt được các ưu điểm trên, CSDL đặt ra những vấn đề cần phải giải quyết đó là:

• Tính sở hữu của dữ liệu: Do tính chia sẻ của CSDL nên các vấn đề an toàn

dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu, và tính chính xác của dữ liệu cần được đặt ra

• Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều

người được phép khai thác CSDL một cách đồng thời nên cần phải có cơ chế bảo mật và phân quyền khai thác CSDL (nhiệm vụ này được hỗ trợ bởi phần lớn các hệ điều hành hiện nay)

• Tranh chấp dữ liệu: Vì nhiều người sử dụng được phép truy cập vào cùng

một dữ liệu trong CSDL với những mục đích khác nhau (xem, thêm, xóa

Chương trình ứng dụng 1

Chương trình ứng dụng 2

Các hệ thống chương trình ứng dụng khai thác CSDL

CƠ SỞ DỮ LIỆU

Những NSD khai thác CSDL

Trang 12

hoặc sửa dữ liệu) Vì vậy, cần phải có cơ chế ưu tiên truy nhập dữ liệu (ví

dụ, cấp quyền (hay mức độ) ưu tiên cho từng người khai thác, người nào được cấp quyền hạn ưu tiên cao hơn thì được ưu tiên truy nhập dữ liệu trước)

• Đảm bảo dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có thể làm tăng

khả năng mất mát hoặc sai lệch thông tin khi có sự cố như mất điện đột ngột, hỏng đĩa cứng, Một số hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra và khắc phục lỗi khi có sự cố Tuy nhiên, để đảm bảo CSDL luôn luôn

ổn định, một CSDL nhất thiết phải có một cơ chế khôi phục dữ liệu khi các

sự cố bất ngờ xảy ra

1.1.2 Hệ quản trị CSDL

Định nghĩa 1.2 Hệ quản trị CSDL (DataBase Management System - DBMS) là

một ứng dụng phần mềm máy tính có khả năng tương tác với người dùng, các ứng dụng khác và CSDL của chính nó nhằm truy vấn và phân tích dữ liệu [7]

Hình 1.2 Sơ đồ tổng quát của một hệ quản trị CSDL [5]

Nói cách khác, hệ quản trị CSDL là một phần mềm cho phép người sử dụng xây

dựng, khai thác và quản lý được trên dữ liệu đó Ngoài ra, nó cũng phải cung cấp các

tính năng để quản trị và phân quyền người dùng, cơ chế sao lưu, phục hồi khi gặp lỗi,

và một giao diện làm việc thuận tiện, dễ sử dụng Hình 1.3 mô tả kiến trúc làm việc với các hệ quản trị CSDL

Mỗi hệ quản trị CSDL đều được cài đặt dựa trên một mô hình dữ liệu cụ thể Hình 1.2 mô tả sơ đồ tổng quát của một hệ quản trị CSDL Hầu hết các hệ quản trị CSDL hiện nay đều dựa trên mô hình quan hệ

Để làm việc với hệ quản trị CSDL quan hệ, ta sẽ sử dụng ngôn ngữ truy vấn dữ

liệu, hay ngôn ngữ truy vấn có cấu trúc (Structured Query Language - SQL) Ngôn

ngữ SQL được chia làm 3 loại như sau:

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

cấp các câu lệnh cho phép xác định sơ đồ CSDL, mô tả, định nghĩa các đối tượng của CSDL; cho phép khai báo cấu trúc của CSDL, khai báo các mối

Trang 13

liên hệ của dữ liệu (Data Relationship) và các quy tắc, ràng buộc (Rules,

Constraints) quản lý áp đặt lên các dữ liệu đó

• Ngôn ngữ thao tác dữ liệu (Database Manipulation Language - DML): là

ngôn ngữ cho phép người sử dụng truy xuất hoặc thao tác, xử lý dữ liệu như

chèn (Insert), xóa (Delete), cập nhật (Update) dữ liệu, trong CSDL

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

khiển tính đồng thời (tương tranh) đối với dữ liệu, cho phép những người quản trị hệ thống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho người sử dụng

Hình 1.3 Tương tác với hệ quản trị CSDL

1.1.3 Kiến trúc ba mức của một hệ CSDL

Không phải người sử dụng nào cũng có kỹ năng khai thác thông tin tốt, vì vậy người làm CSDL phải cố gắng che dấu sự phức tạp về biểu diễn bên trong của dữ liệu thông qua nhiều mức trừu tượng hoá dữ liệu để làm đơn giản hoá sự tương tác giữa người sử dụng và hệ thống

Theo ANSI-PARC (American National Standards Institute – Planning and Requirements Committee: Viện tiêu chuẩn quốc gia Hoa Kỳ - Uỷ ban nhu cầu và kế

hoạch Hoa Kỳ), một CSDL có 3 mức biểu diễn: Mức vật lý (Physical level), mức logic (Logical level) và mức khung nhìn (View level)

Hệ quản trị CSDL

Nhà thiết kế CSDL

Nhà quản trị CSDL

Khung nhìn 1 Khung nhìn 2 Khung nhìn n

Mức logic

Mức vật lý Mức khung nhìn

Trang 14

Hình 1.4 Kiến trúc ba mức của hệ cơ sở dữ liệu [7]

a Mức vật lí

Mức vật lý (còn gọi là mức trong) là mức thấp nhất của sự trừu tượng hoá, mô

tả dữ liệu được thực sự lưu trữ như thế nào trong CSDL Tại mức này, vấn đề cần giải

quyết là: dữ liệu gì và được lưu trữ như thế nào? ở đâu (đĩa từ, băng từ, track, sector,

nào)? cần các chỉ mục gì? việc truy xuất tuần tự (Sequential Access) hay truy xuất

ngẫu nhiên (Random Access) đối với từng loại dữ liệu?

Những người hiểu và làm việc với CSDL tại mức này là người quản trị CSDL – những người sử dụng chuyên nghiệp

Ví dụ 1.2 Các mẫu tin được lưu thành những khối liên tiếp nhau (bye, từ

nhớ,…) Trình biên dịch che dấu các chi tiết này, không cho người lập trình thông thường biết, trừ những người quản trị CSDL

b Mức logic

Mức logic (còn gọi là mức quan niệm) là mức trung gian, mô tả những dữ liệu

nào được lưu trữ trong CSDL và mối liên kết giữa chúng Người thiết kế CSDL, người

quản trị CSDL và người lập trình là những người làm việc ở mức này Mức logic sẽ giải quyết cho câu hỏi: CSDL cần phải lưu giữ những dữ liệu gì? mối quan hệ giữa các loại dữ liệu như thế nào?,

Xuất phát từ nhu cầu quản lý, qua quá trình khảo sát và phân tích, người phân tích sẽ xác định những thông tin được cho là cần thiết phải đưa vào CSDL, đồng thời

mô tả rõ mối liên hệ giữa các thông tin này

Ví dụ 1.3 Ta muốn xây dựng CSDL để quản lý đào tạo của trường Đại học X

Môi trường (thế giới thực) gồm có sinh viên, học phần, kết quả,

Mỗi sinh viên được cấp một mã số sinh viên (dùng để phân biệt SV này với SV khác, dùng làm số báo danh trong các kỳ thi), có họ tên sinh viên, năm sinh, giới tính, quê quán, nơi sinh, địa chỉ thường trú, địa chỉ tạm trú,

Mỗi sinh viên sẽ học một hoặc nhiều học phần, mỗi học phần có một mã học phần, tên học phần, số tín chỉ,

Kết quả học của sinh viên đối với mỗi học phần sẽ được thể hiện thông qua kết quả, kết quả sẽ là tổng hợp của các lần thi giữa kỳ chiếm 20%, quá trình chiếm 30%, học phần chiếm 50%

Như vậy, cần lưu trữ thông tin về sinh viên, học phần, và kết quả, trong đó kết quả sẽ thể hiện mối quan hệ giữa sinh viên và học phần

c Mức khung nhìn

Mức khung nhìn (còn gọi là mức ngoài) là mức cao nhất của sự trừu tượng hoá

Mặc dù mức logic đã đơn giản hoá đi nhiều nhưng do CSDL có kích thước quá lớn, nó vẫn còn phức tạp Nhiều người sử dụng chỉ cần truy xuất một phần CSDL trong toàn

bộ CSDL Vì vậy, khung nhìn được đặt ra để mô tả chỉ một phần của toàn bộ CSDL

Trang 15

cho một nhóm người sử dụng nào đó Ngoài ra, khung nhìn còn cung cấp cơ chế an toàn để ngăn ngừa người sử dụng truy xuất trái phép các phần thẩm quyền

Đó là mức của người sử dụng và các chương trình ứng dụng Làm việc tại mức này có các nhà chuyên môn, các kỹ sư tin học và những người sử dụng không chuyên

Ví dụ 1.4 Trong hệ thống thông tin quản lí đào tạo của trường X

Phòng quản lý học sinh sinh viên cần thông tin chi tiết về sinh viên (bao gồm cả địa chỉ gia đình, địa chỉ thường trú, số điện thoại liên lạc của gia đình, ) và kết quả học tập của sinh viên, nhưng không cần các thông tin chi tiết về học phần

Phòng quản lý đào tạo lại cần các thông tin về sinh viên, học phần và kết quả học tập, nhưng không cần nắm đến chi tiết các thông tin về sinh viên như địa chỉ gia đình, địa chỉ thường trú, số điện thoại liên lạc của gia đình, giống phòng quản lý học sinh sinh viên Và với các nhân viên thực hiện nghiệp vụ của phòng đào tạo họ cũng khai thác các thông tin khác nhau, nhân viên xếp thời khoá biểu không cần thiết phải truy cập các thông tin như giới tính, năm sinh, quê quán của sinh viên, ; nhân viên quản lý chương trình đào tạo không nhất thiết phải quan tâm đến kết quả học tập của sinh viên

Hình 1.5 Kiến trúc tổng quan (ANSI – PARC) của một CSDL [5]

Như vậy, cấu trúc CSDL vật lý và mức logic thì chỉ có một; nhưng tại mức khung nhìn, mức của các chương trình ứng dụng và người sử dụng trực tiếp CSDL, thì

có thể có rất nhiều cấu trúc ngoài tương ứng Hình 1.5 mô tả kiến trúc tổng quan của một CSDL

Kiến trúc ba mức chính là sự tách biệt quan niệm về CSDL của nhiều người sử dụng với những chi tiết biểu diễn về vật lí của CSDL Điều này có những ưu điểm sau:

• Đối với một CSDL, mỗi người dùng có một khung nhìn riêng Họ có thể thay đổi khung nhìn của họ và sự thay đổi này không làm ảnh hưởng đến khung nhìn dữ liệu của những người dùng khác đang dùng chung CSDL

• Những tương tác của người dùng với CSDL không phụ thuộc vào những vấn đề chi tiết trong lưu trữ dữ liệu (ví dụ, vấn đề chỉ mục hoá hay bảng băm)

Trang 16

• Người quản trị CSDL có thể thay đổi cấu trúc lưu trữ của CSDL mà không làm ảnh hưởng đến những khung nhìn của người sử dụng

• Những thay đổi về khía cạnh vật lí trong lưu trữ, chẳng hạn như thay một thiết bị nhớ thứ cấp mới, có thể không làm ảnh hưởng đến cấu trúc bên trong của CSDL

• Người quản trị CSDL có thể thay đổi cấu trúc tổng quát hay cấu trúc khái niệm của CSDL mà không làm ảnh hưởng đến tất cả người dùng

1.1.4 Vai trò của con người trong hệ CSDL

Với một CSDL lớn, rất nhiều người tham gia vào việc thiết kế, sử dụng và duy trì CSDL Những người liên quan đến hệ CSDL bao gồm các nhóm chính được minh họa trong hình 1.6

Hình 1.6 Vai trò của con người trong hệ CSDL [7]

a Người quản trị CSDL (Database Administrator – DBA)

Trong một tổ chức có nhiều người cùng sử dụng các tài nguyên (CSDL, hệ quản trị CSDL và các phần mềm liên quan) Người quản trị hệ CSDL là người chịu

trách nhiệm quản lý các tài nguyên đó Người này chịu trách nhiệm về việc cho phép

truy cập CSDL, tổ chức và hướng dẫn việc sử dụng CSDL, cấp các phần mềm và phần cứng theo yêu cầu

Các nhiệm vụ của người quản trị CSDL như tạo ra sơ đồ CSDL gốc, định nghĩa

cấu trúc lưu trữ và phương pháp truy xuất, cấp quyền truy xuất dữ liệu và đặc tả các ràng buộc toàn vẹn về dữ liệu

b Người sử dụng (End User)

Người sử dụng là những người mà công việc của họ đòi hỏi truy cập đến CSDL

để truy vấn, cập nhật và sinh ra các thông tin Có thể chia những người sử dụng thành

Quản lí các tài nguyên của CSDL

Cải tiến hệ thống

Trang 17

hai nhóm: những người sử dụng thụ động (những người không có nhiều kiến thức về CSDL) và những người sử dụng chủ động (những người có hiểu biết tốt về CSDL)

Chức năng công việc của những người sử dụng thụ động (chiếm phần lớn những người sử dụng) gắn liền với việc truy vấn và cập nhật thường xuyên CSDL bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (gọi là các giao tác định sẵn) đã được lập trình và kiểm tra cẩn thận Những người này chỉ cần học một ít về các phương tiện do hệ quản trị CSDL cung cấp và hiểu các kiểu giao tác chuẩn đã được thiết kế và cài đặt là đủ

Những người sử dụng chủ động có hiểu biết tốt về hệ CSDL, họ có thể tự cài đặt các ứng dụng riêng của mình để làm thoả mãn các yêu cầu phức tạp hay viết các ứng dụng CSDL chuyên biệt không nằm trong khung xử lý dữ liệu truyền thống

c Người phân tích hệ thống và lập trình ứng dụng

Người phân tích hệ thống xác định các yêu cầu của những người sử dụng để đặc

tả các chương trình phù hợp với yêu cầu của họ Người lập trình ứng dụng thể hiện các đặc tả của những người phân tích thành chương trình, sau đó kiểm thử, sửa lỗi làm tài liệu và bảo trì các phần mềm

Hình 1.7 Mô tả hệ CSDL tập trung [7] Hình 1.8 Hệ CSDL cá nhân

Hệ CSDL tập trung được chia thành: Hệ CSDL cá nhân, hệ CSDL trung tâm và

Hệ CSDL khách/chủ (Client/server)

Hệ CSDL cá nhân: một người vừa thiết kế và tạo lập CSDL, vừa cập nhật

CSDL và bảo trì CSDL Nói cách khác, họ là vừa người quản trị CSDL đồng thời là người viết chương trình, đồng thời cũng là người sử dụng cuối của hệ Hình 1.8 mô tả

hệ CSDL được cài trên máy cá nhân

Trang 18

Hệ CSDL trung tâm: trong các tổ chức lớn, dữ liệu mà hầu hết các ứng dụng

có thể truy nhập được lưu trữ trên một máy tính trung tâm Trong nhiều hệ thống, những người sử dụng từ xa có thể truy nhập CSDL này thông qua các thiết bị đầu cuối

và các móc nối truyền dữ liệu Tuỳ thuộc vào qui mô tổ chức, máy tính trung tâm này thường bao gồm nhiều hoặc một máy vi tính Các hệ CSDL trung tâm thường lưu trữ các CSDL tích hợp rất lớn và được nhiều người sử dụng truy nhập Các ứng dụng điển hình như hệ thống bán vé máy bay, hệ thống tàu hoả, CSDL đất đai, Hình 1.9 mô tả một ví dụ hệ CSDL trung tâm

Hình 1.9 Hệ CSDL trung tâm [1]

Hệ CSDL khách/chủ (Client/server): Một kiến trúc khách/chủ được thiết kế

với sự phân tải công việc trên một mạng máy tính trong đó các máy khách có thể chia

sẻ các dịch vụ của một máy chủ đơn lẻ Một máy chủ là một ứng dụng phần mềm cung cấp các dịch vụ quản lý tệp hay CSDL, quản lý truyền thông, đối với các máy khách đang yêu cầu Một máy khách là một ứng dụng phần mềm yêu cầu các dịch vụ từ một hay nhiều máy chủ Thông thường, ứng dụng máy chủ (máy chủ CSDL) được định vị trên một máy tính riêng trong mạng cục bộ

Hình 1.10 Hệ CSDL khách/chủ [1]

Trang 19

b Các hệ CSDL phân tán

Ngày nay, nhiều tổ chức phân bố trên nhiều vị trí địa lý như thành phố hay các quốc gia khác nhau Trong những trường hợp như vậy, việc xây dựng các hệ CSDL tập trung đối với các tổ chức này thường là không thực tế và không kinh tế Để giải quyết vấn đề này, người ta sử dụng các hệ CSDL phân tán

Hình 1.11 Sơ đồ sự hình thành CSDL phân tán [1]

Trong CSDL phân tán, các CSDL cục bộ đặt trên các máy tính khác nhau (các trạm-sites) và được kết nối bởi mạng truyền thông, các CSDL cục bộ này tích hợp được với nhau qua mạng máy tính mà không cần có sự tập trung dữ liệu Do đó, có thể xây dựng được một hệ thống CSDL, trong đó dữ liệu phân tán trên một mạng máy tính Cấu trúc của CSDL phân tán:

• Về mặt vật lý: Yếu tố chính để phân biệt một CSDL phân tán với một cơ CSDL tập trung là: CSDL phân tán phải có nhiều máy tính gọi là các trạm

và các trạm phải được kết nối bởi một kênh truyền thông nào đó để truyền

dữ liệu (trao đổi dữ liệu)

• Về mặt logic gồm 3 mô-đun chính sau: Xử lý dữ liệu để quản lý dữ liệu cục

bộ tại các trạm giống như với CSDL tập trung; Xử lý ứng dụng CSDL trên từng trạm để xử lý các chức năng phân tán và truy cập các thông tin phân tán; Xử lý truyền thông để liên kết (kết nối) với kênh truyền thông

Hình 1.12 Hệ CSDL phân tán [1]

Trang 20

20

Có hai kiểu chung nhất của các hệ CSDL phân tán là: hệ CSDL phân tán thuần nhất và hệ CSDL phân tán không thuần nhất

Hệ CSDL phân tán thuần nhất: Khi áp dụng đối với các hệ CSDL, thuật ngữ

thuần nhất có nghĩa là công nghệ CSDL là như nhau hay ít nhất có thể tương thích tại mỗi vị trí địa lý khác nhau cũng có thể tương thích Hình 1.13 miêu tả một hệ CSDL phân tán thuần nhất

Hình 1.13 Hệ CSDL phân tán thuần nhất [7]

Đối với hệ CSDL phân tán thuần nhất, các điều kiện sau phải được đảm bảo:

• Các hệ điều hành máy tính tại mỗi vị trí địa lý là như nhau hay ít nhất chúng

có khả năng tương thích cao

• Các mô hình dữ liệu được sử dụng tại mỗi vị trí địa lý là như nhau

• Các hệ quản trị CSDL được sử dụng tại mỗi vị trí địa lý là như nhau hay ít nhất chúng có khả năng tương thích cao

• Dữ liệu tại các vị trí khác nhau có các định nghĩa và khuôn dạng chung

Hệ CSDL phân tán không thuần nhất: Trong thực tế, các máy tính và các hệ

điều hành khác nhau có thể được sử dụng tại mỗi vị trí địa lý Các mô hình dữ liệu và các hệ quản trị CSDL khác nhau cũng có thể được lựa chọn sử dụng Ví dụ, một vị trí

có thể sử dụng công nghệ CSDL quan hệ mới nhất, trong khi một vị trí khác có thể lưu trữ dữ liệu sử dụng các tệp truyền thống hay các CSDL mạng, phân cấp cũ hơn Phức tạp hơn nữa, dữ liệu trên các vị trí thường không tương thích Các mâu thuẫn điển hình bao gồm các khác biệt về cú pháp (sự biểu diễn khác nhau của các khoản mục dữ liệu tại hai vị trí) và các khác biệt về ngữ nghĩa Hình 1.14 miêu tả một hệ CSDL phân tán không thuần nhất

Kí túc xá Đào tạo

DB2 Database

Oracle Database

MS SQL Server Database

Các khoa Đào tạo

Thư viện

SQL Server Database

SQL Server Database

SQL Server Database

Trang 21

Hình 1.14 Hệ CSDL phân tán không thuần nhất [7]

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

1.2.1 Khái niệm

Mô hình dữ liệu là một tập các khái niệm và kí pháp dùng để mô tả dữ liệu, các mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức [7]

Như vậy, có thể xem như một mô hình dữ liệu có ba thành phần:

• Phần mô tả cấu trúc của CSDL;

• Phần mô tả các thao tác, định nghĩa các phép toán được phép trên dữ liệu;

• Phần mô tả các ràng buộc toàn vẹn để đảm bảo sự chính xác của dữ liệu

1.2.2 Các mô hình dữ liệu cơ bản

Mô hình phân cấp và mô hình mạng được xếp vào thế hệ đầu của CSDL Thế

hệ thứ hai có mô hình quan hệ, mô hình thực thể liên kết Các mô hình này được xem

là mô hình cổ điển Mô hình mới nhất được xếp vào thế hệ thứ ba của CSDL là mô hình hướng đối tượng, mô hình phân tán, mô hình suy diễn Hình 1.15 mô tả các giai

đoạn phát triển của mô hình dữ liệu

Hình 1.15 Lịch sử phát triển của các mô hình dữ liệu

Trang 22

a Mô hình dữ liệu phân cấp (Hierarchical Data Model)

Mô hình dữ liệu phân cấp được gọi tắt là mô hình phân cấp (Hierachical

Model) hay mô hình CSDL dạng cây được đề xuất vào những năm 1960 – 1965 và

được tổ chức theo cấu trúc từ trên xuống dưới Mỗi nút tương ứng với một kiểu dữ

liệu, có thể có một hoặc nhiều trường, mô tả thực thể và một nhánh cây tạo nên một

liên kết giữa kiểu dữ liệu này với kiểu dữ liệu khác Mỗi nút đều có một nút cha và

nhiều nút con, trừ nút gốc là không có cha

Tuy nhiên, mô hình chỉ thể hiện được quan hệ 1- n, tức là mô tả được trường

hợp nút cha có nhiều nút con (ví dụ, một khoa thì có thể có nhiều lớp hay một lớp có thể có nhiều sinh viên), còn trường hợp ngược lại thì không (một lớp phải thuộc sự quản lý hành chính của một và chỉ một khoa) Điều này gây dư thừa dữ liệu và lãng phí không gian lưu trữ

Điểm nổi bật trong các thủ tục truy xuất đến một đối tượng trong mô hình phân cấp là đường dẫn đi từ gốc đến phần tử cần xét trong cây phân cấp

Hình 1.16 mô tả cây phân cấp của mô hình dữ liệu đối với CSDL Tổng điều tra

số dân toàn quốc 0 giờ ngày 01 tháng 01 năm 1989

Hình 1.16 Minh hoạ mô hình dữ liệu phân cấp [5]

Trang 23

Ví dụ 1.5 [5] Trong cuộc Tổng điều tra số dân năm 1989, chương trình nhập

phiếu điều tra được viết bằng ngôn ngữ CENS4 cho kết quả là các file dữ liệu nhập dạng văn bản được tổ chức như sau:

• Các dòng là các bản ghi có độ dài thay đổi

• Có 6 loại bản ghi:

tên tỉnh (thành phố) Ví dụ: ‘02’ là mã số Thành phố Hồ Chí Minh

quận huyện, tên quận huyện trong tỉnh thành phố đó Ví dụ: ‘0201’

là Mã số quận 1 của Thành phố Hồ Chí Minh

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ố đó Ví dụ: ‘020101’ là Mã số phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh

‘02010101’ là mã số địa bàn điều tra số 01 trong phường Bến nghé

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

hộ điều tra, Số thứ tự nhân khẩu trong hộ, Quan hệ với chủ hộ (19), 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 tệp 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

b Mô hình dữ liệu mạng (Network Data Model)

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

(Network Model) được đề xuất vào cuối những năm 1960 và được định nghĩa lại năm

1971; là mô hình thực thể - quan hệ trong đó các mối liên hệ bị hạn chế trong kiểu nhị

phân và nhiều – một Như vậy, ta có thể dùng một đồ thị có hướng cho các dữ liệu Ở

vị trí của các tập thực thể, mô hình mạng đưa ra kiểu bản ghi (record type) Một kiểu bản ghi là tên gán cho một tập các bản ghi (record) Bản ghi được cấu tạo bởi các trường (field) chứa các giá trị cơ bản như số nguyên, chuỗi kí tự,… Tập các tên trường

và kiểu của chúng tạo nên khuôn dạng bản ghi (record format)

Kiểu bản ghi (Recorde Type) là kiểu đặc trưng cho một loại đối tượng riêng

biệt Ví dụ, trong quản lý đào tạo tại một trường đại học, đối tượng cần phản ánh của thế giới thực có thể là sinh viên, giảng viên, học phần, khoa, lớp, do đó, có các loại

Trang 24

bản ghi đặc trưng cho từng đối tượng này Trong đồ thị biểu diễn mô hình mạng mỗi

kiểu bản ghi được biểu diễn bởi một hình chữ nhật, một thể hiện (Instance) của một

kiểu bản ghi được gọi là bản ghi Trong ví dụ 1.6 kiểu bản ghi sinh viên có các bản ghi là các sinh viên; kiểu bản ghi học phần có các bản ghi là các học phần được giảng dạy trong chương trình đào tạo

Kiểu liên hệ (Set Type) là sự liên kết giữa một kiểu bản ghi chủ với một kiểu

bản ghi thành viên Trong đồ thị biểu diễn mô hình mạng mỗi kiểu 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 kiểu bản ghi được thể hiện bởi

các cung có hướng (các mũi tên) đi từ kiểu bản ghi chủ tới kiểu liên hệ và từ kiểu liên

hệ tới kiểu bản ghi thành viên

Trong kiểu liên kết người ta còn chỉ ra số lượng các bản ghi tham gia trong mối kết hợp Có các kiểu liên hệ sau:

• 11 (Một – Một): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với đúng 1 bản ghi của kiểu bản ghi thành viên Ví dụ, mỗi sinh viên viên thực hiện một và chỉ một khoá luận

• 1N (Một – Nhiều): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với 1 hay nhiều bản ghi của kiểu bản ghi thành viên Ví dụ, mỗi khoa có từ 1 đến nhiều lớp

• N1 (Nhiều – Một): Nhiều bản ghi của kiểu bản ghi chủ kết hợp với đúng 1 bản ghi của kiểu bản ghi thành viên Ví dụ, nhiều sinh viên cùng thuộc một lớp

• Đệ quy (Recursive): Một kiểu bản ghi chủ cũng có thể đồng thời là kiểu bản

ghi thành viên với chính nó Ví dụ, một học phần (Cơ sở dữ liệu) là điều kiện tiên quyết của học phần khác (Hệ quản trị cơ sở dữ liệu)

Hình 1.17 Minh hoạ mô hình dữ liệu mạng

Ví dụ 1.6 Hình 1.17 biểu diễn một ví dụ về mô hình dữ liệu mạng đối với

CSDL quản lý đào tạo của một trường Trong đồ thị này, ta có

• 4 kiểu bản ghi: KHOA, LỚP, SINH VIÊN, KHOÁ LUẬN

1N 1N

Trang 25

• 3 kiểu liên hệ: KHOA gồm 1 đến nhiều LỚP; LỚP gồm một hoặc nhiều SINH VIÊN, SINH VIÊN thực hiện có 1và chỉ 1 KHOÁ LUẬN;

Mô hình dữ liệu mạng tương đối đơn giản, dễ sử dụng nhưng nó không thích hợp trong việc biểu diễn các CSDL có quy mô lớn bởi trong một đồ thị có hướng khả năng diễn đạt ngữ nghĩa của dữ liệu, nhất là các dữ liệu và các mối liên hệ phức tạp của dữ liệu trong thực tế là rất hạn chế

c Mô hình quan hệ

CSDL quan hệ được xây dựng theo lý thuyết do E.F.Codd giới thiệu năm 1970,

mô hình này dựa trên lý thuyết tập hợp và đại số quan hệ Vì tính chất chặt chẽ của toán học về lí thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, mềm dẻo và từ năm 1980 đã trở thành mô hình được sử dụng rộng rãi

Thuật ngữ “quan hệ” là do bảng dữ liệu hai chiều được Codd gọi là bảng quan

hệ Theo mô hình quan hệ, dữ liệu được thể hiện trong bảng hai chiều, gồm các dòng

và cột Các bảng gọi là các “quan hệ”, các dòng gọi là các “bộ” và cột là “thuộc tính” Theo cách nhìn của các mô hình trước thì mỗi dòng là một bản ghi, các thuộc tính cho biết ý nghĩa của các giá trị trong bản ghi

CSDL quan hệ dùng các thuộc tính để liên kết dữ liệu giữa các bảng khác nhau thay vì dùng con trỏ để liên kết tập bản ghi như trong mô hình mạng

Ta sẽ tìm hiểu kĩ về mô hình này trong chương 2 của tài liệu

d Mô hình thực thể mối quan hệ (Entity - RelationShip Model)

Mô hình dữ liệu thực thể - mối quan hệ do P.P.Chen đề xuất vào năm 1976 Mô hình này được xây dựng dựa trên nhận thức thế giới thực mà ta muốn phản ánh là một tập hợp các đối tượng cơ sở và các mối quan hệ (còn gọi là liên kết) giữa chúng Mô

hình này dùng các khái niệm thực thể (entity – E) và mối quan hệ (relationship – R)

Tập tất cả các thực thể thuộc cùng một kiểu và tập tất cả các mối quan hệ thuộc cùng

một kiểu theo thứ tự được gọi là tập thực thể và tập mối quan hệ

Ta sẽ tìm hiểu kĩ về mô hình này trong phần 1.3 của tài liệu

e Mô hình hướng đối tượng (Object Oriented Data Model)

Mô hình dữ liệu hướng đối tượng ra đời từ cuối những năm 80 và đầu những năm 90 Đây là loại mô hình tiên tiến nhất hiện nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương pháp lập trình hướng đối tượng, nó sử dụng các

khái niệm như lớp (class), sự kế thừa (inheritance), kế thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi-inheritance) Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (Reusability)

Trang 26

Công nghệ CSDL hướng đối tượng dùng lược đồ gồm tập các “lớp” Mỗi lớp được mô tả gồm tập các “thuộc tính” và “phương thức” Mỗi đối tượng thuộc lớp đều mang đầy đủ các thuộc tính và phương thức của lớp đó

Phương pháp tiếp cận hướng đối tượng trong mô hình dữ liệu mặc dù còn mới

mẻ nhưng hiện nay đang được nhiều người quan tâm nghiên cứu phát triển và áp dụng Các hệ quản trị CSDL hướng đối tượng hiện nay vẫn chưa nhiều, một số còn chưa thuần nhất (nghĩa là việc lập trình là hướng đối tượng nhưng CSDL vẫn chủ yếu dựa trên mô hình quan hệ)

Một tập thực thể là một tập hợp các thực thể cùng kiểu, nghĩa là cùng được thể

hiện bởi một tập đặc trưng hay thuộc tính Ví dụ, tập tất cả các sinh viên của trường đại học X, mỗi sinh viên là một thực thể, các thực thể sinh viên đều được mô tả thông qua một tập thuộc tính như mã sinh viên, họ tên sinh viên, ngày sinh, quê quán, giới tính,… Một tập thực thể thường được tham chiếu đến bằng tên Ví dụ, tập thực thể gồm tất cả các sinh viên có thể tham chiếu bằng tên SINH VIÊN Như vậy, SINH VIÊN vừa là tên của một tập thực thể chỉ đến tập hiện tại của tất cả các thực thể sinh viên trong CSDL đang đề cập

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 CSDL được mô tả bằng tên và các thuộc tính Ví dụ: kiểu thực thể

SINH VIÊN gồm các thuộc tính như: họ tên sinh viên, năm sinh, giới tính, quê quán, nơi sinh, ; kiểu thực thể HỌC PHẦN gồm các thuộc tính như: mã học phần, tên học phần, số tín chỉ, mô tả,

Một kiểu thực thể được biểu diễn bằng hình chữ nhật có chứa tên kiểu thực thể

viết in hoa (Hình 1.18)

b Thuộc tính

Định nghĩa 1.4 Thuộc tính (của một thực thể hoặc của một mối liên kết) là một

phần tử của mô hình tương ứng với một đặc tính của một lớp đối tượng hoặc một mối quan hệ giữa các đối tượng Thuộc tính thường định danh bằng tên, mang ý nghĩa là

đặc tính của đối tượng hay quan hệ giữa các đối tượng trong thế giới thực và chúng có

Trang 27

thể lượng hóa (mô tả, cân đong, đo, đếm) được Ví dụ: một thực thể sinh viên được mô

tả bằng mã sinh viên, họ tên sinh viên, ngày sinh, quê quán, giới tính, nơi sinh,… của sinh viên đó

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 Ví dụ, miền giá trị của thuộc tính Giới tính là {Nam, Nữ”} Các miền giá trị không hiển thị trong các sơ đồ ER

Phân loại: Thuộc tính được chia thành các loại khác nhau

• 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 giới tính của một sinh 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

Ví dụ, thuộc tính họ tên sinh viên của thực thể sinh viên có thể phân chia thành các thuộc tính họ đệm và tên; thuộc tính quê quán của thực thể sinh viên có thể phân chia thành các thuộc tính phường (xã), quận (huyện, thị

xã, thành phố), tỉnh (thành phố) Giá trị của một thuộc tính là sự kết hợp

các giá trị của các thuộc tính thành phần tạo nên nó Việc phân chia một thuộc tính phức hợp thành các thuộc tính đơn tùy thuộc vào hoàn cảnh cụ thể

• Thuộc tính đơn trị là thuộc tính có giá trị duy nhất cho một thực thể cụ thể

Ví dụ, họ tên sinh viên là một thuộc tính đơn trị của thực thể sinh viên, mỗi

sinh viên có một họ tên duy nhất

• Thuộc tính đa trị là thuộc tính có thể nhận một tập giá trị cho cùng một thực

thể Ví dụ, thuộc tính đối tượng ưu tiên của một sinh viên là một thuộc tính

đa trị Một sinh viên có thể không thuộc đối tượng ưu tiên nào, sinh viên khác có thể thuộc một đối tượng ưu tiên, nhân viên khác nữa có thể thuộc nhiều đối tượng ưu tiên Như vậy, các sinh viên khác nhau có thể có một số giá trị khác nhau cho thuộc tính đối tượng ưu tiên

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

cài đặt CSDL Ví dụ các thuộc tính họ tên sinh viên, giới tính, năm sinh,

• Thuộc tính suy diễn được là 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 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 Điểm học phần= Điểm giữa kỳ*0.2 + Điểm quá trình*0.3 + Điểm thi học phần*0.5

Trang 28

• 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, 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ện thoại của thực thể sinh viên sẽ không có giá trị đối với các sinh 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)

• 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ị

Ký hiệu: Tên của các thuộc tính được ghi bên trong, phía dưới ký hiệu tên thực

thể hoặc tên của mối kết hợp Các thuộc tính đa trị được đánh dấu * (Hình 1.18)

d Thuộc tính khóa

Thuộc tính khóa của một kiểu thực thể: một hoặc một nhóm thuộc tính mà các

giá trị của nó là khác nhau đối với mỗi thực thể riêng biệt trong một tập thực thể 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 1.18)

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 sinh viên có một mã số sinh viên duy nhất và một số chứng minh thư duy nhất thì các thuộc tính mã số sinh viên và số chứng minh thư đề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 1.18 Biểu diễn kiểu thực thể và các thuộc tính

e Kiểu liên kết và các thể hiện

Một thể hiện của một mối liên kết là tập hợp các thể hiện của các thực thể tham

gia vào mối kết hợp đó Ví dụ, trong hệ thống quản lý đào tạo các lớp học sẽ thuộc sự

quản lý về mặt hành chính của một khoa, như vậy, có một kiểu liên kết thuộc, liên kết

gữa kiểu thực thể LỚP và kiểu thực thể KHOA

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 1.19 minh họa kiểu liên kết

Trang 29

Mối liên kết đệ qui: là một mối liên kế từ một thực thể đi đến chính thực thể đó

Ví dụ, HỌC PHẦN (Cơ sở dữ liệu) là điều kiện tiên quyết của HỌC PHẦN (Phân tích thiết kế hệ thống)

Hình 1.20 Mối liên kết đệ qui Bậc 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ó bậc 1, bậc 2, Ví dụ, kiểu liên kết <thuộc> giữa kiểu thực thể LỚP và kiểu thực thể KHOA là một kiểu liên kết bậc 2 Kiểu liên kết <học> giữa 3 kiểu thực thể LỚP, PHÒNG HỌC, HỌC PHẦN là một kiểu liên kết bậc 3

f 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 trường đại học có quy chế là một Lớp về mặt hành chính chỉ thuộc sự quản lý của một Khoa thì 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à bản số

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ó ba tỷ số lực lượng là 1:1, 1:N, và M:N

Tỷ số lực lượng 1:1 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 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

Tỷ số lực lượng M:N mỗi thực thể của kiểu A 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 liên kết với nhiều thực thể của kiểu A

Bản số của một thực thể đối với một mối kết hợp là cặp (bản số tối thiểu, bản số

tối đa) Trong đó chúng được định nghĩa như sau:

Bản số tối thiểu: bằng 0 hoặc 1, là số lần tối thiểu mà một thể hiện bất kỳ của

một thực thể tham gia vào các thể hiện của mối kết hợp

Bản số tối đa: bằng 1 hoặc n, là số lần tối đa mà một thể hiện bất kỳ của một

thực thể tham gia vào các thể hiện của mối kết hợp

Lưu ý: trong một số trường hợp bản số tối thiểu của một thực thể đối với một

mối kết hợp cho là bằng 0 hay 1 tùy vào việc quan niệm các thể hiện của thực thể đó

HỌC PHẦN

Điều kiện

Trang 30

Trong biểu diễn của lược đồ ER, các tỷ số lực lượng và bản số được biểu diễn bằng cách ghi 11, 1N, NM trên các hình thoi biểu diễn kiểu liên kết, trong đó kí tự đứng trước  là bản số tối thiểu, kí tự đứng sau  là bản số tối đa

Hình 1.21 Tỷ số lực lượng của các kiểu liên kết

g 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 <Học> giữa các kiểu thực thể SINH VIÊN và HỌC PHẦN có thể có thuộc tính Điểm để ghi lại kết quả học tập của một sinh viên đối với một học phầ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

Hình 1.22 Thuộc tính của các kiểu liên kết

1.3.2 Xây dựng mô hình thực thể liên kết

Ví dụ 1.8 Với khảo sát đã thực hiện ở phần MỞ ĐẦU, giả sử ta có một đoạn

ghi chép sau:

• Thông tin về khoa gồm: Mã khoa, tên khoa, địa chỉ, số điện thoại

• Thông tin về lớp gồm: Mã lớp, Tên lớp, Năm nhập học

• Mỗi khoa gồm nhiều lớp, nhưng mỗi lớp chỉ chịu sự quản lý về mặt hành

Trang 31

• Thông tin về sinh viên gồm: Mã sinh viên, họ tên sinh viên, giới tính, ngày

sinh, quê quán, số điện thoại,

• Mỗi sinh viên thuộc một và chỉ một lớp, mỗi lớp có thể gồm nhiều sinh

viên

• Thông tin về học phần gồm: Mã học phần, tên học phần, số tín chỉ, học kỳ

• Mỗi học phần được học bởi một hoặc nhiều sinh viên, và mỗi sinh viên cũng phải học nhiều học phần Kết quả của mỗi lần học là Điểm

Bước 1 Xác định các thực thể, các liên kết và thuộc tính

Theo các ghi chép ở trên, ta có thể xác định các kiểu thực thể và các kiểu liên kết như sau:

• KHOA là một kiểu thực thể với các thuộc tính mã khoa, tên khoa, địa chỉ, số điện thoại Các thuộc tính đều là đơn và đơn trị Các thuộc tính mã khoa, tên khoa là các thuộc tính khóa (vì mỗi khoa có một mã khoa và một tên khoa duy nhất)

• LỚP là một kiểu thực thể với các thuộc tính mã lớp, tên lớp, nm nhập học Các thuộc tính đều là đơn và đơn trị Các thuộc tính mã lớp, tên lớp là các thuộc tính khóa (vì mỗi khoa có một mã lớp và một tên lớp duy nhất)

• SINH VIÊN là một kiểu thực thể với các thuộc tính Mã sinh viên, họ tên sinh viên, giới tính, ngày sinh, quê quán, số điện thoại Các thuộc tính đều

là đơn và đơn trị; thuộc tính Họ tên sinh viên là một thuộc tính phức hợp (gồm Họ đệm, Tên) Thuộc tính mã sinh viên là thuộc tính khóa (vì mỗi sinh viên có một mã sinh viên duy nhất)

• HỌC PHẦN là một kiểu thực thể với các thuộc tính mã học phần, tên học phần, số tín chỉ, học kỳ Các thuộc tính đều là đơn và đơn trị Thuộc tính mã học phần là thuộc tính khóa (vì mỗi học phần có một mã học phần duy nhất)

• Kiểu liên LỚP<thuộc>KHOA có tỷ số lực lượng N:1 (mỗi lớp thuộc một khoa nhưng mỗi khoa có nhiều lớp) Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ

• Kiểu liên SINH VIÊN<thuộc>LỚP có tỷ số lực lượng N:1 (mỗi sinh viên thuộc một lớp nhưng mỗi lớp có nhiều sinh viên) Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ

• Kiểu liên kết SINH VIÊN <học>HỌC PHẦN là có tỷ số lực lượng là M:N (một sinh viên có thể họcnhiều học phần khác nhau và mỗi học phầnđược học bởi nhiều sinh viên) Sự tham gia của kiểu thực thể HỌC PHẦN là bộ phận (bởi vì không phải tất cả học phần đều được học, ví dụ môn tự chọn) ngược lại, sự tham gia của kiểu thực thể SINH VIÊN là toàn bộ (bởi vì sinh viên nào cũng phải học) Kiểu liên kết này có một thuộc tính là điểm, ghi lại kết quả học của một sinh viên đối với một học phần

Bước 2 Vẽ biểu đồ

Trang 32

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

Trang 33

TÓM TẮT CUỐI CHƯƠNG 1

✓ CSDL là một hệ thống các thông tin có cấu trúc của các dữ liệu về thế giới thực

trong một lĩnh vực nào đó có liên quan với nhau về mặt logic được lưu trữ ở bộ nhớ ngoài (như băng từ, đĩa từ ) để có thể thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau

✓ Hệ quản trị CSDL là một phần mềm cho phép tạo lập CSDL và điều khiển hoặc

truy nhập CSDL đó, đặc biệt hệ quản trị CSDL đảm bảo tính độc lập dữ liệu (là sự bất biến của các chương trình ứng dụng đối với các thay đổi về cấu trúc lưu trữ và chiến lược truy nhập)

✓ Một CSDL có 3 mức biểu diễn: Mức vật lý (Physical level), mức logic (Logical

level) và mức khung nhìn (View level)

✓ Những người liên quan đến hệ CSDL được chia thành hai nhóm chính Nhóm thứ

nhất gồm những người mà công việc của họ liên quan hàng ngày đến CSDL, đó là những người quản trị CSDL, thiết kế CSDL, sử dụng CSDL, phân tích hệ thống và lập trình ứng dụng Nhóm thứ hai gồm những người làm việc để duy trì môi trường

hệ CSDL nhưng không quan tâm đến bản thân CSDL, đó là những người thiết kế

và cài đặt hệ quản trị CSDL, phát triển công cụ, thao tác viên và bảo trì

✓ Có hai loại kiến trúc hệ CSDL: tập trung và phân tán, hệ CSDL tập trung, tập tất

cả các dữ liệu được định vị tại một trạm đơn lẻ Những người sử dụng tại các trạm

từ xa nói chung có thể truy nhập CSDL thông qua các công cụ truyền thông dữ liệu

✓ Mô hình dữ liệu là một tập các khái niệm và kí pháp dùng để mô tả dữ liệu, các

mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức

✓ Mô hình phân cấp và mô hình mạng được xếp vào thế hệ đầu của CSDL Thế hệ

thứ hai của các hệ quản trị CSDL có mô hình quan hệ Các mô hình này được xem

là mô hình cổ điển Mô hình mới nhất được xếp vào thế hệ thứ ba của CSDL là mô hình hướng đối tượng, mô hình phân tán, mô hình suy diễn

✓ Mô hình ER là mô hình dữ liệu khái niệm bậc cao, hỗ trợ cho việc thiết kế CSDL

và nhiều công cụ thiết kế CSDL, sử dụng các khái niệm của nó

✓ Một kiểu thực thể là một đối tượng hay một khái niệm được xác định là tồn tại một

cách độc lập trong một tổ chức Một thực thể là một thể hiện của một kiểu thực thể

✓ Một kiểu liên kết là một tập các kết hợp có ý nghĩa giữa các kiểu thực thể Một liên

kết là một thể hiện của một kiểu liên kết, nó là một kết hợp bao gồm một số thực thể, trong đó mỗi thực thể thuộc một kiểu thực thể tham gia liên kết

✓ Một thuộc tính là một đặc tính (tính chất) của một kiểu thực thể hay của một kiểu

liên kết

Trang 34

CÂU HỎI ÔN TẬP CHƯƠNG 1

1.1 CSDL là gì? Tại sao phải sử dụng CSDL? Trình bày các ưu nhược điểm của CSDL?

1.2 Các ứng dụng của CSDL trong cuộc sống

1.3 Phân biệt các khái niệm dữ liệu, CSDL, hệ quản trị CSDL, hệ CSDL

1.4 Hệ quản trị CSDL? Các thành phần chính của hệ quản trị CSDL và các chức năng của chúng?

1.5 Phân biệt vai trò của những người sau đây đối với một hệ CSDL:

1.7 Trình bày các ưu nhược điểm của một hệ CSDL

1.8 Các mô hình dữ liệu cơ bản? Cho ví dụ đối với từng mô hình

1.9 Vì sao các hệ CSDL theo mô hình quan hệ được sử dụng rộng rãi?

1.10 Theo anh/chị, liên kết giữa các bảng (quan hệ) được dựa trên thuộc tính nào?

1.11 So sánh ưu và nhược điểm của CSDL tập trung và CSDL phân tán?

1.12 Mô hình CSDL phân cấp là gì?

1.13 Đặc trưng của mô hình CSDL mạng?

1.14 Anh/chị hãy giải thích các thuật ngữ sau: Thực thể, tập thực thể, thuộc tính, khóa, mô hình ER?

1.15 Phân biệt các khái niệm: thực thể và kiểu thực thể, liên kết và kiểu liên kết

1.16 Theo anh/chị, quá trình thiết kế mô hình ER nằm trong giai đoạn nào của quá trình thiết kế một CSDL

Trang 35

BÀI TẬP CHƯƠNG 1 Bài 1.1 Dựa vào những khái niệm đã học, hãy biểu diễn CSDL có các loại mẫu tin

phòng, nhân viên, công việc, lý lịch đã theo cách tiếp cận mạng

• Loại liên hệ là mạng

• Mỗi nhân viên có một lý lịch; mỗi lý lịch chỉ thuộc 1 nhân viên duy nhất

• Mỗi phòng ban có từ mộtđến nhiều nhân viên Mỗi nhân viên chỉ thuộc một phòng ban nhất định

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

• Mỗi nhân viên không có, có một hoặc nhiều nhân viên là thân nhân

Bài 1.2 Dựa vào những khái niệm đã học, hãy biểu diễn CSDL có các loại mẫu tin

phòng, nhân viên, công việc, lý lịch đã theo cách tiếp cận phân cấp

• Loại liên hệ là phân cấp

• Phòng có nhiều nhân viên; mỗi nhân viên chỉ thuộc 1 phòng duy nhất

• Công việc có nhiều nhân viên cùng làm; mỗi nhân viên chỉ làm một công việc duy nhất

• Mỗi nhân viên có một lý lịch; mỗi lý lịch chỉ thuộc 1 nhân viên duy nhất

Bài 1.3 Dựa vào những khái niệm đã học, hãy biểu diễn CSDL về Tổng điều tra số

dân toàn quốc 0 giờ ngày 01 tháng 01 năm 1989 có các loại mẫu tin Tỉnh (Thành phố), Quận (huyện), Phường (xã), Địa bàn, hộ điều tra và nhân khẩu đã trình bày trong mô hình phân cấp theo cách tiếp cận mạng

• Loại liên hệ phân mạng là loại "thuộc về"

• Nhân khẩu (thì) thuộc một hộ điều tra

• Hộ điều tra (thì) thuộc một địa bàn

• Địa bàn điều tra (thì) thuộc một phường (xã)

• Phường (xã) thuộc một quận (huyện)

• Quận (huyện) thuộc một tỉnh (thành phố)

Bài 1.4 Hãy xây dựng mô hình thực thể liên kết của bài toán sau

Công ty TNHH Kim Ngân cần xây dựng CSDL để quản lý thông tin về sản phẩm và quá trình mua/bán sản phẩm gồm các thông tin:

• Thông tin về sản phẩm: mỗi sản phẩm có một mã sản phẩm duy nhất, tên sản phẩm, đơn vị tính, đơn giá, xuất xứ

• Thông tin về loại sản phẩm: mỗi loại sản phẩm có một mã loại duy nhất, tên loại

• Thông tin về khách hàng: mỗi khách hàng có một mã số khách hàng duy nhất, họ tên khách hàng, giới tính, nghề nghiệp, địa chỉ, số điện thoại, email

• Thông tin về nhà cung cấp: mỗi nhà cung cấp có một mã nhà cung cấp duy nhất, tên nhà cung cấp, địa chỉ, số điện thoại, số tài khoản

Trang 36

• Mỗi loại sản phẩm gồm nhiều sản phẩm, nhưng mỗi sản phẩm chỉ thuộc một loại sản phẩm

• Mỗi khách hàng có thể mua một hoặc nhiều sản phẩm, ngược lại mỗi sản phẩm cũng có thể được mua bởi một hoặc nhiều khách hàng, thông tin về các sản phẩm khách hàng mua gồm: tên sản phẩm, số lượng xuất, ngày xuất

• Mỗi nhà cung cấp có thể cung cấp một hoặc nhiều sản phẩm, ngược lại mỗi sản phẩm cũng được cung cấp bởi một hoặc nhiều nhà cung cấp, thông tin

về các sản phẩm nhà cung cấp nhập gồm: tên sản phẩm, số lượng nhập , ngày nhập

Bài 1.5 Hãy xây dựng mô hình thực thể liên kết của bài toán sau

Giám đốc khách sạn Phương Nam cần xây dựng CSDL để quản lý các thông tin

Bài 1.6 Hãy xây dựng mô hình thực thể liên kết của bài toán sau

Công ty Tuấn Phát cần xây dựng CSDL quản lý thông tin về các dự án mà công

ty đã và đang thực hiện, CSDL gồm các thông tin sau:

• Thông tin về nhân viên: mỗi nhân viên có mã nhân viên duy nhất, họ tên nhân viên, giới tính, địa chỉ, số điện thoại, trình độ, chức vụ

• Thông tin về dự án: mỗi dự án có mã dự án duy nhất, tên dự án, địa điểm triển khai, ngày bắt đầu, thời gian thực hiện dự kiến, vốn đầu tư

• Thông tin về nhiệm vụ: mỗi nhiệm vụ có mã nhiệm vụ duy nhất, tên nhiệm

vụ, kỹ năng, thời gian, khối lượng công việc

• Thông tin về công cụ: mỗi công cụ có mã công cụ duy nhất, tên công cụ, yêu cầu sử dụng

Trang 37

• Mỗi dự án có nhiều nhân viên tham gia và mỗi nhân viên có thể làm việc tại nhiều dự án; với mỗi dự án một nhân viên có số lượng ngày công đã tham gia vào dự án đó

• Một dự án gồm nhiều nhiệm vụ khác nhau, nhưng một nhiệm vụ chỉ thuộc

về một dự án

• Mỗi nhiệm vụ sử dụng nhiều công cụ lao động khác nhau và mỗi công cụ có thể sử dụng ở nhiều nhiệm vụ

Bài 1.7 Hãy xây dựng mô hình thực thể liên kết của bài toán sau

Để tổ chức cho sinh viên đi thực tập tốt nghiệp, Khoa CNTT&TT cần có các thông tin sau:

• Thông tin về cơ quan gồm: tên cơ quan, địa chỉ, số điện thoại, loại cơ quan (nhà nước, tư nhân, liên doanh, ), họ tên những người phụ trách nhận quản

lý sinh viên thực tập

• Thông tin về sinh viên gồm: mã số sinh viên, họ tên sinh viên, số điện thoại, email, ngày sinh, giới tính, nhóm đề tài

• Thông tin về giáo viên: mã giáo viên, họ tên giáo viên, giới tính, chức danh,

số điện thoại, tên các cơ quan đã từng đến hướng dẫn sinh viên và năm tương ứng

• Mỗi sinh viên chỉ được thực tập tại một cơ quan với một giáo viên hướng dẫn riêng và có một người của đơn vị thực tập quản lý

• Một cơ quan có thể tiếp nhận đồng thời nhiều sinh viên

• Mỗi giáo viên cũng có thể hướng dẫn nhiều sinh viên, một người của đơn vị thực tập có thể quản lý nhiều sinh viên

• Các sinh viên thực tập tại cùng một cơ quan không nhất thiết phải có cùng giáo viên hướng dẫn và cùng người quản lý thực tập

Trang 38

CƠ SỞ DỮ LIỆU MẪU

Nhằm mục đích cho người đọc dễ dàng quan sát và hiểu ý nghĩa của CSDL trong các vấn đề thực tế Đồng thời giúp quá trình đọc tài liệu được dễ dàng và xuyên suốt hơn nhóm tác giả sẽ trình bày một CSDL dữ liệu mẫu đơn giản về hệ thống quản

lý điểm thi học phần của sinh viên Trong suốt quá trình đọc ở các phần sau, chúng tôi

sẽ cố gắng tối đa việc đưa ra các ví dụ minh họa dựa trên cơ sở dữ liệu này Kết quả là người đọc sẽ nắm vững và thành thạo hơn các kĩ năng về CSDL cũng như trải nghiệm các kiến thức thực tế Điều này cũng là tiền đề cho các miền kiến thức tiếp theo như phân tích thiết kế hệ thống, thiết kế là lập trình ứng dụng…

Trường Đại học X cần xây dựng hệ thống thông tin để quản lý điểm học phần của sinh viên, và thống kê kết quả học tập của sinh viên theo lớp, theo khoa Như vậy,

hệ thống cần quản lý thông tin về các đối tượng trong thế giới thực gồm SINH VIÊN, HỌC PHẦN, LỚP, KHOA; và thông tin cụ thể về từng đối tượng gồm:

- Thông tin về HỌC PHẦN gồm: Mã học phần, tên học phần, số tín chỉ, mô tả,…

- Thông tin về SINH VIÊN gồm: Mã sinh viên, họ tên sinh viên, giới tính, ngày sinh, quê quán, số điện thoại,…

- Thông tin về LỚP gồm: Mã lớp, Tên lớp, Năm nhập học,…

- Thông tin về KHOA gồm: Mã khoa, Tên khoa, địa chỉ, số điện thoại,…

Các đối tượng SINH VIÊN, HỌC PHẦN, LỚP, KHOA có các mối quan hệ như sau:

- Mỗi KHOA gồm nhiều LỚP, nhưng mỗi LỚP chỉ chịu sự quản lý về mặt hành chính của một KHOA

- Mỗi SINH VIÊN thuộc một và chỉ một LỚP, mỗi LỚP có thể gồm nhiều SINH VIÊN

- Mỗi HỌC PHẦN được học bởi một hoặc nhiều SINH VIÊN, và mỗi SINH VIÊN cũng phải học nhiều HỌC PHẦN Kết quả của mỗi lần học là Điểm

Với mô tả như trên, ta sẽ có lược đồ CSDL như sau:

SINH_VIEN (MaSV, HoTenSV, NamSinh, GioiTinh, QueQuan, MaLop) là

lược đồ quan hệ của Sinh viên

Tân từ “Mỗi sinh viên có một họ và tên, năm sinh, giới tính, quê quán, và

được cấp một mã sinh viên duy nhất để phân biệt với mọi sinh viên khác trong trường; sinh viên được ghi danh vào một lớp học duy nhất trong trường ”

LOP (MaLop, TenLop, MaKhoa) là lược đồ quan hệ của Lớp

Trang 39

Tân từ: “Mỗi lớp học có một mã số quy ước duy nhất để phân biệt với tất cả các

lớp học khác; có một tên gọi của lớp học và thuộc một khoa của trường”

KHOA (MaKhoa, TenKhoa, ĐC, SĐT) là lược đồ quan hệ của Khoa

Tân từ: “Mỗi khoa có một tên gọi, một địa chỉ, một số điện thoại và một mã số

duy nhất để phân biệt với tất cả các khoa khác của trường”

HOC_PHAN (MaHP, TenHP, SoTC, MoTa) là lđqh của Học phần

Tân từ: “Mỗi học phần có một tên gọi cụ thể, có một mô tả, được học trong một

số tín chỉ nhất định và ứng với học phần là một mã học phần duy nhất để phân biệt với mọi học phần khác”

KET_QUA (MaHP, MaSV, Diem, LanThi)

Tân từ: “Mỗi sinh viên học một học phần có một kết quả là điểm”

Trang 40

CHƯƠNG 2 MÔ HÌNH DỮ LIỆU QUAN HỆ

Mô hình dữ liệu quan hệ là mô hình phổ biến và quan trọng, được E.Codd đưa

ra vào năm 1970 Một trong những ưu điểm của mô hình dữ liệu quan hệ là có hỗ trợ các ngôn ngữ khai báo, khá đơn giản nhưng hiệu quả và các phép toán trên dữ liệu Các phép toán này có thể tổ hợp và phân tách dễ dàng nhờ vào một hệ thống kí hiệu đại số gọi là đại số quan hệ (relational algebra) Chương 2 giới thiệu các vấn đề từ cơ bản đến nâng cao, từ tổng quát đến chi tiết của mô hình dữ liệu quan hệ

➢ Các khái niệm cơ bản của mô hình dữ liệu quan hệ

➢ Các khái niệm khoá chính, khoá ngoài, siêu khoá

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

➢ Các phép toán trên CSDL quan hệ

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

2.1.1 Thuộc tính

Thuộc tính (Attribute) là một tính chất riêng biệt của một đối tượng cần được

lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng [4] [7] Thuộc

tính được xác định bởi tên gọi, kiểu giá trị và miền giá trị

Ví dụ 2.1

• Đối tượng HỌC PHẦN (tương ứng với loại thực thể HỌC PHẦN trong mô

hình thực thể kết hợp)vcó một số thuộc tính Mã học phần, Tên học phần, Số

tín chỉ

• Đối tượng SINH VIÊN có một số thuộc tính Mã sinh viên, Họ tên sinh viên,

Năm sinh, Giới tính, Quê quán

• Nhóm (tập hợp) các thuộc tính được kí hiệu bằng các chữ cái: X, Y, W, Z

• Trường hợp tổng quát hay muốn đề cập đến số ngôi (hay số lượng các thuộc

tính) của một quan hệ: dùng các kí hiệu chữ cái với các chỉ số A1, A2, ,

An

Thực tế, ta thường đặt tên thuộc tính theo ngữ nghĩa, vì vậy để dễ đọc, dễ nhớ,

ta đặt tên cho các thuộc tính với các chữ in hoa đầu từ hoặc viết cách nhau bởi dấu

gạch chân (Underscore:_ ), ví dụ: NamSinh hoặc Nam_Sinh Trong các ví dụ của tài

liệu này, ta ngầm định qui tắc tên thuộc tính được viết bằng tiếng Việt có chữ cái đầu

tiên được viết in hoa

Trong cài đặt cụ thể với một hệ quản trị CSDL cần lưu ý đến khía cạnh đặt tên cho các bảng cũng như tên của thuộc tính Trong hầu hết các ngôn ngữ lập trình nói chung và một số ngôn ngữ quản trị CSDL nói riêng, tên đối tượng (tên biến, tên quan

hệ hay tên thuộc tính ) đều chỉ được phép viết bằng các chữ cái La tinh, chữ số

Ngày đăng: 18/11/2021, 23:16

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