Úvod do databáz

V prvom (bakalárskom) stupni štúdia sme si prebrali základy jazykov HTML a CSS, ktoré sa využívajú najmä pri tvorbe webu. Okrem toho sme programovali v jazyku PHP, ktorý sa tiež využíva prevažne pri tvorbe webu. Je to však klasický programovací jazyk, ktorý sa nemusí používať len pri tvorbe webových systémov a na ktorom sa dá všeobecne naučiť princípy programovania, ktorými sa riadia aj ostatné programovacie jazyky. V nasledujúcich kapitolách a semestroch sa budeme troška menej zameriavať na jazyky HTML a CSS, pretože cieľom tohto projektu nie je naučiť používateľa robiť iba webovú stránku, ale všeobecne ho naučiť programovať a poskytnúť mu prehľad jazykov, technológií a vedomostí, ktoré by mal programátor ovládať.

 

Nemajte ale obavy, že si budeme preberať len nezáživné veci z programovania a našu webovú stránku si už nebudeme vedieť vylepšiť. Keďže sú webové systémy (webstránky) v súčasnosti najrozšírenejší druh koncového produktu programovania, stále si budeme preberať veci, ktoré s nimi súvisia a v podstate takmer všetko, čo si budeme preberať, sa používa aj pri tvorbe webových systémov.

 

V predošlých prednáškach sme od samého začiatku nespočetne veľakrát hovorili o tom, že systémy (programy) slúžia najmä na správu (zapisovanie-ukladanie, čítanie, mazanie, úprava...) dát (informácií/údajov). Tieto údaje, s ktorými sa pracuje, sa nachádzajú (sú uložené) najčastejšie v špeciálne upravených textových súboroch (s predpísanou štruktúrou pre ľahký prístup ku konkrétnym údajom) alebo v databázach. O špeciálne formátovaných súboroch (napríklad XML) si povieme troška neskôr, v tomto semestri sa naučíme používať práve databázy.

 

Čo to teda databáza je? Začnime tým, o akých dátach sa tu bavíme, aby sme pochopili ich význam. Predstavme si taký spravodajský portál (napríklad sme.sk), ktorého hlavná úloha je zobrazovať množstvo článkov (správy), ktoré sú triedené do viacerých kategórií. O každom článku je nutné evidovať okrem samotného obsahu (text) a kategórie (napríklad domáce správy – krimi a pod.) viacero údajov (dát) ako napríklad autora článku, dátum a čas vytvorenia článku atď. Okrem toho umožňuje portál registráciu používateľov, takže je nutné evidovať zoznam používateľov a o každom z nich opäť viacero údajov (meno, priezvisko, email, heslo atď.). Každý používateľ má možnosť každý článok komentovať, takže opäť je nutné ukladať množstvo (zoznam) komentárov a údajov o každom z nich (dátum, čas, autor komentu, text komentu a pod.). Takto by sme mohli ďalej pokračovať ešte dlho, jednoducho každý systém pracuje s veľkým počtom rôznych dát, ktoré je nutné evidovať a pracovať s nimi.

 

Ako ste si všimli, vo väčšine sa jedná o zoznam (list) niečoho (používatelia, články, komenty...), čiže teoreticky neobmedzený počet prvkov s tými istými vlastnosťami. Vlastnosťami sa v tomto prípade nemyslí nič iné ako ďalšie dáta daného typu prvku (pri používateľovi mail, meno a pod.). Možno vás už napadlo, že takúto formu dát veľmi dobre poznáte a že ste sa s ňou už viackrát stretli, keď ste pracovali napríklad s tabuľkovým procesorom (napríklad Microsoft Excel), resp. vás napadlo, že keby ste nevedeli, čo je databáza a mali by ste si ručne nejakým spôsobom takúto formu dát u seba evidovať, použili by ste na to tabuľkový procesor a dáta by ste si uložili – usporiadali do tabuľky. Každý prvok (používateľ, článok...) by bol zrejme riadok a každá jeho vlastnosť, ktorá ho popisuje (mail, meno, priezvisko...) by bol zadaný v príslušnom stĺpci. Dostali by ste klasickú tabuľku naplnenú dátami, podobnú tej, akú sme použili na našej finálnej webstránke z minulého semestra.

 

Pre evidenciu iných dát by ste mali zase inú tabuľku a podobne. Takto by ste mali u seba niekoľko tabuliek naplnených dátami, v ktorých by boli uložené všetky informácie, ktoré potrebujete. Dalo by sa to nazvať, že by to bola vaša databáza – vaše úložisko údajov. A presne toto je databáza, o ktorej sa ideme baviť, databáza v počítačovom vyjadrení. Je to v podstate skupina tabuliek (špeciálnych súborov), ktoré obsahujú riadky a stĺpce. Vizuálne si to môžete predstaviť presne ako klasickú tabuľku napríklad v Exceli, ktorá má riadky a stĺpce.

 

Vytváranie a celkovo manipulácia s týmito tabuľkami je však troška odlišná. V tabuľkovom procesore sme zvyknutí, že si vytvoríme nový dokument (napríklad nieco.xls), v ktorom sa automaticky nachádza nekonečne veľa riadkov a stĺpcov. Tieto riadky a stĺpce majú nejaký unikátny identifikátor (riadky číslo a stĺpce písmeno) a do obsahu buniek môžeme vkladať, čo sa nám zachce. Pri databázach v počítači je po vytvorení tabuľky samotná tabuľka prázdna, to znamená, že neobsahuje ani jeden riadok. Vytvorenie tabuľky v databázach znamená určenie jej štruktúry. Štruktúra tabuľky sa určuje zadefinovaním presným počtom stĺpcov, ktoré môže obsahovať a takisto typom dát (akokeby typ premennej – číslo, text, dátum a podobne), ktoré môže daný stĺpec obsahovať. Toto si samozrejme splou vysvetlíme a vyskúšame o pár prednášok neskôr, nateraz nám stačí vedieť toto.

 

Pre nás sú nateraz dôležité ešte dve veci a to, kde je taká databáza uložená a ako k nej pristúpime, resp. ako s ňou môžeme manipulovať. Ako sme povedali, celá databáza a jej tabuľky sú špeciálne formátované samostatné súbory, v ktorých sú uložené jednotlivé údaje. To, kde sú tieto súbory – čiže databáza, uložené, je v podstate úložisko dát. Môže to byť na tom istom serveri, ako je uložený systém (webstránka) alebo na nejakom inom serveri, ku ktorému je prístup (cez sieť). Taká databáza je tým pádom popísaná (identifikovateľná) podľa IP adresy servera, na ktorom je uložená a okrem toho má každá databáza (ako aj tabuľka) svoje meno. Okrem toho je nutné pre komunikáciu s ňou vedieť prístupové meno a heslo, aby neboli údaje prístupné len tak hocikomu. Oddelenie dát od systému je štandardný postup pre zvýšenie bezpečnosti. Dáta sú v podstate to najzraniteľnejšie, resp. to najdôležitejšie pre vlastníka akéhokoľvek systému, takže tu sa kladie najväčší dôraz na bezpečnosť. Okrem toho má oddelenie databázy výhodu aj v zálohovaní, stačí len obsah databáz archivovať a v prípade straty dát len zálohu obnoviť.

 

Tak, ako existuje viacero programov na prácu s čímkoľvek (tvorba textového dokumentu, tvorba tabuľkového dokumentu...), tak existuje aj viacero typov databáz. Typ databázy určuje jej štuktúru súborov (tabuliek) a rovnako aj spôsob komunikácie s dátami (čítanie, ukladanie a pod.). Medzi najpoužívanejšie typy databáz patrí SQL server od spoločnosti Microsoft, databáza od firmy Oracle alebo databáza s názvom MySQL. Práve posledne menovanú budeme používať my, pretože je jej používanie zdarma. Pre používanie prvých dvoch menovaných je potrebné zakúpiť licenciu a inštalovať samostatné programy, ktoré zaručia chod danej databázy. MySQL databáza je vo väčšine súčasťou balíčkov, ktoré poskytujú lokálny server pre používanie PHP. Rovnako to je aj v našom prípade, po inštalácii programu MAMP máme v podstate naišntalovanú aj podporu databázy MySQL, takže nemusíme už nič viac robiť. Podpora databázy sa podobne ako v prípade podpory jazyka PHP myslí to, že máme bežiaci MySQL (databázový) server, ktorý je na svojej IP adrese a na danom porte. Pomocou týchto údajov budeme vedieť k nemu pristupovať.

 

A ako sa teda k nemu pristupuje, resp. ako s ním môžeme manipulovať? Možno vás napadlo, že no normálne ako v Exceli. Asi máme nejaký program, kde vidíme všetky tabuľky, môžeme si ich otvoriť a tam ich upravovať a vkladať do nich dáta. Skoro je to pravda, ale nie je to úplne tak. Ak by to bolo takto, ako by potom mohol systém (webstránka) automaticky (pomocou naprogramovaného kódu) pracovať s týmito dátami? Hádam to tam nebude klikať niekto ručne! Práve pre toto vznikol jazyk SQL, ktorý slúži na manipuláciu s databázami a umožňuje vykonávať všetko potrebné (vytváranie, mazanie, vkladanie, upravovanie...) s databázami pomocou špeciálnych príkazov na to určených. Takže podobne, ako sme programovali, aby sa po kliknutí na nejaký odkaz niečo stalo, tak budeme podobne programovať, aby sa po kliknutí na niečo autmaticky napr. uložilo do databázy a podobne. Pochopiteľne, tak ako to je s rôznymi programovacími jazykmi, aj tu má každá firma, resp. typ databázy svoj vlastný, upravený SQL jazyk, ktorý slúži na prácu práve s ich databázou. My teda budeme používať databázu MySQL, s ktorou budeme pracovať pomocou jazyku MySQL. Základná logika jazyka SQL je rovnaká vo všetkých jej typoch, líši sa len troška syntax (spôsob zápisu) jednotlivých príkazov. Poďme si teda povedať, čo to ten jazyk SQL je.

Máte nejakú otázku alebo Vám niečo nie je jasné? Napíšte nám na info@zacni-programovat.sk a poradíme!

Ťažko sa vám učí samému?

Máte problémy s niektorými časťami alebo sa neviete učiť sám? Využite našu možnosť individuálnej asistencie:

  • samostatný prístup
  • vysvetlenie nejasností prebraného učiva
  • úlohy a cvičenia navyše
  • všetko z pohodlia domova cez mail a skype

Pre viac info kliknite tu

Kľúčové slová prednášky

databazamysqluvod do databazdatabazy uvodco su databazyco je databazaako funguje databaza

IT ftip

Ako rozpoznáš introvertného programátora od extrovertného programátora? Extrovertný programátor sa pri rozhovore s tebou pozerá na tvoje topánky.