Predstavte si situáciu, že je nutné vybudovať Informačný
systém pre fakultu riadenia a informatiky. Predtým, než sa pustíme do
programovania, je nutné zamyslieť sa nad tým, aké požiadavky budeme klásť na
náš IS. Nakoľko sa tu bavíme o PHP, jej jasné že IS naprogramujeme asi v ňom
/okrem iného/. Takže, čo by mohlo tvoriť základ IS fakulty? Predpokladajme, že budeme
tvoriť WWW stránky našej fakulty, ktoré by mali reprezentovať školu na
Internete. Súčasťou WWW stránok by mohla byť akási výveska pre študentov, s
aktuálnymi informáciami, ďalej by sa možno zišiel rozvrh hodín, adresár
pracovníkov fakulty /prípadne študentov/. Základ IS bude tvoriť databáza
študentov, predmetov, učiteľov, aby si mohli študenti "zapisovať"
predmety aj formou WWW. V tejto fáze nebudeme mať na IS nejaké špecifické
požiadavky /zvýšená bezpečnosť, tvorba klientov pre pracovníčky študijného
oddelenia atď./. Ako databázu použijeme MySQL a WWW server APACHE, všetko
POWERED by ZEND/PHP4.
Celý projekt rozčleníme do viacerých etáp, ktoré budeme
postupne uzatvárať, prípadne rozširovať.
ETAPA1 - ISF - Študenti, učitelia, predmety, zapísané
predmety
1.1 Táto časť IS umožní zápis a výmaz študentov
/vrátane ich údajov/, učiteľov a predmetov administrátorom (alebo iným
zodpovedným pracovníkom). Študenti po zadaní svojho mena, priezviska a osobného
čísla (ktoré má každý v indexe) si budú môcť zapisovať predmety až do
vyčerpania ich kapacity (tú zadáva administrátor). Zapisovanie sa bude diať
systémom kto prv príde, ten prv melie.../FIFO/
1.2 Rozšírime IS o rozvrhovú časť, aj keď maximálne zjednodušenú.
Predpokladajme, že každý predmet má 1 prednášku a cvičenie. Študent po zadaní
potrebných údajov uvidí "svoj" rozvrh.
ETAPA2 - ISF - Adresár fakulty, vyhľadávanie
2.1 Vybudujeme engine pre zadávanie a vyhľadávanie údajov
o študentoch a pracovníkoch fakulty /email, telefón,WWW stránky/
ETAPA3 - ISF - WWW nástenka
3.1 Bude uverejňovať novinky zo života fakulty.
Takže pomaly začnime. Najprv sa potrápime s návrhom
dátového modelu databázy, ktorú budeme používať
Pri tvorbe dátového modelu je nutné dobre si premysliť
význam a vsťah objektov reálneho sveta, ich vlastností a všetky takto
získané údaje preniesť do konceptuálneho dátového modelu.
V prvej etape ISF (informačný systém fakulty) sa
stretneme s nasledujúcimi objektmi: Objekt ŠTUDENT,PREDMET a UCITEL.
Tieto objekty majú veľký počet vlastností, ale množstvo z nich je pre nás
alebo pre ISF nepodstatných. Ako príklad uvediem počet rokov študenta,
informáciu či má sestru a pod. Dátový model zahŕňa len informácie
nevyhnutné a potrebné.
Pre našu aplikáciu vytvoríme teda spoločne 3 základné entity
s nasledujúcimi atribútmi alebo vlastnosťami:
ŠTUDENT túto entitu
tvoria atribúty oc (osobné číslo – unikátne číslo pridelené ISF), rodné číslo, meno, priezvisko a poštové smerovacie
číslo obce kde býva.
PREDMET má atribúty cp (číslo predmetu), slovný názov
predmetu a počet kreditov, ktoré za predmet dostaneme.
UČITEL má podobné atribúty ako študent, len
atribút oc je nahradený atribútom cu, ktorý znamená číslo učiteľa.
V ďalšej fáze návrhu je dôležité vyjasniť si vsťahy
jednotlivých entít a typy použité pre dané atribúty. Podrovnejšie
informácie hľadajte v literatúre týkajúcej sa databáz. Začnime určením
typov jednotlivých entít.

Popis entity STUDENT: kandidáti na primárny kľúč KPK(oc,rc),
primárny kľúč PK(oc), NULL atribúty (nepovinné) - žiadne, atribút typu UNIQUE –
musía byť KPK - (oc,rc).
Primárny kľúč (označený znakom #) je typu
INTEGER s dĺžkou 11, všetko ostatné sú reťazce s premenlivou dĺžkou
(VARCHAR) alebo pevnou dĺžkou (CHAR). Pre správne určenie typov je vhodné
nakresliť si zopár záznamov tabuľky na papier a určiť typ z nej.
Podobným systémom si určite typy ďalších entít a určite
KPK a PK. Svoje riešenie overte s našim v skripte importu
dátového modelu a diskutujte o chybách či prednostiach Vášho
riešenia.
Po určení všetkých
typov nasleduje určenie typov vsťahov. Vsťah medzi entitami STUDENT a PREDMET
sa dá vyjadriť slovesom ZAPISANY. Ide o vsťah M:N, nakoľko jeden študent
si môže zapísať viac predmetov a na jeden predmet chodí viac študentov. Vo
vsťahu ide o nepovinné vsťahy, označené prerušovanou čiarou, nakoľko
študent nemusí mať zapísaný ani jeden predmet...
V ERA modeli (Entity Relationship Model) je takýto
vsťah nutné dekomponovať na dva
vsťahy 0:M a N:0 čo je spojené so
vznikom “umelej”
entity ZAPISANY. Vsťah STUDENT predmet potom vyzerá nasledovne:
Vsťah
0:M je znázornený prerušovanou čiarou pri nepovinnom
člene a metlou pri viacnásobom člene. V šípke je názov atribútu ktorý
prechádza do druhej tabuľky a tvorí vnej tzv. „cudzí“ kľúč alebo FOREIGN
KEY FK. V entite ZAPISANY je primárny kľúč tzv. kompozitný primárny kľúč,
pretože ho tvorí viac zložiek. Vysvetlime si prečo:
Dvojica oc a cp zabezpečí že jeden študent si jeden
predmet môže zapísať len raz a jediný raz CPK(oc,cp). To je
však v rozpore s realitou, pretože študent môže predmet opakovať,
spravidla až ďalší rok. Preto do kompozitného primárneho kľúča zahrnieme aj
rok. Z hľadiska typov je vec jasná, atribút rok typu INTEGER však môže byť
aj nezadaný (NULL) Tabuľka ZAPISANY bude potom vyzerať možno takto:

Úloha: 1. Samostatne porozmýšlajte nad
vsťahom entít UČITEL a PREDMET a skúste ich namodelovať. Určite typ
vťahu a jeho kardinalitu. Určte
PK,KPK,CPK, atribúty typu NULL, UNIQUE, a typy atribútov.
2.
Naučte sa používať phpMyAdmin.