Ban chỉ ĐẠo công nghệ thông tin của cơ quan đẢng giáo trình thiết kế, XÂy dựng và quản trị CƠ SỞ DỮ liệu hà NỘI, 2004



tải về 1.04 Mb.
trang10/29
Chuyển đổi dữ liệu07.07.2016
Kích1.04 Mb.
#87
1   ...   6   7   8   9   10   11   12   13   ...   29

2.Các đặc trưng của các quan hệ


a) 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ứ i, …, bản ghi thứ n. Một cách tương tự, khi ta biểu diễn một quan hệ như là một bảng, các hàng được hiển thị theo một thứ tự nhất định.

Thứ tự các bộ không phải là một phần của định nghĩa quan hệ bởi vì một quan hệ cố gắng biểu diễn các sự vật ở mức trừu tượng hoặc lôgic. Có thể có nhiều thứ tự lô gic trên một quan hệ. Ví dụ, các bộ giá trị trong quan hệ SINHVIÊN ở hình 3.1 có thể sắp xếp theo nhiều cách khác nhau: theo thứ tự logic của Họtên, theo thứ tự logic của Mã số, …. Định nghĩa quan hệ không chỉ ra thứ tự lôgic nào cả, vì vậy không có thứ tự logic nào hơn thứ tự lôgic khác. Các quan hệ chứa cùng một số hàng như nhau nhưng các hàng được sắp xếp khác nhau được xem như đồng nhất với nhau. Khi một quan hệ được cài đặt như một tệp, một thứ tự vật lý có thể được chỉ ra trên các bản ghi của tệp.



b) 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 gữ đượ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 = {t1, t2, …. tm}là một tập hợp hữu hạn các ánh xạ từ R vào D, trong đó D = dom(A1)  dom(A2)  ….. dom(An). Trong định nghĩa này, với mỗi ánh xạ t trong r, t[Ai] phải ở trong dom(Ai) với 1<= i <= n. Mỗi ánh xạ ti được gọi là một bộ.

Theo định nghĩ này, một bộ có thể xem như một tập hợp các cặp (, ), trong đó mỗi cặp cho một giá trị của ánh xạ từ một thuộc tính Ai đến một giá trị vi của dom(Ai). Vì tên thuộc tính xuất hiện cùng với giá trị của nó nên thứ tự của các thuộc tính là không quan trọng. Điều này làm nên ý nghĩa ở mực trừu tượng hoặc logic vì chẳng có lý do gì để thích có một giá trị thuộc tính xuất hiện trước một giá trị thuộc tính khác trong một bộ.

Khi một quan hệ được cài đặt như một tệp, các thuộc tính được sắp xếp một cách vật lý như là các trường trong một bản ghi. Trong trường hợp đó chúng ta sẽ sử dụng định nghĩa thứ nhất của quan hệ, trong đó các giá trị của các thuộc tính trong một bộ là có thứ tự vì nó làm đơn giản rất nhiều khái niệm. Tuy nhiên, định nghĩa thứ hai là tổng quát hơn.



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ó.

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ện thoaị ở 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ệnthoaịở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 sinh 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ệ.


II. CÁC RÀNG BUỘC QUAN HỆ, LƯỢC ĐỒ CSDL QUAN HỆ


Trong phần này chúng ta thảo luận về các hạn chế trên các dữ liệu trong một lược đồ cơ sở dữ liệu quan hệ. Các hạn chế đó được gọi là các ràng buộc. Có các loại ràng buộc : ràng buộc miền, ràng buộc khoá, ràng buộc toàn vẹn thực thể và ràng buộc toàn vẹn quy chiếu.

1.Các ràng buộc miền


Các ràng buộc miền chỉ ra rằng giá trị của mỗi thuộc tính A phải là một giá trị nguyên tử thuộc miền giá trị dom(A). Các kiểu dữ liệu liên kết với các miền bao gồm: các kiểu dữ liệu số chuẩn cho các số nguyên (short integer, integer, long integer), các số thực (float, double precision float). Ngoài ra còn các kiểu dữ liệu ký tự (dãy ký tự với độ dài cố định, dãy ký tự với độ dài thay đổi), ngày, thời gian và tiền tệ. Các loại miền khác có thể là các miền con của một kiểu dữ liệu hoặc một kiểu dữ liệu đếm được trong đó mọi giá trị có thể được liệt kê rõ ràng

2. Ràng buộc khoá và ràng buộc trên các giá trị rỗng (null)


