Теориялық мағлұмат
-
Қатынасты қалыпқа келтіру ұғымы. Бірден бір мәліметтер әртүрлі әдіспен кестелерге (қатынас)
Топтасады, яғни өзара байланысқан ақпараттық нысан қатынастарының әртүрлі терулі ұйымы болуы мүмкін. Қатынастағы атрибут топтасуы рационалды болуы керек, яғни, мәліметтер қайталануының аздығы және олардың өңделуі мен жаңаруының қарапайым процедуралары.
Егер қатынастарды нормалау талаптарына жауап берсе, басқа мүмкін болатын қатынастар теруіне қарағанда, белгілі бір қатынастар тобы қосқанда, мәліметтерді жойғанда күшті қасиеттерге ие.
Қалыпқа келтіру процесі дегеніміз қайтатоптау, ол қайталанушы топтарды жою және мәліметтерді сақтаудағы теріскейлерді жою жолымен кестені дұрыс ретке келтіреді.
Қалыпқа келтіру теориясы нормалды форма концепциясына негізделген. Айтуынша, кесте берілген нормалды формада болады, егер белгілі бір талаптарға жауап бере алса. Теория жүзінде бес нормалды форма бар, бірақ тәжірибеде тек бастапқы үшеуі қолданылады. Сонымен қатар, басындағы екі нормалды форма үшіншіге апаратын мәні бойынша мәліметтер базасын келтіру үшін аралақ қадамдар болып табылады.
Қалыпқа келтіру теориясы кестенің өріс арасындағы тәуелділікке негізделіп жасалады. Мұндай тәуелділіктің екі түрі бар: функционалды және көпмағыналы.
Функционалды тәуелділік. Кестенің В өрісі осы кестенің А өрісіне тәуелді, кез келген уақыт моментінде А өрісінің әртүрлі мағынасына В өрісінің әртүрлі мағынасының біреуі ғана міндетті түрде болады.
Ескере кететініміз, мұнда А және В өрістері құрама болуы мүмкін.
Толық функционалды тәуелділік. Егер әрбір А өрісіне функционалды тәуелді болса және кез келген А өрісінің көпастыртынына (помножества) функционалды тәуелді болмаса, В өрісі А құрама өрісінен толық функционалды тәуелділікте болады.
Көпмағыналы тәуелділік. А өрісі сол кестенің В өрісін көпмағыналы анықтайды, егер әрбір А өрісінің мағынасына көп сәйкес келетін жақсы анықталған В мағына болса.
NorthWind базасындағы мәліметтерді мысалға алып, нормалау процесін иллюстрациялайық. Барлық тапсырыс берілген азық-түлікті келесі кестеге тіркейміз деп алайық.
OrderID ProductID CustomerID Address Quantity OrderDate
10265 17 BLONP 24, place Kleber 30 07.25.96
10265 70 BLONP 24, place Kleber 20 07.25.96
10278 44 BERGS Berguvsvagen 8 16 08.12.96
10278 59 BERGS Berguvsvagen 8 15 08.12.96
10278 63 BERGS Berguvsvagen 8 8 08.12.96
10278 73 BERGS Berguvsvagen 8 25 08.12.96
10280 24 BERGS Berguvsvagen 8 12 08.14.96
10280 55 BERGS Berguvsvagen 8 20 08.14.96
10280 75 BERGS Berguvsvagen 8 30 08.14.96
10289 3 BSBEV Fauntleroy Circus 30 08.26.96
10289 64 BSBEV Fauntleroy Circus 9 08.26.96
10297 39 BLONP 24, place Kleber 60 09.04.96
10297 72 BLONP 24, place Kleber 20 09.04.96
10308 69 ANATR Avda. de la Constitucion 22 1 09.18.96
10308 70 ANATR Avda. de la Constitucion 22 5 09.18.96
Бұл кесте құрылымының түрі мынадай (4 сурет).
Сур. 4.OrderedProducts нормаланбаған кесте құрылымы
Бірінші нормалды форма қарапайым және күрделі атрибут ұғымдарымен байланысты. Қарапайым атрибут деп – мәні атомарлы (яғни бөлінбейтін) атрибутты айтамыз. Күрделі атрибут деп бір немесе бірнеше домендердің мәнін қосатын атрибутты айтамыз. Бірінші нормалды формада қайталанатын атрибуттар немесе атрибут топтары жойылады, яғни мәні басқа заттар шығады, атрибут астына жасырынғандар.
1НФ –ке қатынас алып келінеді, егер барлық атрибуттар қарапайым болса, яғни атрибут мәні көп немесе қайталанушы топ болмауы тиіс.
Кестелерді 1НФ-ға келтіру үшін күрделі атрибуттарды қарапайымға бөлі керек, ал көпмағыналы атрибуттарды бөлек қатынаста жазу керек.
Қатынастарды бірінші нормалды формаға түрлендіруқатынастардың реквизиттары (өрістері) және кілт өзгеруіне әкелуі мүмкін.
Кесте бірінші нормалды формаға сәйкес келуі үшін оның өрістерінің барлық мәні атомарлы және барлық жазбалары уникалды болуы тиіс. Сондықтан кез-келген реляционды кесте, оның ішінде OrderedProducts, анықтамасы бойынша бірінші нормалды формада орналасқан.
Сонымен қатар бұл кестеде артық мәліметтер де бар, мысалы, сатып алушы туралы кейбір мәліметтер әрбір берілген тапсырыста қайталанады. Мәліметтердің артықтығының нәтижесі мәліметтер модификациясының анамалиясы – жазбаларды қосқанда, өзгерткенде немесе жойғанда пайда болатын мәселелер. Мысалы, OrderedProducts кестесіндегі мәліметтерді реттеген кезде келесі мәселелер туындауы мүмкін:
Белгілі бір сатып алушының мекен-жайы мәліметтер базасында тек сатып алушы тым болмаса бір рет түлікке тапсырыс берсе ғана сақталады.
Тапсырыс берілген азы-түлік жазбасын жойғанда, сонымен бірге тапсырыс тапсырыс, сатып алушы жайлы да мәліметтер жойылады.
Егер тапсырыс беруші мекен-жайын өзгертсе, ол тапсырыс берген азық-түлік жайлы жазбаларды жаңарту керек.
Бұл мәселелердің кейбіреуі мәліметтер базасын екінші нормалды формаға келтірумен шешілуі мүмкін.
Айтуы бойынша, реляционды кесте екінші нормалды формада орналасқан,
егер ол бірінші нормалды формада орналасса және оның барлық кіттік емес өрістері толығымен біріншілік кілтке тәуелді.
OrderedProducts кестесі екінші емес бірінші нормалды формада
орналасқа, себебі CustomerID, Address и OrderDate өрістері OrderID өрісіне тәуелдіі, ал ол біріншілік кілттің (OrderID, ProductID) құрама бөлігі болып табылады.
Бірінші нормалды формадан екіншіге көшу үшін келесі қадамдарды
орындау керек:
Кілттік емес өрістердің кейбіреуі тәуелді болатындай біріншілік кілтті
қандай бөліктерге бөлуге болатынын анықта. (бұл бөліктердің бір бағаннан тұруы міндетті емес!).
Әрбір осындай бөлікке жаңа кесте құрып, оған тәуелді топтарды осы
кестеге көшіру. Бастапқы біріншілік кілттің жартысы жаңа кестенің біріншілік кілті болады.
Сыртқы кілт болатындар басқа келесі кестеге көшірілген алғашқы кестені жою.
Мысалы, OrderedProducts кестесін екінші нормалды формаға келтіру үшін, CustomerID, Address и OrderDate өрістерін жаңа кестеге (OrdersInfo деп атайық) көшіреміз, сонымен қатар OrderID жаңа кестенің біріншілік кілті болуы тиіс (5-сурет).
OrdersInfo
OrderID CustomerID Address OrderDate
10265 BLONP 24,place Kleber 07.25.96
10278 BERGS Berguvsvagen 8 08.12.96
10280 BERGS Berguvsvagen 8 08.14.96
10289 BSBEV Fauntleroy Circus 08.26.96
Avda. de la
Constitucion 2222
10297 BLONP 24, place Kleber 09.04.96
10308 ANATR 09.18.96
|
|
OrderDetails
|
OrderID
|
ProductID
|
Quantity
|
10265
|
17
|
30
|
10265
|
70
|
20
|
10278
|
44
|
16
|
10278
|
59
|
15
|
10278
|
63
|
8
|
10278
|
73
|
25
|
10280
|
24
|
12
|
10280
|
55
|
20
|
10280
|
75
|
30
|
10289
|
3
|
30
|
10289
|
64
|
9
|
10297
|
39
|
60
|
10297
|
72
|
20
|
10308
|
69
|
1
|
10308 70 5
|
Достарыңызбен бөлісу: |