SQL Lukáš Masopust 2009
Historie Předchůdcem databází byly papírové kartotéky 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 – začínají relační databáze
Historie SQL 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 Language language 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 Language příkazy INSERT, UPDATE, DELETE a SELECT VDL - View Definition Language Pro návrháře a správce Virtuální představa databáze. It specifies user views and their mappings to the conceptual schema. DCL - Data Control Language is used to control and manage the database. Oprávnění…
Ukažme si prakticky... tridy zaci SELECT jmeno FROM tridy, zaci WHERE tridy.id = zaci.patrici AND tridy.trida = 'E4.C