CHƯƠNG 3: GIỚI THIỆU VỀ MÔ HÌNH QUAN HỆ

29 0 0
Tài liệu đã được kiểm tra trùng lặp
CHƯƠNG 3: GIỚI THIỆU VỀ MÔ HÌNH QUAN HỆ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Khái niệm cơ bản Mô hình quan hệ cho đến nay là mô hình được sử dụng rộng rãi nhất để thiết kế cơ sở dữ liệu. Mô hình thành công ở chỗ nó được xây dựng vững chắc trên các nguyên tắc toán học (lý thuyết tập hợp và tuyến tính đại số), đã được thử nghiệm và chứng minh; Giống như các nguyên tắc cơ bản, bản thân mô hình đã được thử nghiệm và chứng minh qua nhiều năm. Trước khi tiếp tục, có một số khái niệm cơ bản cần được giới thiệu và làm rõ. Những khái niệm này được tóm tắt trong Bảng 3.1. Hãy dành chút thời gian để xem lại chúng; bạn phải cảm thấy thoải mái với những khái niệm này vì chúng tạo thành nền tảng cho mô hình quan hệ được xây dựng.

Trang 1

CHƯƠNG 3: GIỚI THIỆU VỀ MÔ HÌNH QUAN HỆ

3.1 Khái niệm cơ bản

Mô hình quan hệ cho đến nay là mô hình được sử dụng rộngrãi nhất để thiết kế cơ sở dữ liệu Mô hình thành công ở chỗ nóđược xây dựng vững chắc trên các nguyên tắc toán học (lý thuyếttập hợp và tuyến tính đại số), đã được thử nghiệm và chứng minh;Giống như các nguyên tắc cơ bản, bản thân mô hình đã được thửnghiệm và chứng minh qua nhiều năm.

Trước khi tiếp tục, có một số khái niệm cơ bản cần được giớithiệu và làm rõ Những khái niệm này được tóm tắt trong Bảng3.1 Hãy dành chút thời gian để xem lại chúng; bạn phải cảm thấythoải mái với những khái niệm này vì chúng tạo thành nền tảngcho mô hình quan hệ được xây dựng.

Khi bạn xem Bảng 3.1, xin lưu ý rằng nói đúng ra, các thuật

ngữ như entity (thực thể) và entity set (tập thực thể) không

được coi là một phần của mô hình quan hệ trong một số vòng kếtnối, nhưng chính xác hơn là thuộc về mô hình liên quan mô hình

thực thể-mối quan hệ (entity–relationship model), sẽ được thảo

luận sau

Trang 3

Bảng 3.2 cung cấp danh sách các thuật ngữ quan hệ thườngđược sử dụng và các thuật ngữ tương đương không chính thức củachúng Ví dụ, hàng đầu tiên của danh sách có thể được hiểu nhưsau: Một thực thể là một đối tượng được khái niệm hóa như mộtbảng quan hệ và được hiểu theo truyền thống là một tệp Cáchàng tiếp theo có thể được đọc theo cách tương tự.

Hình 3.1 minh họa cách áp dụng một số thuật ngữ trongBảng 3.1 Ba thực thể được thể hiện trong hình: Supplier lưu trữthông tin về các nhà cung cấp khác nhau để kinh doanh;

InventoryItem lưu trữ thông tin về các mặt hàng khác nhauđược sử dụng để tiến hành kinh doanh; và SupplierOfItems lưu

trữ một bảng kê các mặt hàng tồn kho do từng nhà cung cấp cungcấp Hãy coi đó như một quy luật chung, mặc dù dữ liệu được lưutrữ trong cả ba thực thể đều có liên quan với nhau, chúng khôngđược lưu trữ cùng nhau trong một thực thể; sau này, bạn sẽ họcđược lý do và cách thức đưa ra những quyết định tương tự Ngoài

ra, ý tưởng về entity và relation (quan hệ) có vẻ giống nhau.

Trên thực tế, hai khái niệm này giống nhau ở một mức độ nào đó,

Trang 4

nhưng cũng có một sự khác biệt nhỏ, điều này sẽ sớm được làmrõ

Hãy dành chút thời gian để xem xét cẩn thận những kháiniệm này Chúng là nền tảng cho mọi mối quan hệ cơ sở dữ liệu;bạn sẽ không thể thành thạo các hệ thống cơ sở dữ liệu nếukhông nắm vững chúng Nói ngắn gọn, cơ sở dữ liệu bao gồm các

entity được triển khai dưới dạng bảng quan hệ (relational table);

mỗi bảng được xác định bởi một tập hợp các thuộc tính; mỗi bảng

quan hệ cũng được đặc trưng bởi một khóa chính (primary key),

nhưng cũng có thể có các khóa thay thế/ứng viên cũng như cácchỉ mục để tạo điều kiện truy cập dữ liệu dễ dàng; và thông qua

(các) khóa ngoại (foreign key), một bảng quan hệ có thể được

kết nối với các bảng khác trong cơ sở dữ liệu.

Trang 5

3.2 Miền giá trị

Một miền giá trị là một tập hợp các giá trị vô hướng được đặttên từ đó các giá trị thuộc tính được rút ra Giá trị vô hướng là cácgiá trị được xác định trên các miền đơn lẻ và thường được coi là ở

Trang 6

định dạng điển hình của chúng Ví dụ: giá trị vô hướng cho tênthành phố sẽ là tên mà mọi người thường sử dụng để chỉ thànhphố đó (ví dụ: Boston, Philadelphia); tương tự, một giá trị vôhướng có thể chấp nhận được đối với số điện thoại của ai đó sẽ làtập hợp các chữ số được quay số hợp lệ khiến điện thoại của anhấy/cô ấy đổ chuông.

Mỗi thuộc tính của một quan hệ phải được xác định trên mộtmiền cơ bản Các giá trị thuộc tính phải đến từ miền cơ bản (nhưminh họa trong Hình 3.1).

Miền mang tính khái niệm; chúng có thể không (và thường làkhông) thực sự được lưu trữ trong cơ sở dữ liệu Đúng hơn là cáctập con của miền chứa các giá trị thuộc tính thực tế sẽ được lưutrữ Miền tương tự như các kiểu dữ liệu trong các ngôn ngữ lậptrình cấp cao như C++, Java, Python, v.v.

Miền tổng hợp (composite domain) là sự kết hợp của cácmiền đơn giản Liệu một miền tổng hợp có được sử dụng haykhông hoặc được thay thế bằng các miền đơn giản cấu thành củanó, là một quyết định thiết kế cần xem xét Ngày là một minh họatuyệt vời về miền tổng hợp, như được giải thích trong Ví dụ 3.1 Từví dụ, miền Date này có tổng cộng 12 * 31 * 10.000 giá trị có thể,nhưng không phải tất cả các giá trị đều là ngày hợp lệ.

Trang 7

Do đó có thể có các thuộc tính tổng hợp dựa trên các miềntổng hợp Miền tổng hợp tương tự như các bản ghi Pascal và cấutrúc C++ Tuy nhiên, chúng không xuất hiện thường xuyên nhưcác miền đơn giản.

Tầm quan trọng của các miền: Sự hiểu biết về các miền làrất quan trọng vì lý do sau: Nếu các thuộc tính của các mối quanhệ (thực thể) khác nhau đến từ cùng một miền (hoặc một miềnliên quan), thì có thể thực hiện so sánh; nếu không thì sự so sánhlà vô nghĩa Ví dụ 3.2 minh họa điều này: Hãy tham khảo lược đồcơ sở dữ liệu mẫu của Hình 3.1 và suy nghĩ về cách chúng ta cóthể truy xuất thông tin từ các mối quan hệ InventoryItem vàSupplierOfItem Truy vấn đầu tiên (thông qua ngôn ngữ truy vấncó cấu trúc (SQL) mà bạn sẽ sớm học) sẽ mang lại kết quả có ýnghĩa bởi vì nó sử dụng sự so sánh giữa các thuộc tính được xácđịnh trên cùng một miền Truy vấn thứ hai sẽ không mang lại kếtquả có ý nghĩa vì nó vi phạm nguyên tắc này.

