You are on page 1of 41

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

DBMS (Database Management System)


- softvér, ktorý zabezpečuje správu databázy
- MS Access, Oracle, MS SQL Server, MySQL, DB2 ...
▪ Predstavuje efektívne, spoľahlivé, bezpečné a pohodlné viac-užívateľské prostredie
umožňujúce ukladanie a prístup k veľkému objemu perzistentných dát
▪ Vrstvy dátovej abstrakcie
 Fyzická – dátové súbory
 Logická – schéma dát
 Externá – používateľské pohľady

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ý

Otvorené súbory – Flat files:


▪ CSV – comma separated values (, alebo ; alebo medzera)
 Chýba logická vrstva – musí byť integrovaná v aplikácii
 Chýbajú prepojenia/vzťahy medzi jednotlivými súbormi
 Metadata – len prvý riadok ako názvy stĺpcov

Objektovo-orientovaný databázový model:


▪ Objekt – abstraction that includes
 Atribúty (alebo vlastnosti s hodnotou napríklad Meno – Michal)
 Behavior – (Triggers and Actions) Methods – Procedures & Functions
 Komponenty OODM
 Objekty – represent real-world entities
 Triedy – šablóny pre vytváranie objektov Objek
 Dedičnosť, Polymorfizmus
 Zapuzdrenie – Atribúty, Metódy
t
Verejné metódy
Relačné databázy
- ukladajú dáta v tabuľkovej štruktúre (Relácia = Tanuľka)
▪ Tabuľka
➢ Riadky – Záznamy
➢ Stĺpce – Polia (názov poľa určuje, čo je v ňom) Súkromné dáta
▪ Dátové typy
➢ Text, číslo, dátum ... Súkromné metódy
➢ Rozsah
➢ Hodnoty a domény
➢ Integritné obmedzenia
▪ Jednoduchá definícia, údržba aj manipulácia s databázovými štruktúrami
▪ Dáta sa načítavajú pomocou jednoduchých jednorazových dotazov (SQL)
▪ Dobre zavedený štandard ANSI a ISO
▪ Kvalitné a stabilné RDBMS od veľa výrobcov
▪ Dobrá kompatibilita pri prevodoch medzi jednotlivými produktami
Tabuľka
▪ predstavuje preddefinovanú štruktúru
▪ v tabuľke sa vieme dobre orientovať (usporiadať, filtrovať)

Záznam
- reprezentuje konkrétnu entitu (objekt)
- duplicita záznamov je neprístupná

Aké sú rôzne (RDBMS) softvéry:


- Oracle, SQL Server, My SQL, Postgre SQL, MariaDB, SQLite

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

Rozložený vzťah M-N


• Spojovacia tabuľka s 2x 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)

NULL hodnota v FK vo vzťahu 1-N


• Hodnota Null neporušuje referenčnú integritu
• Takýto odkaz jednoducho vyjadruje, že je podradený / dcérsky záznam nemá (nevieme, či
má) nadradený / rodičovský záznam

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í

Dátové typy MS SQL/ORACLE


• Numerické - int, decimal, numeric, money, float, real, bit, NUMBER
• Dátumové a časové - date, time, datetime, INTERVAL, TIMESTAMP(Oracle)
• Znakové, textové a unicode - char, varchar, text, nchar, nvarchar, ntext, CHAR, VARCHAR2
(NVARCHAR) (Oracle)
• Binárne (veľké a neštruktúrované dáta) - binary, varbinary, image, BFILE,BLOB,CLOB
(Oracle)

Vlastnosti polí v MS Access


• Field size – rozsah poľa, napríklad počet znakov alebo množina čísiel
• Indexed – s duplicitou / bez duplicity, nie všetky dátové typy sú indexovateľné
• Required – nutné zadať/vyplniť (NULL – Not Null)
• Default Value – predvolená hodnota, pri pridávaní nových záznamov
• Input mask (vstupná maska) – slúži na usmernenie pri zadávaní hodnôt v poli
• Validation rule – overovacie pravidlo, pre hodnoty v poli
• Iné (Caption, Format, Allow zero length string, Validation text) - slúžia na doplnenie
vlastností a integritných pravidiel

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

Vodopádový model vývoja – Waterfall


- zber požiadaviek
- modelovanie
- vytvorenie
- testovanie
- zavedenie do prevádzky a používanie
Životný cyklus databázy
• Aj keď vodopádový model má začiatok a koniec, v praxi sa v zásade jedná o opakovanie v
cykloch, pretože život prináša neustálu zmenu a nové požiadavky na zmenu
Stratégia a
Plánovanie

Prevádzka a
Analýza
Údržba

Testovanie Návrh

Zostavenie a
Implementácia

Etapy klasického prístupu


- štúdia uskutočniteľnosti, formovanie
Plánovanie projektového tímu

Zber požiadaviek - zber a analýza požiadaviek

- vývoj konceptuálneho modelu – E/R


Konceptuálny návrh Diagram

- transformácia do 2-rozmerných tabuliek


Logický návrh - normalizácia

- vytvorenie fyzického modelu pre konkrétnu


Fyzický návrh DBMS

- vloženie testovacích dát a vytvorenie


Vývoj UI aplikácie a testovanie používateľského rozhrania (UI), testovanie
procesov / aplikácie
- vytvorenie prevádzkovej DB a vloženie
Implementácia a nasadenie (migrácia) ostatných dát
Začiatok návrhu
• Prvý model - ako skúmaný subjekt funguje?
• Zber a analýza požiadaviek
• Rozhovory (alebo dotazník)
• Pozorovanie
• Revízia dokumentov
• Pohľady užívateľov - výstupy, ktoré potrebujú alebo očakávajú
• Dátové a procesné modelovanie - dva rôzne pohľady a spôsoby opisu skúmaného subjektu
• Označenie tejto etapy aj ako „Externý návrh“

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

Konceptuálny návrh databázy


• Entity (Relácie)
• Objekty z reálneho sveta
• Atribúty – vlastnosti, ktoré charakterizujú entity
• Vzťahy - väzby medzi objektmi
• E/R Diagramy - formáty diagramov ER (Chen, IDEF1X, Relačný, UML)

ER diagram – Chen ER diagram – IDEF1X ER diagram – relačný formát

Kardinalita vzťahu
• Vyjadruje prípustný počet entít vo vzťahu
• Príklad: Oddelenie – Zamestnanec – Projekt – Výskum

O..N 1..N

1 a len 1 0..1 N..M


Stupeň vzťahu
• V závislosti od toho koľko entít sa vo vzájomnom vzťahu nachádza rozlišujeme:
• Unárny (rekurzívny) vzťah – entita je spojená sama so sebou
• Binárny – dve entity sú vzájomne spojené
• Ternárny – tri entity sú vzájomne spojené (cez spojovaciu tabuľku)
• Kardinalita N:M:P
• N-árny (viacero entít vzájomne spojených, napríklad kvadrárny – 4)
• Veľmi zriedkavé, v praxi sú to vedľajšie/pomocné entity nepriamo vstupujúce do
vzťahu.

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

Integritné obmedzenie (IO)


- Obchodná logika → Aplikačné pravidlá
- Integritné obmedzenia – ako základné pravidlá databázy
• Entitná integrita
• Integrita primárneho kľúča
• Zabezpečenie jednoznačnej identifikácie entity (v tabuľke)
• Kontroluje (ne)duplicitu záznamov
• Doménová integrita - množina hodnôt prípustných pre pole (atribút)
• Referenčná integrita - aktuálnosť odkazov v cudzom kľúči (FK)

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)

Návrh tabuľky – koncept


- Postup pri návrhu tabuľky:
• Identifikácia Entity a výber atribútov - názov tabuľky, názvy polí
• Identifikácia dátových typov polí
• Identifikácia kľúčových atribútov (polí) - kandidátne kľúče – výber Primárneho kľúča (PK)
• Identifikácia obmedzení (IO) - Not Null, Validation Rule

Návrh tabuľky do projektu

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 σ

Karteziánsky súčin (x) Spojenie Zoskupenie


(grupovanie) a
agregácia

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

Princíp komunikácie s RDBMS

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

Výberový dotaz – SELECT


• Návrh – Design View
• Dátová tabuľka – Datasheet View
– Obnovenie – Refresh
– Znovu spustenie – Requery
– Aktualizovateľnosť – Updateable
- princíp objektu dátový list (datasheet)
• SQL – SQL View

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

Výber z viacerých tabuliek


• Spojenie – JOIN
• Typy spojení
– Vnútorné spojenie – INNER JOIN
– Vonkajšie spojenie – OUTER JOIN (LEFT/RIGHT)
• Karteziánsky súčin (bez spojenia)
• Rekurzívne spojenie
– Spojenie v rámci jednej tabuľky

Vnútorné spojenie – Inner join Vonkajšie spojenie – Outer join

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

Inner Join – example


- ak spojenie nie je vytvorené pomocou PK-FK a typu 1-N

Fázy návrhu dátového modelu


• Externý – zozbieranie informácií o prostredí
• Konceptuálny – abstrakcia reality
• Logický – návrh 2-rozmerných tabuliek
– Riadky a stĺpce
– PK a FK
• Fyzický (Interný) – návrh pre konkrétny DBMS
– MS Access, Oracle, MySql, MS SQL, ...
– Záznamy a polia
Zadanie (USER STORY)
• Knižnica
– Vytvoriť elektronický systém evidencie kníh a čitateľov, ktorí si tieto knihy môžu
požičiavať
• Evidencia zákaziek marketingových kampaní (Zjednodušený príklad)
– Vytvoriť elektronický systém evidencie marketingových kampaní ako zákazok od
zákazníkov.
– Zamestnanci dostanú na starosť klienta a jeho kampaň.
– Kampaň pozostáva z plánovaných aktivít a následnej realizácie jednotlivých činností
na kampani
• Rozšírenie
– Vykonané činnosti treba na mesačnej báze fakturovať
– Sleduje sa úspešnosť kampane

Metodika konceptuálneho návrhu


• Cieľ: Vytvoriť ER model
(obsahuje: entity, vzťahy, atribúty a domény, PK, integritné obmedzenia)
- Kroky:
- Identifikácia entít
- Identifikácia vzťahov
- Identifikácia atribútov entít, vzťahov a určenie domén
- Vytvorenie ERD
- Určenie kľúčov – primárnych kľúčov, kandidátnych a alt.
- Špecializácia entít – supertyp a subtyp (nepovinne)
- Overenie voči procesom a používateľom

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

Entita Čitateľ – atribúty


• O čitateľovi budeme evidovať:
– Meno
– Priezvisko
– Adresa
– Číslo preukazu totožnosti
– Dátum narodenia
– Číslo čitateľského preukazu

Entita Kniha – atribúty


• O knihe potrebujeme vedieť a evidovať:
– Názov
– Autor – (? Viac autorov)
– ISBN
– Rok vydania
– Kategória - žáner (napr.: Beletria, Historická, Román, ...)
– Jazyk
– Evidenčné číslo

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ť“

Logický model – transformácia


• Reprezentácia 2-rozmernými tabuľkami
• Dekompozícia vzťahu M-N (rozklad)
– Spojovacia tabuľka
– Dva vzťahy 1-N
• Výber PK a FK
– Určenie PK
– IO – integritné obmedzenia
• Normalizácia

Vytvorenie procesného modelu


• Procesný model – je zjednodušená reprezentácia procesov (činností, informačných tokov,
rolí) prezentovaná z určitej perspektívy.
– Work-flow – pracovné toky, sekvencia činností
– Data-flow – informačné toky, vstupy/výstupy dát
– Role model – roli zúčastnených, kto čo robí
• Procesný model tvorí podklad pre návrh informačného systému
– BPM – Business Process Model – konceptuálny model všetkého čo sa vo
firme/organizácii deje.
– Pravidlá (Business Rules): Obmedzenia a Aplikačné pravidlá

Procesný model pre „Knižnicu“


• Registrovať nového čitateľa
• Vyhľadať knihu
– podľa názvu
– podľa autora
– podľa dostupnosti (požičané/voľné)
– ...
• Požičať voľnú knihu konkrétnemu(registrovanému) čitateľovi
• Vrátiť požičanú knihu

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, ... )

Dátový model – príklad

Dátový model – príklad E/R Diagram


- rozšírený model „Knižnica“

Procesný model – príklad


• Zoznam procesov
▪ Registrácia nového čitateľa
▪ Tlač preukazu
▪ Vydanie nového preukazu
▪ Vyhľadanie knihy
▪ Požičanie knihy
▪ Vrátenie knihy
▪ Zaplatenie pokuty za neskoré vrátenie
▪ Zaslanie upomienky
• Proces Registrácia nového čitateľa
▪ Pre nového čitateľa je potrebné vyplniť meno, priezvisko a adresu bydliska.
▪ Po registrovaní sa vytlačí čitateľský preukaz, pomocou ktorého si čitateľ môže
zapožičať knihu z knižnice.
▪ Stlačením registrovať sa formulár uzavrie

Práca s dátami v MS Access

Koncepcia komunikácie aplikácie s databázou


• Zdroj dát (Data Source) – Tabuľka(y)
• Query – Výber (Select) – Spracovanie dát
– Dátový list (Data Sheet) – Zobrazenie dát
– Pridanie záznamu (Insert)
– Zmena hodnoty (Update) Výkonné príkazy
– Odstránenie záznamu(Delete)
• Poskytnutie dát a príkazov užívateľovi
– MS Access – prostredníctvom Formulárov a Zostáv
(Forms/Reports)

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

Ovládacie prvky (Controls)


• Predstavujú rôzne objekty UI pre zobrazovanie, spracovanie a popisovanie dát
• Typy ovládacích prvkov
– TextBox – textové pole
– ComboBox – rozbaľovacie textové pole
– Command Button – príkazové tlačidlo
• Podformulár (SubForm) – vnorený formulár

Prehľad ovládacích prvkov


• Label – Popis, nálepka k iným ovl.prvkom
• Text Box – textové pole, zobrazovanie dát a zadávanie textu z klávesnice(užívateľom)
– Dvojica Label-Text Box predstavujú základný zobrazovací objekt pre dáta z DB
• Button – tlačidlo, slúži na vykonávanie príkazov
• Combo Box – kombinovaný prvok textové pole a zoznam, slúži na zobrazenie a možnosť
výberu zo zoznamu hodnôt

Ďalšie ovládacie prvky


• Check Box – zaškrtávacie políčko (2 hodnoty napr. Yes/No)
• Option Group – Skupina prepínačov
• Option Button - prepínač
• Toggle Button – prepínacie tlačidlo (Yes/No)
• List Box – zoznam – zobrazenie zoznamu hodnôt
• Tab Control – karty, ako kontajner množiny ovl. Prvkov

Vlastnosti formulárov a ovládacích prvkov


• Formátové (Format)
• Dátové (Data)
• Udalostné (Event)
• Ostatné (Other)
- vlastnosťami sú zabezpečené:
o Účel objektu (ovl.prvku)
o Variabilita objektu

Typy použitia formuláru


• Podľa zobrazenia dát:
Viazané (Bounded)
– Jeden záznam (Single form)
– N záznamov (Datasheet, Continuous )
– Vzťah 1-N : Formulár s podformulárom
• Formulár – jeden záznam (Single)
• Podformulár – N záznamov (Datasheet)
• Bez napojenia na dáta (Unbound) - prepínací panel – napr. formulár s tlačidlami

Single Form – jednoduchý formulár


• Formulár zobrazujúci 1 záznam
– Je možné použiť všetky ovládacie prvky
– Dáta predstavujú množinu dát, ovládanie pomocou navigačných tlačidiel
– Tento formulár je viazaný na dáta v tabuľke/dotaze

Formulár zobrazujúci N záznamov


• Dátový list (Datasheet) • Continuous – opakovanie sekcie
(Detail)

Dátové vlastnosti objektov


• Ovládacie prvky bez možnosti napojenia na dáta - popis, tlačidlo, Karta... (Label, Button, Tab
Control...)
• Formulár
– Record source (zdroj dát)
– Dáta sú načítané do množiny: Recordset
• Ovl. prvky
– Control source – napojenie ovl.prvku na určité pole tabuľky v databáze (tbl. / query)
– Výpočet – vzorec

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

Prvá normálna forma – 1NF


• Atomickosť – atomické atribúty
• Určenie primárneho kľúča
• Relácia je v 1NF – ak neobsahuje žiadne opakujúce sa atribúty
• Problémy – ako zapísať dáta do tabuľky

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é Č.)

Druhá normálna forma – 2NF


• Funkčná závislosť
• Relácia je v 2NF ak
– Relácia je v 1NF a
– Všetky nekľúčové atribúty sú závislé na celom primárnom kľúči
Pozn.: Ak je v relácii len jednoduchý PK (je v 1NF), relácia je automaticky aj 2NF

Príklad
• Atribút Name je závislý len na jednej časti PK: a to ID a na Skill nie

Tretia normálna forma – 3NF


• Tranzitívna závislosť
• Relácia je v 3NF ak
– Relácia je v 2NF
– Všetky nekľúčové atribúty relácie sú závislé len na primárnom kľúči

Príklad – faktúra
• Tabuľka Zákazníci • Tabuľka Faktúry

Príklad 2 – faktúra
- diagram

Ďalšie normálne formy


• BC NF – Boyce-Coddova normálna forma
– ak žiadny nekľúčový atribút nezávisí tranzitívne na žiadnom kľúči
• 4,5,6 NF – príliš veľa teórie
Denormalizácia
• proces, ktorý sa snaží optimalizovať výkon databázy, pridaním redundantných a
zoskupených dát
• OLAP kocka
– Tabuľky faktov
– Tabuľky dimenzií
(Produkty, Mestá, Mesiace) – Sumy nákupov

Rozdiel Normalizácie a Denormalizácie


Systémy:
• OLTP – online transactional processing
– Transakcie – pridávanie, aktualizácia, ... (SIUD)
– Normalizovaná DB – zamerané na transakcie
• OLAP – online analytical processing
– Analýza historických dát, sumáre, priemery, ...
– Denormalizovaná DB – zamerané na výpočty

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

Typy zobrazení zostavy


– Report View – zobrazenie na obrazovku,
s obmedzenou možnosťou interakcie
(tlačidlá, rozbaľovacie polia)
– Print Preview – zobrazenie na papier,
finálne zobrazenie ako bude vyzerať tlač
• Veľkosť strany
• Okraje
• Počet strán
– Layout view – kombinované zobrazenie návrhu a náhľadu na zjednodušenie
formátovania

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

Zoradenie dát na zostave


• Sort – Zoradenie musí byť urobené pred zobrazením dát. Najneskôr až v zobrazení Report
View.
• V zobrazení Print preview – už nie je možná žiadna interakcia s dátami.
• Viac-stupňové zoraďovanie – podľa viacerých polí

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.

Dôvody pre zabezpečenie DB


- Databáza tvorí základ každého informačného sys.:
• Umiestnenie citlivých dát v džungli Internetu
• Útoky z vonku
• Útoky z vnútra organizácie
• Chyby
• Prevencia
• Bezpečnostná politika organizácie – dokument pokrývajúci riešenie bezpečnosti
informačného 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 Wifi siete


• Striktná politika pri vytváraní bezdrôtových sietí
– Povinné šifrovanie - WEP, WPA a WPA2
– Zoznam MAC adries - MAC adresa je unikátne číslo sieťovej karty pristupujúceho
užívateľa

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

Zabezpečenie klientskych aplikácií


• Databázový klient – akýkoľvek počítačový systém, ktorý sa priamo pripája k DB serveru
• Používateľské účty (Users accounts) - Heslá – politika hesiel
• Šifrovanie (encryption)
• Zabezpečenie klientskeho OS - Antivírus, Antispyware, ...

Architektúry zabezpečenia DB
- Manažérska informatika
• MS SQL
• ORACLE
• (Postgres, MySql, Sybase, DB2, ... )

Zabezpečenie MS Access 2007/2010


• Dôveryhodnosť aplikácie - Pri štarte bez certifikátu – vypnutie funkcionality
• Potvrdenie certifikátom:
– Vlastný / vydaný certifikačnou autoritou
– Trust Center

Access – povolenie obsahu


• Obsah, ktorý nebude fungovať ak ho nepovolíme:
– VBA code, vlastné funkcie a výrazy, ktoré ich používajú, niektoré príkazy v makrách
(napr. SetValue)
– Action queries
• Append, Update, Delete, MakeTab
• (SQL – DDL príkazy)
– ActiveX ovládacie prvky - kalendár, ...

Formy zabezpečenia 2007/2010


• Heslo databázy
• Vytvorenie .accde súboru - skompilovanie
• Použitie SharePoint Serveru
– Publikovanie DB ako Web službu
– Použitie v rámci intranetu
– Užívateľské účty podľa domény (prístup na SPS)

Zabezpečenie MS Access 2003 a 2000


• Súbory .mdb a mde - Starší model bezpečnosti
• Možnosti vytvárať a spúšťať v MS Access 2007/2010
• Security Access 2003

Formy zabezpečenie 2003


• Databázové heslo
• Šifrovanie (Encrypting)
• Vytvorenie pracovných skupín
– Súbor .mdw (workgroups)
– Súbor .ldb (pri otvorení databázy) – ukladá informácie o aktuálne prihlásenom
užávateľovi
• Kompilácia
– Vytvorenie .mde (skompilovanie kódu)
– Odstránenie vývojárskych možností

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)

