Өгөгдлийн сангийн дизайн. Шилдэг практик

ханшаар дараагийн урсгал эхлэхийг хүлээж байна "Мэдээллийн сан" Бид мэдээллийн санг зохиоход чухал зөвлөмж бүхий жижиг зохиогчийн материалыг бэлтгэсэн. Энэ материал танд хэрэг болно гэж найдаж байна.

Өгөгдлийн сангийн дизайн. Шилдэг практик

Мэдээллийн сан нь хамгийн энгийн блог, лавлахаас эхлээд найдвартай мэдээллийн систем, томоохон нийгмийн сүлжээ хүртэл хаа сайгүй байдаг. Өгөгдлийн сан нь энгийн эсвэл төвөгтэй эсэх нь тийм ч чухал биш бөгөөд үүнийг зөв зохион бүтээх нь чухал юм. Мэдээллийн санг бодлогогүй, зорилгоо тодорхой ойлгоогүй хийвэл үр дүн муутай төдийгүй мэдээллийн сантай цаашид ажиллах нь хэрэглэгчдийн хувьд жинхэнэ зовлон, үл нэвтрэх ой болно. Хэрэгтэй, хэрэглэхэд хялбар бүтээгдэхүүн бүтээхэд тань туслах мэдээллийн сангийн дизайны зарим зөвлөмжийг энд оруулав.

1. Хүснэгт нь юунд зориулагдсан, ямар бүтэцтэй болохыг тодорхойл

Өгөгдлийн сангийн дизайн. Шилдэг практик

Өнөөдөр Scrum эсвэл RAD (Rapid Application Development) зэрэг хөгжүүлэлтийн аргууд нь мэдээллийн технологийн багийг мэдээллийн санг хурдан хөгжүүлэхэд тусалдаг. Гэсэн хэдий ч цаг хугацааны эрэл хайгуулд зорилго нь өөрөө юу вэ, эцсийн үр дүн нь ямар байх ёстойг бүдэг бадаг төсөөлж, бааз босгох руу шумбах нь маш их уруу таталт юм.
 
Баг нь үр дүнтэй, хурдан ажилд анхаарлаа төвлөрүүлж байгаа мэт боловч энэ бол гайхамшиг юм. Төслийн гүнд хэдий чинээ гүнзгий нэвтэрнэ, өгөгдлийн сангийн дизайн дахь алдааг олж илрүүлэх, өөрчлөхөд төдий чинээ их цаг хугацаа шаардагдана.

Тиймээс таны шийдэх ёстой хамгийн эхний зүйл бол мэдээллийн сангийн зорилгыг тодорхойлох явдал юм. Мэдээллийн санг ямар төрлийн хэрэглээнд зориулан боловсруулж байна вэ? Хэрэглэгч зөвхөн бүртгэлтэй ажиллаж, гүйлгээнд анхаарлаа хандуулах шаардлагатай юу, эсвэл өгөгдлийн аналитикийг илүү сонирхож байна уу? Суурийг хаана байрлуулах ёстой вэ? Энэ нь хэрэглэгчийн зан төлөвийг хянах уу эсвэл зүгээр л харилцагчийн харилцааг удирдах уу? 

Дизайны баг эдгээр асуултад хэдий чинээ хурдан хариулна, өгөгдлийн сангийн дизайны үйл явц төдий чинээ жигд болно.

2. Хадгалахад ямар өгөгдлийг сонгох ёстой вэ?

Өгөгдлийн сангийн дизайн. Шилдэг практик

Урьдчилан төлөвлөх. Мэдээллийн санг боловсруулж буй сайт эсвэл систем нь ирээдүйд юу хийх тухай бодол. Техникийн үзүүлэлтүүдийн энгийн шаардлагуудаас давж гарах нь чухал юм. Хэрэглэгчийн хадгалах боломжтой бүх төрлийн өгөгдлийн талаар бүү бодоорой. Үүний оронд хэрэглэгчид нийтлэл бичих, баримт бичиг, зураг байршуулах, мессеж солилцох боломжтой эсэхийг бодоорой. Хэрэв ийм зүйл тохиолдвол мэдээллийн санд тэдэнд зориулж зай хуваарилах хэрэгтэй.

Ирээдүйд дизайны баазыг дэмжих баг, хэлтэс, байгууллагатай хамтран ажиллана. Харилцагчийн үйлчилгээний мэргэжилтнүүдээс эхлээд хэлтсийн дарга хүртэл янз бүрийн түвшний хүмүүстэй харилцах. Ингэснээр та санал хүсэлтийн тусламжтайгаар компанийн шаардлагын талаар тодорхой ойлголттой болох болно. 

Нэг хэлтэс доторх хэрэглэгчдийн хэрэгцээ зайлшгүй зөрчилдөх болно. Хэрэв та ийм зүйлтэй тулгарвал өөрийн туршлагад найдаж, бүх талуудад тохирсон, мэдээллийн сангийн эцсийн зорилгод нийцсэн буулт хийхээс бүү ай. Итгэлтэй байгаарай: ирээдүйд та +100500 үйлийн үр, уулын жигнэмэг авах болно.

3. Өгөгдлийг болгоомжтой загварчлах

Өгөгдлийн сангийн дизайн. Шилдэг практик

Өгөгдлийг загварчлахдаа анхаарах хэд хэдэн гол зүйл байдаг. Өмнө дурьдсанчлан мэдээллийн сангийн зорилго нь загварчлалд ямар аргыг ашиглахыг тодорхойлдог. Хэрэв бид онлайн бичлэг боловсруулах (OLTP), өөрөөр хэлбэл бүртгэл үүсгэх, засварлах, устгахад зориулагдсан мэдээллийн санг зохиож байгаа бол гүйлгээний загварчлалыг ашигладаг. Хэрэв мэдээллийн сан нь харилцан хамааралтай байх ёстой бол олон хэмжээст загварчлалыг ашиглах нь зүйтэй.

Загварчлалын явцад концепцийн (CDM), физик (PDM), логик (LDM) өгөгдлийн загваруудыг бүтээдэг. 

Үзэл баримтлалын загварууд нь аж ахуйн нэгжүүд, тэдгээрт багтсан өгөгдлийн төрлүүд, тэдгээрийн хоорондын харилцааг тодорхойлдог. Өгөгдлөө логик хэсгүүдэд хуваа - энэ нь амьдралыг илүү хялбар болгоно.
Хамгийн гол нь дунд зэрэг, хэтрүүлж болохгүй.

Хэрэв аж ахуйн нэгжийг нэг үг эсвэл хэллэгээр ангилахад маш хэцүү бол дэд төрлүүдийг (хүүхдүүд) ашиглах цаг болжээ.

Хэрэв аж ахуйн нэгж өөрийн амьдралыг удирдаж, түүний зан байдал, гадаад төрх, бусад объектуудтай харилцах харилцааг тодорхойлдог шинж чанаруудтай бол та зөвхөн дэд төрлийг төдийгүй супертөрлийг (эцэг эх) аюулгүй ашиглаж болно. 

Хэрэв та энэ дүрмийг үл тоомсорловол бусад хөгжүүлэгчид таны загварт эргэлзэж, өгөгдөл, түүнийг хэрхэн цуглуулах дүрмийг бүрэн ойлгохгүй байх болно.

Концепцийн загваруудыг логик загваруудыг ашиглан хэрэгжүүлдэг. Эдгээр загварууд нь өгөгдлийн сангийн физик дизайны замын зурагтай адил юм. Логик загварт бизнесийн өгөгдлийн нэгжүүдийг тодорхойлж, өгөгдлийн төрлийг тодорхойлж, өгөгдөл хоорондын харилцааг зохицуулах дүрмийн түлхүүрийн статусыг тодорхойлдог.

Дараа нь Логик өгөгдлийн загварыг урьдчилан сонгосон DBMS (өгөгдлийн сангийн удирдлагын систем) платформтой харьцуулж, Физик загварыг гаргана. Энэ нь өгөгдлийг физик байдлаар хэрхэн хадгалахыг тайлбарладаг.

4. Өгөгдлийн төрлийг зөв ашиглах

Өгөгдлийн сангийн дизайн. Шилдэг практик

Буруу өгөгдлийн төрлийг ашиглах нь үнэн зөв мэдээлэл багатай, хүснэгтүүдийг нэгтгэхэд хүндрэлтэй, шинж чанаруудыг синхрончлоход хүндрэлтэй, файлын хэмжээ ихсэхэд хүргэдэг.
Мэдээллийн бүрэн бүтэн байдлыг хангахын тулд атрибут нь зөвхөн хүлээн зөвшөөрөгдсөн өгөгдлийн төрлийг агуулсан байх ёстой. Хэрэв насыг мэдээллийн санд оруулсан бол баганад дээд тал нь 3 оронтой бүхэл тоо хадгалагдаж байгаа эсэхийг шалгаарай.

NULL утгатай хамгийн багадаа хоосон багана үүсгэ. Хэрэв та бүх баганыг NULL гэж үүсгэвэл энэ нь маш том алдаа болно. Хэрэв танд тодорхой бизнесийн функцийг гүйцэтгэхэд хоосон багана хэрэгтэй бол өгөгдөл нь тодорхойгүй эсвэл утга учиргүй байгаа бол үүнийг үүсгэж болно. Эцсийн эцэст бид "Нас барсан огноо" эсвэл "Ажлаас халагдсан огноо" гэсэн баганыг урьдчилан бөглөж чадахгүй, бид хуруугаараа тэнгэр рүү чиглүүлдэг урьдчилан таамаглагчид биш юм :-).

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

5. Байгалийн жамаар яв

Өгөгдлийн сангийн дизайн. Шилдэг практик

Хүснэгтийн аль баганыг түлхүүр болгон ашиглахаа шийдэхдээ хэрэглэгч аль талбарыг засах боломжтойг үргэлж анхаарч үзээрэй. Тэднийг түлхүүр болгон хэзээ ч бүү сонго - муу санаа. Юу ч тохиолдож болно, гэхдээ та энэ нь өвөрмөц гэдгийг баталгаажуулах ёстой.

Байгалийн эсвэл бизнесийн түлхүүрийг ашиглах нь хамгийн сайн арга юм. Энэ нь семантик утгатай тул мэдээллийн санд давхардахаас зайлсхийх болно. 

Бизнесийн түлхүүр нь өвөрмөц (нэр, овог, албан тушаал) бөгөөд хүснэгтийн өөр өөр мөрөнд давтагдахаас бусад тохиолдолд үүсгэсэн хиймэл түлхүүрийг үндсэн түлхүүрээр томилно.

6. Дунд зэргийн хэмжээгээр хэвийн болгох

Өгөгдлийн сангийн дизайн. Шилдэг практик

Өгөгдлийн сан дахь өгөгдлийг үр дүнтэй зохион байгуулахын тулд та хэд хэдэн удирдамжийг дагаж, мэдээллийн санг хэвийн болгох хэрэгтэй. Таван ердийн хэлбэрийг дагаж мөрдөх шаардлагатай.
Хэвийн байдалд оруулснаар та илүүдлээс зайлсхийж, өөрийн програм эсвэл сайтад ашигласан өгөгдлийн бүрэн бүтэн байдлыг хангана.

Ердийнх шиг бүх зүйл дунд зэрэг, бүр хэвийн байх ёстой. Хэрэв мэдээллийн санд ижил өвөрмөц түлхүүрүүдтэй хэт олон хүснэгт байгаа бол та өгөгдлийн санг хэт хэвийн болгосон гэсэн үг. Хэт хэвийн байдал нь мэдээллийн сангийн гүйцэтгэлд сөргөөр нөлөөлдөг.

7. Эрт сорилт, ойр ойрхон сорил

Өгөгдлийн сангийн дизайн. Шилдэг практик

Туршилтын төлөвлөгөө ба зохих туршилт нь мэдээллийн сангийн дизайны нэг хэсэг байх ёстой.

Өгөгдлийн санг шалгах хамгийн сайн арга бол тасралтгүй интеграци юм. "Өгөгдлийн сангийн амьдралын нэг өдөр" хувилбарыг дуурайж, бүх захын тохиолдлуудыг зохицуулж байгаа эсэх, хэрэглэгчийн харилцан үйлчлэлийг шалгаарай. Алдааг хэдий чинээ хурдан олох тусам цаг хугацаа, мөнгөө хэмнэх болно.

Эдгээр нь бүтээмж, үр ашгийн гайхалтай мэдээллийн санг зохиоход ашиглаж болох долоон зөвлөмж юм. Хэрэв та тэдгээрийг дагаж мөрдвөл ирээдүйд ихэнх толгой өвдөхөөс зайлсхийх болно. Эдгээр зөвлөмжүүд нь мэдээллийн сангийн загварчлалын мөсөн уулын зөвхөн орой юм. Маш олон тооны лайф хакерууд байдаг. Та алийг нь ашигладаг вэ?

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх