Operačné systémy a siete – stručný sylabus


Operačné systémy Pojmy z operačných systémov ilustrovať na OS Windows NT

Literatúra: W.Stallings: Operating Systems

Počítačové siete

Literatúra: A.Tannenbaum: Computer Networks

Databázové systémy



Časť 1 - Operačné systémy

Kapitola 1
Základné pojmy z počítačových systémov



 Operačný systém využíva technické prostriedky (hardvér - hardware) tvoriace počítačový systém na poskytovanie služieb používateľovi systému.

Pred štúdiom operačných systémov je potrebné rozumieť základným princípom fungovania hardvéru počítača.
 

Základné časti počítača


Pri najvšeobecnejšom pohľade na počítačový systém je možné rozoznať dve základné zložky: Bežný používateľ počítača pracuje najmä s tzv. aplikačnými programami ako sú: Príklady špeciálnejších aplikácií: Aplikačné programy pri svojom behu nevyužívajú služby hardvéru priamo, ale pristupujú k nim prostredníctvom služieb poskytovaných operačným systémom.

 
Základné časti počítača - pokračovanie



Hlavnými súčasťami počítača sú: Súčasti počítača sú vzájomne prepojené tak, aby počítač bol schopný plniť svoju základnú úlohu - vykonávať program.

Na prepojenie súčastí sa používajú zbernice (buses).

Počítač môže obsahovať aj viac modulov daného typu (napríklad procesorov).
 

Základné časti počítača - pokračovanie



Procesor (processor): riadi činnosť počítača a spracúvajú sa v ňom údaje (dáta).

Ak počítač obsahuje len jeden procesor, tento sa zvykne tiež označovať skratkou CPU - Central Processing Unit.

Operačná (hlavná, RAM) pamäť (main memory, central memory): slúži na uloženie údajov a programov. Jej obsah sa po vypnutí elektrického napájania stráca.

Vstupné/výstupné moduly (I/O modules): zabezpečujú prenos údajov medzi počítačom a okolím. Pomocou nich sa k počítaču pripájajú rôzne periférne zariadenia ako napríklad disky, terminály, tlačiarne, klavesnice, sieťové komunikačné zariadenia a ďalšie.

Systémové prepojenia (system interconnections) alebo tiež zbernice (buses): slúžia pre prepojenie jednotlivých súčastí počítača.

 
Registre procesora



Registre (registers) sú pamäťové bunky umiestnené obvykle v procesore.

Základné charakteristiky registrov:

Registre procesora možno rozdeliť do dvoch skupín: Deliaca čiara medzi týmito dvomi skupinami nie je celkom ostrá.

 
Registre procesora – pokračovanie



Základné vlastnosti registrov prístupných používateľovi: Typy registrov obvykle prístupných používateľovi sú:  
Registre procesora - pokračovanie


Dátové registre: Adresové registre: Príklady jednoúčelových adresných registrov:  
Registre procesora - pokračovanie


Indexový register (index register) sa používa pri indexovom adresovaní. Adresa sa získa pripočítaním indexu (obsiahnutého v indexovom registri) k nejakej základnej hodnote (base value).

Smerník segmentu (segment pointer) sa používa pri segmentovom spôsobe adresovania. Charakteristika tohoto spôsobu adresovania:

Smerník zásobníka (stack pointer). Ak daný počítač umožňuje používateľovi adresovanie zásobníka (stack addressing), potom je zásobník obvykle v operačnej pamäti a jeden register je vyhradený na udržiavanie adresy vrchu zásobníka. To umožňuje používanie inštrukcií neobsahujúcich adresovací operand, ako sú napríklad PUSH a POP.

 
Registre procesora - pokračovanie



Podmienkové kódy (condition codes, flags) sú bity, ktoré nastavuje procesor v závislosti od výsledku predchádzajúcej operácie.

Napríklad pri aritmetickej operácii môže byť výsledok kladný, záporný, nula alebo môže prísť k pretečeniu.

Okrem toho, že sa výsledok uloží do registra alebo pamäte, nastaví sa aj príslušný podmienkový kód. Tento sa potom môže použiť v rámci operácie podmieneného vetvenia.

Podmienkové kódy sú obvykle súčasťou niektorého resp. niektorých riadiacich registrov. Používateľovi sú obvykle prístupné na čítanie. Nedajú sa však priamo meniť programom.

 
Registre procesora - pokračovanie



Viacero registrov sa využíva pre riadenie práce procesora. Tieto obvykle nie sú prístupné používateľovi. Rôzne počítače majú rôznu organizáciu registrov a používajú tiež rôznu terminológiu.

Pre proces vykonávania inštrukcií majú podstatný význam:

Všetky procesory obsahujú tiež register alebo registre známe pod menom stavové slovo programu (Program Status Word - PSW), ktoré obsahujú stavové informácie. Obvykle to sú:  

Vykonávanie inštrukcií



Základnou funkciou počítača je vykonávanie programu.

Program pozostáva z postupnosti inštrukcií uložených v pamäti. Práca procesora spočíva vo vykonávaní týchto inštrukcií.

Spracovanie inštrukcie v najjednoduchšom prípade pozostáva z dvoch krokov:

Spracovanie jednej inštrukcie sa označuje ako inštrukčný cyklus (instruction cycle). Tento pozostáva z vyvolávacieho cyklu (fetch cycle) a vykonávacieho cyklu (execute cycle).

Na začiatku inštrukčného cyklu procesor prečíta inštrukciu z pamäte. Adresu inštrukcie, ktorú má procesor načítať, si berie vždy z registra PC. Obsah tohoto registra sa po načítaní inštrukcie automaticky zvyšuje. To znamená, že ak počas spracovania inštrukcie nepríde ku zmene obsahu registra PC, po spracovaní inštrukcie procesor načíta ďalšiu inštrukciu v poradí.

 
Vykonávanie inštrukcií - pokračovanie



Inštrukcia prečítaná z pamäte sa ukladá do inštrukčného registra (instruction register).

Inštrukcia obsahuje bity, ktoré určujú, aké činnosti má procesor pri jej spracovávaní vykonať. Tieto činnosti možno rozdeliť do 4 kategórií:

Vykonanie inštrukcie môže v sebe zahŕňať kombináciu viacerých z uvedených činností.

 
Vykonávanie inštrukcií - pokračovanie



Príklad: Uvažujme o hypotetickom procesore s nasledujúcimi vlastnosťami: Nech niektoré operačné kódy nášho procesora majú nasledujúci tvar:

0001 = načítanie z pamäte do akumulátora (load AC from memory)
0010 = uloženie obsahu akumulátora do pamäte (store AC to memory)
0101 = pripočítanie hodnoty z pamäte do akumulátora (add to AC from memory)

 
Vykonávanie inštrukcií - pokračovanie



Pre odľahčenie procesora je často vhodné, aby výmena údajov medzi pamäťou a V/V zariadením nešla cez procesor, ale priamo.

Pre realizáciu takejto výmeny existuje mechanizmus, pomocou ktorého V/V modul získa právo tzv. priameho prístupu do pamäte (direct memory access).

V/V modul potom realizuje čítanie resp. zápis do pamäte bez zaangažovania procesora do tohoto prenosu, čím je procesor odľahčený a môže plniť iné úlohy.

 
Prerušenia



Prakticky všetky počítače poskytujú mechanizmus, pomocou ktorého rôzne moduly môžu prerušiť štandardný beh procesora.
Prerušenie môže byť vyvolané: Udalosti, ktoré generujú prerušenie v súvislosti s bežiacim programom sú: Mechanizmus prerušenia umožňuje v prvom rade zvýšiť efektívnosť práce počítača.
 

Prerušenia - pokračovanie



Proces spracovania prerušenia pozostáva z nasledujúcich krokov:  
Prerušenia - pokračovanie


Obslužný program prerušenia zabezpečí vykonanie nasledujúcich krokov: Prerušenia - pokračovanie


V počítači môže naraz vzniknúť aj viacero žiadostí o prerušenie, resp. žiadosť o prerušenie môže prísť počas behu obslužného programu pre iné prerušenie.

Pre riešenie problému viacerých prerušení sú možné dva prístupy:

Aj pri použití mechanizmu prerušenia vznikajú situácie, že procesor beží “naprázdno” a nie je teda efektívne využitý. Prichádza k tomu vtedy, keď čas potrebný na vykonanie V/V operácie je väčší, ako je čas potrebný na vykonanie kódu medzi dvomi volaniami V/V operácie.

Riešením tohoto problému je umožniť viacerým používateľským programom byť aktívnymi naraz a odovzdávať riadenie vždy tomu programu, ktorý je pripravený na vykonávanie. Takýto prístup sa volá multiprogramovanie (multiprogramming).
 

Hierarchia pamätí



Pri návrhu pamäte počítača treba vyriešiť 3 otázky: Pre implementáciu pamäťového podsystému, bez ohľadu na technológiu, platí: Dilema:  
Hierarchia pamätí - pokračovanie


Východisko: využiť viacero pamäťových komponentov postavených na rôznych technológiách.
Existujúce technológie vytvárajú nasledujúcu hierarchiu: Pri prechode hierarchiou pamätí smerom zhora nadol možno pozorovať, že:  
Hierarchia pamätí - pokračovanie


Praktická použiteľnosť takejto organizácie je založená na rôznej frekvencii prístupu procesora k jednotlivým zložkám pamäťového podsystému.

Rôzna frekvencia prístupu procesora vychádza z platnosti princípu lokálnosti prístupov (locality of reference):

počas vykonávania programu majú prístupy procesora k inštrukciám a údajom tendenciu vyskytovať sa v zhlukoch, teda procesor pri práci s pamäťou obvykle “neskáče” z jedného konca pamäte na druhý, ale pracuje len s jej istou časťou. Je to dané tým, že program obvykle obsahuje cykly a podprogramy.

Pamäť cache je rýchla pamäť s menšou kapacitou, ktorá zvyšuje rýchlosť prístupu procesora k údajom v pamäti. Jej činnosť je založená na platnosti princípu lokálnosti prístupov.

 
Hierarchia pamätí - pokračovanie



Registre, cache pamäť a operačná pamäť obvykle využívajú polovodičovú technológiu a sú volatilné (ich obsah sa stráca po vypnutí napájania).

Trvalejšie uloženie údajov zabezpečujú externé pamäťové zariadenia, z ktorých najdôležitejšie sú pevné disky (hard disks). Používajú sa na ukladanie programov a dátových súborov.

Patria sem tiež magnetické pásky a optické disky. Tieto externé pamäťové zariadenia, ktoré nie sú volatilné, sa tiež zvyknú nazývať sekundárnou (secondary) alebo pomocnou (auxiliary) pamäťou.

Disky sa používajú tiež ako rozšírenie operačnej pamäte známe pod menom virtuálna pamäť (virtual memory).

Disková cache je časť operačnej pamäte používaná ako buffer pre dočasné uloženie údajov určených pre disk. Zvyšuje výkonnosť systému.
 

Cache pamäť



Dôvod existencie cache pamäte: aby procesor mohol vykonať inštrukciu, musí sa aspoň raz obrátiť na pamäť (na jej načítanie). Rýchlosť vykonávania inštrukcií je teda jednoznačne limitovaná časom potrebným na prístup do pamäte.

Pamäťové cykly sú vo všeobecnosti pomalšie ako cykly procesora, pamäť teda “brzdí” procesor. Riešením tohoto problému je malá rýchla pamäť nazývaná cache zaradená medzi procesor a operačnú pamäť využívajúca princíp lokálnosti prístupov.

Pri konkrétnom návrhu cache treba vyriešiť nasledujúce problémy:

Techniky používané pri V/V operáciách


Pre realizáciu V/V operácií existujú 3 prístupy:  
 
Kapitola 2
Základné pojmy z operačných systémov


Táto kapitola sa zaoberá stručným popisom histórie operačných systémov, na ktorej ilustrujeme aj základné pojmy a princípy z tejto oblasti.
 

Ciele a funkcie operačného systému



Operačný systém je program, ktorý riadi vykonávanie aplikačných programov a slúži ako rozhranie (interfejs – interface) medzi používateľom počítača a hardvérom. Operačný systém má tri ciele: Na hardvérové a softvérové komponenty počítačového systému pri práci používateľa s nejakou aplikáciou sa možno pozerať ako na hierarchický systém pozostávajúci z viacerých vrstiev.
 

Ciele a funkcie operačného systému - pokračovanie



Operačný systém štandardne ponúka služby v nasledujúcich oblastiach:  
Ciele a funkcie operačného systému - pokračovanie


Počítačový systém poskytuje: Operačný systém zodpovedá za riadenie týchto prostriedkov.

Operačný systém ako kontrolný mechanizmus má nasledujúce špecifiká:

Operačný systém sa počas svojej existencie vyvíja. Dôvody: Nutnosť zmien operačného systému kladie vysoké nároky aj na jeho návrh.
 

Vývoj operačných systémov



Pre porozumenie problematiky súčasných operačných systémov je užitočné oboznámiť sa s historickým vývojom v tejto oblasti.
V doterajšej histórii počítačov možno z hľadiska operačných systémov rozoznať 4 fázy:  
Vývoj operačných systémov – sériové spracovanie


V období prvých počítačov, teda od konca 40-tych do polovice 50-tych rokov, programátori komunikovali priamo s hardvérom. Žiadny operačný systém neexistoval.

Dva hlavné nedostatky týchto prvých počítačových systémov:

Takáto prevádzka počítača sa charakterizuje ako sériové spracovávanie, lebo používatelia používali počítač postupne jeden za druhým.

 
Vývoj operačných systémov – batchové systémy



Pre zlepšenie využitia počítačov bol v polovici 50-tych rokov vyvinutý operačný systém s dávkovým spracovávaním (batchový operačný systém).

Charakteristické znaky batchových systémov:

Batchový systém rieši problém prestojov počítačového systému, ktorý sa vyskytoval pri sériovom spracovávaní.

Vývoj operačných systémov – batchové systémy - pokračovanie



