Mô hình dữ liệu quan hệ

Một phần của tài liệu Hệ chuyên gia và cơ sở dữ liệu trong bộ nhớ tri thức (LV01000) (Trang 34 - 37)

6. Phương pháp nghiên cứu

1.3.4.Mô hình dữ liệu quan hệ

1.3.4.1. Thuộc tính

Thuộc tính là một tính chất riêng biệt của một đối tượng cần được lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng.

Ví dụ:

• Đối tượng LOP_HOC có các thuộc tính mã lớp, tên lớp, khóa, số học viên. • Đối tượng SINH_VIEN có các thuộc tính mã sinh viên, họ tên, ngày sinh, quê quán.

Các thuộc tính được đặc trưng bởi một tên thuộc tính, kiểu giá trị và miền giá trị. Trong các ứng dụng thực tế, người phân tích – thiết kế thường đặt tên thuộc tính một cách gợi nhớ, tuy nhiên không nên đặt tên quá dài (vì làm cho việc viết câu lệnh truy vấn vất vả hơn) nhưng cũng không nên quá ngắn (vì không thể hiện được ngữ nghĩa một cách rõ ràng).

Ví dụ: nếu có hai đối tượng HỌC_VIEN và GIAO_VIEN đều có thuộc tính tên thì nên đặt tên một cách rõ ràng là Tên_học_viên và Tên_giáo _viên vì chúng mang ngữ nghĩa hoàn toàn khác nhau. Mỗi một thuộc tính đều phải thuộc một kiểu dữ liệu. Kiểu dữ liệu có thể là vô hướng- là các kiểu dữ liệu cơ bản như chuỗi, số, logic, ngày tháng… hoặc các kiểu có cấu trúc được định nghĩa dựa trên các kiểu dữ liệu đã có sẵn. Mỗi hệ quản trị CSDL có thể gọi tên các kiểu dữ liệu nói trên bằng các tên gọi khác nhau, ngoài ra còn bổ sung thêm một số kiểu dữ liệu riêng của mình. Ví dụ, Microsoft Access

1.3.4.2. Bộ

Một bộ giá trị là các thông tin của một đối tượng thuộc quan hệ. Bộ giá trị cũng thường được gọi là một mẫu tin hay bản ghi, dòng của bảng. Một bộ q là một vecto gồm n thành phần thuộc tập hợp con của tích đề các miền giá trị của các thuộc tính và thỏa mãn tân từ đã cho của quan hệ.

27

q1 = (SV001, Trần Văn Mạnh, 10/10/1980, Lâm Đồng, CTK27)

q2 = (SV002, Nguyễn Thị Hoa Huệ, 25/11/1985, Khánh Hòa, MTK27) q3= (SV003, Tăng Thanh Hà, 11/11/1982, Tp. Hồ Chí Minh, NVK27)

Để lấy thành phần Ai – là giá trị thuộc tính Ai của một bộ giá trị q, ký hiệu q.Ai. Đây được gọi là phép chiếu một bộ lên thuộc tính Ai

Ví dụ:

q1.Tên_sinh_viên = “Trần Văn Mạnh” q2.Khoa= “MTK27”

1.3.4.3. Lược đồ quan hệ

Định nghĩa 1.6: Cho U = {A1, A2, ..., An} là một tập hữu hạn không rỗng các thuộc tính. Mỗi thuộc tính Ai (i = 1,2, ..., n) có miền giá trị là

i

A

D . Khi đó, r là một tập các bộ {h1, h2, ..., hm} được gọi là quan hệ trên R với hj (j=1, 2, ..., m) là một hàm:

hj = U →

i

A

D , Ai∈U | hj (Ai) ∈ DAi

Ta có thể xem một quan hệ như một bảng mà trong đó mỗi hàng (phần tử) là một bộ và mỗi cột tương ứng với một thuộc tính. Biểu diễn quan hệ r thành bảng như sau: A1 A2 ... An h1 h1(A1) h1(A2) ... h1(An) h2 h2(A1) h2(A2) ... h2(An) ... ... ... ... ... hm hm(A1) hm(A2) ... hm(An) Bảng 1.3. Ví dụ về quan hệ r

Tập tất cả các thuộc tính cần quản lý của một đối tượng cùng với mối quan hệ giữa chúng được gọi là lược đồ quan hệ. Lược đồ quan hệ R với tập thuộc tính U = {A1, A2, ..., An} được viết là R(A1, A2, ..., An) hoặc R(U).

