Table of Contents

Databáze Jiří Zacpal

DEPARTMENT OF COMPUTER SCIENCE PALACKÝ UNIVERSITY, OLOMOUC KMI/YUDIT Úvod do informačních technologií

Osnova

Literatura

1. Connolly T., Begg C.: Database Systems. A Practical Approach to Design, Implementation and Management, 3rd edition. Addison Wesley, 2002. 0-201-70857-4 2. Pokorný J.: Databázové systémy a jejich použití v informačních systémech. Academia, 1992. 80-200-0177-8 3. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Database Systems:The Complete Book 4. Jiří Hronek: Databázové systémy (http://phoenix.inf.upol.cz/esf/ucebni/databa.pdf)

Databáze

Data vs Informace

vytvořením struktur, které odhalují uspořádání, vzory, tendence a trendy

je požaduje, tedy závislé na uživateli (individuální hloubka znalostí, zkušeností…)

Příklad

Cislo_faktury Faktura 01-05 Faktura 01-06 Faktura 01-07 Faktura 01-08 Faktura 01-09 Faktura 01-10

Datum_vystaveni Datum_splatnosti Cislo_odberatele 22.2.2005

8.3.2005

30.1.2006

13.2.2006

15.1.2007

29.1.2007

29.1.2008

12.2.2008

28.1.2009

11.2.2009

28.1.2010

11.2.2010

11 11 1255 13 11 11

Castka 2 400,00 1 200,00

3 000,00 36 000,00 1 200,00 1 200,00

Předpověď vývoje příjmů 4 00 000 Kč 3 00 000 Kč Částka

2 00 000 Kč

Polyg. (Částka)

1 00 000 Kč 000 Kč 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012

Data vs Informace

Vývoj „databází“

Kartotéka

Systém souborů

být nový nebo již založený v souboru klientů = možnost způsobení nekonzistence

Databázový systém (DBS)

Data a metadata

data

Funkce SŘBD

Uživatelé

Funkce databáze

Instance databáze

Typy databází

Vlastnosti dat

Datový model

Datový model

Význam datových modelů

Základní prvky datových modelů

Obchodní pravidla

Druhy datových modelů

Druhy datových modelů

Relační model

Relační model

Relační model

E-R model

E-R model

Abstrakce pohledu na data

Realita

Konceptuální úroveň

Logická úroveň

Fyzická úroveň

Uložená data

Principy konceptuálních modelů

1. oddělení konceptuální a interní úrovně 2. orientace na objekty, entity ne na záznamy a soubory 3. bohatší koncept, v relačním modelu jsou relace využívány na „všechno“, reprezentují entity, vícehodnotové atributy, asociace, agregace, dědičnost, … 4. možnost využít úrovně abstrakce v komplexních objektech k zakrytí detailů, možnost modelovat přímo aplikační objekty. 5. funkcionální podstata vztahů (atribut nebo funkce je jediným konstruktem) 6. ISA hierarchie ( práce s nadtypy a podtypy) 7. hierarchický mechanismus (objekty lze konstruovat z jiných objektů, formou agregace, seskupováním do množin, tříd)

Klíče

Funkční závislost

které mají stejnou hodnotu atributu X má stejnou hodnotu atributu Y.

osCislo prijmeni (naopak to neplatí) oborIDno zkratkaOboru

Klíče

určují ostatní atributy

osCislo osCislo, prijmeni

osCislo – je kandidátní klíč osCislo, prijmeni – není jmeno, prijmeni – může, ale nemusí být

osCislo

Cizí klíč

Relační model – algebraický pohled

Relační model – algebraický pohled

kartézského součinu domén Di příslušejících jednotlivým atributům Ai R  D1 x D2 x …x Dn,

Schéma relační databáze

Relační algebra

– nosičem R je množina relací – O je množina operací

– Ekvivalencí záhlaví rozumíme stejný počet atributů relací a existence vzájemně jednoznačného přiřazení atributů z jedné a druhé relace, omezené na dvojice s odpovídajícími doménami

Relační algebra

Vztahy

Vztahy v relačních databázích

Vztah 1:1

Vztah 1:M

Vztah M:N

Indexy

Indexy

Vlastnosti indexů

Normalizace relačních schémat

Normalizace relačních schémat

Příklad

C_PROJ JM_PROJ C_ZAM JM_ZAM

PR_ZAM PRACE H_MZDA ODPR_H

1. normální forma

1. Nahraďte každý skupinový atribut atomickými atributy. 2. Určete primární klíč.

2. normální forma

1. Určete všechny částečné závislosti. 2. Pro každou částečnou závislost vytvořte zvláštní relaci.

3. normální forma

1. Určete všechny tranzitivní závislosti. 2. Pro každou tranzitivní závislost vytvořte zvláštní relaci.

Boyce-Coddova normální forma

Postup normalizace

Databázový jazyk SQL

Databázový jazyk

Databázové jazyky - SQL

Datové typy

INTEGER SMALLINT

NUMBER (L,D) – maximální délka DECIMAL (L,D) – minimální délka

CHAR (L) – do 255 znaků, pevná délka VARCHAR(L) – proměnlivá délka, maximálně L

DATE

znaků

Vytvoření struktury tabulky

CREATE TABLE jmeno ( sloupec1 typ [omezení], … sloupec n typ [omezení], PRIMARY KEY(sloupec 1,…,sloupec n), FOREIGN KEY(sloupec 1, …, sloupec n) REFERENCES jmeno, CONSTRAINT omezení1);

Příklad

CREATE TABLE Zakaznik( Z_Cislo INTEGER NOT NULL UNIQUE, Z_Jmeno VARCHAR(15) NOT NULL, Z_Prijmeni VARCHAR (20), Z_Telefon VARCHAR (9), PRIMARY KEY(Z_Cislo), CONSTRAINT Om1 UNIQUE(Z_Jmeno,Z_Prijmeni)); CREATE TABLE Faktura( F_Cislo INTEGER NOT NULL UNIQUE, Z_Cislo INTEGER NOT NULL, F_Datum DATE, PRIMARY KEY(F_Cislo), FOREIGN KEY(Z_Cislo)REFERENCES Zakaznik); CREATE TABLE Polozka( Pol_Cislo INTEGER NOT NULL UNIQUE, F_Cislo INTEGER NOT NULL, Pol_Pocet INTEGER DEFAULT 0, Pol_Cena INTEGER, Z_Cislo INTEGER, PRIMARY KEY(Pol_Cislo), FOREIGN KEY(F_Cislo)REFERENCES Faktura, FOREIGN KEY(Z_Cislo)REFERENCES Zbozi);

Další manipulace s tabulkou

SQL indexy

CREATE [UNIQUE] INDEX jmeno ON jmenotabulky(sloupec1, …, sloupec n)

CREATE UNIQUE INDEX Testy ON Test(C_Zam,Test,Datum) C_Zam

T_Cislo

Test

Datum

Skore

110

1WEA

15.5.2012

93

110

2WEA

12.5.2012

87

111

1HAZ

14.12.2012

91

111

2WEA

18.2.2012

95

111

3WEA

18.2.2012

95

112

1CHEM

17.8.2012

91

KMI/YUDIT Úvod do informačních technologií

65

Příkazy pro manipulaci s daty

Uložení změn do tabulky

    

záznamy se neukládají ihned na disk → při pádu aplikace může dojít ke ztrátě údajů pro okamžité uložení změn slouží příkaz COMMIT pro zrušení změn příkaz ROLLBACK před oběma příkazy musí být příkaz BEGIN TRANSACTION u MS Access tyto příkazy nejsou a záznamy se ukládají ihned po vykonání příkazů SQL

Příkaz SELECT

SELECT atributy FROM jmeno [WHERE where_fráze ]

Shlukování dat

SELECT atributy FROM jmeno [WHERE where_fráze ] [GROUP BY sloupce] [HAVING podmínky] [ORDER BY sloupce[ASC | DESC]]

Pohledy

CREATE VIEW pohled_jmeno AS SELECT …

DROP VIEW pohled_jmeno

Spojení tabulek

Vnější spojení

Transakce

Transakce

Transakce

Koncept transakce

ACID

transakce potvrzena), nebo se neprovedou vůbec.

Transakce převádí databázi z jednoho konzistentního stavu do jiného.

mohou pracovat souběžně, ale každá transakce musí být odstíněna od výsledků operací

  ostatních neukončených nebo následujících transakcí. Databáze prochází takovými stavy,
  jako by souběžné transakce probíhaly sériově za sebou s vhodným uspořádáním
* Trvalost(Durability) – výsledky potvrzené transakce jsou perzistentně uloženy

Podrobnější informace

1. Connolly T., Begg C.: Database Systems. A Practical Approach to Design, Implementation and Management, 3rd edition. Addison Wesley, 2002. 0-201-70857-4 2. Pokorný J.: Databázové systémy a jejich použití v informačních systémech. Academia, 1992. 80-200-0177-8 3. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Database Systems:The Complete Book 4. Jiří Hronek: Databázové systémy (http://phoenix.inf.upol.cz/esf/ucebni/databa.pdf)

Zkouška

Jiří Zacpal (Palacký University, Olomouc)