Normální formy – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Normální formy – MySQL – Fórum – Programujte.comNormální formy – MySQL – Fórum – Programujte.com

 

Jan
~ Anonymní uživatel
187 příspěvků
4. 4. 2019   #1
-
0
-

Prosím někoho o vysvětlení 3. NF (Normální Formy).

Z jednoho zdroje mám, že se jedná o odstranění redundance. A z jiného zdroje, že se jedná o tranzitivní závislost a její odstranění.   

Kde / Co je tedy pravda?

Nahlásit jako SPAM
IP: 89.203.150.–
peter
~ Anonymní uživatel
4014 příspěvků
5. 4. 2019   #2
-
0
-

mozna postaci viki
https://cs.wikipedia.org/…%C3%AD_forma

Dostanes od sefa tabulku z excelu s kontakty na pracovniky. Je tam nekolik sloupcu, ve kterych se hodnoty opakuji. Idealnim resenim je, udelat si pro cely takovy sloupec ciselnik, pomocnou tabulku (id, text)
lojza, Navratilova 17, praha
pavel, destova 13, ostrava

3 forma je takova, kdy si udelas ciselnik nad sloupcem mesto. Logicka volba. (a soucasne cokoliv v 1 a 2 forme). Kdyz mas vsechno, co jde, jako ciselnik. V tomto pripade jen to mesto. jmena jsou vicemene unikatni, totez adresy. Ale mesta, ty se nebudou menit, to bude pevny vyber, tabulka, kde, kdyz prejmenujes Zlin na Gottwaldov, tak chces aby se to zmenilo u vsech uzivatelu. Kdezto, kdyz lojza zmeni pohlavi a prejmenujes ho na bedriska, tak chces, aby se to zmenilo jen u nej a ne u vsech lojzu

2 forma, kdyz mas zamestnance treba mas oddelene zvlast v tabulce Ale treba mas i veci, ktere nejsou v tabulce, jako treba prave mesta

1 forma je, ze nemas pomocnou tabulku nad nici, cili holou excelovou tabulku. Kdyz ti tam nekdo udela preklep u par lidi a napise Ostrav misto Ostrava, tak par lidi bude mit udaje spatne. Coz je to, co asi nechces. Chces mit data co nejvice spravne, co to pujde. Ale tahle podoba se treba da pouzit u malych tabulek do 10-100 radku. Kdy nema moc smysl pro sloupce vytvaret dalsi a dalsi minitabulecky.
A take je to podoba, kterou chces dostat na vystupu, kdyz delas export do cvs/excelu.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
KIIV
~ Moderátor
+43
God of flame
5. 4. 2019   #3
-
0
-

Kazdopadne je to pekna teorie z dob, kdy bylo misto na disku drahy a nikdo nekoukal na rychlost. Ale jakmile zacnes delat mnohourovnovy joiny nad velkejma tabulkama (idealne pro desitky lidi zaroven), tak pri ladeni vykonu nakonec vypadne neco mezi 1. a 2. NF.

Mozna v objektovych databazich by to fungovalo dobre

Nahlásit jako SPAM
IP: 37.48.50.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kit+15
Guru
5. 4. 2019   #4
-
0
-

#1 Jan
Nejprve si přečti Třetí normální formu na Wikipedii

Odstranění tranzitivních závislostí se řeší už v 2NF. Ve 3NF je stanoveno, že každý atribut musí být závislý na celém primárním klíči a pouze na něm, což je u jednosloupcového primárního klíče de facto samozřejmostí.

V praxi obvykle postačí, když databáze splňuje právě 3NF.

Nahlásit jako SPAM
IP: 81.19.3.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jan
~ Anonymní uživatel
187 příspěvků
5. 4. 2019   #5
-
0
-

#4 Kit
Dovolím si nesouhlasit s tvým tvrzením. 3. NF "Every non-prime attribute of R is non-transitively dependent on every key of R. "      viz. https://en.wikipedia.org/wiki/Third_normal_form

A 2. NF (https://en.wikipedia.org/…_normal_form) " (2)  not have any non-prime attribute that is dependent on any proper subset of any candidate key of the relation. "

Takže, jestli jsem to pochopil, tak 2. NF je o té redundanci (opakování) stejného konkrétního slova v sloupečku tabulky u vícero záznamů (řádků)?

Nahlásit jako SPAM
IP: 89.203.150.–
peter
~ Anonymní uživatel
4014 příspěvků
9. 4. 2019   #6
-
0
-

KIIV - "pri ladeni vykonu nakonec vypadne neco mezi 1. a 2. NF" - S tim bych nesouhlasil. Souhlasim, ze u mnoha tabulek je problem napsat sql dotaz. Ale urcite spravne napsany dotaz nemuze byt na urovni rychlosti obycejne tabulky. Takovy pripad si neumim realne predstavit. Jedine, pokud je dotaz spatne a nebo mas v tabulce binarni delku id podobnou name, cili, velmi kratka name. A nebo je to prilis aktivni tabulka a ciselnik id je prilis vysoky, cili opet delka id je podobna name. Netvrdim, ze se to nemuze stat, jen se mi to nezda jako bezne potkatelne.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Normální formy — založil petr.satka

Je C# normální jazyk? — založil Lukyx

Normální filehosting? — založil file

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý