Берилиштер базасынын дизайны. Мыкты практикалар

Темп боюнча кийинки агымдын башталышын күтүү менен "Маалымат базасы" Биз маалымат базасын иштеп чыгуу үчүн маанилүү кеңештер менен чакан автордук материал даярдадык. Бул материал сизге пайдалуу болот деп ишенебиз.

Берилиштер базасынын дизайны. Мыкты практикалар

Маалымат базалары бардык жерде: эң жөнөкөй блогдордон жана каталогдордон баштап ишенимдүү маалымат системаларына жана чоң социалдык тармактарга чейин. Маалыматтар базасы жөнөкөйбү же татаалбы, анчалык деле маанилүү эмес, аны туура долбоорлоо маанилүү. Маалыматтар базасы ойлонулбай жана максатын так түшүнбөстөн түзүлсө, натыйжасыз гана эмес, база менен андан ары иштөө колдонуучулар үчүн чыныгы азап, өтпөс токой болуп калат. Бул жерде сизге пайдалуу жана колдонууга оңой продуктту түзүүгө жардам бере турган маалымат базасын дизайн боюнча кеңештер.

1. Таблица эмне үчүн жана анын түзүлүшү кандай экенин аныктаңыз

Берилиштер базасынын дизайны. Мыкты практикалар

Бүгүнкү күндө Scrum же RAD (Rapid Application Development) сыяктуу өнүктүрүү ыкмалары IT командаларына маалымат базаларын тез иштеп чыгууга жардам берет. Бирок, убакыттын артынан сая түшүп, максаттын өзү эмне экенин, акыркы жыйынтык кандай болушу керек экенин бүдөмүк элестетип, түз эле базаны курууга сүңгүп кетүү абдан чоң азгырык.
 
Коллектив эпкиндуу, тез иштееге багытталгандай, бирок бул закым. Долбоордун тереңдигине канчалык тереңирээк жана тезирээк сүңгүп кирсеңиз, маалымат базасынын дизайнындагы каталарды аныктоо жана өзгөртүү үчүн ошончолук көп убакыт талап кылынат.

Ошентип, сиз чечишиңиз керек болгон биринчи нерсе - бул маалымат базасынын максатын аныктоо. Колдонмонун кайсы түрү үчүн маалымат базасы иштелип жатат? Колдонуучу жазуулар менен гана иштейби жана транзакцияларга көңүл бурушу керекпи же ал маалыматтын аналитикасына көбүрөөк кызыгабы? Базаны кайда жайгаштыруу керек? Ал кардарлардын жүрүм-турумун көзөмөлдөйбү же жөн гана кардар мамилелерин башкарабы? 

Дизайн тобу бул суроолорго канчалык эрте жооп берсе, маалымат базасын долбоорлоо процесси ошончолук жылмакай болот.

2. Сактоо үчүн кандай маалыматтарды тандашым керек?

Берилиштер базасынын дизайны. Мыкты практикалар

Алдын ала пландоо. Маалыматтар базасы иштелип жаткан сайт же система келечекте эмне кылат деген ойлор. Техникалык шарттардын жөнөкөй талаптарынын чегинен чыгуу маанилүү. Колдонуучу сактай турган маалыматтардын бардык мүмкүн болгон түрлөрү жөнүндө ойлонбоңуз. Анын ордуна, колдонуучулар пост жаза алабы, документ же сүрөттөрдү жүктөй алабы же билдирүүлөр менен алмаша алабы деп ойлонуп көрүңүз. Эгер ушундай болсо, анда алар үчүн маалымат базасынан орун бөлүп беришиңиз керек.

Келечекте долбоорлоо базасы колдоого алынуучу топ, бөлүм же уюм менен иштешиңиз. Кардарларды тейлөө адистеринен тартып бөлүм башчыларына чейин ар кандай деңгээлдеги адамдар менен баарлашыңыз. Ошентип, пикирлердин жардамы менен сиз компаниянын талаптары жөнүндө так түшүнүк аласыз. 

Ошол эле бөлүмдүн ичиндеги колдонуучулардын керектөөлөрү сөзсүз түрдө карама-каршы келет. Эгер сиз буга туш болсоңуз, өз тажрыйбаңызга таянуудан коркпоңуз жана бардык тараптарга ылайыктуу жана маалымат базасынын түпкү максатын канааттандырган компромиссти табыңыз. Ишенбеңиз: келечекте сиз кармада +100500 жана тоодой печенье аласыз.

3. Этияттык менен үлгү маалыматтар

Берилиштер базасынын дизайны. Мыкты практикалар

Маалыматтарды моделдөөдө көңүл буруу керек болгон бир нече негизги пункттар бар. Жогоруда айтылгандай, маалымат базасынын максаты моделдөөдө кандай ыкмаларды колдонууну аныктайт. Эгерде биз жазууларды онлайн иштетүү (OLTP) үчүн маалымат базасын иштеп чыгууда, башкача айтканда, жазууларды түзүү, түзөтүү жана жок кылуу үчүн, биз транзакция моделин колдонобуз. Эгерде маалымат базасы реляциялык болушу керек болсо, анда көп өлчөмдүү моделдештирүү жакшы.

Моделдөө учурунда концептуалдык (CDM), физикалык (PDM) жана логикалык (LDM) маалымат моделдери курулат. 

Концептуалдык моделдер объекттерди жана алар камтыган маалыматтардын түрлөрүн, ошондой эле алардын ортосундагы мамилелерди сүрөттөйт. Маалыматтарыңызды логикалык бөлүктөргө бөлүңүз - бул жашоону бир топ жеңилдетет.
Эң негизгиси ченемдүүлүк, ашыкча болбойт.

Эгерде объектти бир сөз же сөз айкашында классификациялоо өтө кыйын болсо, анда субтиптерди (балдар) колдонууга убакыт келди.

Эгерде объект өз жашоосун алып барса, анын жүрүм-турумун жана сырткы көрүнүшүн, ошондой эле башка объектилер менен болгон мамилелерин сүрөттөгөн атрибуттарга ээ болсо, анда сиз подтипти гана эмес, супертипти (ата-эне объекти) да коопсуз колдоно аласыз. 

Эгер сиз бул эрежени этибарга албасаңыз, башка иштеп чыгуучулар сиздин моделиңизде адашып калышат жана маалыматтарды жана аны кантип чогултуу эрежелерин толук түшүнбөй калышат.

Концептуалдык моделдер логикалык моделдердин жардамы менен ишке ашырылат. Бул моделдер физикалык маалымат базасын долбоорлоо үчүн жол картасы сыяктуу. Логикалык моделде бизнес маалыматтарынын субъекттери аныкталат, берилиштердин түрлөрү аныкталат жана маалыматтар ортосундагы мамилелерди жөнгө салуучу эреже ачкычынын статусу аныкталат.

Андан кийин Логикалык маалыматтар модели алдын ала тандалган DBMS (маалымат базасын башкаруу системасы) платформасы менен салыштырылат жана Физикалык модель алынат. Бул маалыматтардын физикалык түрдө сакталышын сүрөттөйт.

4. Туура маалымат түрлөрүн колдонуңуз

Берилиштер базасынын дизайны. Мыкты практикалар

Туура эмес маалымат түрүн колдонуу так эмес маалыматтарга, таблицаларга кошулууда кыйынчылыктарга, атрибуттарды синхрондоштурууда кыйынчылыктарга жана файлдын көлөмүнүн көбөйүшүнө алып келиши мүмкүн.
Маалыматтын бүтүндүгүн камсыз кылуу үчүн атрибут ага алгылыктуу гана маалымат түрлөрүн камтышы керек. Эгерде курак маалымат базасына киргизилсе, тилке максимум 3 сандан турган бүтүн сандарды сакташын текшериңиз.

NULL мааниси менен минималдуу бош мамычаларды түзүңүз. Эгерде сиз бардык мамычаларды NULL катары түзсөңүз, бул чоң ката. Эгер сизге белгилүү бир бизнес функциясын аткаруу үчүн бош тилке керек болсо, анда маалыматтар белгисиз же мааниси жок болсо, анда аны түзүүдөн тартынбаңыз. Анткени, биз алдын ала "Өлгөн күнү" же "Кызматтан бошотуу күнү" деген графаларды толтура албайбыз, биз манжаларыбызды асманга көрсөткөн алдын ала айтуучулар эмеспиз :-).

Көпчүлүк моделдөө программалары (ER/Studio, MySQL Workbench, SQL DBM, glify).com) маалыматтар маалымат аймактарынын прототиптерин түзүүгө мүмкүндүк берет. Бул туура маалымат түрүн, колдонмо логикасын жана жакшы иштешин гана эмес, ошондой эле баалуулуктун талап кылынышын камсыздайт.

5. Табигый болуңуз

Берилиштер базасынын дизайны. Мыкты практикалар

Таблицадагы кайсы тилкени ачкыч катары колдонууну чечүүдө ар дайым колдонуучу кайсы талааларды түзөтө аларын эске алыңыз. Аларды эч качан ачкыч катары тандабаңыз - жаман идея. Бардык нерсе болушу мүмкүн, бирок сиз анын уникалдуу экенине кепилдик беришиңиз керек.

Табигый же бизнес ачкычын колдонуу эң жакшы. Бул семантикалык мааниге ээ, ошондуктан сиз маалымат базасында кайталануудан качасыз. 

Бизнес ачкычы уникалдуу болбосо (аты, фамилиясы, кызматы) жана таблицанын ар кандай саптарында кайталанбаса же ал өзгөрүшү керек болсо, анда түзүлгөн жасалма ачкыч негизги ачкыч катары белгилениши керек.

6. Ченемде нормалдашыңыз

Берилиштер базасынын дизайны. Мыкты практикалар

Берилиштер базасында маалыматтарды эффективдүү уюштуруу үчүн бир катар көрсөтмөлөрдү аткарып, маалымат базасын нормалдаштыруу керек. Беш нормалдуу форма бар.
Нормалдаштыруу менен, сиз ашыкчалыктан качасыз жана колдонмоңузда же сайтыңызда колдонулган маалыматтардын бүтүндүгүн камсыздайсыз.

Адаттагыдай эле, баары ченемде болушу керек, ал тургай нормалдаштыруу. Эгерде маалымат базасында ошол эле уникалдуу ачкычтар менен өтө көп таблицалар бар болсо, анда сиз алагды болуп, маалымат базасын ашыкча нормалдаштырдыңыз. Ашыкча нормалдаштыруу маалыматтар базасынын иштешине терс таасирин тийгизет.

7. Эрте сыноо, тез-тез сына

Берилиштер базасынын дизайны. Мыкты практикалар

Сыноо планы жана туура тестирлөө маалымат базасынын дизайнынын бир бөлүгү болушу керек.

Базаңызды текшерүүнүн эң жакшы жолу - Үзгүлтүксүз интеграция. "Маалымат базасынын жашоосундагы бир күн" сценарийин окшоштуруңуз жана бардык четки учурлар каралып жатканын жана колдонуучу менен кандай иштешүүсү мүмкүн экенин текшериңиз. Мүчүлүштүктөрдү канчалык тез тапсаңыз, ошончолук убакытты да, акчаңызды да үнөмдөйсүз.

Бул чоң өндүрүмдүүлүк жана эффективдүү маалымат базасын иштеп чыгуу үчүн колдоно турган жети кеңеш. Аларды ээрчисеңиз, келечекте баш оорулардын көбүнөн кутуласыз. Бул кеңештер базаны моделдөөдөгү айсбергдин чети гана. Лайфхактардын көп саны бар. Кайсынысын колдоносуз?

Source: www.habr.com

Комментарий кошуу