Hệ cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) là tập hợp các dữ liệu liên quan, chứa thông tin về tổ chức như trường đại học, ngân hàng hay công ty Dữ liệu này được lưu trữ trên thiết bị nhớ thứ cấp để phục vụ nhu cầu khai thác thông tin của nhiều người sử dụng với các mục đích khác nhau.
Cơ sở dữ liệu (CSDL) cần phản ánh chính xác hoạt động của tổ chức và cho phép chia sẻ thông tin giữa nhiều người sử dụng (NSD) cũng như các ứng dụng khác nhau Trước những năm 60, khi khái niệm CSDL chưa được hình thành, mỗi ứng dụng đều đi kèm với một tệp dữ liệu riêng, dẫn đến việc tệp dữ liệu phải được điều chỉnh mỗi khi ứng dụng thay đổi Hệ thống lưu trữ thông tin theo cách này gặp phải nhiều nhược điểm lớn.
Dữ liệu dư thừa và không nhất quán là vấn đề phổ biến khi một dữ liệu được lưu trữ trong nhiều tệp khác nhau Khi cập nhật dữ liệu, có thể xảy ra tình trạng bỏ sót thông tin, dẫn đến sự không nhất quán trong hệ thống dữ liệu.
Truy cập dữ liệu trở nên khó khăn trong môi trường xử lý tệp dữ liệu truyền thống, vì nó không hỗ trợ tìm kiếm dữ liệu một cách thuận tiện và hiệu quả.
Dữ liệu cô lập là tình trạng khi thông tin phân tán trong nhiều tệp với các cấu trúc khác nhau, gây khó khăn cho việc phát triển các ứng dụng mới nhằm tìm kiếm dữ liệu phù hợp.
• Các vấn đề về toàn vẹn dữ liệu: khi thêm các ràng buộc mới, khó có thể thay đổi các chương trình để có thể tuân thủ chúng.
Các vấn đề về tính nguyên tố trong giao dịch là một thách thức lớn đối với hệ thống xử lý tệp dữ liệu truyền thống Hệ thống này khó có thể đảm bảo tính chất "hoặc thực hiện hoàn toàn hoặc không thực hiện gì", dẫn đến việc khó khăn trong việc khôi phục lại trạng thái ban đầu khi xảy ra sự cố.
Các vấn đề về an toàn dữ liệu rất quan trọng, vì mỗi người sử dụng cơ sở dữ liệu (NSD CSDL) thường chỉ được phép truy cập một phần nhất định của cơ sở dữ liệu, giúp bảo vệ an toàn cho dữ liệu Tuy nhiên, với hệ thống xử lý tệp dữ liệu truyền thống, tính chất bảo mật này thường không được đảm bảo, dẫn đến nguy cơ rò rỉ hoặc mất mát dữ liệu.
Những vấn đề trên sẽ không còn tồn tại nữa khi khái niệm CSDL ra đời.
Hệ quản trị cơ sở dữ liệu (CSDL) là phần mềm giúp người sử dụng giao tiếp hiệu quả với CSDL, tạo ra môi trường thuận lợi để tìm kiếm và lưu trữ thông tin Một CSDL kết hợp với hệ quản trị sẽ tối ưu hóa quá trình quản lý dữ liệu.
Hệ CSDL, hay hệ thống cơ sở dữ liệu, cung cấp cho người sử dụng một cái nhìn trừu tượng về dữ liệu, giúp che giấu các chi tiết phức tạp về lưu trữ và bảo trì Trong cuộc sống hiện đại, việc sử dụng CSDL trở nên phổ biến và quen thuộc, ví dụ như khi đặt chỗ chuyến bay, nhân viên đại lý nhanh chóng cung cấp thông tin cần thiết và ghi nhận đăng ký vào hệ thống Tại thư viện, máy tính giúp người dùng tra cứu thông tin sách và tình trạng mượn Sự phát triển của Internet vào cuối thế kỷ 20 đã làm tăng nhanh số lượng người truy cập và khai thác thông tin từ CSDL, với các giao diện Web cho phép đăng ký khóa học, kiểm tra số dư tài khoản ngân hàng và tìm hiểu thông tin sản phẩm, khiến việc truy xuất thông tin từ CSDL trở thành một phần thiết yếu trong cuộc sống hàng ngày.
Kiến trúc ba mức trừu tượng của một hệ cơ sở dữ liệu 11 1.3 Lược đồ và thể hiện của cơ sở dữ liệu
1.2 Kiến trúc ba mức trừu tượng của một hệ cơ sở dữ liệu
According to the ANSI-PARC (American National Standards Institute-Planning and Requirements Committee), there are three levels of data abstraction in a database system.
Mức vật lý trong cơ sở dữ liệu mô tả cách thức dữ liệu được lưu trữ thực tế, là mức trừu tượng thấp nhất thể hiện các cài đặt vật lý của hệ thống Mức này phản ánh cấu trúc dữ liệu và tổ chức tệp được sử dụng để lưu trữ dữ liệu trên các thiết bị nhớ thứ cấp.
Mức logic trong cơ sở dữ liệu (CSDL) xác định dữ liệu được lưu trữ và các mối quan hệ giữa chúng Nó thể hiện các thực thể, thuộc tính và mối quan hệ giữa các thực thể mà không xem xét cách thức lưu trữ dữ liệu.
• Mức khung nhìn (hay mức ngoài): mức này thể hiện một phần
CSDL mà người sử dụng cần khai thác đại diện cho mức trừu tượng cao nhất, bao gồm nhiều khung nhìn liên quan đến thông tin trong hệ CSDL Những khung nhìn này chứa các thực thể, thuộc tính và mối quan hệ giữa các thực thể Ngoài ra, một số khung nhìn còn có thể bao gồm dữ liệu suy diễn hoặc tính toán, mặc dù những dữ liệu này không được lưu trữ thực tế trong CSDL.
Hình 1.1: Ba mức trừu tượng hóa dữ liệu trong CSDL
Mức khung nhìn phản ánh cách người sử dụng dữ liệu cảm nhận, trong khi mức vật lý thể hiện cách hệ cơ sở dữ liệu và hệ điều hành xử lý dữ liệu Mức logic là góc nhìn chung của cộng đồng người sử dụng về dữ liệu, với hai ánh xạ đến hai mức còn lại, đảm bảo sự độc lập giữa chúng.
1.3 Lược đồ và thể hiện của cơ sở dữ liệu
Lược đồ cơ sở dữ liệu (CSDL) là mô tả toàn diện về cấu trúc và tổ chức dữ liệu Có ba loại lược đồ tương ứng với ba mức trừu tượng hóa dữ liệu: lược đồ ngoài (các lược đồ con ở mức khung nhìn), lược đồ khái niệm (mức logic) và lược đồ trong (mức vật lý) Hệ thống CSDL thường hỗ trợ một lược đồ trong, một lược đồ khái niệm và nhiều lược đồ con để quản lý và truy cập dữ liệu hiệu quả.
Lược đồ cơ sở dữ liệu (CSDL) được xác định trong quá trình thiết kế và thường không muốn thay đổi thường xuyên Tuy nhiên, CSDL sẽ thay đổi theo thời gian do việc thêm, xóa hoặc sửa đổi dữ liệu Tại một thời điểm nhất định, toàn bộ dữ liệu được lưu trữ trong CSDL được gọi là một thể hiện của CSDL Do đó, với một lược đồ CSDL, có thể tồn tại nhiều thể hiện khác nhau.
Ví dụ 1.1 Sau đây là các lược đồ trong CSDL:
Sự độc lập của dữ liệu
Kiến trúc ba mức trừu tượng hóa dữ liệu trong cơ sở dữ liệu (CSDL) nhằm mục đích đảm bảo sự độc lập của dữ liệu, cho phép các lược đồ ở mức trên không bị ảnh hưởng bởi sự thay đổi ở mức dưới Có hai loại độc lập dữ liệu chính: độc lập dữ liệu vật lý và độc lập dữ liệu logic.
Độc lập dữ liệu vật lý cho phép sửa đổi lược đồ mà không ảnh hưởng đến lược đồ khái niệm, từ đó không cần viết lại các chương trình ứng dụng Để tối ưu hóa hiệu suất, việc thay đổi ở mức vật lý là cần thiết, chẳng hạn như tổ chức tệp, điều chỉnh các chỉ mục hoặc thay đổi thuật toán băm.
Độc lập dữ liệu logic cho phép sửa đổi lược đồ khái niệm mà không ảnh hưởng đến lược đồ ngoài, nghĩa là không cần viết lại các chương trình ứng dụng Việc thay đổi ở mức logic là cần thiết khi cấu trúc logic của cơ sở dữ liệu cần điều chỉnh, chẳng hạn như thêm hoặc bớt thực thể, thuộc tính hay mối quan hệ giữa chúng.
Sau đây là kiến trúc ba mức ANSI-SPARC về sự độc lập dữ liệu:
Độc lập dữ liệu logic khó thực hiện hơn độc lập dữ liệu vật lý, do các chương trình ứng dụng thường phụ thuộc vào cấu trúc logic của dữ liệu Khái niệm độc lập dữ liệu tương tự như kiểu dữ liệu trừu tượng trong các ngôn ngữ lập trình hiện đại, vì cả hai đều che giấu các chi tiết cài đặt, cho phép người sử dụng tập trung vào cấu trúc tổng quát thay vì các chi tiết ở mức thấp.
Các cách tiếp cận cơ sở dữ liệu
Mô hình dữ liệu logic
MHDL logic được sử dụng để mô tả dữ liệu ở các mức độ logic và khung nhìn, được chia thành hai loại chính: MHDL logic dựa trên cơ sở đối tượng và MHDL logic dựa trên cơ sở bản ghi MHDL logic dựa trên cơ sở đối tượng cung cấp cấu trúc linh hoạt và cho phép ràng buộc được xác định rõ ràng, bao gồm các loại như MHDL thực thể-mối quan hệ, MHDL đối tượng, MHDL ngữ nghĩa và MHDL chức năng Trong khi đó, MHDL logic dựa trên cơ sở bản ghi mô tả cấu trúc logic tổng thể của cơ sở dữ liệu và cung cấp mô tả ở mức cao hơn về cài đặt, với độ phức tạp thấp hơn so với MHDL dựa trên đối tượng, thường bao gồm MHDL quan hệ, MHDL mạng và MHDL phân cấp.
Mô hình dữ liệu vật lý
MHDL vật lý là ngôn ngữ mô tả cách dữ liệu được lưu trữ trong máy tính, bao gồm cấu trúc bản ghi, thứ tự các bản ghi và phương thức truy cập Tuy nhiên, MHDL vật lý thường chỉ có ý nghĩa với các chuyên gia máy tính và không cần thiết cho người sử dụng thông thường.
Hệ quản trị cơ sở dữ liệu
Khái niệm
Hệ quản trị cơ sở dữ liệu (CSDL) là phần mềm cho phép người sử dụng (NSD) tương tác với CSDL thông qua một tập hợp các chương trình Nó cho phép NSD định nghĩa, tạo lập và bảo trì các CSDL, đồng thời cung cấp truy cập có điều khiển đến các CSDL này Để thực hiện các chức năng này, hệ quản trị CSDL cung cấp nhiều công cụ hữu ích.
Ngôn ngữ định nghĩa dữ liệu cho phép người sử dụng định nghĩa cơ sở dữ liệu, bao gồm việc xác định các kiểu và cấu trúc dữ liệu cũng như các ràng buộc đối với dữ liệu lưu trữ Kết quả là một tập hợp các bảng được lưu trữ trong một tệp đặc biệt, thường được gọi là từ điển dữ liệu.
(2) Ngôn ngữ thao tác dữ liệu: cho phép NSD thao tác hay truy nhập dữ liệu được dễ dàng hơn Các thao tác dữ liệu bao gồm:
• Tìm kiếm thông tin lưu trữ trong CSDL.
• Thêm thông tin mới vào CSDL.
• Xoá thông tin khỏi CSDL.
• Thay đổi thông tin được lưu trữ trong CSDL.
Ngôn ngữ thao tác dữ liệu được chia thành hai loại: thủ tục và phi thủ tục Ngôn ngữ thủ tục yêu cầu người sử dụng (NSD) phải xác định cả dữ liệu cần thiết và cách thức để truy xuất dữ liệu đó, trong khi ngôn ngữ phi thủ tục chỉ yêu cầu NSD xác định dữ liệu mà không cần chỉ định cách thức Ngôn ngữ phi thủ tục, như SQL, dễ học và sử dụng hơn, nhưng có thể tạo ra mã không hiệu quả do thiếu chỉ dẫn về cách thức truy xuất dữ liệu Để cải thiện hiệu suất, các kỹ thuật tối ưu hóa câu hỏi thường được áp dụng.
(3) Các kiểm soát, các điều khiển đối với việc truy nhập CSDL, chẳng hạn như:
• Hệ thống an ninh: ngăn cấm sự cố tình truy nhập vào CSDL một cách không được phép.
• Hệ thống ràng buộc toàn vẹn: duy trì tính nhất quán của dữ liệu được lưu trữ.
• Hệ thống điều khiển tương tranh: cho phép các truy nhập xảy ra đồng thời.
• Hệ thống tự thích ứng: cho phép khôi phục CSDL khi có sự cố về phần cứng hay phần mềm.
• Từ điển dữ liệu: NSD có thể truy nhập được.
Các hệ quản trị CSDL hiện nay có trên thị trường là Dbase, Sybase,Informix, SQL Server, Oracle, Access, Foxpro, Paradox,
Các chức năng của hệ quản trị cơ sở dữ liệu
Một hệ quản trị CSDL thường cung cấp các chức năng cơ bản sau:
Hệ quản trị cơ sở dữ liệu (CSDL) cung cấp cho người sử dụng (NSD) khả năng lưu trữ, truy xuất và cập nhật dữ liệu một cách hiệu quả Đồng thời, hệ thống này cũng ẩn giấu các chi tiết cài đặt vật lý, giúp NSD tập trung vào việc quản lý thông tin mà không cần lo lắng về cấu trúc bên trong.
Từ điển dữ liệu cung cấp cho người sử dụng (NSD) thông tin chi tiết về dữ liệu được lưu trữ, bao gồm mô tả về cấu trúc và cách thức truy cập Dữ liệu trong từ điển này, còn được gọi là siêu dữ liệu, chứa các thông tin như tên, kiểu, kích thước bản ghi, tên các mối quan hệ, và các ràng buộc toàn vẹn Ngoài ra, từ điển dữ liệu cũng lưu trữ thông tin về NSD truy cập vào cơ sở dữ liệu (CSDL), cũng như các lược đồ trong, lược đồ khái niệm và lược đồ ngoài, cùng với các ánh xạ giữa chúng Các thông tin và cách sử dụng từ điển dữ liệu có thể khác nhau tùy thuộc vào từng hệ quản trị CSDL.
Hệ thống hỗ trợ giao dịch bằng cách cung cấp cơ chế đảm bảo rằng tất cả các cập nhật trong một giao dịch sẽ được thực hiện đồng thời hoặc không có cập nhật nào được thực hiện, nhằm bảo vệ tính nhất quán của dữ liệu.
Chúng tôi cung cấp dịch vụ điều khiển tương tranh nhằm đảm bảo tính nhất quán của dữ liệu trong môi trường có nhiều phiên làm việc với cơ sở dữ liệu (CSDL) Điều này đặc biệt quan trọng khi có nhiều người đồng thời truy cập và thực hiện các thay đổi đối với thông tin lưu trữ trong CSDL.
• Cung cấp cơ chế để khôi phục dữ liệu khi xảy ra một sự cố làm hỏng CSDL theo một kiểu nào đó.
• Cung cấp các dịch vụ bản quyền.
• Hỗ trợ cho truyền thông dữ liệu, tức là hệ quản trị CSDL phải có khả năng tích hợp được với các phần mềm truyền thông.
• Cung cấp các dịch vụ đảm bảo tính toàn vẹn dữ liệu để đảm bảo sự chính xác và nhất quán của dữ liệu được lưu trữ.
Một số chức năng khác của hệ quản trị CSDL mà NSD thường quan tâm mong muốn có thêm:
• Cung cấp các dịch vụ hỗ trợ cho tính độc lập dữ liệu.
• Cung cấp một số dịch vụ tiện ích giúp người quản trị CSDL quản lý CSDL được thuận tiện và hiệu quả hơn.
Kiến trúc của hệ quản trị cơ sở dữ liệu
Để cung cấp các dịch vụ quản lý cơ sở dữ liệu, hệ quản trị CSDL được chia thành nhiều thành phần, mỗi thành phần là một mô đun phần mềm với trách nhiệm cụ thể Hệ điều hành chỉ cung cấp các dịch vụ cơ bản, vì vậy hệ quản trị CSDL cần xây dựng trên nền tảng đó Việc thiết kế hệ quản trị CSDL đòi hỏi tạo ra các giao diện kết nối giữa hệ quản trị và hệ điều hành.
Sau đây là các thành phần chính của một hệ quản trị CSDL, với một số thành phần chính của hệ quản trị CSDL có chức năng như sau:
• Bộ xử lý truy vấn: 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ý cơ sở dữ liệu (CSDL) đóng vai trò quan trọng trong việc giao tiếp giữa người sử dụng (NSD) và các chương trình ứng dụng Nó tiếp nhận các yêu cầu truy vấn từ NSD và kiểm tra các lược đồ con cũng như lược đồ khái niệm để xác định những bản ghi logic mà người dùng yêu cầu.
Bộ tiền xử lý ngôn ngữ thao tác dữ liệu chuyển đổi các câu lệnh ngôn ngữ thao tác dữ liệu được nhúng trong ứng dụng thành các lời gọi thủ tục chuẩn trong ngôn ngữ chính.
Bộ biên dịch ngôn ngữ khai báo dữ liệu chuyển đổi các câu lệnh thành tập hợp bảng chứa siêu dữ liệu, được lưu trữ trong từ điển dữ liệu.
• Bộ quản lý từ điển dữ liệu: quản lý các truy nhập đến từ điển dữ liệu và bảo trì hệ thống từ điển dữ liệu.
Hình 1.3: Kiến trúc một hệ quản trị CSDL
Vai trò của con người trong hệ cơ sở dữ liệu
Người quản trị cơ sở dữ liệu
Người quản lý hệ CSDL chịu trách nhiệm quản lý tài nguyên của cơ sở dữ liệu, bao gồm thiết kế và cài đặt hệ thống CSDL, cấp phát quyền truy cập, cung cấp phần mềm và phần cứng theo yêu cầu, cũng như duy trì hoạt động của hệ thống để đáp ứng nhu cầu của các ứng dụng và người sử dụng.
Người quản trị cơ sở dữ liệu (CSDL) cần có kiến thức sâu rộng và kỹ năng kỹ thuật vững vàng trong lĩnh vực CSDL, hệ quản trị CSDL cũng như môi trường hệ thống.
Người thiết kế cơ sở dữ liệu
Trong các dự án thiết kế cơ sở dữ liệu lớn, các nhà thiết kế thường được phân chia thành hai nhóm: nhóm thiết kế cơ sở dữ liệu logic và nhóm thiết kế cơ sở dữ liệu vật lý.
Người thiết kế cơ sở dữ liệu logic có trách nhiệm xác định dữ liệu cần lưu trữ, bao gồm các thực thể và thuộc tính, cũng như mối quan hệ và ràng buộc giữa chúng Để thiết kế hiệu quả, họ cần hiểu rõ dữ liệu của tổ chức và các quy định làm việc, đồng thời giao tiếp với người sử dụng cơ sở dữ liệu trong tương lai để nắm bắt nhu cầu sử dụng, từ đó đưa ra thiết kế phù hợp.
Người thiết kế cơ sở dữ liệu (CSDL) vật lý đóng vai trò quan trọng trong việc lựa chọn mô hình dữ liệu logic (MHDL) và quyết định cách thức thực hiện chúng trên phương diện vật lý Họ phải ánh xạ MHDL logic vào các bảng và ràng buộc toàn vẹn, đồng thời lựa chọn cấu trúc lưu trữ và phương thức truy cập dữ liệu nhằm tối ưu hóa hiệu suất thực hiện các thao tác trên CSDL Ngoài ra, việc thiết kế các hệ thống an ninh cho dữ liệu cũng là một phần không thể thiếu trong công việc của người thiết kế CSDL vật lý.
Người thiết kế cơ sở dữ liệu (CSDL) logic tập trung vào việc xác định nội dung cần lưu trữ trong CSDL, trong khi người thiết kế CSDL vật lý chú trọng vào phương thức lưu trữ thông tin đó.
Người lập trình ứng dụng
Khi cơ sở dữ liệu (CSDL) được cài đặt, lập trình viên ứng dụng phát triển các chương trình phục vụ nhu cầu khai thác CSDL của người sử dụng Các lập trình viên thường chuyển đổi các đặc tả từ người phân tích thiết kế hệ thống thành mã nguồn Mỗi chương trình bao gồm các lệnh yêu cầu hệ quản trị CSDL thực hiện các thao tác như truy xuất, thêm, xóa hoặc sửa đổi dữ liệu Những chương trình này có thể được viết bằng ngôn ngữ lập trình thế hệ ba hoặc thế hệ bốn.
Người sử dụng đầu cuối
Người sử dụng (NSD) chính là khách hàng của cơ sở dữ liệu (CSDL), vì CSDL được thiết kế và duy trì để cung cấp thông tin cần thiết cho họ Dựa trên cách sử dụng CSDL, NSD có thể được phân thành hai nhóm: nhóm NSD đơn giản và nhóm NSD tinh tế.
NSD đơn giản là những người không có kiến thức chuyên sâu về cơ sở dữ liệu (CSDL), họ truy cập và thực hiện các thao tác cơ bản thông qua các ứng dụng Những người này thường sử dụng các câu lệnh đơn giản hoặc lựa chọn từ các mục có sẵn trên bảng chọn để thực hiện giao dịch, tức là họ chủ yếu sử dụng các giao dịch đã được định sẵn.
NSD tinh tế là những cá nhân có kiến thức sâu về cấu trúc cơ sở dữ liệu và các tiện ích mà hệ quản trị cơ sở dữ liệu cung cấp Họ thành thạo trong việc sử dụng ngôn ngữ truy vấn bậc cao như SQL để thực hiện các thao tác cần thiết Ngoài ra, một số NSD tinh tế còn có khả năng viết các chương trình ứng dụng đáp ứng yêu cầu cụ thể của họ.
1.1 Phân biệt các khái niệm sau:
1.2 CSDL được ứng dụng rộng rãi trong cuộc sống Hãy nêu một số ứng dụng khác của CSDL ngoài 2 ứng dụng trong lĩnh vực thư viện và hàng không.
1.3 Hãy nêu các đặc điểm khác nhau chính giữa một hệ xử lý tệp với một hệ quản trị CSDL.
1.4 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.
1.5 Giải thích khái niệm độ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ệ CSDL Hãy giải thích sự khác nhau giữa tính độc lập dữ liệu vật lý và độc lập dữ liệu logic.
1.6 Cho biết mục đích của việc mô hình hóa các CSDL Nêu các cách tiếp cận khác nhau trong việc mô hình hóa CSDL Chỉ ra sự khác nhau giữa MHDL logic và MHDL vật lý.
1.7 Vì sao các hệ CSDL theo MHDL quan hệ được sử dụng phổ biến. 1.8 Phân biệt vai trò của những người sau đây đối với một hệ CSDL:
• Người thiết kế CSDL logic
• Người thiết kế CSDL vật lý
• Người lập trình ứng dụng
CÁC MÔ HÌNH DỮ LIỆU
MHDL, như đã đề cập ở Chương 1, đóng vai trò là hệ thống ký hiệu cho dữ liệu trong cơ sở dữ liệu (CSDL) và ngôn ngữ thao tác dữ liệu Hệ thống này không chỉ giúp người sử dụng (NSD) tránh việc lưu trữ giá trị trùng lặp, mà còn giải quyết vấn đề dư thừa dữ liệu, từ đó tiết kiệm bộ nhớ và duy trì tính nhất quán của dữ liệu Việc không kiểm soát trùng lặp có thể dẫn đến tình trạng dữ liệu không đồng nhất, khi giá trị có thể thay đổi ở một nơi nhưng không ở nơi khác.
Có nhiều mô hình dữ liệu logic (MHDL) đã được đề xuất, nhưng không có mô hình nào được coi là tốt nhất Điều quan trọng là hiểu rõ cách sử dụng chúng trong từng ngữ cảnh cụ thể Chương này sẽ giới thiệu hai MHDL cơ bản: MHDL thực thể-mối quan hệ và MHDL quan hệ Hai loại MHDL mạng và MHDL phân cấp hiện nay ít được áp dụng và dễ dàng chuyển đổi sang MHDL quan hệ, vì vậy sẽ không được đề cập trong chương này.
2.1 Mô hình dữ liệu thực thể-mối quan hệ
MHDL thực thể-mối quan hệ, hay còn gọi là MHDL ER (Entity-Relationship data model), là một mô hình khái niệm bậc cao hỗ trợ thiết kế cơ sở dữ liệu (CSDL) Nhiều công cụ thiết kế CSDL hiện nay đã áp dụng khái niệm này MHDL thực thể-mối quan hệ dựa trên nhận thức về thế giới thực, nhằm biểu diễn ngữ nghĩa của dữ liệu trong thực tế, do đó nó còn được coi là MHDL ngữ nghĩa.
Mô hình dữ liệu bậc cao và quá trình thiết kế cơ sở dữ liệu
Quá trình thiết kế một CSDL thường được chia làm bốn bước như sau:
1 Tập hợp các yêu cầu và phân tích Kết quả của bước này là một tập hợp các yêu cầu của NSD được ghi lại dưới dạng súc tích, với đặc tả càng chi tiết và đầy đủ thì càng tốt.
2 Thiết kế khái niệm Ở bước này, người thiết kế lựa chọn một MHDL và dùng các khái niệm của MHDL này để chuyển những đặc tả yêu cầu của NSD sang thành một lược đồ khái niệm, với lược đồ khái niệm là một mô tả cô đọng về yêu cầu dữ liệu của NSD như mô tả chi tiết các kiểu dữ liệu, các liên kết và các ràng buộc Lược đồ khái niệm bậc cao sẽ đảm bảo kết quả của quá trình thiết kế CSDL đáp ứng tất cả các yêu cầu của NSD và những yêu cầu đó là không mâu thuẫn Trong bước này người thiết kế chỉ quan tâm đến việc đặc tả các tính chất của dữ liệu mà chưa cần quan tâm về các chi tiết lưu trữ.
3 Thiết kế logic hay còn gọi ánh xạ MHDL Bước này người thiết kế cài đặt CSDL bằng một hệ quản trị CSDL Hầu hết các hệ quản trị CSDL dùng một MHDL thể hiện (chẳng hạn MHDL quan hệ hay MHDL hướng đối tượng, ) Do đó lược đồ khái niệm được chuyển đổi từ MHDL bậc cao sang MHDL thể hiện Kết quả của bước này là một lược đồ CSDL dưới dạng một MHDL thể hiện của hệ quản trị CSDL.
4 Thiết kế vật lý Bước này đặc tả về mặt vật lý của CSDL như các cấu trúc lưu trữ bên trong và kiểu tổ chức tệp cho CSDL.
Có thể hình dung quá trình thiết kế một CSDL qua Hình 2.1 sau:
Hình 2.1: Quá trình thiết kế một CSDL
Các thành phần cơ bản của mô hình dữ liệu thực thể-mối quan hệ
MHDL thực thể-mối quan hệ cho phép thiết kế lược đồ khái niệm của tổ chức mà không cần lo lắng về hiệu quả hay vấn đề thiết kế cơ sở dữ liệu ở mức vật lý Sau khi thiết kế, nó sẽ được cài đặt trong một MHDL của hệ quản trị cơ sở dữ liệu Tuy nhiên, MHDL thực thể-mối quan hệ thiếu hệ thống ký hiệu cho các phép toán trên dữ liệu, và một số tác giả thậm chí còn không xem nó là một MHDL Các đối tượng cơ bản của MHDL thực thể-mối quan hệ bao gồm tập thực thể và tập mối quan hệ.
Thực thể là một đối tượng tồn tại trong thế giới thực, được xác định qua các thuộc tính riêng biệt Mỗi thuộc tính đi kèm với một tập giá trị tương ứng, và mỗi thực thể cụ thể sẽ sở hữu những giá trị này Các giá trị thuộc tính là phần quan trọng trong cơ sở dữ liệu (CSDL), giúp mô tả đặc trưng của từng thực thể Không có định nghĩa hình thức cho thực thể, mà nó được hiểu qua sự mô tả về các đặc điểm của nó Tính phân biệt của thực thể chính là đặc tính nhận dạng quan trọng của các đối tượng trong hệ thống.
Mỗi sinh viên được coi là một thực thể, trong khi các môn học và dự án cũng là những thực thể riêng biệt Đối với thực thể sinh viên, các thuộc tính có thể được mô tả bao gồm mã số sinh viên, họ tên, giới tính, ngày sinh, quê quán, khoa và số điện thoại Ví dụ, giá trị của các thuộc tính này có thể là “K1001” cho mã số sinh viên và “Nguyễn” cho họ tên.
Tiến Trung”, “Nam”, “10/05/1995”, “Huế”, “Toán”, “0914111222” Như vậy, chúng ta đã có một thực thể sinh viên cùng với các giá trị thuộc tính của nó.
Một tập thực thể là một nhóm các thực thể cùng kiểu, được xác định bởi một tập hợp các đặc trưng hoặc thuộc tính chung Tập thực thể này thường được gọi bằng một tên riêng để dễ dàng tham chiếu.
Tập hợp tất cả sinh viên trường Đại học Khoa học Huế được coi là một tập thực thể, trong đó mỗi sinh viên là một thực thể riêng biệt với các thuộc tính như mã số sinh viên, họ tên, giới tính, ngày sinh, quê quán, khoa và số điện thoại Mỗi thực thể sinh viên có giá trị riêng cho từng thuộc tính Tập thực thể này có thể được gọi bằng tên SIN HV IEN, đại diện cho toàn bộ sinh viên trong cơ sở dữ liệu hiện tại.
Lược đồ tập thực thể mô tả cấu trúc chung của các thực thể trong một tập, xác định tên tập thực thể, tên và ngữ nghĩa của mỗi thuộc tính, cùng với các ràng buộc mà các thực thể phải tuân theo Trong một cơ sở dữ liệu, có thể tồn tại nhiều tập thực thể, và các tập này có thể chia sẻ các thực thể chung Ví dụ, tập thực thể SIN HV IEN có thể được xem xét trong bối cảnh này.
Cán bộ trong trường được xem là các thực thể trong hệ thống, trong đó một cán bộ có thể đồng thời là sinh viên theo hình thức học tại chức Điều này cho thấy sự linh hoạt trong vai trò của các cá nhân trong môi trường giáo dục Lưu ý rằng lược đồ của tập thực thể này không thay đổi thường xuyên, vì nó phản ánh cấu trúc của các thực thể cụ thể trong tổ chức.
Trong mô hình dữ liệu thực thể-mối quan hệ (MHDL), thuộc tính được phân loại thành nhiều loại khác nhau, bao gồm thuộc tính đơn, 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 đơn là thuộc tính không thể chia nhỏ thành các thành phần khác Ví dụ, mã số sinh viên của tập thực thể SIN HV IEN được coi là thuộc tính đơn.
Thuộc tính phức hợp là thuộc tính có thể chia nhỏ thành các thành phần như họ, tên đệm và tên Ví dụ, thuộc tính họ tên trong tập thực thể SIN HV IEN có thể được phân tách thành các phần này, cho thấy tính chất phức hợp của nó Việc sử dụng thuộc tính phức hợp trong thiết kế lược đồ rất hữu ích, đặc biệt khi người sử dụng chỉ cần tham khảo một phần của giá trị đó.
Thuộc tính đơn trị là thuộc tính chỉ có một giá trị duy nhất cho mỗi thực thể cụ thể Ví dụ, mã số sinh viên và giới tính trong tập thực thể SIN HV IEN đều là các thuộc tính đơn trị.
Thuộc tính đa trị là loại thuộc tính cho phép một thực thể có nhiều giá trị khác nhau Ví dụ, thuộc tính số điện thoại của tập thực thể SIN HV IEN có thể được coi là thuộc tính đa trị, vì một sinh viên có thể sở hữu nhiều số điện thoại để liên lạc.
Trong một số trường hợp, các thuộc tính có mối liên hệ với nhau, cho phép suy ra giá trị của thuộc tính này từ giá trị của thuộc tính khác Thuộc tính đầu tiên được gọi là thuộc tính lưu trữ, trong khi thuộc tính thứ hai được gọi là thuộc tính suy diễn Ví dụ, nếu thuộc tính a là ngày sinh thì thuộc tính b có thể là tuổi.
MHDL thực thể-mối quan hệ cho phép một thực thể tại một thời điểm nhất định có thể không có giá trị cho một thuộc tính nào đó, và giá trị thiếu này sẽ được biểu thị bằng null.
Khóa tối tiểu của một tập thực thể là thuộc tính xác định duy nhất các thực thể trong tập đó, và ràng buộc về tính duy nhất này được gọi là ràng buộc khóa Trong một số trường hợp, khóa tối tiểu có thể bao gồm nhiều thuộc tính, và một tập thực thể có thể có nhiều hơn một khóa tối tiểu Ví dụ, mã số sinh viên là khóa tối tiểu của tập thực thể SINHVIEN Mỗi thực thể cần phải có khả năng phân biệt với các thực thể khác, do đó, mỗi tập thực thể phải có ít nhất một khóa tối tiểu không rỗng.
Mối quan hệ isa
Một tập thực thể có thể bao gồm nhiều tập con với những đặc điểm phân biệt Sự thiết kế này được gọi là sự đặc biệt hóa, trong đó một tập con có thể sở hữu các thuộc tính mà các thực thể bên ngoài không có Mối quan hệ giữa tập thực thể và các tập con được gọi là mối quan hệ isa, với ký hiệu E1 isa E2, có nghĩa là E1 là một loại đặc biệt của E2 Ngược lại, sự khái quát hóa diễn ra khi E2 tổng quát hóa E1 Mục đích của mối quan hệ isa là cho phép tập thực thể E1 kế thừa các thuộc tính từ E2, đồng thời có thể bổ sung thêm những thuộc tính mà một số thực thể trong E2 không có Ví dụ, trong trường hợp tập thực thể T AIKHOAN.
(tài khoản) có các thuộc tính như số hiệu tài khoản vàsố dư Trên thực tế, một tài khoản còn được phân biệt theo một trong hai loại sau:
T AIKHOAN T IET KIEM (tài khoản tiết kiệm) và
T AIKHOAN KIEM T RA (tài khoản kiểm tra).
Các loại tài khoản đều có hai thuộc tính chính là số hiệu tài khoản và số dư Ngoài ra, tài khoản tiết kiệm còn có thuộc tính tỷ suất (tỷ số lãi suất), trong khi tài khoản kiểm tra có thuộc tính số vượt trội (số lượng rút vượt quá số lượng gửi) Những thuộc tính này tạo ra các mối quan hệ đặc trưng giữa các loại tài khoản.
T AIKHOAN T IET KIEM isa T AIKHOAN và
T AIKHOAN KIEM T RA isa T AIKHOAN.
Ràng buộc trên các mối quan hệ
Để mô hình hóa thế giới thực một cách chính xác, cần thiết phải áp dụng các ràng buộc cho mối quan hệ giữa các tập thực thể 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 Những ràng buộc này được gọi chung là ràng buộc cấu trúc.
2.1.4.1 Ràng buộc về tỷ số lực lượng
Tỷ số lực lượng trong mối quan hệ thể hiện số lượng thực thể từ mỗi tập tham gia vào mối quan hệ đó Có ba loại mối quan hệ chính: một-một, nhiều-một và nhiều-nhiều Cụ thể, với hai tập thực thể E1 và E2, mối quan hệ R được định nghĩa dựa trên các loại mối quan hệ này.
• Mối quan hệ một-một (hay 1-1) giữa E 1 và E 2 nếu mỗi thực thể của E 1 kết hợp với nhiều nhất một thực thể của E 2 và ngược lại.
• Mối quan hệ nhiều-một (hay n-1) từ E 1 đến E 2 nếu mỗi thực thể trong E 2 kết hợp với nhiều thực thể trong E 1 và mỗi thực thể trong
E 1 kết hợp với nhiều nhất một thực thể trong E 2
• Mối quan hệ nhiều-nhiều (hay n-m) giữa E 1 và E 2 nếu mỗi thực thể của E 1 kết hợp với nhiều thực thể của E 2 và ngược lại.
2.1.4.2 Ràng buộc về sự tham gia
Ràng buộc sự tham gia trong một mối quan hệ R xác định liệu một thực thể có phụ thuộc vào mối quan hệ này với thực thể khác hay không Sự tham gia của các thực thể trong các mối quan hệ được phân chia thành hai loại chính: sự tham gia toàn phần và sự tham gia bộ phận.
Chẳng hạn, xét mối quan hệ QU AN LY giữa hai tập thực thể
Trong tổ chức N HAN V IEN, không phải tất cả nhân viên đều giữ vai trò quản lý một phòng ban Điều này cho thấy chỉ một bộ phận nhất định trong tập thể N HAN V IEN tham gia vào mối quan hệ quản lý này.
Sự tham gia của tập thể nhân viên vào mối quan hệ quản lý được coi là sự tham gia bộ phận Nếu công ty quy định rằng mỗi nhân viên phải làm việc cho một phòng cụ thể, thì mỗi thực thể nhân viên trong tập thể sẽ phải tuân theo quy định đó.
N HÀN V IÊN chỉ có thể tồn tại khi tham gia vào một mối quan hệ LÀM VIỆC CHO Điều này cho thấy sự tham gia của tập thực thể là yếu tố cần thiết cho sự tồn tại của N HÀN V IÊN.
N HAN V IEN vào mối quan hệ LAM V IECCHO là sự tham gia toàn phần.
Sơ đồ thực thể-mối quan hệ
Sơ đồ thực thể-mối quan hệ (ER) là công cụ tóm tắt thông tin cần lưu trữ trong cơ sở dữ liệu (CSDL) cho một thiết kế Việc sử dụng sơ đồ ER mang lại nhiều lợi ích, giúp tổ chức và quản lý dữ liệu hiệu quả Trong sơ đồ này, thường sử dụng các ký hiệu đặc trưng để thể hiện các thực thể và mối quan hệ giữa chúng.
• Hình chữ nhật: biểu diễn các tập thực thể.
Hình elip được sử dụng để biểu diễn các thuộc tính trong mô hình dữ liệu, kết nối với các tập thực thể qua các cạnh không có hướng Các thuộc tính của khóa tối thiểu được gạch chân, trong khi thuộc tính đa trị được thể hiện bằng hai hình elip lồng nhau Thuộc tính suy diễn được biểu diễn bằng hình elip có nét không liền, và thuộc tính phức hợp được mô tả bằng nhiều hình elip tương ứng với các thành phần của nó, nối với hình elip chính đại diện cho thuộc tính phức hợp.
Hình thoi được sử dụng để biểu diễn các mối quan hệ giữa các tập thực thể thông qua các cạnh không có hướng Cụ thể, khi xem xét hai tập thực thể E1 và E2 cùng với mối quan hệ R giữa chúng, hình thoi thể hiện sự kết nối và tương tác giữa các thực thể này.
Thiết kế lược đồ thực thể-mối quan hệ
MHDL thực thể-mối quan hệ mang lại sự linh hoạt cần thiết trong việc thiết kế lược đồ cơ sở dữ liệu, giúp mô hình hóa một thế giới thực nhỏ Để đạt được một thiết kế hiệu quả, cần xem xét và quyết định các yếu tố quan trọng liên quan đến mô hình hóa dữ liệu.
• Dùng một thuộc tính hay một tập thực thể để biểu diễn một đối tượng.
• Dùng một tập thực thể hay một mối quan hệ để biểu diễn một khái niệm của thế giới thực.
• Dùng một mối quan hệ cấp ba hay một cặp mối quan hệ cấp hai.
Trong thiết kế sơ đồ thực thể-mối quan hệ, việc sử dụng đặc biệt hóa cần được cân nhắc kỹ lưỡng, đặc biệt khi đối mặt với các mối quan hệ nhiều-nhiều (n-m) thường gặp Các mối quan hệ này có thể gây khó khăn trong việc diễn đạt, do nhiều mô hình dữ liệu không hỗ trợ biểu diễn trực tiếp chúng Thay vào đó, cần tách biệt thành các mối quan hệ một-nhiều (n-1) để đảm bảo tính rõ ràng và chính xác trong cấu trúc dữ liệu.
Một ví dụ về thiết kế lược đồ thực thể-mối quan hệ 36 2.2 Mô hình dữ liệu quan hệ
Trong bài viết này, chúng ta sẽ minh họa quy trình thiết kế một MHDL thực thể-mối quan hệ thông qua ví dụ xây dựng mô hình cơ sở dữ liệu cho một công ty.
Sau khi tập hợp và phân tích các yêu cầu, người thiết kế cơ sở dữ liệu sẽ mô tả công ty như một thế giới thu nhỏ thông qua những câu văn rõ ràng và súc tích, phản ánh đầy đủ các khía cạnh hoạt động và cấu trúc của tổ chức.
1 Công ty được tổ chức thành các phòng (đơn vị) Mỗi phòng có một tên duy nhất, một mã số duy nhất và một trưởng phòng Việc một nhân viên được giao làm trưởng phòng được ghi lại ngày mà nhân viên đó được bổ nhiệm Một phòng có thể có nhiều địa điểm.
2 Một phòng quản lý một số dự án Mỗi 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 của công ty cần lưu trữ những thông tin như sau: họ tên, mã số bảo hiểm xã hội, ngày sinh, địa chỉ và lương. Một nhân viên được phân công vào một phòng nào đó nhưng có thể làm việc với một số dự án mà không nhất thiết tất cả các dự án này đều do phòng của anh ta quản lý Lưu trữ số giờ làm việc/tuần của mỗi nhân viên trên mỗi dự án và thông tin người giám sát trực tiếp của mỗi nhân viên.
2.1.7.2 Xác định các thực thể, thuộc tính và các mối quan hệ
Theo mô tả bài toán như trên, chúng ta có thể xác định ba tập thực thể:
1 Tập thực thể P HON G với các thuộc tính Tên phòng, Mã phòng, Địa điểm, Trưởng phòng, Ngày bổ nhiệm Các thuộc tínhTên phòng và Mã phòng là hai khóa tối tiểu Địa điểm là một thuộc tính đa trị.
2 Tập thực thểDU AN với các thuộc tính Tên dự án, Mã dự án, Địa điểm, Phòng quản lý Trong đó, Tên dự án và Mã dự án đều là khóa tối tiểu.
3 Tập thực thểN HAN V IEN với các thuộc tínhHọ tên, Mã BHXH
(mã số bảo hiểm xã hội), Ngày sinh, Địa chỉ, Lương, Tên phòng.
Họ tên là thuộc tính phức hợp Thuộc tính Mã BHXH là khóa tối tiểu.
Giữa các tập thực thể trên ta phát hiện được các mối quan hệ sau:
1 Mỗi phòng có một nhân viên lãnh đạo (trưởng phòng) nên giữa tập thực thểN HAN V IEN và tập thực thểP HON Gcó một mối quan hệ, chúng ta đặt tên là QU AN LY Mỗi nhân viên chỉ có thể làm trưởng phòng của một phòng và một phòng không có nhiều hơn một trưởng phòng nên có một mối quan hệ 1-1.P HON G tham gia toàn phần vào mối quan hệ này (phòng nào cũng có trưởng phòng) còn N HAN V IEN chỉ tham gia bộ phận (không phải nhân viên nào cũng làm trưởng một phòng nào đó) Mối quan hệ QU AN LY có thuộc tínhNgày bổ nhiệm(ngày bổ nhiệm nhân viên nào đó làm trưởng phòng).
2 Mỗi nhân viên đều được phân công vào một phòng, một phòng có nhiều nhân viên nhưng không không nhân viên nào được phân công vào hơn một phòng Điều này có nghĩa có một mối quan hệ n-1 từ tập thực thể N HAN V IEN đến tập thực thểP HON G Cả hai tập thực thể tham gia trong mối quan hệ này đều tham gia toàn phần bởi phòng nào cũng có nhân viên và không có nhân viên nào lại không được phân công vào một phòng cụ thể Chúng ta đặt tên mối quan hệ này là LAM V IECCHO.
3 Giữa tập thực thể P HON G và tập thực thể DU AN có một mối quan hệ, có thể gọi là mối quan hệ này làDIEU HAN H (do phòng điều hành các dự án) Đây là mối quan hệ n-1 từ DU AN đến
Phòng (P HON G) có khả năng điều hành nhiều dự án, trong khi mỗi dự án chỉ chịu sự quản lý của một phòng duy nhất Tập thực thể dự án (DU AN) hoàn toàn tham gia vào mối quan hệ điều hành (DIEU HAN H) vì mỗi dự án đều phải được một phòng quản lý Sự tham gia của tập thực thể phòng (P HON G) có thể là bộ phận hoặc toàn phần, tùy thuộc vào việc có phòng nào đảm nhận chức năng điều hành dự án hay không.
4 Một số nhân viên có tham gia vào các dự án, như vậy có một mối quan hệ trên hai tập thực thể N HAN V IEN, DU AN Do một nhân viên có thể tham gia nhiều dự án và mỗi dự án có sự tham gia của một số nhân viên nên nên mối quan hệ này là mối quan hệ n-m Chúng ta đặt tên mối quan hệ này là LAM V IECV OI Nếu có nhân viên không tham gia một dự án nào và có dự án nhưng không có nhân viên nào tham gia thì sự tham gia của hai tập thực thành thành phần N HAN V IEN và DU AN vào mối quan hệ LAM V IECV OI đều là bộ phận Mối quan hệ này có thuộc tính Số giờ cho biết số giờ công/tuần tương ứng với cặp thông tin (nhân viên, dự án).
2.1.7.3 Sơ đồ thực thể-mối quan hệ
Sau khi thực hiện các phân tích, cần loại bỏ những thuộc tính được xem là mối quan hệ trong từng tập thực thể Cụ thể, thuộc tính Trưởng phòng và Ngày bổ nhiệm sẽ được loại bỏ khỏi tập thực thể PHONG; thuộc tính Phòng quản lý sẽ bị loại khỏi tập thực thể DU AN; và thuộc tính Tên phòng sẽ không còn trong tập thực thể NHAN VIEN.
Từ đây, chúng ta có sơ đồ thực thể-mối quan hệ như hình vẽ sau:
Hình 2.2: Sơ đồ thực thể-mối quan hệ
2.2 Mô hình dữ liệu quan hệ
MHDL quan hệ, được E F Codd đề xuất vào năm 1970 tại IBM, sử dụng các quan hệ toán học để mô tả và thao tác dữ liệu thông qua các phép toán đại số quan hệ Lý thuyết toán học chặt chẽ giúp dữ liệu trong MHDL này được mô tả rõ ràng và logic Đến nay, đã có hàng trăm hệ quản trị CSDL theo MHDL quan hệ cho cả máy tính lớn và nhỏ MHDL quan hệ có thể được hình dung như một tập hợp các bảng, trong đó mỗi bảng gồm các hàng và cột Mỗi hàng biểu thị một tập hợp các giá trị liên quan đến một sự kiện cụ thể, và mỗi bảng, cột đều mang tên để dễ hiểu ý nghĩa của các hàng trong bảng.
Ví dụ 2.1 Sau đây là quan hệ SIN HV IEN cho dưới dạng một bảng các giá trị:
M asv Hoten Gioitinh N gaysinh Quequan Khoa
K401 Lê Văn Sơn Nam 10/02/1995 Huế Toán
K402 Trần Thị Bình Nữ 28/10/1995 Huế Lý
K403 Trần Tiến Nam 01/10/1996 Đà Nẵng Toán K4004 Lê Văn Hải Nam 04/04/1997 Quảng Trị Hóa K405 Đặng Tuấn Nam 25/08/1996 Hà Tĩnh Văn
Bảng SIN HV IEN cung cấp thông tin chi tiết về từng sinh viên, với mỗi hàng tương ứng với một sinh viên cụ thể Tên các cột trong bảng giúp xác định ý nghĩa của các giá trị trong ô, ví dụ, cột đầu tiên mang tên M asv (Mã sinh viên), cho biết mã số sinh viên như “K401” trong hàng đầu tiên Mỗi tên cột thể hiện một thuộc tính quan trọng của các thực thể, và các giá trị trong cùng một cột thường có kiểu dữ liệu đồng nhất.
Trong lý thuyết MHDL quan hệ, các thuật ngữ cơ bản bao gồm "quan hệ" để chỉ bảng, "thuộc tính" để chỉ tên cột, "miền" để chỉ kiểu dữ liệu của cột, và "bộ" để chỉ một hàng trong bảng Định nghĩa chi tiết về các thuật ngữ này sẽ được trình bày trong phần tiếp theo.
Quan hệ
Cho một tập hữu hạn khác rỗng các thuộc tínhU ={a 1 , a 2 , , a n } Mỗi thuộc tính a i (i = 1,2, , n) có một miền giá trị tương ứng dom(a i ).
Mỗi tập con của tập Descartes được gọi là một quan hệ trên tập U và được ký hiệu là R(U) Khi tập thuộc tính mặc định là U, chúng ta sẽ ký hiệu R(U) đơn giản là R để tiện cho việc trình bày.
Như vậy, quan hệ R(U) là một tập các n-bộ có dạng như sau: R(U) ={(x 1 , x 2 , , x n ) :x i ∈dom(a i ), i = 1,2, , n}.
Một quan hệ không chứa bộ nào được gọi là quan hệ rỗng Hai quan hệ tương thích với nhau nếu chúng có cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị Ký hiệu Rel(U) đại diện cho tập tất cả các quan hệ R(U) Đối với mỗi bộ t thuộc R(U) và mỗi tập con thuộc tính X ⊆ U, ký hiệu t(X) chỉ chứa các giá trị của các thuộc tính trong X, trong khi t(a i) biểu thị giá trị của bộ t tương ứng với thuộc tính a i Điều này cho thấy quan hệ R có thể được hình dung như một bảng, trong đó mỗi cột tương ứng với một thuộc tính và mỗi hàng tương ứng với một bộ, cho phép mọi thông tin trong cơ sở dữ liệu quan hệ được biểu diễn qua các giá trị trong bảng.
Trong lý thuyết cơ sở dữ liệu, chúng ta giả định rằng tập thuộc tính U là hữu hạn và không rỗng Một cặp S = (U, F) được định nghĩa, trong đó U là tập hữu hạn các thuộc tính và F là tập các điều kiện giữa các thuộc tính, được gọi là lược đồ quan hệ Ràng buộc trên tập thuộc tính U thể hiện một tính chất hoặc tân từ trên tất cả các quan hệ xác định trên U Do đó, tập điều kiện F còn được gọi là tập các ràng buộc toàn vẹn.
Lược đồ quan hệ (LĐQH) mô tả cấu trúc và các ràng buộc toàn vẹn của một quan hệ, giúp xác định cách thức mà các dữ liệu được tổ chức và quản lý Quan hệ có thể thay đổi theo thời gian thông qua các phép toán cập nhật như thêm, xóa và sửa bộ Tuy nhiên, LĐQH thể hiện những nội dung tồn tại lâu hơn, phản ánh tính bất biến của quan hệ Các quan hệ thỏa mãn LĐQH S, với cấu trúc và ràng buộc toàn vẹn được mô tả bởi S, được gọi là một thể hiện của LĐQH S.
Ví dụ 2.2 Xét quan hệ T KB (thời khóa biểu) của một trường học:
N gay T iet M on P hong Giaovien
1/9 1 Logic mờ E201 Nguyễn Văn Hùng
1/9 2 Logic mờ E201 Nguyễn Văn Hùng
1/9 1 Anh văn 1 H101 Lê Thị Hòa
1/9 2 Anh văn 1 H102 Trần Văn Hiệp
1/9 3 Anh văn 2 E201 Hoàng Thị Ngọc
Quan hệ này có tập thuộc tính U = {N gay, T iet, M on, P hong, Giaovien} Bộ thứ nhất của quan hệ là (”1/9”,1,”Logic mờ”,”E201”,
Nếu tập thuộc tính X = {Tiết, Môn, Phòng} và t là bộ thứ nhất, thì t(X) = (1, "Logic mờ", "E201") Dữ liệu trong bảng có thể thay đổi theo thời gian, nhưng cấu trúc của bảng được sử dụng để thể hiện thời khóa biểu trong một khoảng thời gian nhất định Đồng thời, dữ liệu trong bảng cần phải tuân thủ các ràng buộc để đảm bảo tính chính xác của thời khóa biểu.
•Một bộ (n, t, m, p, g) có ý nghĩa là vào tiết thứ t của ngàyn giáo viên g dạy môn m tại phòng p.
•Miền của thuộc tínhT ietlà tập hợp các số tự nhiên {1,2, ,10}
(cơ sở đào tạo ở đây chia một ngày học làm 10 tiết).
•Vào một tiết của một ngày, một giáo viên cụ thể chỉ có thể xuất hiện tại nhiều nhất một phòng học.
Một tập hợp hữu hạn các lược đồ quan hệ {S1, S2, , Sk} được gọi là một lược đồ cơ sở dữ liệu quan hệ và được ký hiệu là DS Một thể hiện của DS, hay còn gọi là một cơ sở dữ liệu quan hệ, là tập hợp các thể hiện DB = {R1, R2, , Rk}, trong đó mỗi Ri là một thể hiện của Si Các thể hiện trong DB phải tuân thủ các ràng buộc toàn vẹn được thiết lập trong DS.
Các tính chất cơ bản của quan hệ
Các tính chất cơ bản (về mặt toán học) sau của quan hệ R ∈Rel(U) là rõ ràng:
• Thứ tự các bộ trong R là không quan trọng và các bộ là phân biệt.
• Thứ tự các thành phần trong mỗi bộ của R là quan trọng.
Ngoài ra, trong ngữ cảnh của MHDL, các quan hệ (bảng) ở đây cần có thêm một số đặc trưng sau:
• Mỗi quan hệ cần có một tên phân biệt với tên của các quan hệ khác.
• Mỗi thuộc tính trong quan hệ có một tên phân biệt.
• Thứ tự các thuộc tính trong quan hệ là không quan trọng.
Trong mô hình dữ liệu quan hệ (MHDL quan hệ), mỗi giá trị phải là giá trị nguyên tố, không thể phân chia thành các thành phần nhỏ hơn Điều này được coi là điều kiện cần thiết để đạt được dạng chuẩn một Do đó, MHDL quan hệ không cho phép tồn tại các thuộc tính phức hợp hoặc thuộc tính đa trị.
• Các giá trị của một thuộc tính trong quan hệ thuộc cùng một miền.
Hiện tại, giá trị của một số bộ thuộc tính có thể chưa được xác định, và trong trường hợp này, chúng sẽ được ký hiệu bằng null.
Ở mức logic, thứ tự thuộc tính và giá trị trong mỗi bộ không quan trọng, miễn là có sự tương ứng giữa chúng Để đạt được điều này, có thể định nghĩa quan hệ thông qua tập hữu hạn các ánh xạ từ tập thuộc tính vào miền giá trị tương ứng của các thuộc tính đó.
Khi thiết lập quan hệ dưới dạng tệp ở mức vật lý, các bản ghi được lưu trữ trên đĩa cần có một thứ tự nhất định để đảm bảo tính tổ chức và dễ dàng truy xuất dữ liệu.
Khóa của quan hệ
Cho quan hệ R ∈ Rel(U) Một khóa của R là một tập con thuộc tính
K ⊆ U sao cho với hai bộ bất kỳ t 1 , t 2 ∈ R, thì tồn tại một thuộc tính a ∈ K để t 1 (a) ̸= t 2 (a) Trường hợp nếu với mọi tập con thật sự
K ′ ⊂K, K ′ không phải là khóa của R thì K được gọi là khóa tối tiểu 1 của R.
Khóa tối tiểu trong quan hệ giúp nhận diện các bộ trong mối quan hệ Việc này rất quan trọng, vì khi cần tìm một bộ t nào đó, chúng ta chỉ cần biết giá trị của các thành phần khóa tối tiểu của t để có thể xác định và truy xuất đầy đủ thông tin của bộ t đó.
U là một khóa của quan hệ R, và một quan hệ có thể có nhiều khóa tối tiểu, được gọi là khóa dự tuyển Để xác định khóa dự tuyển, cần hiểu ngữ nghĩa của các thuộc tính dự kiến sử dụng Thông thường, một khóa dự tuyển sẽ được chọn làm khóa chính.
Việc chọn khóa chính từ các khóa dự tuyển thường nghiêng về khóa có ít thuộc tính nhất, thường chỉ một thuộc tính Khi thiết kế cơ sở dữ liệu (CSDL) cho các thực thể như sinh viên, môn học hay mặt hàng, các khóa dự tuyển thường có nhiều thuộc tính hơn Do đó, người thiết kế có thể bổ sung một thuộc tính mã số để làm khóa chính, như mã số sinh viên hay mã môn học Khóa chính có ý nghĩa quan trọng trong khai thác CSDL, nhưng về lý thuyết, nó không khác gì so với các khóa dự tuyển khác Một số hệ quản trị CSDL như Access, Oracle, và Informix có cơ chế tự động kiểm tra tính nhận diện của khóa chính, yêu cầu rằng các giá trị trong khóa chính không được là null Khi đáp ứng yêu cầu này, CSDL được gọi là thỏa mãn ràng buộc toàn vẹn thực thể.
Ký hiệu Key(R) đại diện cho tập hợp tất cả các khóa tối tiểu của quan hệ R Việc xác định Key(R) là một bài toán phức tạp với độ phức tạp hàm mũ theo số thuộc tính Ngược lại, việc tìm kiếm một khóa tối tiểu cho quan hệ lại đơn giản hơn nhiều, với độ phức tạp chỉ ở mức đa thức.
1 Trong một số tài liệu thuật ngữ khóa tối tiểu được dùng theo nghĩa khóa và thuật ngữ khóa được dùng theo nghĩa siêu khóa. theo kích thước của R.
Tập thuộc tính {T iet, M onhoc} được xác định là một khóa tối thiểu của quan hệ T KB, như đã trình bày trong Ví dụ 2.2 Để làm rõ hơn, chúng ta sẽ xem xét một ví dụ minh họa khác.
Ví dụ 2.3 Xét quan hệR ={t 1 , t 2 , t 3 }trên tập thuộc tínhU ={a, b, c}:
Dễ kiểm chứng được{a} là khóa tối tiểu duy nhất của quan hệR.
Khóa ngoài trong cơ sở dữ liệu (CSDL) là tập hợp thuộc tính K ⊆ U, đóng vai trò quan trọng trong việc thực hiện các thao tác dữ liệu và biểu diễn mối liên kết giữa các quan hệ Các mối liên kết này được gọi là ràng buộc toàn vẹn tham chiếu, và một CSDL thường có nhiều khóa ngoài để đảm bảo tính toàn vẹn Ngoài các ràng buộc toàn vẹn, CSDL còn phải thỏa mãn các ràng buộc khác, chẳng hạn như ràng buộc về mức lương của cán bộ giảng dạy hợp đồng không được cao hơn cán bộ giảng dạy biên chế, được gọi là ràng buộc toàn vẹn ngữ nghĩa.
Để đảm bảo các ràng buộc toàn vẹn trên mọi thể hiện của cơ sở dữ liệu (CSDL) quan hệ, tất cả các ràng buộc này cần được đặc tả rõ ràng trong lược đồ CSDL Do đó, ngôn ngữ định nghĩa dữ liệu trong nhiều hệ quản trị CSDL quan hệ cho phép người dùng chỉ định các loại ràng buộc khác nhau nhằm tự động kiểm soát và duy trì tính toàn vẹn của dữ liệu.
Thuật toán tìm khóa của quan hệ
Mục này trình bày các thuật toán để xác định khóa tối tiểu và tìm kiếm tất cả các khóa tối tiểu của một quan hệ Các thuật toán và kết quả được đề xuất dựa trên nghiên cứu trong tài liệu [16] Để bắt đầu, chúng ta sẽ xem xét một số khái niệm cơ bản liên quan đến tập hợp hữu hạn không rỗng V.
S là một họ các tập con của V Ký hiệu: min(S) = {A∈ S : (∀B ∈ S, B ⊆A)⇒ (B = A)}, max(S) = {A∈ S : (∀B ∈ S, B ⊇A)⇒ (B = A)}.
Họ S thỏa điều kiện như sau:
Một hệ Sperner, ký hiệu là ∀A, B ∈ S : A ⊆ B ⇒ A = B, được định nghĩa trên tập V Kết quả quan trọng trong lý thuyết Sperner cho thấy rằng số phần tử tối đa của một hệ Sperner S trên tập V là một yếu tố cơ bản cần được nghiên cứu.
) Ở đây ký hiệu ⌊x⌋ số nguyên lớn nhất không vượt quá x Dễ thấy các họ min(S),max(S) và Key(R) là các hệ Sperner.
Bây giờ ta xét quan hệ R ={t 1 , t 2 , , t m } ∈ Rel(U) Khi đó họ
E(R) ={E ij : 1 ≤i < j ≤m}, với E ij ={a∈U :t i (a) =t j (a)}, được gọi làhệ bằng nhau của quan hệ
R Họ max(E(R)) còn được gọi là hệ bằng nhau cực đại của quan hệ R và ký hiệu lại là max(R) Trên cơ sở hệ bằng nhau cực đại, thuật toán tìm một khóa tối tiểu của quan hệ được xây dựng như sau:
Thuật toán 2.1 (Thuật toán tìm một khóa tối tiểu quan hệ)
Vào: Quan hệ R ={t 1 , t 2 , , t m } ∈ Rel(U) với U = {a 1 , a 2 , , a n }.
Ra: Một khóa tối tiểu K củaR.
Bước 1 Từ R, xây dựng hệ bằng nhau E(R).
Bước 2 Từ E(R), tính hệ bằng nhau cực đại max(R).
Bước i + 2 Xây dựng dãy tập thuộc tính K 0 , K 1 , , K n theo qui tắc sau:
Thuật toán 2.1 có thể kiểm chứng cho ra một khóa tối tiểu với độ phức tạp thời gian đa thức theo m và n Việc thay đổi thứ tự các thuộc tính trong tập U có thể dẫn đến việc tìm ra một khóa tối tiểu khác Ngoài ra, trong Bước i+2, K0 không nhất thiết phải bằng U mà có thể được đặt bằng một khóa nào đó trong quan hệ R.
Ví dụ 2.4 Xét lại quan hệ R trong Ví dụ 2.3.
Ta có E 12 = ∅, E 13 = {b, c}, E 23 = ∅ Suy ra E(R) = {∅,{b, c}} và do đó max(R) ={{b, c}} Khi đó dãy tập các thuộc tính K 0 , , K 3 được xây dựng như sau:
Vậy, tập thuộc tính {a} là một khóa tối tiểu của quan hệ R.
Chúng ta sẽ giới thiệu thuật toán tìm tất cả khóa tối tiểu của quan hệ Để bắt đầu, cần hiểu các khái niệm liên quan Một tập con T ⊆ V được gọi là đại diện của hệ Sperner S nếu nó thỏa mãn hai điều kiện: thứ nhất, với mọi A ∈ S, T và A có giao nhau (T ∩ A ≠ ∅); thứ hai, không tồn tại tập con T' ⊂ T thỏa mãn điều kiện đầu tiên.
Ký hiệu T ran(S) là tập tất cả các đại diện của hệ Sperner S, và phần bù của T ran(S) là:
Chúng ta có kết quả sau [16]:
Họ AntiSperner(S), hay còn gọi là phản hệ Sperner của S, bao gồm tất cả các tập cực đại không bao hàm bất kỳ tập nào thuộc hệ Sperner S Điều này cho thấy mối tương quan đặc biệt giữa S và AntiSperner(S).
AntiSperner(S) là chúng xác định duy nhất lẫn nhau.
Tìm một đại diện của hệ Sperner S ={E 1 , E 2 , , E m } trên V {a 1 , a 2 , , a n } là thủ tục khá đơn giản, có thể thực hiện bằng quy nạp như sau:
Tập T(n) được tạo ra từ T(i−1) với mọi i = 1, 2, , n là một đại diện của hệ Sperner S Thủ tục này có độ phức tạp thời gian O(n²m) Tuy nhiên, việc tìm tất cả các đại diện của một hệ Sperner phức tạp hơn, với độ phức tạp thời gian là hàm mũ theo n.
Thuật toán 2.2 (Thuật toán tìm tất cả các đại diện )
Ra: Tập tất cả các đại diện T ran(S).
Bước 1 Tính L 1 :={{a} :a ∈E 1 } Rõ ràng L 1 =T ran({E 1 }).
L q = S q ∪ {B 1 , B 2 , , B t q } với B i ∩E q+1 =∅ (i = 1,2, , t q ) và S q ={A ∈ L q :A∩E q+1 ̸=∅}. Với mỗi i (i = 1,2, , t q ), xây dựng họ {B i ∪ {b} : b ∈ E q+1 } và ký hiệu các phần tử của họ là A i 1 , A i 2 , , A i r i (i = 1,2, , t q ) Đặt
Có thể kiểm chứng được L m = T ran(S) Để ý, quá trình xác định T ran(S) bằng Thuật toán 2.2 không phụ thuộc vào thứ tự của
Chúng ta sẽ phân tích độ phức tạp thời gian của Thuật toán 2.2 Giả sử số phần tử của L q là l q, thì độ phức tạp thời gian xấu nhất của thuật toán này là một yếu tố quan trọng cần xem xét.
Dễ thấy các họL q tính được trong mỗi bước của thuật toán là một hệ Sperner, và do đó số phần tử tối đa của L q là
Độ phức tạp thời gian của Thuật toán 2.2 không vượt quá hàm mũ theon Trong trường hợp q ≤ l m (với q = 1, 2, , m−1), độ phức tạp thời gian của thuật toán này không lớn hơn O(n² m|T ran(S)|), cho thấy nó là đa thức theo n, m và |T ran(S)| Khi số phần tử của S nhỏ, Thuật toán 2.2 hoạt động rất hiệu quả, yêu cầu thời gian đa thức theo n Hơn nữa, chúng ta có Định lý 2.2 cho quan hệ R ∈ Rel(U).
Do đó, trên cơ sở Định lý 2.2 và Thuật toán 2.2, thuật toán tìm tất cả khóa tối tiểu của một quan hệ được xây dựng như sau:
Thuật toán 2.3 (Thuật toán tìm tất cả khóa tối tiểu của quan hệ)
Ra: Tập tất cả khóa tối tiểu Key(R).
Bước 1 Từ R tính hệ bằng nhau E(R).
Bước 2 Tính phần bù của E(R):
Bước 3 Tính tập các đại diện T ran(min(E(R))).
Bước 4 trong quy trình là xác định Key(R) bằng cách lấy T ran(min(E(R))) Key(R) đại diện cho tập hợp tất cả các khóa tối thiểu của R Độ phức tạp thời gian của Thuật toán 2.3 tương đương với độ phức tạp thời gian của Thuật toán 2.2, điều này cho thấy rằng trong nhiều trường hợp, Thuật toán 2.3 hoạt động rất hiệu quả.
Ví dụ 2.5 Xét quan hệ R trên tập thuộc tính U ={a, b, c} như sau:
Ta có E 12 = {a, b}, E 13 = {c}, E 14 = ∅, E 23 = ∅, E 24 = {c}, E 34 {a, b} Suy ra E(R) ={{a, b},{c},∅} và do đó E(R) ={{c},{a, b}, U}. Suy ra min(E(R)) = {{c},{a, b}} Khi đó, tập các đại diện của họ min(E(R)) được tính như sau:
Cập nhật dữ liệu trên quan hệ
Các thao tác cơ bản trên các quan hệ được chia thành hai loại: phép toán cập nhật và phép toán tìm kiếm thông tin Phép toán cập nhật tạo ra quan hệ mới chính xác, trong khi phép toán tìm kiếm thông tin phục vụ việc lấy dữ liệu theo yêu cầu Mục này tập trung vào các phép toán cập nhật dữ liệu, những thao tác này có thể làm thay đổi cơ sở dữ liệu và có khả năng vi phạm một số ràng buộc trên lược đồ cơ sở dữ liệu.
Có ba phép toán cập nhật dữ liệu cơ bản: thêm, xóa và sửa đổi Phép toán thêm bộ cho phép thêm một hoặc nhiều bộ mới vào quan hệ, trong khi phép toán xóa bộ được sử dụng để loại bỏ các bộ trong quan hệ Phép toán sửa đổi bộ giúp thay đổi giá trị của một số thuộc tính trong các bộ Khi thực hiện các phép toán này, có thể xảy ra vi phạm một số ràng buộc trên lược đồ cơ sở dữ liệu, và sự vi phạm này sẽ được giải quyết tùy theo từng phép toán.
Khi thực hiện phép toán thêm bộ, nếu vi phạm một hoặc nhiều ràng buộc, phép toán sẽ bị loại bỏ Hệ quản trị cơ sở dữ liệu sẽ thông báo cho người sử dụng lý do vi phạm Ngoài ra, hệ thống có thể yêu cầu người sử dụng khắc phục lỗi và chấp nhận phép toán nếu họ thực hiện đúng yêu cầu.
Khi thực hiện phép toán xóa bộ trong cơ sở dữ liệu, sự vi phạm xảy ra khi có ràng buộc tham chiếu từ khóa ngoại đến các bộ khác Có ba phương pháp xử lý cho tình huống này: đầu tiên là loại bỏ phép toán xóa, thứ hai là xóa lan truyền các bộ tham chiếu, và cuối cùng là thay đổi giá trị của các thuộc tính tham chiếu gây ra vi phạm Các giá trị này có thể được đặt lại thành null hoặc một giá trị hợp lệ khác, tuy nhiên, nếu thuộc tính tham chiếu là một phần của khóa chính, thì không thể đặt lại thành null để đảm bảo ràng buộc toàn vẹn thực thể.
Khi sửa đổi bộ dữ liệu, việc thay đổi các thuộc tính không phải khóa chính và không phải khóa ngoài thường không vi phạm các ràng buộc toàn vẹn, chỉ cần kiểm tra tính hợp lệ của các giá trị mới Ngược lại, nếu khóa chính bị thay đổi, điều này tương đương với việc xóa một bộ và thêm một bộ mới Đối với khóa ngoài, nếu giá trị bị thay đổi và không còn là null, hệ quản trị CSDL cần đảm bảo rằng giá trị mới tham chiếu đến một bộ dữ liệu có sẵn trong quan hệ được tham chiếu.
Đại số quan hệ
Đại số quan hệ là tập hợp các phép toán đại số được sử dụng để tạo ra các quan hệ mới, đáp ứng yêu cầu của người sử dụng trong việc xử lý thông tin Đây được xem là "ngôn ngữ cơ sở" quan trọng trong ngôn ngữ bậc cao để thao tác trên các quan hệ Các phép toán cơ bản của đại số quan hệ được chia thành hai nhóm: nhóm đầu tiên bao gồm các phép toán tập hợp như hợp, giao, hiệu, tích Descartes và chia, trong khi nhóm thứ hai gồm các phép toán đặc biệt như chọn, chiếu và kết nối Những phép toán đặc biệt này giúp biểu diễn truy vấn trong ngôn ngữ đại số quan hệ và thực hiện các thao tác cơ bản như thêm, xóa, và sửa đổi các bộ giá trị của một quan hệ.
2.2.6.1 Phép hợp, giao và hiệu
Cho hai quan hệ tương thích R1, R2 thuộc Rel(U) Hợp của R1 và R2, ký hiệu R1 ∪ R2, là một quan hệ trên U bao gồm các bộ từ cả hai quan hệ thành phần R1 và R2 Giao của R1 và R2, ký hiệu R1 ∩ R2, là một quan hệ trên U bao gồm các bộ xuất hiện đồng thời trong cả hai quan hệ thành phần.
R 1 và R 2 Hiệu của R 1 và R 2 , ký hiệu R 1 \R 2 , là một quan hệ trên U gồm các bộ của quan hệ R 1 không có trong R 2
Ví dụ 2.6 Xét hai quan hệ tương thích trên tập thuộc tínhU ={a, b, c} như sau:
Phép hợp và giao của hai quan hệ có tính giao hoán, trong khi phép hiệu không có tính chất này Hai phép toán hợp và giao còn có tính kết hợp khi áp dụng cho nhiều quan hệ Phép giao phân phối đối với phép hợp Các tính chất này sẽ được chứng minh qua bài tập ở cuối chương, và một số nhận xét về các tính chất khác cũng được chuyển thành bài tập để gọn nhẹ giáo trình.
2.2.6.2 Tích Descartes và phép chia
Ngoài ba phép toán hợp, giao và hiệu trong các quan hệ tương thích, còn có hai phép toán quan trọng khác là tích Descartes và chia, thuộc nhóm các phép toán tập hợp của đại số quan hệ Bài viết này sẽ giới thiệu phép toán dán bộ với hai quan hệ cụ thể.
R 1 ∈ Rel(U 1 ) và R 2 ∈ Rel(U 2 ) Phép dán bộ của hai bộ t 1 ∈ R 1 và t 2 ∈ R 2 , ký hiệu t 1 ⋆ t 2 , là một bộ t trên U 1 ∪U 2 sao cho t(U 1 ) = t 1 và t(U 2 ) =t 2
Bây giờ, giả sử U 1 ∩U 2 = ∅ Khi đó, tích Descartes của R 1 và R 2 , ký hiệu R 1 ×R 2, là một quan hệ trên tập thuộc tính U 1 ∪U 2 gồm các bộ t 1 ⋆ t 2 sao cho t 1 ∈R 1 và t 2 ∈R 2
Như vậy, thực chất phép tích Descartes của hai quan hệ là phép dỏn bộ của hai quan hệ đú với số bộ của quan hệ R 1 ìR 2 là |U 1 | ã |U 2 |.
Ví dụ 2.7 Xét hai quan hệR 1 ∈Rel(U 1 = {a, b, c}) vàR 2 ∈Rel(U 2 {d, e}) như sau:
0 2 3 1 1Bây giờ, giả sử tiếp R 2 ̸= ∅ và U 2 ⊆ U 1 Khi đó chia R 1 cho R 2
(hay thương của R 1 và R 2 ), ký hiệu R 1 : R 2 , là một quan hệ trên tập thuộc tính U 1 \U 2 gồm các bộ t(U 1 \U 2 ) sao cho t ∈ R 1 và với mọi t 2 ∈R 2 thì t(U 1 \U 2 )⋆ t 2 ∈R 1
Ví dụ 2.8 Xét hai quan hệ R 1 ∈ Rel(U 1 = {a, b}) và R 2 ∈ Rel(U 2 {b}) như sau:
2.2.6.3 Phép chọn, chiếu và kết nối
Một cách tiếp cận khác để biểu diễn câu hỏi trong ngôn ngữ đại số quan hệ là thông qua các phép toán chọn, chiếu và kết nối, liên quan đến các thao tác cơ bản như thêm, xóa và sửa đổi các bộ giá trị Xét quan hệ R ∈Rel(U), giả sử F là một biểu thức logic, thì phép chọn (hay lọc) của R theo điều kiện F, ký hiệu σ F (R), tạo thành một quan hệ trên U bao gồm các bộ của R thỏa mãn điều kiện F.
Một cách hình thức σ F (R) ={t∈ R :F(t) đúng}.
Như vậy, phép chọn được dùng để xây dựng một tập con các bộ của quan hệ đã cho thoả mãn một điều kiện xác định Biểu thức logic
Biểu thức logic F, hay còn gọi là biểu thức chọn hay biểu thức lọc, là một tổ hợp Boole (∧, ∨, ơ) của các toán hạng Mỗi toán hạng trong F là một phép so sánh đơn giản giữa hai biến (thuộc tính) hoặc giữa một biến và một hằng Biểu thức logic F sẽ trả về giá trị đúng hoặc sai cho mỗi bộ đã kiểm tra, với các phép so sánh bao gồm >, ≥, ).
Các thành phần tùy chọn trong câu lệnh được biểu thị bằng cặp dấu ngoặc vuông ([ ]), cho phép người dùng quyết định xem chúng có cần thiết hay không.
INSERT INTO [, , …]
VALUES (, , …)
• Việc lựa chọn một trong các khả năng được thể hiện bằng dấu gạch đứng (|).
• Thành phần bắt buộc phải chọn trong danh sách được viết bằng cặp dấu móc ({}).
Các lệnh SQL có thể được viết trên nhiều dòng và kết thúc bằng dấu chấm phẩy (;), nhưng mỗi từ khóa, tên hàm, tên thuộc tính và tên bảng phải nằm trọn vẹn trong một dòng Từ khóa, tên hàm, tên thuộc tính và tên bảng viết bằng chữ in hoa hay in thường đều được coi là như nhau Ví dụ trong chương này sử dụng CSDL được xét ở mục 2.2.8 để minh họa cho các câu lệnh SQL.
M anv Hoten N gaysinh Gioitinh M adv Luong
P3 Tổ chức hành chính 3 P4 Nghiên cứu và phát triển 7
P1 20 Trần Hưng Đạo P2 10 Nguyễn Huệ P3 18 Trần Hưng Đạo
D2 Phần mềm B Ngân hàng Vietcombank P1
D3 Phần mềm C Trường PTTH Nguyễn Huệ P4