1. Trang chủ
  2. » Thể loại khác

Bài giảng cơ sở dữ liệu it06 Đại học mở hà nội

124 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 124
Dung lượng 3,37 MB

Nội dung

BÀI 1: CÁC KHÁI NIỆM CƠ BẢN – MÔ HÌNH THỰC THỂ Cơ sở dữ liệu (Database – viết tắt là CSDL) là lĩnh vưc nghiên cứu các mô hình, nguyên lý, phương pháp tổ chức dữ liệu trên các vật mang tin. Cơ sở dữ liệu đã trở thành một thành phần chủ yếu trong cuộc sống hàng ngày của xã hội hiện đại. Tại mỗi thời điểm con người thực hiện nhiều hoạt động cần có giao tiếp với cơ sở dữ liệu như: rút tiền và gửi tiền trong ngân hàng, đăng ký chỗ trên máy bay và khách sạn, truy cập và tra cứu tài liệu trong thư viện, đặt mua hàng trực tuyến trên mạng, … Tương ứng, tại các ngân hàng, các cửa hàng, các công ty và các đại lý, người ta cũng cập nhật tự động dữ liệu để quản lý tiền bạc và hàng hóa. Tất cả các ứng dụng trên đều được gọi là ứng dụng cơ sở dữ liệu truyền thống. Trong đó, hầu hết các thông tin được lưu trữ và truy cập là các văn bản hoặc số. Những năm gần đây do các tiến bộ về mặt công nghệ và kỹ thuật đã đưa đến các ứng dụng mới của cơ sở dữ liệu. Các hệ cơ sở dữ liệu đa phương tiện bây giờ có thể lưu trữ và xử lý hình ảnh, phim và tiếng nói. Các hệ thông tin địa lý có thể lưu trữ và phân tích bản đồ, các dữ liệu thời tiết và các ảnh vệ tinh. Ngày nay, kho dữ liệu và hệ thống phân tích trực tuyến được sử dụng nhiều trong các công ty để lấy ra và phân tích những thông tin có lợi từ các cơ sở dữ liệu lớn nhằm đưa ra các quyết định. Các kỹ thuật cơ sở dữ liệu động và thời gian thực được sử dụng trong kiểm tra tiến trình công nghiệp và sản xuất. Các kỹ thuật tìm kiếm cơ sở dữ liệu đang được sử dụng nhiều cho World Wide Web để cung cấp việc tìm kiếm các thông tin cần thiết cho người sử dụng bằng cách duyệt qua Internet. Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các cơ sở kỹ thuật của cơ sở dữ liệu truyền thống. Mục đích của giáo trình này là nghiên cứu các kỹ thuật đó. Trong chương này, chúng ta sẽ tìm hiểu định nghĩa cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu và một số thuật ngữ cơ bản khác.

Trang 1

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

BÀI 1: CÁC KHÁI NIỆM CƠ BẢN – MÔ HÌNH THỰC

THỂ

Cơ sở dữ liệu (Database – viết tắt là CSDL) là lĩnh vưc nghiên cứu các mô hình, nguyên lý, phương pháp tổ chức dữ liệu trên các vật mang tin

Cơ sở dữ liệu đã trở thành một thành phần chủ yếu trong cuộc sống hàng ngày của

xã hội hiện đại Tại mỗi thời điểm con người thực hiện nhiều hoạt động cần có giao tiếp với cơ sở dữ liệu như: rút tiền và gửi tiền trong ngân hàng, đăng ký chỗ trên máy bay và khách sạn, truy cập và tra cứu tài liệu trong thư viện, đặt mua hàng trực tuyến trên mạng,

… Tương ứng, tại các ngân hàng, các cửa hàng, các công ty và các đại lý, người ta cũng cập nhật tự động dữ liệu để quản lý tiền bạc và hàng hóa

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

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

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

kỹ thuật của cơ sở dữ liệu truyền thống Mục đích của giáo trình này là nghiên cứu các kỹ thuật đó Trong chương này, chúng ta sẽ tìm hiểu định nghĩa cơ sở dữ liệu, hệ quản trị cơ

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

I CƠ SỞ DỮ LIỆU

1.1 Cơ sở dữ liệu là gì

Dữ liệu (Data): Các thông số, đặc trưng cơ bản có thực và thu thập được của một

đối tượng cần quản lý Ví dụ: đối tượng cần quản lý là sinh viên, khi đó dữ liệu về 1 sinh

viên là họ tên, ngày sinh, giới tính, quê quán, lớp, khoa, trường, kết quả học tập, của sinh viên đó

File dữ liệu hay bảng dữ liệu (Data File hoặc Data Table): Là một file hoặc một

bảng lưu trữ các dữ liệu về cùng một loại đối tượng và có chung một ý nghĩa sử dụng Các dữ liệu đó có cùng cấu trúc và được lưu trữ dưới dạng bản ghi trong 1 danh sách được đánh chỉ số hoặc trên bộ nhớ ngoài của máy tính

Cơ sở dữ liệu (DataBase): Là tập các file hoặc các bảng dữ liệu có quan hệ với

nhau và có chung một ý nghĩa sử dụng

Trang 2

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Ví dụ cơ sở dữ liệu phục vụ cho công tác tuyển sinh gồm một số bảng dữ liệu sau: bảng dữ liệu hồ sơ thí sinh, bảng dữ liệu quản lý thi, bảng dữ liệu quản lý đánh phách, các bảng dữ liệu quản lý điểm các môn thi theo số phách Các bảng này chứa các dữ liệu về các thi sinh của một hội đồng tuyển sinh

Cơ sở dữ liệu hiện nay bao gồm các loại dữ liệu cơ bản như: âm thanh, tiếng nói, chữ viết, văn bản, đồ họa, hình ảnh tĩnh hay hình ảnh động, … được mã hóa dưới dạng các chuỗi bit và được lưu dưới dạng file dữ liệu trong bộ nhớ của máy tính Cấu trúc dữ liệu được mô tả theo quy tắc dựa trên lý thuyết toán học

Cơ sở dữ liệu là tài nguyên thông tin dùng chung cho nhiều người khác nhau, bất kỳ người nào sử dụng trên máy tính hay tại các thiết bị đầu cuối về mặt nguyên tắc đều có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo chế độ trực tuyến hay tương tác không phụ thuộc vào vị trí địa lý của người sử dụng với các tài nguyên đó

Khi xây dựng một cơ sở dữ liệu của bài toán cần đảm bảo tối thiểu các yêu cầu sau:

Tính cấu trúc: Dữ liệu trong CSDL phải được lưu trữ theo một cấu trúc nhất định

nào đó tương ứng với yêu cầu bài toán hoặc thực tế

Tính toàn vẹn: Các giá trị dữ liệu được lưu trữ phải thỏa mãn một số ràng buộc, tùy

thuộc vào hoạt động của tổ chức mà CSDL phản ánh

Tính nhất quán: Sau các thao tác cập nhật dữ liệu và ngay cả khi có sự cố xảy ra thì

dữ liệu trong CSDL vẫn phải đảm bảo được tính đúng đắn tương ứng với thực tế

Tính an toàn và bảo mật: CSDL cần được bảo vệ an toàn, ngăn được những truy

xuất không được phép và phải khôi phục được CSDL khi có sự cố

Tính độc lập: một CSDL phục vụ cho nhiều mục đích khai thác khác nhau vì vậy dữ

liệu độc lập với ứng dụng, không phụ thuộc vào bài toán cụ thể, phương tiện lưu trữ và

xử lý

Tính không dư thừa: không được lưu trữ những dữ liệu trùng lặp hay những thông

tin có thể dễ dàng tính toán từ dữ liệu khác

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

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

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

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

Trang 3

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

- Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang

ý nghĩa nhất định nào đó Một cơ sở dữ liệu không phải là một tập hợp tùy tiện

Một cơ sở dữ liệu thường có một kích thước tùy ý và có độ phức tạp thay đổi Có

những cơ sở dữ liệu chỉ có vài chục hoặc vài trăm bản ghi (như cơ sở dữ liệu quản lý

lương của một doanh nghiệp nhỏ) và cũng có những cơ sở dữ liệu có dung lượng rất lớn

lên đến hàng nghìn bản ghi (như cơ sở dữ liệu tính toán cước phí điện thoại hoặc ngân

hàng) Cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm

kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết Một cơ sở dữ liệu có thể được tạo ra và duy trì một cách thủ công và cũng có thể được tin học hóa Một cơ sở dữ liệu được tin học hóa tạo ra và duy trì bằng một nhóm chương trình ứng dụng hoặc bằng một hệ quản trị cơ sở dữ liệu

1.3 Sự cần thiết của cơ sở dữ liệu

Việc tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu có những ưu điểm sau:

- Giảm bớt dư thừa dữ liệu trong lưu trữ: trong các ứng dụng lập trình truyền thống như lập trình C/C++ thì phương pháp tổ chức lưu trữ dữ liệu vừa tốn kém, lãng phí bộ nhớ và các thiết bị lưu trữ, vừa dư thừa thông tin lưu trữ Ví dụ trong bài toán “quản lý điểm sinh viên” và “quản lý giảng dạy giáo viên”, tương ứng với mỗi bài toán thì một chương trình cần lưu trữ trên một dữ liệu riêng biệt, độc lập với nhau Tuy nhiên, trong cả hai chương trình cùng xử lý chung một số thuộc tính chung như mã môn học, tên môn học, số học trình,… Như vậy với cách lưu trữ truyền thống thì các dữ liệu được mô tả độc lập với nhau và lưu trữ hoàn toàn độc lập với nhau vì vậy gây ra sự dư thừa và tốn bộ nhớ Nếu tổ chức lưu trữ theo lý thuyết cơ sở dữ liệu thì có thể hợp nhất các tệp lưu trữ của các bài toán trên lại và cho phép các chương trình có thể cùng chia sẻ tài nguyên trên cùng một cơ sở dữ liệu

- Tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu sẽ tránh được sự không nhất quán trong lưu trữ dữ liệu và bảo đảm được tính toàn vẹn của dữ liệu Nếu một thuộc tính được mô tả trong nhiều tệp dữ liệu khác nhau và lặp lại nhiều lần trong các bản ghi, khi thực hiện việc cập nhật, sửa đổi và bổ sung sẽ không sửa hết các nội dung của các mục

đó Nếu dữ liệu càng nhiều thì sự sai sót khi cập nhật, bổ sung càng lớn Khả năng xuất hiện mâu thuẫn, không thống nhất, không nhất quán thông tin càng nhiều từ đó dẫn đến

sự nhập nhằng trong việc lưu trữ dữ liệu Do đó, kéo theo sự dị thường thông tin, thừa, thiếu và mâu thuẫn thông tin Không thể có môn học ngoài quy định của khoa quản lý hoặc ngày sinh của sinh viên được xây dựng sau ngày ra trường tốt nghiệp của sinh viên,

- Tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu có thể triển khai đồng thời nhiều ứng dụng trên cùng một cơ sở dữ liệu: điều này có nghĩa là các ứng dụng không chỉ chia sẻ chung tài nguyên dữ liệu mà còn trên cùng một cơ sở dữ liệu có thể triển khai đồng thời nhiều ứng dụng khác nhau tại các thiết bị đầu cuối

Trang 4

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

2.1 Định nghĩa hệ quản trị cơ sở dữ liệu

Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng tạo lập, cập nhật và khai thác mọi cơ sở dữ liệu Nó là một hệ thống phần mềm phổ dụng, làm dễ dàng quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau

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

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

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

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

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

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

Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hóa có thể

là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một tập các phần mềm được tạo ra với một mục đích riêng)

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

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

- Mô tả dữ liệu tạo lập và duy trì sự tồn tại của cơ sở dữ liệu

- Cho phép truy xuất vào cơ sở dữ liệu theo thẩm quyền đã được cấp

- Cập nhật, chèn thêm loại bỏ hay sửa đổi dữ liệu vào tệp

- Tạo mối liên kết giữa các thực thể

- Đảm bảo tính độc dữ liệu, tức là cấu trúc dữ liệu độc lập với các ứng dụng chương trình

Trang 5

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

- Cung cấp các phương tiện sao lưu và phục hồi dữ liệu

2.3 Các thành phần của một hệ quản trị cơ sở dữ liệu

Một hệ quản trị cơ sở dữ liệu thông thường có các thành phần chính sau:

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

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

- Ngôn ngữ truy vấn dữ liệu (Structured Query Language)

2.4 Các loại giao diện trong hệ quản trị cơ sở dữ liệu

Các hệ quản trị cơ sở dữ liệu hiện nay cung cấp rất nhiều loại giao diện người dùng thân thiện, các loại giao diện chính gồm có:

- Giao diện dựa trên bảng chọn: các giao diện này cung cấp cho người sử dụng

danh sách các lựa chọn, gọi là bảng chọn và hướng dẫn người sử dụng diễn đạt một yêu cầu từ đầu đến cuối Các bảng chọn làm cho người sử dụng không cần nhớ lệnh và cú pháp của ngôn ngữ truy vấn Các bảng chọn thả xuống đã trở thành kỹ thuật phổ biến hiện nay trong các giao diện dựa trên cửa sổ Chúng thường được sử dụng trong các giao diện quét, cho phép người sử dụng nhìn thấy nội dung của một cơ sở dữ liệu theo cách không có cấu trúc

- Giao diện dựa trên mẫu biểu: các giao diện dạng này biểu thị một mẫu biểu cho

người sử dụng Những người sử dụng có thể điền vào tất cả các ô của mẫu biểu có sẵn để nhập vào các dữ liệu mới hoặc họ chỉ điền vào một số ô còn hệ quản trị cơ sở dữ liệu sẽ đưa ra các dữ liệu phù hợp cho các ô còn lại Các mẫu biểu thường được thiết kế và được lập trình cho các người dùng đơn giản Một số hệ thống có các tiện ích giúp người sử dụng từng bước xây dựng một mẫu biểu trên màn hình

- Giao diện đồ họa: giao diện đồ họa thường hiển thị một lược đồ cho người sử

dụng dưới dạng biểu đồ Người dùng có thể thực hiện truy vấn bằng cách thao tác trên biểu đồ Trong nhiều trường hợp, giao diện đồ họa sử dụng cả các bảng chọn và các mẫu biểu Đa số các giao diện đồ họa sử dụng các công cụ trỏ như chuột, phím để chọn các phần của sơ đồ

- Giao diện cho người quản trị hệ thống: đa số các hệ quản trị cơ sở dữ liệu có

các lệnh ưu tiên, chỉ có những người quản trị hệ thống mới sử dụng các lệnh đó Ví dụ như các lệnh thao tác tạo ra các tài khoản, đặt các tham số cho hệ thống, cấp các tài khoản, thay đổi lược đồ hoặc tổ chức lại các cấu trúc lưu trữ của cơ sở dữ liệu

Trang 6

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

3 MÔ HÌNH DỮ LIỆU

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

Một cơ sở dữ liệu được mô tả theo 3 mức trừu tượng khác nhau phụ thuộc vào đối tượng nghiên cứu và sử dụng cơ sở dữ liệu: Mức vật lý, mức khái niệm và mức khung nhìn

a Cơ sở dữ liệu mức vật lý

Một tập hợp các file (bảng) dữ liệu, các chỉ mục hoặc những cấu trúc khác dùng để lưu trữ và truy xuất dữ liệu một cách hiệu quả gọi là cơ sở dữ liệu mức vật lý Cơ sở dữ liệu mức vật lý tồn tại thường xuyên trong các thiết bị lưu trữ (như đĩa từ, băng từ, )

b Cơ sở dữ liệu mức khái niệm

Cơ sở dữ liệu mức khái niệm là sự trừu tượng hóa của thế giới thực với mục đích

mô tả cơ sở dữ liệu trong quá trình nghiên cứu, thiết kế cơ sở dữ liệu Các Hệ quản trị cơ

sở dữ liệu cung cấp ngôn ngữ định nghĩa dữ liệu (Data Definition Language – DDL) để

mô tả cơ sở dữ liệu mức khái niệm và ngôn ngữ thao tác dữ liệu trên cơ sở dữ liệu mức khái niệm (Data Manipulation Language)

Cơ sở dữ liệu mức vật lý là sự cài đặt cụ thể của cơ sở dữ liệu mức khái niệm

c Cơ sở dữ liệu mức khung nhìn

Khung nhìn (View) hay lược đồ con (SubScheme) là một phần của cơ sở dữ liệu khái niệm hoặc trừu tượng hóa một phần của cơ sở dữ liệu mức khái niệm Đây là cách nhìn của người sử dụng đối với cơ sở dữ liệu

Hầu hết các hệ quản trị cơ sở dữ liệu đều cung cấp những phương tiện để khai báo khung nhìn được gọi là ngôn ngữ định nghĩa dữ liệu lược đồ con (Subscheme Data Definition Language) và các phương tiện để diễn đạt các câu truy vấn, thao tác dữ liệu lược đồ con (Subscheme Data Manipulation Language)

Các khung nhìn có vai trò quan trọng trong việc bảo mật hệ thống cơ sở dữ liệu, chỉ những người có nhu cầu và quyền hạn mới có thể đọc được các file dữ liệu dành cho họ

3.2 Mô hình dữ liệu

a Khái niệm mô hình dữ liệu

Cơ sở dữ liệu mức khái niệm

Khung nhìn 1

Khung nhìn 2

Khung nhìn n

Cơ sở dữ liệu mức vật lý

Trang 7

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Mô hình dữ liệu (Data Model) là tập hợp các khái niệm dùng để mô tả cấu trúc

của một hệ cơ sở dữ liệu Cấu trúc hệ cơ sở dữ liệu bao gồm kiểu dữ liệu, các quan hệ, và các ràng buộc có thể có của dữ liệu Hầu hết các mô hình dữ liệu đều kèm theo các thao tác cơ sở dành cho việc tìm kiếm cơ bản và cập nhật dữ liệu, ngoài ra các mô hình dữ liệu còn cho phép người sử dụng tự định nghĩa thêm các thao tác mới

Như vậy để có thể mô tả các hệ cơ sở dữ liệu trong quá trình thiết kế chúng ta cần

sử dụng các mô hình dữ liệu

Mỗi mô hình dữ liệu đều có mục đính riêng của mình Các mô hình dữ liệu được phân loại dựa trên cơ sở những khái niệm của mô hình dùng để mô tả cấu trúc của cơ sở

dữ liệu

Mô hình dữ liệu có thể hiểu là hệ hình thức toán học gồm có hai phần:

- Một hệ thống các ký hiệu để mô tả dữ liệu

- Một tập hợp các phép toán thao tác trên dữ liệu đó

Mô hình dữ liệu khi được xây dựng dựa vào một số đặc trưng:

- Tính ổn định khi thiết kế mô hình dữ liệu

- Tính đơn giản: dễ hiểu và dễ thao tác

- Tính dư thừa phải kiểm tra kỹ càng

- Cơ sở lý thuyết vững chắc

Dựa trên mục đích sử dụng người phân loại mô hình dữ liệu thành 3 dạng:

Mô hình dữ liệu mức ngoài dùng để mô tả cơ sở dữ liệu cho người sử dụng

Mô hình dữ liệu mức quan niệm đưa ra các khái niệm mô tả cơ sở dữ liệu mức

khái niệm, mô hình dữ liệu mức quan niệm là cách nhìn dữ liệu một cách tổng quát của người sử dụng Nghĩa là có rất nhiều cách nhìn dữ liệu ở mô hình ngoài, nhưng chỉ có duy nhất một cách nhìn dữ liệu ở mức quan niệm Và việc biểu diễn toàn bộ thông tin trong cơ sở dữ liệu là duy nhất

Mô hình dữ liệu mức vật lý dùng mô tả cơ sở dữ liệu mức vật lý bao gồm chi tiết

cách thức lưu trữ dữ liệu trên máy tính, các khái niệm trong mô hình dữ liệu mức vật lý

có ý nghĩa với các đặc trưng của máy tính chứ không dành cho người sử dụng

b Ý nghĩa của mô hình dữ liệu

Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng các

mô hình Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực Mô hình cơ sở dữ liệu là tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu Một số mô hình còn có thêm một tập hợp các phép toán

cơ bản để đặc tả thao tác trên cơ sở dữ liệu

Khi thiết kế mô hình nếu thiết kế tốt sẽ đưa ra các cơ sở dữ liệu tốt và trên cơ sở đó

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

và dẫn đến các ứng dụng không đúng

Trang 8

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Mô hình dữ liệu được xác định bởi một sơ đồ dữ liệu mô tả của nhiều kiểu thực thể, chẳng hạn như kiểu thực thể sinh viên, giáo viên, môn học, … Sơ đồ dữ liệu bao gồm các định nghĩa về các kiểu bản ghi, đó là các ràng buộc cho quyền và tính toàn vẹn thích hợp Những ràng buộc này chính là các tính chất của dữ liệu, tính liên kết các thuộc tính cùng một kiểu dữ liệu Các định nghĩa này không bao hàm về cấu trúc lưu trữ, cũng như về chiến lược truy nhập, chúng chỉ là các định nghĩa về nội dung thông tin, về tính độc lập của dữ liệu trong mô hình quan niệm

c Khái niệm lược đồ (Scheme) và thể hiện (Instance)

Ngoài việc phân chia các mức trừu tượng như trên, chúng ta còn một cách hiểu khác

về tính hai mặt của cơ sở dữ liệu đó là lược đồ và thể hiện Khi thiết kế cơ sở dữ liệu người ta quan tâm đến những hoạch định và cấu trúc trên cơ sở dữ liệu, điều đó được biểu diễn thông qua lược đồ của cơ sở dữ liệu; nhưng khi sử dụng người ta lại quan tâm đến dữ liệu thực sự tồn tại trong cơ sở dữ liệu, đó là thể hiện của cơ sở dữ liệu

Lược đồ dữ liệu thường được sử dụng để biểu diễn cơ sở dữ liệu mức khái niệm, thông qua các khái niệm của mô hình dữ liệu quan niệm Điều đó tạo ra sự ổn định của sơ

đồ dữ liệu vì mô hình quan niệm luôn ổn định Nếu lược đồ dữ liệu không ổn định thì các ứng dụng và mô hình ngoài cũng không ổn định Lược đồ dữ liệu chỉ được thay đổi khi

có sự điều chỉnh trong thế giới thực, đòi hỏi điều chỉnh lại định nghĩa sao cho phản ánh đúng và chính xác so với thực tế hơn

3.3 Một số mô hình dữ liệu

a Mô hình liên kết thực thể (Entity Relationship Model – ER): Là mô hình cho phép mô tả các thực thể thông qua các thuộc tính và mối liên hệ giữa các thực thể

b Mô hình cơ sở dữ liệu quan hệ

Mô hình dữ liệu quan hệ do E.F Codd đề xuất Nền tảng cơ bản của mô hình cơ sở

dữ liệu quan hệ là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập các bộ giá trị

Mô hình này tiến hành biểu thị dữ liệu trong một cơ sở dữ liệu như một tập các quan hệ và một quan hệ là một bảng gồm các dòng và các cột

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

Mô hình dữ liệu mạng (hay còn gọi là mô hình lưới) là mô hình được biểu diễn bởi một đồ thị có hướng

Các thành phần trong mô hình dữ liệu mạng:

- Loại mẫu tin (Record Type): là mẫu đặc trưng cho từng loại đối tượng riêng biệt, được biểu diễn bởi một hình chữ nhật

- Mẫu tin hay bản ghi (Record): là thể hiện cụ thể của loại mẫu tin

- Loại liên hệ (Set Type): là sự liên kết giữa một loại mẫu tin chủ với một loại mẫu tin thành viên, được biểu diễn bởi một hình bầu dục Trong loại liên hệ, cần chỉ ra số lượng các mẫu tin tham gia trong mỗi kết hợp Các loại liên hệ: 1-1: mỗi mẫu tin của mẫu

Trang 9

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

tin chủ chỉ kết hợp với đúng một mẫu tin thành viên; 1-n; n-1; Đệ quy: một loại mẫu tin chủ cũng có thể đồng thời là loại mẫu tin thành viên với chính nó

Sự liên kết giữa 2 loại mẫu tin được thể hiện bởi các cung có hướng đi từ loại mẫu tin chủ tới loại liên hệ và từ loại liên hệ tới loại mẫu tin thành viên

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

Mô hình dữ liệu phân cấp là một cây (Tree) trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với nhau theo một mối quan hệ xác định Trong mô hình phân cấp, loại mẫu tin được mô tả giống trong mô hình mạng Loại liên hệ: Kiểu liên hệ là phân cấp, theo cách: Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là thuộc một chủ duy nhất

Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1-n, và từ mẫu tin thành viên tới mẫu tin chủ là 1-1

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

Ví dụ: Mô hình phân cấp quản lý nhân khẩu cả nước

e Mô hình dữ liệu hướng đối tượng

Hiện nay, mô hình dữ liệu hướng đối tượng 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 Trong mô hình này sử dụng các khái niệm như lớp, sự kế thừa, kế thừa bội…

Phương pháp tiếp cận này còn mới mẻ và các hệ quản trị CSDL hướng đối tượng hiện nay vẫn chưa nhiều và chưa thuần nhất

f Mô hình dữ liệu kho dữ liệu

NK 1

HỘ 1

Trang 10

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Kho dữ liệu hay được viết là Data Warehouse Kho dữ liệu là một tập các dữ liệu có những đặt điểm sau: Tập trung vào một chủ đề, tổng hợp từ nhiều nguồn dữ liệu khác nhau, từ nhiều thời gian, và không sửa đổi

Thông thường mô hình kho dữ liệu được dùng trong việc hỗ trợ ra quyết định trong công tác quản lý

4 VÍ DỤ VỀ MỘT CƠ SỞ DỮ LIỆU

Chúng ta tìm hiểu về cơ sở dữ liệu mà chúng ta đang tiếp cận, đó là cơ sở dữ liệu QUẢN LÝ ĐIỂM SINH VIÊN Cơ sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên, các môn học, điểm sinh viên, … cơ sở dữ liệu được tổ chức thành các bảng: SINH VIÊN lưu giữ dữ liệu mô tả thông tin của một sinh viên, bảng MÔN HỌC lưu giữ các dữ liệu về một môn học, bảng HỌC PHẦN lưu giữ dữ liệu về học phần (lớp môn học) của các môn học, bảng ĐIỂM lưu giữ thông tin điểm của từng học phần của các sinh viên và bảng ĐIỀU KIỆN TIÊN QUYẾT lưu giữ các thông tin về môn học cần biết trước

đủ điều kiện được học môn tiếp theo

Trang 11

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

5 CÁC MÔ HÌNH TRUY XUẤT ĐẾN CƠ SỞ DỮ LIỆU

5.1 Mô hình cơ sở dữ liệu Client – Server

Mục đích chính khi kết nối các máy tính thành mạng là để chia sẻ các tài nguyên thông tin, một máy chủ cung cấp các loại dịch vụ cho nhiều máy khách thông qua môi trường mạng Lúc này, cả máy khách và máy chủ đều cùng tham gia quá trình xử lý, vì vậy mô hình Client – Server 2 lớp trở nên phổ biến Các máy khách (Client) chia sẻ gánh nặng xử lý của máy chủ trung tâm Khi máy khách có các yêu cầu ứng dụng, nó gửi yêu cầu về máy chủ được kết nối với cơ sở dữ liệu, máy chủ xử lý và gửi lại kết quả về máy khách

Trang 12

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Mô hình Client – Server 2 lớp

Trên máy chủ thường cài đặt các hệ cơ sở dữ liệu bao gồm các bảng biểu, các thủ

tục lưu trữ, … và điều khiển các tiến trình cơ bản: quản lý dữ liệu, bảo mật dữ liệu, thực

hiện truy vấn, ràng buộc và các thủ tục lưu trữ, điều khiển lỗi

Trên phía máy khách thường cài đặt các giao diện người sử dụng để người dùng đưa

ra các yêu cầu xử lý trên cơ sở dữ liệu tương ứng từ phía server

Tuy nhiên mô hình Client – Server vẫn còn một số bất cập:

- Mô hình Client/Server 2 lớp có hiệu quả cao với cac ứng dụng nhỏ và số lượng người sử dụng hạn chế Khi nhiều máy khách (Clients) kết nối truy nhập vào cơ sở dữ liệu thì năng lực quản lý & xử lý của máy chủ (Server) sẽ bị giảm xuống, tốc độ xử lý chậm

- Nhiều kết nối dữ liệu phải được duy trì

- Mã nguồn không có khả năng dùng sử dụng lại Một ứng dụng tồn tại trong nhiều khối mã nguồn khác nhau được cài đặt trên máy khách Vì vậy khi có sự thay đổi mã nguồn người ta cần phải cài đặt lại trên tất cả máy khách, điều này rất khó có thể thực hiện được

- Không có lớp trung gian điều khiển sự bảo mật và các giao dịch giữa máy khách

và máy chủ

5.2 Mô hình Client – Server nhiều tầng

Trong mô hình Client/Server 3 lớp (hay nhiều lớp), quá trình xử lý được phân tán trên 3 lớp khác nhau với các chức năng riêng biệt Vì vậy mô hình này rất thích hợp cho việc tổ chức hệ thống thông tin trên mạng Internet và mạng Intranet hay trong các mạng cục bộ Phát triển mô hình 3 lớp sẽ khắc phục được một số hạn chế xảy ra của mô hình 2 lớp Các hệ cơ sở dữ liệu được cài đặt trên các máy chủ Web Server và có thể được truy nhập không hạn chế các ứng dụng và số lượng người dùng

♦ Lớp khách (Clients): Chức năng của lớp này là cung cấp dịch vụ trình bày

(Presentation Services) Thực hiện việc giao tiếp giũa người sử dụng với lớp giao dịch thông qua trình duyệt Browser hay trình ứng dụng để thao tác và xử lý dữ liệu Thông thường giao diện người sử dụng được chứa trong các File OCX Lớp này có thể cài đặt ở dạng ứng dụng Web gồm những trang ASP sử dụng các File OCX Trong mô hình Internet (Internet model), lớp khách là trình duyệt Internet Explorer hay Netscape

Trang 13

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

♦ Lớp giao dịch (Business Tier): cung cấp các dịch vụ quản trị, tổ chức và khai

thác CSDL Các componenet trước đây được cài đặt trên lớp khách, nay được cài đặt trên lớp giao dịch Ví dụ, một người sử dụng trên máy khách đặt mua hàng, lớp giao dịch kiểm tra mã hàng còn nữa hay không mới quyết định tiếp tục bán hay không bán Thành phần của lớp giao dịch trong mô hình Internet là Web Server và COM+/MTS Công nghệ của Microsoft với Web Server là IIS (Internet Information Services) sử dụng ASP để kết nối Client với COM Web Server giao tiếp với COM+/MTS component qua COM COM+/MTS component điều khiển tất cả giao tiếp với lớp dữ liệu nguồn thông qua ODBC hoặc OLE - DB

♦ Lớp nguồn dữ liệu (Data Source): Lớp nguồn dữ liệu cung cấp các dịch vụ tổ

chức và lưu trữ các hệ cơ sở dữ liệu quan hệ Sẵn sàng cung cấp dữ liệu cho lớp giao dịch Đặc trưng của lớp này là SQL Server quản lý dữ liệu và các thành phần trong cơ sở

dữ liệu như bảng, dữ liệu và các thủ tục lưu trữ Trong mô hình Internet lớp nguồn dữ liệu quản lý các hoạt động của một lượng lớn Clients Microsoft phát triển DNA mô hình chung (Framework) xây dựng cho ứng dụng nhiều lớp

Tóm lại, đặc trưng của mô hình tính toán phân tán là các tài nguyên của mạng như thiết bị phần cứng, chương trình, dữ liệu được phân tán theo địa lý trên mạng Người sử dụng có thể truy nhập khai thác trực tuyến hoặc và khai thác tương tác dữ liệu từ xa

Mô hình Client – Server 3 lớp có sử dụng Middlewave server

Mô hình Client – Server 3 lớp có sử dụng Application server

6 ĐỐI TƯỢNG NGƯỜI DÙNG TRONG HỆ CƠ SỞ DỮ LIỆU

Với một cơ sở dữ liệu lớn, có rất nhiều người tham gia vào việc thiết kế, sử dụng và duy trì cơ sở dữ liệu

6.1 Người quản trị hệ CSDL – Database Adminstrator

Trong một đơn vị có nhiều người cùng sử dụng các tài nguyên cơ sở dữ liệu thì cần phải có một người làm nhiệm vụ giám sát và quản lý cơ sở dữ liệu đó Trong môi trường

hệ cơ sở dữ liệu, các tài nguyên cần dùng chung là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu

Trang 14

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

và các phần mềm liên quan Người làm vai trò quản trị hệ cơ sở dữ liệu là người chịu trách nhiệm quản lý và phân chia tài nguyên đó Người quản trị chịu trách nhiệm trong việc cho phép và giới hạn truy cập đến cơ sở dữ liệu, tổ chức và hướng dẫn việc sử dụng

cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu cần thiết

Đối với người quản trị cơ sở dữ liệu có một số nhiệm vụ chính sau:

- Xác định thực thể và nội dung thông tin cần lưu trữ tương ứng của bài toán Xác định sơ đồ quan niệm đáp ứng yêu cầu truy nhập của người sử dụng

- Quyết định cấu trúc lưu trữ và chiến lược truy nhập: người quản trị cơ sở dữ liệu phải xác định cách thức biểu diễn dữ liệu như mô tả cấu trúc lưu trữ trong, mô tả cấu trúc lưu trữ vật lý Xác định mô hình dữ liệu, định nghĩa ánh xạ giữa cấu trúc lưu trữ và sơ đồ ngoài Thực hiện các chiến lược lưu trữ, quản lý hệ thống

- Người quản trị cơ sở dữ liệu phải tạo môi trường giao tiếp giữa người sử dụng với các hệ cơ sở dữ liệu, vì sơ đồ ngoài cho người sử dụng là cách nhìn dữ liệu tương ứng với ngôn ngữ con dữ liệu thích hợp, nên người quản trị cơ sở dữ liệu phải cung cấp sơ đồ quan niệm, các ánh xạ, và các cấu trúc lưu trữ Kiểm soát thẩm quyển truy nhập của người sử dụng và bảo đảm quyền truy nhập của họ

- Duy trì các tiêu chuẩn thống nhất về các thủ tục lưu trữ và cấu trúc lưu trữ, biểu diễn thông tin và các chiến lược truy nhập Kiểm soát và kiểm tra tính đúng đắn của dữ liệu Áp dụng các biện pháp an toàn, an ninh dữ liệu

- Xác định chiến lược lưu trữ, sao chép, phục hồi … trong các trường hợp hư hỏng

do sai sót, hoặc trục trặc kỹ thuật

6.2 Người thiết kế cơ sở dữ liệu – Database Designer

Người thiết kế cơ sở dữ liệu là người chịu trách nhiệm xác định được các dữ liệu sẽ được lưu giữ trong cơ sở dữ liệu, chọn được các cấu trúc thích hợp để biểu diễn và lưu giữ các dữ liệu đó Những nhiệm vụ này được thực hiện trước khi tiến hành cài đặt cơ sở

dữ liệu cũng như phổ biến cơ sở dữ liệu Người thiết kế có trách nhiệm giao thiệp với những người sử dụng tương lai để hiểu được các đòi hỏi của họ và đưa ra một thiết kế thỏa mãn các yêu cầu đó Người thiết kế cũng có nhiệm vụ trao đổi với các nhóm người

sử dụng khác và có khả năng hỗ trợ các yêu cầu của các nhóm

6.3 Người sử dụng – End User

Những 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 cơ

sở dữ liệu để 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 hai nhóm chính: người sử dụng thụ động (là người không có kiến thức về cơ

sở dữ liệu) và người sử dụng chủ động (là những người có hiểu biết tốt về hệ cơ sở dữ liệu)

Đối với người sử dụng thụ động thì họ là nhóm người sử dụng chiếm phần lớn, chức năng sử dụng chính của họ là truy vấn và cập nhật thường xuyên lên cơ sở dữ liệu

bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (là giao tác định sẵn của chương

Trang 15

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

trình) đã được lập trình và kiểm tra cẩn thận bởi người lập trình Nhóm người này chỉ cần

học một ít các thao tác do hệ quản trị cơ sở dữ liệu cung cấp và hiểu được các kiểu gia tác chuẩn đã có đã được thiết kế và cài đặt là có thể sử dụng được

Ngược lại, đối với nhóm người sử dụng chủ động thì họ có hiểu biết tốt về hệ cơ sở

dữ liệu, họ có thể tự cài đặt các ứng dụng riêng của mình để làm thỏa mãn các yêu cầu phức tạp của họ

6.4 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 làm nhiệm vụ xác định các yêu cầu của những người sử

dụng (chủ yếu là những người sử dụng thụ động) để đặc tả các chương trình phù hợp với

yêu cầu của họ

Người viết chương trình ứng dụng thể hiện các đặc tả của người những phân tích thành chương trình, sau đó tiến hành kiểm thử, sửa lỗi làm tài liệu hướng dẫn và bảo trì các giao tác định sẵn

7 TỔNG KẾT VÀ CÂU HỎI ÔN TẬP

7.1 Tổng kết chương

Trong chương này chúng ta đã trình bày về các khái niệm cơ bản: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, các mô hình dữ liệu trong cơ sở dữ liệu và những đối tượng người dùng sẽ làm việc với cơ sở dữ liệu

7.2 Câu hỏi ôn tập

1 Cơ sở dữ liệu là gì? Hiểu thế nào là một hệ cơ sở dữ liệu liệu tác nghiệp?

2 Sự cần thiết tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu?

3 Mục tiêu của hệ cơ sở dữ liệu? Ví dụ minh họa?

4 Nêu tính chất của một cơ sở dữ liệu?

5 Tại sao nói, mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của cơ sở dữ liệu, sơ đồ quan niệm là định nghĩa của cách nhìn ấy?

6 Chức năng và vai trò của hệ quản trị cơ sở dữ liệu và người quản trị cơ sở dữ liệu?

7 Hiểu thể nào về hệ quản trị cơ sở dữ liệu? Người quản trị cơ sở dữ liệu?

8 Nêu các chức năng của một hệ quản trị cơ sở dữ liệu?

9 Trình bày về mô hình cơ sở dữ liệu Client – Server?

10 Liệt kê các nhóm người có liên quan đến hệ cơ sở dữ liệu?

Trang 16

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

THIẾT KẾ CƠ SỞ DỮ LIỆU – MÔ HÌNH LIÊN KẾT

THỰC THỂ

Trong chương này, chúng ta sẽ làm quen với mô hình liên kết thực thể, gọi tắt là mô

hình ER (Entity – Relationship Model) Mô hình ER là một mô hình khá đơn giản và gần

với tư duy trực quan Mô hình ER còn được coi là mô hình dữ liệu mức quan niệm cơ

bản, được tập trung vào các cấu trúc dữ liệu và các ràng buộc của dữ liệu để mô tả tập

hợp dữ liệu dùng trong hệ thống Mô hình này thường được sử dụng trong trường hợp

thiết kế các ứng dụng cơ sở dữ liệu và có nhiều công cụ hỗ trợ thiết kế cơ sở dữ liệu đều

sử dụng các khái niệm của mô hình

1 CÁC BƯỚC THIẾT KẾ CƠ SỞ DỮ LIỆU

Hiện nay, quá trình để thiết kế cơ sở dữ liệu cho một ứng dụng cơ sở dữ liệu được minh họa bằng sơ đồ như sau:

Các bước để thiết kế cơ sở dữ liệu

*Bước 1: Tập hợp và phân tích yêu cầu

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

dữ liệu sẽ tìm hiểu bài toán (hệ thống – thế giới thực) bằng cách phỏng vấn trực tiếp những người sử dụng cơ sở dữ liệu hoặc nghiên cứu các tài liệu nghiệp vụ liên quan trong

hệ thống cần xây dựng để hiểu và nắm rõ các yêu cầu về mặt dữ liệu của họ Kết quả của bước này là một tập hợp các ghi chép súc tích về các yêu cầu của người sử dụng cũng như của hệ thống Những yêu cầu của hệ thống sẽ được đặc tả càng đầy đủ và càng chi tiết càng tốt Tuy nhiên, song song với việc tiến hành đặc tả các yêu cầu dữ liệu, cần phải

Trang 17

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

đặc tả các yêu cầu về chức năng của ứng dụng – hệ thống: xác định được các thao tác

cần thực hiện của người sử dụng đối với cơ sở dữ liệu

Bước 2: Thiết kế quan niệm

Khi tất cả các yêu cầu của hệ thống được thu thập và phân tích, tiếp theo là tạo ra

lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao Bước này gọi là thiết kế quan niệm Lược đồ quan niệm là một mô tả súc tích về các

yêu cầu dữ liệu của người người sử dụng trực tiếp với hệ thống cần xây dựng Lược đồ bao gồm các mô tả chi tiết của các kiểu thực thể, kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp Do những khái niệm này không chứa các chi tiết cài đặt, nên chúng thường dễ hiểu và có thể sử

dụng để trao đổi với người những người sử dụng hệ thống (người không có chuyên môn

sâu trong lĩnh vực công nghệ thông tin) Lược đồ quan niệm mức cao cũng có thể được

sử dụng như là một tài liệu quan trọng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đối với hệ thống được thỏa mãn và các đòi hỏi này không mẫu thuẫn Bằng cách sử dụng mô hình này cho phép người thiết kế cơ sở dữ liệu chỉ tập trung vào việc đặc tả các tính chất của cơ sở dữ liệu mà không cần quan tâm chi tiết đến các thông tin lưu trữ Một thiết kế cơ sở dữ liệu tốt sẽ làm dễ dàng và không mất thời gian chỉnh sửa sau này cho công việc của người thiết kế cơ sở dữ liệu trong bài toán

Khi thiết kế lược đồ quan niệm, chúng ta có thể sử dụng các phép toán cơ bản của

mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định khi phân tích chức năng Điều khó khẳng định lược đồ quan niệm thỏa mãn mọi yêu cầu chức năng được xác định Trong trường hợp có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì sau đó chúng ta có thể sửa đổi lược đồ cho phù hợp

Bước 3: Thiết kế mức logic

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

được gọi là thiết kế mức logic hay ánh xạ mô hình dữ liệu Kết quả của bước này thu

được một lược đồ cơ sở dữ liệu dưới dạng một hình dữ liệu có khả năng cài đặt được bằng một hệ quản trị cơ sở dữ liệu cụ thể

Bước 4: Thiết kế mức vật lý

Bước cuối cùng trong thiết kế cơ sở dữ liệu được gọi là thiết kế vật lý Tại bước

này, ta phải chỉ rõ ra các cấu trúc bên trong, các đường dẫn truy cập, cách tổ chức tệp cho

cơ sở dữ liệu của bài toán Song song với bước này, các chương trình ứng dụng cũng được thiết kế và cài đặt như là các giao tác (kết nối) với cơ sở dữ liệu tương ứng với đặc

tả tương tác mức cao

Trang 18

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

2 CÁC KHÁI NIỆM CƠ BẢN CỦA MÔ HÌNH ER

Mô hình ER xuất phát từ ba khái niệm cơ bản: thực thể, liên kết và thuộc tính

2.1 Thực thể và kiểu thực thể

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

- đối tượng” (cụ thể hay trừu tượng) tồn tại thực sự và khá ổn định trong thế giới thực, có

sự tồn tại độc lập và có thể phân biệt với các đối tượng khác mà ta muốn phản ánh nó trong hệ thống thông tin Tập hợp tất cả các thực thể giống nhau tạo thành một tập thực

thể (kiểu thực thể)

Thực thể cụ thể và trừu tượng: Một thực thể có thể là cụ thể hay trừu tượng Thực

thể cụ thể là thực thể mà chúng có thể cảm nhận được bằng giác quan hay có thể nhìn thấy trực tiếp được bằng mắt Thực thể trừu tượng là thực thể mà chúng ta không cảm

nhận được bằng giác quan (không nhìn thấy trực tiếp bằng mắt được) nhưng chúng ta có

thể nhận biết được bằng nhận thức hoặc bằng cảm nhận

Ví dụ: Thực thể cụ thể như:

Nhân viên Nguyễn Thị Thúy Hà

Đơn hàng số 12233444

Thực thể trừu tượng như:

Khoa Công nghệ thông tin

Môn học Cơ sở dữ liệu

Trong mô hình ER chỉ đề cập đến “tập thực thể” hay “kiểu thực thể”

Kiểu thực thể: là một tập hợp các thực thể có các thông tin cần quản lý tương tự

nhau Ví dụ, một công ty có nhiều nhân viên, mỗi nhân viên có các thông tin cần lưu trữ

là tương tự nhau, như: mã nhân viên, họ tên, ngày sinh, quê quán, hệ số lương, … Vì vậy tập hợp các thực thể nhân viên trong công ty được mô tả bằng tập thực thể với tên chung

là “NHÂN VIÊN”

Tập thực thể: Một tập hợp các thực thể của một kiểu thực cụ thể trong cơ sở dữ

liệu tại một thời điểm được gọi là một tập thực thể, nó thường được mô tả trong mô hình bằng cách sử dụng tên của kiểu thực thể Ví dụ: NHÂN VIÊN vừa dùng để chỉ một kiểu thực thể, vừa để chi tập hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu Tương tự, CÔNG TY dùng để chỉ một kiểu thực thể và cũng chỉ tập hợp của tất cả các thực thể công ty trong cơ sở dữ liệu

NHÂN VIÊN

(Mã, Họ tên, Tuổi, Lương)

CÔNG TY (Mã, Tên, Địa điểm, Giám đốc) NV1, Lê Thủy, 30, 800000 CT1, Công ty phần mềm, Hà nội, Vũ Hải

NV2, Nguyễn Hải, 32, 820000 CT2, Công ty hoa quả, Hải phòng, Lê Huy

Ký hiệu biểu diễn thực thể: Một kiểu thực thể được biểu diễn trong lược đồ ER bằng hình chữ nhật có chứa tên kiểu thực thể bên trong

Trang 19

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Cú pháp:

Ví dụ:

Để xác định kiểu thực thể trong hệ thống, chúng ta tiến hành liệt kê các danh từ riêng dùng để mô tả cho một tập các đối tượng cần được quản lý của hệ thống

Trong mô hình ER, kiểu thực thể được chia làm hai loại: kiểu thực thể mạnh và kiểu

thực thể yếu Kiểu thực thể mạnh được dùng để mô tả những thực thể có thể tồn tại độc

lập trong hệ thống mà không cần phải có sự tồn tại của một thực thể khác Ví dụ: thực thể

NHÂN VIÊN, CÔNG TY Kiểu thực thể yếu là kiểu thực thể mà sự tồn tại của nó phải

phụ thuộc vào sự tồn tại của một thực thể khác hay thực thể yếu chỉ tồn tại trong hệ thống khi có sự tồn tại của một thực thể khác trong hệ thống Ví dụ: thực thể THÂN NHÂN trong hệ thống quản lý nhân viên, một thân nhân chỉ được quản lý nếu thân nhân đó đi kèm với một nhân viên cụ thể, ngược lại nếu không có nhân viên trong hệ thống thì không có thân nhân nào được quản lý

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

kiểu thực thể xác định hoặc kiểu thực thể chủ Giữa kiểu thực thể mạnh và kiểu thực thể

yếu có một liên kết và liên kết được gọi là liên kết xác định Ví dụ: Trong công ty, thân nhân của nhân viên có thể được hưởng bảo hiểm theo nhân viên Vì vậy, sẽ có một liên kết dạng NHÂN VIÊN – có – THÂN NHÂN

Biểu diễn liên kết thực thể chủ và thực thể yếu: Trong sơ đồ ER, kiểu thực thể

yếu được biểu diễn bằng hình chữ nhật nét đôi và liên kết xác định giữa kiểu thực thể yếu với thực thể xác định được biểu diễn bằng hình thoi nét đôi

Trang 20

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Để xác định thuộc tính, chúng ta xác định các danh từ mô tả đặc tính, đặc trưng gắn liền với các tên kiểu thực thể đã xác định

Biểu diễn thuộc tính: Trong mô hình ER, thuộc tính được biểu diễn bằng hình elip

nét đơn với tên thuộc tính chứa bên trong và gắn liền với thực thể cần mô tả

Ký hiệu:

Ví dụ: kiểu thực thể NHÂN VIÊN có các thuộc tính:

mã nhân viên, họ tên, ngày sinh, quê quán

Trong mô hình ER, có nhiều kiểu thuộc tính khác nhau:

Thuộc tính đơn và thuộc tính phức hợp,

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

Thuộc tính lưu trữ và thuộc tính suy dẫn,

Tên thuộc tính

Trang 21

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Thuộc tính khóa và thuộc tính định danh

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

riêng biệt nhỏ hơn Ví dụ: thuộc tính Tuổi của một nhân viên là thuộc tính đơn, thuộc tính Điểm của sinh viên là một thuộc tính đơn

Thuộc tính phức hợp là thuộc tính mà có thể phân chia 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 của nhân viên có thể tác thành thuộc tính Họ chỉ chứa họ, thuộc tính Tên chỉ chứa tên Tương tự, thuộc tính Ngày sinh có thể tách thành các thuộc tính Ngày, Tháng và Năm riêng biệt Giá trị cuối cùng của thuộc tính phức hợp 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 thuộc tính phức hợp 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 và yêu cầu của bài toán cụ thể

Thuộc tính đơn trị là thuộc tính mà mỗi thực thể xác định chỉ nhận một giá trị duy

nhất ứng với thuộc tính đó Ví dụ: thuộc tính Họ tên là thuộc tính đơn trị của thực thể nhân viên vì mỗi nhân viên chỉ có một họ tên duy nhất, thuộc tính Ngày sinh là thuộc tính đơn trị vì mỗi nhân viên cũng chỉ có một ngày sinh duy nhất

Thuộc tính đa trị là để chỉ những thuộc tính mà nó có thể nhận một tập các giá trị

cho cùng một thực thể cụ thể, hay nói cách khác thuộc tính đa trị có thể nhận và lưu trữ nhiều giá trị đồng thời tại một thời điểm Ví dụ: thuộc tính Bằng cấp của nhân viên là một thuộc tính đa trị vì một người có thể không có bằng cấp nào nhưng một người khác có thể

có một bằng, một người nhân viên khác nữa có thể có nhiều bằng Tương tự, thuộc tính

Kỹ năng của nhân viên là một thuộc tính đa trị vì mỗi một nhân viên có thể có số kỹ là khác nhau (không có kỹ năng, có một kỹ năng, có hai kỹ năng, …)

Thuộc tính đa trị được biểu diễn bằng hình elip nét đôi với tên thuộc tính đặt phía trong

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

đặt cơ sở dữ liệu Ví dụ: thuộc tính Họ tên là thuộc tính lưu trữ vì giá trị ngày sinh của một nhân viên phải được nhập vào cơ sở dữ liệu

Thuộc tính suy dẫn là các thuộc tính mà giá trị của nó có thể được suy ra từ giá trị

của các thuộc tính khác liên quan theo một nguyên tắc nào đó, là các thuộc tính không phải nhập vào từ bàn phím mà nó được tính thông qua các thuộc tính khác theo một công thức nào đó Ví dụ: Thuộc tính Tổng lương là thuộc tính suy dẫn vì tổng lương được tính thông qua hệ số lương nhân với lương cơ bản, thuộc tính Tuổi là thuộc tính suy dẫn vì Tuổi được tính bằng năm hiện tại trừ năm sinh

Thuộc tính suy dẫn được biểu diễn bằng hình elip nét đứt với tên thuộc tính đặt phía trong

Trang 22

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Định danh là tập thuộc tính có giá trị duy nhất giúp phân biệt thực thể này với thực

thể khác Các thuộc tính tham gia vào định danh gọi là thuộc tính định danh hay thuộc

tính khóa Thuộc tính khóa là thuộc tính mà giá trị của nó là khác nhau đối với mỗi thực

thể riêng biệt trong tập thực thể Đôi khi, nhiều thuộc tính kết hợp với nhau tạo thành một khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này phải khác nhau đối với mỗi thực

thể Trong trường hợp như vậy ta có một thuộc tính khóa phức hợp Chú ý rằng khóa

phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính thành phần phải có mặt trong thuộc tính phức hợp để thỏa mãn tính chất duy nhất Trong mô hình ER, thuộc tính khóa được biểu diễn bằng hình elip và cách gạch chân dưới tên của thuộc tính

Ví dụ

Đối với mỗi thực thể trong hệ thống, chúng ta có thể tham khảo một số gợi ý sau để xác định thuộc tính khóa:

Giá trị của thuộc tính không bị thay đổi theo thời gian,

Giá trị của thuộc tính không được phép bỏ trống,

Tránh sử dụng những thuộc tính mà giá trị của nó thể hiện thông tin, hay cấu trúc của nó thể hiện sự phân loại, vị trí, …

Nên chọn những thuộc tính đơn làm định danh thay vì sử dụng kết hợp một số thuộc tính

Ví dụ:

2.3 Liên kết

Kiểu liên kết (Relationship Types): Kiểu liên kết R giữa n kiểu thực thể E1, E2, ,En

được định nghĩa là tập các mối liên hệ giữa các thực thể từ những kiểu thực thể đã cho Theo toán học, R là tập các liên kết thực ri, trong đó mỗi liên kết ri liên hệ giữa n thực thể (e1, e2, , en), mỗi thực thể ej trong liên kết ri là một thành viên của kiểu thực thể EJ (i≤ j

≤n) Liên kết R là tập con của tích De-cac giữa tập các thực thể của n kiểu thực thể: E1x

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

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

Trang 23

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Một cách không hình thức, mỗi thể hiện liên kết ri trong R là một sự kết hợp của các thực thể, mỗi thực thể thuộc về một kiểu thực thể tham gia vào liên kết Mỗi liên kết ri

như vậy diễn đạt một sự kiện rằng các thực thể tham gia trong ri có mối quan hệ với nhau theo một cách nào đó ở trong thế giới thực Ví dụ, trong thực tế, các nhân viên phải làm

cho một đơn vị nào đó, như vậy, có một liên kết làm việc cho, liên kết giữa kiểu thực thể

NHÂN VIÊN và kiểu thực thể ĐƠN VỊ, hoặc mỗi sinh viên trong khoa sẽ học một môn

học nào đó vì thế có mối liên kết học giữa kiểu thực thể SINH VIÊN và kiểu thực thể

MÔN HỌC

Trong mô hình ER, kiểu liên kết được biểu diễn bằng một hình thoi với tên liên kết đặt ở trong được nối trực tiếp với các hình chữ nhật biểu diễn tương ứng kiểu thực thể tham gia vào liên kết Liên kết được xác định là các động từ mô tả mối liên quan giữa hai thực thể

Quy ước:

Ví dụ:

Thể hiện thực tế của liên kết:

Thuộc tính 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ư

thuộc tính của các kiểu thực thể, thuộc tính của liên kết dùng để mô tả các thông tin chỉ

có khi có hình thành mối liên kết giữa các thực thể Ví dụ: liên kết <Làm trưởng phòng> giữa kiểu thực thể NHÂN VIÊN và PHÒNG BAN có thể có ngày nhận chức để ghi lại ngày của nhân viên đó được giao làm trường phòng, hoặc liên kết <làm việc trên> giữa kiểu thực thể NHÂN VIÊN và DỰ ÁN có thể có thuộc tính số giờ để lưu lại

tổng số giờ làm của một nhân viên trên một dự án nào đó

Thuộc tính của liên kết cũng được được biểu diễn bằng một hình elip và được nối

với kiểu liên kết

Ví dụ:

Trang 24

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Bậc của kiểu liên kết (Degree of Relationship Types): Bậc của kiểu liên kết là số các kiểu thực thể tham gia liên kết Ví dụ : liên kết nơi làm là liên kết bậc 2 (binary) Ràng buộc trong kiểu liên kết ( Constraints on Relationship types): Ràng buộc của kiểu liên kết là giới hạn số các thực thể của một kiểu thực thể tham gia vào liên kết Tỷ lệ liên kết (ratio) là số lượng các liên kết thực mà một thực thể có thể tham gia Đối với liên

kết bậc hai (binary) thường có các loại tỷ lệ sau: 1: 1, 1: N, N: N

Các kiểu liên kết giữa các kiểu thực thể được chia thành các kiểu: liên kết một – một, liên kết một – nhiều, liên kết nhiều – nhiều

Liên kết một – một (1-1) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể B

nếu một thực thể trong kiểu A liên kết, có quan hệ với duy nhất một thực thể trong kiểu B

và ngược lại Kiểu liên kết một – một được biểu diễn bằng cách thêm số 1 ở hai đầu của kiểu thực thẻ

Ví dụ:

Liên kết một – nhiều (1-n) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể B

nếu mà một thực thể trong kiểu A liên kết – có quan hệ với nhiều thực thể trong kiểu B

và một thực thể trong kiểu B chỉ liên kết duy nhất với một thực thể kiểu A Kiểu liên kết một – nhiều được biểu diễn bằng cách thêm số 1 ở đầu bên phía một và thêm n ở đầu bên phía nhiều

Ví dụ:

Liên kết nhiều – nhiều (m-n) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể

B nếu mà một thực thể trong kiểu A liên kết với nhiều thực thể trong kiểu B và một thực thể trong kiểu B cũng liên kết với nhiều thực thể kiểu A Kiểu liên kết nhiều – nhiều được biểu diễn bằng cách thêm số m và n ở hai đầu của liên kết

Ví dụ:

Trang 25

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Các liên kết giữa các thực thể không phải lúc nào cũng liên kết giữa 2 kiểu thực thể

mà có thể thay đổi Số lượng thực thể tham gia vào một mối liên kết được gọi là bậc của liên kết Bậc của liên kết thường gặp các dạng sau: Đệ quy, bậc 2, bậc 3, …

lượng thực thể tối đa được phép tham gia vào liên kết, mặc định min = 0 và max = n

Ví dụ:

2.4 Mô hình liên kết thực thể (mô hình ER – Entity Relationship Model)

