Relační databázové systémy

Содержание

Слайд 2

Absolvování předmětu Garant předmětu: Doc. Ing. Vostrovský Václav, Ph.D. (vostrovsky@pef.czu.cz) PEF

Absolvování předmětu

Garant předmětu: Doc. Ing. Vostrovský Václav, Ph.D. (vostrovsky@pef.czu.cz) PEF 4.patro,

č. 416
CVIČENÍ: docházka minimálně 75%
(DO ZAPOČTENÉ DOCHÁZKY SE NEBUDE POČÍTAT NAHRAZOVÁNÍ CVIČENÍ V JINÝ TERMÍN!!)
1 test (normalizace, datové modelování a SQL):
(max 10 bodů, min 6)
pouze 1 oprava (např. pokud je test ohodnocen
3 body a oprava 9 bodů – celkem z testu: (3+9)/2=6 bodů
ZKOUŠKA: písemná část (minimum je 60%) + ústní dozkoušení (SQL a relačně db teorie)
Bude kladen důraz na porozumění problematice
(tj. co, kdy, kde a proč).
Слайд 3

Náplň přednášek předmětu Základní terminologie relačně DB technologie Dotazovací jazyk SQL

Náplň přednášek předmětu

Základní terminologie relačně DB technologie
Dotazovací jazyk SQL
Přístupy k datovému

modelování
Datová normalizace
Datová integrita
Datové transakce
Oprávnění a práva přístupu
Příkazové dávky
Jednotlivá témata budou procvičována v prostředí SŘBD ORACLE
Слайд 4

Nainstalování platformy LiveSQL.ORACLE Příkazy SQL budou editovány a následně spouštěny na

Nainstalování platformy LiveSQL.ORACLE

Příkazy SQL budou editovány a následně spouštěny na platformě

LiveSQL.ORACLE: (https://livesql.oracle.com/apex/f?p=590:1:10828164077919::NO )
Je nutno se zaevidovat (vytvořit si účet):
Слайд 5

Nainstalování platformy LiveSQL.ORACLE

Nainstalování platformy LiveSQL.ORACLE

Слайд 6

Слайд 7

Závažnost relačně DB technologie Registrační značka nesouhlasila ve 21 000 případech

Závažnost relačně DB technologie

Registrační značka nesouhlasila ve 21 000 případech
Někteří

registrovaní měli na sebe psaná auta, která nikdy neviděli
Někteří klienti zjistili, že dle údajů v CRV nevlastní dotyčný osobní vůz, ale např. tahač letadel.
V CRV jsou evidována vozidla, která nemají žádného majitele
U jednoho vozidla je evidováno více majitelů
MD nemůže zveřejnit architekturu CRV, neboť jeho zveřejnění by mohlo vést k pokusům o jeho napadení
Lze předpokládat, že výkonnost CRV po napojení na zahraniční DB ještě více poklesne (nyní je 25% oproti původnímu řešení)
Celkový náklad na aplikaci CRV pro ČR: 427 000 000 Kč
Слайд 8

1. přednáška: Základy relačně databázové technologie

1. přednáška: Základy relačně databázové technologie

Слайд 9

Přístupy ke zpracování dat: Členění dosavadních přístupů ke zpracování hromadných dat:

Přístupy ke zpracování dat:
Členění dosavadních přístupů ke zpracování hromadných dat:
Konvenční přístupy:
agendové

zpracování dat;
integrované zpracování dat.
Databázové přístupy:
relačně databázové zpracování dat,
objektové zpracování dat.
Слайд 10

Agendové zpracování dat: - představuje první pokus řešit problematiku zpracování hromadných

Agendové zpracování dat:

- představuje první pokus řešit problematiku zpracování hromadných

dat:
vedení samostatných, vzájemně oddělených a rozsahem malých úloh – agend,
každá agenda má vlastní soubory, které nejsou propojeny – míra integrovanosti dat velmi nízká.
? vysoká redundance dat: narůstající objem dat, vícenásobné zpracování dat
Слайд 11

Agendové zpracování: Datový soubor 1 Aplikační program 1 Aplikační program 2

Agendové zpracování:


Datový soubor 1

Aplikační program 1

Aplikační program 2

Aplikační program

3

Datový soubor 2

Datový soubor 3

:

Слайд 12

Nevýhody agendového zpracování: Obtížná uživatelská flexibilita (pro každou novou uživatelskou funkci

Nevýhody agendového zpracování:

Obtížná uživatelská flexibilita
(pro každou novou uživatelskou funkci

je třeba přepsat dotyčný program nebo nový napsat);
Obtížná flexibilita datové základny
(pro každou změnu struktury záznamu nutno přeprogramovat související programy);
Každý program obsahuje přesný popis souborů (problém konzistence redundantních dat – pokud se změní vlastnost objektu, musí být přepsána ve všech výskytech);
Слайд 13

Nevýhody agendového zpracování: obtížně kontrolovatelná datová redundance; omezené možnosti sdílení stejných

Nevýhody agendového zpracování:

obtížně kontrolovatelná datová redundance;
omezené možnosti sdílení stejných

dat více aplikacemi;
nízká bezpečnost IS;
obtížná dosažitelnost evidovaných dat (ke zpracovávaným souborům musí existovat odpovídající aplikační programy);
obtížná ochrana dat proti zneužití
? NUTNOST UPLATNĚNÍ JINÉ FILOZOFIE ZPRACOVÁNÍ HROMADNÝCH DAT
Слайд 14

Integrované zpracování: Datový soubor 1 Aplikační program 1 Aplikační program 2

Integrované zpracování:


Datový soubor 1

Aplikační program 1

Aplikační program 2

Aplikační program

3

Datový soubor 2

Datový soubor 3

:

Přetrvávající nevýhody integrovaného zpracování dat:
míra integrovanosti dat je vyšší oproti předchozímu zpracování
logická závislost programů na datech

Слайд 15

Typické řešení IS pomocí DB technologie: Zásoby Zaměstnanci ZP Zvířata DBS Účetnictví Doprava Mzdy

Typické řešení IS pomocí DB technologie:

Zásoby
Zaměstnanci ZP
Zvířata DBS Účetnictví
Doprava

Mzdy
Слайд 16

Základy relačně databázové technologie: Vznik: 1969, E.F.Codd, laboratoře IBM, DB2 Aspekty

Základy relačně databázové technologie:

Vznik: 1969, E.F.Codd, laboratoře IBM, DB2
Aspekty relačního

datového modelu:
Hodnoty v tabulkách musí být atomické
Hodnoty ve sloupcích jsou prvky dotyčných domén
Práce s tabulkami využívá operací výrokové logiky
Primární klíče pro identifikaci řádek mezi sebou
Cizí klíče pro propojování tabulek navzájem
Слайд 17

Relační datový model: V tabulkách lze definovat podmnožiny řádků (operace selekce)

Relační datový model:

V tabulkách lze definovat podmnožiny řádků (operace selekce)

a podmnožiny sloupců (operace projekce)
Pro práci s více tabulkami – operace spojení.
Základní pojmy relační databázové teorie:
datové soubory chápany jako množiny, tj. dvourozměrné tabulky = RELACE
jednotlivé řádky = n-tice (entita) evidované problematiky
jména sloupců = atributy (vlastnosti) entit
Слайд 18

Základní paradigma relačně db modelu: Na všechno je pohlíženo jako na

Základní paradigma relačně db modelu:

Na všechno je pohlíženo jako na

tabulku (realaci)
Entita - objekt reálného světa existující nezávisle na okolním světě a jednoznačně rozpoznatelný od dalších objektů (např. osoba, místo, věc nebo událost, o které jsou shromažďována data).
Atribut – vyjadřuje podstatnou vlastnost popisované entity nebo vztahu.

Sloupce (atributy)

doména

záznamy

Слайд 19

Základní pojmy relační db teorie: obor přípustných hodnot v sloupcích =

Základní pojmy relační db teorie:

obor přípustných hodnot v sloupcích =

doména
každá věta (record, záznam) = souhrn všech údajů o jednom objektu (1 entitě) dané problémové domény
sloupce tabulky reprezentují jednotlivé vlastnosti (atributy = pole = fields) objektů
všechny záznamy v rámci 1 tabulky mají stejnou strukturu
Слайд 20

Podmínky relačnosti tabulky: Všechny hodnoty v tabulce musí být elementární (nedělitelné)

Podmínky relačnosti tabulky:

Všechny hodnoty v tabulce musí být elementární (nedělitelné)
Pozice

sloupců je nevýznamná (pořadí lze libovolně měnit)
Pozice řádků je nevýznamná (pořadí lze libovolně měnit)
Sloupce musí být homogenní (obor hodnot každého sloupce musí být stejný = datový typ)
Každý sloupec musí být jednoznačně pojmenován
Každý řádek musí být jednoznačně rozlišen (pomocí primárního klíče)
Слайд 21

Relační algebra v relačně db technologii Operace PROJEKCE (výběr požadovaných sloupců,

Relační algebra v relačně db technologii

Operace PROJEKCE
(výběr požadovaných sloupců, výsledkem

je relace o p-sloupcích vzniklá z původní o n-sloupcích), pOperace SELEKCE
(výběr požadovaných řádků, výsledkem je relace o r-řádcích vzniklá z původní o m-řádcích), rOperace spojení JOIN (na rovnost, nerovnost, vnější)
(spojením dvou relací vzniká třetí relace, která obsahuje všechny kombinace vyhovující zadané podmínce)
Слайд 22

Vymezení relačně databázové koncepce: SŘBD (DBMS)) DB (data))

Vymezení relačně databázové koncepce:

SŘBD (DBMS))

DB (data))

Слайд 23

Vymezení relačně databázové koncepce: DBS SŘBD (DBMS)) DB (data))

Vymezení relačně databázové koncepce:


DBS

SŘBD (DBMS))

DB (data))

Слайд 24

Vymezení relačně databázové koncepce: IS DBS SŘBD (DBMS)) DB (data)) uživatel

Vymezení relačně databázové koncepce:

IS
DBS

SŘBD (DBMS))

DB (data))

uživatel 1

uživatel 2

uživatel 3

uživatel

4

uživatel n

….

Слайд 25

Vymezení relačně databázové koncepce: IS DBS SŘBD (DBMS)) DB (data)) uživatel

Vymezení relačně databázové koncepce:

IS
DBS

SŘBD (DBMS))

DB (data))

uživatel 1

uživatel 2

uživatel 3

uživatel

4

uživatel n

….

DBS=SŘBD + DB

Слайд 26

Vymezení relačně databázové koncepce: IS DBS SŘBD (DBMS)) DB (data)) uživatel

Vymezení relačně databázové koncepce:

IS
DBS

SŘBD (DBMS))

DB (data))

uživatel 1

uživatel 2

uživatel 3

uživatel

4

uživatel n

….

DBS=SŘBD + DB

DBS – databázový systém

Слайд 27

Vymezení relačně databázové koncepce: IS DBS SŘBD (DBMS)) DB (data)) uživatel

Vymezení relačně databázové koncepce:

IS
DBS

SŘBD (DBMS))

DB (data))

uživatel 1

uživatel 2

uživatel 3

uživatel

4

uživatel n

….

DBS=SŘBD + DB

DBS – databázový systém

SŘBD – systém řízení báze dat, uživatelé komunikují s DB právě a pouze prostřednictvím SŘBD
DB – báze dat, množina relací obsahujících data

Слайд 28

Vymezení relačně databázové koncepce: IS DBS SŘBD (DBMS)) DB (data)) uživatel

Vymezení relačně databázové koncepce:

IS
DBS

SŘBD (DBMS))

DB (data))

uživatel 1

uživatel 2

uživatel 3

uživatel

4

uživatel n

….

DBS=SŘBD + DB

DBS – databázový systém

SŘBD – systém řízení báze dat, uživatelé komunikují s DB právě a pouze prostřednictvím SŘBD
DB – báze dat, množina relací obsahujících data
IS – je tvořen DB a jejími uživateli

Слайд 29

Coddovo paradigma relačně DB modelu


Coddovo paradigma relačně DB modelu

Слайд 30

Coddova pravidla pro relační model: Pravidlo SŘBD (data spravována pouze pomocí

Coddova pravidla pro relační model:

Pravidlo SŘBD (data spravována pouze pomocí

relačních operací)
Pravidlo informační (data reprezentována na logické úrovni jako hodnoty relačních tabulkách)
Pravidlo přístupu (každý údaj logicky dosažitelný pomocí kombinace názvu tabulky, sloupce a hodnoty primárního klíče)
Pravidlo zpracovatelnosti neznámých hodnot
(ke každé neznámé hodnotě lze dojít prostřednictvím jiným známých hodnot)
5. Pravidlo relačního katalogu (popis celé databáze je na logické úrovni reprezentován jako relační systémový katalog)
Слайд 31

Coddova pravidla pro relační model: 6. Pravidlo pro jazyk (pro komunikaci

Coddova pravidla pro relační model:

6. Pravidlo pro jazyk (pro komunikaci

se SŘBD):
- definici dat (DDL)
- integritní omezení (DCL)
- manipulaci s daty (DML)
7. Pravidlo pohledů (SŘBD musí umožňovat konstrukci pohledů)
8. Pravidlo operací (všechny relační operace pracují s tabulkami jako s celky)
9. Pravidlo fyzické a logické nezávislosti dat
10. Pravidlo nezávislosti dat na integritních omezeních (výsledky operací musí být nezávislé na změnách IO)
Слайд 32

Coddova pravidla pro relační model: 11. Pravidlo nezávislosti dat na distribuci

Coddova pravidla pro relační model:

11. Pravidlo nezávislosti dat na distribuci

(výsledky operací nesmí být ovlivněny konkrétním umístěním dat v distribuovaných databázích)
12. Pravidlo nenarušitelnosti SŘBD (žádný uživatel nesmí obcházet nebo narušovat rozhraní SŘBD)
Fyzická nezávislost dat – aplikace musí být izolována od změn fyzické datové struktury; změna aplikace nesmí způsobit nutnou změnu paměťového uložení struktur a opačně.
Logická nezávislost dat – aplikační pohled je izolován od změn ve schématu databáze (změna struktury nevynucuje změnu programu).
Слайд 33

5. Coddovo pravidlo relačního katalogu: Systémové informace o struktuře databáze (definované

5. Coddovo pravidlo relačního katalogu:
Systémové informace o struktuře databáze

(definované tabulky, pohledy, indexy atd.) jsou uloženy stejným způsobem jako vlastní data, tj. ve formě tabulky. Takovéto uložení je výhodné, protože informace o databázi je možno běžně vybírat pomocí příkazu SELECT.

Příklad: výpis jména objektu, vlastníka a typu objektu

SQL> SELECT tname,creator,tablety FROM catalog;

TNAME CREATOR TABLETY
----------------------- ------------------- ------------------
seznam_studentu NĚMEC VIEW
student NĚMEC INDEX
student NĚMEC TABLE

Слайд 34

2. přednáška: Dotazovací jazyk SQL - příkazy jazyka DDL

2. přednáška: Dotazovací jazyk SQL - příkazy jazyka DDL

Слайд 35

Předpoklady db dotazovacích jazyků: musí obsahovat příkazy pro definici nových dat

Předpoklady db dotazovacích jazyků:

musí obsahovat příkazy pro definici nových dat

– jazyk pro definici dat DDL (Data Definicion Language),
musí obsahovat příkazy pro vkládání nových vět, tvorbu dotazů a aktualizaci dat – jazyk pro manipulaci dat DML (Data Manipulation Language),
musí obsahovat příkazy pro řízení přístupových práv uživatelů a pro řízení transakcí – jazyk DCL (Data Control Language).
Moderní SŘBD často disponují prostředky vizuálního programování na principu QBE – příkazy jsou generovány na základě zvolených grafických symbolů v uživatelském rozhraní.
Слайд 36

Koncepty dotazovacích jazyků: Procedurální jazyky (nutno zadat algoritmus pro získání požadované

Koncepty dotazovacích jazyků:

Procedurální jazyky (nutno zadat algoritmus pro získání požadované

odpovědi – COBOL, FORTRAN)
Neprocedurální jazyky ( v principu jednodušší, pouze se specifikují podmínky pro požadovanou odpověď):
1. Jazyk SQL (Struktured Query Language) kopíruje princip kladení otázek v přirozeném jazyce.
2. Jazyk QBE (Query By Example) pro zadávání dotazů pomocí grafických symbolů zapisovaných do návrhových formulářů. Určen pro koncové uživatele.
RELAČNĚ ÚPLNÝ DOTAZOVACÍ JAZYK = dotazovací jazyk umožňující definovat všechny operace relační algebry
Слайд 37

Vizuální programování v Access (QBE):

Vizuální programování v Access (QBE):

Слайд 38

Databázové dotazovací jazyky: Dotazovací jazyk SQL * 70. léta. Laboratoře IBM

Databázové dotazovací jazyky:

Dotazovací jazyk SQL
* 70. léta. Laboratoře IBM
Deklarativní dotazovací

jazyk založený na n-ticovém relačním kalkulu:
deklarativní – příkazy definují „co“ se má provést a nikoliv „jak“ se to má provést;
dotazovací – jazyk specializovaný pro manipulaci s daty v databázi pomocí rozhraní SŘBD (nelze ale např. programovat uživatelské rozhraní – nutno kombinovat s jiným vyšším programovacím jazykem).
Zlomem ve vývoji SQL je jeho standardizace organizací ANSI.
Слайд 39

Syntaxe příkazů SQL: symboly Symbol: Význam: [ ] nepovinné části příkazu

Syntaxe příkazů SQL: symboly

 
Symbol: Význam:
[ ] nepovinné části

příkazu
  { } povinná volba jedné z uvedených možností
  | oddělení variant, mezi kterými je možné volit
 < > parametr, za který je třeba dosadit konkrétní
hodnotu
  … konstrukce uvedená v předchozí závorce se
může opakovat
  ' označení konstant typu řetězec znaků ('Josef')
Слайд 40

SQL: PŘÍKAZY PRO DEFINICI DAT CREATE TABLE ALTER TABLE DROP TABLE

SQL: PŘÍKAZY PRO DEFINICI DAT
CREATE TABLE
ALTER TABLE
DROP TABLE
Příkaz CREATE TABLE:

syntaxe  
CREATE TABLE
( [NOT NULL]
[, [NOT NULL]]...]
NOT NULL u popisu sloupce zabezpečí, že všechna pole v daném sloupci nesmí obsahovat hodnotu NULL 
Слайд 41

CREATE TABLE: vytvoření relace STUDENT STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)

CREATE TABLE: vytvoření relace STUDENT

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)

Слайд 42

CREATE TABLE: vytvoření relace STUDENT STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE student

CREATE TABLE: vytvoření relace STUDENT

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student
2

(cind CHAR(6) NOT NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL>
Слайд 43

CREATE TABLE: vytvoření relace STUDENT STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE student

CREATE TABLE: vytvoření relace STUDENT

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student
2

(cind CHAR(6) NOT NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL> DESCRIBE student;
Слайд 44

CREATE TABLE: vytvoření relace STUDENT STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE student

CREATE TABLE: vytvoření relace STUDENT

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student
2

(cind CHAR(6) NOT NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL> DESCRIBE student;
Název Nezadáno? Typ
------------------------------------- --------------- -------------
CIND NOT NULL CHAR(6)
JMENO VARCHAR2(12)
BYDLISTE VARCHAR2(10)
DATNAR DATE
STIP NUMBER(4)
Слайд 45

Příkaz INSERT: naplnění relace daty SQL> INSERT INTO student 2 VALUES ('111/99','Karel Novák','Praha 1', 3 '10.1.1980',3500);

Příkaz INSERT: naplnění relace daty

 

SQL> INSERT INTO student
2 VALUES

('111/99','Karel Novák','Praha 1',
3 '10.1.1980',3500);
Слайд 46

Příkaz INSERT: naplnění relace daty SQL> INSERT INTO student 2 VALUES

Příkaz INSERT: naplnění relace daty

 

SQL> INSERT INTO student
2 VALUES

('111/99','Karel Novák','Praha 1',
3 '10.1.1980',3500);
1 řádka vytvořena.
SQL> INSERT INTO student
2 VALUES ('222/01','Jiří Dvořák','Praha 9',
3 '24.7.1984',0);
1 řádka vytvořena.
atd.
Слайд 47

Příkaz INSERT: naplnění relace daty SQL> INSERT INTO student 2 VALUES

Příkaz INSERT: naplnění relace daty

 

SQL> INSERT INTO student
2 VALUES

('111/99','Karel Novák','Praha 1',
3 '10.1.1980',3500);
1 řádka vytvořena.
SQL> INSERT INTO student
2 VALUES ('222/01','Jiří Dvořák','Praha 9',
3 '24.7.1984',0);
1 řádka vytvořena.
atd.
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP
-------- ---------------- ----------------- ------------- ----------
111/99 Karel Novák Praha1 10.01.80 3500
222/01 Jiří Dvořák Praha 9 24.07.84 0
333/01 Karel Franěk Kolín 13 12.03.85 2500
444/02 Josef Havlát Praha 1 15.04.85 2000
Слайд 48

Naplnění relace výčtem položek (nenaplněná položka) STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)

Naplnění relace výčtem položek (nenaplněná položka)

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)

Слайд 49

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE student 2 (cind CHAR(6) NOT NULL,


 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student
2 (cind CHAR(6) NOT

NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL>

Naplnění relace výčtem položek (nenaplněná položka)

Слайд 50

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE student 2 (cind CHAR(6) NOT NULL,


 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student
2 (cind CHAR(6) NOT

NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL> INSERT INTO student (cind,jmeno,
2 bydliste,datnar)
3 VALUES ('111/99','Karel Novák','Praha1',
4 '10.1.1980');
1 řádka vytvořena.
V tomto případě položka STIP (tj. stipendium) nebude naplněna

Naplnění relace výčtem položek (nenaplněná položka)

Слайд 51

Naplnění relace výčtem položek (nenaplněná položka) STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP) SQL> CREATE TABLE

Naplnění relace výčtem položek (nenaplněná položka)

 

STUDENT (CIND,JMENO,BYDLISTE,DATNAR,STIP)
SQL> CREATE TABLE student

2 (cind CHAR(6) NOT NULL,
3 jmeno VARCHAR(12),
4 bydliste VARCHAR(10),
5 datnar DATE,
6 stip NUMBER(4));
Tabulka vytvořena.
SQL> INSERT INTO student (cind,jmeno,
2 bydliste,datnar)
3 VALUES ('111/99','Karel Novák','Praha1',
4 '10.1.1980');
1 řádka vytvořena.
V tomto případě položka STIP (tj. stipendium) nebude naplněna
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP
111/99 Karel Novák Praha1 10.01.80
Слайд 52

INSERT naplnění tabulky daty ze staré tabulky: STUDENT STUDENT3 pouze studenty 3. ročníku

INSERT naplnění tabulky daty ze staré tabulky:

 

STUDENT

STUDENT3

pouze studenty 3.

ročníku
Слайд 53

INSERT naplnění tabulky daty ze staré tabulky: SQL> INSERT INTO student3

INSERT naplnění tabulky daty ze staré tabulky:

 
SQL> INSERT INTO student3

2 SELECT * FROM student
3 WHERE rocnik='3';
2 řádek vytvořeno.

STUDENT

STUDENT3

pouze studenty 3. ročníku

Слайд 54

INSERT naplnění tabulky daty ze staré tabulky: SQL> INSERT INTO student3

INSERT naplnění tabulky daty ze staré tabulky:

 
SQL> INSERT INTO student3

2 SELECT * FROM student
3 WHERE rocnik='3';
2 řádek vytvořeno.
SQL> SELECT * FROM student3;
CIND JMENO BYDLISTE DATNAR STIP ROCNIK
--------- ---------------- ---------------- ------------- ---------- --------
111/99 Karel Novák Praha 1 10.01.80 7000 3
333/01 Karel Franěk Kolín 13 12.03.85 5000 3

STUDENT

STUDENT3

pouze studenty 3. ročníku

Слайд 55

ALTER TABLE – příklad: doplnění položky ROCNIK SQL> ALTER TABLE student ADD rocnik CHAR(1); Tabulka změněna.

ALTER TABLE – příklad: doplnění položky ROCNIK

 

SQL> ALTER TABLE

student ADD rocnik CHAR(1);
Tabulka změněna.
Слайд 56

ALTER TABLE – příklad: doplnění položky ROCNIK SQL> ALTER TABLE student

ALTER TABLE – příklad: doplnění položky ROCNIK

 

SQL> ALTER TABLE

student ADD rocnik CHAR(1);
Tabulka změněna.
SQL> DESCRIBE student;
Слайд 57

ALTER TABLE – příklad: doplnění položky ROCNIK SQL> ALTER TABLE student

ALTER TABLE – příklad: doplnění položky ROCNIK

 

SQL> ALTER TABLE

student ADD rocnik CHAR(1);
Tabulka změněna.
SQL> DESCRIBE student;
Název Nezadáno? Typ
------------------------------------- --------------- -------------
CIND NOT NULL CHAR(6)
JMENO VARCHAR2(12)
BYDLISTE VARCHAR2(10)
DATNAR DATE
STIP NUMBER(4)
ROCNIK CHAR(1)
Слайд 58

ALTER TABLE : modifikování položky BYDLIŠTE SQL> ALTER TABLE student 2

ALTER TABLE : modifikování položky BYDLIŠTE

SQL> ALTER TABLE student

2 MODIFY bydliste VARCHAR2(15);
Tabulka změněna.
SQL>


Слайд 59

ALTER TABLE : modifikování položky BYDLIŠTE SQL> ALTER TABLE student 2

ALTER TABLE : modifikování položky BYDLIŠTE

SQL> ALTER TABLE student

2 MODIFY bydliste VARCHAR2(15);
Tabulka změněna.
SQL> DESCRIBE student;


Слайд 60

ALTER TABLE : modifikování položky BYDLIŠTE SQL> ALTER TABLE student 2

ALTER TABLE : modifikování položky BYDLIŠTE

SQL> ALTER TABLE student

2 MODIFY bydliste VARCHAR2(15);
Tabulka změněna.
SQL> DESCRIBE student;
Název Nezadáno? Typ
------------------------------------- --------------- -------------
CIND NOT NULL CHAR(6)
JMENO VARCHAR2(12)
BYDLISTE VARCHAR2(15)
DATNAR DATE
STIP NUMBER(4)
ROCNIK CHAR(1)


Слайд 61

UPDATE - příklad: oprava dat v položce STIP UPDATE SET = ,[ = ] ...WHERE

UPDATE - příklad: oprava dat v položce STIP

 

UPDATE SET

= ,[ = ] ...WHERE
Слайд 62

UPDATE - příklad: oprava dat v položce STIP UPDATE SET =

UPDATE - příklad: oprava dat v položce STIP

 

UPDATE SET

= ,[ = ] ...WHERE
SQL> UPDATE student SET stip=1000
2 WHERE cind='222/01';
1 řádka aktualizována.
SQL>
Слайд 63

UPDATE - příklad: oprava dat v položce STIP UPDATE SET =

UPDATE - příklad: oprava dat v položce STIP

 

UPDATE SET

= ,[ = ] ...WHERE
SQL> UPDATE student SET stip=1000
2 WHERE cind='222/01';
1 řádka aktualizována.
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP
--------- ---------------- ----------------- ------------ -------
111/99 Karel Novák Praha1 10.01.80 3500
222/01 Jiří Dvořák Praha 9 24.07.84 1000
333/01 Karel Franěk Kolín 13 12.03.85 2500
444/02 Josef Havlát Praha 1 15.04.85 2000
Слайд 64

Oprava dat v položce STIPENDIUM UPDATE SET = ,[ = ]

Oprava dat v položce STIPENDIUM

 

UPDATE SET = ,[

= ] ...WHERE
SQL> UPDATE student SET stip=stip*2 WHERE ROCNIK>'2';
2 řádek aktualizováno.
SQL>
Слайд 65

Oprava dat v položce STIPENDIUM UPDATE SET = ,[ = ]

Oprava dat v položce STIPENDIUM

 

UPDATE SET = ,[

= ] ...WHERE
SQL>UPDATE student SET stip=stip*2 WHERE ROCNIK>'2';
2 řádek aktualizováno.
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP ROCNIK
------ ----------------- --------------- ------------ -------- -----------
111/99 Karel Novák Praha 1 10.01.80 7000 3
222/01 Jiří Dvořák Praha 9 24.07.84 0 2
333/01 Karel Franěk Kolín 13 12.03.85 5000 3
444/02 Josef Havlát Praha 1 15.04.85 2000 1
Слайд 66

DELETE - rušení záznamů v relaci Syntaxe příkazu: DELETE FROM [WHERE ]

DELETE - rušení záznamů v relaci

 

Syntaxe příkazu:
DELETE FROM [WHERE

podmínka>]
Слайд 67

DELETE - rušení záznamů v relaci Syntaxe příkazu: DELETE FROM [WHERE

DELETE - rušení záznamů v relaci

 

Syntaxe příkazu:
DELETE FROM [WHERE

podmínka>]
vymaže z uvedené tabulky všechny řádky splňující podmínku zadanou za klíčovým slovem WHERE. Není-li tato podmínka uvedena, budou z  tabulky vymazány všechny její záznamy!!!!
Слайд 68

DELETE - rušení záznamů v relaci Syntaxe příkazu: DELETE FROM [WHERE

DELETE - rušení záznamů v relaci

 

Syntaxe příkazu:
DELETE FROM [WHERE

podmínka>]
vymaže z uvedené tabulky všechny řádky splňující podmínku zadanou za klíčovým slovem WHERE. Není-li tato podmínka uvedena, budou z  tabulky vymazány všechny její záznamy!!!!
SQL> DELETE FROM student WHERE cind='444/02';
1 řádka vymazána.
SQL>
Слайд 69

DELETE - rušení záznamů v relaci Syntaxe příkazu: DELETE FROM [WHERE

DELETE - rušení záznamů v relaci

 

Syntaxe příkazu:
DELETE FROM [WHERE

podmínka>]
vymaže z uvedené tabulky všechny řádky splňující podmínku zadanou za klíčovým slovem WHERE. Není-li tato podmínka uvedena, budou z  tabulky vymazány všechny její záznamy!!!!
SQL> DELETE FROM student WHERE cind='444/02';
1 řádka vymazána.
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP
--------- ---------------- --------------- ------------- -----------
111/99 Karel Novák Praha1 10.01.80 3500
222/01 Jiří Dvořák Praha 9 24.07.84 1000
333/01 Karel Franěk Kolín 13 12.03.85 2500
Слайд 70

Přejmenování relace: příkaz RENAME Syntaxe příkazu: RENAME TO

Přejmenování relace: příkaz RENAME

 

Syntaxe příkazu:
RENAME TO

tab.>
Слайд 71

Přejmenování relace: příkaz RENAME Syntaxe příkazu: RENAME TO Příklad: přejmenování tabulky STUDENT na STUDENTI

Přejmenování relace: příkaz RENAME

 

Syntaxe příkazu:
RENAME TO

tab.>
Příklad: přejmenování tabulky STUDENT na STUDENTI
Слайд 72

Přejmenování relace: příkaz RENAME Syntaxe příkazu: RENAME TO Příklad: přejmenování tabulky

Přejmenování relace: příkaz RENAME

 

Syntaxe příkazu:
RENAME TO

tab.>
Příklad: přejmenování tabulky STUDENT na STUDENTI
SQL> RENAME student TO studenti;
Tabulka přejmenována.
SQL>
Слайд 73

Přejmenování relace: příkaz RENAME Syntaxe příkazu: RENAME TO Příklad: přejmenování tabulky

Přejmenování relace: příkaz RENAME

 

Syntaxe příkazu:
RENAME TO

tab.>
Příklad: přejmenování tabulky STUDENT na STUDENTI
SQL> RENAME student TO studenti;
Tabulka přejmenována.
SQL> SELECT * FROM studenti;
CIND JMENO BYDLISTE DATNAR STIP ROCNIK
------ ---------------- --------------- -------------- --------- ------------
111/99 Karel Novák Praha 1 10.01.80 3500 3
222/01 Jiří Dvořák Praha 9 24.07.84 0 2
333/01 Karel Franěk Kolín 13 12.03.85 2500 3
444/02 Josef Havlát Praha 1 15.04.85 2000 1
Слайд 74

DROP TABLE - zrušení relace Syntaxe příkazu: DROP TABLE budou zrušeny

DROP TABLE - zrušení relace

 

Syntaxe příkazu:
DROP TABLE
budou zrušeny i případné

indexové soubory k dané relaci a budou nepoužitelné všechny pohledy a uložené dotazy týkající se této tabulky!!!
Слайд 75

DROP TABLE - zrušení relace Syntaxe příkazu: DROP TABLE budou zrušeny

DROP TABLE - zrušení relace

 

Syntaxe příkazu:
DROP TABLE
budou zrušeny i případné

indexové soubory k dané relaci a budou nepoužitelné všechny pohledy a uložené dotazy týkající se této tabulky!!!
Příklad: zrušení tabulky student
Слайд 76

DROP TABLE - zrušení relace Syntaxe příkazu: DROP TABLE budou zrušeny

DROP TABLE - zrušení relace

 

Syntaxe příkazu:
DROP TABLE
budou zrušeny i případné

indexové soubory k dané relaci a budou nepoužitelné všechny pohledy a uložené dotazy týkající se této tabulky!!!
Příklad: zrušení tabulky student
Слайд 77

DROP TABLE - zrušení relace Syntaxe příkazu: DROP TABLE budou zrušeny

DROP TABLE - zrušení relace

 

Syntaxe příkazu:
DROP TABLE
budou zrušeny i případné

indexové soubory k dané relaci a budou nepoužitelné všechny pohledy a uložené dotazy týkající se této tabulky!!!
Příklad: zrušení tabulky student
SQL> DROP TABLE student;
Tabulka zrušena.
SQL>
Слайд 78

DROP TABLE - zrušení relace Syntaxe příkazu: DROP TABLE budou zrušeny

DROP TABLE - zrušení relace

 

Syntaxe příkazu:
DROP TABLE
budou zrušeny i případné

indexové soubory k dané relaci a budou nepoužitelné všechny pohledy a uložené dotazy týkající se této tabulky!!!
Příklad: zrušení tabulky student
SQL> DROP TABLE student;
Tabulka zrušena.
SQL> SELECT * FROM student;
ORA-00942: tabulka nebo pohled neexistuje
SQL>
Слайд 79

Příklad: přejmenování sloupce STIP na STIPENDIUM: POSTUP: a) nejprve nutno přidat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

POSTUP: a) nejprve nutno přidat nový sloupec


s požadovaným jménem a datovým
typem shodným s původním sloupcem.
Слайд 80

Příklad: přejmenování sloupce STIP na STIPENDIUM: POSTUP: a) nejprve nutno přidat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

POSTUP: a) nejprve nutno přidat nový sloupec


s požadovaným jménem a datovým
typem shodným s původním sloupcem.
SQL> ALTER TABLE student ADD stipendium NUMBER(4);
Tabulka změněna.
SQL>
Слайд 81

Příklad: přejmenování sloupce STIP na STIPENDIUM: POSTUP: a) nejprve nutno přidat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

POSTUP: a) nejprve nutno přidat nový sloupec


s požadovaným jménem a datovým
typem shodným s původním sloupcem.
SQL> ALTER TABLE student ADD stipendium NUMBER(4);
Tabulka změněna.
SQL> DESC student;
Název Nezadáno? Typ
----------------------------------------- -------- -------------------
CIND NOT NULL CHAR(6)
JMENO VARCHAR2(12)
BYDLISTE VARCHAR2(10)
DATNAR DATE
STIP NUMBER(4)
ROCNIK CHAR(1)
STIPENDIUM NUMBER(4)
3
Слайд 82

Příklad: přejmenování sloupce STIP na STIPENDIUM: b) nyní je třeba zkopírovat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

b)   nyní je třeba zkopírovat hodnoty

z původního
sloupce do nového sloupce za všechny řádky.
Слайд 83

Příklad: přejmenování sloupce STIP na STIPENDIUM: b) nyní je třeba zkopírovat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

b)   nyní je třeba zkopírovat hodnoty

z původního
sloupce do nového sloupce za všechny řádky.
SQL> UPDATE student SET stipendium=stip;
4 řádek aktualizováno.
SQL>
Слайд 84

Příklad: přejmenování sloupce STIP na STIPENDIUM: b) nyní je třeba zkopírovat

Příklad: přejmenování sloupce STIP na STIPENDIUM:

 

b)   nyní je třeba zkopírovat hodnoty

z původního
sloupce do nového sloupce za všechny řádky.
SQL> UPDATE student SET stipendium=stip;
4 řádek aktualizováno.
SQL> SELECT * FROM student;
CIND JMENO BYDLISTE DATNAR STIP R STIPENDIUM
--------- ----------------- --------------- ------------- --------- -- ----------------
111/99 Karel Novák Praha 1 10.01.80 7000 3 7000
222/01 Jiří Dvořák Praha 9 24.07.84 0 2 0
333/01 Karel Franěk Kolín 13 12.03.85 5000 3 5000
444/02 Josef Havlát Praha 1 15.04.85 2000 1 2000
Слайд 85

Příklad: Přejmenování sloupce STIP na STIPENDIUM: c) jako poslední krok je

Příklad: Přejmenování sloupce STIP na STIPENDIUM:

 

c) jako poslední krok je nutno zrušit

původní sloupec, tj. STIP.
Слайд 86

Příklad: Přejmenování sloupce STIP na STIPENDIUM: c) jako poslední krok je

Příklad: Přejmenování sloupce STIP na STIPENDIUM:

 

c) jako poslední krok je nutno zrušit

původní sloupec, tj. STIP.
SQL> ALTER TABLE student DROP COLUMN stip;
Tabulka změněna.
SQL>