Trang 8

3.3 Mối quan hệ

Một quan hệ R trên tập các miền D1, D2, Dn (không nhất thiếtphải khác biệt) bao gồm hai phần - một heading và một body.Heading bao gồm một tập hợp các thuộc tính cố định hay chínhxác hơn là cặp thuộc tính-miền sao cho mỗi thuộc tính tương ứngvới chính xác một miền và n là bậc của mối quan hệ Một thuậtngữ khác dùng để mô tả heading của một quan hệ là predicate (vịngữ) của quan hệ.

{(A1:D1), (A2:D2), (An:Dn)}

Phần body bao gồm một tập hợp các tuples thay đổi theothời gian trong đó mỗi tuples bao gồm một tập hợp các thuộctính–cặp giá trị.

{(A1:Vi1), (A2:Vi2), (An:Vin)} (i = 1 m)

trong đó m là số lượng tuples (tức là số lượng phần tử) trongtập hợp Body của mối quan hệ cũng đôi khi được gọi là mệnh đề(proposition) của quan hệ Proposition xác định một tập hợp cáctuples theo đó đối với mỗi hàng trong quan hệ, các thuộc tínhtương ứng sẽ nhận các giá trị pháp lý từ tên miền tương ứng.

Chúng ta thấy rằng có vẻ như định nghĩa của một mối quanhệ giống với định nghĩa của một thực thể Tuy nhiên có hai sựkhác biệt nhỏ:

- Thuật ngữ quan hệ được sử dụng thuộc lĩnh vực hệ thống quanhệ Chúng tôi nói về mối quan hệ bởi vì chúng ta đang thảo luậnvề mô hình quan hệ Trong khi đó các thực thể mô tả các đốitượng và/hoặc tình huống có thể xác định được.

Trang 9

- Thực thể, như được xác định, không nhất thiết phải tính đến cácmối quan hệ Trong khi đó, quan hệ bao gồm cả thực thể và mốiquan hệ Do đó, trong mô hình quan hệ, chúng ta biểu diễn cácthực thể dưới dạng các mối liên quan và các mối liên quan (M:M)(giữa các thực thể) dưới dạng các quan hệ Một quan hệ nhị phân,ví dụ, có hai thuộc tính Nếu cả hai thuộc tính đều là khóa ngoạivà tạo thành khóa chính thì mối quan hệ nhị phân này thực sự thểhiện mối quan hệ nhiều-nhiều giữa hai quan hệ được tham chiếu;mặt khác, nó là (một mối quan hệ có thể được hiểu là) một thựcthể Điểm này sẽ trở nên rõ ràng khi chúng ta thực hiện các bướctiếp theo.

Những điều đã nói ở trên nhấn mạnh quan điểm rằng cácthực thể có thể được hiểu là các loại quan hệ đặc biệt Khi thiết kếcơ sở dữ liệu, kỹ sư phần mềm hoặc người thiết kế cơ sở dữ liệubắt đầu bằng việc xác định các thực thể trong quá trình đặc tảyêu cầu Sau khi phân tích sâu hơn, các thực thể này cuối cùngthể hiện bằng quan hệ.

Ghi chú: Một mối quan hệ đơn nhất khác với một miền ở chỗcái trước là động và cái sau là tĩnh Ví dụ: trong một hệ thống cơsở dữ liệu (DBS) dành cho nhiều thao tác toán học khác nhau,chúng ta có thể muốn lưu trữ một giá trị sẵn có cho hằng số phổquát được gọi là Pi; chúng tôi có thể có một mối quan hệ đơn nhấtđể lưu trữ giá trị Pi (tất nhiên, có nhiều cách khác để xử lý Số Pi).Hoặc, trong DBS nhằm phục vụ riêng cho một tổ chức, việc lưu trữtên của tổ chức đó trong một mối quan hệ đơn nhất có thể được

