Quan hệ (relation)

Một phần của tài liệu Đề Cương Cơ Sở Dữ Liệu SQL Sever (Trang 34 - 37)

3. MÔ HÌNH QUAN HỆ CHUYỂN MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ

3.1.3.Quan hệ (relation)

Sự thể hiện của lƣợc đồ quan hệ ở một thời điểm nào đó đƣợc gọi là quan hệ, rõ ràng là trên một lƣợc đồ quan hệ có thể xác định nhiều quan hệ. Thƣờng ta dùng các ký hiệu nhƣ R,S,Q để chỉ các lƣợc đồ quan hệ, còn quan hệ thƣờng đƣợc dùng bởi các ký hiệu là r, s,q,…

Về trực quan thì quan hệ (hay bảng quan hệ) nhƣ là một bảng hai chiều gồm các dòng và các cột.

Một quan hệ có n thuộc tính đƣợc gọi là quan hệ n ngôi.

Để chỉ quan hệ r xác định trên lƣợc đồ quan hệ Q ta có thể viết r(Q).

Ví dụ:

SINHVIÊN Họtên Mã số Ngàysinh Giớitính Địachỉ Lê Vân 4514202 12/09/84 Nữ Hà nội Hoàng Tùng 4516802 21/03/84 Nam Bắc ninh Trƣơng Định 4620503 14/05/85 Nam Hà nam Phạm An 4611203 16/04/85 Nam Nam định Đỗ Cung 4521402 20/01/84 Nam Nghệ an

3.1.4.Bộ (tuple)

Mỗi bộ là những thông tin về một đối tƣợng thuộc một quan hệ, bộ cũng còn đƣợc gọi là mẫu tin.

Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t,,…) để biểu diễn bộ trong quan hệ, chẳng hạn để nói t là một bộ của quan hệ r thì ta viết t  r.

3.1.5.Siêu khóa - khóa (super key - key)

S là siêu khoá (super key) của Q nếu với r là quan hệ bất kỳ trên Q, t1, t2 là hai bộ bất kỳ thuộc r thì t1.S  t2.S.

Một lƣợc đồ quan hệ có thể có một hoặc nhiều siêu khoá.

Chẳng hạn lƣợc đồ quan hệ Sinhvien ở trên có các siêu khoá là: {MASV,HOTENSV}, {MASV,HOTENSV,TINH },…

Siêu khoá không chứa một siêu khoá nào khác đƣợc gọi là khoá chỉ định,

trong trƣờng hợp lƣợc đồ quan hệ có nhiều khoá chỉ định (hay khoá nội), thì khoá đƣợc chọn để cài đặt gọi là khoá chính (trong các phần sau khoá chính đƣợc gọi tắt là

khoá). Chẳng hạn với lƣợc đồ quan hệ Sinhvien trên có khoá là {MASV}. Thƣờng các thuộc tính khoá đƣợc gạch dƣới theo kiểu liền nét.

Một thuộc tính đƣợc gọi là thuộc tính khoá ngoại nếu nó không là thuộc tính khoá của một lƣợc đồ quan hệ này nhƣng lại là thuộc tính khoá của một lƣợc đồ quan hệ khác, chẳng hạn nhƣ MALOP là khoá ngoại của lƣợc đồ quan hệ Sinhvien. Thƣờng các thuộc tính khoá ngoại đƣợc gạch dƣới theo kiểu không liền nét.

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP) Lop(MALOP, TENLOP, MAKHOA)

Ý nghĩa thực tế của khoá là dùng để nhận diện một bộ trong một quan hệ, nghĩa là, khi cần tìm một bộ t nào đó, ta chỉ cần biết giá trị của thành phần khoá của t là đủ để dò tìm và hoàn toàn xác định đƣợc nó trong quan hệ.

Trong thực tế đối với các loại thực thể tồn tại khách quan (ví dụ: Sinh viên, Giảng viên, Nhân viên, Hàng hoá,…) ngƣời thiết kế cơ sở dữ liệu thƣờng gán thêm cho các lƣợc đồ quan hệ này một thuộc tính giả gọi là mã số để làm khoá (ví dụ: mã số sinh viên, mã số giảng viên, mã số nhân viên, mã số hàng hoá,…). Trong khi đó các lƣợc đồ quan hệ biểu diễn cho sự trừu tƣợng hoá thƣờng có khoá là một tổ hợp của hai hay nhiều thuộc tính của nó.

Một số hệ quản trị cơ sở dữ liệu hiện nay có tự động kiểm tra tính duy nhất trên khoá chính. Tức là nếu thêm một bộ mới q2 có giá trị khoá chính trùng với giá trị khoá chính của một bộ q1 nào đó đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại một giá trị khác.

Người ta cũng quy ước rằng:

-Không đƣợc phép sửa đổi giá trị thuộc tính khoá của một bộ q. Nếu muốn sửa đổi giá trị thuộc tính khoá của một bộ q, ngƣời sử dụng phải huỷ bỏ bộ q và sau đó thêm một bộ q‟ với giá trị khoá đã đƣợc sửa đổi.

b) Các đặc trƣng của các quan hệ

+ Thứ tự của các bộ trong một quan hệ

Một quan hệ đƣợc định nghĩa nhƣ một tập hợp các bộ. Các phần tử trong một tập hợp không có thứ tự, vì vậy các bộ trong một quan hệ không có một thứ tự cụ thể. Tuy nhiên, trong một tệp, các bản ghi đƣợc lƣu trữ một cách vật lý trên đĩa vì vậy luôn có một thứ tự giữa các bản ghi. Thứ tự này chỉ rõ bản ghi thứ nhất, bản ghi thứ hai, …, bản ghi thứ n.

+ Thứ tự của các giá trị bên trong một bộ

Theo định nghĩa quan hệ ở trên, một n-bộ là một danh sách có thứ tự của n giá trị. Nhƣ vậy thứ tự của các giá trị trong một bộ là quan trọng, từ đó suy ra thứ tự của các thuộc tính trong một lƣợc đồ quan hệ cũng quan trọng. Tuy nhiên, ở mức lôgic, thứ tự của các thuộc tính và các giá trị của nó là không thực sự quan trọng khi giữ đƣợc sự tƣơng ứng giữa các thuộc tính và các giá trị.

Có thể đƣa ra một định nghĩa khác về quan hệ, định nghĩa này sẽ làm cho thứ tự của các giá trị trong một bộ là không cần thiết. Theo định nghĩa này, một lƣợc đồ quan hệ R = {A1, A2,…,An} là một tập hợp các thuộc tính và một quan hệ r(R) là một tập hợp hữu hạn các ánh xạ r = {t1, t2, …., tm}, trong đó mỗi ti là một ánh xạ từ R vào D, trong đó D = dom(A1)dom(A2) …dom(An). Trong định nghĩa này, t[Ai] phải ở trong dom(Ai) với 1<= i <= n với mỗi ánh xạ ti trong r. Mỗi ánh xạ ti đƣợc gọi là một bộ.

+ Các giá trị trong một bộ

Mỗi giá trị trong một bộ là một giá trị nguyên tử, điều đó có nghĩa là nó không phân chia đƣợc thành các thành phần trong phạm vi của mô hình quan hệ. Nhƣ vậy, trong mô hình quan hệ không cho phép có các thuộc tính phức hợp và các thuộc tính đa trị. Các thuộc tính đa trị phải đƣợc biểu diễn bằng các quan hệ còn các thuộc tính phức hợp chỉ đƣợc biểu diễn bằng các thuộc tính thành phần đơn của nó. (adsbygoogle = window.adsbygoogle || []).push({});

Các giá trị của một vài thuộc tính trong một bộ cụ thể có thể không biết đƣợc hoặc không thích ứng cho nó. Trƣờng hợp đó, ngƣời ta sử dụng một giá trị đặc biệt gọi là giá trị null.Ví dụ, giả sử quan hệ SINHVIÊN có thuộc tính Sốđiệnthoạiởnhà.

Trong một tập thể sinh viên, có ngƣời có điện thoại ở nhà, có ngƣời không có và cũng có ngƣời có nhƣng không biết chắc. Với những trƣờng hợp không có hoặc không biết chắc, thuộc tính Sốđiệnthoạiởnhà có giá trị null.

+ Thể hiện của một quan hệ

Một lƣợc đồ quan hệ có thể đƣợc thể hiện nhƣ là một tuyên bố hoặc một khẳng định. Ví dụ lƣợc đồ quan hệ SINHVIÊN ở trên khẳng định rằng, nói chung, một thực thể sinh viên có một mã số, họ tên, ngày sinh, giới tính, địa chỉ. Mỗi bộ trong quan hệ đƣợc thể hiện nhƣ là một sự kiện hoặc nhƣ một thể hiện cụ thể của một khẳng định. Ngoài các quan hệ biểu diễn các sự kiện về các thực thể, một số quan hệ có thể biểu diễn các sự kiện về mối liên kết. Ví dụ, lƣợc đồ quan hệ NHÂNVIÊN_DỰÁN(MãsốNV, MãsốDA, Sốgiờ) khẳng định các nhân viên làm việc với các dự án. Mỗi bộ trong quan hệ này liên kết một nhân viên với một dự án mà anh ta làm việc cho nó.

Nhƣ vậy, mô hình quan hệ biểu diễn các sự kiện về thực thể và các sự kiện về liên kết dƣới dạng duy nhất là các quan hệ.

Một phần của tài liệu Đề Cương Cơ Sở Dữ Liệu SQL Sever (Trang 34 - 37)