28

Khi đó, một quan hệ r sẽ được xác định trên lược đồ R(U). Miền giá trị của quan hệ r là tập tất cả các bộ của quan hệ được xác định trong lược đồ quan hệ R(U).

1.3.4.4. Khóa

Tính toàn vẹn dữ liệu trong cơ sở dữ liệu quan hệ dựa trên khái niệm khóa. Có ba loại khóa trong cơ sở dữ liệu quan hệ là: khóa chấp nhận được, khóa chính và khóa ngoài.

Khóa chấp nhận được là một thuộc tính hay tập các thuộc tính dùng để định tên duy nhất các bộ trong quan hệ. Chẳng hạn mã số nhân viên là khóa của bảng nhân viên. Đôi khi nhiều thuộc tính kết hợp lại để làm khóa. Chẳng hạn, tên nhân viên kết hợp với ngày sinh... được sử dụng làm khóa phân biệt duy nhất.

Khóa sơ cấp (hay khóa chính) là dạng đặc biệt của khóa chấp nhận được. Trong bảng quan hệ có thể có nhiều khóa và cần phải đưa ra một trong các khóa đó làm khóa chính. Việc chỉ định khóa chấp nhận được nào làm khóa chính sẽ ngầm dịnh gán cho thuộc tính khóa đó một số yêu cầu cụ thể. Một bảng có thể có nhiều khóa, nhưng chỉ có một khóa chính. Khi bảng quan hệ chỉ có một khóa thì lấy nó làm khóa chính. (adsbygoogle = window.adsbygoogle || []).push({});

Định nghĩa 1.7:

Khóa chính hay khóa sơ cấp của quan hệ là một thuộc tính hay tập các thuộc tính cho phép xác định duy nhất mỗi một dòng của bảng quan hệ

Định nghĩa 1.8:

Khóa kép là khóa sơ cấp có hai hay nhiều thuộc tính.

Khóa ngoài là thuộc tính hay tập các thuộc tính từ một hay nhiều bảng và là khóa chính của một trong số các bảng này. Chẳng hạn, mã số nhân viên có trong bản năng lực và bảng nhân viên. Thuộc tính này là khóa chính của bảng nhân viên và vì vậy trong bảng năng lực nó sẽ là khóa ngoài. Các khóa

29

ngoài rất quan trọng đối với cơ sở dữ liệu quan hệ. Chúng có ý nghĩa thể hiện dữ liệu bảng này liên kết với dữ liệu bảng khác.

Định nghĩa 1.9:

Khóa ngoài là một thuộc tính trong một quan hệ của cơ sở dữ liệu được

dùng làm khóa chính của quan hệ khác trong cùng cơ sở dữ liệu đó.

1.3.4.5. Phụ thuộc hàm

Phụ thuộc hàm có tầm quan trọng đối với người quản trị cơ sở dữ liệu trong việc thiết kế và cài đặt các mô hình cơ sở dữ liệu quan hệ. Cơ sở lý thuyết về chuẩn hoá dữ liệu dựa trên các khái niệm phụ thuộc hàm và khoá của quan hệ. Phụ thuộc hàm là khái niệm được xây dựng để mô tả các ràng buộc trong cơ sở dữ liệu. Ví dụ, mã mặt hàng xác định số lượng, đơn giá, ngày nhập kho... của một mặt hàng. Nói cách khác, mỗi một giá trị của thuộc tính mã mặt hàng xác định duy nhất giá trị của thuộc tính số lượng, đơn giá ... của mặt hàng. Ràng buộc này sẽ từ chối khi chèn thêm thông tin về một mặt hàng mới mà chưa được xác định mã mặt hàng nhằm đảm bảo không gây ra mâu thuẫn cũng như vấn đề không nhất quán trong tổ chức lưu trữ dữ liệu.

Có 2 loại phụ thuộc hàm:

1. Ràng buộc giải tích: Giữa một số thuộc tính có sự ràng buộc bằng các biểu thức toán học.

2. Ràng buộc logic: Các mối quan hệ giữa các thuộc tính với nhau, nhưng không phải là các ràng buộc giải tích.

Một phần của tài liệu Hệ chuyên gia và cơ sở dữ liệu trong bộ nhớ tri thức (LV01000) (Trang 34 - 37)