Მონაცემთა ბაზა ურთიერთობები

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

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

როგორ იმოქმედებს უცხოური გასაღები ურთიერთობების დამყარების საქმეში

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

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

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

აქ, კურსების ცხრილის ძირითადი გასაღებია კურსის_იდი. მისი საგარეო გასაღებია მასწავლებელი_იდი:

კურსები
კურსის_იდი კურსის სახელი მასწავლებელი_დ
კურსის_001 ბიოლოგია მასწავლებელი_001
კურსები _002 მათემატიკა მასწავლებელი_001
კურსის _003 ინგლისური მასწავლებელი_003

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

მასწავლებლები
მასწავლებელი_დ მასწავლებელი_სახელი
მასწავლებელი_001 კარმენი
მასწავლებელი_002 ვერონიკა
მასწავლებელი_003 ჯორჯ

ჩვენ შეგვიძლია ვთქვათ, რომ მასწავლებლის _ უცხოური გასაღები დაეხმარა კურსებისა და პედაგოგთა ცხრილებს შორის ურთიერთობის ჩამოყალიბებას.

სახეები მონაცემთა ბაზა ურთიერთობები

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

ერთი-ერთი : ამ ტიპის ურთიერთობა საშუალებას იძლევა მხოლოდ ერთი ჩანაწერი ურთიერთობების თითოეულ მხარეს.

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

ერთი- to-many : ერთი- to- მრავალი ურთიერთობისათვის საშუალებას იძლევა ერთი ჩანაწერი ერთ მაგიდასთან დაკავშირებული იყოს მრავალი ჩანაწერი სხვა მაგიდაზე.

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

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

ბევრი- to-many : ეს არის რთული ურთიერთობა, რომელშიც ბევრი ჩანაწერი მაგიდა შეიძლება დაუკავშირონ ბევრი ჩანაწერი სხვა მაგიდაზე. მაგალითად, ჩვენი ბიზნესი სავარაუდოდ არა მარტო მომხმარებლებსა და ბრძანებებს სჭირდება, მაგრამ სავარაუდოდ ასევე სჭირდება პროდუქტები მაგიდას.

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

რა არის მონაცემთა ბაზის ურთიერთობები მნიშვნელოვანი?

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

მასწავლებლები და კურსები
მასწავლებელი_დ მასწავლებელი_სახელი კურსი
მასწავლებელი_001 კარმენი ბიოლოგია, მათემატიკა
მასწავლებელი_002 ვერონიკა მათემატიკა
მასწავლებელი_003 ჯორჯ ინგლისური

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

ან, შესაძლოა, გადავწყვიტეთ, უბრალოდ დაამატოთ მეორე ჩანაწერი კარმენისთვის, რათა 1NF- ის განხორციელება:

მასწავლებლები და კურსები
მასწავლებელი_დ მასწავლებელი_სახელი კურსი
მასწავლებელი_001 კარმენი ბიოლოგია
მასწავლებელი_001 კარმენი მათემატიკა
მასწავლებელი_002 ვერონიკა მათემატიკა
მასწავლებელი_003 ჯორჯ ინგლისური

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

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

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