Batchový operačný systém používal špeciálny programovací jazyk s názvom job control language (JCL) umožňujúci zadávať príkazy pre monitor.

Príklad jobu s programom vo FORTRANE (príkazy začínajúce znakom $ sú určené monitoru):

$JOB
$FTN
.
.            štítky s fortranovskými inštrukciami
.
$LOAD
$RUN
.
.            štítky s dátami, s ktorými má program pracovať
.
$END

JCL riešil aj problém zdĺhavej prípravy behu programu (setup time).
 

Vývoj operačných systémov – batchové systémy – pokračovanie



Pre dobré fungovanie batchových systémov boli potrebné nasledujúce vlastnosti hardvéru: Napriek tomu, že časť prostriedkov počítačového systému je využívaná monitorom, priniesli batchové systémy zlepšenie využívania počítačových systémov.
 

Vývoj operačných systémov – multiprogramové batchové systémy



Aj pri jednoduchých batchových systémoch procesor beží často naprázdno, lebo V/V operácie sú podstatne pomalšie v porovnaní s procesorom.

Príklad:
Časová kalkulácia u programu, ktorý načítava záznamy z disku, spracúva každý z nich s použitím približne 100 inštrukcií a potom ho znovu zapíše na disk:

Načítanie záznamu                       0.0015 sekundy
Vykonanie 100 inštrukcií             0.0001 sekundy
Zápis záznamu                              0.0015 sekundy

Celkový čas                                  0.0031 sekundy

Využitie procesora                       0.0001/0.0031 = 3.2%

Riešenie: uložiť do operačnej pamäte viac programov (jobov) (multiprogramming, multitasking) a v čase, keď job čaká na ukončenie V/V operácie, prideliť procesor inému.

Vývoj operačných systémov – multiprogramové batchové systémy – pokračovanie



Vlastnosti hardvéru potrebné pre dobré fungovanie multiprogramových batchových systémov: Aby v pamäti mohlo byť pripravené na vykonávanie viacero jobov, musí byť k dispozícii nejaká forma správy pamäte (memory management).

Ak je na vykonávanie pripravených viacero jobov, treba rozhodnúť, ktorý bude vybratý. Na to je potrebný nejaký plánovací mechanizmus (scheduling).
 

Vývoj operačných systémov – systémy so zdieľaním času



S použitím multiprogramovania sa efektívnosť batchových systémov zvýšila. Vznikla však nová požiadavka: podpora interaktívnej práce používateľov.

Pre umožnenie interaktívnej práce na veľkých počítačoch boli vyvinuté systémy so zdieľaním času (time sharing systems).

Charakteristika systémov so zdieľaním času:

 
Vývoj operačných systémov – systémy so zdieľaním času – pokr.


Základné rozdiely medzi batchovým multiprogramovým systémom a multiprogramovým systémom so zdieľaním času:
 
  Batchový systém Systém so zdieľaním času
Základný cieľ Maximalizovať využitie procesora Minimalizovať dobu odpovede systému
Zdroj príkazov pre operačný systém Inštrukcie jazyka JCL poskytnuté spolu s jobom Príkazy zadávané z terminálu
 

Vývoj operačných systémov – systémy so zdieľaním času – pokr.



Charakteristika systému Compatible Time-Sharing System (CTSS) vyvinutého na MIT v roku 1961 pre počítač IBM 709: Vývoj operačných systémov – systémy so zdieľaním času – pokr.


Systémy so zdieľaním času a multiprogramové systémy priniesli so sebou nutnosť riešiť množstvo ďalších problémov. Napríklad:  
Hlavné výsledky v oblasti OS


Operačné systémy patria medzi najzložitejšie programy aké boli doteraz vytvorené.
Hlavné intelektuálne výsledky dosiahnuté pri ich vývoji sú: Každý z týchto výsledkov v sebe obsahuje isté princípy alebo abstrakcie vyvinuté pre riešenie praktických problémov.

Týchto päť oblastí pokrýva všetky základné problémy návrhu a implementácie moderných operačných systémov.
 

Hlavné výsledky v oblasti OS - procesy



Pojem procesu je základným pojmom z hľadiska štruktúry operačných systémov.
Existuje viacero definícií pojmu proces. Napríklad: Na kryštalizovanie pojmu procesu mali vplyv 3 línie v histórii OS: Základným nástrojom systémových programátorov pri vývoji prvých multiprogramových a multiužívateľských operačných systémov bolo prerušenie a s ním spojené odovzdávanie riadenia (prepínanie kontextov).
 

Hlavné výsledky v oblasti OS – procesy - pokračovanie



Implementácia princípu odovzdávania riadenia je mimoriadne náročná pre veľké množstvo možných kombinácií stavov.
Pri nesystematickom prístupe vznikali časté chyby. Hlavné príčiny: Riešenie: systematický spôsob monitorovania a riadenia vykonávania programov. Základom takéhoto systematického prístupu je pojem procesu.

Proces je entita pozostávajúca z troch zložiek:

Hlavné výsledky v oblasti OS – správa pamäte


Operačný systém musí v oblasti správy pamäťových prostriedkov zabezpečiť nasledujúcich 5 úloh: Operačný systém plní uvedené úlohy obvykle prostredníctvom tzv. virtuálnej pamäte (virtual memory) a súborového systému (file system).

Virtuálna pamäť je prostriedok, ktorý umožňuje programu adresovať pamäť na logickej úrovni, bez ohľadu na kapacitu operačnej pamäte, ktorá je v počítači v skutočnosti k dispozícii.

Dlhodobé uchovávanie údajov zabezpečuje súborový systém. Informormácie sú v ňom uložené vo forme súborov (files).

 
Hlavné výsledky v oblasti OS – ochrana informácií a bezpečnosť



V poslednom čase stúpa naliehavosť riešenia problému ochrany informácií v počítačových systémoch.
Vo všeobecnosti treba riešiť problém riadenia prístupu k počítačovému systému a problém prístupu k informáciám v ňom uloženým.
Práce týkajúce sa bezpečnosti a ochrany v oblasti operačných systémov možno rozdeliť do troch kategórií:  
Hlavné výsledky v oblasti OS – plánovanie (scheduling) a riadenie prostriedkov (resource management)


Pri správe prostriedkov, ktoré má k dispozícii, musí operačný systém dodržiavať 3 zásady:  
Hlavné výsledky v oblasti OS – štruktúra systému


Zložitosť operačných systémov v priebehu histórie rýchlo narastala: 3 problémy dnešných operačných systémov: Pre zvládnutie problémov pri vývoji operačných systémov vyplývajúcich z ich zložitosti sa pozornosť sústredila na štruktúru operačných systémov.
 

Hlavné výsledky v oblasti OS – štruktúra systému - pokračovanie



Zavedenie princípu vrstvovej architektúry.
Jeden možný teoretický model vrstvovej architektúry:

Level     Name             Objects                             Example operations

13     Shell                     User programming envir.     Statements
12     User processes    User processes                Quit, kill, suspend
11     Directories           Directories                       Create, destroy
10     Devices                External devices              Read, write
9       File system          Files                                  Open, close, read
8       Communications  Pipes                                 Create, destroy



7       Virtual memory             Segments, pages     Read, write
6       Local secondary store  Blocks of data         Read, write
5       Primitive processes      Primitive processes Suspend, resume

4       Interrupts             Interrupt-handling prog.   Invoke, mask
3       Procedures           Procedures, call stacks    Mark stack, call
2       Instruction set      Eval. stack, microprogram   Load, store
1       Electronic circuits Registers, gates               Clear, transfer
 

Charakteristiky moderných operačných systémov



Nové prvky v oblasti operačných systémov: O symetrickom multiprocesingu hovoríme, keď počítačový systém spĺňa nasledujúce podmienky: Prehľad operačného systému Windows NT


Windows NT je jednoužívateľský, multiprogramový operačný systém určený pre osobné počítače a pracovné stanice.
Je jedným z mála súčasných komerčných operačných systémov vyvinutých od základu. História :  
Prehľad operačného systému Windows NT - pokračovanie


Na báze verzie 3 vzniklo niekoľko významných upgradov operačného systému DOS: Procesory 80486 a Intel Pentium priniesli vlastnosti, ktoré jednoduchý operačný systém DOS nebol schopný využiť.

Nový trend – grafické používateľské rozhranie:

 
Prehľad operačného systému Windows NT - pokračovanie


Microsoft sa rozhodol pre samostatný postup a vyvinul operačný systém Windows NT využívajúci potenciál súčasných mikroprocesorov a poskytujúci plný multitasking v jednoužívateľskom prostredí:  

Prehľad operačného systému Windows NT - vlastnosti



Nová vlna v oblasti OS pre osobné počítače a pracovné stanice – jednoužívateľské multiprogramové operačné systémy.
Dôvody: Exekutíva, environmentálne podsystémy i aplikácie pracujú v režime klient/server. Výhody: Prehľad operačného systému Windows NT - vlastnosti


Dve dôležité charakteristiky systému Windows NT: Dôsledky:  

Prehľad operačného systému Windows NT - vlastnosti



Windows NT podstatne využíva objektovo-orientovaný prístup, ktorý je najmodernejším prostriedkom pre tvorbu softvérových systémov v súčasnosti. Je založený na pojmoch objektu a triedy.

Objekt (object) je entita pozostávajúca z dát nazývaných atribúty (attributes) objektu, ktoré ho charakterizujú a z funkcií nazývaných metódy (methods), ktoré vie vykonávať.

Trieda charakterizuje skupinu podobných objektov. Popis triedy pozostáva z toho, čo majú všetky objekty danej skupiny rovnaké. Objekt vzniká z danej triedy doplnením konkrétnych hodnôt jej atribútov.

Ako objekty sú v operačnom systéme Windows NT reprezentované napríklad súbory, procesy, vlákna, okná. NT vytvára všetky objekty jednotným spôsobom prostredníctvom object managera.

Objektovo-orientovaný prístup uľahčuje zdieľanie prostriedkov a dát medzi procesmi a ochranu prostriedkov pre neoprávneným prístupom.



Časť 2 - Počítačové siete

Počítačové siete



Počítačová sieť je systém prepojených počítačov umožňujúci ich vzájomnú komunikáciu.
 

Trochu histórie 


Použitie počítačových sietí 

Počítačové siete umožňujú: Prínosy počítačových sietí pre bežných ľudí: Počítačové siete priniesli aj množstvo nových sociálnych, etických a politických problémov.

 
Hardvérové aspekty počítačových sietí 



Počítačové siete možno klasifikovať z viacerých hľadísk.
Podľa prenosovej technológie (transmission technology) rozoznávame: Broadcasting je taký režim práce počítačovej siete, pri ktorom sa nejaká správa posiela všetkým počítačom pripojeným do danej siete.
Pri multicastingu sa správa posiela nejakej vybranej skupine počítačov pripojených do siete.

Podľa rozsahu delíme počítačové siete na:

Na každý z týchto typov sietí sa viažu špecifické technológie.

 
Hardvérové aspekty počítačových sietí – pokračovanie 



Charakteristické znaky lokálnych počítačových sietí (LAN): Charakteristické znaky rozsiahlych počítačových sietí (WAN): U rozsiahlych počítačových sietí je komunikácia používateľských počítačov (hosts, end-systems) realizovaná prostredníctvom vzájomne prepojených prepájacích uzlov (switching nodes), ktoré sa nazývajú routre (routers).
 

Hardvérové aspekty počítačových sietí - pokračovanie 



Metropolitné siete pokrývajú obvykle časť alebo celé mesto a pozostávajú z rýchlej kostry (backbone), na ktorú sa pripájajú jednotlivé lokálne siete.
Siete sa zvyknú klasifikovať aj podľa topológie. Topológia siete odráža geometrickú štruktúru prepojení uzlov siete. Typické topológie sú: V posledných rokoch sa čoraz častejšie používajú v oblasti počítačových sietí bezdrôtové (wireless) spojenia.
Pre skupinu navzájom prepojených počítačových sietí sa používa i názov internet.
Slovo Internet s veľkým "I" sa používa na označenie jedného špeciálneho celosvetového systému navzájom prepojených počítačových sietí.

 
Softvérové aspekty počítačových sietí 



Aby počítačová sieť fungovala, je potrebné vyriešiť viacero problémov, ktoré sa pri jej prevádzke môžu vyskytnúť. Ide o nasledujúce okruhy problémov: Vyriešenie väčšiny z uvedených problémov je úlohou sieťového softvéru.
 

Softvérové aspekty počítačových sietí – vrstvová architektúra 



Pre zníženie zložitosti problému sa pri tvorbe sieťového softvéru používa vrstvová (layered) architektúra.
Princípy vrstvovej architektúry: Softvérové aspekty počítačových sietí – vrstvová architektúra – pokr. 
Množina vrstiev a protokolov sa nazýva sieťovou architektúrou (network architecture). V súčasnosti sa vo svete používa viacero typov sieťových architektúr.

 
Softvérové aspekty počítačových sietí – vrstvová architektúra – pokr. 



Služby, ktoré daná vrstva poskytuje vyššej vrstve možno rozdeliť na: Podľa kvality možno rozdeliť služby na:  
Softvérové aspekty počítačových sietí – referenčný model OSI 

Referenčný model OSI (Open Systems Interconnection Reference Model) vytvorený medzinárodnou organizáciou pre štandardizáciu ISO (International Standards Organization) bol pokusom o štandardizáciu v oblasti sieťových architektúr.

Referenčný model OSI nedefinuje sieťovú architektúru, definuje iba počet a úlohy jednotlivých jej vrstiev.

Referenčný model OSI obsahuje nasledujúcich 7 vrstiev:

Model OSI má dnes najmä metodologický význam.
 

Softvérové aspekty počítačových sietí – referenčný model TCP/IP 



Referenčný model TCP/IP je základom siete Internet. Vznikol v rámci projektu ARPANET.
Názov modelu pochádza od dvoch najvýznamnejších protokolov odpovedajúcej sieťovej architektúry: TCP (Transmission Control Protocol) a IP (Internet Protocol).

Referenčný model TCP/IP má 4 vrstvy:

Referenčný model TCP/IP a jemu odpovedajúca sieťová architektúra má veľký praktický význam a je dnes de facto štandardom. 

Ako funguje Internet

1. Čo je to Internet 



Najjednoduchšia definícia: Internet je rýchlo sa rozširujúca celosvetová počítačová sieť.

Podrobnejšia definícia: Internet je sústava navzájom poprepájaných nezávislých počítačových sietí, ktoré sú spravované rôznymi organizáciami a vedia spolu komunikovať.

 
Aby počítačové siete mohli medzi sebou komunikovať, musia byť splnené nasledujúce podmienky: V prípade Internetu je zjednocujúcim prvkom systém dohôd nazývaných protokolmi súhrnne označovaný názvom TCP/IP.

Rozvoj a popularita Internetu vychádza zo skutočnosti, že poskytuje svojim používateľom veľmi zaujímavé a užitočné služby. Medzi základné služby Internetu patrí elektronická pošta a World Wide Web

Pripojenie organizácií i jednotlivcov na Internet zabezpečujú poskytovatelia internetovských služieb, tzv. internetovskí provideri.

 
Ako vznikol Internet

Kto riadi Internet 

Internet je zložitý samoorganizujúci sa systém ovplyvňovaný trhovým mechanizmom, vládnymi agentúrami, obchodom, asociáciami a rôznymi prideľovacími organizáciami a organizáciami na tvorbu štandardov (Communications of ACM, August 1997).

Významnou autoritou v Internete je Internet Society, v rámci ktorej funguje Internet Architecture Board.

Dokumenty o rôznych aspektoch prevádzky Internetu sa volajú RFC (Requests for Comments).

V Európe koordinuje aktivity internetovských providerov organizácia RIPE.

 
Kto platí Internet 



Základné pravidlo: Každý platí za svoju časť. Používatelia platia svojim providerom a tí zasa svojim providerom.

Okrem platieb za internetovské služby treba platiť aj za linky používané pri komunikácii.

Niektorí používatelia žijú v presvedčení, že Internet je zadarmo. Nie je to však tak, iba majú šťastie, že za nich platí niekto iný.
 
 
2. Ako funguje Internet 



Existujú dva základné druhy komunikačných systémov: Internet patrí medzi systémy s prepínaním paketov.
 

Protokol IP 



Komunikáciu medzi počítačmi spojenými v Internete zabezpečujú linky rôznych druhov a špecializované počítače nazývané routre.

Údaje posielané prostredníctvom Internetu sú rozdelené na časti nazývané IP pakety. Dlžka IP paketu nepresahuje obyčajne 1500 znakov resp. bajtov.

Posielanie údajov v Internete má svoje pravidlá. Pre ucelené skupiny takýchto pravidiel sa používa názov protokol.

Adresovanie v Internete a starostlivosť o doručenie paketov na určenú adresu má na starosti systém pravidiel nazývaný protokol IP (Internet Protocol)
Internetovská adresa pozostáva zo 4 čísiel menších ako 256. Príklad: 128.100.8.53

Štruktúra internetovskej adresy odráža štruktúru Internetu ako siete sietí. Každá sieť pripojená do Internetu má svoje číslo, ktoré tvorí ľavú časť adresy počítača pripojeného do danej siete. Pravá časť adresy je číslom počítača v rámci danej siete. Príklad: v adrese 128.100.8.53 je 128.100 číslom siete a 8.53 číslom počítača v tejto sieti.

Routre v sieti Internet sa zaujímajú pri doručovaní paketu len o časť adresy odpovedajúcej číslu siete. Číslo počítača využíva až posledný router priamo pripojený k sieti, pre ktorú sú údaje určené. Ten zabezpečí doručenie údajov konkrétnemu počítaču.

Protokol IP je základom fungovania siete Internet. Keď sieť dostane údaje vo forme IP paketu, nepotrebuje žiadne ďalšie údaje na jeho doručenie na určenú adresu (táto adresa je súčasťou IP paketu).

Pre praktické využitie tejto základnej služby siete treba však vyriešiť niekoľko problémov:

Tieto problémy už nerieši protokol IP, sú riešené pravidlami patriacimi do vyššej vrstvy súhrnne nazývanými protokolom TCP (Transmission Control Protocol).

Protokol TCP 



Protokol TCP preberie správu, ktorú treba poslať a rozdelí ju na menšie časti, ktoré sa už zmestia do IP paketov a tieto časti očísluje. Jednotlivé časti vloží do “obálok”, na ktoré napíše ich poradové čísla a odovzdá ich IP protokolu spolu s adresou, na ktorú sa majú dopraviť.

IP protokol doručí paket na určenú adresu a odovzdá ho protokolu TCP na prijímajúcej strane. Ten z poradového čísla na obálke zistí, či dostal všetky časti pôvodnej správy a aké má byť ich poradie.

Používateľ protokolu TCP má dojem, ako keby medzi odosielateľom a prijímateľom bola vytvorená stála linka.

Každé spojenie vytvorené protokolom TCP sa pripája k danému počítačovému systému prostredníctvom jedného zo softvérovo definovaných prípojných bodov, tzv. portov. To umožňuje adresovať dáta nielen istému počítaču, ale aj konkrétnejšie niektorému z procesov, ktoré v ňom bežia. Napríklad dáta elektronickej pošty, ktoré sa prenášajú pomocou TCP spojenia, sa prenášajú štandardne na port 25 prijímajúceho počítača.

 
Systém DNS 

Číselná podoba internetovskej adresy nie je vhodná pre bežného používateľa. Preto sa okrem číselných adries používajú v Internete pre označovanie počítačov aj symbolické mená.

Problémy, ktoré treba vyriešiť pri zavedení symbolických mien:

Riešenie týchto problémov zabezpečuje systém DNS (Domain Name System).

Fungovanie systému DNS je založené na rozdelení počítačov zapojených v Internete do menších skupín, tzv. domén, vytvárajúcich stromovú štruktúru.

Na najvyššej úrovni sú domény dvoch druhov:

Za každú doménu je niekto zodpovedný a len on má kompetenciu organizovať systém subdomén jemu zverenej domény.

Úplne meno domény vznikne zreťazením mena tejto domény s menami domén po ceste od tejto domény smerom nahor, pričom jednotlivé mená domén sú oddelené bodkami. Príklad: fmph.uniba.sk

Správca domény môže prideliť, s využitím mena svojej domény, mená konkrétnym počítačom, ktoré chce do nej zaradiť. Príklad: center.fmph.uniba.sk

Prevod mien počítačov pridelených im v rámci systému DNS na ich číselné adresy zabezpečuje systém name serverov. Správca domény po pridelení symbolického mena počítaču zavedie odpovedajúcu informáciu do príslušného name servera.

Žiadny z name serverov neobsahuje zoznam mien všetkých počítačov v Internete, jednotlivé name servery však medzi sebou spolupracujú a tak je zaistené zistenie adresy odpovedajúcej menu ľubovoľného počítača v Internete.

Niekoľko ďalších poznámok k DNS:

 
Vrstvový model siete Internet 

Sieťový softvér sa buduje ako štrukturovaný. Je organizovaný ako systém na sebe ležiacich vrstiev.

Komunikácia v sieti prebieha tak, že medzi sebou komunikujú odpovedajúce si vrstvy na jednotlivých počítačoch.

Výmena informácií medzi odpovedajúcimi si vrstvami zahŕňa jednak servisné údaje predpísané príslušným protokolom a jednak údaje, ktoré vrstva dostala za úlohu preniesť.

Existujú rôzne vrstvové modely počítačových sietí. Štandardizovaný ISO model má 7 vrstiev, v sieti Internet sa používa model TCP/IP so 4 vrstvami.

Úlohy jednotlivých vrstiev v modeli TCP/IP:

Základné služby Internetu

Elektronická pošta  


 Základné pojmy  
Všeobecná architektúra

Práca v režime emulácie terminálu

Práca na pracovnej stanici s priamym pripojením do Internetu

Práca v lokálnej sieti, resp. na serveri používateľa


Prenos správ v sieti Internet - SMTP


SMTP (Simple Mail Transfer Protocol) je prostriedok na doručovanie správ medzi MTA (prípadne medzi UA a prvým MTA)
definovaný v dokumente RFC 821

Príklad komunikácie: správa od novak@fmph.uniba.sk pre kovac@pascal.fmph.uniba.sk

220 pascal MX V4.2 VAX SMTP server ready at Wed, 27 Aug 1997 19:43:36
HELO center.fmph.uniba.sk
250 Hello, center.fmph.uniba.sk
MAIL FROM:<novak@fmph.uniba.sk>
250 MAIL command accepted.
RCPT TO:<kovac@pascal.fmph.uniba.sk>
250 Recipient okay (at least in form)
DATA
354 Start mail input; end with <crlf>.<crlf>
Date: Wed, 27 Aug 1997 19:43:15 MET
From: Jan Novak <novak@fmph.uniba.sk>
To: kovac@pascal.fmph.uniba.sk
Subject: Skuska
Ahoj,
ako sa mas ?
Jano
.
250 Message received and queued.
QUIT
221 pascal Service closing transmission channel
Ďalšie spôsoby prenosu správ

Prenos binárnych údajov

uuencode / uudecode

Multipurpose Internet Mail Extensions (MIME)

Bezpečnosť


Z pohľadu bezpečnosti sa dajú správy prirovnať ku korešpondenčným lístkom písaným na písacom stroji: Riešenie: využitie možností kryptografie, vhodné je šifrovanie s verejným kľúčom (napríklad program PGP)

World Wide Web


WWW je systém, ktorý umožňuje jednoduchým spôsobom pristupovať k hypertextovým a multimediálnym dokumentom uloženým na počítačoch v sieti Internet.
  •  Hypertextové dokumenty
  • obsahujú spojenia na iné dokumenty
  • Multimediálne dokumenty
  • súčasťou dokumentov môžu byť aj obrázky, zvukové záznamy, videosekvencie
  • Hypermédiá ako kombinácia týchto pojmov
  • Princíp klient-server

     
    Adresa v systéme WWW:
    URL (Universal Resource Locator)

    Hypertext Transfer Protocol (HTTP)

    Proxy servery



    V súčasnosti sa pri komunikácii medzi WWW prehliadačom a serverom používajú tzv. proxy servery, ktoré túto komunikáciu sprostredkúvajú.

    Dôvody pre použitie proxy servera:

    Hypertext Markup Language (HTML)

     
    Príklad dokumentu v HTML


    Ako vytvárať dokumenty v jazyku HTML


    Existuje viacero možností: Po vytvorení dokumentu je potrebné ho preniesť do príslušného adresára na WWW serveri (napríklad public_html pre servery so systémom UNIX).

    CGI programy


     
    Java, JavaScript

    Vyhľadávanie informácií v systéme WWW

    Ostatné služby siete Internet

    Časť 3 - Databázové systémy

    Kapitola 1
    Úvod do databázových systémov



    Databázový systém (systém pre riadenie databázy – database-management system - DBMS) pozostáva z množiny súvisiacich údajov (dát) a zo skupiny programov umožňujúcich prístup k týmto dátam.

    Množina dát v rámci databázového systému sa zvykne nazývať databáza. Obvykle obsahuje informácie o istej časti reality.

    Prvoradým cieľom databázového systému je poskytnúť pohodlné a efektívne prostredie pre ukladanie a výber informácií.

    Význam informácií pre väčšinu ľudských aktivít viedol k rozvoju mnohých pojmov a techník pre efektívnu prácu s dátami.
     

    Načo sú databázové systémy



    Jedným zo spôsobov ako uchovávať informácie v počítači je ukladať ich do súborov. Priamočiare používanie takéhoto prístupu pre ukladanie informácií o objektoch reálneho sveta však so sebou prináša, a to aj v prípade špeciálnej podpory operačného systému, viacero problémov: Riešenie týchto problémov priniesli databázové systémy.
     

    Pohľad na dáta



    Dáta sú uložené v databázovom systéme zložitým spôsobom podporujúcim efektívnu prácu s nimi. Aby sa zjednodušil prístup užívateľa k dátam, používa sa v databázovom systéme niekoľko úrovní abstrakcie:  Pohľad na dáta - Inštancie a schémy


    Množina údajov uložených v databáze v danom momente sa nazýva inštanciou databázy (instance).

    Schéma databázy (database schema) charakterizuje jej logickú štruktúru.

    Databázový systém poskytuje na každej zo svojich úrovní abstracie nezávislú schému (fyzickú schému, logickú schému a na najvyššej úrovni viacero podschém) .
     

    Dátové modely



    Východiskom pri tvorbe štruktúry databázy je dátový model. Je to množina nástrojov pre popis Existujúce dátové modely možno rozdeliť do 3 skupín:  
    Dátové modely – pokračovanie


    Logické modely založené na objektoch sa používajú na popis dát na logickej úrovni a na úrovni pohľadov. Poskytujú pružné prostriedky pre popis štruktúry dát a explicitnú špecifikáciu obmedzení. Delíme ich na: Logické modely založené na záznamoch sa tiež používajú na popis dát na logickej úrovni i na úrovni záznamov. Ich názov pochádza z toho, že odpovedajúca databáza je založená na záznamoch pevnej dĺžky. Tri najznámejšie modely tohoto druhu sú:  Entitno-relačné dátové modely


    Entitno-relačné dátové modely vychádzajú z pohľadu na reálny svet ako na množinu základných objektov nazývaných entitami (entities) a relácií medzi týmito objektami (relationships).

    Entita je vec alebo objekt reálneho sveta odlíšiteľná od ostatných objektov.

    Okrem entít a vzťahov sa v entitno-relačnom modeli reprezentujú aj obmedzenia (constraints), ktoré musí obsah databázy spĺňať. Príkladom je kardinalita vzťahov (mapping cardinality), ktorá vyjadruje počet entít, ktoré sú v danom vzťahu s danou entitou.

    Celková logická štruktúra databázy sa dá graficky vyjadriť pomocou entitno – relačných diagramov (E-R diagramov) vytvorených z nasledujúcich prvkov:

    Relačné modely


    Pri relačnom modeli sa používa pre reprezentáciu dát a vzťahov medzi nimi sústava tabuliek.

    Každá tabuľka obsahuje stĺpce s jednoznačne určenými menami. Riadky tabuľky odpovedajú modelovaným prvkom alebo vzťahom medzi nimi.
     

    Jazyk pre definíciu dát (Data Definition Language – DDL)



    Špecifikácia schémy databázy sa robí pomocou špeciálneho jazyka pre definíciu dát (DDL).

    Príkazy jazyka DDL vygenerujú po kompilácii množinu tabuliek uložených v špeciálnom súbore s názvom slovník dát (data dictionary alebo data directory).

    Slovník dát obsahuje metadáta, t.j. dáta o dátach. Pri konkrétnom prístupe k dátam sa systém obráti najprv na tento slovník.

    Štruktúra ukladania dát a prístupové metódy k dátam používané databázovým systémom sa špecifikujú pomocou špeciálneho typu DDL nazývaného jazyk pre ukladanie a definíciu dát (data storage and definition language).
     

    Jazyk pre prácu s dátami (Data Manipulation Language – DML)



    Prácou s dátami (data manipulation) sa rozumie: Pre prácu s dátami má používateľ k dispozícii špeciálne jazyky (DML).

    Existujú dve triedy jazykov DML:

    Príkaz na výber informácií z databázy sa zvykne nazývať dotaz (query). Časť DML zaoberajúca sa výberom informácií sa nazýva dotazovací jazyk (query language). Často sa však týmto pojmom označuje aj celý DML.
     

    Riadenie transakcií (Transaction management)



    Transakciou sa nazýva skupina operácií vytvárajúcich jednu logickú funkciu v databázovej aplikácii (napríklad prevod istej sumy z jedného účtu na druhý).

    U transakcie je podstatné, aby prebehla úspešne buď celá, alebo aby sa z nej neuskutočnila žiadna operácia. Tento princíp "všetko alebo nič" sa charakterizuje ako atomicita.

    Modul riadiaci transakcie zabezpečí, že databáza ostane v konzistentnom (consistent) stave aj v prípade, keď počas vykonávania transakcie príde k poruche systému, ktorá zabráni jej úspešnému ukončeniu.

    Keď prebieha súčasne viacero transakcií, treba zabezpečiť, aby pri ich interakciách neprišlo v porušeniu konzistentnosti databázy (concurrency-control).
     

    Správa ukladania (Storage management) 



    Používateľ databázového systému prichádza do styku s jeho vyššími vrstvami, ktorých úlohou je zjednodušiť a uľahčiť mu prístup k dátam.

    O dobe odozvy databázového systému však rozhoduje efektívnosť štruktúry uloženia dát v databáze a efektívnosť operácií pracujúcich nad týmito dátami. Táto časť databázového systému sa volá správa ukladania.

    Správa ukladania komunikuje so správou súborov operačného systému, pod ktorým databázový systém beží.
     

    Správca databázy (Database Administrator - DBA)



    Správca databázy koordinuje aktivity týkajúce sa databázy a stará sa o jej údržbu.

    Hlavné úlohy správcu databázy sú:

     
    Používateľ databázy


    Hlavným cieľom databázového systému je vytvoriť prostredie pre ukladanie informácií do databázy a ich výber. Z hľadiska spôsobu, akým interagujú s databázovým systémom, možno používateľov rozdeliť na 4 skupiny: Kapitola 2
    Entitno-relačný model

    Entitno-relačný (E-R) dátový model je založený na predstave reálneho sveta ako množiny objektov nazývaných entity (entities), medzi ktorými existujú vzťahy (relationships).

    Pomocou E-R modelu možno vytvoriť diagram reprezentujúci celkovú logickú štruktúru databázy.

    E-R model je jeden zo sémantických modelov. Znamená to , že umožňuje aj reprezentáciu obsahu dát.

    E-R model má mimoriadny význam pri vyjadrení objektov reálneho sveta a vzťahov medzi nimi pomocou konceptuálnej schémy. Preto mnoho nástrojov pre návrh databáz vychádza z pojmov z E-R modelu.
     

    Základné pojmy - Entity



    Entita (entity) je vec alebo objekt reálneho sveta odlíšiteľný od iných objektov (napr. osoba, konto v banke, kniha).

    Každá entita je charakterizovaná istými vlastnosťami (atribútmi), niektoré podmnožiny týchto vlastností môžu entitu jednoznačne určovať (napríklad rodné číslo určuje osobu).

    Skupinou entít (entity set) nazývame množinu entít rovnakého druhu, teda entít charakterizovaných rovnakými atribútmi (napríklad všetci zákazníci danej banky, stromy, pôžičky).

    Skupiny entít nemusia byť nutne disjunktné.
     

    Základné pojmy - Atribúty



    Každá entita je reprezentovaná množinou svojich atribútov. Entity patriace do jednej skupiny majú rovnaké atribúty, líšia sa však ich hodnotami.

    Príklad:

    customer = (customer-name, social-security, customer-street, customer-city)
    account = (account-number, balance)

    Všetky dovolené hodnoty daného atribútu tvoria jeho doménu (domain).

    Keď entita nemá pre niektorý zo svojich atribútov hodnotu, používa sa namiesto nej hodnota null.
     

    Základné pojmy - Atribúty - pokračovanie



    Typy atribútov:  Základné pojmy - Vzťahy (relationships) 

    Vzťahy sú súvislosti medzi viacerými entitami. Príkladom vzťahu medzi entitami zákazník Hayes a pôžička L-15 môže byť: zákazník Hayes má pôžičku L-15.

    Skupinou vzťahov (relationship set) medzi dvomi skupinami entít nazývame množinu vzťahov rovnakého typu. Príkladom takejto skupiny vzťahov môžu byť vzťahy medzi skupinou entít zákazník a skupinou entít pôžička označené slovným spojením má pôžičku.

    Ak medzi skupinami entít E1, E2, ... , En je skupina vzťahov R, hovoríme, že skupiny entít E1, E2, ... , En participujú na skupine vzťahov R.

    Funkcia, ktorú hrá entita vo vzťahu, sa nazýva jej rolou. Roly entít hrajú úlohu najmä vtedy, keď skupina entít participuje v danom vzťahu viackrát, v rôznych rolách (recursive relantionship). Napríklad: skupina vzťahov pracuje pre je príkladom skupiny vzťahov medzi usporiadanými dvojicami skupín entít zamestnanci. Prvá entita z dvojice má rolu managera a druhá rolu robotníka.
     

    Základné pojmy – Vzťahy - pokračovanie 



    Vzťah môže mať popisné atribúty (descriptive attributes). K skupine vzťahov vkladateľ medzi skupinou entít zákazník a účet môžeme napríklad priradiť atribút čas prístupu špecifikujúci čas, kedy zákazník naposledy pristupoval k účtu.

    Počet skupín entít participujúcich na danej skupine vzťahov sa nazýva stupňom (degree) skupiny vzťahov. Skupiny vzťahov stupňa 2 sa nazývajú binárne.

     
    Problémy pri návrhu – Entity vs. atribúty 



    Entity a vzťahy medzi nimi sa dajú definovať viacerými spôsobmi. Napríklad: u entity zamestnanec môže byť jeho telefónne číslo jedným z jeho atribútov. Možno však vytvoriť aj zvláštu entitu telefón, s atribútmi telefónne číslo a umiestnenie telefónu a skupinu vzťahov medzi zamestnancami a telefónmi označenú ako zamestnanec má telefón.

    Rozdiel medzi uvedenými prístupmi: prvá definícia implikuje, že zamestnanec má práve jeden telefón, druhá popisuje obecnejšiu situáciu.

    Uvedená konštrukcia nie je vhodná pre atribút meno zamestnanca, meno zamestnanca nemá zmysel chápať ako samostatnú entitu.

    Otázka: Ktoré prvky by mali byť považované za entity a ktoré za atribúty ? Jednoduchá odpoveď na ňu neexistuje.

     
    Problémy pri návrhu – Entity vs. vzťahy 



    Nie je vždy jasné, či je daný objekt vhodnejšie vyjadriť ako skupinu entít alebo ako skupinu vzťahov. Napríklad pôžičkaže byť vyjadrená aj ako skupina entít, ale tiež aj ako skupina vzťahov medzi zákazníkom a pobočkou, pričom číslo pôžičky a veľkosť môžu byť popisné atribúty.

    Druhý prístup je nevhodný v prípade, že viacero zákazníkov môže zdieľať tú istú pôžičku.

    Nebinárne skupiny vzťahov možno vždy nahradiť niekoľkými binárnymi skupinami. Konceptuálne si môžeme predstaviť, že v E-R modeli sú len binárne vzťahy.
     

    Kardinalita (Mapping cardinalities) 



    Kardinalita (skupiny vzťahov) vyjadruje počet entít, ktoré môžu byť v danom vzťahu s inou entitou. Používa sa najmä u binárnych vzťahov. 

    Kardinalita skupiny vzťahov R medzi skupinami entít A a B môže nadobúdať jednu z nasledujúcich hodnôt:

    Existenčné závislosti (Existence dependencies) 



    Ak existencia entity x závisí od existencie entity y, tak x sa nazýva existenčne závislá na y. Znamená to, že ak sa zruší y, zruší sa aj x. Entita y sa v tomto prípade nazýva dominantnou a entita x podriadenou.

    Príklad: u entít pôžička a splátka je pôžička dominantnou entitou a splátka podriadenou.

    Participácia skupiny entít E v skupine vzťahov R sa nazýva totálna (total), ak každá entita z E participuje aspoň v jednom vzťahu z R. Ak iba niektoré entity z E participujú vo vzťahoch z R, participácia E v R sa nazýva parciálna (partial).

    Príklad: participácia skupiny entít splátka v skupine vzťahov splátka – pôžička je totálna. Participácia skupiny entít zákazník v skupine vzťahov zákazník – pôžička je parciálna, lebo nie každý zákazník banky musí mať od nej pôžičku.

     
    Kľúče (Keys) 



    Je dôležité vedieť, čím sa líšia jednotlivé entity v skupine entít a jednotlivé vzťahy v skupine vzťahov.

    Rozdiely medzi entitami musia byť vyjadrené pomocou ich atribútov. Na toto rozlišovanie sa používa pojem kľúča.

    Pre skupiny entít:

    To, že niektorý atribút resp. skupina atribútov je kľúčom, je vlastnosťou danej skupiny entít.

    Primárne kľúče sa definujú aj pre skupiny vzťahov.

     
    Entitno-relačné diagramy 



    E-R diagramy sú vhodné pre grafické vyjadrenie logickej štruktúry databázy. Hlavné komponenty tvoriace E-R diagramy sú: Atribúty, ktoré tvoria primárny kľúč, sú podčiarknuté.

    Pre vyznačenie kardinality sa používajú šípky.
     

    Slabé skupiny entít (weak entity sets) 



    Ak skupina entít nemá atribúty pre vytvorenie primárneho kľúča, nazýva sa slabou skupinou entít. Ak má atribúty tvoriace primárny kľúč, nazýva sa silnou skupinou entít.

    Príkladom slabej skupiny entít je splátka tvorená atribútmi číslo splátky, dátum splátky a veľkosť splátky. Splátky pre rôzne pôžičky môžu mať totiž rovnaké čísla.

    Aby mala slabá skupina entít zmysel, musí byť vo vzťahu so silnou skupinou entít s kardinalitou jedna ku mnoho (jedna na strane silnej skupiny). Medzi entitami slabej skupiny a silnej skupiny platí pritom vzťah závislosti. Entity silnej skupiny sú dominantné a slabej skupiny podriadané.

    Množina atribútov slabej skupiny entít, ktorá umožňuje rozlíšiť medzi entitami závislými od jednej entity zo silnej skupiny entít sa nazýva diskriminátorom (discriminator) slabej skupiny entít. Tento diskriminátor sa zvykne nazývať aj parciálnym kľúčom (partial key). Príklad diskriminátora: číslo pôžičky v skupine entít splátka.

     
    Slabé skupiny entít – pokračovanie 



    Primárny kľúč slabej skupiny entít je tvorený primárnym kľúčom silnej skupiny entít, na ktorej je slabá skupina entít existenčne závislá a diskriminátorom slabej skupiny entít.

    O dominantnej skupine entít hovoríme, že vlastní odpovedajúcu slabú skupinu entít. Vzťah, ktorý spája slabú skupinu entít s jej vlastníkom sa volá identifikujúci vzťah (identifying relationship).

    Slabá skupina entít sa v E-R diagramoch vyznačuje obdĺžnikom s dvojitým obrysom a odpovedajúci identifikujúci vzťah kosoštvorcom s dvojitým obrysom. Totálna participácia sa vyznačuje dvojitou čiarou. Diskriminátor je počiarknutý čiarkovane.

     
    Redukcia E-R modelu do tabuliek 



    Databáza, ktorá odpovedá E-R modelu, sa dá reprezentovať ako skupina tabuliek. Pre každú skupinu entít a pre každú skupinu vzťahov existuje tabuľka, ktorej meno je zhodné s menom odpovedajúcej skupiny entít resp. vzťahov.

    Tabuľková reprezentácia silnej skupiny entít s atribútmi a1, a2, ... , an je tvorená tabuľkou s n stĺcami odpovedajúcimi jednotlivým atribútom. Každý riadok tabuľky odpovedá jednej entite.

    Pre tabuľkovú reprezentáciu slabej skupiny entít A s atribútmi a1, a2, ... , am sa využíva aj primárny kľúč b1, b2, ... , bn silnej skupiny entít B, od ktorej je skupina A závislá. Tabuľka má pritom stĺpce a1, a2, ... , am, b1, b2, ... , bn.

    Nech R je skupina vzťahov a a1, a2, ... , am je skupina atribútov vytvorená zjednotením primárnych kľúčov oboch skupín entít participujúcich v R. Nech R ma popisné atribúty b1, b2, ... , bn. Potom tabuľková reprezentácia R má stĺpce a1, a2, ... , am, b1, b2, ... , bn.