1 / 17

Vytváranie databázových objektov.

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.

gisela
Télécharger la présentation

Vytváranie databázových objektov.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vytváranie databázovýchobjektov. Matej Baran

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

  3. 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;

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

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

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

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

  8. 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);

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

  10. 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;

  11. 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í.

  12. DROP INDEX Využíva sa na vymazanie už existujúceho indexu v tabuľke. Syntax: DROP INDEX meno_tabuľky. meno_indexu;

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

  14. 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í.

  15. 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).

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

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

More Related