SQL

SQL (Strucrured Query Language) je relační jazyk založen na predikátovém kalkulu. Na rozdíl od jazyků založených na relační algebře, kde se dotaz zadává algoritmem, tyto jazyky se soustředí na to co se má hledat, ne jak.

SQL obsahuje příkazy pro:

  • vytváření a modifikaci relačního schematu (tabulek, databází) - CREATE, ALTER (MODIFY, ADD, DROP), DROP  = vytvoř, uprav, smaž
  • modifikací dat -  INSERTUPDATEDELETE = vlož, uprav, smaž
  • vyhledávání v relacích -  SELECTORDER BY GROUP BYJOIN = vyhledej, seřaď, shlukuj, spoj
  • transakce - COMMIT, ROLBACK = úspěšně provedená transakce, save-point uvnitř transakce ke kterému se dá vrátit byla-li transakce přerušena
  • další, pro podmínky, logické operatory,... (WHERE, LIKE, BETWEEN, IN, IS NULL, DISTINCT/UNIQUE, JOIN, INNER JOIN, OUTER JOIN, EXISTS, HAVING, COUNT, VIEW, INDEX,...)

CREATE TABLE clovek(id char(5) NOT NULL, jmeno varchar(50), prijmeni varchar(50), telefon varchar(15), PRIMARY KEY (id));

další příklady vytvoření tabulek 

INSERT INTO  clovek VALUES( 'nj001', 'Jan', 'Novotný', '777111222');

další příklady naplnění tabulek 

SELECT telefon FROM clovek WHERE prijmeni = "Novotný";

další příklady na selekty nad databazi Obchod

 

Relační jazyk

Jazyky pro formulaci požadavků na výběr dat z relační databáze (dotazovací jazyky) se dělí do dvou skupin:

  1. jazyky založené na  relační algebře, kde jsou výběrové požadavky vyjádřeny jako posloupnost speciálních operací prováděných nad daty; dotaz je tedy  zadán algoritmem, jak vyhledat požadované informace;

  2. jazyky založené na  predikátovém kalkulu, které požadavky na výběr zadávají jako predikát charakterizující vybranou relaci;  je úlohou překladače jazyka nalézt odpovídající algoritmus;  tyto jazyky se dále dělí na:

    -  n-ticové relační kalkuly

    -  doménové relační kalkuly

Relační algebra

Relační algebra je velmi silný dotazovací jazyk vysoké úrovně. Nepracuje s jednotlivými enticemi relací, ale s celými relacemi. Operátory relační algebry se aplikují na relace, výsledkem jsou opět relace. Protože relace jsou množiny, přirozenými prostředky pro manipulaci s relacemi budou množinové operace.

I když relační algebra v této podobě není vždy implementována v jazycích SŘBD, je její zvládnutí nutnou podmínkou pro správnost manipulací s relacemi. I složitější dotazy jazyka SQL, který je deskriptivním dotazovacím jazykem, mohou být bez zkušeností s relační algebrou problematické.

‰Základní operace relační algebry:

Jsou dány relace R a S.

  • Množinové operace

    •    sjednocení relací téhož stupně      R ∪ S = {x | x ∈ R ∨ x ∈ S}

    •    průnik relací                                 R ∩ S = {x | x ∈ R ∧ x ∈ S}

    •    rozdíl relací                                   R  -  S = {x | x ∈ R ∧ x ∉ S}

    •    kartézský součin relace R stupně m a relace S stupně n      R x S = {rs | r ∈ R ∧ s ∈ S},  kde  rs = {r1,...,rm,s1,...sn}

  • Další operace relační:  

    • projekce (výběr sloupců) relace R  

    • selekce (výběr řádků) z relace R podle podmínky P

    • spojení relací R s atributy A  a  S  s atributy  B (join)

    • přirozené spojení relací R(A) a S(B)

 

N-ticový relační kalkul

  • Dr. Codd definoval n-ticový relační kalkul pro RDM jazyk matematické logiky - predikátový počet je využit pro výběr informací z relační databáze

  • název odvozen z oboru hodnot jeho proměnných - relace je množina prvků = n-tic

  • je základem pro jazyk typu SQL

  • Syntaxe je přizpůsobena programovacímu jazyku

...matematické vyjádření    { x | F(x) }     ...nahradíme zápisem           x  WHERE  F(x)

- kde x je proměnná pro hledané n-tice (struktura relace), F(x) je podmínka kterou má x splňovat (výběr prvků relace)

 

 

 

 

Kam dál?