Phân mảnh ngang và phân mảnh ngang dẫn xuất.

Một phần của tài liệu Giáo trình Cơ sở dữ liệu phân tán (Trang 29 - 40)

Hình 2.4a Mảnh ngang PROJH1 lưu các thôngtin về các dự án có ngân sách dưới 200,000 USD

2.3.1Phân mảnh ngang và phân mảnh ngang dẫn xuất.

Có hai loại phân mảnh ngang: phân mảnh ngang nguyên thuỷ và phân mảnh ngang dẫn xuất. Phân mảnh ngang nguyên thuỷ (primary horizontal fragmentation) của một quan hệ được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ đó. Ngược lại phân mảnh ngang dẫn xuất (derived horizontal fragmentation) là phân mảnh một quan hệ dựa vào các vị từ được định nghĩa trên một quan hệ khác, quan hệ đó thường là quan hệ chủ.

Yêu cầu thông tin của phân mảnh ngang.

Thông tin về CSDL. Thôn tin về CSDL muốn nói đến lược đồ khái niệm toàn cục. Tức là chúng ta cần biết được các quan hệ sẽ kết lại với nhau như thế nào, đặc biệt là bằng các phép nối. Trong mô hình quan hệ, các mối liên hệ này cũng được biểu thị bằng các quan hệ. tuy nhiên trong các mô hình khác như mô hình thực thể liên hệ( entity-relationship model), các mối liên hệ được biểu diễn tường minh. Với mục đích thiết kế phân tán, các mối liên hệ cũng được mô hình hoá trong bộ khung quan hệ. Theo cách này, chúng ta sẽ vẽ các đường nối có hướng (cung các) giữa quan hệ có liên hệ với nhau qua một nối bằng (equijoin).

Ví dụ 2-3

Hình 2.7.Trình bày một cách biểu diễn các đường nối giữa các quan hệ chú ý rằng hướng của các đường nối cho biết mối quan hệ một -nhiều. Chẳng hạn với mỗi chức vụ (tile) có nhiều nhân viên giữ chức vụ đó, vì thế chúng ta vẽ một đường nối giữa các quan hệ PAY và EMP. Đồng thời mối liên hệ nhiều- nhiều giữa EMP và PROJ được biểu diễn bằng hai đường nối đến quan hệ ASG.

Đường nối giữa các đối tượng CSDL (trường hợp này là các quan hệ) hoàn toàn quen thuộc với những độc giả về mô hình mạng. Trong mô hình quan hệ chúng được giới thiệu đưới dạng một đồ thị nối (join graph). Đồ thị này được trình bày chi tiết trong những chương bàn về kỹ thuật xử lý vấn tin. Chúng ta đề cập đến ở đây bởi vì, chúng làm đơn giản hoá cách trình bày các mô hình phân tán sẽ được thảo luận về sau. Quan hệ nằm tại đuôi của đường nối được gọi là chủ nhân (owner) của đường nối và quan hệ tại đầu đường nối (đầu mũi tên) gọi là thành viên (member) hoặc quan hệ. Một số thuật ngữ được sử dụng thông dụng trong mô hình mạng là quan hệ nguồn ( source relation) cho chủ nhân và quan hệ đích (target relation) cho thành viên.

Chúng ta hãy định nghĩa hai hàm: owner và nember, chúng là các ánh xạ từ tập các đường nối đến tập quan hệ. khi cho trước một đường nối chúng sẽ trả về quan hệ thành viên hoặc quan hệ chủ chủ nhân của đường nối

Ví dụ 2-4

Cho đường nối l1 của hình 2.7, các hàm owner và member có các giá trị sau: owner(l1 ) = PAY

member( l1) = EMP

Thông tin định lượng cần có về CSDL là lực lượng (cardinality) của mỗi quan hệ R, được ký hiệu là card(R)

Thông tin về ứng dụng. Như đã chỉ ra trước kia khi liên hệ đến hình 2.2. Chúng ta cần có cả thông tin định tính lẫn định lượng về các ứng dụng. Thông tin định tính hướng dẫn cho hoạt động phân mảnh , còn thôngtin định lượng chủ yếu sử dụng trong các mô hình cấp phát.

Những thông tin định tính cơ bản gồm có các vị trí được dùng trong các câu vấn tin. Nếu không thể phân tích đươc hết tất cả các ứng dụng để xác định những vị từ này thì ít nhất cũng phải nghiên cứu được các ứng dụng “quan trọng” nhất. Một hướng dẫn

được xem như một kim chỉ nam đó là “20%” các câu vấn tin sẽ chiếm đến 80% truy xuất dữ liệu ” [ Wiederhold, 1982]. Quy tắc “80/20” này có thể được sử dụng như một hướng dẫn khi thực hiện các phân tích. Cho đến lúc này chúng ta đang tìm cách xác định các vị từ dddơn giản (simple predicate) cho quan hệ R( A1,A2 …, An) trong đó A1 là thuộc tính được định nghĩa trên một miền biến thiên Di, một vị từ đơn giản pj được định nghĩa trên R có dạng:

pj : Ai θ Value

Trong đó θ ∈ {,=, <, ≠, ≤, >, ≥} và Value được chon từ miền biến thiên của A1 (Value ∈ Di). Chúng ta sử dụng ký hiệu Pri để biểu thị tập tất cả các vị từ đơn giản được định nghĩa trên quan hệ R1. Các phần tử Pri được ký hiệu là pij.

Ví dụ 2-5

Cho quan hệ PROJ của hình 2.3 thì PNAME = “Maintenance”

TITLE. SAL

ENO, ENAME, TITLE EMP

PNO, PNAME, BUDGET, LOC PROJ

ENO,PNO,RESP,DUR ASG

Hình 2.7. Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối. PAY

l1

l

2 l

BUDFET ≤ 200000 là các vị từ đơn giản.

Mặc dù các vị từ đơn giản rất dễ xử lý, các câu vấn tin rất thường chưa nhiều vị từ phức tạp hơn, là tổ hợp của các vị từ đơn giản. Một tổ hợp cần đặc biệt chú ý, được gọi là vi từ hội sơ cấp (minterm predicate), đó là hội (conjunction) của các vị từ đơn giản. Bởi vì chúng ta luôn có thể biến đổi một biểu thức boole thành dạng chuẩn hội (conjuntive normal form), việc sử dụng vị từ hội sơ cấp trong một thuật toán thiết kế không làm mất đi tính tổng quát.

Cho một tập Pri = { pi1, pi2,... pim } là các vị từ đơn giản trên quan hệ R1, tập các vị từ hội sơ cấp Mi = { mi1,mi2... miz } được định nghĩa là:

mi = { mij | mij = Λpik p*ik } với 1≤k≤ m, 1 ≤ j ≤ z

Trong đó p* ik = pik hoặc p*ik = -pik. Vì thế mỗi vị từ đơn giản có thể xuất hiện trong vị từ hội sơ cấp đưới dạng tự nhiên hoặc dạng phủ định. (adsbygoogle = window.adsbygoogle || []).push({});

Mỗi điểm quan trọng cần chú ý ở đây. Tham chiếu đến phủ định của một ví từ sẽ có nghĩa đối với các vị từ đẳng thức dạng:

Attiribute = value

Đối với vi từ bất đẳng thức, phủ định được xửlý như phần bù ( complement). Chẳng hạn phủ định của vị từ đơn giản.

Attiribute ≤ val ue là Attiribute > value

Ngoài các vấn đề lý thuyết của phép lấy phần bù trong các tập vô hạn cũng có một vấn đề liên quan đến thực hành, đó là phần bù có thể rất khó định nghĩa. Ví dụ nếu hai vị từ đơn giản.

Cận dưới ≤ Attiribute -1 Attiribute -1≤ cận trên

Được định nghĩa phần bù của chúng là ¬ (Cận dưới ≤ Attribute-1)

¬ (Attribute -1 ≤ cận trên)

Tuy nhiên hai vị từ đơn giản ban đầu có thể được viết lại là Cận dưới ≤ Attiribute -1≤ cận trên

với phần bù là

¬ (Cận dưới ≤ Attiribute -1≤ cận trên)

