{"id":38806,"date":"2019-10-31T22:26:02","date_gmt":"2019-10-31T19:26:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/proektirovanie-bazy-dannyh-luchshie-praktiki\/"},"modified":"2026-02-14T19:13:54","modified_gmt":"2026-02-14T17:13:54","slug":"proektirovanie-bazy-dannyh-luchshie-praktiki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/proektirovanie-bazy-dannyh-luchshie-praktiki","title":{"rendered":"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>V p\u0159edve\u010der zah\u00e1jen\u00ed dal\u0161\u00edho b\u011bhu kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/3WyH\/\">\u201eDatab\u00e1ze\u201c<\/a><\/noindex> jsme p\u0159ipravili mal\u00fd autorsk\u00fd materi\u00e1l s d\u016fle\u017eit\u00fdmi radami pro n\u00e1vrh datab\u00e1ze. Douf\u00e1me, \u017ee v\u00e1m tento materi\u00e1l bude u\u017eite\u010dn\u00fd.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/e156caa8cfe0cd43ba54ee25cba26b24.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDatab\u00e1ze jsou v\u0161ude: od nejjednodu\u0161\u0161\u00edch blog\u016f a adres\u00e1\u0159\u016f po spolehliv\u00e9 informa\u010dn\u00ed syst\u00e9my a velk\u00e9 soci\u00e1ln\u00ed s\u00edt\u011b. Nen\u00ed tak d\u016fle\u017eit\u00e9, zda je datab\u00e1ze jednoduch\u00e1 nebo slo\u017eit\u00e1, jako to, jak ji spr\u00e1vn\u011b navrhnout. Kdy\u017e je datab\u00e1ze navr\u017eena bezmy\u0161lenkovit\u011b a bez jasn\u00e9ho porozum\u011bn\u00ed c\u00edli, nen\u00ed to jen neefektivn\u00ed, ale dal\u0161\u00ed pr\u00e1ce s datab\u00e1z\u00ed bude skute\u010dn\u00fdm mu\u010den\u00edm, neproniknuteln\u00fdm lesem pro u\u017eivatele. Zde je n\u011bkolik rad pro n\u00e1vrh datab\u00e1ze, kter\u00e9 pomohou vytvo\u0159it u\u017eite\u010dn\u00fd a snadno pou\u017eiteln\u00fd produkt.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>1. Ur\u010dete, k \u010demu slou\u017e\u00ed tabulka a jak\u00e1 je jej\u00ed struktura<\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/4995cad22df7f9007891ebb135671784.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDnes metodiky v\u00fdvoje, jako je Scrum nebo RAD (rychl\u00fd v\u00fdvoj aplikac\u00ed), pom\u00e1haj\u00ed IT t\u00fdm\u016fm rychle vyv\u00edjet datab\u00e1ze. Nicm\u00e9n\u011b, v honb\u011b za \u010dasem je velmi l\u00e1kav\u00e9 okam\u017eit\u011b se pono\u0159it do budov\u00e1n\u00ed datab\u00e1ze, s nejasn\u00fdm porozum\u011bn\u00edm, v \u010dem spo\u010d\u00edv\u00e1 skute\u010dn\u00fd c\u00edl, jak\u00e9 by m\u011bly b\u00fdt kone\u010dn\u00e9 v\u00fdsledky.<br \/>\n\u00a0 <br \/>\nJakoby t\u00fdm usiloval o efektivn\u00ed a rychlou pr\u00e1ci, ale to je iluze. \u010c\u00edm d\u00e9le a rychleji se pono\u0159\u00edte do projektu, t\u00edm v\u00edce \u010dasu bude pot\u0159eba na identifikaci a zm\u011bnu chyb v n\u00e1vrhu datab\u00e1ze. <\/p>\n<p>Proto je prvn\u00edm krokem ur\u010dit c\u00edl va\u0161\u00ed datab\u00e1ze. Pro jak\u00fd typ aplikace je datab\u00e1ze navr\u017eena? Bude u\u017eivatel pouze pracovat s z\u00e1znamy a je t\u0159eba se zam\u011b\u0159it na transakce, nebo ho v\u00edce zaj\u00edmaj\u00ed anal\u00fdzy dat? Kde by m\u011bla b\u00fdt datab\u00e1ze nasazena? Bude sledovat chov\u00e1n\u00ed z\u00e1kazn\u00edk\u016f, nebo jen spravovat vztahy mezi nimi?\u00a0 <\/p>\n<p>\u010c\u00edm d\u0159\u00edve design\u00e9rsk\u00fd t\u00fdm odpov\u00ed na tyto ot\u00e1zky, t\u00edm hlad\u0161\u00ed a plynulej\u0161\u00ed bude proces n\u00e1vrhu datab\u00e1ze. <\/p>\n<h3>2. Jak\u00e1 data vybrat pro uchov\u00e1v\u00e1n\u00ed?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/1079f324d621fd4916a3a47c1bda435e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPl\u00e1nujte dop\u0159edu. P\u0159em\u00fd\u0161lejte o tom, co bude v budoucnu v\u00e1\u0161 web nebo syst\u00e9m, pro kter\u00fd je database navrhov\u00e1na. Je d\u016fle\u017eit\u00e9 vyj\u00edt za r\u00e1mec jednoduch\u00fdch po\u017eadavk\u016f technick\u00e9 specifikace. Pros\u00edm, neza\u010d\u00ednejte okam\u017eit\u011b uva\u017eovat o v\u0161ech mo\u017en\u00fdch typech dat, kter\u00e1 kdy u\u017eivatel\u00e9 ulo\u017e\u00ed. Lep\u0161\u00ed je zamyslet se nad t\u00edm, zda u\u017eivatel\u00e9 budou moci ps\u00e1t p\u0159\u00edsp\u011bvky, nahr\u00e1vat dokumenty nebo fotografie, nebo si vym\u011b\u0148ovat zpr\u00e1vy. Pokud ano, mus\u00edte v datab\u00e1zi vyhradit m\u00edsto pro n\u011b.<\/p>\n<p>Pracujte s t\u00fdmem, odd\u011blen\u00edm nebo organizac\u00ed, pro kterou bude v budoucnu podporov\u00e1na navrhovan\u00e1 datab\u00e1ze. Komunikujte s lidmi r\u016fzn\u00fdch \u00farovn\u00ed, od specialist\u016f na z\u00e1kaznick\u00fd servis po vedouc\u00ed odd\u011blen\u00ed. Tak d\u00edky zp\u011btn\u00e9 vazb\u011b z\u00edsk\u00e1te jasnou p\u0159edstavu o po\u017eadavc\u00edch spole\u010dnosti.\u00a0 <\/p>\n<p>Nejvyhnuteln\u011bji budou pot\u0159eby u\u017eivatel\u016f v r\u00e1mci jednoho odd\u011blen\u00ed konfliktn\u00ed. Kdy\u017e se s t\u00edmto setk\u00e1te, nebojte se op\u0159\u00edt o vlastn\u00ed zku\u0161enosti a naj\u00edt kompromis, kter\u00fd uspokoj\u00ed v\u0161echny strany a spln\u00ed kone\u010dn\u00fd c\u00edl datab\u00e1ze. Bu\u010fte si jisti: v budoucnu v\u00e1m to p\u0159inese +100500 karmy a hromadu su\u0161enek. <\/p>\n<h3>3. Modelujte data opatrn\u011b <\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/0def85a4c28b05b397fe789cd8b61826.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nExistuje n\u011bkolik kl\u00ed\u010dov\u00fdch bod\u016f, na kter\u00e9 je dobr\u00e9 se zam\u011b\u0159it p\u0159i modelov\u00e1n\u00ed dat. Jak jsme ji\u017e zm\u00ednili, od \u00fa\u010delu datab\u00e1ze z\u00e1vis\u00ed, jak\u00e9 metody pou\u017e\u00edt p\u0159i modelov\u00e1n\u00ed. Pokud navrhujeme datab\u00e1zi pro operativn\u00ed zpracov\u00e1n\u00ed z\u00e1znam\u016f (OLTP), tedy pro jejich vytv\u00e1\u0159en\u00ed, \u00fapravy a maz\u00e1n\u00ed, pou\u017eijeme modelov\u00e1n\u00ed transakc\u00ed. Pokud by v\u0161ak datab\u00e1ze m\u011bla b\u00fdt rela\u010dn\u00ed, je nejlep\u0161\u00ed pou\u017e\u00edt v\u00edcerozm\u011brn\u00e9 modelov\u00e1n\u00ed. <\/p>\n<p>B\u011bhem modelov\u00e1n\u00ed se vytv\u00e1\u0159ej\u00ed konceptu\u00e1ln\u00ed (CDM), fyzick\u00e9 (PDM) a logick\u00e9 (LDM) modely dat.\u00a0 <\/p>\n<p>Konceptu\u00e1ln\u00ed modely popisuj\u00ed entity a typy dat, kter\u00e9 zahrnuj\u00ed, a tak\u00e9 vztahy mezi nimi. D\u011blejte si jasno ve sv\u00fdch datech - tak se s nimi mnohem l\u00e9pe pracuje. <br \/>\n<b>Hlavn\u00ed v\u011bc je m\u00edra, nep\u0159e\u017ee\u0148te to.<\/b><\/p>\n<p>Pokud je entitu velmi obt\u00ed\u017en\u00e9 klasifikovat jedn\u00edm slovem nebo fr\u00e1z\u00ed, je \u010das pou\u017e\u00edt podtypy (pod\u0159\u00edzen\u00e9 entity). <\/p>\n<p>Pokud entita vede vlastn\u00ed \u017eivot, m\u00e1 atributy, kter\u00e9 popisuj\u00ed jej\u00ed chov\u00e1n\u00ed a vzhled, a tak\u00e9 vztahy s jin\u00fdmi objekty, lze bez obav pou\u017e\u00edt nejen podtyp, ale i supertyp (rodi\u010dovsk\u00e1 entita).\u00a0 <\/p>\n<p>Pokud toto pravidlo ignorujete, ostatn\u00ed v\u00fdvoj\u00e1\u0159i se v va\u0161em modelu ztrat\u00ed a nebudou \u00fapln\u011b rozum\u011bt dat\u016fm a pravidl\u016fm, jak je sb\u00edrat. <\/p>\n<p>Konceptu\u00e1ln\u00ed modely se realizuj\u00ed pomoc\u00ed logick\u00fdch. Tyto modely funguj\u00ed jako mapa pro n\u00e1vrh fyzick\u00e9 datab\u00e1ze. V logick\u00e9m modelu se vymezuj\u00ed entity podnikov\u00fdch dat, ur\u010duj\u00ed typy dat, status kl\u00ed\u010dov\u00fdch pravidel, kter\u00e1 reguluj\u00ed vztahy mezi daty. <\/p>\n<p>Pak se logick\u00fd model dat p\u0159i\u0159ad\u00ed k p\u0159edem vybran\u00e9 platform\u011b DBMS (syst\u00e9m <a href=\"https:\/\/prohoster.info\/cs\/hosting\/hosting-pgsql\/\"  data-wpil-monitor-id=\"3266\">spr\u00e1vy datab\u00e1z\u00ed<\/a>) a vznik\u00e1 fyzick\u00fd model. Ten popisuje zp\u016fsob fyzick\u00e9ho ukl\u00e1d\u00e1n\u00ed dat. <\/p>\n<h3>4. Pou\u017e\u00edvejte vhodn\u00e9 typy dat <\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/04d5a29f902d3eaecea1f1fd2a58cd7b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPou\u017eit\u00ed nespr\u00e1vn\u00e9ho typu dat m\u016f\u017ee v\u00e9st k m\u00e9n\u011b p\u0159esn\u00fdm dat\u016fm, obt\u00ed\u017e\u00edm p\u0159i spojov\u00e1n\u00ed tabulek, synchronizaci atribut\u016f a zv\u011bt\u0161ov\u00e1n\u00ed velikost\u00ed soubor\u016f. <br \/>\nAby byla zaru\u010dena integrita informac\u00ed, atribut by m\u011bl obsahovat pouze pro n\u011bj p\u0159ijateln\u00fdch typy dat. Pokud se do datab\u00e1ze ukl\u00e1d\u00e1 v\u011bk, ujist\u011bte se, \u017ee ve sloupci jsou ulo\u017eena cel\u00e1 \u010d\u00edsla s maxim\u00e1ln\u011b 3 \u010d\u00edslicemi. <\/p>\n<p>Vytv\u00e1\u0159ejte co nejm\u00e9n\u011b pr\u00e1zdn\u00fdch sloupc\u016f s hodnotou NULL. Pokud vytv\u00e1\u0159\u00edte v\u0161echny sloupce jako NULL, je to z\u00e1va\u017en\u00e1 chyba. Pokud v\u0161ak pot\u0159ebujete pr\u00e1zdn\u00fd sloupec pro prov\u00e1d\u011bn\u00ed konkr\u00e9tn\u00ed obchodn\u00ed funkce, kdy\u017e data nejsou zn\u00e1ma nebo je\u0161t\u011b nemaj\u00ed smysl, m\u016f\u017eete ho bez obav vytvo\u0159it. Nem\u016f\u017eeme p\u0159ece p\u0159edem vyplnit sloupce \u201eDatum \u00famrt\u00ed\u201c nebo \u201eDatum propu\u0161t\u011bn\u00ed\u201c, nejsme p\u0159ece v\u011b\u0161tci, abychom mohli ukazovat prstem do nebe :-).<\/p>\n<p>V\u011bt\u0161ina softwaru pro modelov\u00e1n\u00ed (ER\/Studio, MySQL Workbench, SQL DBM, gliffy<code>.<\/code>com) dat umo\u017e\u0148uje vytv\u00e1\u0159et prototypy oblast\u00ed dat. To zaru\u010duje nejen spr\u00e1vn\u00fd typ dat, logiku aplikace a dobrou v\u00fdkonnost, ale tak\u00e9 povinn\u00e9 ur\u010den\u00ed hodnoty. <\/p>\n<h3>5. Preferujte p\u0159irozen\u00e9<\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/687b40ae40c6710a35650af3d353bb82.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKdy\u017e se rozhodujete, kter\u00fd sloupec v tabulce vybrat jako kl\u00ed\u010d, v\u017edy se zam\u011b\u0159te na to, kter\u00e1 pole m\u016f\u017ee u\u017eivatel upravovat. Nikdy je nevyb\u00edrejte jako kl\u00ed\u010d \u2014 je to \u0161patn\u00fd n\u00e1pad. M\u016f\u017ee se st\u00e1t cokoliv a vy mus\u00edte zaru\u010dit jedine\u010dnost. <\/p>\n<p>Nejlep\u0161\u00ed je pou\u017e\u00edt p\u0159irozen\u00fd nebo obchodn\u00ed kl\u00ed\u010d (natural key). M\u00e1 to smysl a t\u00edm se vyhnete duplic\u00edm v datab\u00e1zi.\u00a0 <\/p>\n<p>Pokud obchodn\u00ed kl\u00ed\u010d nen\u00ed unik\u00e1tn\u00ed (jm\u00e9no, p\u0159\u00edjmen\u00ed, pozice) a opakuje se v r\u016fzn\u00fdch \u0159\u00e1dc\u00edch tabulky, nebo se mus\u00ed m\u011bnit, je vhodn\u00e9 jako prim\u00e1rn\u00ed kl\u00ed\u010d pou\u017e\u00edt generovan\u00fd um\u011bl\u00fd kl\u00ed\u010d (artificial key). <\/p>\n<h3>6. Normalizujte s m\u00edrou<\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/5ee95cb614c0ff051b37c52ade9c0d22.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAby bylo mo\u017en\u00e9 efektivn\u011b uspo\u0159\u00e1dat data v datab\u00e1zi, je nutn\u00e9 dodr\u017eovat soubor doporu\u010den\u00ed a normalizovat datab\u00e1zi. Existuje p\u011bt norm\u00e1ln\u00edch forem, kter\u00fdmi je t\u0159eba se \u0159\u00eddit. <br \/>\nD\u00edky normalizaci se vyhnete nadbyte\u010dnosti a zajist\u00edte integritu dat pou\u017e\u00edvan\u00fdch v aplikaci nebo na webu. <\/p>\n<p>Jak to b\u00fdv\u00e1, v\u0161eho s m\u00edrou, i normalizace. Pokud je v datab\u00e1zi p\u0159\u00edli\u0161 mnoho tabulek se stejn\u00fdmi jedine\u010dn\u00fdmi kl\u00ed\u010di, znamen\u00e1 to, \u017ee jste to p\u0159ehnali a nadm\u011brn\u011b normalizovali datab\u00e1zi. Nadm\u011brn\u00e1 normalizace m\u00e1 negativn\u00ed vliv na v\u00fdkon datab\u00e1ze. <\/p>\n<h3>7. Testujte brzy, testujte \u010dasto <\/h3>\n<p>\n<img decoding=\"async\" alt=\"N\u00e1vrh datab\u00e1ze. Nejlep\u0161\u00ed postupy\" src=\"\/wp-content\/uploads\/2019\/10\/4e67e171d205581a86def5da041974bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTestovac\u00ed pl\u00e1n a odpov\u00eddaj\u00edc\u00ed testov\u00e1n\u00ed by m\u011bly b\u00fdt sou\u010d\u00e1st\u00ed n\u00e1vrhu datab\u00e1ze. <\/p>\n<p>Nejlep\u0161\u00ed je testovat datab\u00e1zi prost\u0159ednictv\u00edm Continuous Integration (nep\u0159etr\u017eit\u00e9 integrace). Modelujte sc\u00e9n\u00e1\u0159 \u201eJeden den ze \u017eivota datab\u00e1ze\u201c a kontrolujte, zda jsou v\u0161echny okrajov\u00e9 p\u0159\u00edpady zpracov\u00e1ny, jak\u00e9 pravd\u011bpodobn\u00e9 u\u017eivatelsk\u00e9 interakce nastanou. \u010c\u00edm d\u0159\u00edve najdete chyby, t\u00edm v\u00edce \u010dasu a pen\u011bz u\u0161et\u0159\u00edte. <\/p>\n<p>To je jen sedm rad, kter\u00fdmi m\u016f\u017eete navrhnout skv\u011blou datab\u00e1zi z hlediska v\u00fdkonu a efektivity. Pokud je budete dodr\u017eovat, vyhnete se v\u011bt\u0161in\u011b bolest\u00ed hlavy v budoucnu. Tyto rady jsou jen \u0161pi\u010dkou ledovce v modelov\u00e1n\u00ed datab\u00e1ze. Existuje spousta tip\u016f. Kter\u00e9 pou\u017e\u00edv\u00e1te vy?<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/471016\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0411\u0414. \u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u0432\u0430\u0441. \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0432\u0441\u044e\u0434\u0443: \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u0431\u043b\u043e\u0433\u043e\u0432 \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0445 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u041d\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0436\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438\u043b\u0438 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29108,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0411\u0414.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/proektirovanie-bazy-dannyh-luchshie-praktiki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445. \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0411\u0414.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/proektirovanie-bazy-dannyh-luchshie-praktiki\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-02-14T17:13:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47N\u00e1vrh Datab\u00e1z\u00ed. Nejlep\u0161\u00ed praktiky | ProHoster","description":"V p\u0159edstihu p\u0159ed spu\u0161t\u011bn\u00edm dal\u0161\u00edho cyklu kurzu \u201eDatab\u00e1ze\u201c jsme p\u0159ipravili mal\u00fd autorsk\u00fd materi\u00e1l s d\u016fle\u017eit\u00fdmi radami pro konstrukci datab\u00e1z\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/proektirovanie-bazy-dannyh-luchshie-praktiki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0411\u0430\u0437\u044b \u0414\u0430\u043d\u043d\u044b\u0445. \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 | ProHoster","og:description":"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043a\u0443\u0440\u0441\u0443 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441 \u0432\u0430\u0436\u043d\u044b\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0411\u0414.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/proektirovanie-bazy-dannyh-luchshie-praktiki","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:02+00:00","article:modified_time":"2026-02-14T17:13:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38806","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-14 17:14:31","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:03:13","updated":"2026-02-14 17:14:31","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=38806"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38806\/revisions"}],"predecessor-version":[{"id":161083,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38806\/revisions\/161083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/29108"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=38806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=38806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=38806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}