Нормализатсияи пойгоҳи додаҳо
Қисми чоруми мафҳумҳои пойгоҳи додаҳо
Ба қисми чоруми ин силсила хуш омадед! Дар ин қисм мехоҳем бо пойгоҳи додаҳо «муомилаи муътадил» кунем ва онро аз бесарусомонии додаҳо наҷот диҳем.
Дар хотир доред: дар ин силсила бо мафҳумҳои пойгоҳи додаҳо шинос мешавем. Ба коднависӣ ё навъи мушаххаси пойгоҳи додаҳо намепардозем.
Қисми пешина: Пойгоҳи додаҳо бе индекс — мисли китобхона бе феҳрист!
✅ Нормализатсия — Normalization — чист?
Аввал ба таърифе, ки муаллиф аз Википедия меорад, назар мекунем:
Яке аз принсипҳои илми пойгоҳи додаҳо бартараф кардани зиёдатӣ — redundancy — мебошад. Зиёдатӣ яъне як додаи муайян дар чанд ҷойи пойгоҳ нигоҳ дошта шавад.
Биёед мисол орем.
Фарз кунед ҷевоне пур аз либос дорем ва ҳамаашро бетартиб гузоштаем: шимҳо, куртаҳо ва ҷӯробҳо дар як ҷо ҷамъ шудаанд.
Акнун барои ёфтани куртаи муайян маҷбур мешавем ҳамаи либосҳо, ҳатто шимҳо ва ҷӯробҳоро ҳам аз назар гузаронем. Яъне кори зиёдатӣ анҷом медиҳем.
Аммо агар либосҳоро гурӯҳбандӣ кунем, чӣ?
- футболкаҳо дар як раф;
- шимҳо дар рафи дигар;
- либосҳои зимистона дар ҷойи алоҳида.
Оё ёфтани либоси лозима тезтару осонтар намешавад?
Нормализатсияи пойгоҳи додаҳо низ додаҳоро ба тартиб медарорад: маълумоти марбут ба ҳар мавзуъ дар ҷадвалҳои мувофиқ ҷой мегирад ва ниёз ба такрори нолозим кам мешавад.
Ин кор такрори додаҳоро коҳиш дода, идоракунии маълумотро осон мекунад.
Дар матн шаклҳои зерин номбар шудаанд:
- 1NF
- 2NF
- 3NF
- 4NF
- BCNF
Одатан барои бисёр ҳолатҳо расидан то шакли сеюм кофӣ дониста мешавад.
✅ Шакли якуми нормалӣ — 1NF
Дар ин бахш муаллиф талаботро чунин шарҳ медиҳад.
Якум: ҳар майдон бояд як қимати муайян дошта бошад — атомӣ бошад.
«Атомӣ» яъне чӣ? Магар дарси химия аст? 😄
Фарз кунед ҷадвали users доред ва яке аз сутунҳо суроғаи корбарро нигоҳ медорад. Агар суроғаи Муҳаммадро чунин нависед:
iran-tehran-tajrish
баъдтар барои ҷустуҷӯ аз рӯйи қисмҳои суроға ба мушкил дучор мешавед.
Роҳи пешниҳодшуда ин аст, ки ҷадвали address созед ва қисмҳои суроғаро дар сутунҳои алоҳида нигоҳ доред:
country— кишвар;city— шаҳр;street— кӯча.
Сипас онро тавассути калид ба ҷадвали корбарон пайваст кунед. Ҳамин тавр, ҷустуҷӯ осонтар мешавад ва тағйироти суроға дар як ҷой анҷом меёбад.
Дуюм: аз такрори нолозими додаҳо пешгирӣ кунем.
Масалан, сутуни course дорем ва курсҳо чунинанд:
- математика;
- химия;
- физика.
Агар Ризо дар курси химия иштирок кунад, «химия» менависем. Агар Муҳаммад ҳам дар ҳамин курс бошад, боз «химия» менависем.
Дар натиҷа номи курс борҳо такрор мешавад. Агар хоҳем онро иваз кунем, бояд дар ҷойҳои зиёд тағйир диҳем.
Роҳи пешниҳодшуда: барои курсҳо ҷадвали алоҳида сохта, робитаи онҳоро бо корбарон тавассути калидҳо нигоҳ дорем. Он гоҳ номи курсро танҳо дар як ҷой тағйир медиҳем.
Сеюм: ҳар ҷадвал барои шиносоии сабтҳо калиди асосӣ дошта бошад.
Ин мавзуъ дар қисми дуюм — «Вақте ҷадвалҳо ошиқ мешаванд» шарҳ дода шудааст.
✅ Шакли дуюми нормалӣ — 2NF
- Аввал ҷадвал бояд талаботи шакли якумро иҷро кунад.
- Сипас ҳамаи сутунҳои ғайрикалидӣ бояд ба тамоми калиди асосӣ вобаста бошанд.
Муаллиф чунин ҷадвали фармоишҳоро мисол меорад:
| OrderID | CustomerID | Address |
|---|---|---|
| 1 | 101 | Теҳрон |
| 2 | 101 | Теҳрон |
| 3 | 102 | Шероз |
Дар шарҳи мисол гуфта мешавад: ҷадвали orders бояд маълумоти фармоишҳоро нигоҳ дорад. Агар Address суроғаи худи муштарӣ бошад, ҷойи он дар ҷадвали муштариён аст.
Аз ин рӯ, суроғаро ба ҷадвали корбар ё муштарӣ мегузаронем, то барои ҳар фармоиш такрор нашавад.
✅ Шакли сеюми нормалӣ — 3NF
- Аввал ҷадвал бояд талаботи шаклҳои якум ва дуюмро иҷро кунад.
- Сутунҳои ғайрикалидӣ набояд тавассути сутунҳои ғайрикалидии дигар ба калид вобаста бошанд.
Муаллиф чунин мисол меорад:
| OrderID | CustomerID | City | ZipCode |
|---|---|---|---|
| 1 | 101 | Теҳрон | 12345 |
| 2 | 102 | Шероз | 54321 |
Дар ин мисол фарз шудааст, ки ZipCode ба City вобаста аст. Чунин вобастагӣ метавонад ҳангоми навсозӣ ё ҳазф мушкил ба вуҷуд орад: масалан, шаҳр тағйир ёбад, аммо рамзи почта ҳамон боқӣ монад.
Роҳи пешниҳодшуда ин аст, ки ҷадвали алоҳидаи City сохта, маълумоти шаҳр ва рамзи почтаро дар он нигоҳ дорем.
✅ Оё нормализатсия ҳамеша хуб аст?
Тавре дар мақолаҳои пешина гуфта шуд, дар муҳандисии нармафзор ҳар интихоб бартарӣ ва маҳдудиятҳои худро дорад. Барои ҳама ҳолатҳо як роҳҳалли ягона вуҷуд надорад.
Нормализатсия ҳам дар баробари бартариҳояш метавонад чунин хароҷот дошта бошад:
- Мураккаб шудани дархостҳо: додаҳо байни чанд ҷадвал тақсим мешаванд ва гирифтани маълумоти пурра метавонад дархостҳои мураккабтар талаб кунад.
- Паст шудани суръати хондан дар баъзе ҳолатҳо: агар гирифтани фаврии маълумоти якҷоя муҳим бошад, нормализатсияи зиёд метавонад хонданро суст кунад.
- Зиёд шудани ҷадвалҳо ва JOIN-ҳо: барои ҷамъ овардани маълумот пайваст кардани ҷадвалҳои бештар лозим мешавад, ки метавонад ба самаранокии дархостҳо таъсир расонад.
Мақолаҳои маъмул
Ҳар роҳе, ки интихоб мекунӣ
Ҳаёт мисли як ҳавопаймоест, ки ту худат пилот ҳастӣ, на мусофир. Танҳо ту қодирӣ самти ҳаракатро интихоб кунӣ, баландӣ ва суръатро муайян намоӣ. Агар раҳнамоиро ба дигарон супорӣ, хавфи гум кардани роҳи ҳақиқии худ вуҷуд дорад. Дар ҳар як қарор, дар ҳар
Насиҳати Падар
Падарам ҳар вақт, ки вориди утоқам мешуд ва медид, ки чароғи хона ё дастгоҳи шамолдиҳӣ рӯшан асту ман аз утоқам берунам, мегуфт: - Барои чи чароғ ва дигар асбобҳои барқиро хомӯш намекунӣ ва барқро беҳуда сарф менамоӣ? Вақте, ки вориди ҳамом мешуд ва
Ростгӯи камоли инсонист.
Ростиро набувад ҳеҷ заволе ба миён. Сарв агар хушк шавад боз асо мегардад. Ростию ростгӯӣ ва росткорӣ фазилатҳои хуби инсонианд. Агар инсон дорои ин хислатҳои бузург бошад, дар ягон давру замон обрую эътибор ва бузургию соҳибиззатии хешро аз даст
МУҚАДАСОТИ МО
Дар Конститутсияи (Сарқонуни) Ҷумҳурии Тоҷикистон махсус қайд гирифтааст, ки «Рамзҳои давлатии Тоҷикистон Парчам, Нишон ва Суруди Миллӣ аст». Барои ҳар як тоҷикистонӣ Ватан, миллат, забони тоҷикӣ, Парчам, Нишони давлатӣ, Суруди миллӣ муқаддасанд. Мо ба

Барномасозӣ
Олами Афсонаҳо
Ахбор
Дунё