ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 57
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
SQL (құрылымдық сұрау тілі – құрылымдық сұрау тілі) – пайдаланушының дерекқормен өзара әрекеттесуі үшін қолданылатын бағдарламалау тілі.
Деректер базасын қалыпқа келтіру
Реляциялық мәліметтер базасында "қалыпқа келтіру" (нормализация бд) деген ұғым бар.
Қалыпты форма-атрибуттар (кесте өрістері) арасындағы артық функционалдық тәуелділіктер базасынан жою үшін реляциялық мәліметтер базасы теориясындағы кестелердің құрылымына қойылатын талап.
Қалыпты формалар әдісі (NF) бір қатынас шеңберінде мәселені шешу объектілері туралы ақпарат жинаудан және қатынастарды қалыпқа келтіру процедуралары негізінде осы қатынастың бірнеше өзара байланысты қатынастарға бөлінуінен тұрады.
Қалыпқа келтірудің мақсаты: кортеждерді(кесте жолдарын) қосу, өңдеу және жою кезінде туындаған ауытқулардың себебі болып табылатын деректердің артық қайталануын болдырмау.
Сондай-ақ, қалыпқа келтіруді мәліметтер базасын жобалау тұрғысынан қарастыруға болады, бұл жағдайда біз қалыпқа келтірудің анықтамасын келесідей тұжырымдай аламыз.
Қалыпқа келтіру-бұл мәліметтер базасын минималды резервке келтіруге мүмкіндік беретін мәліметтер базасын жобалау әдісі.
Артықтық(избыточность), әдетте, қатынастардың (кестелердің) ыдырауы, яғни бір кестені бірнеше кестеге бөлу арқылы жойылады.
Неліктен дерекқорды қалыпқа келтіру керек?
Шындығында, деректердің артықтығы әртүрлі ауытқулардың(қателердің) пайда болуының алғышарттарын жасайды, өнімділікті төмендетеді және деректерді басқаруды икемді немесе өте ыңғайлы етпейді. Осы жерден қалыпқа келтіру қажет деген қорытынды жасауға болады:
Қателерді жою
Өнімділікті арттыру
Деректерді басқарудың ыңғайлылығын арттыру
Енді деректердің артықтығы туралы сөйлесейік, бұл не.
Деректердің артықтығы-дәл сол деректер базада бірнеше жерде сақталса, бұл ауытқуларға әкеледі.
Бұл жағдайда бірнеше жерде бірдей деректерді қосу, өзгерту немесе жою қажет. Мысалы, егер сіз операцияны бір жерде орындамасаңыз, онда кейбір деректер басқа жерде дәл сол деректерге сәйкес келмейтін жағдай туындайды.
Мысалды қарастырайық. Бізде жиһаз бөлшектері туралы келесі кесте бар делік, атап айтқанда заттың атауы мен осы зат жасалған материалдар сақталған кесте болсын.
Идентификатор предмета | Наименование предмета | Материал |
1 | Стул | Металл |
2 | Стол | Массив дерева |
3 | Кровать | ЛДСП |
4 | Шкаф | Массив дерева |
5 | Комод | ЛДСП |
Енді материалдың атауын түзету қажеттілігі туындады делік, "қатты ағаштың" орнына "табиғи ағаш" деп жазу керек, және мұны істеу үшін біз бірден бірнеше жолға өзгертулер енгізуіміз керек, өйткені қатты ағаштан жасалған заттар бірнеше, атап айтқанда 2: үстел мен шкаф.
Енді елестетіп көріңізші, қандай да бір себептермен біз тек бір жолға өзгертулер енгіздік, нәтижесінде біздің кестеде "қатты ағаш" және "табиғи ағаш"болады.
Идентификатор предмета | Наименование предмета | Материал |
1 | Стул | Металл |
2 | Стол | Натуральное дерево |
3 | Кровать | ЛДСП |
4 | Шкаф | Массив дерева |
5 | Комод | ЛДСП |
Осы атаулардың қайсысы дұрыс болады? Егер біз жаңа жазбаларды қосу кезінде тағы бір жаңа мағына бере алатын болсақ, мысалы, жай "ағаш".
Бұл жағдайда біздің кестеде "қатты ағаш", "табиғи ағаш" және жай "ағаш" болады, және жалпы, бұл жай мәтін.
Идентификатор предмета | Наименование предмета | Материал |
1 | Стул | Металл |
2 | Стол | Натуральное дерево |
3 | Кровать | ЛДСП |
4 | Шкаф | Массив дерева |
5 | Комод | ЛДСП |
6 | Тумба | Дерево |
Дегенмен, бұл бір материал, біз жай ғана оның атын түзетуді шештік немесе жаңа жазбаны қосу кезінде қателестік. Бұл бір жерде бір деректер басқа жерде дәл сол деректерге сәйкес келмейтін аномалия. Бұл аномалияның бір ғана түрі, бірақ деректерді қосу, өзгерту және жою процесінде көптеген басқа қарама-қайшы жағдайлар, яғни аномалиялар пайда болуы мүмкін.
Сонымен қатар, біздің кестеде тек 5 жазба бар екенін атап өткен жөн, енді олардың миллионы бар екенін елестетіп көріңіз!
Міне, Сондықтан біз дерекқордағы деректердің артықтығын жоюымыз керек, яғни.дерекқорды қалыпқа келтіруді орындауымыз керек..
Бұл нақты жағдайда біз жиһаз бұйымдары жасалған материалдың атауын бөлек кестеге шығаруымыз керек, ал заттармен кестеде тек қажетті материалға сілтеме жасауымыз керек, осылайша осы сілтемені бастапқы жазбамен байланыстыра отырып, біз сол немесе басқа заттың қандай материалдан жасалғанын түсінеміз.
Предметы мебели.
Идентификатор предмета | Наименование предмета | Идентификатор материала |
1 | Стул | 2 |
2 | Стол | 1 |
3 | Кровать | 3 |
4 | Шкаф | 1 |
5 | Комод | 3 |
Материалы, из которых изготовлены предметы мебели.
Идентификатор материала | Материал |
1 | Массив дерева |
2 | Металл |
3 | ЛДСП |
Бұл жағдайда материалдың атауын өзгерту қажет болғанда, біз тек бір жерде өзгеріс жасаймыз, яғни.тек бір жолды өңдейміз.
Осылайша, материалдарды жеке кесте құру арқылы біз жоғарыда сипатталған аномалияны жоямыз.
Басқаша айтқанда, әр нысан бөлек сақталуы керек, ал егер бұл нысанды басқа кестеде пайдалану қажет болса, оған тек сілтеме жасалады, яғни.байланыс құрылады.
Деректер базасының қалыпты формалары
Жалпы, дерекқорды қалыпқа келтіру процесі келесідей: біз белгілі бір ережелерді сақтай отырып және белгілі бір талаптарды сақтай отырып, дерекқордағы кестелерді жобалаймыз.
Сонымен қатар, осы Ережелер мен талаптардың барлығын бірнеше жиынтыққа топтастыруға болады, егер сіз осы немесе басқа жиынтыққа енгізілген барлық ережелер мен талаптарды сақтай отырып мәліметтер базасын жобаласаңыз, онда мәліметтер базасы белгілі бір күйде болады, яғни.формада және бұл форма деп аталады мәліметтер базасының қалыпты формасы.
Басқаша айтқанда, белгілі бір ережелерді сақтай отырып және белгілі бір талаптарды сақтай отырып, біз мәліметтер базасын белгілі бір қалыпты формаға келтіреміз.
Деректер базасының қалыпты формасы-бұл мәліметтер базасы жауап беруі керек ережелер мен критерийлер жиынтығы.
Әрбір келесі қалыпты формада қатаң ережелер мен критерийлер бар, осылайша мәліметтер базасын белгілі бір қалыпты формаға келтіре отырып, біз белгілі бір ауытқулар жиынтығын жоямыз.
Осы жерден қалыпты форма неғұрлым жоғары болса, базада аномалиялар аз болады деген қорытынды жасауға болады.
Қалыпқа келтіру процесі-бұл мәліметтер базасын анықтамалық түрге келтірудің дәйекті процесі, яғни.бір қалыпты формадан келесі формаға көшу.
Басқаша айтқанда, бір қалыпты формадан келесі формаға өту процесі мәліметтер базасын жетілдіру болып табылады. Егер мәліметтер базасы белгілі бір қалыпты формада болса, бұл мәліметтер базасында ауытқулардың белгілі бір түрі жоқ дегенді білдіреді.
Мәліметтер базасының 5 негізгі қалыпты формасы бар:
Бірінші қалыпты форма (1NF)
Екінші қалыпты форма (2NF)
Үшінші қалыпты форма (3NF)
Төртінші қалыпты форма (4NF)
Бесінші қалыпты форма (5NF)
Алайда қосымша қалыпты формалар бар:
Қалыптан тыс форма немесе нөлдік қалыпты форма (UNF)
Бойс-Коддтың қалыпты формасы (BCNF)
Домендік қалыпты форма (DKNF)
Алтыншы қалыпты форма (6NF)
Деректер базасы кем дегенде үшінші қалыпты формада (3NF) болса, қалыпқа келтірілген болып саналады.
Бірінші қалыпты форма
Қатынас 1nf - де болады, егер оның барлық атрибуттары қарапайым болса, онда қолданылатын барлық домендерде тек скалярлық мәндер болуы керек. Кестеде жолдардың қайталануы болмауы керек.
Мысалы,"автомобильдер" кестесі бар:
Фирма | Модели |
BMW | M5, X5M, M1 |
Nissan | GT-R |
1nf қалыпқа келуінің бұзылуы BMW модельдерінде орын алады, өйткені бір ұяшықта 3 элементтің тізімі бар: M5, X5 M, M1, яғни ол атомдық емес.
Кестені 1нф-қа түрлендіріңіз
Фирма | Модели |
BMW | M5 |
BMW | X5M |
BMW | M1 |
Nissan | GT-R |
Екінші қалыпты форма
Қатынас 2NF - те, егер ол 1NF-те болса және әрбір негізгі емес атрибут бастапқы кілтке(БК) байланысты болса.
Төмендетілмегендік потенциалды кілттің құрамында атрибуттардың кіші жиынтығы жоқ екенін білдіреді, олардан осы функционалдық тәуелділікті де алуға болады.
Мысалы, кесте берілген:
Модель | Фирма | Цена | Скидка |
M5 | BMW | 5500000 | 5% |
X5M | BMW | 6000000 | 5% |
M1 | BMW | 2500000 | 5% |
GT-R | Nissan | 5000000 | 10% |
Кесте бірінші қалыпты формада, бірақ екіншісінде емес. Машинаның бағасы модель мен компанияға байланысты. Жеңілдік фирмаға байланысты, яғни бастапқы кілтке тәуелділік толық емес. Бұл негізгі атрибуттар компьютерге тәуелді емес екі қатынасты ыдырату арқылы түзетіледі.
Модель | Фирма | Цена |
M5 | BMW | 5500000 |
X5M | BMW | 6000000 |
M1 | BMW | 2500000 |
GT-R | Nissan | 5000000 |
Фирма | Скидка |
BMW | 5% |
Nissan | 10% |
Үшінші қалыпты форма
Қатынас 2NF болған кезде 3NF - те болады және әрбір негізгі емес атрибут бастапқы кілтке транзитивті емес тәуелді болады. Қарапайым тілмен айтқанда, екінші ереже мазмұны бірнеше кесте жазбаларына қатысты болуы мүмкін барлық негізгі емес өрістерді бөлек кестелерге шығаруды талап етеді.