170 likes | 273 Views
Vytváranie databázových objektov. Matej Baran. Databáza a Informix. Najprv si ujasníme základne pojmy súvisiace s databázou v Informixe.
E N D
Vytváranie databázovýchobjektov. Matej Baran
Databáza a Informix Najprv si ujasníme základne pojmy súvisiace s databázou v Informixe. Databáza je akýsi mikrosvet. Sú to systematicky usporiadané údaje, ktoré majú medzi sebou určitý vzťah. Samotný údaj v tabuľke v určitom riadku a stĺpci databázy je entita. Entita (entity) je objekt reálneho sveta, ktorý je schopný nezávislej existencie a je jednoznačne odlišný od ostatných objektov. Každá entita databázy má v nej svoje miesto určené systémom riadenia bázy dát SRBD a rovnako každá entita má určitý vzťah k ostatným entitám. Ktoré taktiež určuje SRBD. Vzťah je väzba medzi dvoma (alebo viacerými) entitami. Informix je databázový server, ktorí slúži na vytváranie a správu databázy štandardu SQL. SQL (Structured Query Language) štruktúrovaný dotazovací jazyk – je to niečo ako programovací jazyk nad databázou. Pomocou tohto jazyka píšeme príkazy na vytváranie databáz, tabuliek, alebo na získavanie, prepisovanie a mazanie údajov z tabuliek databázy.
Vytváranie databázyCREATE DATABASE Príkazom CREATE DATEBASE vytvárame databázu. Príkazom DROP DATEBASE naopak databázu rušíme. Syntax príkazu: CREATE DATEBASE: CREATE DATABASE moja_databaza [IN moj_priestor]; • Vytvorí databázu moja_databazav koreňovom dbspace, ak nie je vopred špecifikovaný iný dbspace - moj_priestor. • meno databázy musí byť jedinečné v danom dbspace a musí začínať písmenom. Tento príkaz vytvorí adresár moja_databaza.dbs v aktuálnom adresári. V tomto adresári uloží všetky súbory tvoriace databázu. Pokiaľ takýto adresár už existuje skončí neúspešne. Vytvorenú databázu otvárame príkazom DATABASEmoja_databaza; Keď skončíme s prácou v databáze, tak ju korektne zatvoríme príkazom CLOSEmoja_databaza;
Vytváranie databázyCREATE DATABASE CREATE DATABASE db_with_no_log Vytvorenie databázy bez logovania. Logovanie slúži na opätovnú obnovu dát. V praxi sa to neodporúča. Pretože ak zlyhá hardware, tak stratíme všetky dáta, ktoré neboli zálohované od poslednej zálohy databázy. CREATE DATABASE a_logged_db WITH LOG Vytvorí databázu s logovaním a teda v prípade zlyhania napr. hardware, je možne obnoviť dáta. CREATE DATABASE buf_log_db WITH BUFFERED LOG BUFFERED LOG je logovaná databáza s bufrom. Je to vhodné pre veľmi vyťažené databázy, ktorých obsah - údaje sa často menia.
Rušenie databázyDROP DATABASE Príkaz DROP DATABASE slúži na rušenie databázy. Syntax príkazu: DROP meno_databázy • Vyžaduje DBA privilégia, nemôžeme zmazať aktuálnu databázu alebo databázu používanú iným klientom. • Odstráni všetky súbory a adresár súvisiaci s danou databázou.
CREATE TABLE CREATE TABLE - Používa sa na vytvorenie novej tabuľky v databáze. Každá tabuľka je jedinečne pomenovaná a je zložená z riadkov a stĺpcov. Stĺpce obsahujú meno, dátový typ a iné atribúty. Riadky obsahujú dáta. Syntax: CREATE TABLEnázov_tabuľky ( názov_stĺpcadátový_typ [ pravidlo ], … názov_stĺpca Ndátový_typ [ pravidlo ] ); Najčastejšie datové typy: char(size), varchar(size), number(size), int(size), date(yyyymmdd), number(size, d)... Constrains sú pravidlá, ktoré musia platiť pre dáta v riadku. Constraint: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, DEFAULT hodnota ... Tieto pravidlá nám umožňujú vytvárať vzťahy – relácie medzi tabuľkami v celej databáze.
CREATE TABLE Príklad vytvorenia tabuľky v databáze. CREATE TABLE adresa ( meno CHAR(20), priezvisko CHAR(20), ulica CHAR (40), cisloDomu INT, mesto CHAR (40), psc CHAR(10), stat CHAR(10) DEFAULT ‘Slovensko' ); Tento príklad vytvorí novú tabuľku z názvom adresa. Tabuľka bude obsahovať stĺpce s názvami meno, priezvisko, ulica, cisloDomu, mesto, psc, stat.
ALTER TABLE Niekedy potrebujeme pridať alebo zrušiť stĺpec z existujúcej tabuľky alebo zameniť dátový typ. Na to využívame príkaz: ALTER TABLE Vytváranie nového stĺpca s názvom meno_stĺpca a dátovým typom datatype do tabuľky z názvom názov_tabuľky: ALTER TABLE názov_tabuľky ADD meno_stĺpcadatatype; Odstránenie stĺpca meno_stĺpca z tabuľky z názvom názov_tabuľky: ALTER TABLE názov_tabuľky DROP COLUMN meno_stĺpca; Voľba BEFORE sa používa na určenie pozície. ALTER TABLE názov_tabuľky ADD (meno_stĺpca_1 BEFORE meno_stĺpca_2); Tento príkaz umožňuje zmeniť dátový typ stĺpca ALTER TABLE názov_tabuľky MODIFY (meno_stĺpcanový_dátový_typ);
DROP TABLE DROP TABLE sa využíva na vymazanie tabuľky a všetkých jej riadkov z databázy. DROP TABLE názov_tabuľky; Vymaže tabuľku s názvom názov_tabuľky.
CREATE INDEX Index vytvárame v tabuľke kvôli rýchlejšiemu prístupu k riadkom. Pred používateľom sú skryté. Keď meníme obsah riadku tabuľky. Je vhodné zmeniť aj index, aby sme sa vyhli prípadným chybám. A aby sme nenarušili integritu databázy. Existujú tri druhy indexov: Unikátny index - dva riadky v tabuľke nemôžu rovnakú hodnotu indexu CREATE UNIQUE INDEX meno_indexu ON meno_tabuľky (meno_stĺpca); na miesto UNIQUE môžeme použiť aj DISTINCT Jednoduchý index - tabuľka môže obsahovať rovnaké indexy CREATE INDEX meno_indexu ON meno_tabuľky (meno_stĺpca); Zložený index – index je vytvorený naraz pre viac stĺpcov CREATE INDEX meno_indexu ON meno_tabuľky (meno_stĺpca _1, meno_stĺpca _2); Index začína 0 a stále nadobúda vyššiu hodnotu. Ak chceme aby nadobudol nižšiu hodnotu tak použijeme klauzulu DESC: CREATE INDEX meno_indexu ON meno_tabuľky (meno_stĺpca ) DESC;
ALTER INDEX Používa sa na vloženie dát do tabuľky v poradí existujúceho indexu alebo na uvoľnenie indexu z klasterovaného atribútu. Syntax: ALTER INDEX meno_indexuTO CLUSTER; zoradí riadky v indexovanom poradí.
DROP INDEX Využíva sa na vymazanie už existujúceho indexu v tabuľke. Syntax: DROP INDEX meno_tabuľky. meno_indexu;
Integritné pravidlá Ak vytvárame databázu z viacerými tabuľkami a medzi tabuľkami je určitý vzťah musíme zabezpečiť integritu databázy. To urobíme pomocou integritných pravidiel. Pri vytváraní integritných pravidiel využívame rôzne kľúče. kľúč: množina atribútov jednoznačne identifikujúcich každý riadok tabuľky. kandidátny kľuč: atribút alebo množina atribútov identifikujúca jednu tabuľku. primárny kľúč: ak máme viac kandidátnych kľúčov jeden sa vyberie a stáva sa primárnym, ostané sú sekundárne. cudzí kľúč: umožňujú spojenie medzi údajmi v jednej tabuľke s údajmi v inej tabuľke. Cudzí kľúč je atribút tabuľky, ktorý sa použije ako odkaz na primárny kľúč inej tabuľky. Tento kľúč sa však môže používať aj v rámci tabuľky, v ktorej sa nachádza. Kľúče predstavujú jediný adresovací mechanizmus, ktorý máme k dispozícii, potrebujeme však vedieť meno tabuľky a hodnotu kľúča.
Integritné pravidlá Tabuľka klientov Stĺpec K_ID je primárny kľúč tabuľky klientov Tabuľka hlásení Stĺpec H_ID je primárny kľúč tabuľky hlásení. Stĺpec H_K_ID je cudzí kľúč tabuľky hlásení.
Integritné pravidlá Integritné pravidlá: 1. Entitná integrita: atribúty, tvoriace primárny kľúč nesmú nadobúdať prázdne hodnoty (musí byť unikátny). Každý riadok má unikátny kľúč. 2. Doménová integrita: údaje v stĺpcoch zodpovedajú požadovanému dátovému typu definovanému pre daný stĺpec. 3. Referenčná integrita: hodnota cudzieho kľúča musí existovať ako hodnota primárneho kľúča niektorej tabuľky alebo musí byť prázdna (vzťahy medzi tabuľkami).
Príklad MAIN CREATE DATABASE adresar_osob; CREATE TABLE meno_osoby_tab ( identifikačné_číslo SERIAL PRIMARY KEY, meno CHAR(20), priezvisko CHAR(20), dátum_narodenia DATE, email VARCHAR(25) ); CREATE TABLE potomok_tab ( meno_potomka CHAR(20), identifikačné_číslo INT, FOREIGN KEY (identifikačné_číslo ) REFERENCES NAME (identifikačné_číslo ) ); END MAIN
Použitá literatúra http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.ddi.doc/ddi73.htm http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/scheduler/tasks/tsch_codbinf.html http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.ddi.doc/ddi02.htm http://hornad.fei.tuke.sk/dokumentacie/informix/index.html