მრავალმნიშვნელოვანი დამოკიდებულება მონაცემთა ბაზებში

Სარჩევი:

მრავალმნიშვნელოვანი დამოკიდებულება მონაცემთა ბაზებში
მრავალმნიშვნელოვანი დამოკიდებულება მონაცემთა ბაზებში
Anonim

რელაციურ მონაცემთა ბაზაში დამოკიდებულება წარმოიქმნება, როდესაც მონაცემთა ბაზის იმავე ცხრილში შენახული ინფორმაცია ცალსახად განსაზღვრავს იმავე ცხრილში შენახულ სხვა ინფორმაციას. მრავალმნიშვნელოვანი დამოკიდებულება ხდება მაშინ, როდესაც ცხრილში ერთი ან მეტი მწკრივის არსებობა გულისხმობს იმავე ცხრილში ერთი ან რამდენიმე სხვა მწკრივის არსებობას. სხვაგვარად რომ ვთქვათ, ცხრილში ორი ატრიბუტი (ან სვეტი) ერთმანეთისგან დამოუკიდებელია, მაგრამ ორივე დამოკიდებულია მესამე ატრიბუტზე.

Image
Image

მრავალმნიშვნელოვანი დამოკიდებულება ხელს უშლის ნორმალიზების სტანდარტულ მეოთხე ნორმალურ ფორმას. რელატიური მონაცემთა ბაზები მიჰყვება ხუთ ნორმალურ ფორმას, რომლებიც წარმოადგენენ მითითებებს ჩანაწერების დიზაინისთვის.ისინი ხელს უშლიან მონაცემთა განახლების ანომალიებს და შეუსაბამობებს. მეოთხე ნორმალური ფორმა ეხება მონაცემთა ბაზაში მრავალი-ერთთან ურთიერთობას.

ფუნქციური დამოკიდებულება მრავალმნიშვნელოვანი დამოკიდებულების წინააღმდეგ

მრავალმნიშვნელოვანი დამოკიდებულების გასაგებად, სასარგებლოა გადახედოთ რა არის ფუნქციონალური დამოკიდებულება.

თუ X ატრიბუტი ცალსახად განსაზღვრავს Y ატრიბუტს, მაშინ Y ფუნქციურად არის დამოკიდებული X-ზე. ეს იწერება როგორც X -> Y. მაგალითად, სტუდენტების ცხრილში ქვემოთ, სტუდენტის_სახელი განსაზღვრავს ძირითადს:

სტუდენტის_სახელი მაიორი
რავი ხელოვნების ისტორია
ბეთ ქიმია

ეს ფუნქციური დამოკიდებულება შეიძლება დაიწეროს: სტუდენტის_სახელი -> ძირითადი. თითოეული სტუდენტის_სახელი განსაზღვრავს ზუსტად ერთ ძირითად და არა მეტს.

თუ გსურთ მონაცემთა ბაზამ ასევე თვალყური ადევნოს ამ სტუდენტების სპორტს, შეიძლება ფიქრობთ, რომ ამის გაკეთების ყველაზე მარტივი გზაა უბრალოდ დაამატოთ კიდევ ერთი სვეტი სახელწოდებით სპორტი:

სტუდენტის_სახელი მაიორი სპორტი
რავი ხელოვნების ისტორია ფეხბურთი
რავი ხელოვნების ისტორია ფრენბურთი
რავი ხელოვნების ისტორია ჩოგბურთი
ბეთ ქიმია ჩოგბურთი
ბეთ ქიმია ფეხბურთი

პრობლემა აქ არის ის, რომ ორივე რავი და ბეტი თამაშობენ რამდენიმე სპორტს. ყოველი დამატებითი სპორტისთვის საჭიროა ახალი რიგის დამატება.

ამ ცხრილმა შემოიღო მრავალმნიშვნელოვანი დამოკიდებულება, რადგან ძირითადი და სპორტი ერთმანეთისგან დამოუკიდებელია, მაგრამ ორივე დამოკიდებულია სტუდენტზე. ეს არის მარტივი მაგალითი და ადვილად იდენტიფიცირებადი, მაგრამ მრავალმნიშვნელოვანი დამოკიდებულება შეიძლება გახდეს პრობლემა დიდ, რთულ მონაცემთა ბაზაში.

მრავალმნიშვნელოვანი დამოკიდებულება იწერება X ->-> Y. ამ შემთხვევაში:

მოსწავლის_სახელი ->-> ძირითადი

სტუდენტის_სახელი -2633 > სპორტი

ეს იკითხება როგორც "სტუდენტის_სახელი მრავალგანმსაზღვრავს ძირითად" და "სტუდენტის_სახელს მრავალგანსაზღვრავს სპორტს."

მრავალმნიშვნელოვანი დამოკიდებულება ყოველთვის მოითხოვს მინიმუმ სამ ატრიბუტს, რადგან ის შედგება მინიმუმ ორი ატრიბუტისაგან, რომლებიც დამოკიდებულია მესამეზე.

მრავალმნიშვნელოვანი დამოკიდებულება და ნორმალიზაცია

მრავალმნიშვნელოვანი დამოკიდებულების მქონე ცხრილი არღვევს მეოთხე ნორმალური ფორმის ნორმალიზაციის სტანდარტს, რადგან ის ქმნის არასაჭირო ზედმეტობებს და შეიძლება ხელი შეუწყოს არათანმიმდევრულ მონაცემებს. 4NF-მდე მისასვლელად, აუცილებელია ამ ინფორმაციის ორ ცხრილად დაყოფა.

ქვემოთ მოცემულ ცხრილში ახლა არის სტუდენტის_სახელის ფუნქციური დამოკიდებულება -> ძირითადი და არა მრავალმნიშვნელოვანი დამოკიდებულებები:

სტუდენტის_სახელი მაიორი
რავი ხელოვნების ისტორია
რავი ხელოვნების ისტორია
რავი ხელოვნების ისტორია
ბეთ ქიმია
ბეთ ქიმია

მიუხედავად იმისა, რომ ამ ცხრილს ასევე აქვს სტუდენტის_სახელის ერთი ფუნქციური დამოკიდებულება -> სპორტი:

სტუდენტის_სახელი სპორტი
რავი ფეხბურთი
რავი ფრენბურთი
რავი ჩოგბურთი
ბეთ ჩოგბურთი
ბეთ ფეხბურთი

ნორმალიზაცია ხშირად მიიღწევა რთული ცხრილების გამარტივებით ისე, რომ ისინი შეიცავდეს ინფორმაციას ერთ იდეასთან ან თემასთან და არა ერთი ცხრილის შედგენის მცდელობით, რომ შეიცავდეს ძალიან ბევრ სხვადასხვა ინფორმაციას.

გირჩევთ: