TechNET: Developer · Mobilmánia · Wapko * EASY www.dobijanie.sk *
MAJACIK HLAVNY IMAGE STRANKY
30. Januára 2003, Štvrtok 
Lekcia 7 - INF.SYSTÉM FAKULTY I
 
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

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:

Text Box: STUDENT
# oc
   rc
   meno
   priezvisko
   ulica
   psc
   
Text Box: PREDMET
# cp
   nazov
   kredit
Text Box: UCITEL
# cu
   rc
   meno
   priezvisko
   ulica
   psc
 

 

 

 

 

 

 

 

 

 


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

 

 








N Á V R A T

Copyright 2003 MGX


 
Dnes má meniny
Ema
nic.sk - domeny + hosting
PHP Club

Klub
 Registrácia
 Informácie
Special
 XML I diel
 
XML II diel
 
XML III diel
 
XML IV diel
 
XML V diel
 
XML VI diel
 
XML VII diel
 
XML VIII diel
 
XML IX diel
 
Anketa č. 21
Považujem sa za...
(Odpovedalo už 1579 ľudí)

PHP guru (157)
 10%
Perfektného programátora v PHP( 117)
 7%
Strednú triedu (373)
 24%
Začiatočníka (743)
 47%
Čo je PHP ? (189)
 12%

Klikni na zvolenú odpoveď!
Výsledky minulých ankiet.
 
Diskusia

PRÍSPEVKY
 Podľa tém
 Podľa dáta
 Podľa klikov
 Iba dnešné

UTILITY
 Registrácia
 Zmena hesla
 Zmena profilu

Dobré linky:
PC News
Developer
  (c) 2003 www.php.sk