Úvod do databázových systémů Cvičení 02 Ing. Pavel Bednář pavel.bednar.st1@vsb.cz
Odkazy Ukázkový projekt IS Dostihy http://www.cs.vsb.cz/septakova/tzd/ Přednášky a informace http://dbedu.cs.vsb.cz Videopřednášky http://barborka.vsb.cz/prednasky/ Výukové animace http://barborka.vsb.cz/prednasky/esf/
Opakování - Množiny Co je to množina ? Množina je soubor prvků, pro něž existuje pravidlo, které umožní rozhodnout, zda daný prvek do množiny patří nebo ne. Co je to kardinalita (mohutnost) množiny ? Počet prvků množiny Co je rovnost množin ? Každý prvek množiny A je prvkem B a každý prvek B je prvkem A. Označení A = B. Co je to podmnožina (inkluze) Podmnožina A množiny B je taková množina, jejíž všechny prvky se zároveň nacházejí i v množině B. Označení A B.
Opakování - Množiny Co je to nadmnožina (exkluze) Množina B je nadmnožinou množiny A, jestliže každý prvek množiny A je prvkem množiny B. Označení A⊃B. Co je to disjunkní množina ? Dvě množiny A a B jsou disjunktní právě tehdy, když jejich průnik je prázdná množina. A ⋂ B = ∅
Opakování - Množiny Sjednocení množin – A ∪ B Sjednocení prvků množin A,B rozumíme množinu všech prvků, které náleží alespoň do jedné z množin A,B.
Opakování - Množiny Průnik množin – A ⋂ B Průnik množiny A, B rozumíme množinu všech prvků, které patří do množiny A i do množiny B.
Opakování - Množiny Doplněk množiny – A‘ Doplněk množiny A rozumíme množinu všech prvků, které do množiny A nepatří.
Opakování - Množiny Rozdíl množin A-B Rozdíl množin A,B rozumíme množin prvků, které do množiny A patří a do množiny B nepatří.
Příklad 1: U–(A∪(B∩C))
Příklad 1: U–(A∪(B∩C))
Příklad 2: (U–(B∩C)) ∩ (A∪B)
Příklad 2: U–(A∪(B∩C))
Příklad 3: (A∪B)∩(U-(A∩B))
Příklad 3: (A∪B)∩(U-(A∩B))
Příklad 4: (U–(A∪C)) ∩ (B∪A))
Příklad 4: (U–(A∪C)) ∩ (B∪A))
Příklad 5: (A∪B)∩(U-(B∪(U-C)))
Příklad 5: (A∪B)∩(U-(B∪(U-C)))
Opakování - Množiny Co je kartézský součin Kartézský součin množin A, B je množina všech uspořádaných dvojic [a;b], kde první prvek je z množiny A a druhý prvek je z množiny B. A x B = {[a ; b]: a A, b B}
Opakování - Množiny A = {1,2} B = {a,b,c} C = {x,y,z} Vytvořte kartézské součiny A×B A×B×C (A×B)×(B×C)
Opakování - Množiny Mějme Informace: Pavel Novák, nov321 Jan Malý, mal147 Pavel Malý, mal025 Vypište obsahy množin: Jméno, Příjmení, Login Vytvořte kartézský součin z vytvořených množin. Vyznačte v součinu námi reprezentované informace Jaké jsou mohutnosti množin
Opakování - Zobrazení Co je to zobrazení Zobrazení F množiny A do množiny B je pravidlo, které každému prvku a z A jednoznačně přiřadí nějaký prvek b z B. B=F(A) F… je identifikátor zobrazení A… je množina vzorů (definiční obor) B… je množina obrazů (obor hodnot, doména)
Opakování - Zobrazení Proč se v druhém případě nejedná o zobrazení? Existuje v druhém případě zobrazení z B do A nebo z B na A? Pokud ano tak jaké?
Opakování - Zobrazení Pojmy Zobrazení do množiny (ne všechny prvky z B) Zobrazení na množinu (všechny prvky z B)
Opakování – Typy zobrazení Prosté (injektivní) Jestliže pro každé dva různé vzory existují různé obrazy
Opakování – Typy zobrazení Surjektivní Každý prvek z množiny B má svůj obraz v množině A.
Opakování – Typy zobrazení Vzájemně jednoznačné (bijektivní) Každý vzor má právě jeden obraz a každý obraz právě jeden vzor.
Opakování – Typy zobrazení Inverzní V bijektivní zobrazení existuje inverzní zobrazení, záměnou obrazů a vzorů.
Agendové zpracování dat Předchůdce databázového zpracování Aplikace zpracovávali konkrétní úlohy Sami si řešili organizaci dat Závislost dat na programu Žádné nebo jen minimální vazby mezi různými agendami.
Problémy Redundance Nekonzistence Integrita Obtížná dosažitelnost dat Izolovanost dat Současný přístup více uživatelů. Ochrana proti zneužití
Databázové zpracování dat Oddělení dat od programu DB Server Komunikace přes interface Stará se fyzické uložení dat Řeší zabezpečení přístupu Současný přístup více uživatelů
Pojmy Zpracování dat Data Informace Objekt Atribut Typ objektu Entita Typ Entity
Pojmy Primární klíč Cizí klíč
Vztah entit - Kardinalita Mějme nyní dvě množiny entit E1, E2. Mohou existovat dvojice (e1,e2), ei Ei, které jsou mezi sebou v nějakém vztahu v Vztah 1:1 Př. Zaměstnanec je vedoucím katedry Vztah 1:N Př. Zaměstnanec je členem katedry Vztah M:N Př. E1 = soubor firem, E2 = soubor výrobků. Vztah V je „firma vyrábí výrobek“
Složitější vztahy N-ární vztahy mezi více tabulkami Množiny entit E1 je soubor učitelů E2 je soubor vyučovaných předmětů E3 je soubor tříd (studijních skupin) Vztahy V1: učitel učí předměty (M:N) V2: třída má předepsány předměty (M:N) V3: učitel učí ve třídě Není jasné, který učitel učí předmět ve které třídě. V4: učitel učí předmět ve třídě
Vztahová entita Zaznamenává vztahy mezi entitami Obyčejná entita popisuje některý objekt Vztahová entita popisuje vztah mezi objekty Typ entity pojmenujeme názvem vztahu Její atributy jsou typy entit, mezi kterými popisuje vztah Instance vztahu jsou pak konkrétní dvojice či n-tice entit vstupujících do vztahu
Vztahová entita Příklad 1 Příklad 2 Typ vztahové entity – UČÍ (UČITEL, PŘEDMĚT) Instance vztahu – (Radoslav Fasuga, UDBS) Příklad 2 Entity: MUŽI, ŽENY Vztah – MANŽELSTVÍ (MUŽI, ŽENY) Další atributy vztahy – datum svatby, …
Vztahová entita Vazba bez informace Vazba s informací Obsahuje jako atributy pouze typy entit vstupující do vztahu. Př. UČÍ (UČITEL, PŘEDMĚT) Vazba s informací Obsahuje další atributy zaznamenávající vlastnosti vazby Př. VSTUPUJÍDOMANŽELSTVÍ (MUŽ, ŽENA, DATUM_SVATBY)
ER Diagram Graficky znázorňuje objekty a jejich vztahy Obdélník označuje entitní typ Kosočtverec reprezentuje vztah mezi entitními typy
Vztahová entita Kardinalita vztahu Určuje se dvěma větami Př. „Jeden učitel učí jeden nebo více předmětů“ (1:N) „Jeden předmět může mít jednoho nebo více učitelů“ (1:M)
Povinnost členství Do některých vztahů musí vstupovat každá entita množiny entit, do jiného vztahu ne. Definujeme dva druhy členství ve vztahu povinné (obligatorní) nepovinné (fakultativní) Určuje se dvěma větami Př. „Učitel může, ale nemusí učit předmět“ ( o ) „Předmět musí mít učitele“ ( ) Vazba povinnost – povinost. V reálu se spojuje do jednoho typu entity. Př. Student musí mít index. Index musí mít studenta. Pokud tabulky Student a Index budou prázdné, nelze vytvořit nový záznam.
Příklady Příklad 1. – Evidence studentů Příklad 2. – Seznam zaměstnanců firem Příklad 3. – Sportovní statistika Příklad 4. – Katalog eshopu