Príklad transakcie na databáze Banky


• Banka má dáta o účtoch svojich klientov
napríklad: Tabuľka Účty (Accounts)

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.

Typy konkurenčných prístupov


• Pesimistický model
– Zabránenie/predídenie kolízii(konfliktu),
– Zamykanie dát pred spracovaním
• Optimistický model
– Dáta sa nezamykajú
– Zistenie a riešenie konfliktu pri zápise do databázy
• Semi – optimistický
– niektoré operácie sú riešené pesimisticky a niektoré optimisticky.

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.)

Metódy pri konkurenčných mechanizmoch


• Serializácia – najvyšší stupeň izolácie
– Môže spôsobovať stratu konkurencie
• Časové pečiatky
– Sledovanie priebehu transakcie a časové obmedzenia
• Dvojfázové zamykanie (2PL)
– Manažment zámkov s potvrdzovaním priebehu

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í

Typy DBS podľa použitia


• OLTP – Online Transactional Processing
– Systémy určené na spracovanie transakcií (INSERT, UPDATE, DELETE) , ...
• OLAP – Online Analytical Processing
– Systémy určené na analýzu historických dát
Porovnanie OTLP a DW / OLAP

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

Rozdiel Normalizácie a Denormalizácie


Systémy
• OLTP – online transactional processing
– Transakcie – pridávanie, aktualizácia, ... (SIUD)
– Normalizovaná DB – zamerané na transakcie
• OLAP – online analytical processing
– Analýza historických dát, sumáre, priemery, ...
– Denormalizovaná DB – zamerané na výpočty

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

Detail – schémy snehová vločka


OLAP kocka
• Je multi-dimenzionálne pole (viac rozmerné)
- je počítačová technika analýzy údajov s cieľom hľadať poznatky.

Data Mining
• Proces, ktorý organizácie používajú na premenu „surových“ dát/údajov na užitočné
informácie.

Data Mining – Dolovanie dát


• Hľadanie platných, predtým neznámych, dôkazných informácii...
• Data mining kombinuje metódy štatistiky, umelej inteligencie a strojového učenia s cieľom
nájsť vzory, vzťahy a anomálie vo veľkých súboroch údajov.
• Dolovanie dát môže zlepšiť biznis: zvýšiť predaje, vzťahy so zákazníkom a podobne..
• Dnes bežné použitie na predpovedanie budúcich trendov alebo odhalenie rôznych anomálií,
ako sú naprk. podvody.

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)

Databáza ako integračný mechanizmus

Čo priniesol rozmach internetu


• Internet
• Zvýšenie toku dát, objem dát, variabilita
• Nároky na výkon....
• Služby

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

Agregát (objekt) – Aggregate oriented


• Komplexná štruktúra
• Hodnota - predstavuje agregát
• Dokument – predstavuje agregát
• Tento spôsob ukladania môžem nazvať „zameraný na agregáty“ – pracujeme s
agregátmi(objektami)
• Objektový model/Obchodný model - je potrebne údaje(dáta) zoskupovať(združovať) “natural
aggregates” – prirodzených agregátov s ktorými pracujeme
• V relačnej DB musíme agregáty rozdeliť do viacerých tabuliek (Normalizácia dát) / V NoSQL
DB ukladáme agregát ako jeden celok(záznam/riadok)

Column Store – stĺpcové DB


• Riadkové ukladanie – záznamy
VS
• Stĺpcové ukladanie – agregácia (zoskupenie dát/zlúčenie)
• Zaujíma nás všetky články s #Agile alebo #NoSQL

Práca s agregátmi (objektami)


• Uloženie agregátu
• Ako celok – na jeden raz
• Hranice agregátu
• Rozloženie do klastru
• Routing – oslovenie správneho serv.
• Delenie dát per server –
„The driving factor“
Flexibilita RDBMS

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

Kedy používať NoSQL


• Jednoduchší vývoj
• Veľké množstvo dát
• Problémy
• Ktorú DB použiť
• Vyžaduje si to zmenu organizácie – napr. DBA netreba, SQL netreba
• Mladá technológia – nevyspelosť – 5 rokov vývoj v porovnaní s 20 rokov skúseností
SQL
• Relačnú DB na transakcie a NoSQL na analytiku

Analýza dát ako služba


• Orientácia na služby
• Škálovanie výkonu
• Cloud
• Virtualizácia
• Dátové centrá

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

You might also like