Một quan hệ được định nghĩa như một tập hợp các bộ. Theo định nghĩa, các phần tử của một tập hợp là khác nhau, vì vậy, mọi bộ trong quan hệ phải khác nhau. Điều đó có nghĩa là không có hai bộ có cùng một tổ hợp giá trị cho tất cả các thuộc tính của chúng. Thông thường, có tồn tại các tập con của các thuộc tính của một lược đồ quan hệ có tính chất là không có hai bộ nào ở trong mọi trạng thái quan hệ r của R có cùng một tổ hợp giá trị cho các thuộc tính của nó. Giả sử chúng ta ký hiệu một tập con như vậy là SK; khi đó với hai bộ khác nhau bất kỳ t1 và t2 trong một trạng thái quan hệ r của R chúng ta có ràng buộc là t1[SK]  t2[SK].

Tập hợp thuộc tính SK như vậy được gọi là một siêu khoá của lược đồ quan hệ R. Một siêu khoá SK xác định rõ một ràng buộc về tính duy nhất, phát biểu rằng không có hai bộ khác nhau trong một trạng thái r của R có cùng một giá trị cho SK. Mỗi quan hệ có it nhất là một siêu khoá mặc định, đó là tập hợp tất cả các thuộc tính của nó. Một khoá K của một lược đồ quan hệ R là một siêu khoá của R với tính chất là nếu bỏ đi bất kỳ thuộc tính A nào ra khỏi K thì sẽ còn lại một tập K’ không phải là siêu khoá của R. Như vậy, một khoá là một siêu khoá tối thiểu, nghĩa là đó là một siêu khoá mà ta không thể vứt bỏ thuộc tính nào ra khỏi nó mà vẫn giữ được ràng buộc về tính duy nhất.

Ví dụ, xét quan hệ SINHVIÊN với các thuộc tính Mãsố, Họtên, Ngàysinh, Giớitính, Địachỉ. Tập thuộc tính {Mãsố} là một khoá của SINHVIÊN bởi vì không có hai bộ sinh viên có cùng một giá trị cho Mãsố. Mọi tập hợp thuộc tính có chứa Mãsố, ví dụ { Mãsố, Họtên, Ngàysinh}, đều là một siêu khoá. Tuy nhiên, siêu khoá { Mãsố, Họtên, Ngàysinh} không phải là khoá bởi vì nếu bỏ đi thuộc tính Họtên hoặc Ngàysinh hoặc cả hai thì nó vẫn còn là một siêu khoá.

Giá trị của một thuộc tính khoá có thể được sử dụng để xác định một cách duy nhất mỗi bộ trong một quan hệ. Ví dụ, giá trị SV305 của Mãsố xác định một cách duy nhất bộ giá trị tương ứng với sinh viên Lê Nam trong quan hệ sinhviên. Chú ý rằng một tập hợp thuộc tính tạo nên một khoá là một tính chất của lược đồ quan hệ. Điều ràng buộc là tính chất đó phải thoả mãn trên mọi trạng thái của lược đồ. Một khoá được xác định từ ý nghĩa của các thuộc tính và tính chất là bất biến ; tính chất đó phải thỏa mãn khi chúng ta chèn thêm các bộ mới vào quan hệ. Ví dụ, ta không thể và không được chỉ định thuôc tính Họtên của quan hệ SINHVIÊN là khoá bởi vì không có gì đảm bảo rằng không tồn tại hai sinh viên có cùng họ tên.

Nói chung, một lược đồ quan hệ có thể có nhiều hơn một khoá. Trong trường hợp đó, mỗi một khoá được gọi là một khoá dự tuyển. Thông thường ta phải chỉ định một trong các khoá dự tuyển làm khoá chính của quan hệ. Khoá chính là một khoá dự tuyển mà các giá trị của chúng được dùng để xác định các bộ trong quan hệ. Ta quy ước rằng, các thuộc tính tạo nên khoá chính của một lược đồ quan hệ được gạch dưới. Ví dụ:

Sinhviên(Mãsố, Họtên, Ngàysinh, Giớitính, Địachỉ).

Chú ý rằng khi một lược đồ quan hệ có nhiều khoá dự tuyển, việc lựa chọn một khoá dự tuyển để làm khoá chính là tuỳ ý; tuy nhiên tốt nhất là chọn khoá chính gồm một thuộc tính hoặc có số các thuộc tính it nhất.

Một ràng buộc khác trên các thuộc tính chỉ rõ khi nào thì cho phép các giá trị null. Những thuộc tính luôn luôn phải có một giá trị xác định và hợp lệ thì bị ràng buộc là not null.




tải về 1.04 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   6   7   8   9   10   11   12   13   ...   29




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương