Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Aplikační a programové vybavení

Podobné prezentace


Prezentace na téma: "Aplikační a programové vybavení"— Transkript prezentace:

1 Aplikační a programové vybavení
Databáze – jazyk SQL (úvod)

2 Jazyk SQL SQL je programovací jazyk, pomocí kterého je možné komunikovat s relačním DBS. SQL je vychází z relační algebry, ale je bohatší. Pomocí SQL je možné: „dotazovat se databáze na její stav“ – získávat data z databáze „zasílat databázi požadavky na aktualizaci“ – měnit stav databáze definovat tabulky (definovat schémata) Jazyk SQL je velice odlišný od „běžných“ programovacích jazyků. Programovací jazyky se dají rozdělit na procedurální (C, Pascal, Java, Javascript. Php, VB, C++, C#, atd...) funkcionální (LISP, Haskell, ...) a deklarativní (SQL, Prolog, ...)

3 Jazyk SQL Data jsou uložena v databázi ve formě tabulek.
Program, který zaslal dotaz, se nemusí starat o fyzickou strukturu dat a jejich uložení. Pořadí tabulek ani sloupců v databázi není důležité, protože jsou identifikovány jménem. Pořadí řádků není důležité, protože jednotlivé řádky jsou identifikované hodnotou klíče. Deklarativní jazyk: definujeme, CO chceme udělat (procedurální jazyk definuje, jak se něco udělá – proceduru) Důležitá je identifikace všech prvků pomocí jména, to je jediný správný způsob. Často se lze setkat s příklady (zejména v PHP), kde se používá identifikace pomocí indexu, ta ale není nijak zajištěna. Je to jen dobrá vůle některých databázových rozhraní, že ji umožňují. Jazyk SQL zahrnuje DDL (Data Definition Language – jazyk pro definici struktury dat) a DML (Data Manipulation Language – jazyk pro manipulaci s daty (to zahrnuje i výběr dat)).

4 Historie první prototyp v r. 1974 – jazyk Sequel
standardizace ANSI a ISO v roce 1986 a 1987 – SQL-86 nový standard ANSI a ISO v roce 1992 – SQL-92 a další SQL:1999 a další SQL:2003 a další SQL:2008 – rozšíření o XML a další SQL:2011 – zpracování časových řad SQL:2003 má 3606 stran Pro zajímavost, jazyk C byl standardizován v roce 89, tedy později než jazyk SQL. V současnosti je ve většině RDBS implementované něco mezi SQL-92 a SQL:1999, skutečnost je taková, že implementace jazyka SQL v RDBS zaostávají za standardem o mnoho let a pravděpodobně vždy budou. Některé implementace totiž již dlouho obsahují prvky nekompatibilní se standardem.

5 Jména bez speciálních znaků → A...Z, a...z, 0...9, _
název (sloupce, tabulky, databáze, ...) ne příliš dlouhý (30 znaků) pokud možno anglicky dodržovat jednotnou konvenci velikosti písmen: id_person (C) idPerson (Java, C++) IdPerson (Delphi) Id_Person (exoti) název by měl vystihovat obsah Při pojmenovávání je dobré myslet na to, že mínus (pomlčka) je operátor a tudíž se obvykle nedá použít ve jméně.

6 Jména Název by neměl obsahovat zbytečné údaje
u tabulky není nutné uvádět, že je to tabulka je zbytečné k názvu sloupce přidávat název tabulky/databáze používat zavedené zkratky id / person_id / id_person item_count / item_cnt id_person se v tabulce „persons“ může zdát zbytečné, ale může se využít při NATURAL JOIN je dobré vyhnout se klíčovým slovům jazyka Seznam klíčových slov PostgreSQL: MySQL: Vyhnout se všem klíčovým slovům jazyka SQL a všech implementací je prakticky nemožné.

7 SQL Zapomeňte procedurální programování.
Pomocí SQL se definuje co má DBS udělat, SQL server požadavek zpracuje (převede na procedurální kód) a vyhodnotí. K dílčím prvkům databáze se přistupuje přes operátor „.“ (tečka) databáze.tabulka.sloupec (schéma.tabulka.sloupec) project.persons.id_person databáze se zpravidla neuvádí (během spuštění programu se nemění) tabulku je vhodné uvádět vždy SQL má vysokou redundanci (mnoho možností) Tečková notace je podobná jako např. u objektů v C++, Js apod. Vysokou redundanci mají i ostatní jazyky, např. jakýkoliv procedurální jazyk si vystačí s podmínkou a skokem. Ostatní příkazy však zpravidla zkracují a/nebo zjednodušují zápis programu, případně zefektivňují zpracování. SQL je zajímavé tím, že má množství příkazů a klíčových slov, která jsou naprosto stejná. Motivací za tímto je možnost dát programátorovi na výběr takovou logiku jazyka, která mu nejvíce vyhovuje.

8 Datové typy - úvod základní datové typy více o datových typech později
řetězce varchar(mohutnost) – standardní řetězec, omezený délkou text – „neomezený“ řetězec čísla int(mohutnost) / number – celé číslo, např. int(4) signed / unsigned float datum datetime / date více o datových typech později Mohutnost datového typu se udává vždy v bajtech, jestli se udává nebo ne, záleží na konkrétním datovém typu a konkrétní implementaci. Int (4) má rozsah 32bitů, protože 8*4 = 32 Velikost „neomezeného řetězce“ bývá zpravidla okolo 4GB.

9 Tabulka × Relace Tabulky mohou být skutečné – odpovídají databázovém schématu. Tabulky mohou být virtuální – pohledy (externí schémata). Výsledkem libovolného dotazu je také tabulka (dočasná). Pohled (view): je definován dotazem je zpravidla jen pro čtení umožňuje zjednodušení dotazů vytváří „uživatelské verze“ databáze umožňuje odstínit jednotlivé programové moduly aktualizuje se automaticky ze základních tabulek Výsledek dotazu (ani pohled) obecně není relace Výsledek dotazu není relace, protože může obsahovat stejné řádky – tedy nesplňuje základní podmínku relace – tj. že množina musí obsahovat unikátní prvky. Pohled je dobrý k tomu, že se tváří jako tabulka, a přitom nezvyšuje redundanci dat (je vždy vytvořen spojením skutečných tabulek), může se tedy s výhodou použít k rekonstrukci původního DB schématu. Klíčový poznatek je, že tabulka je buď skutečná tabulka, nebo výsledek dotazu, nebo pohled (což je výsledek dotazu), nebo výsledek spojení tabulek (JOIN).

10 Syntaxe zápisu syntaxe
funkce a klíčová slova jazyka VELKÝMI PÍSMENY kurzívou se značí rozvinutí (zástupný symbol) DELETE FROM tabulka; [ ] – nepovinný prvek { } – množina prvků | – vyloučení prvků [ LEFT | RIGHT ] JOIN LEFT JOIN RIGHT JOIN JOIN a { = | < | > } b a = b nebo a < b nebo a > b Syntaxe = pravidla zápisu něčeho. Tento způsob zápisu se často používá i jinde, zejména pro syntaxi příkazů shellu.

11

12 Příkazy SQL pro definici struktury dat (tabulek) – DDL (data definition language): CREATE (SCHEMA | TABLE | INDEX ) ALTER TABLE DROP TABLE pro manipulaci s daty – DML (data manipulation language): INSERT SELECT UPDATE DELETE mezi jednotlivými DBS jsou v některých oblastech značné rozdíly! Někdy se používá také DQL (Data Query Language), který obsahuje jen příkaz SELECT, ve skutečnosti se, ale zkratka DQL nevztahuje k SQL. Prakticky vzato má jazyk 4 příkazy bez kterých se nedá obejít.


Stáhnout ppt "Aplikační a programové vybavení"

Podobné prezentace


Reklamy Google