Trang 10

tham chiếu từ nhiều tổ chức khác nhau để tránh mã hóa cứng têntổ chức trong các chương trình này.

3.3.1 Thuộc tính của quan hệ

Dựa trên mô hình quan hệ, tất cả các quan hệ đều có bốnthuộc tính sau: Chúng lưu trữ các tuples (bản ghi) được xác địnhduy nhất bởi các giá trị khóa ứng viên tương ứng và do đó khôngchứa các bản ghi trùng lặp; các bản ghi không có thứ tự; cácthuộc tính không có thứ tự; và các giá trị thuộc tính là nhỏ nhất(nghĩa là được xác định trên một miền duy nhất).

Thuộc tính đầu tiên và cuối cùng là những ràng buộc màngười dùng cuối phải biết vì họ phải quản lý dữ liệu có trong cơ sởdữ liệu Tính chất thứ hai và thứ ba không quan trọng đối vớingười dùng cuối; chúng thường được thực thi bởi hệ thống quản lýcơ sở dữ liệu (DBMS) theo cách minh bạch đối với người dùngcuối Tuy nhiên, điều bắt buộc là người dùng kỹ thuật (như là nhàthiết kế cơ sở dữ liệu và kỹ sư phần mềm) phải hiểu ý nghĩa củatừng thuộc tính Ví dụ, khi DBMS được viết, cần phải quan tâmđến việc truy cập các bộ dữ liệu Hơn nữa, các bộ DBMS thườngđược thiết kế sao cho tạo cảm giác rằng các thuộc tính của mộtquan hệ được sắp xếp theo thứ tự Cuối cùng, cần nhớ rằng cácthuộc tính không có thứ tự là điều quan trọng để hiểu cách SQLhoạt động và viết truy vấn SQL

Trang 11

1 Base Relations: Mối quan hệ cơ sở được đặt tên và thể hiện

vĩnh viễn trong cơ sở dữ liệu Chúng tạo nên lược đồ khái niệmcủa cơ sở dữ liệu; chúng tạo thành nền tảng của cơ sở dữ liệu.chương 11 chỉ cho bạn cách tạo quan hệ cơ sở bằng SQL.

2 Logical Views: Chế độ xem logic là các quan hệ ảo bắt nguồn

từ các quan hệ được đặt tên (cơ sở) Chế độ xem logic (thườngđược gọi đơn giản là chế độ xem) lưu trữ định nghĩa của mối quanhệ ảo, nhưng không lưu trữ

dữ liệu vật lý Nó đơn giản là sự diễn giải logic (khái niệm/bênngoài) của dữ liệu được lưu trữ trong cơ sở

quan hệ Chương 13 đề cập đến việc quản lý các chế độ xem logictrong SQL.

3 Snapshots: là các quan hệ phái sinh được đặt tên Chúng khác

với các quan điểm logic ở chỗ chúng được thể hiện dưới dạng địnhnghĩa cũng như dữ liệu được lưu trữ vật lý Từ quan điểm củangười dùng cuối, mối quan hệ snapshots thường (nhưng khôngnhất thiết) ở chế độ chỉ đọc Để minh họa, hãy xem xét hai hệthống — Hệ thống A và Hệ thống B — cả hai đều cần truy cập mộtbảng cơ sở dữ liệu, Bảng X Giả sử rằng Hệ thống A có quyền cậpnhật đối với Bảng X, nhưng Hệ thống B thì không Do đó, Bảng Xđược lưu trữ trong cơ sở dữ liệu của Hệ thống A; một phiên bảntrùng lặp cho mục đích chỉ đọc được lưu trữ trong Hệ thống B vàđược cập nhật định kỳ (không có người dùng) từ Hệ thống A.

Các bộ DBMS hiện đại có xu hướng sử dụng thuật ngữsnapshots một cách lỏng lẻo để chỉ các biến thể khác nhau của ýnghĩa ban đầu của nó Ví dụ, trong Oracle, các snapshot được