Mô hình liên kết thực thể là một sơ đồ để biểu diễn rút gọn các thực thể, các thuộc tính và các mối quan hệ liên kết giữa các thực thể Trong mô hình ER gồm tập hợp các đỉnh và các cạnh, với các đỉnh là các kiểu thực thể hay các thuộc tính hoặc các liên kết còn các cạnh là các đường nối giữa kiểu thực thể với kiểu thực thể, giữa kiểu thực thể với thuộc tính

Trang 26

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Mục đích của mô hình ER:

- Làm thống nhất quan điểm về dữ liệu của những người tham gia hệ thống: người

quản lý, người dùng cuối và người thiết kế hệ thống,

- Xác định các xử lý về dữ liệu cũng như các ràng buộc trên các dữ liệu,

- Giúp đỡ việc thể hiện cơ sở dữ liệu về mặt cấu trúc: Sử dụng thực thể và các mối liên kết giữa các thực thể Biểu diễn mô hình quan niệm thực thể bằng một sơ đồ

Tập hợp các ký hiệu được dùng trong mô hình ER:

Trang 27

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Ví dụ mô hình ER của bài toán quản lý đề án công ty

Để xây dựng được mô hình ER của một bài toán quản lý thực hiện theo các bước sau:

Bước 1: Xác định các kiểu thực thể

Tìm các danh từ chung trong bài toán dùng để mô tả các đối tượng cần được quản

lý của hệ thống Duyệt danh sách các thuộc tính từ trên xuống dưới và mỗi thuộc tính tên gọi sẽ tương ứng với một thực thể

Bước 2: Xác định các thuộc tính và phân loại từng loại thuộc tính tương ứng

Tìm các danh từ riêng dùng để mô tả thông tin gắn liền với một đối tượng thực thể nào đó Chú ý: để lựa chọn các đặc trưng cần thiết, ta duyệt từ trên xuống và chỉ giữ lại các thuộc tính đảm bảo yêu cầu sau:

+ Thuộc tính đó cần phải đặc trưng cho một lớp các đối tượng được xét

+ Chọn một thuộc tính một lần nếu lặp lại thì bỏ qua

+ Một thuộc tính phải là sơ cấp

Bước 3: Xác định các liên kết và kiểu liên kết

Tìm các động từ dùng để ràng buộc liên kết giữa hai đối tượng thực thể Với mỗi động từ hãy trả lời các câu hỏi: Ai? Cái gì? Ở đâu? Khi nào? Bằng cách nào?

Bước 4: Xác định số lượng thực thể tham gia vào liên kết

Tìm các con số (nếu có) đi kèm khi mô tả thực thể hay mô tả mối liên kết giữa các thực thể

Bước 5: Vẽ mô hình ER

Dùng các hình vẽ quy ước và đặt vào các vị trí Sau đó, nối các thành phần trong

mô hình lại với nhau Sau khi vẽ sơ đồ có thể chuẩn hóa theo nguyên tắc sau: nếu trong

Trang 28

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

sơ đồ còn chứa: các thuộc tính lặp, nhóm lặp và các thuộc tính phụ thuộc thời gian, khi

đó sơ đồ chỉ còn các thực thể đơn và các thuộc tính đơn

3 VÍ DỤ VỀ MÔ HÌNH LIÊN KẾT THỰC THỂ (MÔ HÌNH ER)

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

Mỗi đơn vị thực hiện một số dự án Một dự án có một tên duy nhất, một mã số duy nhất, một địa điểm thực hiện và thời gian bắt đầu thực hiện dự án

Với mỗi nhân viên trong công ty, ta lưu giữ lại thông tin như: Họ tên, Mã số, địa chỉ, hệ số lương, lương (được tính dựa vào hệ số lương và mức lương cơ bản hiện tại), giới tính, ngày sinh, ngoại ngữ (mỗi nhân viên có thể biết nhiều ngoại ngữ) Một nhân viên chỉ làm việc cho một đơn vị nhưng có thể làm việc trên nhiều dự án do nhiều đơn vị

đó kiểm soát – thực hiện Trong một đơn vị chỉ cho phép tối đa 10 nhân viên dưới quyền quản lý của đơn vị đó Chúng ta cần lưu giữ lại số giờ làm việc của mỗi nhân viên trên một dự án nào đó Mỗi nhân viên có thể có một người giám sát trực tiếp, người đó cũng

là một nhân viên

Mỗi nhân viên có những người thân kèm theo Những người này được hưởng bảo hiểm theo nhân viên Với mỗi người thân của nhân viên, chúng ta lưu giữ Họ tên, giới tính, ngày sinh, tuổi, quan hệ với nhân viên

3.1 Xác định các kiểu thực thể

Theo ghi chép ở trên, chúng ta xác định được các kiểu thực thể như sau:

- CÔNG TY không phải là một kiểu thực thể vì ở đây ta có một công ty duy nhất

- ĐƠN VỊ là một kiểu thực thể để mô tả các đơn vị - phòng ban cần quản lý trong công ty

- DỰ ÁN là một kiểu thực thể để mô tả các dự án được thực hiện trong công ty

- NHÂN VIÊN là một kiểu thực thể để mô tả các nhân viên làm việc trong công ty -THÂN NHÂN là một kiểu thực thể để mô tả người thân của nhân viên được hưởng kèm bảo hiểm xã hội với một nhân viên nào đó Thực thể THÂN NHÂN là một thực thể yếu vì sẽ không cần quản lý thân nhân nếu thân nhân đó không quan hệ với nhân viên nào trong công ty

Trang 29

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

3.2 Xác định các thuộc tính và phân loại thuộc tính

Thực thể ĐƠN VỊ được quản lý với các thuộc tính Tên đơn vị, Mã số đơn vị , Người

quản lý đơn vị, Ngày bắt đầu nhận quản lý của người quản lý và Địa điểm Các thuộc

tính Tên đơn vị, Mã số đơn vị, Địa điểm là các thuộc tính dùng để mô tả thông tin của ĐƠN VỊ, các thuộc tính Người quản lý đơn vị, Ngày bắt đầu quản lý là các thuộc tính biểu thị một kiểu liên kết (giữa ĐƠN VỊ với kiểu thực thể NHÂN VIÊN) Các thuộc tính đều là đơn và đơn trị, trừ thuộc tính Địa điểm, nó là một thuộc tính đa trị ( vì một đơn vị

có nhiều địa điểm) Các thuộc tính Tên, Mã số là các thuộc tính khóa (vì mỗi đơn vị có một tên và một mã số duy nhất)

Thực thể DỰ ÁN có các thuộc tính Tên, Mã số, Địa điểm, Thời gian bắt đầu, Đơn

vị kiểm soát Các thuộc tính Tên, Mã số, Địa điểm, Thời gian bắt đầu là các thuộc tính

mô tả DỰ ÁN, thuộc tính Đơn vị kiểm soát biểu thị kiểu liên kết với kiểu thực thể ĐƠN

VỊ (một đơn vị kiểm soát một số dự án) Các thuộc tính Tên, Mã số là các thuộc tính khóa

Thực thể NHÂN VIÊN với các thuộc tính được quản lý Họ tên, Mã số, địa chỉ, hệ

số lương, lương, giới tính, ngày sinh, ngoại ngữ, người giám sát, đơn vị quản lý, dự án tham gia, số giờ làm cho dự án Thuộc tính Họ tên, mã số, địa chỉ, hệ số lương, giới tính,

ngày sinh, ngoại ngữ là những thuộc tính mô tả NHÂN VIÊN Thuộc tính Lương là thuộc tính suy dẫn được tính từ thuộc hệ số lương Thuộc tính Ngoại ngữ là thuộc tính đa trị vì một nhân viên biết nhiều ngoại ngữ Thuộc tính người giám sát, thuộc tính đơn vị quản

lý, thuộc tính dự án tham gia và thuộc tính số giờ dự án là thuộc tính liên kết để chỉ ai là người quản lý nhân viên đó và nhân viên đó thuộc phòng ban nào hay cho biết nhân viên

đó làm cho dự án nào và mỗi dự án nhân viên đó tham gia làm bao nhiêu giờ Thuộc tính

mã số là thuộc tính khóa vì mỗi nhân viên được phân biệt với nhau bởi mã số nhân viên

Thực thể THÂN NHÂN có các thuộc tính như họ tên, giới tính, ngày sinh, tuổi,

quan hệ với nhân viên và nhân viên Trong đó, thuộc tính Họ tên, giới tính, ngày sinh,

tuổi và quan hệ là thuộc tính mô tả các thân nhân của một nhân viên nào đó Thuộc tính nhân viên là thuộc tính liên kết để chỉ ra thân nhân đó là của nhân viên nào Thuộc tính nhân viên là thuộc tính liên kết thể hiện sự ràng buộc của một thân nhân tương ứng với một nhân viên

3.3 Xác định các liên kết và kiểu liên kết

Giữa thực thể ĐƠN VỊ và DỰ ÁN có liên kết “kiểm soát” vì mỗi đơn vị kiểm soát một số dự án, kiểu liên kết là liên kết một – nhiều

Giữa thực thể NHÂN VIÊN và ĐƠN VỊ có liên kết “làm việc cho” vì mỗi nhân viên chỉ làm cho một đơn vị, kiểu liên kết là nhiều – một

Giữa thực thể NHÂN VIÊN và ĐƠN VỊ còn có kiểu liên kết một – một với tên là

“quản lý” vì một nhân viên thực hiện quản lý một đơn vị và một đơn vị có một nhân viên

Trang 30

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

quản lý Liên kết “quản lý” có một thuộc tính là “ngày bắt đầu” vì cần ghi lại ngày bắt đầu nhận quản lý đơn vị của một nhân viên

Giữa thực thể NHÂN VIÊN và DỰ ÁN có mối liên kết “làm việc trên” và kiểu liên kết là nhiều – nhiều vì một nhân viên là cho nhiều dự án và một dự án được làm bởi nhiều nhân viên Liên kết “làm việc trên” có một thuọc tính đi kèm là “số giờ làm” vì cần phải ghi lại số giờ làm việc của một nhân viên trên một dự án

Giữa thực thể NHÂN VIÊN với thực thể NHÂN VIÊN có mối liên kết “giám sát”

và có kiểu là một – nhiều vì một nhân viên có thể giám sát một số nhân viên khác nhau Kiểu thực thể NHÂN VIÊN ở đây đóng hai vai trò khác nhau: vai trò người giám sát và vai trò người bị giám sát

Giữa thực thể NHÂN VIÊN và thực thể THÂN NHÂN có mỗi quan hệ một – nhiều với tên là “có” và kiểu liên kết là liên kết phụ thuộc

3.4 Xác định số lượng thực thể tham gia liên kết

Các mối liên kết giữa các thực thể trong bài toán không có sự ràng buộc về số lượng tham gia trừ mối liên kết “làm việc cho” giữa NHÂN VIÊN và ĐƠN có giới hạn số nhân viên tối đa tham gia vào đơn vị là 10 nhân viên

3.5 Vẽ mô hình ER

Kết quả từ các phân tích trên ta thu được mô hình ER của bài toán Quản lý đề án công ty như sau:

Trang 31

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

4 MÔ HÌNH LIÊN KẾT THỰC THỂ MỞ RỘNG (MÔ HÌNH EER)

Hiện nay, một cách truyền thống, khi xây dựng một cơ sở dữ liệu cho một bài toán chúng ta thường bắt đầu bằng việc xây dựng mô hình liên kết – thực thể (mô hình ER) rồi sau đó áp dụng các nguyên tắc chuyển thành mô hình cơ sở dữ liệu quan hệ Các khái niệm của mô hình ER có thể được coi là khá đầy đủ để trình bày các lược đồ cơ sở dữ liệu trong các ứng dụng quản lý truyền thống hiện nay, chủ yếu là các ứng dụng xử lý dữ liệu trong kinh doanh và trong công nghiệp Ngày nay, cùng với sự phát triển nhanh chóng của công nghệ, các ứng dụng mới hơn cho công nghệ cơ sở dữ liệu đã trở nên phổ biến Các cơ sở dữ liệu mới đòi hỏi những yêu phức tạp hơn so với các ứng dụng truyền thống Vì vậy người thiết kế cơ sở dữ liệu phải sử dụng thêm các khái niệm mới để giải quyết bài toán được chính xác và rõ ràng hơn Việc thêm vào mô hình ER những khái niệm mới làm mở rộng mô hình ER và tạo nên mô hình ER mở rộng (gọi tắt là mô hình EER – Enhanced Entity Relationship Model)

