Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava

Slides:



Advertisements
Podobné prezentace
Základní obeznámení s jazykem SQL
Advertisements

Základy jazyka SQL Jan Tichava
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Databáze.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Databázové systémy Relační model.
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Temporální databáze a TSQL
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
Martin Kirschbaum 4.A,  určitá uspořádaná množina informací (dat) uložená na paměťovém médiu  Databázový program - umožňuje tvořit, editovat,
1IT Relační datový model
Databáze Jiří Kalousek.
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databáze Úvod.
Databáze výhody a nevýhody Ing. Emilie Šeptáková
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Fakulta elektrotechniky a informatiky
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
1IT D OTAZOVACÍ JAZYKY V RELAČNÍCH DATABÁZÍCH Ing. Jiří Šilhán.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Aplikační a programové vybavení
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Aplikační a programové vybavení
Konceptuální návrh databáze
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Databázové modelování
Databázové systémy Relační model.
Databázové modelování
Informatika II PAA DOTAZOVACÍ JAZYKY
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
J. Pokorný, I Halaška1 DBS: SQL92 Jaroslav Pokorný MFF UK, Praha
Teorie zpracování dat RELAČNÍ DATOVÝ MODEL.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
Informační systémy Tvorba databáze, nástroje pro tvorbu tabulek, relací, vazeb.
Základní obeznámení s jazykem SQL Databázové systémy.
Příkazy jazyka SQL ve VFP a na SQL Serveru
DATABÁZE.
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
Úvod do databází zkrácená verze.
Unix a Internet 9. SQL server
Dotazovací jazyk SQL I.
Z3104 Geodatabáze úvod.
Dotazovací jazyk SQL I.
Z3104 Geodatabáze úvod.
Informatika pro ekonomy přednáška 8
Šablona 32 VY_32_INOVACE_038.ICT.34
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Dotazovací jazyk SQL I.
Relační model databáze
A5M33IZS – Informační a znalostní systémy
Transkript prezentace:

Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava Databázové systémy Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava

Databázové jazyky jazyky pro manipulaci dat (JMD) aktualizační příkazy INSERT, DELETE, UPDATE dotazovací jazyky (relační algebra, SELECT v SQL) jazyky pro definici dat (JDD) příkaz CREATE TABLE a další v SQL J. Pokorný

Databázový dotaz Praktická definice databázového dotazu (Databázový) dotaz typu (S T) je vyčíslitelná funkce q, která pro každou databázi S* poskytne odpověď q(S*) typu T. omezení: hodnoty v q(S*) jsou z S*, odpověď nezávisí na reprezentaci dat v DB prvky DB se chápou jako neinterpretované objekty Dotazovací jazyk nad S je množina výrazů na konečnou abecedou + významová funkce přiřazující každému výrazu dotaz. J. Pokorný

Vyjadřovací síla Vyjadřovací síla dotazovacího jazyka J nad S je množina všech dotazů M(J), které lze pomocí J vyjádřit. J1 < J2 právě když M(J1)  M(J2) J1  J2 právě když M(J1) = M(J2) Dotazovací jazyk, kterým lze vyjádřit všechny databázové dotazy se nazývá úplný. J. Pokorný

Dotaz v relační algebře Př.: postup po krocích – uložení mezivýsledků KINO(Název_k, Adresa), FILM(Jméno_f, Herec, Rok) MÁ_NA_PROGRAMU(Název_k, Jméno_f, Datum) 1. krok (selekce) R1:= MÁ_NA_PROGRAMU(Název_k = ‘Mír’) J. Pokorný

Dotaz v relační algebře 2. krok (projekce) R2 := R1[jméno_f, Datum] 3. krok (spojení) R3 := FILM * R2 J. Pokorný

Dotaz v relační algebře 4: krok (projekce) R4:= R3[Herec] bez mezivýsledků: (MÁ_NA_PROGRAMU(název_k=‘Mír’)[jméno_f, Datum] * FILM) [Herec] česky: "Nalezni herce, kteří hrají ve filmech v kinu Mír". J. Pokorný

Za relačním modelem prázdná hodnota NULL, pravdivostní hodnota UNKNOWN (levé, pravé, plné) vnější spojení Motivace pro NULL: seznam filmů v jednotlivých kinech, avšak i v těch, kde se zrovna nic nekoná (dotaz KINO * MÁ_NA_PROGRAMU problém neřeší) J. Pokorný

Za relačním modelem J. Pokorný

Za relačním modelem levé vnější spojení R *L S = (R * S)  (R’  (NULL,...,NULL)), kde R’  R – (R * S)[A] Důsledky: (R *LS)[A]  R, pravé vnější spojení R *R S = (R * S)  ((NULL,...,NULL)  S’) úplné vnější spojení R *F S = (R *L S)  (R *R S) J. Pokorný

Úvod do jazyka SQL Jazyk SQL vznikl z jazyka SEQUEL (Structured English Query Language) vyvíjeného ve firmě IBM (publ. v r. 1974) V r. 1986 standardizován SQL Další standardy: SQL92, SQL:1999, SQL:2003, Pz.: každý následující je nadmnožinou předchozího J. Pokorný

Přehled SQL92 jazyk pro definici dat, interaktivní jazyk pro manipulaci dat, jazyk pro manipulaci dat v hostitelské verzi, možnost definice pohledů, možnost definice IO, systémový katalog možnost definice přístupových práv, jazyk modulů, řízení transakcí. J. Pokorný 2

Schéma příkladu VÝPŮJČKY(Č_KOPIE, Č_ZAK, ROD_Č, CENA, DATUM_V) {údaje o výpůjčkách kopií - číslo zakázky, zákazník, cena, datum navrácení} KINA(NÁZEV_K, ADRESA, JMÉNO_V) {údaje o kinech a jejich vedoucích} FILMY(JMÉNO_F, REŽISÉR) {údaje o filmech a jejich režisérech} PŘEDSTAVENÍ(NÁZEV_K, JMÉNO_F, DATUM) {údaje o kinech hrajících filmy} ZÁKAZNÍCI(ROD_Č, Č_ZAK, JMÉNO, ADRESA) {údaje o zákazníkovi} ZAMĚSTNANCI(OSOBNÍ_Č, ADRESA, JMÉNO, PLAT) {údaje o zaměstnancích půjčovny} KOPIE(Č_KOPIE JMÉNO_F) {kopie filmů} REZERVACE(JMÉNO_F, ROD_Č ) {rezervace filmů zákazníky} J. Pokorný 3

Definice dat v SQL CREATE TABLE Dále: odvozené tabulky ( É pohledy). CREATE TABLE VÝPŮJČKY (č_kopie CHAR(3) NOT NULL, č_zak CHARACTER(6) NOT NULL, cena DECIMAL(5,2), rod_č CHARACTER(10) NOT NULL, datum_v DATE); J. Pokorný

Definice dat v SQL IO sloupce NOT NULL sloupec nesmí obsahovat hodnotu NULL, DEFAULT určení implicitní hodnoty sloupce , UNIQUE všechny hodnoty ve sloupci musí být unikátní, NULL hodnota nevadí, PRIMARY KEY sloupec je primárním klíčem tabulky, FOREIGN KEY sloupec je cizím klíče definující referenční integritu s jinou tabulkou CHECK logický výraz definuje přídavné IO IO tabulky (např. složený primární klíč), pojmenování IO J. Pokorný

Definice dat v SQL ALTER TABLE DROP TABLE CREATE SCHEMA CREATE TABLE jméno-tabulky (seznam_prvků_tabulky) seznam_prvků_tabulky ::= prvek_tabulky[,prvek_tabulky]... prvek_tabulky ::= definice_sloupce | definice_IO_tabulky ALTER TABLE ADD sloupec, DROP sloupec, ALTER sloupec, ADD CONSTRAINT a DROP CONTRAINT Př.: ALTER TABLE KINA ADD počet_míst INT DROP TABLE CREATE SCHEMA obsahuje definice základních tabulek, pohledů, domén, integritních omezení, uživatelská práva J. Pokorný

Definice dat v SQL DROP SCHEMA Lze: RESTRICT, CASCADE Df.: Databáze v SQL je kolekce tabulek a pohledů. Může být definována jedním nebo více schématy. schéma 2 schéma 1 J. Pokorný

Typy dat v SQL numerické (přesné a aproximativní), znakové řetězce, bitové řetězce, temporální data, časové intervaly. Dále: NULL (je prvkem každého datového typu) TRUE, FALSE, UNKNOWN Konverze: automatické, explicitní (funkce CAST) J. Pokorný

Typy dat v SQL přesné numerické typy INTEGER (celé), SMALLINT („menší“ implementace než INTEGER), NUMERIC, DECIMAL. DECIMAL(p,q), p cifer, desetinná čárka q cifer zprava. NUMERIC (podobné DECIMAL) s přesností implementačně definovanou, p musí být menší nebo rovno této přesnosti. J. Pokorný

Typy dat v SQL aproximativní numerické typy FLOAT (reálné, parametrizované event. p) REAL (reálné, s pevnou přesností danou implementací) DOUBLE PRECISION (reálné, s pevnou přesností danou implementací, ale větší než REAL) znakové řetězce CHARACTER(n) (délka n, zprava mezery) CHARACTER VARYING(n) (max.délka n) J. Pokorný

Příklad . . . CREATE TABLE KINA . . . CREATE TABLE PŘEDSTAVENÍ (Nazev_k Char_Varying(20) NOT NULL, Jmeno_f Char_Varying(20) NOT NULL, Datum Date NOT NULL, PRIMARY KEY (Nazev_k, Jmeno_f), FOREIGN KEY (Nazev_k) REFERENCES KINA, FOREIGN KEY (Jmeno_f) REFERENCES FILMY); Pz.: Tabulka v SQL nemusí mít primární klíč! J. Pokorný

Indexy v SQL nadrelační rys, podpora přístupových cest k datům v dotazu index obyčejný a typu cluster Pozor: rozdíl od 2 indexů na Jméno a Adresa CREATE INDEX Idx_zak_jm_adr ON ZÁKAZNÍCI (Jméno, Adresa) J. Pokorný

Klastrovaný vs. neklastrovaný index (Indexový soubor) klastrovaný neklastrovaný seznamy ukazatelů seznamy ukazatelů řádky relace (relace) řádky relace J. Pokorný