Professional Documents
Culture Documents
Databázy
Databázy
Čo je to databáza?
▪ Organizovaný sklad dát
▪ Systém dát
Záznamy, Schéma, Model reálneho sveta
▪ Počítače a databázy
Pod pojmom „Databáza“ dnes rozumieme elektronický systém na ukladanie dát
Dáta a informácie
▪ Dáta - sú v podstate hrubé fakty
▪ Informácie - sú spracované dáta
▪ Perzistentné dáta (trvácne)
Operačné dáta
Vstupné dáta
Výstupné dáta
Agregované dáta, sumáre, dáta pre DSS, BI atď...
Metadata – dáta o dátach, popisujú dáta
▪ Štruktúrované vs Neštruktúrované dáta
Štruktúrované dáta:
- dáta s pevnou štruktúrou
(vopred definovanou formou)
- záznamy o platbách (o zákazníkoch), dokumenty (texty vo Worde), textové správy, obrázky,
zvuky, videá
Databázový systém
▪ Databáza
▪ DBMS – Database Management System
▪ Súčasti Databázového systému:
Dáta, Hardvér, Softvér, Užívatelia
Charakteristiky:
▪ Dostupnosť dát - zdieľanie, trvácnosť
▪ Integrita dát - správnosť, aktuálnosť
▪ Bezpečnosť dát - oprávnený prístup, zálohovanie
▪ Nezávislosť dát - logická, Fyzická
Typy používateľov:
▪ Administrátor (DBA) - spravuje DBMS
▪ Aplikačný programátor - vytvára pohľady pre koncového používateľa
▪ Koncový používateľ - data consumer
Typy databáz:
▪ Databázový model
Architektúra, podľa ktorej databázový systém ukladá a prepája objekty.
Spôsob usporiadania dát v databáze
▪ „Flat files“ - Otvorené súbory
▪ Hierarchický ▪ Sieťový
▪ Relačný
▪ Objektovo-orientovaný
▪ Objektovo-Relačný
Záznam
- reprezentuje konkrétnu entitu (objekt)
- duplicita záznamov je neprístupná
MS Access
- Relačná DB
- Jeden súbor – DB + Aplikácia
- Jednoduché vytváranie (vývoj)
Relačný model
• RDBMS – Relational Database Management System
– MS SQL, Postgres, Oracle, IBM DB2, MySQL, ….
• Dáta sú reprezentované pomocou dvojrozmerných tabuliek
• Základný vzťah – 1-N
• Výhody oproti predchádzajúcim modelom
– Efektívnosť (úspora priestoru)
– Flexibilnosť
– Jednoznačnosť (bez duplicity záznamov)
Relačné databázy
• Efektívnosť - Odstránenie duplicitných dát
• Menší objem dát
• Rýchlejšie spracovanie
• Lepšia kontrola dát – aktuálnosť/integrita
• Flexibilnosť
• Logická a fyzická nezávislosť
• Jednoduchá zmena/doplnenie dátového modelu
• Ľahké vytváranie ad-hoc dotazov
• Štandard a kvalitné RDBMS
Štruktúrované dáta
• Majú preddefinovanú štruktúru - Tabuľka
• Umožňujú zoraďovanie a vyhľadávanie podľa typov údajov v rámci obsahu
• Sú rozpoznateľné počítačom (Efektívnejšie organizované pre človeka)
– štruktúrované dáta predstavujú základ dátovej analýzy
• V intenciách Relačných DB sú to dáta, ktoré je možné reprezentovať pomocou tabuliek
Polia
• Dátové typy
– Text, číslo, dátum - typ množiny
– Rozsah – ohraničenie pre konkrétny dátový typ
– Hodnoty a domény – prípustná množina
– Integritné obmedzenia - pravidlá zabezpečujúce prípustné hodnoty dát
– Entitné – zabezpečujú jedinečnosť záznamov
– Referenčné – zabezpečujú vzťahy medzi tabuľkami
– Doménové – zabezpečujú integritu hodnôt v jednotlivých poliach
Kľúče
• Kľúč – (pojem z E/R modelu) – atribút alebo skupina atribútov, ktoré slúžia na identifikáciu
riadku v tabuľke (relácii)
• Jedinečnosť – hodnoty v kľúči sú unikátne
• Zložený kľúč – skladá sa z viacerých atribútov (polí)
Indexy a kľúče
• Index (alebo register) – usporiadanie množiny
– Urýchľuje vyhľadávanie v databáze
– Indexovať – ak je možné čiastočne usporiadať
• Zložený index
– Skladá sa z viacerých stĺpcov (atribútov)
– 2 – 10 polí v MS Access
• Kľúč – (pojem z E/R modelu) – atribút alebo skupina atribútov, ktoré slúžia na identifikáciu
riadku v tabuľke (relácii) - (v podstate to isté ako index)
Indexová tabuľka
- pre rýchlejšie vyhľadávanie
Relácia
• Zobrazenie z reality R (množiny objektov napr. Študenti) do virtuality R’ (tabuľky v databáze)
- databáza ako model – relácia ako zobrazenie reality
Duplicita
• Relačné databázy nepripúšťajú duplicitu záznamov
– Problém s validáciou dát (správnosť a aktuálnosť)
– Problém s nekonzistenciou dát a ďalších vzťahov
• Problém duplicitných dát – opakovanie údajov
Primárny kľúč
• PK – Primárny kľúč
– Jedinečný(unikátny) identifikátor záznamu
– Hlavný index
o PK musí byť jedinečný
o PK nesmie obsahovať hodnotu NULL
• Umelý (surrogate) vs Prirodzený (priradiť k záznamu v DB objekt v realite)
- Príklad: UOČ, číslo OP
Zložený kľúč
• Skladá sa z viacerých polí(atribútov)
– Jedinečný identifikátor záznamu
– Nielen PK je jedinečný
• Stačí Meno a Priezvisko na identifikáciu
– Meno, Priezvisko, Adresa
• Príklady jednoduchých (jednopoľových) jedinečných kľúčov (rodné číslo, UOČ, číslo OP)
Cudzí kľúč
• FK – Foreign key (cudzí kľúč)
• FK je odkaz na PK (primárny kľúč), alebo iný jedinečný identifikátor
Cudzí kľúč a referenčná integrita
- referenčná integrita predstavuje pravidlo, ktoré kontroluje hodnoty v cudzom kľúči voči
existujúcim hodnotám v PK
Vzťahy
- 1-1 one to one (Zamestnanci – Oddelenia)
- 1-N one to many (Študenti – Predmety)
- M-N many to many (Faktúry – Platby)
Vzťahy 1-N
• Základný vzťah – vytvorený dvojicou PK-FK
• Dátový typ FK sa musí zhodovať s dátovým typom PK, na ktorý odkazuje
Vzťahy 1-1
• Málo využívaný vzťah
• Špeciálny prípad vzťahu medzi PK a FK, kde FK je tiež jedinečný
Vzťahy M-N
• Konceptuálny vzťah
• Implementácia predstavuje dekompozíciu – rozklad vzťahu
• Implementácia pomocou dvojice PK-FK
Hodnota Null
• Nie je to prázdna hodnota
• Null - Neznáma hodnota
Null≠Null
≠ ““ – reťazec nulovej dĺžky
≠ 0 – nula (číslo)
≠ “ “ – medzera(space)
Vytvorenie tabuľky
• Tabuľka reprezentuje množinu entít/objektov z reality
– Názov tabuľky by mal odkazovať na entitu ako napríklad „Študenti“, „Faktúry“,
„Produkty“, to pomáha architektovi pochopiť jeden záznam v každej tabuľke
• Vytvorte polia – na základe atribútov danej entity / objektu
– Názov poľa by mal vyjadrovať hodnoty v danom poli ako napríklad: ‘Meno’,
‘Priezvisko’, ‘DatumNarodenia’, ‘DatumSplatnosti’, ‘Suma’, ‘Cena’
– Vyberte si vhodný dátový typ, na základe domény konkrétneho atribútu, myslite na
efektivitu - šetrenie ukladacieho priestoru.
• Vyber PK – Tabuľka musí mať definovaný primárny kľúč PK
• Pridaj FK (cudzí kľúč) do podriadených tabuliek všade tam, kde chcete vytvoriť vzťah 1-N
Dátové typy MS Access
• Text – dĺžka max. len 255 znakov, ale je indexovateľný
• LongText – dlhý text, formátovaný text, nie je indexovateľný
• Number ( Číslo) - celočíselný typ (Byte, Integer, LongInteger)
– Desatinný typ (Single, Double, Decimal)
• Large Number – 64bit rozsah, celočíselný, slúži najmä na ID – identitu
• AutoNumber – automaticky generujúce číslo pre ID (identity), obvykle rozsahu LongInteger
• Currency (Mena) – číselný dátový typ určený na ukladanie peňažných hodnôt, rozsah
Double s pevným 4 miestnym rozsahom za desatinnou čiarkou
• Date/Time (Dátum a čas) – dátový typ pre dátum a čas (DateTime Extended – väčší rozsah)
• Yes/No – dvojprvková množina (True/False)
• Ostatné (OLE obj., Hyperlink, Attachment) – slúžia na ukladanie obrázkov, dokumentov,
videí
Modelovanie
• Abstrakcia reality – forma poznania, sústredenie sa len na vybranú časť reality a vytvorenie
modelu
• Databázový model sa vzťahuje na logickú štruktúru, reprezentáciu alebo rozloženie
databázy a na to, ako sa v nej budú ukladať, spravovať a spracovávať údaje. Pomáha pri
navrhovaní databázy a slúži ako plán pre vývojárov aplikácií a správcov databáz pri vytváraní
databázy.
• Diagram - grafické znázornenie modelu pomocou geometrických tvarov reprezentujúcich v
databáze Entity, objekty, vzťahy
• ER Diagram – entito-relačný diagram
• DFD – diagram dátových tokov
Vývoj softvéru
• Životný cyklus – všetky udalosti od prvej myšlienky až po ukončenie prevádzky.
• SDLC – system development life cycle
• Modely:
• Vodopádový
• Špirálový
• Prototypovanie
• RAD – Rapid Application Development
Prevádzka a
Analýza
Údržba
Testovanie Návrh
Zostavenie a
Implementácia
Fáza návrhu DB
• Konceptuálny návrh
• E/R model (Entito-Relačný model)
• Entity a vzťahy
• Logický návrh - transformácia do 2-rozmerných tabuliek
• Fyzický návrh - Access, Oracle, MS SQL, MySQL
Kardinalita vzťahu
• Vyjadruje prípustný počet entít vo vzťahu
• Príklad: Oddelenie – Zamestnanec – Projekt – Výskum
O..N 1..N
Logický model
• Reprezentácia dát v 2 rozmerných tabuľkách
• Jeden riadok, záznam v tabuľke voláme aj „Dátová veta“.
• Dekompozícia vzťahu M-N
• Spojovacia tabuľka
• Dva vzťahy 1-N
• Normalizácia - metóda ako systematicky zabezpečiť vhodný a univerzálny návrh štruktúry
databázy
Referenčná integrita
• Integrita cudzieho kľúča (FK)
• Nie je možné zadať hodnotu neexistujúceho PK
• Chybný odkaz na PK – je porušenie RI
• Vymazanie záznamu z primárnej tabuľky
• Aktualizácia na poli PK v nadradenej tabuľke
• Príklad:
• Zamestnanec, ktorý je na neexistujúcom oddelení
• Predmet, ktorý navštevuje neexistujúci študent
• Faktúra na neexistujúceho zákazníka
Fyzický model
• Model vytvorený v konkrétnom RDBMS (môže byť označený ako interný)
• Výber zodpovedajúcich dátových typov pre jednotlivé polia (Číslo, Text, Dátum)
• IO – transformácia pravidiel na konkrétne nastavenia v konkrétnom RDBMS (PK, FK,
Constraints – overovacie pravidlo, NOT NULL)
IO vo fyzickom návrhu
• Obmedzenie typu NOT NULL - required (MS Access) – nutné zadať
• Obmedzenie typu CHECK
• Constraint – vyhodnotenie logickej podmienky
• Overovacie pravidlo (MS Access)
• Obmedzenie zaistené spúšťou (TRIGGER)
• Data Macros (After Insert, After Update, Before Delete, ...)
• VBA (MS Access)
Spracovanie dát
• Získanie informácii z DB
• Výberový dopyt – predstavuje virtuálnu tbl.
– Používateľský pohľad (view) do databázy
• Virtuálna tabuľka – nie je uložená v DB, ale vznikne na základe dopytu(dotazu) z
podkladových – základných tabuliek
• Dopytovacie jazyky – SQL alebo QBE, a iné ...
– Structured query language – jazyk pomocou ktorého komunikujeme s relačnými
databázami
– Query by example – vizuálny editor
Relačná algebra
- základná množina operácií nad dátami v relačnom modeli
• Projekcia – výber stĺpcov
• Selekcia – výber riadkov (filter)
• Karteziánsky súčin
• Spojenie
– Vnútorné
– Vonkajšie
• Zoskupovanie a agregácia
Projekcia Π Rozšírená projekcia Selekcia σ
Agregácia
• Agregačné funkcie
– SUM - suma
– COUNT - počet
– AVERAGE - priemer
– MIN, MAX - minimum, maximum
– FIRST, LAST - prvý, posledný
– STDEV, VAR – štandardná odchýlka, rozptyl
Základná komunikácia s DB
• Aplikácie a používatelia používajú nasledovné príkazy/úkony na prácu s dátami v
tabuľke/ách
o SELECT - výber dát, zobrazenie
o INSERT – vložiť nové dáta (nový záznam)
o UPDATE – aktualizovať dáta (jeden alebo viac záznamov/polí)
o DELETE – odstrániť nepotrebné dáta (celé záznam/mi)
SQL
• Structured query language • SELECT title, author, publisher, isbn
(Štruktúrovaný dopytovací jazyk) • FROM books
• Počítačový jazyk pre výber a správu • WHERE price > 100.00
dát z RDBMS • ORDER BY title;
• VIEW – pohľad na dáta
Súčasti SQL
• DML – Data Manipulation Language
– SELECT, INSERT, UPDATE, DELETE,...
• DDL – Data Definition Language
– CREATE /ALTER/ DROP TABLE /INDEX/…
• DCL – Data Control Language
– GRANT, REVOKE
Dotazy v MS Access
• Jeden súbor (DB, USERINTERFACE)
• Multiuser environment – viacpoužívateľské rozhranie
• Výber(select) verzus Filter
– Rozdiel či dáta spracuje databáza alebo po načítaní klient/aplikácia
• Formulárové dotazy
– Vytváranie pomocou sprievodcov
– Vytváranie pomocou nástrojov bez znalosti SQL
QBE - (Query by Example)
Typy dotazov
• Výberový dotaz - Select
• Krížový dotaz - Crosstab
• Akčné dotazy - (je nutné ich spustiť)
– Vytvárací - Make Table
– Pripájací - Append
– Aktualizačný - Update
– Odstraňovací - Delete
DEMO
- vytvorenie dotazu v MS Access
Možnosti výberových dotazov
• Výber stĺpcov
• Poradie riadkov výstupu
• Kritéria – podmienky
• Výrazy – Expressions
– Výpočty
– Premenovanie
• Zoskupenia – Totals
– Agregačné funkcie
DEMO
- výber z viacerých prepojených tabuliek
Akčné dotazy
• Akčné dotazy manipulujú s dátami
Pridať, Aktualizovať, Odstrániť
INSERT, UPDATE, DELETE
• Spustenie – RUN
• Výstup – hlásenie o úspešnom/neúspešnom vykonaní
• Znovu použiteľné
– S parametrom
Parametric queries
- Stored queries – reusable,
- Parameter – input value
- Could be used as either select either action queries
Example:
• SELECT Name_Empl
FROM Employees
WHERE ID_Dept = [parameter]
Parametrické dotazy
• Uložený dotaz
• Parameter – vstupná hodnota
• Použitie aj pre Výberové aj pre Akčné
Demo
- parameter as criteria
Príklad – „Knižnica“
• Objekty – reprezentácia reálnych objektov
– Knihy
– Čitatelia
– … ďalšie entity
• Vzťahy – interakcie medzi objektmi
– Požičať – Čitatelia si požičiavajú knihy
– ... ďalšie vzťahy
Diagramy
Interpretácia vzťahu
„Požičať“
1. Jeden čitateľ si môže požičať nula, jednu alebo viacej kníh.
Jedna kniha môže byť požičaná žiadnemu alebo jednému čitateľov.
(Predstavuje aktuálne požičané)
2. Jeden čitateľ si mohol požičať nula, jednu alebo viacej kníh.
Jedna kniha mohla byť požičaná žiadnemu, jednému alebo viacerým čitateľom.
(Predstavuje pôžičky)
Vzťah „Požičať“
Tabuľky a údaje
- reprezentácia dát v 2 tabuľkách
Realizácia procesov v DB
• Registrácia – Pridanie do tabuľky Čitatelia(Insert)
• Vyhľadanie – Výber z tabuľky Knihy (Select)
– Voľné – Výber z tbl. Knihy, ktoré majú (FK č_Preuk. Null)
• Požičanie – Aktualizácia do tbl. Knihy (FK č_Preuk.)
(Update)
• Vrátenie – Aktualizácia v tbl. Knihy (FK – Null)
(Update)
• Evidencia pôžičiek
– Čitateľ, Kniha, Dátum požičania, Dátum vrátenia
– Pridanie záznamu do tabuľky Pôžičky (Insert)
Tabuľky a údaje
- reprezentácia dát v 3 tabuľkách
Rozšírenie
Model DB môžeme rozšíriť o ďalšie Entity/Procesy
• Záznamy o pôžičkách
– Dátum požičania, Dátum vrátenia
• Termín vrátenia
– Termín požičania
• Rezervácie kníh
– Najbližší možný termín požičania
• Pokuta za neskoré vrátenie
• Upomienky
Anomálie – problémy
- anomálie sú problémy, ktoré sa (môžu)vyskytnúť v priebehu prevádzky DB
• Pridávanie kníh – rovnaké knihy
– Evidencia viacerých exemplárov tej istej knihy
• Zmena preukazu / stratenie čitateľského preukazu
– Vystavenie nového preukazu, zmena osob.údajov
• Vymazanie záznamu
– Zrušenie čitateľského preukazu
– Vyradenie knihy z knižnice
Návrh riešenia
- Vytvor Word dokument – Projekt (názov projektu)
- Návrh riešenia obsahuje: (dve časti)
– Dátový model – statický model
• Popis tabuliek – názov tabuľky/polí, údajové typy, IO
• ER diagram (ľubovoľný typ, najlepšie relačný – Logický model)
– Procesný model – dynamický model
• Zoznam procesov – používateľské procesy/funkcie
• Detailný popis jednotlivých procesov – používateľské obrazovky
(nepovinné – procesné diagramy: diagram dátových tokov, workflow diagram, use case, ... )
Používateľské rozhranie
• Poskytnúť užívateľovi požadované informácie čo najpriateľskejším spôsobom
– Zrozumiteľnosť
– Jednoduchosť a intuitívnosť
• UI tvorí veľmi dôležitú časť DB systému:
– Jediná viditeľná časť pre užívateľa
Formulár v MS Access
• Slúži na vytvorenie používateľského rozhrania
• Používateľ interaguje s DB – pracuje s dátami prostredníctvom formuláru prostredníctvom
ovládacích prvkov na formulári Textových polí a Tlačidiel
UI – Formuláre (Forms)
• Formuláre sú objekty pre tvorbu UI - Interakcia: vstup užívateľa, výstup dát
• Typy formulárov
– Podľa účelu (napr. na zadávanie nových zázn., )
– Podľa zobrazovaných dát (napr. 1 záznam, N zázn.)
• Napojenie(viazanie) dát z DB vo formulároch - prostredníctvom výberových dotazov (Select)
• Zostavy (Reports) ako objekty
– Podobné ako formuláre, sú zložené
z ovládacích prvkov
– Hlavný účel: výstup dát (tlač)
Návrh formuláru
• Vytvorenie formuláru - zvolenie typu
• Návrh formuláru (Design)
– Názov (Objektu) - vlastnosti
– Ovládacie prvky - vlastnosti
Combo Box
• Rozbaľovacie pole so zoznamom - výber hodnôt zo zoznamu
• Vlastnosti:
– Row Source – zdroj riadkov pre zoznam (z tbl. / query)
– Bound Column – stĺpec, ktorý bude udávať návratovú hodnotu (combo2.Value)
– Column Count – počet zobrazených stĺpcov zľava v zozname
– Column Widths – šírka jednotlivých stĺpcov v zozname
Formulár s podformulárom
• Zobrazenie vzťahu 1-N
• Prepojenie dátových zdrojov
– Link Master Fields spojovacie pole formuláru
– Link Child Fields spojovacie pole podformuláru
Demo
• Formulár – Record Source
• Text box – Control Source
• Combo box – Row Source
– Row Source type – Tabuľka, Value list
– Bound Column
• Formulár s podformulárom
– Prepojenie dát (Link Master-Child)
– Vyhľadávanie
Udalosti – Events
• Udalosť predstavuje záchytný bod v programe, vyvolaný interakciou užívateľa, v ktorom
chceme vykonať určité príkazy
• Vyvolanie udalosti - predstavuje napr. stlačenie tlačidla: (Udalosť OnClick pre Button1)
• Postupnosť udalostí
(On Open – On Load – On Current - …
On Dirty
… - On Unload – On Close)
• Akcie na udalosti – príkazy, ktoré môžeme zadať na vykonanie
• Macro vs VBA (Macro Builder, Code Builder)
Normalizácia ako proces
• Fáza - Logický návrh databázy
• Proces reštrukturalizácie dátového modelu (návrhu databázy) za účelom zefektívnenia
Potreba normalizácie
• Odstránenie redundancie (duplicity) dát
• Odstránenie problémov – anomálií
– Anomálie pri vkladaní
– Anomálie pri odstraňovaní
– Anomálie pri aktualizácii
• Všetko ukladať len jeden krát a všade sa už len odkazovať na tento zdroj
Primárny kľúč
• Kľúčové atribúty - kandidáti na primárny kľúč
• Zložený kľúč
• Prirodzený identifikátor
• Umelý identifikátor
Dátová tabuľka v 1 – NF
• Ako zvoliť PK? - zložený kľúč (ID, Skill)
Príklad – faktúra
• chceli by sme ukladať do DB faktúry nejakej fiktívnej FI
• tabuľka
Príklad 2 – faktúra
• Viacej hodnôt v jednej bunke
Príklad 3 – faktúra
• Viacej riadkov
• Ako zvoliť PK? - číslo faktúry, kód produktu
Príklad 4 – faktúra
• 1 NF • 2 NF – funkčná závislosť
Príklad 5 – faktúra
• Tabuľka Faktúry • Tabuľka Faktúry-položky
Príklad 6 – faktúra
• Tabuľka Faktúry-položky • Tabuľka Produkty
Príklad 7 – faktúra
- diagram
Závislosť atribútov
• Funkčná závislosť
– Atribút B je funkčne závislý na atribúte A, ak s každou hodnotu A je spojená nie viac
ako jedna hodnota B
– Atribút A určuje hodnotu atribútu B
Funkčná závislosť
• A→B - B je funkčne závislé na A
• Elementárna A→B, ak atribút A je atomický.
• Úplná A→B, ak atribút A je kompozitný(zložený).
• Vzájomná - A→B aj B→A ( A↔B )
• Tranzitívna - A→B a zároveň B→C, potom A→C
• Triviálna – A a B sú množiny atribútov, A je funkčne závislé na dvojici A,B. (ID, Rodné Č.)
Príklad
• Atribút Name je závislý len na jednej časti PK: a to ID a na Skill nie
Príklad – faktúra
• Tabuľka Zákazníci • Tabuľka Faktúry
Príklad 2 – faktúra
- diagram
Zostava
• Zostava slúži na zobrazenie dát určených na vytlačenie na papier
– Veľkosť papiera je obmedzená – vopred daná
– Tlačidlá a iné interaktívne ovládacie prvky sú na papieri nepoužiteľné
– Dáta na papieri nie je možne ďalej spracovávať alebo meniť
• Vytváranie a zobrazenie údajov na zostave je preto
podriadené tomuto účelu
Vytváranie zostáv
• Pripojenie na dátový zdroj
– Record source – určuje počet zobrazovaných riadkov
– Ovládacie prvky zobrazujúce dáta – avšak bez interakcie/možnosti zmeny
• Sekcie zostavy
– Telo (Detail) – sa zopakuje podľa počtu riadkov
– Group header/footer, Page h/f, Report h/f
• Zostava môže obsahovať vnorené (sub)zostavy
– Dáta zo vzťahu 1-N
Sekcie zostavy 1
• Report header – hlavička zostavy
– Zobrazí sa len raz na začiatku celej zostavy, bez ohľadu na počet strán
– Je pred prvým hlavičkou strany (Page header)
• Report footer – päta zostavy
– Zobrazí sa len raz na konci zostavy, hneď za posledným zobrazením tela (Detail)
– Page footer (päta stany) sa na poslednej strane zostavy zobrazí až po päte zostavy
(Report footer)
Sekcie zostavy 2
• Page header – hlavička strany
– Zobrazí sa na začiatku každej strany zostavy
– Počet strán závisí od počtu zobrazovaných záznamov a veľkosti sekcie telo
zostavy(Detail)
– Page header (hlavička strany) nemusí byť na prvej strane
• Page footer – päta strany
– Zobrazí sa na konci každej strany zostavy
– Page footer (päta stany) sa na poslednej strane zostavy zobrazí až po päte zostavy
(Report footer)
Sekcie zostavy 3
• Detail – telo zostavy
– Počet zobrazení závisí od počtu riadkov(záznamov) načítaných zo zdroja (Record
source)
– Počet strán závisí od rozloženia opakovaní sekcie telo (Detail)
– teda od veľkosti, ktorú zaberá na strane.
• Grouping – Zoskupovanie riadkov
– Vytvára sekcie Group header a Group footer (hlavičku a pätu skupiny)
– Počet opakovaní tela v zoskupení podľa kritéria zoskupenia
Ochrana dát
• Chrániť dáta potrebujeme pred:
– Znehodnotením a stratou
– Odcudzením a zneužitím
• K strate dát môže dôjsť vplyvom prostredia, prírodnej katastrofy – oheň, voda; poškodenie
HW/SW, ľudským faktorom...
• Odcudzením a zneužitím chápeme cielený útok jednotlivca alebo organizácie proti nášmu
systému.
Otázky zabezpečenie
• Pri tvorbe bezpečnostnej politiky si musíme klásť nasledovné otázky:
– Čo chceme chrániť?
– Prečo to chceme chrániť?
– Ako to chceme chrániť?
– Čo budeme robiť ak naša ochrana zlyhá?
Zálohovanie (Backup)
• Základná technika pri ochrane dát pred stratou
• Techniky zálohovania :
– Úplná záloha (Full Backup)
– Inkrementálna (Incremental) – prírastkový
– Rozdielová (Differential)
– Zrkadlová + reverzne prírastková (Reverse Delta)
• Plán obnovy dát – Data recovery plan (Disaster recovery) – postup pri obnove
• Zálohovanie dát
• Zálohovanie transakčného denníka (transactional log)
Zabezpečenie DB servera
• Fyzická bezpečnosť - miestnosť, prístup, ...
• Sieťová bezpečnosť:
– Vnútorná sieť
• Router (smerovač)
• Firewall
• Proxy, NAT,...
– Prístup z vonka
• VPN
Zabezpečenie systému
• Zabezpečenie OS (operačného systému)
– Inštalácia len potrebných softvérov a služieb
– Pravidelná aktualizácia
• Opravy
• Bezpečnostné diery
• Antivírová ochrana
• (Anti spyware)
– Zmena základných (default) nastavení
• Heslá, administrátorské účty a podobne
Architektúry zabezpečenia DB
- Manažérska informatika
• MS SQL
• ORACLE
• (Postgres, MySql, Sybase, DB2, ... )
Dodatok
• Skompaktovať a opraviť
• Klient – Server
– Rozdelenie Access súboru (Split)
– .adp – project
SQL server – Backend – Databáza
MS Access – Frontend – Užívateľské rozhranie
Transakcia
• Je to množina(súbor) operácií, ktoré musia byť spracované ako celok – (všetky alebo žiadna)
• Ukončenie transakcie
– Potvrdenie (Commit)
– Odvolanie (Rollback)
– Záchytné body – check points
Príklad transakcie
• Databáza leteckej spoločnosti:
1. Rezervácia, záznam pasažiera (vloženie meno, adresa, číslo účtu, dátum, číslo letu do
tab. pasažieri)
2. Miestenka, priradenie miesta ak je voľné (aktualizácia do miesteniek letu)
3. Lístok (vloženie čísla lístku do tabuľky lístky)
4. Vystavenie faktúry (suma, ktorú zákazník bude musieť zaplatiť)
5. Vytlačenie lístka
• Problémy – čo ak sa nepodarí všetko:
1. Krok 2, krok 4, krok 5, a čo ak dvaja zákazníci rezervujú rovnakú miestenku
Vlastnosti transakcie
• ACID – akronym
• Atomicita (Atomicity) – transakcia musí úspešne prebehnúť celá alebo celá zlyhať
• Konzistentnosť (Consistency) – transakcia musí zachovať konzistentnosť databázy
• Izolácia (Isolation) – transakcia musí dokončiť prácu nezávisle na iných súbežných
transakciách
• Trvalosť (Durability) – zmeny uskutočnené transakciou musia zostať trvalé (v platnosti)
Neúspešné transakcie
- dôvody neúspešného ukončenia transakcie (failure):
• Prerušenie používateľom
• Zabránenie kvôli IO(integritným obmedzeniam) alebo zlyhanie aritmetickej operácie (naprk.
duplicita PK/unique key, neexistujúca hodnota v FK, NotNull check, delenie nulou, ... )
• Nedostatok prístupových práv k objektu(tbl.)
• Odvolanie dbms trans plánovačom kvôli: vypršaniu časového limitu, identifikácia deadlocku ,
iný problém pri konkurenčnom prístupe
• Zlyhanie softvéru alebo hardvéru (os system crash, chyba pri zápise na disk, výpadok
elek.prúdu, ... )
Konkurenčný prístup
• Concurency control - je postup riadenia, ktorý sa vyžaduje na kontrolu súbežného
vykonávania operácií, ktoré sa uskutočňujú v databáze.
– Prístup viacerých používateľov môže vyvolať konflikt
Typy konfliktov
• Paralelné spracovanie má nasledujúce charakteristiky:
– Postupnosť transakcií
– Konkurenčný prístup k dátam
– Stupeň izolácie – vzájomná viditeľnosť transakcií
• Typy konfliktov
– Read – Write
– Write – Read
– Write – Write
Problémy transakcií
• Read uncommitted data(dirty reads)
– Čítanie nepotvrdených dát
• Non-repeatable reads
– Počas opakovaného čítania sú dáta zmenené (Update)
• Repeatable reads (phantom reads)
– V opakovanom čítaní pribudnú záznamy (Insert)
- niektoré typy konfliktov pri súbežných transakciách:
• Read-Write conflict
• Write-Read conflict
• Write-Write conflict
Isolation levels
• Stupne izolácie transakcií
– Je stav ako transakcie môžu vidieť spoločné dáta a vzájomne si zasahovať do nich
• Rozoznávame štyri stupne :
– Read uncommited
– Read commited
– Reapetable read
– Serializable (najvyšší stupeň)
Unrepeatable read
• Neopakovateľné čítanie (Read-Write conflict)
Dirty read
• Dočasná aktualizácia (Dirty Read)
Write-Read conflict
(Read uncommited data)
• Dirty read / temporary update. ( WR conflict)
Write-Read conflict
• Write-Read conflict
• Čítanie nepotvrdených dát (read uncommitted data)
Write-Write conflict
• Prepísanie nepotvrdených dát (overwrite uncommitted data)
• tkz. strata aktualizácie
Zámok
• Lock
• Umožňujú riešiť konflikty transakcií pri paralelnom spracovaní
• Mechanizmus, ktorým sa dáta rezervujú pre jednu transakciu.
– Uvoľnenie – Commit / Rollback
– Čakanie na zámok
Zamykanie
• Úroveň zamykania (granularita)
Zámok:
eskalácia zdola nahor
– Databázy
– Súboru
– Tabuľky – pri príkazoch DDL
– Stránky(bloku) – veľkosť stránky 2/4KB – počet záznamov (riadkov) záleží od súčtu
veľkosti jednotlivých polí (dátových typov)
– Riadku
– Stĺpca – najväčšia réžia (implementuje sa len výnimočne)
Uviaznutie
• Deadlock – uviaznutie na mŕtvom bode
– Cyklická závislosť zámkov
– Príklad:
• T1 aktualizuje A a potom B
• T2 aktualizuje B a potom A
– Mechanizmy na odstraňovanie (zisťovanie, zotavenie, prevencia)
napríklad uvoľnenie po vypršaní časového limitu
• Livelock – uviaznutie v cyklickej zmene stavov
– Ťažko zistiteľný – príliš dlhé čakanie vo fronte,
časové limity a pod.
Pesimistický model
• Hlavnou myšlienkou je predísť kolízii
– Zamykanie dát pred spracovaním
• Výhody:
– Jednoduchšia implementácia, Veľmi bezpečný
• Nevýhody:
– Neškálovateľný, Náchylný na uviaznutie, Zamknuté dáta nedovoľujú prístup a môže
dlho trvať kým získame prístup
(Pesimistický prístup sa volí, ak ku konfliktom bude dochádzať často.)
Optimistický model
• Riešenie konfliktu až pri zápise do DB
– Dáta sa nezamykajú pred spracovaním(pri spracovaní)
– Posledný vyhráva, Porovnávanie zmien(polí, riadkov)
• Výhody:
– Škálovateľnosť (online/offline), Malá šanca na uviaznutie, Jednoduchá implementácia
• Nevýhody:
– Znížená bezpečnosť – ignorovaním riešenia konfliktu
– Zameranie na riadkové spracovanie – náročnosť pri zistení a riešení konfliktu
(Optimistický prístup sa volí keď je predpoklad, že ku konfliktom bude dochádzať zriedkavo.)
Transakčný log
• Log – žurnál zmien
– Inserts, Updates, Deletes
– Zálohovanie trans.logu – umožňuje opätovné vytvorenie súčasného stavu z
predchádzajúceho stavu
• Ak sa DB nachádza v nekonzistentnom stave – z trans.logu je možné zistiť nepotvrdené
(Uncommited) transakcie a následné ich zrušiť (Rollback).
BI – Business Intelligence
• Automatizácia a digitalizácia v podnikových systémoch prináša veľké množstvo dát –
historických dát
• BI – predstavuje procesy zberu a analýzy dát, ďalej technológie podporujúce a
zabezpečujúce tieto procesy
za účelom podpory rozhodovania v korporácii
• Vznik 1989 – množina konceptov a metód pre zlepšenie rozhodovania podniku s pomocou
podporných systémov založených na dátach a faktoch.
BI – komponenty / technológie
Súčasné kľúčové technológie:
• Dátové sklady
• OLAP – online analytické spracovanie dát (OnLine Analytical Processing)
• Data mining
Dátový sklad
• Dátový sklad – Data Warehouse (DW)
- v produkčných DB sa môže zhromaždiť veľké množstvo dát.
• DW – je úložisko dát, ktorého úlohou je podpora rozhodovania
vedúcich pracovníkov (manažmentu)
Architektúra DW
ETL procesy
• ETL – extract, transform, load
• EXTRACT – získanie dát z rôznych
zdrojov – databáz,
txt súborov, data flows...
• TRANSFORM – transformácia alebo upravenie dát do
vyhovujúcej formy, výpočty, ...
• LOAD – načítanie/nahratie dát do pripravenej štruktúry DW
tabuliek faktov a dimenzií
Problémy s DW
• Objem a variabilita spracovaných dát
• Skryté problémy s integritou dát z rôznych zdrojov
• Vynechanie dát, ktoré budeme potrebovať
• Nutnosť konsolidácie(zjednotenia) dát z rôznych zdrojov
• Veľké úložiská, najmä ak riešime historické dáta (akoby zálohovanie)
• Sporné vlastníctvo dát
• Náročné stanovenie potrieb/požiadaviek zákazníka na analýzu dát v DW
• Nekonečný projekt...
Metódy DW
• „Slice and Dice“ - v zmysle ako zjednodušenie/kvantifikácia a zoskupenie/agregácia
Napríklad
• „Drill Down/Up“ – kategorizácia zoskupenie
• „Roll-up“ -
• Klasifikácia alebo Kategorizácia dát
Denormalizácia
• Proces, ktorý sa snaží optimalizovať výkon databázy, pridaním redundantných a
zoskupených dát.
• ETL proces
• OLAP kocka
– Tabuľky faktov
– Tabuľky dimenzií
(Produkty, Mestá, Mesiace) – Sumy nákupov
• Schémy – model DB
Tabuľky
Tabuľky Dimenzií
• Tabuľka dimenzií je databázová tabuľka, ktorá ukladá atribúty popisujúce fakty v tabuľke
faktov.
• Bežne používané dimenzie sú ľudia, produkty, miesto a čas.
– Dimenzie môžu byť hierarchické
– Statické alebo podliehajúce zmene
• Prvok dimenzie je niečo ako kategória/filter atribút/
Tabuľka Faktov
• Tabuľka faktov pozostáva z meraní, metrík alebo faktov biznis procesu.
• Tabuľka faktov ukladá kvantitatívne informácie na analýzu.
• Tabuľka faktov má zvyčajne dva typy stĺpcov:
tie, ktoré obsahujú fakty,
a tie, ktoré sú cudzím kľúčom k tabuľkám dimenzií.
Príklad:
Ak je obchodným procesom predaj, zodpovedajúca tabuľka faktov bude
zvyčajne obsahovať stĺpce predstavujúce nespracované fakty aj agregácie
- NY predaje 30.11.2023 celkovo 12,000 USD
- LA predaje 30.11.2023 celkovo 15,000 USD
Tabuľkové schémy DW
Data Mining
• Proces, ktorý organizácie používajú na premenu „surových“ dát/údajov na užitočné
informácie.
NoSQL
- súčasné trendy v DB
IS
- informačné systémy
• IS sú dáta a informácie
• Dáta ukladáme do databáz
• Informácie predstavujú spracované dáta
História – vývoj DB
Dáta – štruktúra
• Objektovo-relačné mapovanie
• (Impedance mismatch)
Vertikálne škálovanie
- SQL ok
Horizontálne škálovanie
- SQL not ok
Charakteristiky
• Non Relational – dátový model nie je založený na relačnom modeli
• Cluster friendly – schopné bežať na klastri – zväzku serverov
• Opensource – otvorený zdroj - sú voľne dostupné - „zadarmo“
• Schema-less – bez schémy
• 21 storočie – vývoj v tomto storočí
Dátový model
Key-value
• Kľúč – Hodnota
• Hodnota môže byť čokoľvek – číslo, obrázok, dokument
• Hash tabuľka
• Dictionary
Dokument
• Komplexná štruktúra
• JSON – implicitná štruktúra
• SEMI - Štruktúrované
• Bez dátovej schémy (môžeme použiť XML)
Rozdiel
• Key-Value umožňuje aj metadáta
@size, @timestamp, @type
• Dokument – textový analyzér
• Indexovanie
Nevýhody agregátov
• Zmena pohľadu na dáta – ad hoc dotaz
• Relačné DB – triviálne
• NoSql – netriviálne (riešenie napr. vytvorenie indexu)
• MapReduce - ...
• (Výhoda agregátne orientovaných ak nemeníme spôsob nazerania na dáta)
Grafové DB
• Opak agregátu
• Priveľa spojení – pre Relačné DB problém
• Vlastný jazyk „cypher“
match (n:Crew)-[r:LOVES*]-(m) where n.name='Neo' return n as Neo,r,m
NoSQL a konzistencia
• Problém ak viacej užívateľov naraz pristupuje k dátam
• Modifikuje dáta
• Relačné DB – riešia spôsobom ACID – transakčné spracovanie
• NoSQL – riešia spôsobom BASE
• Basic Availability – dostupnosť v zmysle CAP theorem – poučka (Brewer's theorem)
• Soft state – stav sa môže meniť v čase aj bez vstupu
• Eventualy consistent – stane sa v čase konzistentná ak vypneme vstup
Konzistencia
• Logická - nie je rozdiel či máme RDBMS alebo NoSQL
• Replikačná
• Sharding – rozdelenie dát na časti
• Replikácia
CAP Theorem
• Consistency - konzistentný
• Availability - dostupný
• Partition tolerance – systém pracuje aj napriek čiastkovému výpadku napr. siete
Hadoop
• Rámec – obsahujúci opensource komponenty
• Spracovanie veľkého množstva neštruktúrovaných dát
• HDFS – Hadoop Distributed File system
• Map Reduce – distribuovaný výpočet