4.1 Lớp cha, lớp con và sự kế thừa

Khái niệm đầu tiên trong mô hình EER là lớp con của một kiểu thực thể Như ta đã

biết, kiểu thực thể được sử dụng để biểu diễn cả kiểu của thực thể và tập hợp các thực thể cùng một kiểu trong cơ sở dữ liệu Trong nhiều trường hợp, một kiểu thực thể có thể có các nhóm con các thực thể của nó và những nhóm con này cần được trình bày rõ ràng do

ý nghĩa của nó đối với cơ sở dữ liệu

Ví dụ, các thực thể thành viên của kiểu thực thể NHÂNVIÊN có thể được chia thành các nhóm nhỏ: KỸ SƯ, NGƯỜI QUẢN LÝ, KỸ THUẬT VIÊN … Tập các thực thể trong các nhóm đó là một tập con của các thực thể trong tập thực thể nhân viên, nghĩa

là mỗi thực thể là thành viên của một trong những nhóm này cũng là một nhân viên

Chúng ta gọi mỗi nhóm này là một lớp con của kiểu thực thể NHÂNVIÊN Kiểu thực thể

NHÂNVIÊN được gọi là lớp cha của các lớp con đó Ta gọi quan hệ giữa lớp cha và một trong những lớp con của nó là kiểu liên kết lớp cha/ lớp con Kiểu liên kết lớp cha/ lớp con thường được gọi là kiểu liên kết là một (IS_A) Chúng ta thường nói rằng một kỹ sư

là một nhân viên, một kỹ thuật viên là một nhân viên

Chú ý rằng một thực thể thành viên trong lớp con cùng biểu diễn một thực thể thực tại như một thành viên trong lớp cha, vì vậy, các thực thể thành viên trong lớp con và các thực thể thành viên trong lớp cha là giống nhau, nhưng vai trò của chúng hoàn toàn khác nhau Khi chúng ta tạo một kiểu liên kết lớp cha/ lớp con trong hệ thống cơ sở dữ liệu, chúng ta có thể trình bày một thành viên của lớp con như như là một đối tượng riêng biệt, một bản ghi riêng biệt kết hợp với các thực thể của lớp cha của nó qua thuộc tính khoá Kiểu liên kết lớp cha/ lớp con là một kiểu liên kết có tỷ số lực lượng 1: 1

Một khái niệm quan trọng gắn với các lớp con là sự thừa kế kiểu Kiểu của một

thực thể được xác định bằng các thuộc tính và các kiểu liên kết mà nó tham gia Vì mỗi thực thể thành viên trong lớp con cùng biểu diễn một thực thể thực tại như thực thể trong lớp cha nên các giá trị của thuộc tính của nó trong lớp con cũng phải giống như là giá trị

Trang 32

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

của các thuộc tính của nó khi nó đóng vai trò là một thành viên trong lớp cha Thực thể này cũng được thừa kế các liên kết trong lớp cha Một lớp con với các thuộc tính riêng của nó cùng với tất cả các thuộc tính và kiểu liên kết kế thừa được từ lớp cha có quyền được coi như là một kiểu thực thể

4.2 Chuyên biệt hóa

Chuyên biệt hóa là quá trình xác định tập hợp các lớp con của một kiểu thực thể Kiểu thực thể này được gọi là lớp cha trong chuyên biệt hoá Tập các lớp con tạo nên một chuyên biệt hoá được xác định dựa trên cơ sở một đặc trưng phân biệt nào đó của các thực thể trong lớp cha Ví dụ, tập các lớp con {THƯ KÝ, KỸ SƯ, KỸ THUẬT VIÊN} là

một chuyên biệt hoá của lớp cha NHÂN VIÊN được xác định dựa trên kiểu công việc của

các thực thể Một kiểu thực thể có thể có một số chuyên biệt hoá dựa trên các đặc trưng khác nhau Ví dụ, một chuyên biệt hoá khác của kiểu thực thể NHÂN VIÊN sinh ra tập các lớp con {NHÂN VIÊN_BIÊN CHẾ, NHÂN VIÊN_HỢP ĐỒNG} Trong chuyên biệt

hoá này, các thực thể được phân biệt dựa trên cơ sở hình thức trả tiền

Biểu diễn chuyên biệt hóa: Một chuyên biệt hoá được biểu diễn trong sơ đồ EER

như sau: Các lớp con xác định một chuyên biệt hoá được nối bằng các đường đến một

vòng tròn, vòng tròn đó được nối với lớp cha Ký hiệu tập con (trên mỗi đường nối một

tập con với vòng tròn chỉ hướng của kiểu liên kết lớp cha / lớp con) Các thuộc tính chỉ

áp dụng cho các thực thể của một lớp con cụ thể - ví dụ như Tốc_độ_đánh_máy của lớp con THƯ KÝ - được nối với hình chữ nhật biểu diễn lớp con đó Các thuộc tính như vậy gọi là các thuộc tính riêng hoặc là các thuộc tính địa phương của lớp con Tương tự, một lớp con có thể tham gia vào các kiểu liên kết riêng, ví dụ, lớp con NHÂN VIÊN_HỢP ĐỒNG tham gia vào kiểu liên kết <thuộc về>

Có hai lý do chính để đặt các kiểu liên kết lớp cha/lớp con và chuyên biệt hoá vào

mô hình dữ liệu Thứ nhất là có một số thuộc tính có thể áp dụng cho một số các thực

Trang 33

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

thể chứ không phải cho toàn bộ các thực thể của lớp cha Khi đó, một lớp con sẽ được xác định để nhóm các thực thể mà các thuộc tính đó có thể áp dụng được Các thành viên của lớp con này có thể vẫn chia sẻ phần lớn các thuộc tính của chúng với các thành viên khác của lớp cha.Ví dụ, lớp con THƯ KÝ có thuộc tính riêng là Tốc_độ_đánh_máy, lớp con KỸ SƯ có thuộc tính riêng là Kiểu_kỹ_sư nhưng các thuộc tính khác của chúng là

chung với kiểu thực thể NHÂN VIÊN Lý do thứ hai là chỉ có các thành viên của lớp con

có thể tham gia vào một số kiểu liên kết nào đó Ví dụ, nếu chỉ có các nhân viên hợp đồng mới tham gia và công đoàn thì chúng ta có thể diễn đạt sự kiện đó bằng cách tạo ra một lớp con NHÂN VIÊN_HỢP ĐỒNG của NHÂN VIÊN và liên kết lớp con này với kiểu thực thể CÔNG_ĐOÀN thông qua kiểu thực thể <thuộc về>

Tóm lại, quá trình chuyên biệt hoá cho phép chúng ta làm các việc sau:

• Xác định một tập hợp các lớp con của một kiểu thực thể

• Thiết lập các thuộc tính riêng cho mỗi lớp con

• Thiết lập các kiểu liên kết riêng giữa mỗi lớp con và các kiểu thực thể khác hoặc các lớp con khác

4.3 Tổng quát hóa

Là quá trình đảo ngược của chuyên biệt hoá, trong đó ta bỏ qua sự khác nhau giữa một số kiểu thực thể, xác định các đặc tính chung của chúng và tổng quát hoá chúng thành một lớp cha của các kiểu thực thể đó Ví dụ, ta có kiểu thực thể XE CON với các thuộc tính (Mã_số, Số_giấy_phép, Giá, Tốc_độ_tối_đa, Số_chỗ_ngồi) và kiểu thực thể

XE TẢI với các thuộc tính (Mã_số, Số_giấy_phép, Giá, Trọng_tải, Số_các_trục), các kiểu thực thể này có một số thuộc tính chung, chúng có thể được tổng quát hoá thành kiểu thực thể với các thuộc tính (Mã_số, Số_giấy_phép, Giá) Các kiểu thực thể XE CON

và XE TẢI trở thành các lớp con của lớp cha XE ÔTÔ Như vậy, tổng quát hoá là quá trình tổng quát một kiểu thực thể từ các kiểu thực thể cho trước

Một tổng quát hoá được biểu diễn trong sơ đồ EER giống như là một chuyên biệt hoá Tổng quát là lớp cha còn chuyên biệt là các lớp con được sử dụng để tạo nên lớp cha (hình dưới)

Trang 34

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

4.4 Mô hình EER

Mô hình EER có biểu diễn đồ hoạ giống như mô hình ER, nghĩa là các kiểu thực thể (các lớp) được biểu diễn bằng các hình chữ nhật có ghi tên ở giữa, các thuộc tính của chúng được biểu diễn bằng các hình ô van nối với hình chữ nhật Các kiểu liên kết được biểu diễn bằng các hình thoi và được nối với các kiểu thực thể tham gia liên kết Tại các hình thoi có ghi rõ các tỷ số lực lượng tham gia của các kiểu thực thể tham gia vào kiểu liên kết Ngoài ra, kiểu liên kết lớp cha/lớp con được biểu diễn bằng một đường nối có thêm một ký hiệu tập con “⊂“ ở giữa đường nối Các lớp con trong một chuyên biệt được nối với một vòng tròn và vòng tròn được nối với lớp cha Nếu chuyên biệt là rời rạc, giữa vòng tròn sẽ ghi chữ d, nếu chuyên biệt là chồng chéo, giữa vòng tròn có ghi chữ o

Trang 35

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

BÀI 2: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ

Trong phần trước đã trình bày về mô hình ER, mô hình ER là mô hình dễ lập vì nó phản ánh sát sao các đối tượng trong thực tế Tuy nhiên mô hình ER chưa phải là tránh được các nhược điểm Vì vậy qua bước sơ bộ dùng mô hình ER để lập được lược đồ dữ liệu, ta phải hoành chỉnh tiếp lược đồ bằng cách:

- Chuyển qua mô hình quan hệ để thực hiện sự chuẩn hóa

- Bổ sung các ràng buộc toàn vẹn, tức là các điều kiện mà lược đồ dữ liệu phải thỏa mãn

Mô hình CSDL quan hệ lần đầu tiên được E.F.Codd và tiếp sau đó được công ty IBM giới thiệu vào năm 1970 Ngày nay, hầu hết các tổ chức đã áp dụng CSDL quan hệ

để quản lý dữ liệu trong đơn vị mình Mô hình quan hệ do Codd đề ra có các ưu điểm sau:

- Đơn giản: các dữ liệu được biểu diễn dưới một dạng duy nhất, là quan hệ, tức là

các bảng giá trị, khá tự nhiên và dễ hiểu đối với người dùng không chuyên tin học

- Chặt chẽ: các khái niệm được hình thức hóa cao, cho phép áp dụng các công cụ

toán học, các thuật toán

- Trừu tượng hóa cao: mô hình chỉ dừng ở mức quan niệm, nghĩa là độc lập với

mức vật lý, với sự cài đặt, với các thiết bị Nhờ đó làm cho tính độc lập giữa dữ liệu và chương trình cao

- Cung cấp các ngôn ngữ truy nhập dữ liệu ở mức cao, dễ sử dụng và trở thành chuẩn

Mô hình cơ sở dữ liệu quan hệ là cách thức biểu diễn dữ liệu dưới dạng bảng hay còn gọi là quan hệ, mô hình được xây dựng dựa trên cơ sở lý thuyết đại số quan hệ

1 CÁC KHÁI NIỆM TRONG MÔ HÌNH QUAN HỆ

