Úvod do databázových systémů

Podobné dokumenty
Úvod do databázových systémů

Úvod do databázových systémů

Úvod do databázových systémů 6. cvičení

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Informační systémy ve zdravotnictví. 6. cvičení

Úvod do databázových systémů

Úvod do databázových systémů

Databáze I. Přednáška 4

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Konceptuální modelování a SQL

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Úvod do databázových systémů

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Databázové systémy Cvičení 5.2

DUM 12 téma: Příkazy pro tvorbu databáze

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

5. POČÍTAČOVÉ CVIČENÍ

Úvod do databázových systémů 1. cvičení

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Databázové systémy trocha teorie

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databázové modelování. Analýza Návrh konceptuálního schématu

Konceptuální modelování. Pavel Tyl

Transformace konceptuálního modelu na relační

Úvod do databázových systémů 3. cvičení

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Databázové systémy a SQL

Jazyk SQL databáze SQLite. připravil ing. petr polách

8.2 Používání a tvorba databází

SQL - trigger, Databázové modelování

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Databázové systémy úvod

Relace x vztah (relationship)

Použití databází na Webu

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Relační databázová technologie

Databázové systémy. Cvičení 6: SQL

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Kapitola 6: Omezení integrity. Omezení domény

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

6. SQL složitější dotazy, QBE

Úvod do databázových systémů

DBS Transformace konceptuálního schématu na

Internetová filmová databáze IFDB

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

Sada 1 - PHP. 14. Úvod do jazyka SQL

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Úvod do databázových systémů 2012/2013 IS MHD

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Informační systémy ve zdravotnictví. 8. cvičení

Informační systémy ve zdravotnictví. 10. cvičení

Úvod do databázových systémů 2012/2013 IS MHD. Jiří Znoj zno

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Databáze I. 5. přednáška. Helena Palovská

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

VŠB FEI - Technická Univerzita Ostrava. DAIS - Projekt. Dopravní podnik. Jméno: Matěj Kotyz (KOT0177)

Databázové systémy I

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databázové a informační systémy. Dokumentace k projektu. Učební sklad

Objektově relační databáze a ORACLE 8

KIV/ZIS cvičení 6. Tomáš Potužák

Databáze SQL SELECT. David Hoksza

1. Relační databázový model

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

DBS Konceptuální modelování

RELAČNÍ DATABÁZOVÉ SYSTÉMY

2 Konceptuální modelování a návrh databáze

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

04 - Databázové systémy

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Měřící systém se vzdáleným přístupem. Databáze

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Tvorba informačních systémů

KIV/ZIS cvičení 5. Tomáš Potužák

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

2 Konceptuální modelování a návrh databáze

Úvod do databázových systémů 10. cvičení

30. března Je možné dle analýzy implementovat systém tak, aby splňoval požadavky zadavatele?

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Databáze I. 1. přednáška. Helena Palovská

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databáze I. Přednáška 7

Databázové systémy I. 3. přednáška

Transkript:

Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014

Opakování Entita Entitní typ Klíč Vztah Kardinalita vztahu Povinnost ve vztahu Slabý entitní typ Identifikující vztah

Opakování Entita Objekt reálného světa Entitní typ Označení celé třídy objektů reálného světa Klíč Atribut nebo více atributů, které jednoznačně identifikují entitu Vztah Fyzická nebo konceptuální vazba mezi entitami Kardinalita vztahu 1:1, 1:N, M:N Povinnost ve vztahu Pro každý (binární) vztah máme celkem 4 možnosti Slabý entitní typ Klíč je složen z atributů, které nejsou jeho součástí Identifikující vztah Zajistí, aby se klíč z nadřazeného entitního typu stal součástí klíče slabého entitního typu

Obsah cvičení 1. Převod konceptuálního modelu na relační 2. SQL jako jazyk pro definici a modifikaci dat

Převod konceptuálního modelu na relační Převod konceptuálního modelu na relační

Modelování databází Zadání Konceptuální model Datový model Vytvoření databáze Konceptuální model v této fázi zatím nemusíme uvažovat o implementaci nějaké databáze. Zkrátka snažíme se zachytit statický pohled na reálnou situaci. Datový model modelujeme databázi a máme jasno, zda budeme používat tabulky, XML, objekty nebo jinou organizaci dat. Relační datový model nejběžnější, používáme tabulky XML v určitých případech lépe modeluje reálnou situaci Objektový datový model využívá výhody OOP jako např. dědičnost

Modelování databází Zadání Konceptuální model Relační datový model Vytvoření databáze Pro znázornění konceptuálního modelu používáme nejčastěji E-R diagramy a lineární zápisy. E-R diagramy tedy můžeme používat jak pro konceptuální, tak pro relační datový model. Proto se často setkáme s požadvkem 2 úrovní E-R diagramu.

Modelování databází Převod entitních typů na relační schémata Převod atributů Určení primárních klíčů Převod vztahů a určení cizích klíčů Řešení povinnosti ve vztahu Převod slabých entitních typů a identifikujících vztahů

Převod entitních typů a atributů, prim. klíč Konceptuální model Relační datový model Vyrobek id_vyrobek aktualni_cena popis mnozstvi

Převod entitních typů a atributů, prim. klíč Z každého entitního typu vznikne jedno relační schéma Vzniklá relační schémata přeberou všechny atributy ent. typů Atributy, které tvoří klíč ent. typu, přejdou v primární klíč relace Konceptuální model Relační datový model Vyrobek id_vyrobek aktualni_cena popis mnozstvi Vyrobek id_vyrobek aktualni_cena popis mnozstvi

Převod vztahů vztah 1:N Konceptuální model Vyrobek id_vyrobek Relační datový model Vyrobek id_vyrobek JE_V Kategorie id_kategorie Kategorie id_kategorie

Převod vztahů vztah 1:N Vztah 1:N lze převést velmi jednoduše přidáním atributu (popř. atributů) na stranu N Přidaný atribut (nebo atributy) utvoří v jeho relaci cizí klíč. Konceptuální model Relační datový model Vyrobek id_vyrobek Vyrobek id_vyrobek id_kategorie JE_V Kategorie id_kategorie Kategorie id_kategorie

Převod vztahů vztah M:N Konceptuální model Relační datový model Vyrobek id_vyrobek Vyrobek id_vyrobek DODAVA Dodavatel id_dodavatel adresa Dodavatel id_dodavatel adresa

Převod vztahů vztah M:N Vztah M:N je v relačním DM vždy řešen přidáním rozkladové tabulky Rozkladová relace obsahuje všechny atributy, které jsou součástí primárního klíče jedné nebo druhé relace ve vztahu M:N Tyto atributy jsou dohromady primárním klíčem a samostatně cizími klíči. Konceptuální model Relační datový model Vyrobek Vyrobek id_vyrobek Dodavatel id_dodavatel adresa DODAVA id_vyrobek Dodavatel id_dodavatel adresa Dodava id_vyrobek id_dodavatel

Převod vztahů vztah 1:1 Konceptuální model Oddělení id_oddeleni Relační datový model Oddělení id_oddeleni Zamestnanec id_zamestnanec jmeno JE_VEDOUCIM Zamestnanec id_zamestnanec jmeno

Převod vztahů vztah 1:1 Lze řešit více způsoby Teoreticky je nejsprávnější varianta přidat atributy do kříže Prakticky se vztah 1:1 řeší nejčastěji jako 1:N s tím, že se může použít nějaký dodatečný mechanismus (např. tzv. trigger), který N omezí na 1 Konceptuální model Relační datový model Oddělení id_oddeleni Oddělení id_oddeleni id_zamestnanec JE_VEDOUCIM Zamestnanec id_zamestnanec jmeno Zamestnanec id_zamestnanec jmeno id_oddeleni

Datový slovník Zkrátka, jedná se o upřesnění vlastností atributů relací v relačním datovém modelu. Součástí datového slovníku jsou nejčastěji: datový typ, rozsah, klíč (zda je atribut součástí primárního klíče), zda povolujeme hodnotu null, popř. jestli jsou na atribut kladeny nějaké další omezující požadavky tzv. integritní omezení Zamestnanec Atribut Datový typ Rozsah Klíč Null Další IO id_zamestnanec INT 4 ANO NE jmeno NVARCHAR 50 NE NE prijmeni NVARCHAR 50 NE NE e_mail NVARCHAR 40 NE ANO Musí obsahovat znak @

Datové typy INT Celé číslo FLOAT Desetinné číslo (plovoucí čárka) DECIMAL(n,p) Desetinné číslo (celkový počet míst a počet míst za des. oddělovačem) CHAR(n) Přesný počet znaků VARCHAR(n) Řetězec s proměnnou délkou BIT Hodnota 1 nebo 0 NCHAR(n) To samé jako CHAR, ale UNICODE NVARCHAR(n) To samé jako VARCHAR, ale UNICODE DATETIME Datum a čas (razítko) Množina dostupných datových typů je závislá na konkrétním SŘBD

Převod povinnosti ve vztahu Konceptuální model Relační datový model Vyrobek id_vyrobek Kategorie id_kategorie JE_V

Převod povinnosti ve vztahu Povinnost ve vztahu 1:N ze strany N řešíme pomocí datového slovníku povolením nebo zakázáním hodnoty null. Konceptuální model Relační datový model Vyrobek id_vyrobek Kategorie id_kategorie JE_V Vyrobek Atribut id_produktu id_kategorie Null NE NE NE

Převod povinnosti ve vztahu Povinnost ve vztahu 1:N ze strany N řešíme pomocí datového slovníku povolením nebo zakázáním hodnoty null. Konceptuální model Relační datový model Vyrobek id_vyrobek Kategorie id_kategorie JE_V Vyrobek Atribut id_produktu id_kategorie Null NE NE ANO

Převod povinnosti ve vztahu Konceptuální model Vyrobek id_vyrobek Relační datový model Vyrobek id_vyrobek id_kategorie JE_V Kategorie id_kategorie Kategorie id_kategorie

Převod povinnosti ve vztahu U vztahu 1:N ze strany 1 nelze povinnost v relačních databázích jednoduše vyřešit. Konceptuální model Vyrobek id_vyrobek Relační datový model Vyrobek id_vyrobek id_kategorie JE_V Kategorie id_kategorie Kategorie id_kategorie

Řešení slabých ent. typů a identifikujících vztahů Konceptuální model Relační datový model Objednavka id_objednavka cislo poradi popis Polozka OBSAHUJE

Řešení slabých ent. typů a identifikujících vztahů Úkolem identifikujícího vztahu je modelovat situaci, kdy je součástí klíče entitního typu atribut, který sám o sobě není součástí entitního typu. Identifikující vztah zajistí, že součástí relace bude jeden (nebo více) atributů navíc, které budou jednak cizím klíčem a jednak součástí primárního klíče. Konceptuální model Relační datový model Objednavka id_objednavka cislo Objednavka id_objednavka cislo OBSAHUJE poradi popis Polozka Polozka poradi id_objednavka popis

SQL jako DDL a DML SQL jako jazyk pro definici a modifikaci dat

Rozdělení jazyků pro práci s daty DDL (Data Definition Language) Vytváření datových struktur (prázdných tabulek) DML (Data Manipulation Language) Vkládání, úprava a mazání dat SQL DQL (Data Query Language) Dotazování nad daty

Rozdělení jazyků pro práci s daty DDL / DML / DQL Vyhledej nejmladšího zaměstnance Vytvoř tabulku s definovanými atributy Vrať všechny produkty Vlož záznam do tabulky Smaž obsah tabulky Smaž tabulku Přidej sloupec do tabulky

Rozdělení jazyků pro práci s daty DDL / DML / DQL Vyhledej nejmladšího zaměstnance (DQL) Vytvoř tabulku s definovanými atributy (DDL) Vrať všechny produkty (DQL) Vlož záznam do tabulky (DML) Smaž obsah tabulky (DML) Smaž tabulku (DDL) Přidej sloupec do tabulky (DDL)

SQL jako DDL vytvoření tabulky

SQL jako DDL vytvoření tabulky CREATE TABLE Osoba ( id_osoby INT PRIMARY KEY NOT NULL, jmeno VARCHAR(50) NOT NULL, prijmeni VARCHAR(50) NOT NULL, zamestnanec BIT NOT NULL DEFAULT 0, cislo_oddeleni INT NULL FOREIGN KEY REFERENCES Oddeleni(cislo_oddeleni) )

SQL jako DDL vytvoření tabulky CREATE TABLE Osoba ( id_osoby INT PRIMARY KEY NOT NULL, jmeno VARCHAR(50) NOT NULL, prijmeni VARCHAR(50) NOT NULL, zamestnanec BIT NOT NULL DEFAULT 0, cislo_oddeleni INT NULL FOREIGN KEY REFERENCES Oddeleni(cislo_oddeleni) )

SQL jako DDL vytvoření tabulky Datový typ Primární klíč Povinný atribut Výchozí hodnota CREATE TABLE Osoba ( id_osoby INT PRIMARY KEY NOT NULL, jmeno VARCHAR(50) NOT NULL, prijmeni VARCHAR(50) NOT NULL, zamestnanec BIT NOT NULL DEFAULT 0, cislo_oddeleni INT NULL FOREIGN KEY REFERENCES Oddeleni(cislo_oddeleni) ) Cizí klíč

SQL jako DDL další užitečné příkazy Odstranění tabulky Přidání sloupce Úprava sloupce (např. rozsahu)

SQL jako DDL další užitečné příkazy Odstranění tabulky DROP TABLE Osoba Přidání sloupce ALTER TABLE Osoba ADD datum_narozeni DATETIME Úprava sloupce (např. rozsahu) ALTER TABLE Osoba ALTER COLUMN jmeno VARCHAR(100)

SQL jako DDL CREATE ALTER DROP Vytvářím něco nového (tabulku, sloupec, proceduru, funkci) Upravuji něco, co existuje Odstraňuji něco, co existuje DDL příkazy za nás ve většině případů sestavuje vhodný nástroj (např. SQL Management Studio).

SQL jako DML vkládání dat

SQL jako DML vkládání dat Příkaz pro vkládání jednotlivých zázánamů. Pozor, počet atributů uvedený za názvem tabulky musí odpovídat počtu uvedených hodnot. INSERT INTO Osoba (id_osoby, jmeno, prijmeni) VALUES (1, Petr, Lukáš )

SQL jako DML úprava dat

SQL jako DML úprava dat Uvádíme název tabulky, jeden nebo více atributů, jejichž hodnotu chceme změnit (oddělujeme čárkami) a podmínku, pro které záznamy se má update provést. UPDATE Osoba SET jmeno = Jakub, prijmeni = Pokusný WHERE osoba_id = 1

SQL jako DML úprava dat Uvádíme název tabulky, jeden nebo více atributů, jejichž hodnotu chceme změnit (oddělujeme čárkami) a podmínku, pro které záznamy se má update provést. UPDATE Osoba SET jmeno = Jakub, prijmeni = Pokusný WHERE osoba_id = 1 N Pozor, nezapomenout na WHERE

SQL jako DML mazání dat

SQL jako DML mazání dat Uvádíme název tabulky, nesmíme zapomenout na omezující podmínku. DELETE FROM Osoba WHERE osoba_id = 1 N Pozor, nezapomenout na WHERE

Shrnutí Převod konceptuálního DM na relační Převod entitních typů, atributů, určení klíče Triviální záležitost atributy entitních typů přejdou v atributy relací Převod vztahu 1:N, M:N, 1:1 1:N řešíme přidáním atributu cizího klíče na stranu N, M:N řešíme rozkladovou tabulkou, 1:1 řešíme např. atributy do kříže Datový slovník Tabulka, kde uvádíme podrobně vlastnosti atributů Řešení povinnosti ve vztahu V relačních db. řešíme pouze u vztahů 1:N ze strany N a to pomocí datového slovníku Identifikující vztahy Řešíme podle jejich účelu, tj. přidáváme atribut cizí klíč a tento atribut se stane součástí primárního klíče SQL jako jazyk pro definici a modifikaci dat Vytváření, úprava a mazání tabulky Příkazy CREATE TABLE, ALTER TABLE, DROP TABLE Vkládání, úprava a mazání dat Příkazy INSERT, UPDATE, DELETE, pozor na podmínku WHERE!

Cvičení www.dbedu.cs.vsb.cz Přihlášení přes jednotný login a heslo Vpravo sloupec -> České kurzy -> UDBS