Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Vladimír Bartík Jan Kupčík Petr Leixner Vysoké učení technické v Brně, Fakulta informačních technologií Božetěchova 2, Brno
2
Relační struktura dat Počítačová cvičení z předmětu Datové sklady pro FP
3
Relační model dat: zákl. pojmy
Doména - pojmenovaná množina skalárních hodnot téhož typu. Př) Doména názvů měst Skalární hodnota - nejmenší sémantická jednotka dat, atomická (vnitřně nestrukturovaná). Př) Josef Novák – nerozlišujeme-li jméno a příjmení Složená doména – doména složená z několika jednoduchých domén. Př) (Josef, Novák) Relace Relace na doménách D1, D2, ... ,Dn je dvojice R = (R, R*), kde R = R(A1:D1, A2:D2, ... An:Dn ) je schéma relace a R* ⊆ D1 x D2 x ... x Dn je tělo relace. Schéma relace zapisujeme často zjednodušeně ve tvaru R(A1,A2, ... ,An). Počet atributů n relace se označuje stupeň (řád) relace, kardinalita těla relace m = |R*| se označuje kardinalita relace. Vztah pojmu „relace“ v relačním modelu dat a pojmu „tabulka“ relace základní abstraktní pojem relačního modelu tabulka forma znázornění relace Atribut relace ~ sloupec tabulky, n-tice relace ~ řádek tabulky Počítačová cvičení z předmětu Datové sklady pro FP
4
Integritní omezení omezení plynoucí z reality reprezentované daty v databázi Typy integritních omezení: specifická – pro konkrétní aplikaci obecná – musí platit v každé databázi daného typu obecná omezení v relačním modelu se týkají primárních a cizích klíčů Primární klíč atribut, který jednoznačně identifikuje n-tici v relaci Kandidátní klíč Atribut k relace R se nazývá kandidátním klíčem, když má tyto dvě časově nezávislé vlastnosti: 1. jednoznačnost 2. minimalita (neredukovatelnost). Počítačová cvičení z předmětu Datové sklady pro FP
5
Integritní omezení - pokračování
Cizí klíč Př) Zaměstnanci.oddělení - je hodnota ‘Vývoj’ legální? Atribut FK bázové relace R2 se nazývá cizí klíč, právě když splňuje tyto časově nezávislé vlastnosti: 1. Každá hodnota FK je buď plně zadaná nebo plně nezadaná. 2. Existuje relace R1 s kandidátním klíčem CK takovým, že každá zadaná hodnota FK je identická s hodnotou CK nějaké n-tice relace R1. - soulad hodnot cizích a primárních klíčů představuje vztahy mezi řádky tabulek ("drží databázi pohromadě") Počítačová cvičení z předmětu Datové sklady pro FP
6
SQL je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. SQL je zkratka anglických slov Structured Query Language (strukturovaný dotazovací jazyk). Dělení příkazů: Příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …) Příkazy pro definici dat (CREATE, ALTER, DROP, …) Příkazy pro řízení přístupových práv (GRANT, REVOKE) Příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK) Ostatní nebo speciální příkazy Počítačová cvičení z předmětu Datové sklady pro FP
7
SQL: Příkazy pro definici dat
Základní příkazy: CREATE - vytvoření DROP - zrušení databázového objektu ALTER - změna vlastností databázového objektu Vytvoření bázové (skutečně existující v databázi) tabulky CREATE TABLE jm_bázové_tabulky (def_sloupce, … [definice_integritních_omezení_tabulky] ) → vytvoří novou, prázdnou tabulka + popis uloží do katalogu Definice sloupce jméno_sloupce typ [impl_hodnota] [seznam_io_sloupce] Definice integritních omezení (io) Integritní omezení jsou omezení kladená na hodnoty ve sloupcích tabulky, aby nedošlo k porušení integrity dat. Počítačová cvičení z předmětu Datové sklady pro FP
8
SQL: Příkazy pro definici dat – integritní omezení
Kandidátní klíč - sloupec, resp. sloupce tabulky (pro složený kandidátní klíč), jehož hodnota, resp. kombinace hodnot je v rámci tabulky unikátní. Primární klíč – jeden z kandidátních klíčů, který bude sloužit k „adresaci“ řádků tabulky. Musí splňovat vlastnosti kandidátního klíče, navíc nesmí být hodnota prázdná. Alternativní klíč – kandidátní klíč, který není primárním klíčem. Cizí klíč – sloupec, resp. sloupce tabulky (pro složený cizí klíč), jehož hodnota, resp. kombinace hodnot se musí rovnat hodnotě kandidátního klíče v nějaké tabulce. Slouží k vytváření vazeb mezi tabulkami. Soulad hodnot cizího klíče a odkazovaného kandidátního klíče se nazývá referenční integrita. Počítačová cvičení z předmětu Datové sklady pro FP
9
SQL: Příkazy pro definici dat – integritní omezení
Integritní omezení (deklarativní) pro sloupce NULL, resp NOT NULL CHECK (podmíněný_výraz) PRIMARY KEY UNIQUE FOREIGN KEY REFERENCES tabulka [(jm_sloupce)] [událost ref_akce] Integritní omezení (deklarativní) celé tabulky PRIMARY KEY (jm_sloupce, …) UNIQUE (jm_sloupce, …) FOREIGN KEY (jm_sloupce, …) REFERENCES tabulka [(jm_sloupce, …)] [událost ref_akce] CHECK (podmíněný_výraz) Počítačová cvičení z předmětu Datové sklady pro FP
10
Datové typy Typy dat řetězcové: CHARACTER(n), CHARACTER VARYING(n), BIT(n), BIT VARYING(n) numerické přesné - NUMERIC(p, q), DECIMAL(p, q), přibližné - INTEGER, SMALLINT, FLOAT(p), REAL, DOUBLE PRECISION datum a čas: DATE, TIME, TIMESTAMP intervalové: INTERVAL SQL/99 zavádí další předdefinované datové typy, např.: NATIONAL CHARACTER(n), NATIONAL CHARACTER VARYING(n), CHARACTER LARGE OBJECT, BINARY LARGE OBJECT booleovský: BOOLEAN Počítačová cvičení z předmětu Datové sklady pro FP
11
příkazy: SELECT, UPDATE, DELETE, INSERT
SQL: Manipulace s daty příkazy: SELECT, UPDATE, DELETE, INSERT - operandem jsou bázové tabulky nebo pohledy, výsledkem tabulka Příkaz SELECT SELECT [ALL|DISTINCT] položka [[AS] alias_sl], … FROM tabulkový_výraz [[AS] [alias_tab]], … [WHERE podmínka] [GROUP BY jm_sloupce_z_FROM|číslo, …] [HAVING podmínka] [ORDER BY jm_sloupce_z_SELECT|číslo [ASC|DESC]], … Počítačová cvičení z předmětu Datové sklady pro FP
12
SQL: vkládání dat Příkaz INSERT Zdroje pro vkládání:
INSERT INTO jm_tabulky [(jm_sloupce, …)] zdroj → Vloží jeden nebo více řádků tabulky Zdroje pro vkládání: Řádek implicitních hodnot (z příkazu CREATE TABLE) Řádek zadaných hodnot VALUES(skalární_výraz|NULL|DEFAULT, …) INSERT INTO Klient VALUES('440726/0672','Jan Novák','Cejl 8','Brno') Výsledek poddotazu tabulkový_výraz „Vlož do tabulky ZJ informace o klientech s účtem na Jánské.“ INSERT INTO ZJ SELECT DISTINCT K.* FROM Klient K, Ucet U WHERE K.r_cislo=U.r_cislo AND U.pobocka='Jánská' Počítačová cvičení z předmětu Datové sklady pro FP
13
SQL:manipulace s daty Příkaz DELETE (prohledávací)
DELETE FROM jm_tabulky [WHERE podmínka] → zruší jeden nebo několik řádků tabulky splňující podmínku „Zruš informace o klientech bez účtu." DELETE FROM Klient WHERE r_cislo NOT IN (SELECT r_cislo FROM Ucet) • Příkaz UPDATE (prohledávací) UPDATE jm_tabulky SET jm_sloupce = výraz|NULL|DEFAULT, … [WHERE podmínka] → změní hodnoty specifikovaných sloupců v řádcích splňujících podmínku „Poznač vklad 1000 Kč na účet číslo 100.“ UPDATE Ucet SET stav=stav+1000 WHERE c_uctu=100 Počítačová cvičení z předmětu Datové sklady pro FP
14
MS SQL Server 2005 – práce s databází
Spusťte si Microsoft SQL Server Management studio Programy -> Microsoft SQL Server > Microsoft SQL Server Management studio Přihlašte se loginem a heslem pro SQL Server (u1-u20) Použijte databázi – dle vašeho loginu (u1 – db1,.., u20 – db20) Pomocí připravených skriptů vytvořte tabulky Samostatný úkol: vytvořte tabulku Transakce a vložte jeden řádek Počítačová cvičení z předmětu Datové sklady pro FP
15
MS SQL Server 2005 - Přihlašování do systému
Programy -> Microsoft SQL Server > Microsoft SQL Server Management studio Adresa serveru je winsql, resp. winsql.fit.vutbr.cz Počítačová cvičení z předmětu Datové sklady pro FP
16
MS SQL Server 2005 – použití databáze
Každý účet má přiřazenu vlastní databázi: U1 = db1,…, u20 = db20 Počítačová cvičení z předmětu Datové sklady pro FP
17
MS SQL Server 2005 – spouštění SQL dotazů
Pro spouštění SQL skriptů je potřeba se přepnout do dotazovacího okna Počítačová cvičení z předmětu Datové sklady pro FP
18
MS SQL Server 2005 – spouštění skriptů
Nový skript se spouští přes kontextové menu – „Execute“ Počítačová cvičení z předmětu Datové sklady pro FP
19
MS SQL Server 2005 – refresh seznamu tabulek
Aktualizovaný seznam tabulek získáte přes kontextové menu – „Refrresh“ Počítačová cvičení z předmětu Datové sklady pro FP
20
MS SQL Server 2005 - Vytvoření tabulek
Počítačová cvičení z předmětu Datové sklady pro FP
21
MS SQL Server 2005 - Tabulka klient
CREATE TABLE Klient ( r_cislo CHAR(11) NOT NULL, jmeno VARCHAR(20) NOT NULL, ulice VARCHAR(20), mesto VARCHAR(20), PRIMARY KEY (r_cislo) ); CREATE UNIQUE INDEX Iklient ON Klient (r_cislo); INSERT INTO Klient VALUES('440726/0672','Jan Novák','Cejl 8','Brno'); VALUES('530610/4532','Petr Veselý','Podzimní 28','Brno'); VALUES('601001/2218','Ivan Zeman ','Cejl 8','Brno'); Počítačová cvičení z předmětu Datové sklady pro FP
22
MS SQL Server 2005 - Tabulka pobočka
CREATE TABLE Pobocka ( nazev VARCHAR(20) NOT NULL, jmeni INTEGER, PRIMARY KEY (nazev) ); CREATE UNIQUE INDEX Ipobocka ON Pobocka (nazev); INSERT INTO Pobocka VALUES('Jánská', ); VALUES('Palackého', ); SELECT * FROM Pobocka; Počítačová cvičení z předmětu Datové sklady pro FP
23
MS SQL Server 2005 - Tabulka účet
CREATE TABLE UCET ( c_uctu INTEGER NOT NULL, stav DECIMAL(10,2), r_cislo CHAR(11) NOT NULL, pobocka VARCHAR(20), PRIMARY KEY (c_uctu), FOREIGN KEY (r_cislo) REFERENCES Klient ON DELETE CASCADE, FOREIGN KEY (pobocka) REFERENCES Pobocka ); CREATE UNIQUE INDEX Iucet ON Ucet (c_uctu); INSERT INTO Ucet VALUES( ,52000,'440726/0672','Jánská'); VALUES( ,10000,'530610/4532','Jánská'); VALUES( ,10853,'530610/4532','Palackého'); Počítačová cvičení z předmětu Datové sklady pro FP
24
MS SQL Server 2005 - Tabulka transakce
Úkol: Vytvořte tabulku transakce a vložte do ní řádek s daty Počítačová cvičení z předmětu Datové sklady pro FP
25
MS SQL Server 2005 – Ukončení práce
Drop table transakce; Drop table ucet; Drop table klient; Drop table pobocka; Počítačová cvičení z předmětu Datové sklady pro FP
26
Toť vše… Počítačová cvičení z předmětu Datové sklady pro FP
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.