Databáze
SQLLukáš Masopust 2009
Historie Předchůdcem databází byly papírové kartotéky
1890 - děrný štítek
1959 konference
1960 – vytvořen jazyk COBOL pro hromadné zpracování dat
1965 – Výbor Database Task Group (DBTG)
• Vytvoření koncepce databázových systémů
1971 – síťový db systém i hierarchické databáze
1970 – začínají relační databáze
Historie SQL
1974 - Structured English Query Language
– Syntax inspirována přirozenému jazyku
1979 – Oracle database
1992 – SQL-92 (SQL2)
1999 – SQL-99 (SQL3) databáze s objektovými prvky
– Objektově relační databáze
Základní pojmy I.• SŘBD
– soubor metod a programových prostředků pro manipulaci s rozsáhlými datovými soubory uloženými v určitém formátu
• Entita– Prvek (tabulka) popsaný parametry
• databázový model– Hierarchický
• založen na modelování hierarchie mezi entitami se vztahy podřízenosti a nadřízenosti
– Síťový• vychází z teorie grafů, uzly v grafu odpovídají entitám a
orientované hrany definují vztahy mezi entitami
– Relační– Objektově relační databáze
SŘBD (DBMS)
• Databáze je místo pro uložení dat.• Přístup k těmto datům zprostředkovává
program označovaný SŘBD
Systém řízení báze dat (Database management system)
Relační databáze
• Vychází z relační algebry• Data uspořádána do tabulek (relací)
A -> B a současně B není podmnožinou A, pak množina A obsahuje primární klíč tabulky
Základní pojmy II.
Hodnota (= uživatelská data)• Datový typ
Primární klíč• Jednoznačně indentifikuje záznam
Normální formy• Jsou 4• Vlastnosti, které by měly dobře navržené tabulky
Realizace SŘBD
• MySQL– Velmi rozšířená na webu
• PostgreSQL– Oproti MySQL umožňuje psát složitější dotazy
• mSQL– miniSQL – odlehčený DB server
• Oracle– Profi řešení
• Microsoft SQL– Profi řešení
Jazyk SQL- patří mezi tzv. deklarativní programovací jazyky – SQL kód vkládáme do jiného programovacího jazyka a terminálem odešleme na server jako textový řetězec
SDL - Storage Definition Languagelanguage to define the internal schema
DDL - Data Definition Language Definuje datových typy a strukturu tabulek, databází.CREATE TABLE My_table ..
DML - Data Manipulation Languagepříkazy INSERT, UPDATE, DELETE
a SELECT
VDL - View Definition LanguagePro návrháře a správce
Virtuální představa databáze.It specifies user views and their
mappings to the conceptual schema.
SQL
SDL
DDL
VDLDML
DCLDCL - Data Control Languageis used to control and manage the database. Oprávnění…
Ukažme si prakticky...
id trida
4 A4.A
5 E4.B
6 E4.C
7 E4.D
tridy
zaci
id jmeno patrici
1 Honskus Adam 42 Hrudka Martin 43 Vrba Petr 44 Fulín Michal 55 Vyhnal Přemysl 56 Boček Lukáš 67 Kožešník Lukáš 68 Mudrová Lenka 69 Podskalský Aleš 610 Pohořelý Michal 611 Hanák Martin 712 Linha Lukáš 713 Nikodým Tomáš 7
SELECT jmeno FROM tridy, zaciWHERE tridy.id = zaci.patrici AND tridy.trida = 'E4.C
Pojďme na to !