Mô hình quan hệ biểu diễn cơ sở dữ liệu như một tập các quan hệ Mỗi quan hệ có thể được biểu diễn như một bảng tương ứng với một kiểu thực thể, mỗi dòng của bảng biểu diễn một tập hợp các giá trị dữ liệu liên quan với nhau tương ứng với một thực thể

cụ thể hoặc một liên kết của thế giới thực, mỗi cột của bảng tương ứng với một thuộc tính của kiểu thực thể Tên bảng và tên các cột dùng để giúp giải thích ý nghĩa của các giá trị trong mỗi dòng Mọi giá trị trong một cột đều cùng một kiểu dữ liệu

Theo thuật ngữ mô hình quan hệ hình thức, mỗi dòng được gọi là một bộ, mỗi đầu cột được gọi là một thuộc tính, và bảng được gọi là một quan hệ Tập hợp các giá trị của một cột gọi là miền giá trị của cột

1.1 Thuộc tính (Attribute)

Thuộc tính trong mô hình quan hệ thể hiện một đặc trưng hay một tính chất của quan hệ

Trang 36

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

1.2 Miền giá trị (Domain)

Một miền giá trị, ký hiệu là D là một tập hợp các giá trị nguyên tử, không thể phân

chia được trong phạm vi mô hình quan hệ Để đặc tả một miền một phạm vi nhận giá trị của một thuộc tính nào đó, người ta chỉ ra một tên, một kiểu dữ liệu và khuôn dạng dữ liệu Một số ví dụ về định nghĩa miền giá trị:

• Họ tên: Tập hợp các dãy chữ cái có độ dài <= 30

• Tuổi: Tập các số nguyên nằm trong khoảng từ 1 đến 80

• Giới tính: Tập hợp gồm hai giá trị “Nam”, “Nữ”

Miền giá trị trong mô hình quan hệ ký hiệu là D, miền giá trị của một thuộc tính Ai

bất kì ký hiệu là Dom(Ai)

1.3 Bộ dữ liệu (Data Tube)

Bộ trong mô hình quan hệ là các dòng thể hiện giá trị của quan hệ trừ dòng tiêu đề

Bộ dùng để thể hiện dữ liệu cụ thể của các thuộc tính trong quan hệ

Như trình bày trên, một quan hệ là một bảng hai chiều các giá trị, đó là tập hợp các

bộ của quan hệ tại thời điểm nào đó Tuy nhiên, trên quan hệ lại thường xuyên có các

phép cập nhật (bổ sung, loại bỏ, điều chỉnh), do đó quan hệ thay đổi theo thời gian

Tuy quan hệ thay đổi về giá trị do thực hiện thao tác cập nhật nhưng quan hệ đó vẫn giữ được các đặc trưng về mặc ngữ nghĩa Các đặc trưng không thay đổi đó của quan hệ

được gọi là lược đồ quan hệ

Lược đồ quan hệ được sử dụng để mô tả một quan hệ, bao gồm: Tên quan hệ, các thuộc tính và bậc của quan hệ (số lượng các thuộc tính)

Trang 37

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Ký hiệu lược đồ quan hệ: R(A1,…,An)

Trong đó:

- R là tên quan hệ cần biểu diễn,

- Ai là tên các thuộc tính, mỗi Ai có miền giá trị tương ứng Dom(Ai)

Lược đồ quan hệ là sự tạo thành từ hai yếu tố cơ bản:

- Một cấu trúc cơ bản, gồm tên quan hệ và một danh sách các thuộc tính (mỗi

thuộc tính gắn với một miền), thường cho dưới dạng R(A1, A2, …, An),

- Một tập hợp các ràng buộc toàn vẹn, tức là các điều kiện mà mọi quan hệ trong

lược đồ đều phải thỏa mãn

Như vậy, Lược đồ quan hệ là một khuôn mẫu, là một bộ lọc cho phép thiết lập một họ các quan hệ có cùng ngữ nghĩa với nhau

Ví dụ, ta có lược đồ quan hệ SINHVIÊN (Mã_số, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ) với các ràng buộc toàn vẹn như sau:

- Một bộ <ms, ht, ns, gt, dc> có nghĩa là một sinh viên nào đó có một mã số, một họ tên, một ngày sinh, một giới tính và một địa chỉ xác định,

- Miền xác định của giới tính chỉ nhận hai giá trị “Nam” hoặc “Nữ”

Lược đồ cơ sở dữ liệu: là tập các lược đồ quan hệ của một hệ thống quản lý

Ví dụ: Bài toán quản lý sinh viên ta có lược đồ cơ sở dữ liệu như sau:

KHOA(Mã_Khoa, Tên_Khoa)

LỚP(Mã_Lớp, Tên_Lớp, Mã_Khoa)

SINHVIÊN (Mã_SV, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ, Mã_Lớp)

2 RÀNG BUỘC TOÀN VẸN TRONG QUAN HỆ

2.1 Giới thiệu

RBTV (Entegrity constraint) là các qui định, điều kiện từ thực tế được cài đặt để đảm bảo dữ liệu lưu trữ trong CSDL phải thỏa mãn các qui định này Các điều kiện này phải luôn đúng sau mỗi thao tác (thêm, sửa, xóa) làm thay đổi trạng thái của CSDL

Ràng buộc là những quy tắc được áp đặt lên trên dữ liệu đảm bảo tính tin cậy và độ

chính xác của dữ liệu Các luật toàn vẹn được thiết kế để giữ cho dữ liệu phù hợp và đúng

đắn Các RBTV là những điều kiện bất biến mà mọi thể hiện của quan hệ đều phải thỏa mãn ở bất kỳ thời điểm nào Như vậy, RBTV là những qui tắc, qui phạm được áp đặt lên trên các đối tượng của thế giới thực

Ví dụ:

- Mức lương của một người nhân viên không được vượt quá trưởng phòng mà nhân viên đó làm,

- Người quản lý trực tiếp (của một nhân viên) phải là một nhân viên trong công ty

RBTV luôn được kiểm tra khi:

- Thực hiện một thao tác cập nhật CSDL

Trang 38

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

- Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra RBTV được tiến hành một cách độc lập đối với các thao tác cập nhật dữ liệu

RBTV rất quan trọng vì:

- Giúp CSDL thể hiện trung thực thế giới thực mà CSDL đang mô tả

- Ngăn chặn các thao tác gây sai sót trên CSDL

- Giúp CSDL luôn đúng đắn so với thực tế tại mọi thời điểm

Có 4 nhóm kiểu ràng buộc chính: Ràng buộc miền giá trị (Domain Constraints),

Ràng buộc khoá (Key Constraints), Ràng buộc thực thể (Entity Integrity Constraints), và Ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraints)

2.2 Các đặc trưng RBTV

Mỗi một ràng buộc toàn vẹn khi mô tả được xác định qua ba đặc trưng: Bối cảnh,

Nội dung và tầm ảnh hưởng

Bối cảnh

Dùng để xác định những quan hệ có khả năng xảy ra hay vi phạm RBTV khi thực hiện các phép cập nhật hay nói cách khác bối cảnh dùng để xác định các quan hệ cần phải được kiểm tra RBTV Bối cảnh có thể là một hoặc nhiều quan hệ của một Cơ sở dữ liệu

Ví dụ: “Mức lương của một người nhân viên không được vượt quá trưởng phòng”

Ràng buộc trên sẽ có khả năng xảy ra vi phạm khi thực hiện trong trường hợp:

- Cập nhật lương cho nhân viên đã có,

- Thêm một nhân viên mới vào phòng ban,

- Bổ nhiệm một người làm trưởng phòng của một phòng ban

Vậy ràng buộc toàn vẹn trên xảy ra khi thực hiện thao tác trên hai quan hệ là

“NHAN VIEN” và “PHONG BAN” Vì vậy bối cảnh của RBTV là “NHAN VIEN” và

“PHONG BAN”

Nội dung

Dùng để mô tả hay biểu diễn một cách hình thức nội dung hay yêu cầu của một ràng

buộc toàn vẹn, thông thường một ràng buộc toàn vẹn thường được phát biểu bằng: ngôn

ngữ tự nhiên hay bằng ngôn ngữ hình thức (sử dụng các phép toán như: tồn tại (), với mọi (), phủ định (!), chiếu (π), chọn (σ), kết nối (*))

Tầm ảnh hưởng

Là một bảng để xác định thao tác nào cần phải kiểm tra ràng buộc toàn vẹn khi thực hiện hoặc xác định thời điểm cần phải tiến hành kiểm tra ràng buộc toàn vẹn

Bảng tầm ảnh hưởng có hai loại: bảng tầm ảnh hưởng cho một RBTV và bảng tầm

ảnh hưởng cho nhiều RBTV

Nguyên tắc xây dựng bảng tầm ảnh hưởng:

- Bảng gồm 4 cột và ít nhất 2 hàng, mỗi hàng tương ứng cho một quan hệ

¡ Cột 1 chứa tên các quan hệ liên quan tới RBTV

Trang 39

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

¡ 3 cột tiếp theo là tên các thao tác: Thêm / Sửa / Xoá

- Điền nội dung vào bảng theo nguyên tắc:

¡ Nếu RBTV cần được kiểm tra nguy cơ dẫn tới vi phạm cho quan hệ thì đánh dấu cộng (+);

- Có thể chỉ rõ các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm

bằng cách liệt kê chúng dưới dấu (+)

¡ Nếu không có nguy cơ bị vi phạm thì đánh dấu trừ (-);

¡ Nếu không bị vi phạm vì không được phép sửa đổi thì kí hiệu là trừ với dấu nhân: (- (*))

Dạng bảng tầm ảnh hưởng của một RBTV

Trong đó:

Dấu (+) thể hiện trạng thái Xảy ra Vi phạm RBTV,

Dấu (−) thể hiện trạng thái Không xảy ra vi phạm RBTV,

Dấu +(Thuộc tính) thể hiện trạng thái xảy ra RBTV khi thao tác trên thuộc tính tương ứng,

Dâu -(*) thể hiện trạng thái không thể gây ra vi phạm RBTV do thao tác không thực hiện được

Ví dụ: Giới tính của nhân viên chỉ nhận giá trị “Nam” hoặc “Nữ”

Có nghĩa là: ràng buộc này xảy ra khi thêm mới hoặc khi sửa trên thuộc tính có tên

là “giới tính”

Dạng bảng tầm ảnh hưởng tổng hợp

Trang 40

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

2.3 Phân loại RBTV

Các ràng buộc toàn vẹn gắn kết với một mô hình quan hệ thường được chia thành

hai nhóm chính: ràng buộc trên một quan hệ và ràng buộc trên nhiều quan hệ

* Ràng buộc trên một quan hệ là ràng buộc chỉ tác động trên một quan hệ, thường gồm các trường hợp sau:

- Ràng buộc miền giá trị

- Ràng buộc liên bộ

- Ràng buộc liên thuộc tính

- Ràng buộc giá trị theo thời gian

* Ràng buộc nhiều quan hệ là ràng buộc tác động trên nhiều quan hệ khác nhau, thường bao gồm các trường hợp sau:

- Ràng buộc tham chiếu

- Ràng buộc liên bộ, liên quan hệ

- Ràng buộc liên thuộc tính, liên quan hệ

- Ràng buộc thuộc tính hỗn hợp

a Ràng buộc miền giá trị

Là quy tắc về các kiểu dữ liệu và những giá trị giới hạn mà một thuộc tính có thể nhận được

Thông thường việc xác định miền giá trị của các thuộc tính bao gồm một số các yêu

cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ liệu, Khuôn dạng của dữ liệu, Các giá

trị giới hạn cho phép, Ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng hay

không

Ví dụ: Cho lược đồ DIEM THI (MSV, MaMon, DiemThi)

Ràng buộc: “Thuộc tính Điểm có kiểu là nguyên dương, độ dài 2, chỉ nhận các giá

Ngày đăng: 06/06/2024, 11:10