Trang 12

triển khai thông qua materialized views ; trong Microsoft SQL

Server, thuật ngữ [snapshot] được sử dụng để mô tả chế độ xemchỉ đọc của cơ sở dữ liệu.

4 Query Results : Các truy vấn thường được nhập tại dấu nhắc

lệnh (chúng cũng có thể nhúng trong các chương trình ngôn ngữcấp cao hoặc được lưu trữ trong các tệp truy vấn đặc biệt) Kếtquả có thể được chuyển hướng đến màn hình, máy in hoặc mộtmối quan hệ được đặt tên Một nguyên tắc quan trọng cần lưu ý làtruy vấn khi được thực thi luôn dẫn đến một mối quan hệ mới.Nguyên tắc này sẽ được làm sáng tỏ sau trong khóa học.

5 Intermediate Results : DBMS có thể tạo mối quan hệ trung

gian để hỗ trợ đưa ra câu trả lời cuối cùng cho một yêu cầu truyvấn phức tạp Điều này cũng sẽ được làm sáng tỏ sau khóa học.

6 Temporary Relations: Quan hệ tạm thời là những quan hệ

được đặt tên bị phá hủy trong một khoảng thời gian tương đốingắn (so với quan hệ cơ sở và chế độ xem logic)

3.4 Hệ thống cơ sở dữ liệu quan hệ

Một hệ thống cơ sở dữ liệu quan hệ (RDBS) là một tập hợpcác quan hệ được chuẩn hóa theo thời gian, được quản lý thôngqua giao diện người dùng phù hợp và với các ràng buộc mongmuốn cũng như các tính năng nâng cao quản lý cơ sở dữ liệu mộtcách hiệu quả và hiệu suất Định nghĩa thực tế này sẽ được tiếptục được làm rõ khi chúng tôi đề cập đến nhiều vấn đề hơn, nhưnghiện tại, thế là đủ Các tính năng và ràng buộc mong muốn sẽđược thảo luận (xem Chương 9) khi chúng ta tiến hành khóa học.

Thuật ngữ mối quan hệ được chuẩn hóa (normalized

Trang 13

relations ) sẽ được làm rõ đầy đủ ở Chương 4; hiện tại, hãy coi nó

có nghĩa là các mối quan hệ được thiết kế để thúc đẩy hiệu quảvà khả năng tiếp cận.

Các mối quan hệ được khái niệm hóa dưới dạng bảng vàcuối cùng được triển khai trong hệ điều hành cơ bản dưới dạngtệp Mỗi quan hệ chứa một và chỉ một loại hàng, bao gồm một số

thuộc tính chính (atomic attributes ) cụ thể Mỗi mối quan hệ có

một khóa chính (được chọn từ một tập hợp các khóa ứng viên).Trong nhiều trường hợp, khóa chính là hiển nhiên và có thể đượcxác định bằng trực giác Trong những tình huống trường hợp khác,người thiết kế cơ sở dữ liệu dựa trên các nguyên tắc sẽ được thảoluận trong chương tiếp theo để đưa ra quyết định về khóa chính.

Mỗi loại bản ghi được tạo thành từ các thuộc tính chính.Điều này có nghĩa là mỗi thuộc tính được xác định trên một miềnduy nhất và chỉ có thể có một giá trị từ miền đó Hơn nữa, khi dữliệu được tải vào cơ sở dữ liệu, mỗi bộ dữ liệu từ bất kỳ bảng quanhệ nào đều có một giá trị khóa chính duy nhất.

Ở trên cơ sở dữ liệu là một giao diện người dùng tạo điềukiện thuận lợi cho việc truy cập cơ sở dữ liệu của người dùng cuốicùng Cơ sở dữ liệu và giao diện người dùng được thiết kế để đảmbảo đáp ứng các mục tiêu nhất định (xem lại Phần 1.2) và tuânthủ các tiêu chuẩn đã thiết lập.

