Ნორმალიზაცია თქვენი მონაცემთა ბაზა: პირველი ჩვეულებრივი ფორმა

ეს ორი მარტივი წესი დაეხმარება თქვენს მონაცემთა ბაზის ნორმალიზებას

პირველი ფორმალური ფორმა (1NF) ადგენს ორგანიზებულ მონაცემთა ბაზის ძირითად წესებს:

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

1. დუბლირების აღმოფხვრა

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

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

თუმცა, გაიხსენეთ 1NF- ის პირველი წესი: იგივე მაგიდისგან დუბლიკატი სვეტების აღმოფხვრა. ცხადია, Subordinate1-Subordinate4 სვეტები დუბლიკატი არიან. მომეცი მომენტი და გაიგე ეს სცენარი. თუ მენეჯერს მხოლოდ ერთი ექვემდებარება, Subordinate2-Subordinate4 სვეტების უბრალოდ დაკარგა შენახვის სივრცე (ძვირფასი მონაცემთა ბაზის საქონელი). უფრო მეტიც, წარმოიდგინეთ საქმე, სადაც მენეჯერს უკვე აქვს 4 ქვედანაყოფი - რა მოხდება, თუ ის სხვა თანამშრომელს იღებს? მთელი მაგიდა სტრუქტურა მოითხოვს მოდიფიკაციას.

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

და ქვედანაყოფების ველი შეიცავს მრავალ ჩანაწერს ფორმა "მერი, ბილ, ჯო".

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

აქ არის მაგიდა, რომელიც აკმაყოფილებს 1NF- ის პირველ წესს:

ამ შემთხვევაში, თითოეულ ქვემდებარეს აქვს ერთი ჩანაწერი, მაგრამ მენეჯერები შეიძლება ჰქონდეს მრავალი მასალა.

2. ძირითადი გასაღები იდენტიფიცირება

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

უმჯობესია გამოიყენოთ ჭეშმარიტად უნიკალური იდენტიფიკატორი (როგორიცაა თანამშრომელი ID), როგორც ძირითადი გასაღები . ჩვენი საბოლოო მაგიდა ასე გამოიყურება:

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