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

Podobné dokumenty
8.2 Používání a tvorba databází

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

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

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

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

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

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

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

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

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

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

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Databázové systémy. Ing. Radek Holý

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

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

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

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

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

Databáze SQL SELECT. David Hoksza

Datové modelování II

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

Databázové systémy. Přednáška 1

Analýza a modelování dat 3. přednáška. Helena Palovská

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

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Terminologie v relačním modelu

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

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

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

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

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Úvod do databázových systémů. Ing. Jan Šudřich

Otázka č. 1 (bodů za otázku: 4)

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

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

J. Zendulka: Databázové systémy 4 Relační model dat 1

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

Databázové systémy BIK-DBS

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

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

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

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

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

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

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

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

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

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

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ř.

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

Operátory ROLLUP a CUBE

Hierarchický databázový model

10. blok Logický návrh databáze

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Databáze. Logický model DB. David Hoksza

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

6. blok část C Množinové operátory

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

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

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

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

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

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í

Relační model dat (Codd 1970)

Databázové systémy I

Jiří Mašek BIVŠ V Pra r ha

Relace x vztah (relationship)

Kapitola 4: SQL. Základní struktura

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

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

Databázové systémy a SQL

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

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

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

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

Databázové systémy trocha teorie

Microsoft. Access. Databáze s více tabulkami. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

KIV/ZIS - SELECT, opakování

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

Databázové systémy a SQL

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

Access. Tabulky. Vytvoření tabulky

Databázové systémy. Cvičení 3

Konceptuální modelování a SQL

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Databázové systémy. Vztahy a relace. 3.přednáška

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

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

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

Jazyk PL/SQL Úvod, blok

Internetová filmová databáze IFDB

Okruhy z odborných předmětů

Použití databází na Webu

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

Databázové systémy. Normálové formy + kandidátní klíče. 2.přednáška

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

RELAČNÍ DATABÁZE ACCESS

Transkript:

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

Datová integrita

Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená budou správná = pomocí vhodných pravidel zajistí konzistenci dat žádný db. systém nedokáže garantovat, že data v databázi jsou skutečně pravdivá, umí ALE zajistit, že MOHOU být pravdivá

Omezení integrity 1. Pravidla pro údržbu integrity relací - Doménová integrita - Přechodová integrita - Entitová integrita 2. Zajištění zachování vztahů mezi relacemi - Referenční integrita

Omezení integrity - II. 3. Kontrola databáze jako celku - Databázová integrita 4. Kontrola způsobu manipulace s daty - Transakční integrita

Doménová integrita Doména = obor hodnot = množina všech přípustných hodnot daného atributu Doménové omezení = pravidlo(a), definující tyto platné hodnoty Postup: 1. Výběr logického datového typu (př. datum, obrázek, řetězec, atd.)

Doménová integrita - II. 2. Definice měřítka a přesnosti číselného typu resp. max. délky řetězcové hodnoty (př. PSČ) 3. Rozhodnutí, zda doména smí obsahovat neznámé a neexistující hodnoty 4. Co nejkonkrétnější popis množiny hodnot např. datum transakce - min. je den zahájení provozu firmy a max. je dnešek př.2: přímo seznam platných hodnot - dny v týdnu, atd.

Přechodová integrita = definování stavů, kterými může vektor hodnot právoplatně přecházet Př. Stavy, kterými může projít objednávka Zadaná Přiobjednaná Přichystaná Doručená Stornovaná Ukončená

Entitová integrita = zabezpečuje integritu entit modelovaných v daném systému tzn. každá entita musí být jednoznačně identifikovatelná - zajištěno KK další omezení entit lze definovat buď pro jeden atribut v entitě, více atributů nebo pro relaci jako celek např. v celé relaci nesmí být prázdné hodnoty nebo př.2: datum odeslání objednávky musí být pozdější než její přijetí Pozn.: entitová omezení se nemohou odvolávat na jiné relace

Referenční integrita Při implementaci vztahů mezi relacemi: cizí klíč se nesmí stát sirotkem, nebo-li nesmí vzniknout slepý odkaz od cizího klíče do nikam. Žádný řádek v cizí relaci nesmí obsahovat takovou hodnotu cizího klíče, která nemá odpovídající záznam v primární relaci.

Referenční integrita Nakladatelství Kód nakl. (KK) Jméno nakl. Adresa Telefon Kniha ISBN knihy (KK) Název knihy Obor Cena Kód nakl. (FK) Nepůjde vložit údaje o knize bez předchozího zadání údajů o nakladatelství, které jí vydalo. Nepůjde smazat žádné nakladatelství, pokud bude existovat alespoň jediná kniha, vydaná tímto nakladatelstvím. Nepůjde přejmenovat KK v primární tabulce

Referenční integrita - II. K vytvoření slepého odkazu může dojít: 1. Do cizí tabulky se přidá řádek s klíčem, který neodpovídá žádnému KK v primární tabulce 2. KK v primární tabulce se změní (nutno řešit kaskádovitou aktualizací) 3. Záznam z primární tabulky se odstraní (řešením je povolení kaskádovitého odstraňování) Pozn.:do referenčních omezení patří též omezení kardinality př.1 nadřízený smí mít max. 5 podřízených

Databázová integrita Tato integrita se odkazuje na více relací Např.: Klient nemůže být přednostní pokud není u banky déle než rok a nemá na kontě více než

Transakční integrita Definuje přípustné způsoby manipulace s databází Na rozdíl od ostatních omezení jsou tato omezení procedurálního charakteru a nejsou součástí datového modelu Př.: převod peněz z účtu A na účet B - pokud se peníze odečtou z A, ale už nedojdou do B, musí se zrušit celá transakce, tzn. vrátit i účet A do původního stavu (roll back)

Způsoby zajištění integrity Deklarativní na serveru Procedurální na straně klienta Procedurální na straně serveru

Způsoby zajištění integrity Deklarativní na serveru Databázové schéma se vytváří včetně definice integritních omezení Nemusí být vhodné zobrazovat chybu, místo pouhého varování.

Způsoby zajištění integrity Procedurální na straně klienta Kontrolní funkce na straně klienta Aplikace na straně klienta provádí existenci závislých záznamů Rychle a komfortní pro uživatele Nákladné a dlouhé úpravy aplikace (aplikací) př. více aplikací eshopy Webové stránky pro zákazníky Aplikace pro zaměstnance na správu objednávek apod.

Způsoby zajištění integrity Procedurální na straně serveru Kontrolní procedury tvoří samostatné moduly v rámci databázového systému. Triggery pro jednotlivé procedury (události spouštěné před nebo po vložené, změně nebo smazání záznamu).

Relační algebra

Základní relace Definovaná na základě atributů V databázovém schématu je reprezentována TABULKOU

Odvozená relace Definovaná na základě jiných relací (je jedno zda základních či odvozených) V SQL serveru ji tvoří POHLEDY

Pohledy Definují se pomocí relačních operátorů Definují se využitím příkazů SELECT jazyka SQL SQL Structured Query Language SQL je standartní jazyk určený pro vyjadřování relačních operací SQL má více dialektů

Základní struktura příkazu SELECT SELECT <seznam poli> FROM <seznam mnozin zaznamu> <typ spojeni> JOIN <spojovaci podminka> WHERE <vyberova kriteria> GROUP BY <seznam poli k seskupeni> HAVING <vyberova kriteria> ORDER BY <seznam poli k serazeni>

ID zam. Prijmeni Jmeno Ulice c.p. PSC Mesto 1 Novák Petr Luční 534 460 01 Liberec 2 Vodičková Eva Nad lesem 78 110 00 Praha 3 Vítek Vlastimil Potoční 15 602 00 Brno 4 Lukeš Jaroslav Kubánská 235 460 01 Liberec 5 Pátek Petr Severní 55 110 00 Praha Vyberte z databáze všechny Petry a Jaroslavy. SELECT Jmeno, Prijmeni FROM zamestnanci WHERE jmeno = 'Petr' OR jmeno= 'Jaroslav' SELECT Jmeno, Prijmeni FROM zamestnanci WHERE jmeno IN('Petr', 'Jaroslav')

Relační operátory 1.část 1. Restrikce (omezení) 2. Projekce (promítání) 3. Spojení 4. Dělení 1.-2. Pracuje jen s jednou relací 3.-4.Pracuje s dvěma relacemi

Restrikce =omezení množiny záznamů, vrátí jen ty záznamy, které vyhovují danému kritériu Př.: SELECT * FROM Zamestnanci WHERE Prijmeni = Vodičková' Vyřízne z množiny záznamů horizontální výřez

Projekce Projekce je vertikální výřez z relace, výsledkem je omezená množina atributů Př. SELECT prijmeni, jmeno, linka FROM zamestnanci ORDER BY prijmeni ASC, jmeno ASC

Spojení Propojení množiny záznamů (relací) na základě porovnání jednoho nebo více polí (atributů) V databázi též spojení tabulek (join) Operace spojení se v příkazu SELECT implementuje pomocí klausule JOIN

Spojení na rovnost Jestliže se porovnání v operaci spojení provádí na základě operátoru rovnosti Tj. z operace se vrátí pouze ty záznamy, které mají v zadaných polích vzájemně odpovídající hodnoty

Přirozená spojení Speciální případ spojení na rovnost, musí splňovat tyto podmínky: Operátorem porovnání musí být rovnost Spojení se musí účastnit všechna společná pole obou tabulek Do výsledné množiny záznamů se smí zapsat pouze jedna množina společných polí

Theta - spojení Operace spojení založená na jiném operátoru než rovnost : <>,<,>,<=,>= V praxi vzácná např. vyhledání záznamů z určitého intervalu

Vnější spojení Vnitřní spojení vracela jen ty záznamy, pro něž se spojovací podmínka vyhodnotí jako pravdivá Vnější spojení vrátí všechny záznamy jako odpovídající vnitřní spojení plus všechny záznamy z jedné nebo obou výchozích množin záznamů. Místo chybějících (tedy neodpovídajících si) hodnot se vypíší hodnoty Null. LEFT JOIN, RIGHT JOIN

Vnitřní spojení SELECT studenti.id, studenti.jmeno, studenti.vp, predmety.nazev FROM studenti INNER JOIN predmety ON studenti.vp = predmety.zkratka

Vnější spojení SELECT studenti.id, studenti.jmeno, studenti.vp, predmety.nazev FROM studenti LEFT JOIN predmety ON studenti.vp = predmety.zkratka

Dělení Vrátí všechny záznamy z jedné množiny záznamů, jejichž hodnoty se shodují se všemi odpovídajícími hodnotami v druhé množině záznamů

Relační operátory 2. část (množinové operátory) 1. Sjednocení jde o zřetězení dvou množin záznamů, čili jejich spojení za sebou (příkaz UNION SELECT) 2. Průnik JOIN spojuje tabulky horizontálně (tedy výsledek má více sloupců), kdežto UNION spojuje tabulky vertikálně(výsledek má více řádek) vrátí jen ty záznamy, které jsou pro obě původní množiny záznamů společné jde o najdi duplicity

3. Rozdíl Relační operátory 2. část (množinové operátory) operátor rozdílu zajišťuje hledání sirotků relační rozdíl dvou množin záznamů tvoří záznamy, které náleží jen do jedné množiny záznamů, do druhé však nikoli 4. Kartézský součin KS dvou množin záznamů zkombinuje každý jednotlivý záznam první množiny s každým jednotlivým záznamem druhé množiny záznamů

Konec