Không dễ gì định nghĩa được. Vì vậy nghiên cứu trong lĩnh vực này vẫn chỉ xem xét các vị từ đẳng thức đơn giản.

Ví dụ 2-6

Xét quan hệ PAY của hình 2.3. dưới đây là một số vị từ đơn giản có thể định nghĩa được trên PAY..

p1 TITLE = “Elect. Eng” p2 TITLE = “Syst. Anal” p3 TITLE = “ Mech . Eng”

p4 TITLE = “Programm er ” p5 SAL ≤ 30000

p6 SAL > 30000

Dưới đây là một số các vị từ hội sơ cấp được định nghĩa dựa trên các vị từ đơn giản này.

m1: TITLE = ” E lect.Eng” ^ SAL ≤ 30000 m2 : TITLE = “ Elect. Eng” ^ SAL > 30000 m3 : TITLE = “ Elect.Eng” ^ SAL ≥ 30000 m4: TITLE = “ Elect.Eng”^ SAL < 30000 m5: TITLE = “Programmer”^ SAL ≤ 30000 m6: TITLE = “Pr ogrammer”^ SAL > 30000

Có hai điểm cần chú ý. Thứ nhất không phải tất cả các vị từ hội sơ cấp đều có thể định nghĩa được; chúng ta chỉ trình bày một mẫu đại diện. thứ hai một số trong chúng có thể vô nghĩa đối với ngữ nghĩa của quan hệ PAY. Chúng ta cũng không chú trọng vào vấn đề này ở đây ngoài ra cần chú ý rằng m3 có thể được viết lại như sau:

m3: TITLE ≠ “ Elect Eng” . ^ SAL ≤ 30000

Theo những thông tin định tính về các ứng dụng, chúng ta cần biết hai tập hợp dữ liệu.

1. Độ tuyển hội sơ cấp ( minterm selectivity): số lượng các bộ quan hệ sẽ được truy xuất bởi câu vấn tin được đặc tả theo một vị từ hội sơ cấp đã cho. Chẳng hạn độ tuyền của m1 trong Ví dụ 2-6 là zero bởi vì không có bộ nào trong BAY thoả mãn vị từ này. Độ tuyển của m2 l à 1. Chúng ta k ý hiệu độ tuyển của một hội sơ cấp m1 là sel (mi).

2. Tần số truy xuất (access frequency): Tần số ứng dụng truy xuất dữ liệu. Nếu Q = { q1,q2,…,qq } là tập các câu vấn tin, acc(qi) biểu thị cho tần số truy xuất của qi trong một khoảng thời gian đã cho.

Chú ý rằng tần số truy xuất hội sơ cấp có thể được xác định từ tần số vấn tin. Chúng ta ký hiệu tần số truy xuất của một hội sơ cấp là acc(mi)

phân mảnh ngang nguyên thuỷ

Trước khi trình bày thuất toán thưc cho phân mảnh ngang , chúng ta sẽ thảo luận một cách trực quan về qua trình phân mảnh cho cả phân mảnh ngang nguyên thuỷ và phân mảnh ngang dẫn xuất. Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một thuật toán chọn trên các quan hệ chủ nhân của một lược đò CSDL. Vì thế biết quan hệ Ri là: Ri = σFi(R), 1≤ i ≤ z

trong đó Fi là công thức chọn được sử dụng để có được mảnh Ri.Chú ý rằng nếu Fi có dạng chuẩn hội, nó là một vị từ hội sơ cấp (mi). Thực sự thuật toán mà chúng ta sẽ thảo luận khẳng định rằng Fi là một vị từ hội sơ cấp.

Ví dụ 2-7

Phân rã quan hệ PROJ thành các mảnh ngang PROJH1 VÀ PROJH2 trong Ví dụ 2-1 được định nghĩa như sau:² (adsbygoogle = window.adsbygoogle || []).push({});

PROJH2 = σBUDGET > 200000 (PROJ)

Ví dụ 2-7 đã chỉ ra một trong các vấn đề gặp phải khi phân hoạch ngang. Nếu miền biến thiên của các thuộc tính có mặt trong công thức chọn là liên tục và vô hạn như ví dụ 2-7, chúng ta rất khó định nghĩa tập các công thức F ={ F1,F2, ..., Fn} thích hợp cho phân mảnh quan hệ. Một phương án là định nghĩa các khoảng như chúng ta đã làm trong Ví dụ 2-7. Tuy nhiên chúng ta luôn phải xử lý các vấn đề ở hai đầu. Chẳng hạn nếu một bộ mới giá trị BUDGET là 600000 được chèn vào PROJH1, chúng ta sẽ phải xem lại phân mảnh để quyết định xem bộ mới sẽ được đặt vào PROJH2 hoặc các mảnh cần được sửa lại và mảnh mới cần được định nghĩa là:

PROJH2 = σ200000<BUDGET≤400000 (PROJ) PROJH3 = σBUDGET>400000 (PROJ)

Vấn đề này rõ ràng có thể được giải quyết trong thực tế bằng cách hạn chế miền biến thiên của các thuộc tính theo các yêu cầu của ứng dụng.

Ví dụ 2-8

Xét quan hệ PROJ hình 2.3. Chúng ta có thể định nghĩa các mảnh ngang sau đây dựa vào vị trí dự án. Các mảnh thu được trình bày trong hình2.8.

PROJH1 = σLOC = "Montreal")(PROJ) PROJH2 = σLOC = "New York" (PROJ)

PROJH3 = σLOC = "Pairis" (PROJ)

PROJ H1

PNO PNAME BUDGET LOC

P1 instrumentation 150000 Montreal

PROJH2

PNO PNAME BUDGET LOC

P2 P3 Database Develop CAD/CAM 135000 250000 New York New York PROJH3

PNO PNAME BUDGET LOC

P4 Maintenance 310000 Paris

Hình 2.8.Phân mảnh ngang nguyên thủy cho quan hệ PROJ

Bây giờ chúng ta có thể định nghĩa một mảnh ngang chặt chẽ hơn. Một mảnh ngang Ri của quan hệ R có chưa tất cả các bộ R thoả vị từ bộ sơ cấp mi. Vì vậy cho một tập các vị tập vị từ hội sơ cấp M, số lượng các mảnh ngang này cũng thường được gọi là các mảnh hội sơ cấp.

Theo như đã thảo luận trước,rõ rngười làm việc định nghĩa các mảnh ngang phụ thuộc vào các vị từ hội sơ cấp. Vì thế bước đầu tiên của thuật toán hân mảnh ngang

phụ phụ thuộc vào các vị từ sơ cấp.Vì thế bước đầu tiên của thuật mọi toán phân mảnhlà xác định các vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp.

Một tính quan trọng của các vị từ đơn giản là tinh đầy đủ (completeness); một đặc tính khác là tính cực tiểu (minimality). Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng truy xuất đến một bộ bất kỳ thuộc về mọt mảnh hội sơ cấp nào đó được định nghĩa theo Pr đều bằng nhau.

Ví dụ 2-9

Xét theo mảnh quan hệ PROJ được chia ra trong ví dụ 2-7. Nếu ứng dụng duy nhất truy suất PROJ, muốn truy suất của bộ theo vị trí, tập vị trí này là đầy đủ bởi vì mỗi bộ của mảnh PROJi (Ví dụ 2-8) điều có sác xuất được truy xuất như nhau. Tuy nhiên nếu có một ứng dụng thứ hai chỉ truy xuất các dự án có ngân sách trên 200,000 USD thì Pr không đầy đủ. Một số bộ trong mỗi mảnh PROJi có xác xuất được truy xuất cao hơcác ứng dụngyhứ hai này. Để cho tập vị từ đày đủ, chúng ta cần phải thêm các vị từ (BUDGET ≤ 200000, PROJ > 200000) vào Pr:

Pr ={LOC=”Montreal”, LOC= “New York”, LOC “ Paris”, BUDGET≤200000, BUDGET>200000}

Lý do cầ phải đảm bảo tính đầy đủ là vì mảnh thhu được theo tập vị từ đầy đủ sẽ nhất quán về mặt logic do tất cả chúng đều thoả vị từ hội sơ cấp. Chúng cũng đồng nhất về mặt thống kê theo cách mà ứng dụng truy xuất chúng. Vì thế chúng ta sẽ dùng một tập vị từ đầy đủ làm cơ sở của phân mảnh ngang nguyen thuy.

Chúng ta có thể định nghĩa tính đầy đủ một cách hình thức hơn để có thể thu được tập các vị từ đầy đủ một cách tự động.Tuy nhiên điều này đòi hỏi nhà thiết kế hải xác định xác xuất truy xuất cho mỗi bộ của một qua hệ đối với mõi ứng dụng đang được xem xét, và như thế tốn nhiều công sức hơn so với việc sử dụng kinh nghiệm của nhà thiết kế để tìm ra một tập đầy đủ. Chúng ta sẽ chình bày một phương pháp có hệ thống để thu được tập này.

Khẳng định rằng nếu biết được một vị từ ảnh hưởng đến cách thực hiện phân mảng (nghĩa là khiến cho mảnh f bị phân nhỏ bhơn thành các mảnh, chẳng hạn fi và fj ), thì ta có ít nhất một ứng dụng truy xuất đến fi và fj theo những cách khác nhau. Nói cách khác, vị từ đơn giản phải có liên đới (relevent) trong việc xác định một phân mảnh. Nếu tất cả các vị từ của tập Pr đều có liên đới thì Pr cực tiểu.

Một định nghĩa hình thức về tính liên đới có thể được trình bày như sau: Gọi mi và mj là hai vị từ hội sơ cấp đồng nhất về định nghĩa, ngoại trừ mi chứa vị từ đơn giản pi ở dạng tự nhên còn mj chứa pi ở dạng phủ định pi cũng gọi fi và fj là hai mảnh tương ứng được địmh mghĩa theo mi và mj Thế thì pi là liên đới nếu và chỉ nếu

) ( ) ( ) ( ) ( f m f m j j i i acrd acc acrd acc

Một lần nữa chúng ta lại viện dẫn cảm nhận và kinh nghiệm của nhà thiết kế chứ không phải định nghĩa hình thức này. (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ 2-10

Tập Pr được định nghĩa trong ví dụ 2-8 là đầy đủ và cực tiểu, tuy nhiên nếu chúng ta thêm vị từ.

PNAME = "Instrumentation"

Vào Pr, tập kết quả sẽ không còn cực tiểu vì vị từ mới được thêm vào không có liên đới ứng với Pr. Không ứng dụng nào truy xuất khác nhau đênn các mảnh tạo ra.

Bây giờ chúng ta có thể trình bày một thật toán lặp sinh ra một tập đầy đủ và cực tiểu và các vị từ Pr khi có mộtm tập các vị từ đơn giản Pr. Thuật toán này, được gọi là COM MIN, được trình bày trong thuật toán 2.1. Để tránh phải giả thích dài dòng chungns ta phải thừa nhận kí pháp sau:

Qui tắc1: quy tắc cơ bản về tính đầy đủ và cực tiểu, nó khẳng định rằng một quan hệ hoặc một mảnh được phân hạch "thành ít nhất hai phần và chúng được truy xuất khác nhau bởi ít nhất một ứng dụng".

fi của Pr': mảnh fi được định nghĩa theo một vị từ hội sơ cấp trên các vị từ Pr' Thuật toán 2.1 COM_MIN

Vào R: quan hệ :Pr: tập các vị từ đơn giản. Ra Pr': tập các vị từ đơn giản.

Declare

F: tập các mảnh hội sơ cấp Begin

Tìm một vị từ pi∈Pr sao cho pi phân hoạch theo R theo Quy tắc 1' Pr'←pi

Pr ←Pr-pi

F←fi {fi là mảnh hội sơ cấp theo pi} Do

Begin

Tìm một pj∈Pr sao cho pj phân hạch một mảnh fk chủa Pr' theo Quy tắc1

Pr'←Pr' ∪ pj Pr←Pr - pj F ← F ∪ fj

if ∃pk∈ Pr', một vị từ không có liên đới then

Một phần của tài liệu Giáo trình Cơ sở dữ liệu phân tán (Trang 29 - 40)