Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » access » tabulky » relace-vazby-v-databazich-teorie

Relace v databázích - teorie

genialita v inteligentních relacích (vazbách)

Proč relace

Získejte z tabulek více...

Pokud máte samostatné tabulky, nepotřebujete MS Access, stačí Vám MS Excel. Pokud mezi tabulkami existují logické vazby, Excel již jednoduše nedokáže dvě tabulky logicky provázat. Elegantní a jednoduché spárování tabulek zvládne databázový program. Osobně doporučuji MS Access. Z jednoduchých tabulek tak vytvoříte relační databázi. Relační databáze se správně navrženými relacemi bude ohromnou zbraní. V tomto článku si teoreticky probereme, co relace jsou a jaké druhy relaci existují.

Druhy relací (vazeb)

jak se dělí...

V databázových systémech existuji čtyři druhy relací:

  • Relace 1:1 - nejjednodušší vazba
  • Relace 1:N - Tyto vazby jsou v projektu nejčastější
  • Relace N:M - tuto vazbu je nutno převést relační vazbu 1:N
  • Bez relace - tj. mezi tabulkami není žádný vztah

Nyní si jednotlivé relace (vazby) rozebereme podrobněji.

Relace 1:1

Jednomu záznamu v tabulce odpovídá přesně jeden záznam v druhé tabulce.

Pokud naleznete tuto vazbu tak v databázi nemusí být databáze úplně v pořádku. Ve většině případu se, ale jedná o nevhodně navrženou databázi. Existuje pár výjimek, kdy se toto používá. Relace 1:1 může existovat u tabulek JMENA a BYDLIŠTĚ, kdy každému jménu je přiřazena právě jedna adresa.

Příklad relace 1:1

Tabulka JMENA

id jméno příjmení
1 Jan Vopršálek
2 Jana Nevopršálková
3 Pepa Zdepa

Tabulka BYDLIŠTĚ

id ulice Město
1 Horní Brno
2 Dolní Praha
3 Střední Ostrava

Poznámka: U této tabulky je vhodné sloučit tabulky JMENA a BYDLIŠTĚ do jedné tabulky, třeba s názvem OSOBY

Sloučená tabulka OSOBY

id jméno příjmení ulice město
1 Jan Vopršálek Horní Brno
2 Jana Nevopršálková Dolní Praha
3 Pepa Zdepa Střední Ostrava

Příklad kdy je vhodné tabulku rozdělit

Představte si tabulku OSOBY v databázi personálního oddělení. Kdy pro zahraniční zaměstnance potřebujete další údaje (číslo pasu, doba pobytu, rodný jazyk, rodná Země, bydlišti v cizině). Pokud umístíte tyto údaje do stejné tabulky, budou u českých zaměstnanců výše uvedená pole nevyplněna. Proto se vyplatí tabulku rozdělit na dvě. Tabulka OSOBY DOMACÍ a OSOBY CIZINCI, kdy pro několik cizinců vyplníte ještě druhou tabulku.

Relace 1:N

Jeden záznam v první tabulce odpovídá několika záznamům ve druhé tabulce.

Nejpoužívanější při tvorbě rozsáhlých databázi. Příkladem může být OSOBA a PŘEČTENÉ KNIHY. Jedna osoba může mít přečteno více knih. Viz následující příklad.

Poznámka: Jde o modelový příklad, kdy jedna osoba může mít přečteno více knih. To že některé knihy mohou být uvedeny v tabulce PŘEČTENÉ KNIHY několikrát, nehraje v tomto příkladu roli. Jde o modelové představení relace 1:N.

Příklad relace 1:N

Tabulka OSOBY

id jméno příjmení
1 Jan Vopršálek
2 Jana Nevopršálková
3 Pepa Zdepa

Tabulka PŘEČTENÉ KNIHY

id Kniha
1 Rumcajs
1 Cipísek
1 Maj
1 RUR
3 Ohníček

Poznámka: Vidíme, že Jan Vopršálek je vášnivý čtenář, kdežto Jana Nevopršálková nečte :).

Relace N:M

Více záznamu v první tabulce odpovídá více záznamům v druhé tabulce.

Příkladem vazby N:M jsou knihy a čtenáři. V knihovně je k dispozici obrovské množství knih a mnoho čtenářů. Pokud máme tabulky ČTENÁŘI a KNIHY, tak mezi tabulkou ČTENÁŘI a KNIHY je relace (vazba) N:M. Každý čtenář si může půjčit kteroukoli knihu.

Abychom v databázi mohli s relací (vazbu) N:M pracovat musíme ji převést na relaci (vazbu) 1:N (viz předchozí odstavec). Pro změnu na relaci 1:N je potřeba vytvořit pomocnou (spojovací) tabulku.

Pro změnu vazby N:M na použitelnou vazbu 1:N musíme vytvořit pomocnou tabulku VÝPŮJČKY. Mezi tabulkou ČTENÁŘI a VÝPŮJČKY je relace 1:N a mezi tabulkou VÝPŮJČKY a KNIHY je taktéž relace 1:N. Mezi tabulkami ČTENÁŘI a KNIHY stále existuje vazba N:M. Viz následující příklad.

Příklad relace N:M

Tabulka ČTENÁŘI

id čtenář jméno příjmení
1 Jan Vopršálek
2 Jana Nevopršálková
3 Pepa Zdepa

Tabulka KNIHY

id kniha Název knihy Autor
11 Babička Němcová
12 RUR Karel Čapek
13 Máj K. H. Mácha

Tabulka VÝPŮJČKY

id čtenář id kniha datum výpůjčky datum vracení
1 11 1.1.2010 10.1.2010
1 12 1.1.2010 10.1.2010
1 13 1.1.2010 10.1.2010
2 11 20.1.2010 22.1.2010
3 11 2.2.2010  
3 12 2.2.2010  
1 13 5.2.2010  

Poznámka

Jedná se o ukázkové příklady, sloužící pro pochopení vzájemných relací (vazeb).

Závěrem

Doufám, že jste pochopily, co to jsou relace (vazby). V dalším článku proberu jak relace vytvořit v MS Access 2010.

Článek byl aktualizován: 19.09.2020 11:08

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Kašpi

Přidáno: 28.03.12 19:05

Moc hezky vysvětleno ;)

Diky

Přidáno: 07.06.12 22:37

ach bože díky za tento článek!

iwitrag

Přidáno: 13.06.12 07:36

Jednoduše a přehledně :) Pěkné

clavien

Přidáno: 12.09.12 04:45

Super, díky za tokové lidi, kteří i zadarmo něco vysvětlí a pomohou :)

Soran

Přidáno: 26.09.12 19:57

Děkuji ti za tento článek. :-)

Pavel Lasák

Přidáno: 27.09.12 07:00

To Kašpi, Diky, iwitrag, Clavien, Soran: Rádo se stalo.

Bela

Přidáno: 22.10.12 12:30

děkuji za tuto stránku :-* :-*

Bela

Přidáno: 22.10.12 12:32

děkuji za tuto stránku :-* :-*

Edward

Přidáno: 24.10.12 08:34

thank you very much ...!!!

Pavel Lasák

Přidáno: 24.10.12 16:50

To Edward: You're welcome.

Vítězslav

Přidáno: 03.01.13 16:58

Dobré odpoledne pane Lasáku, Předem díky za skvělý web pro uživatele MS produktů, měli by vám za to posílat desátek. Mám dotaz k využití primárního klíče. Pokud vstupní data nebo exportovaná tabulka už obsahuje všechny informace a není nutné relaci použít, jakou výhodou bude zadat primární klíč? Např. Pokud vtupní informace je na jednom řádku jméno,přijmení,kniha,název knihy,popis, od-do atd. Díky za odpověď!

Pavel Lasák

Přidáno: 03.01.13 18:15

To Vítězslav: Vhodné je počítat s možným rozšířením do budoucna. Osobně to vidím tak, že firma má data, ale zatím neví jak je využít. Do budoucna na to přijde a bude ejdnodužší dabulky pomocí relace spojit. Pokud 100% víte, že nebude potřeba, tak primarní klíč použít nemusíte.

Jan

Přidáno: 06.01.13 16:34

Dobrý den, Na začátku velice kladně hodnotím tento web a chci se zeptat jestli by bylo možné zaslat nějakou zkušební databázi 1:N jsem uplný laik a chtěl bych mít nějakou inspiraci pro další tvorbu? Předem děkuji za odpověď

tomas

Přidáno: 07.01.13 21:51

dobře ty/vy vysvětleno opravdu přehledně a jednoduše a to je dobře

Pavel Lasák

Přidáno: 07.01.13 22:39

To Jan: V plánu to mám, ale z pracovních důvodů má teď přednost Excel. Přímo v Access jsou k dispozici ukázkové databáze Menu soubor - Nový - Ukázkové šablony. Snad pomohou než vytvořím vlastní.

Pavel Lasák

Přidáno: 07.01.13 22:42

To Tomas: klidně můžeš tykat. Jsem rád, že text je pochopitlený.

Korektor

Přidáno: 08.01.13 10:07

Lidi od MS produktů jsou fakt tragédi :-( horší je, že těmi svými žvásty pletou ostatní, zejména začátečníky. Přečtěte si prosím alespoň Wikipedii, ať víte, co to jsou relace v relačních databázích. Ne, opravdu to nejsou vazby 1:1, 1:N atd. mezi tabulkami. http://cs.wikipedia.org/wiki/Rela%C4%8Dn%C3%AD_datab%C3%A1ze http://cs.wikipedia.org/wiki/Rela%C4%8Dn%C3%AD_model http://cs.wikipedia.org/wiki/Relace_%28matematika%29

Pavel Lasák

Přidáno: 08.01.13 17:00

To Korektor: Děkuji za doplnění, bohužel začátečnící co hledají informace o Microsoft Access kdy potřebují vytvořit "relace" hledají slovo "relace" protože takhle to Microsoft přeložil. Psát o kardinalitě vztahu (jak uvádí wikipedie) tak tento článek nanaleznou microsoft začátečníci, kteří potřebuji vytvořit vztahy mezi tabulkami "relaci".
Já to vidím tak, že důležitější než slovo jak bude vazba pojmenována je pochopit princip jak spojit řádky/záznamy ze dvou tabulek.
Děkuji za odkazy, koho bude problematika zajímat detajlněji může se podívat na Wikipedii a dále si rozšiřit vědomosti.

David

Přidáno: 03.04.13 14:03

super

Romiczak

Přidáno: 28.10.13 17:31

Good

Alena ferbar@atlas.cz

Přidáno: 12.03.14 14:54

Dobrý den, děkuji a velmi si vážím toho, že jste vytvořil takové zajímavé a poučné stránky. Hezký den. Alena

Pavel Lasák

Přidáno: 13.03.14 17:18

To Alena: Rádo se stalo, jsem rád že slouží a pomáhají.

katka

Přidáno: 21.04.14 22:26

Opravdu skvěle vypracovano. Moc mi to pomohlo :) dekuju Vám :)

Martin

Přidáno: 13.05.16 02:59

Prave se to ucim k maturite... diky moc za tento clanek tyjo!!!!







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |