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 1Trung 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 2Trung 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 3Trung 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 4Trung 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 5Trung 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 6Trung 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 7Trung 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 8Trung 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 9Trung 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 10Trung 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 11Trung 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 12Trung 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 13Trung 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 14Trung 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 15Trung 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 16Trung 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 17Trung 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 18Trung 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 19Trung 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 20Trung 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 21Trung 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 22Trung 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 23Trung 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 24Trung 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 25Trung 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 26Trung 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 27Trung 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 28Trung 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 29Trung 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 30Trung 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 31Trung 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 32Trung 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 33Trung 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 34Trung 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 35Trung 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 36Trung 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 37Trung 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 38Trung 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 39Trung 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 40Trung 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á