Tổng quan về cơ sở dữ liệu Chương này trình bày các khái niệm cơ bản về hệ cơ sở dữ liệu như cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu, ngôn ngữ và giao diện, con
Trang 3LỜI NÓI ĐẦU
Các hệ cơ sở dữ liệu đóng vai trò quan trọng trong việc ứng dụng công nghệ thông tin vào cuộc sống hàng ngày của xã hội hiện đại Cùng với sự tiến bộ của kỹ thuật, nhiều ứng dụng mới của cơ sở dữ liệu cuxng đang được phát triển mạnh Để có thể thiết kế, cài đặt và ứng dụng tốt các hệ cơ sở dữ liệu, trước hết
cần hiểu rõ các khái niệm cơ bản cần thiết Bài giảng Cơ sở dữ liệu nhằm trang
bị cho sinh viên các kỹ thuật cơ bản của cơ sở dữ liệu truyền thống Với những kiến thức đó, sinh viên có thể xây dựng được các cơ sở dữ liệu truyền thống để đưa vào ứng dụng trong cuộc sống hàng ngày và cũng là cơ sở để nghiên cứu sâu hơn, tạo ra các cơ sở dữ liệu đáp ứng với các yêu cầu ứng dụng mới Bài giảng gồm 5 chương:
Chương 1 Tổng quan về cơ sở dữ liệu
Chương này trình bày các khái niệm cơ bản về hệ cơ sở dữ liệu như cơ sở
dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu, ngôn ngữ và giao diện, con người sử dụng hệ cơ sở dữ liệu Thông qua chương này, người đọc nắm được định nghĩa và ý nghĩa của các thuật ngữ dùng trong hệ cơ sở dữ liệu
Chương 2 Mô hình thực thể liên kết
Chương này trình bày các khái niệm cơ bản của mô hình thực thể liên kết
và cách thiết kế mô hình
Chương 3 Mô hình cơ sở dữ liệu quan hệ
Chương này giúp sinh viên làm quen với các khái niệm cơ bản về mô hình
cơ sở dữ liệu quan hệ, các ràng buộc trên mô hình và cách thiết kế cơ sở dữ liệu quan hệ bằng việc chuyển đổi từ mô hình thực thể liên kết Ngoài ra, cung cấp cho sinh viên các kiến thức về các phép toán đại số quan hệ cơ bản
Chương 4 Phụ thuộc hàm và chuẩn hóa cơ sở dữ liệu quan hệ
Chương này đề cập tới định nghĩa và tính chất của các phụ thuộc hàm, các dạng chuẩn của quan hệ, các phương pháp tách (chuẩn hóa) quan hệ
Chương 5 SQL
Chương này giới thiệu các câu lệnh cơ bản của ngôn ngữ truy vấn SQL Bài giảng có ích cho các sinh viên ngành Hệ thống thông tin cũng như tất cả những ai muốn tìm hiểu về cơ sở dữ liệu
Trang 4Mặc dù đã cố gắng trình bày các vấn đề một cách chính xác và dễ hiểu, tuy nhiên do thời gian và kinh nghiệm còn hạn chế, chắc chắn bài giảng vẫn còn nhiều thiếu sót Mặt khác, đây là một bài giảng nhập môn nên không có điều kiện để trình bày nhiều khía cạnh khác của cơ sở dữ liệu như quản trị cơ sở dữ liệu, an ninh cơ sở dữ liệu,… Tác giả rất mong nhận được các ý kiến đóng góp của độc giả để trong lần tái bản sau, bài giảng sẽ được hoàn chỉnh hơn
Tác giả
Trang 5Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Trong nhiều năm gần đây, thuật ngữ cơ sở dữ liệu – Database đã trở nên quen thuộc trong nhiều lĩnh vực Các ứng dụng tin học và quản lý ngày càng nhiều và đa dạng, hầu hết các lĩnh vực kinh tế, xã hội,…đều đã ứng dụng thành tựu mới của tin học vào phục vụ công tác chuyên môn của mình Chính vì lẽ đó
mà ngày càng nhiều người quan tâm đến thiết kế, xây dựng và ứng dụng cơ sở
dữ liệu
Trong chương này, chúng ta sẽ tìm hiểu thế nào là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, các mô hình cơ sở dữ liệu và các khái niệm cơ bản khác
1.1 Dữ liệu
Dữ liệu (Data) là những mô tả về sự vật, con người và sự kiện trong thế
giới thực mà chúng ta gặp hàng ngày bằng nhiều cách thể hiện khác nhau
Một số dạng thường dùng để biểu diễn dữ liệu như văn bản (Text), số (Number), biểu tượng (Symbol), hình ảnh (Image), âm thanh (Audio), phim ảnh (Video)
(Ngoài định nghĩa trên còn có nhiều định nghĩa khác về dữ liệu)
1.2 Thông tin
Thông tin (Information) cũng như dữ liệu, nó có rất nhiều cách định
nghĩa khác nhau Một định nghĩa bao quát hơn cả là xem thông tin là dữ liệu được đặt vào ngữ cảnh với một hình thức thích hợp và có lợi cho người sử dụng cuối cùng
Ví dụ:
Có các dữ liệu về giá vàng ở các ngày trong tháng; nếu ta biểu diễn giá vàng bằng 1 điểm giá trị trên mặt phẳng theo trục thời gian với ngày/tháng tăng dần từ trái sang phải, sẽ nhận được thông tin về “sự biến động của giá vàng trong tháng” mà khi để ở dạng bảng thường không thể nhận được thông tin biến động này
1.3 Cơ sở dữ liệu
1.3.1 Tại sao cần tới các hệ CSDL?
Trước khi các hệ cơ sở dữ liệu(CSDL) ra đời, mỗi chương trình ứng dụng đều có một tệp dữ liệu tương ứng và mỗi khi chương trình ứng dụng cần được
Trang 6sửa đổi hoặc mở rộng thì tệp dữ liệu tương ứng cũng phải thay đổi theo Cho đến nay vẫn còn một số đơn vị kinh tế, hành chính sự nghiệp… sử dụng mô hình hệ thống các tệp tin cổ điển Các tệp tin này được tổ chức riêng rẽ, phục vụ cho mục đích của một đơn vị hoặc một số đơn vị con trực thuộc cụ thể, không có một mô hình tổng thể cho toàn bộ đơn vị Việc sử dụng hệ thống các tệp tin để lưu trữ dữ liệu một cách riêng lẻ có một số các ưu điểm và khuyết điểm
- Ưu điểm:
+ Việc xây dựng hệ thống các tệp tin riêng tại từng đơn vị quản lý ít tốn thời gian bởi khối lượng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu
tư vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh
+ Thông tin được khai thác chỉ phục vụ mục đích hẹp nên khả năng đáp ứng nhanh chóng, kịp thời
- Nhược điểm:
+ Thông tin được tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu, dễ xảy ra tình trạng dữ liệu bị trùng lặp, số lượng dữ liệu tăng nhanh
+ Hệ thống thông tin được tổ chức thành các hệ thống tệp tin riêng lẻ nên thiếu
sự chia sẻ thông tin giữa các nơi
Như vậy, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp tin hoàn toàn không phù hợp với những hệ thốngthông tin lớn Việc xây dựng một
hệ thống thông tin đảm bảo được tính chất nhất quán về mặt dữ liệu, đáp ứng được nhu cầu khai thác đồng thời của nhiều người là thực sự cần thiết
1.3.2 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc
sử dụng máy tính Có thể nói rằng cơ sở dữ liệu đóng vai trò quan trọng trong mọi lĩnh vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ biến Như vậy,
cơ sở dữ liệu là gì?
Một cơ sở dữ liệu(CSDL)là một tập hợp các dữ liệu dùng chung(1), có liên quan với nhau, cùng với mô tả của chúng, được thiết kế cho nhu cầu thông tin của một tổ chức
1
Khái niệm dùng chung, chia sẻ dữ liệu được dùng rộng rãi trong nhiều ứng dụng với nghĩa nhiều người dùng
Trang 71.3.3 Các tính chất của CSDL
Một cơ sở dữ liệu có các tính chất sau:
1 Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu Những thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu hoặc là một “thế giới thu nhỏ”
2 Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang một ý nghĩa cố hữu nào đó Một cơ sở dữ liệu không phải là một tập hợp tuỳ tiện
3 Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của người sử dụng
Nói cách khác, một cơ sở dữ liệu có một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới thực và một nhóm người quan tâm tích cực đến các nội dung của nó
Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi Có những
cơ sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ sở dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi lớn) Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết Một cơ sở dữ liệu có thể được tạo ra và duy trì một cách thủ công và cũng
có thể được tin học hoá Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì
bằng 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
Trang 81.4 Hệ quản trị CSDL
1.4.1 Định nghĩa hệ quản trị CSDL
Một hệ quản trị cơ sở dữ liệu (Database Management System) là tập hợp
chương trình giúp cho người sử dụng tạo ra, duy trì và khai thác một cơ sở dữ
liệu Nó là một hệ thống phần mềm phổ dụng, làm đơn giản hóa 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 Hay nói
cách khác, hệ quản trị cơ sở dữ liệu (HQTCSDL) là phần mềm tương tác với các chương trình ứng dụng của người dùng và cơ sở dữ liệu
- Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các
cấu trúc và các ràng buộc cho các dữ liệu sẽ được lưu trữ trong cơ sở
- Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các
phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát
- Thao tác một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ
liệu để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu
Hình 1.1.Mối quan hệ giữa CSDL, HQTCSDL và ứng dụng
Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hoá
có thểlà 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)
Ví dụ:
Microsoft Office Access, Microsoft SQL Server, Oracle, Foxpro, IBM DB2…
1.4.2 Các chức năng của một hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu có các chức năng cơ bản như sau:
Trang 9 Quản lý từ điển dữ liệu:
Hệ quản trị quản lý tất cả các dữ liệu dùng để mô tả dữ liệu Nó lưu các định nghĩa về cấu trúc và quan hệ trong từ điển dữ liệu Cho phép thực hiện trừu tượng hóa dữ liệu nhằm đảm bảo tính độc lập dữ liệu và độc lập cấu trúc
Quản lý lưu trữ:
Hệ quản trị tạo ra các cấu trúc phức tạp để lưu trữ từ những dữ liệu cơ bản đơn giản đến phức tạp, từ các định nghĩa về biểu mẫu, biểu báo đến các ràng buộc dữ liệu và các đoạn mã chương trình
Quản lý nhập xuất:
Hệ quản trị biến đổi dữ liệu phù hợp với cấu trúc lưu trữ, nhờ đó ta không cần quan tâm đến định dạng vật lý của dữ liệu và kết xuất dữ liệu ra theo các yêu cầu logic của người sử dụng
Quản lý bảo mật:
Hệ quảntrị tạo ra một hệ thống bảo mật kiểm soát quyền sử dụng của người dùng
Điều khiển truy xuất nhiều người dùng:
Hệ quản trị tạo ra các cấu trúc phức tạp dùng các giải thuật tinh vi nhằm bảo đảm cơ sở dữ liệu luôn luôn nhất quán
Quản lý sao lưu và phục hồi cơ sở dữ liệu:
Hệ quản trị cung cấp các thủ tục sao lưu và phục hồi dữ liệu đảm bảo dữ liệu an toàn và toàn vẹn khi xảy ra các sự cố hoặc khi có yêu cầu từ người dùng
Quản lý sự toàn vẹn dữ liệu:
Hệ quản trị cung cấp cơ chế nhằm giảm dư thừa và tăng sự nhất quán, đặc biệt trong cơ sở dữ liệu nhiều người dùng
Ngôn ngữ truy xuất cơ sở dữ liệu và giao diện lập trình ứng dụng:
Hệ quản trị cung cấp cơ chế truy xuất dữ liệu qua ngôn ngữ truy xuất cơ sở
dữ liệu là ngôn ngữ hỏi gồm: ngôn ngữ định nghĩa dữ liệu DDL (Data Defitintion Language) và ngôn ngữ thao tác dữ liệu DML (Data Manipulation Language) Nó cũng cung cấp giao diện cho các ngôn ngữ lập trình
Giao diện giao tiếp với cơ sở dữ liệu:
Hệ quản trị cung cấp các thủ tục giao tiếp đặc biệt được thiết kế cho phép
cơ sở dữ liệu đáp ứng các yêu cầu của người dùng cuối trong môi trường mạng
1.4.3 Các thành phần của một hệ quản trị cơ sở dữ liệu
Nhằm mục đích cung cấp các chức năng và dịch vụ kể trên, các hệ quản
Trang 10trị cơ sở dữ liệu là các hệ thống phần mềm tinh vi và có độ phức tạp cao Một hệ quản trị CSDL được chia thành một số thành phần, mỗi thành phần là một modul phần mềm chịu một số trách nhiệm cụ thể
Hình 1.2 Thành phần của hệ quản trị CSDL
Về cơ bản, hệ quản trị cơ sở dữ liệu có các thành phần sau:
Bộ xử lý câu hỏi (Query Processor): Là một thành phần chính của hệ quản trị CSDL với nhiệm vụ dịch các câu lệnh trong ngôn ngữ truy vấn thành các câu lệnh ở mức thấp để chuyển cho bộ quản lý CSDL
Bộ quản lý CSDL (Database Mangager): giao tiếp với các chương trình ứng dụng của người dùng và các câu lệnh truy vấn Nó tiếp nhận các yêu cầu truy vấn và kiểm tra các lược đồ ngoài và lược đồ khái niệm(1) để xác định những bản ghi khái niệm nào đã được yêu cầu Sau đó nó gọi đến bộ phận quản
lý tệp tin để thực hiện yêu cầu Có thể nhìn thấy chi tiết hơn các thành phần tạo nên bộ quản lý CSDL ở hình 1.3, gồm:
- Trình quản lý quyền truy cập (Authorization Control);
- Trình xử lý câu lệnh (Command Processor);
- Trình kiểm tra tính toàn vẹn (Integrity Checker);
- Trình tối ưu hóa câu hỏi (Query Optimizer);
Trang 11
- Trình quản lý giao tác (Transaction Manager);
- Trình lập lịch (Scheduler): điều khiển thứ tự thực hiện các thao tác của các giao tác có liên quan đến nhau để đảm bảo chúng không làm ảnh hưởng đến nhau, có nghĩa là giải quyết những xung đột trong hoạt động đồng thời của nhiều giao tác;
- Trình quản lý việc khôi phục dữ liệu (Recovery Manager);
- Trình quản lý bộ nhớ đệm
Bộ tiền xử lý DML (DML Preprocessor): Chuyển các câu lệnh thao tác
dữ liệu DML (Data Manipulation Language) nhúng trong một chương trình ứng dụng thành các lời gọi thủ tục chuẩn trong ngôn ngữ chủ Nó phải tương tác với
bộ xử lý câu hỏi để sinh ra mã thích hợp
Bộ biên dịch DDL (Data Defition Language Compiler): chuyển các câu
lệnh định nghĩa dữ liệu DDL sang thành một tập các bảng chứa siêu dữ liệu
(meta-data) Các bảng này được lưu giữ trong hệ thống từ điển dữ liệu(1)(Catalog)
Bộ quản lý từ điển dữ liệu (Catalog Manager): Quản lý các truy cập đến
từ điển dữ liệu và bảo trì hệ thống từ điển dữ liệu Hầu hết các thành phần của
Hệ quản trị CSDL đều truy cập đến hệ thống từ điển dữ liệu
Hình 1.3 Thành phần bộ quản lý dữ liệu
1
Một từ điển dữ liệu là một tệp tin chứa các siêu dữ liệu, là các dữ liệu về dữ liệu Tệp này được tham khảo trước khi dữ liệu thực sự được đọc hay được sửa đổi trong hệ CSDL
Trang 121.5.Hệ thống cơ sở dữ liệu (Database System)
1.5.2.Các thành phần của hệ thống cơ sở dữ liệu
Nhìn tổng quát, hệ thống cơ sở dữ liệu gồm 4 thành phần cơ bản:
1 Cơ sở dữ liệu
2 Hệ quản trị cơ sở dữ liệu
3 Chương trình ứng dụng: Các chương trình, phần mềm cho phép người
sử dụng truy cập dữ liệu
4 Người sử dụng:Người dùng cuối, Người quản trị cơ sở dữ liệu, Người phát triển hệ thống
Hình 1.4 Môi trường hệ cơ sở dữ liệu
1.5.3 Con người trong hệ cơ sở dữ liệu
Với một cơ sở dữ liệu lớn, rất nhiều người tham gia vào việc thiết kế, sử
1
Hệ thống thông tin được xác định như một tập hợp các thành phần được tổ chức để thu thập, xử lý, lưu trữ,
Trang 13dụng và duy trì CSDL Những người liên quan đến hệ cơ sở dữ liệu được chia thành hai nhóm chính Nhóm thứ nhất gồm những người mà công việc của họ liên quan thường xuyên đến cơ sở dữ liệu, đó là những người quản trị cơ sở dữ liệu, thiết kế cơ sở dữ liệu, sử dụng cơ sở dữ liệu, phân tích hệ thống và lập trình ứng dụng Nhóm thứ hai gồm những người làm việc để duy trì môi trường
hệ cơ sở dữ liệu nhưng không quan tâm đến bản thân cơ sở dữ liệu, đó là những người thiết kế và cài đặt hệ quản trị cơ sở dữ liệu, phát triển công cụ, thao tác viên và bảo trì
a Người quản trị hệ cơ sở dữ liệu (Database Administrator)
Trong một tổ chức có nhiều người cùng sử dụng các tài nguyên, cần phải
có một người giám sát và quản lý Trong môi trường hệ cơ sở dữ liệu, các tài nguyên là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm liên quan
Người quản trị hệ cơ sở dữ liệu là người chịu trách nhiệm quản lý các tài nguyên đó Người này chịu trách nhiệm về việc cho phép truy cập CSDL, tổ chức và hướng dẫn việc sử dụng cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu
b Người thiết kế cơ sở dữ liệu (Database Designer)
Người này chịu trách nhiệm xác định các dữ liệu sẽ được lưu giữ trong cơ
sở dữ liệu, chọn lựa cấu trúc tương ứng để trình bày và lưu trữ các dữ liệu này Những nhiệm vụ này được thực hiện trước khi cơ sở dữ liệu được thực sự xây dựng và tạo lập dữ liệu Người thiết kế có trách nhiệm liên hệ với mọi người sẽ dùng cơ sở dữ liệu để hiểu được các đòi hỏi của họ và đưa ra một thiết kế thoả mãn các yêu cầu đó Anh ta cũng có nhiệm vụ giao thiệp với các nhóm người sử dụng và có khả năng hỗ trợ các yêu cầu của các nhóm
c Những 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; CSDL tồn tại chủ yếu dựa trên cách sử dụng của họ Có thể chia những người sử dụng
thành hai nhóm chính: những người sử dụng thụ động (tức là những người sử dụng không có nhiều kiến thức về hệ cơ sở dữ liệu) và những 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)
Chức năng công việc của những người sử dụng thụ động (chiếm phần lớn những người sử dụng) gắn liền với việc truy vấn và cập nhật thường xuyên cơ sở
Trang 14dữ liệu bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (gọi là các giao tác định sẵn) đã được lập trình và kiểm tra cẩn thận Những người này chỉ cần học một ít về các phương tiện do hệ quản trị cơ sở dữ liệu cung cấp và hiểu các kiểu giao tác chuẩn đã được thiết kế và cài đặt là đủ
Những người sử dụng chủ động có hiểu biết tốt về hệ 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 thoả mãn các yêu cầu phức tạp của họ
d Người phân tích hệ thống và lập trình ứng dụng
Người phân tích hệ thống xác định các yêu cầu của những người sử dụng (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 những người phân tích thành chương trình, sau đó kiểm thử, sửa lỗi làm tài liệu và bảo trì các giao tác định sẵn
e Người thiết kế và cài đặt hệ quản trị dữ liệu
Đó là những người thiết kế, cài đặt các mô đun, giao diện của hệ quản trị
cơ sở dữ liệu thành các phần mềm đóng gói Một hệ quản trị cơ sở dữ liệu là một
hệ thống phần mềm phức tạp bao gồm nhiều thành phần (mô đun) Đó là các mô đun cài đặt từ điển dữ liệu, ngôn ngữ truy vấn, bộ xử lý giao diện, truy cập dữ liệu, kiểm tra cạnh tranh, phục hồi và an toàn Hệ quản trị cơ sở dữ liệu phải giao tiếp với các hệ thống phần mềm khác như hệ điều hành và các chương trình dịch cho nhiều ngôn ngữ khác nhau
f Những người phát triển công cụ
Là những người thiết kế và cài đặt các công cụ (tool), đó là các phần mềm đóng gói làm dễ việc thiết kế và sử dụng cơ sở dữ liệu
g Các thao tác viên và những người bảo trì
Là những người chịu trách nhiệm về việc chạy và bảo trì phần cứng và phần mềm của hệ thống
1.6 Mô hình dữ liệu, lược đồ và thể hiện
Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn trong việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu Vì vậy, thiết
kế cơ sở dữ liệu trở thành hoạt động chính trong môi trường cơ sở dữ liệu
Trang 15Việ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 Các trừu tượng như vậy cho phép ta khảo sát các đặc điểm của các thực thể và các mối liên hệ được tạo ra giữa các thực thể đó Việc thiết kế các
mô hình tốt sẽ đưa ra các cơ sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt Ngược lại, mô hình không tốt sẽ đưa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng
1.6.1 Các loại mô hình cơ sở dữ liệu
Một mô hình cơ sở dữ liệu là một 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 Nhiều mô hình còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên
cơ sở dữ liệu
Chúng ta có thể phân loại các mô hình dữ liệu dựa trên các khái niệm mà chúng sử dụng để mô tả các cấu trúc cơ sở dữ liệu
+ Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung
cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng Các mô hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan
tâm đến cái được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn
dữ liệu
Trong Chương 2 chúng ta sẽ nghiên cứu một mô hình dữ liệu mức quan niệm, mô hình thực thể liên kết, gọi tắt là mô hình ER (Entity Relationship) Mô hình này sử dụng các khái niệm thực thể, thuộc tính, mối liên kết để diễn đạt các đối tượng của thế giới thực
+ Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các
khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập… Các khái niệm
do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với người sử dụng thông thường
+ Ở giữa hai loại mô hình này là một lớp các mô hình dữ liệu thể hiện,
chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và không
xa với cách tổ chức dữ liệu bên trong máy tính Người ta còn gọi loại mô hình
dữ liệu này là loại mô hình dữ liệu mức logic Các mô hình dữ liệu thể hiện che
Trang 16giấu một số chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính
Các mô hình dữ liệu thể hiện là các mô hình được sử dụng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại Ba mô hình nổi tiếng thuộc loại này
là mô hình quan hệ, mô hình mạng và mô hình phân cấp Các mô hình mạng và
mô hình phân cấp ra đời trước và được sử dụng rộng rãi trong quá khứ (trước năm 1970) Vào đầu năm 1970, mô hình quan hệ ra đời Do tính ưu việt của nó,
mô hình quan hệ dần dần thay thế các mô hình mạng và phân cấp Chúng ta sẽ nghiên cứu về mô hình quan hệ trong Chương 3 Ngoài 3 mô hình kể trên, hiện
nay mô hình dữ liệu hướng đối tượng cũng đang được phát triển, hoàn thiện và
dần trở thành xu thế mới
1.6.2.Lược đồ và trạng thái CSDL
Trong một mô hình dữ liệu cần phải phân biệt rõ giữa mô tả của cơ sở dữ liệu và bản thân cơ sở dữ liệu
Mô tả của một cơ sở dữ liệu được gọi là lược đồ cơ sở dữ liệu, nó được xác
định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay đổi thường xuyên
Đa số các mô hình dữ liệu có các quy ước hiển thị các lược đồ Hiển thị của một lược đồ được gọi là biểu đồ của lược đồ đó Một biểu đồ lược đồ chỉ thể hiện một vài khía cạnh của lược đồ như là các kiểu bản ghi, các mục dữ liệu và một số kiểu ràng buộc Các khía cạnh khác không được thể hiện trong biểu đồ lược đồ
Các dữ liệu trong một cơ sở dữ liệu có thể thay đổi một cách thường xuyên Các dữ liệu trong một cơ sở dữ liệu tại một thời điểm cụ thể được gọi là một
trạng thái cơ sở dữ liệu hoặc là ảnh (snapshot) của cơ sở dữ liệu Nhiều trạng
thái quan hệ có thể được xây dựng để làm tương ứng với một lược đồ cơ sở dữ liệu cụ thể Mỗi khi chúng ta chèn vào hoặc loại bỏ một bản ghi, sửa đổi giá trị của một mục dữ liệu trong một bản ghi, chúng ta đã làm thay đổi trạng thái của
cơ sở dữ liệu sang một trạng thái khác
Việc phân biệt giữa lược đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu là rất quan trọng Khi chúng ta định nghĩa một cơ sở dữ liệu mới, ta chỉ đặc tả lược đồ
cơ sở dữ liệu cho hệ quản trị cơ sở dữ liệu Tại thời điểm này, trạng thái của cơ
sở dữ liệu là một trạng thái rỗng, không có dữ liệu Chúng ta nhận được trạng thái ban đầu của cơ sở dữ liệu khi ta nhập dữ liệu lần đầu tiên Từ đó trở đi, mỗi khi một phép toán cập nhật được thực hiện đối với cơ sở dữ liệu, chúng ta nhận
Trang 17được một trạng thái cơ sở dữ liệu khác Tại mọi thời điểm, cơ sở dữ liệu có một trạng thái hiện tại Hệ quản trị cơ sở dữ liệu có trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở dữ liệu là một trạng thái vững chắc, nghĩa là một trạng thái thoả mãn cấu trúc và các ràng buộc được đặc tả trong lược đồ Vì vậy, việc đặc tả một lược đồ đúng đắn cho hệ quản trị cơ sở dữ liệu là một việc làm cực kỳ quan trọng và lược đồ phải được thiết kế một cách cẩn thận Hệ quản trị cơ sở dữ liệu lưu trữ các mô tả của các cấu trúc lược đồ và các ràng buộc – còn gọi là siêu dữ liệu (metadata) – vào trong từ điển (catalog) của hệ quản trị sao cho phần mềm
hệ quản trị cơ sở dữ liệu có thể tham khảo đến lược đồ khi nó cần
1.7 Kiến trúc hệ cơ sở dữ liệu
Theo ANSI-SPARC(1) có 3 mức biểu diễn một hệ cơ sở dữ liệu, gọi là kiến trúc 3 lược đồ Mục đích của lược đồ 3 mức là tách rời các ứng dụng của người dùng và cơ sở dữ liệu vật lý hay nói cách khác, mô hình kiến trúc 3 mức cho phép tạo ra sự độc lập giữa bản thân dữ liệu và việc xử lý dữ liệu
a Mức vật lý – Mức trong
Mức này mô tả dữ liệu thực sự lưu trữ như thế nào trong CSDL Đây là mức thể hiện các cài đặt có tính chất vật lí của CSDL để đạt được tối ưu trong các lần thực hiện các thao tác tìm kiếm và lưu trữ Mức này phản ánh các cấu trúc dữ liệu, các tổ chức tệp được dùng cho việc lưu trữ dữ liệu trên các thiết bị nhớ thứ cấp
b Mức logic – Mức quan niệm
Mức này mô tả những dữ liệu nào được lưu trữ trong CSDL và có những mối quan hệ nào giữa chúng Nói một cách cụ thể hơn, mức logic biểu diễn các thực thể trong thế giới thật, các đặc trưng và mối quan hệ giữa các thực thể đó Mức này cho thấy các ràng buộc trên dữ liệu, các thông tin về ngữ nghĩa của dữ liệu, các thông tin về an ninh và toàn vẹn dữ liệu Tuy nhiên, mức này chỉ quan tâm đến cái gì được lưu trữ trong CSDL chứ không quan tâm đến cách thức lưu trữ
Một mô hình dữ liệu bậc cao hoặc một mô hình dữ liệu thể hiện có thể được sử dụng ở mức này
Trang 18dùng Mỗi lược đồ ngoài mô tả một phần của cơ sở dữ liệu mà một nhóm người
sử dụng quan tâm và nó che dấu đối với nhóm này phần còn lại của CSDL Một
mô hình dữ liệu bậc cao,hoặc một mô hình dữ liệu thể hiện có thể được sử dụng
ở mức này
Tóm lại, mức khung nhìn là cách cảm nhận của người dùng về dữ liệu, mức vật lí là cách cảm nhận của hệ quản trị CSDL và hệ điều hành về dữ liệu Mức logic nằm giữa mức khung nhìn và mức vật lí, có thể coi đây là cách cảm nhận của toàn thể cộng đồng người sử dụng về dữ liệu Tại mức logic tồn tại cả hai ánh xạ đến hai mức còn lại, tạo nên một sự độc lập đối với nhau của hai mức
đó Hình 1.5 mô tả và minh họa kiến trúc lược đồ 3 mức của cơ sở dữ liệu
Hình 1.5 Minh họa kiến trúc lược đồ 3 mức 1.8 Sự độc lập dữ liệu
Kiến trúc lược đồ 3 mức có thể được sử dụng để giải thích khái niệm độc lập dữ liệu Độc lập dữ liệu có thể hiểu như là khả năng thay đổi lược đồ tại một mức của một hệ cơ sở dữ liệu mà không làm thay đổi lược đồ ở mức cao hơn tiếp theo Có hai loại độc lập dữ liệu:
a Độc lập dữ liệu ở mức vật lí
Độc lập dữ liệu ở mức vật lí là khả năng sửa đổi lược đồ vật lí mà không làm thay đổi lược đồ khái niệm và như vậy cũng không đòi hỏi viết lại các chương trình ứng dụng Các thay đổi đối với lược đồ trong có thể cần thiết bởi
MỨC KHUNG NHÌN Khung nhìn 1 Khung nhìn 2 Khung nhìn n
MỨC QUAN NIỆM
MỨC LOGIC
Trang 19vì một số file vật lí phải được tổ chức lại Ví dụ, bằng cách tạo ra các cấu trúc truy cập phụ để cải thiện thao tác lấy ra hoặc cập nhật Nếu các dữ liệu trước đó còn lại trong cơ sở dữ liệu, chúng ta sẽ không làm thay đổi lược đồ khái niệm
b Độc lập dữ liệu ở mức logic
Độc lập dữ liệu là khả năng thay đổi lược đồ quan niệm mà không làm thay đổi các khung nhìn hoặc các chương trình ứng dụng Các sửa đổi ở mức logic là cần thiết mỗi khi cấu trúc logic của CSDL cần phải thay đổi, chẳng hạn cần thêm hay bớt các thực thể nào đó, các thuộc tính hay các mối quan hệ của chúng Dĩ nhiên những người dùng có chạm đến những thông tin đã thay đổi này
sẽ được thông báo về sự thay đổi nhưng điều quan trọng là những người dùng khác sẽ không bị ảnh hưởng gì
Độc lập dữ liệu logic khó thực hiện hơn độc lập dữ liệu vật lí vì các chương trình ứng dụng phụ thuộc nhiều vào cấu trúc logic của dữ liệu mà chúng truy cập
Khái niệm độc lập dữ liệu trong nhiều mặt tương tự với khái niệm kiểu dữ liệu trừu tượng trong các ngôn ngữ lập trình hiện đại Cả hai đều giấu người dùng những chi tiết cài đặt, cho phép người dùng tập trung vào cấu trúc chung hơn là tập trung vào các chi tiết cài đặt ở mức thấp
Trang 20DANH MỤC TÀI LIỆU THAM KHẢO TIẾNG VIỆT
1 Hồ Thuần và Hồ Cẩm Hà (2009) Các hệ cơ sở dữ liệu lí thuyết và thực hành,
NXB Giáo dục
2 Đỗ Trung Tuấn (1999) Cơ sở dữ liệu NXB Giáo dục
3 Nguyễn Tuệ (2009) Giáo trình nhập môn hệ cơ sở dữ liệu NXB Giáo dục
4 Nguyễn Văn Vỵ (2009) Giáo trình phân tích thiết kế các hệ thống thông tin,
Trang 21CÂU HỎI VÀ BÀI TẬP
Câu 1 Định nghĩa các thuật ngữ: Cơ sở dữ liệu, Hệ quản trị cơ sở dữ liệu, Hệ cơ
sở dữ liệu, Từ điển cơ sở dữ liệu, Mô hình cơ sở dữ liệu
Câu 2 Hãy nêu ra các điểm khác nhau chính giữa một hệ thống xử lý tệp tin cổ điển và một hệ quản trị CSDL
Câu 3 Nêu các tính chất của một cơ sở dữ liệu
Câu 4 Nêu các chức năng của một hệ quản trị cơ sở dữ liệu
Câu 5 Định nghĩa mô hình cơ sở dữ liệu và phân loại
Câu 6 Cho biết mục đích của việc mô hình hóa CSDL Chỉ ra sự khác nhau giữa mô hình logic và mô hình vật lý
Câu 7 Mô tả các thành phần chính của một hệ quản trị CSDL và chỉ ra các chức năng của chúng
Câu 8 Giải thích thuật ngữ độc lập dữ liệu và sự quan trọng của tính độc lập dữ liệu trong môi trường của một hệ cơ sở dữ liệu Hãy giải thích sự khác nhau giữa tính độc lập vật lí và tính độc lập logic
Câu 9 Hãy liệt kê ra các bước cơ bản mà anh/chị sẽ vạch ra khi xây dựng một CSDL cho một tổ chức nào đó
Trang 22Năm 1976, lần đầu tiên P.P.Chen giới thiệu mô hình này trong bài báo “The entity relationshiop model toward a
Trang 23quan hệ giữa chúng để tạo nên mô hình dữ liệu quan niệm giao tiếp với người sử dụng, nhằm xác định đúng đắn và đầy đủ yêu cầu thông tin của hệ thống Trong bước này, người thiết kế cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các yêu cầu về dữ liệu của họ Kết quả của bước này là một tập hợp ghi chép súc tích về các yêu cầu của những người sử dụng Những yêu cầu sẽ được đặc tả càng đầy đủ và chi tiết càng tốt Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu cầu về chức năng của ứng dụng: đó là các thao tác do người sử dụng định nghĩa sẽ được áp dụng đối với cơ sở dữ liệu
Mỗi khi tất cả các yêu cầu đã được thu thập và phân tích, bước tiếp theo là tạo ra lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao Bước này gọi là thiết kế quan niệm Lược đồ quan niệm là một mô tả súc tích về các yêu cầu dữ liệu của những người sử dụng Nó bao gồm các mô tả chi tiết của các kiểu thực thể, kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp Vì những khái niệm này không chứa các chi tiết cài đặt, chúng thường dễ hiểu và có thể sử dụng chúng để giao lưu với những người sử dụng Lược đồ quan niệm mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đều thỏa mãn và các đòi hỏi này không chứa các mâu thuẫn Giải pháp này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ Một thiết kế cơ sở dữ liệu quan niệm tốt sẽ làm dễ cho công việc của những người thiết kế cơ sở dữ liệu
Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, chúng ta có thể
sử dụng các phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng Điều đó cũng giúp khẳng định rằng lược đồ quan niệm thỏa mãn mọi yêu cầu chức năng được xác định Nếu có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ quan niệm cho phù hợp
Bước tiếp theo trong việc thiết kế cơ sở dữ liệu là việc cài đặt một cơ sở
dữ liệu bằng cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn Hầu hết các hệ quản trị cơ sở dữ liệu sử dụng một mô hình dữ liệu cài đặt (thể hiện), chẳng hạn
Trang 24như mô hình quan hệ hoặc đối tượng, vì vậy lược đồ quan niệm được chuyển từ
mô hình dữ liệu bậc cao thành mô hình dữ liệu cài đặt Bước này gọi là thiết kế logic hoặc là ánh xạ mô hình dữ liệu Kết quả của bước này là một lược đồ cơ sở
dữ liệu dưới dạng một mô hình dữ liệu cài đặt của hệ quản trị cơ sở dữ liệu
Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý Trong bước này ta phải chỉ ra các cấu trúc bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu Song song với các hoạt động đó, các chương trình ứng dụng cũng được thiết kế và cài đặt như là các giao tác (transaction) cơ sở dữ liệu tương ứng với các đặc tả giao tác mức cao
2.2 Các thành phần cơ bản của mô hình ER
Ba thành phần của mô hình ER là tập thực thể, các mối quan hệ giữa các tập thực thể và các thuộc tính của chúng
Khoa Kinh tế và quản trị kinh doanh
Tập thực thể (hay còn gọi là kiểu thực thể)là một tập hợp các thực thể có cùng những đặc trưng chung mà ta quan tâm
Một thực thể là một thể hiện trong một tập thực thể, hay nói cách khác
mỗi thực thể là một cá thể (hay còn gọi là bản thể) của tập thực thể đó Chẳng
hạn, tập thực thể Nhân viên có các đặc trưng sau: Mã nhân viên, Tên nhân viên, Địa chỉ Trong khi đó, mỗi nhân viên cụ thể được thể hiện bằng các giá trị cụ thể tương ứng của các đặc trưng kể trên
Trang 25Thể hiện Bộ các giá trị tương ứng
với các đặc trưng Tên thực thể và tên các đặc trưng Mỗi tập thực thể được gán một tên Tên tập thực thể là một mệnh đề danh
từ Trong mô hình ER, một tập thực thể được biểu diễn bằng một hình chữ nhật
có tên bên trong
Trang 26viên Trong mô hình, các thuộc tính được mô tả bằng hình elip, có tên đặt bên trong và được nối với tập thực thể bằng một đoạn thẳng (hình 2.2)
- Các giá trị thuộc tính mô tả mỗi tập thực thể sẽ trở thành một phần chính của các dữ liệu sẽ được lưu giữ trong cơ sở dữ liệu
b Phân loại
Các thuộc tính của tập thực thể có thể phân làm nhiều loại khác nhau
Thuộc tính đơnhay còn gọi là thuộc tính nguyên tử là thuộc tính mà giá
trị của nó không thể phân tách được trong các xử lý theo một ý nghĩa tương đối nào đó
Ví dụ:
Thuộc tính Họ Tên của Nhân viên trong hệ thống thông tin Quản lý Nhân
sự là thuộc tính đơn, vì trong hệ thống này không có nhu cầu tách thuộc tính Họ Tên thành hai thuộc tính Họ Đệm và Tên.Tuy nhiên, điều này có thể không còn
đúng nữa khi xét nó ở hệ thống thông tin Quản lý đào tạo
Thuộc tính phức hợp là thuộc tính có thể phân chia được thành các thành
phần nhỏ hơn, biểu diễn các thuộc tính cơ bản hơn với các ý nghĩa độc lập
Ví dụ:Thuộc tính Họ Tên của kiểu thực thể Sinh viên có thể phân chia thành các tính Họ Đệm và Tên
SINH VIÊN
Mã Sinh Viên
Địa Chỉ
Số Điện Thoại
Họ Tên
Sinh Viên
Trang 27Giá trị của một thuộc tính là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên nó Các thuộc tính phức hợp được nối với các thuộc tính thành phần của nó bằng đường thẳng Việc phân chia một thuộc tính phức hợp thành các thuộc tính đơn tùy thuộc vào hoàn cảnh cụ thể
Hình 2.3 Thuộc tính phức hợp Trong thực tế có lúc người sử dụng tham khảo đến giá trị của một thuộc tính như nó là một giá trị nguyên vẹn, có lúc lại chỉ tham khảo đến một phần của giá trị đó, việc sử dụng các thuộc tính phức hợp trong thiết kế lược đồ trở nên hữu ích trong tình huống này Giả sử có lúc người ta cần địa chỉ đầy đủ của một nhân viên, có lúc lại chỉ cần tham chiếu đến tên tỉnh (thành phố) trong địa chỉ của nhân viên Thuộc tính Địa chỉ của kiểu thực thể NHÂN VIÊN có thể được xác định là thuộc tính phức hợp, nó là sự kết hợp của 3 thuộc tính thành phần là
Xã, Huyện, Tỉnh
Thuộc tính đơn trị là những thuộc tính có giá trị duy nhất cho một thực
thể cụ thể ở một thời điểm
Ví dụ:
Thuộc tínhMã Nhân Viên, Họ Tên là một thuộc tính đơn trị của thực thể
Nhân viên, mỗi nhân viên chỉ có một mã số nhân viên và một họ tên duy nhất
Thuộc tính đa trịlà một thuộc tính mà đối với mỗi thực thể có thể nhận
nhiều hơn một giá trị
Ví dụ:
Thuộc tính Bằng Cấp của một Nhân Viên là một thuộc tính đa trị Một
nhân viên có thể có một bằng cấp, một nhân viên khác nữa có thể có nhiều bằng cấp Như vậy, các nhân viên khác nhau có thể có một số giá trị khác nhau cho
thuộc tính Bằng Cấp Thuộc tính Bằng cấp là một thuộc tính đa trị Trong mô
SINH VIÊN
Họ Tên
Trang 28hình, thuộc tính đa trị được biểu diễn bằng hình elip nét đôi, có tên đặt bên trong
Thuộc tính được lưu trữlà các thuộc tính mà giá trị của nó được nhập vào
khi cài đặt cơ sở dữ liệu Trong một số trường hợp, hai hay nhiều thuộc tính có giá trị liên quan đến nhau
Ví dụ:
Thuộc tính Tuổi và thuộc tính Ngày Sinh của một người Với một người
cụ thể, ta có thể tính tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của ngày sinh Thuộc tính mà giá trị của nó có thể tính được thông qua giá trị của
các thuộc tính khác gọi là thuộc tính suy diễn được Thuộc tính Ngày Sinh gọi là thuộc tính được lưu trữ, thuộc tính Tuổi là thuộc tính suy diễn Trong mô hình,
thuộc tính suy diễn được mô tả bằng hình elip đứt nét, bên trong có tên thuộc tính
Các giá trị không xác định (Null values): Trong một số trường hợp, một
thực thể cụ thể có thể có giá trị hoặc có thể không có các giá trị tương ứng cho một thuộc tính nào đó của nó
Ví dụ:
Thuộc tính Số Điện Thoại của thực thể nhân viên sẽ không có giá trị đối
với các nhân viên không có số điện thoại
Trong trường hợp các thuộc tính của một thực thể có thể không có giá trị,
ta phải tạo ra một giá trị đặc biệt gọi là giá trị không xác định (Null) Giá trị
không xác định được tạo ra khi một thuộc tính có giá trị không áp dụng được hoặc khi không biết
Mỗi thuộc tính của tập thực thể luôn có giá trị Mỗi bộ giá trị của một thực
thể được gọi là một bản ghi (record)
NHÂN VIÊN Tuổi
NHÂN VIÊN Bằng Cấp
Trang 292.2.3 Thuộc tính khóa
Có một ràng buộc quan trọng trên một tập thực thể gọi là ràng buộc khóa hay là ràng buộc về tính duy nhất trên các thuộc tính Một tập thực thể thường
có một hoặc một vài thuộc tính mà bất cứ hai thực thể khác nhau trong tập thực
thể này đều có giá trị khác nhau Thuộc tính như vậy gọi là thuộc tính khóa
Như vậy, thuộc tính khóa (thuộc tính định danh) là một hay một số thuộc tính của một tập thực thể mà giá trị của nó cho phép ta phân biệt được các thực thể khác nhau của một tập thực thể Ta có thể dùng mỗi giá trị của thuộc tính khóa để xác định một thực thể duy nhất
Ví dụ:
Một khóa của tập thực thể NHÂN VIÊN là Mã Số Nhân Viên vì mỗi thực
thể nhân viên có duy nhất một mã Đôi khi, nhiều thuộc tính kết hợp với nhau tạo thành 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ảicó mặt trong thuộc tính khóa phức hợp để thỏa mãn tính duy nhất
Khi biểu diễn trong mô hình thực thể liên kết, với mỗi kiểu thực thể, các
thuộc tính khóa được gạch chân để phân biệt với các thuộc tính khác của nó
Mỗi tập thực thể khi đã được xác định bắt buộc phải có thuộc tính khóa
Trang 30Khi chỉ ra một thuộc tính là khóa của một kiểu thực thể, nghĩa là tính chất
duy nhất nêu trên phải được thỏa mãn đối với mỗi thực thể Như vậy, ràng buộc khóa cấm hai thực thể bất kỳ có giá trị cho thuộc tính khóa như nhau tại cùng một thời điểm Đó là một ràng buộc trên tất cả các thực thể trong tập thực thể
Ràng buộc khóa cũng như các ràng buộc sẽ được giới thiệu về sau, được lấy ra
từ các ràng buộc của “thế giới thu nhỏ” của cơ sở dữ liệu
Một kiểu thực thể có thể có nhiều hơn một khóa Ví dụ, nếu một phòng ban có một mã số duy nhất và một tên duy nhất thì thuộc tính MãPhòng Ban và TênPhòng Ban đều là khóa.Hoặc kiểu thực thể NHÂNVIÊN có khóa là MãNhânViên, ngoài ra nếu coi rằng không có nhân viên nào trùng cả họ tên và ngày sinh thì ta có một khóa phức hợp là Họ Tên, NgàySinh Trong trường hợp như vậy ta nên chọn một thuộc tính khóa thích hợp Thông thường nên chọn thuộc tính khóa càng ít thuộc tính càng tốt
Một kiểu thực thể có thể không có khóa Khi đó, nó được gọi là kiểu thực thể yếu (Sẽ được trình bày cụ thể hơn tại mục 2.2.5)
2.2.4 Liên kết, tập liên kết và các ràng buộc trên liên kết
a Liên kết, tập liên kết
Liên kết(Relationship) dùng để chỉ mối quan hệ giữa hai hay nhiều thực thể khác nhau Nó phản ánh mối quan hệ vốn có giữa các thực thể đó trong thế giới thực
Ví dụ:
- Khách hàng Tuấn Anh mua Hàng MH_324;
- Nhân viên Nguyễn Hoàng làm việc tại phòng Kế toán
Trong hình 2.5 mô tả liên kết “Làm việc” giữa một thực thể nhân viên với một thực thể phòng ban Chúng ta thấy, Hoàng, Trung làm việc cho phòng Kế toán; Tuấn làm việc cho phòng giám đốc; Hùng, Tú làm việc cho phòng Kĩ thuật; Lan làm việc cho phòng bảo vệ… Các liên kết này có cùng một kiểu
Trang 31- Tập liên kết Làm việc giữa tập thực thể Nhân Viên và tập thực thể
Phòng Ban (tập liên kết 2 ngôi);
- Tập liên kết Dạy giữa tập thực thể Giáo viên và tập thực thể Sinh Viên
và Môn Học (tập liên kết 3 ngôi)
Khi biểu diễn trong mô hình ER, tập liên kết được biểu diễn bằng một hình thoi, bên trong ghi tên tập liên kết Tập liên kết được nối trực tiếp với các hình chữ nhật biểu diễn tập thực thể tham gia vào liên kết
MÔN HỌC
Trang 32Chú ý:
- Mối quan hệ giữa các thực thể chia làm hai loại: mối quan hệ tương tác (Khách MUA Hàng, Nhân viên THAM GIA Dự án,…) và mối quan hệ sở hữu hay phụ thuộc (CÓ cái gì, THUỘC cái gì, LÀ thành viên của,…).Với bản chất của mối quan hệ là sự tương tác hay phụ thuộc, sở hữu nên tên của tập liên kết thường được chọn là một động từ hoặc một mệnh đề động từ thể hiện đầy đủ ý
nghĩa cũng như bản chất của mối quan hệ vốn có giữa các thực thể với nhau
- Tên của tập liên kết thường chỉ phản ánh ý nghĩa liên kết theo một chiều Chẳng hạn, Thầy <dạy> Trò, chứ không phải Trò <dạy> Thầy
- Có thể có nhiều hơn một tập liên kết giữa hai tập thực thể khác nhau Ví dụ: giữa 2 tập thực thể NHÂN VIÊN và PHÒNG BAN có thể có 2 tập liên kết là
<Làm việc> và <Quản lý> Cụ thể, NHÂN VIÊN <quản lý> PHÒNG BAN; NHÂN VIÊN <làm việc cho> PHÒNG BAN
- Một thuộc tính của tập thực thể hoặc có chức năng biểu thị một đặc trưng của một tập thực thể hoặc có chức năng biểu thị một tập liên kết giữa tập thực thể đó với các tập thực thể khác Các thuộc tính biểu thị một tập liên kết có thể đơn trị, hoặc đa trị tùy theo bản chất của mối liên kết
Thông thường các kiểu thực thể tham gia vào một kiểu liên kết là phân biệt nên vai trò của chúng có thể ẩn đi không cần phải làm tường minh Tuy nhiên, trong một số trường hợp, một tập thực thể có thể tham gia vào một tập liên kết với
các vai trò khác nhau Khi đó, kiểu liên kết được gọi là liên kết đệ quy
Ví dụ:
Trong số các nhân viên làm việc cho một phòng ban, có các nhân viên được phân công giám sát và quản lý các nhân viên khác (Trưởng phòng) Như vậy sẽ có một tập các liên kết giữa các thực thể của tập thực thể NHÂN VIÊN:
NHÂN VIÊN <giám sát> NHÂN VIÊN (hình 2.8) Có thể thấy, tập thực thể NHÂN VIÊN tham gia hai lần vào mối liên kết <giám sát>, một lần với vai trò
người giám sát, một lần với vai trò người bị giám sát
Hình 2.8 Liên kết đệ quy NHÂN VIÊN
Giám sát
Trang 33b Thuộc tính của kiểu liên kết
Cũng như thực thể, mối liên kết cũng có thể có thuộc tính mô tả nó
Ví dụ:
Giả sử một công ty muốn theo dõi thời gian nhân viên tham gia dự án, nên
đã ghi nhận số ngày mà nhân viên đó tham gia một dự án Khi đó, ta có các dữ liệu sau:
Thuộc tính Số Ngày là một đặc trưng của mối liên kết<Tham gia> để gắn
kết hai tập thực thể NHÂN VIÊN và DỰ ÁN (hình 2.9)
Trong mô hình ER, thuộc tính của kiểu liên kết được biểu diễn bằng hình elip, bên trong có tên thuộc tính và được nối với hình thoi
Hình 2.9 Thuộc tính của tập liên kết
Vì mối liên kết là một động từ nên các thuộc tính của nó cần phải là câu trả lời cho động từ thể hiện mối liên kết
Câu hỏi cho một động từ thường bao gồm nhiều loại câu hỏi khác nhau, chẳng hạn:
- Cho ai? (Chỉ người, sự vật tham gia, chịu tác động tương tác)
- Cho cái gì? (Chỉ vật tham gia, chịu tác động tương tác)
- Ở đâu? (Chỉ nơi xảy ra tương tác)
- Khi nào? (Chỉ thời gian hành động)
-Bằng cách nào? (Chỉ phương thức hành động)
- Như thế nào? Bao nhiêu? (Chỉ kết quả của hành động)
- Vì sao? (Chỉ nguyên nhân của hành động)
Số ngày Tham gia
Trang 34c Các ràng buộc trên các tập liên kết
Trong mối liên kết giữa các tập thực thể với nhau thường có một số ràng buộc nào đó để hạn chế số các tổ hợp thực thể có thể tham gia vào các liên kết Các ràng buộc này được xác định từ tình trạng của thế giới thực mà kiểu liên kết biểu diễn
Ví dụ:Nếu công ty có quy chế là một nhân viên chỉ làm việc cho một
phòng ban thì chúng ta phải mô tả ràng buộc này trong mô hình ER
Có hai loại ràng buộc chính: ràng buộc về tỷ số lực lượng và ràng buộc về
sự tham gia
Ràng buộc về tỷ số lực lượng
Tỷ số lực lượng cho một tập liên kết chỉ ra số các liên kết mà một thực thể
có thể tham gia Có thể có các tỷ số lực lượng 1:1, 1:N, N:N (N>1) Để tiện giải thích về tỷ số lực lượng, chúng ta sử dụng các kiểu liên kết cấp 2
Giả sử có hai tập thực thể A và B được kết nối với nhau bằng một tập liên kết R, xét các trường hợp sau:
- Một thực thể của tập thực thể này có thể quan hệ với chỉ một thực thể của tập thực thể kia và ngược lại thì ta nói rằng, tập thực thể này có quan hệ với
tập thực thể kia bằng tập liên kết một – một (1:1)
Hình 2.10 Tập liên kết R với tỉ số lực lượng 1:1
- Một thực thể của tập thực thể này có thể có quan hệ với nhiều thực thể của tập thực thể kia và một thực thể của tập thực thể kia chỉ có thể có quan hệ với một thực thể của tập thực thể này thì ta nói rằng, tập thực thể này có quan hệ
với tập thực thể kia bằng tập liên kết một – nhiều (1:N)
Trang 35Hình 2.11 Tập liên kết R với tỉ số lực lượng 1:N
- Một thực thể của tập thực thể này có thể có quan hệ với nhiều thực thể của tập thực thể kia và ngược lại thì ta nói rằng, tập thực thể này có quan hệ với
tập thực thể kia bằng tập liên kết nhiều – nhiều (N:N)
Hình 2.12 Tập liên kết R với tỉ số lực lượng N:N Trong mô hình ER, các tỷ số lực lượng của các tập liên kết có thể được biểu diễn(1) bằng cách ghi các giá trị 1, N trên các hình thoi biểu diễn kiểu liên kết như hình 2.13
Trang 36Hình 2.13 Ràng buộc về tỷ số lực lượng
Ràng buộc về sự tham gia
Ràng buộc tham gia chỉ ra rằng có phải sự tồn tại của một kiểu thực thể phụ thuộc vào một kiểu thực thể khác thông qua một kiểu liên kết hay không Có hai kiểu ràng buộc tham gia: ràng buộc tham gia toàn bộ và ràng buộc tham gia
bộ phận
Tham gia toàn bộ nghĩa là tất cả các thực thể của tập thực thể phải tham gia vào tập liên kết Tham gia bộ phận nghĩa là chỉ một bộ phận các thực thể của tập
thực thể tham gia vào mối liên kết
Ví dụ:Xét mối quan hệ NHÂN VIÊN <quản lý> PHÒNG BAN Trong thực tế,
mỗi phòng ban phải có một người quản lý (là một nhân viên) nhưng không phải nhân viên nào cũng quản lý một phòng ban Như vậy, sự tham gia của các thực thể phòng ban vào mối liên kết là toàn bộ còn sự tham gia của các thực thể nhân
viên vào mối liên kết là bộ phận Sự tham gia toàn bộ còn được gọi là sự phụ thuộc tồn tại Phụ thuộc tồn tại để chỉ rằng một thực thể này không thể tồn tại nếu không có sự tồn tại của thực thể kia trong liên kết
Khi biểu diễn trong mô hình ER, tập thực thể tham gia toàn bộ vào mối liên kết được nối với tập liên kết bằng nét đôi, tập thực thể tham gia bộ phận được nối với tập liên kết bằng nét đơn
Trang 37Hình 2.14 Ràng buộc về sự tham gia
Tỉ số lực lượng và các ràng buộc về sự tham gia còn được gọi là các ràng buộc cấu trúc của một kiểu liên kết Có một cách khác nữa để đặc tả các ràng buộc cấu trúc Với mỗi kiểu liên kết R, chúng ta có thể đưa ra một cặp số
nguyên (min, max) kèm theo mỗi tập thực thể E trong sự tham gia vào kiểu liên kết R đó Cặp số nguyên (min, max) với min>=0 và max>=1 mang ý nghĩa như sau: Ở mọi thời điểm, mỗi thực thể e thuộc kiểu E phải tham gia ít nhất min liên kết trong R và chỉ tham gia nhiều nhất max liên kết trong R Như vậy, khái niệm
một kiểu thực thể E tham gia bộ phận vào kiểu liên kết R đề cập ở trên tương
ứng với trường hợp min=0 trong cách biểu diễn này, còn sự tham gia toàn bộ tương ứng với min>0 Cách đặc tả ràng buộc cấu trúc này tuy không trực quan
bằng phương pháp dùng tỷ số lực lượng và ràng buộc tham gia nhưng nó đơn giản, thậm chí chính xác hơn, có thể dễ dàng sử dụng cho kiểu liên kết có cấp n bất kì
2.2.5 Thực thể yếu
Một tập thực thể cũng có thể không có khóa Một tập thực thể không có
khóa được gọi là kiểu thực thể yếu Ngược lại, tập các thực thể thông thường
(nghĩa là có thuộc tính khóa) được gọi là tập thực thể mạnh Kiểu thực thể yếu tồn tại phụ thuộc vào tập thực thể khác (tập thực thể chủ hay còn gọi là xác định nó) Trong mô hình, kiểu thực thể yếu được mô tả bằng hình chữ nhật nét đôi, bên trong là tên
Các thực thể thuộc cùng một kiểu thực thể yếu được phân biệt với nhau nhờ mối liên quan đến một thực thể của một kiểu thực thể (xác định) của một kiểu thực thể khác Ta gọi kiểu thực thể khác đó là kiểu thực thể xác định hay
còn gọi là kiểu thực thể chủ và gọi tập liên kết giữa kiểu thực thể yếu và kiểu thực thể chủ xác định nó là liên kết xác định Rõ ràng, một tập thực thể yếu luôn
có một ràng buộc tham gia toàn bộ vào liên kết xác định nó vì một thực thể yếu không thể tồn tại mà không có một thực thể chủ xác định nó Ngược lại, một sự
Tên kiểu thực thể yếu
Quản lý
Trang 38phụ thuộc tồn tại không nhất thiết dẫn đến phải có một thực thể yếu Trong sơ đồ
ER, liên kết xác định đó được biểu diễn bằng hình thoi nét đôi
Thông thường, các kiểu thực thể yếu có một khóa bộ phận, đó là một tập
hợp các thuộc tính có thể xác định một cách duy nhất các thực thể yếu liên kết với cùng một thực thể chủ Khi biểu diễn trong mô hình ER, thuộc tính khóa bộ
phận của kiểu thực thể yếu được gạch chân nét đứt để phân biệt với các thuộc
a Mô tả bài toán
Như ở trong phần 2.1 đã nêu, bước đầu tiên trong việc thiết kế một cơ sở
dữ liệu là tập hợp và phân tích các yêu cầu Kết quả của bước này là một tập hợp các ghi chép súc tích về các yêu cầu người sử dụng cũng như tình trạng của nơi
ta cần xây dựng cơ sở dữ liệu
Giả sử rằng sau khi tập hợp các yêu cầu và phân tích, hoạt động của công tyđược ghi chép lại như sau:
1 Công ty được tổ chức thành các đơn vị Mỗi đơn vị có một tên duy nhất, một mã số duy nhất, một nhân viên cụ thể quản lý đơn vị Việc nhân viên quản lý đơn vị được ghi lại bằng ngày nhân viên đó bắt đầu quản lý Một đơn vị
có thể có nhiều địa điểm
2 Mỗi đơn vị kiểm soát một số dự án Một dự án có một tên duy nhất, một
mã số duy nhất và một địa điểm
3 Với mỗi nhân viên chúng ta lưu giữ lại Họ tên, Mã số, địa chỉ, lương, giới tính, ngày sinh 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 Chúng ta lưu giữ lại số giờ
Khóa bộ phận
Trang 39làm việc của mỗi nhân viên trên một dự án 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
4 Mỗi nhân viên có những người con Những người này được hưởng bảo hiểm theo nhân viên Với mỗi người con của nhân viên, chúng ta lưu giữ Họ tên, Giới tính, Ngày sinh
b Xác định các kiểu thực thể, các thuộc tính và kiểu liên kết
Theo các ghi chép ở trên, chúng ta có thể xác định các kiểu thực thể và các kiểu liên kết như sau:
1.CÔNGTY không phải là một kiểu thực thể vì ở đây ta có một công ty duy nhất
2.ĐƠNVỊ là một kiểu thực thể với các thuộc tính Tên, Mã Số, Người Quản Lý, Ngày Bắt Đầu, Địa Điểm Các thuộc tính Tên, Mã Số, Địa Điểm là các thuộc tính mô tả đơn vị, các thuộc tính Người Quản Lý, Ngày Bắt Đầu là các
thuộc tính biểu thị một kiểu liên kết (với kiểu thực thể NHÂNVIÊ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ị (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)
3.Kiểu thực thể DỰ ÁN có các thuộc tính Tên, Mã Số, Địa Điểm, Đơn Vị Kiểm Soát Các thuộc tính Tên, Mã Số, Địa Điểm 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ể ĐƠNVỊ (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
4.Kiểu thực thể NHÂN VIÊN với các thuộc tính Họ Tên, Mã Số, Giới Tính, Ngày Sinh, Lương, Đơn Vị, Người Giám Sát Thuộc tính Họ Tên là một thuộc tính phức hợp gồm Họ Đệm, Tên Các thuộc tính Đơn Vị, Người Giám Sát
mô tả các kiểu liên kết giữa kiểu thực thể NHÂN VIÊN và các kiểu thực thể
ĐƠN VỊ và NHÂN VIÊN tương ứng Thuộc tính Mã Số là thuộc tính khóa
5.Kiểu thực thể CON với các thuộc tính Nhân Viên, Họ Tên, Giới Tính, Ngày Sinh Thuộc tính Nhân Viên mô tả kiểu liên kết với kiểu thực thể
NHÂN VIÊN
6.Kiểu liên kết ĐƠNVỊ <kiểm soát> DỰÁN là kiểu liên kết có tỷ số lực lượng 1:N (một đơn vị kiểm soát một số dự án, một dự án do một đơn vị quản
Trang 40lý) Sự tham gia của DỰÁN vào kiểu liên kết là toàn bộ (bởi vì dự án nào cũng được một đơn vị kiểm soát) Nếu đơn vị nào cũng có dự án thì việc tham gia của ĐƠNVỊ vào kiểu liên kết là toàn bộ, ngược lại sự tham gia là bộ phận
7.Kiểu liên kết NHÂNVIÊN <làm việc cho> ĐƠNVỊ có tỷ số lực lượng N:1 (mỗi nhân viên làm việc cho một đơn vị nhưng mỗi đơn vị có nhiều nhân viên là việc) Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ
8.Kiểu liên kết NHÂNVIÊN <quảnlý> ĐƠNVỊ có tỷ số lực lượng 1:1 (một nhân viên quản lý một đơn vị và một đơn vị có một nhân viên quản lý) Sự tham gia của kiểu thể NHÂNVIÊN vào kiểu liên kết là bộ phận (bởi vì không phải nhân viên nào cũng quản lý đơn vị), ngược lại, sự tham gia của kiểu thực thể ĐƠNVỊ vào kiểu liên kết là toàn bộ (bởi vì đơn vị nào cũng phải có người
quản lý) Kiểu liên kết này có một thuộc tính là Ngày Bắt Đầu để ghi lại ngày
bắt đầu làm quản lý đơn vị của nhân viên
9.Kiểu liên kết NHÂNVIÊN <giám sát> NHÂNVIÊN có tỷ số lực lượng 1:N (một nhân viên có thể giám sát nhiều nhân viên khác) Sự tham gia của của kiểu thực thể NHÂNVIÊN (ở cả hai phía) là bộ phận (bởi vì không phải nhân viên nào cũng giám sát nhân viên khác, và không phải nhân viên nào cũng bị giám sát) Kiểu thực thể NHÂNVIÊ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
10.Kiểu liên kết NHÂNVIÊN <làm việc trên> DỰÁN là có tỷ số lực lượng là N:N (một nhân viên có thể làm việc trên nhiều dự án khác nhau và mỗi
dự án có nhiều nhân viên làm việc) Sự tham gia của kiểu thực thể NHÂNVIÊN
là bộ phận (bởi vì không phải tất cả nhân viên đều làm việc trên dự án) ngược lại, sự tham gia của kiểu thực thể DỰÁN là toàn bộ (bởi vì dự án nào cũng phải
có nhân viên làm việc) Kiểu liên kết này có một thuộc tính là Sốgiờ, ghi lại số giờ làm việc của một nhân viên trên một dự án
11.Kiểu liên kết NHÂNVIÊN <có> CON biểu thị mối liên hệ giữa kiểu thực thể NHÂNVIÊN và kiểu thực thể CON (một nhân viên có thể có những người con) Kiểu liên kết này có tỷ số lực lượng 1:N (một nhân viên có thể có nhiều người con nhưng mỗi con là con của chỉ một nhân viên) Sự tham gia của kiểu thực thể NHÂNVIÊN là bộ phận (không phải nhân viên nào cũng có con), ngược lại, sự tham gia của kiểu thực thể CON là toàn bộ (người con nào cũng phải là con của một nhân viên) Ngoài ra, kiểu thực thể CON là một kiểu thực thể yếu