Các bước xây dựng hệ thống cơ sở dữ liệu quan hệ: Khi xâydựng RDBS, cần tuân theo các bước sau:

a Xác định thực thể (entities)

b Xác định mối quan hệ (Relationship)

Trang 14

c Loại bỏ những mối quan hệ không cần thiết

d Phát triển entity–relationship diagram (sơ đồ mối quan hệ thựcthể (ERD)), object–relationship diagram (sơ đồ mối quan hệ đối

tượng (ORD)) hoặc một số mô hình tương đươnge Chuẩn hóa cơ sở dữ liệu

f Sửa đổi ERD, ORD hoặc mô hình tương đương được sử dụngg Thiết kế giao diện người dùng

h Tiến tới giai đoạn phát triển

Lưu ý rằng các bước này thường được thực hiện trong bốicảnh của một dự án công nghệ phần mềm Theo đó, khóa học nàygiả định rằng bạn đã quen thuộc với các Bước a–d và h Phần cònlại của chương này sẽ xem xét các Bước b–d, đồng thời cung cấpmột số thông tin chi tiết (bổ sung) có thể không được đề cập trong(nhập môn) khóa học kỹ thuật phần mềm Chương 4 và 5 sẽ tậptrung vào Bước e và f; Bước g là

được đề cập trong Chương 6 và Bước h được đề cập trong Chương10–14.

3.5 Xác định mối quan hệ

Như đã đề cập trước đó, mối quan hệ là một ánh xạ cố hữubao gồm hai hoặc nhiều mối quan hệ Khi lập kế hoạch cho mộtcơ sở dữ liệu quan hệ, điều rất quan trọng là phải biết cách xácđịnh và thể hiện các mối quan hệ Tất nhiên, mục tiêu cuối cùnglà thực hiện thành công mô hình Hãy dành thời gian để bàn luậnvề vấn đề này:

Trang 15

Để xác định các mối quan hệ, bạn phải biết mối quan hệ làgì (xem lại Phần 3.1) và có những loại mối quan hệ nào Có sáuloại mối quan hệ:

◾ Mối quan hệ một-một (one-to-one) (1:1): Một tuple trong mộtquan hệ R1 ánh xạ tới một tuple khác trong quan hệ thứ hai R2.

◾ Mối quan hệ một-nhiều (one-to-many) (1:M): Một tuple trong mộtquan hệ R1 ánh xạ tới một số tuple trong quan hệ R2.

◾ Mối quan hệ nhiều-một (many-to-one) (M:1): Một số tuple trongquan hệ R2 ánh xạ tới một tuple trong quan hệ R1.

◾ Mối quan hệ nhiều-nhiều (many-to-many) (M:M): Một số tupletrong mối quan hệ R1 ánh xạ tới một số tuple khác trong quan hệR2 và ngược lại.

◾ Mối quan hệ thành phần (component relationship): Một tupletrong quan hệ R1 bao gồm một (hoặc nhiều) tuple trong các quanhệ khác R1A .R1Z; hơn nữa, quan hệ R1A R1Z phụ thuộc vào sựtồn tại của quan hệ R1.

◾ Mối quan hệ kiểu con (subtype relationship): Nếu bất kỳ tuple nàocủa quan hệ R2 chứa tất cả các thuộc tính của một tuple trongquan hệ R1 thì R2 là kiểu con và R1 là kiểu siêu (super-type)

Bốn loại mối quan hệ đầu tiên được gọi là mối quan hệtruyền thống vì cho đến khi mô hình đối tượng (để thiết kế cơ sởdữ liệu) trở nên ưu việt hơn, về cơ bản chúng là các loại mối quanhệ được mô hình quan hệ tạo điều kiện thuận lợi Cũng lưu ý rằngsự khác biệt duy nhất giữa một Mối quan hệ 1:M và mối quan hệM:1 là vấn đề quan điểm; Do đó, mối quan hệ 1:M cũng có thểđược mô tả như mối quan hệ M:1 (do đó trong thực tế, thực sự chỉ

Ngày đăng: 08/05/2024, 08:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan