Რა არის მონაცემთა ბაზის დამოკიდებულება?

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

მონაცემთა ბაზის დამოკიდებულებები / ფუნქციონალური დამოკიდებულება

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

ამბობდა, რომ არსებობს დამოკიდებულება ატრიბუტებს შორის მაგიდაზე, იგივეა, რომ არსებობს ფუნქციური დამოკიდებულება ამ ატრიბუტებს შორის. თუ არსებობს მონაცემთა ბაზაში დამოკიდებულება, რომ ატრიბუტი B არის დამოკიდებულია ატრიბუტის მიხედვით, თქვენ დაწერა "A -> B".

მაგალითისთვის, მაგიდაზე დასაქმებული პერსონალის მახასიათებლები, მათ შორის სოციალური დაცვის ნომერი (SSN) და სახელი, შეიძლება ითქვას, რომ სახელი დამოკიდებულია SSN- ზე (ან SSN -> სახელი), რადგან დასაქმებულის სახელი ცალსახად განისაზღვრება მათი SSN. თუმცა, საპირისპირო განცხადება (სახელი -> SSN) არ არის მართალი, რადგან ერთზე მეტი თანამშრომელი შეიძლება ჰქონდეს იგივე სახელი, მაგრამ განსხვავებული SSN- ები.

ტრივიალური ფუნქციური დამოკიდებულება

ტრივიალური ფუნქციონალური დამოკიდებულება ხდება მაშინ, როდესაც აღწერს ატრიბუტის ფუნქციურ დამოკიდებულებას ატრიბუტების კოლექციაზე, რომელიც შეიცავს თავდაპირველ ატრიბუტს. მაგალითად, "{A, B} -> B" არის ტრივიალური ფუნქციური დამოკიდებულება, როგორც "{სახელი, SSN} -> SSN". ამ ტიპის ფუნქციონალური დამოკიდებულება ტრივიალურია, ვინაიდან იგი საღი აზრიდან გამომდინარეობს. აშკარაა, რომ თუ უკვე იცით B- ის მნიშვნელობა, მაშინ B- ის ღირებულება შეიძლება ცალსახად განისაზღვროს ამ ცოდნით.

სრული ფუნქციური დამოკიდებულება

სრული ფუნქციონალური დამოკიდებულება ხდება მაშინ, როდესაც თქვენ უკვე აკმაყოფილებთ ფუნქციონალური დამოკიდებულების მოთხოვნებს და ფუნქციონალური დამოკიდებულების შესახებ მარცხენა მხარეს ატრიბუტების კომპლექტი არ შეიძლება შემცირდეს. მაგალითად, "{SSN, age} -> სახელი" არის ფუნქციონალური დამოკიდებულება, მაგრამ ეს არ არის სრული ფუნქციონალური დამოკიდებულება, რადგან თქვენ შეგიძლიათ გაათავისუფლოთ ასაკის მარცხენა მხარეს განცხადება გარეშე დამოკიდებულება დამოკიდებულების ურთიერთობისათვის.

ტრანზიტული დამოკიდებულება

გარდამავალი დამოკიდებულება ხდება მაშინ, როდესაც არსებობს არაპირდაპირი ურთიერთობა, რომელიც იწვევს ფუნქციურ დამოკიდებულებას. მაგალითად, "A -> C" არის გარდამავალი დამოკიდებულება, როდესაც ეს არის მხოლოდ იმიტომ, რომ "A -> B" და "B -> C" სიმართლეა.

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

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

დამოკიდებულების მნიშვნელობა

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