torek, 2. november 2010

Preprosti programi

Kako diagrame poteka zapisati v Javi?

OGRODJE JAVANSKEGA PROGRAMA
Vanj vgradimo stavke/ukaze programa. Vsak javanski program sprogramiramo kot razred. V tem razredu moramo imeti metodo main. Ta se zažene avtomatično, ko sprožimo izvajanje programa.

Primer:
public class { // glava razreda

     public static void main (String[] args) {  // glava metode main
            .
           .
           . //stavki programa 
           .
          .
       }
}


Stavki predstavljajo telo metode main. {} označujejo začetek in konec metode main.
Blok stavkov / stavčni blok = stavki, ki se nahajajo med dvema zavitima oklepajema. Zaporedje realiziramo kot blok stavkov. Oklepaji nastopajo v parih. 
Naše ogrodje vsebuje 2 bloka. Zunanji predstavlja telo razreda, notranji pa telo metode main. 
V telesu imamo lahko več metod. Telo metode pa vsebuje več stavkov. 


Pravila za ime razreda: 
-prvi znak je lahko črka, podčrtaj, znak za dolar
-ostali znaki so lahko isti, dopustne so lahko tudi številke


Java je občutljiva na velikost črt. Strogo loči med velikimi in malimi. 
Leposlovna pravila:
-ime razreda se začne z veliko začetnico.
-kadar je sestavljeno iz več besed, se vsaka beseda začne z veliko začetnico.
-resledki med besedami niso dovoljeni. npr. (PrviProgram)


Enaka pravila veljajo za imena spremenljivk, metod in razredov.
Ime spremenljivke ali metode vedno pišemo z malo začetnico. Ime razreda vedno z veliko. Če je več besed v metodi, spremenljivki, prva z malo, ostale pa z veliko. (npr.   prvaMetoda) 
Zamikanje blokov: vsak naslednji vgnezden blok pišemo zamaknjeno nekoliko v desno. 
Uporaba zavitih oklepajev: Zaprti oklepaj je zamaknjen v desno za toliko kot prva vrstica bloka, ki mu pripada.


POSTOPEK PRIPRAVE IN IZVAJANJA PROGRAMA
1. Program napišemo in shranimo na datoteko. Ime datoteke mora imeti enako ime kot razred .java. 
2. Program prevedemo s pomočjo prevajalnika. Z ukazom javac .java
Rezultat prevajanja se shrani na datoteko z umesno kodo. Ime datoteke je jeako imenu razreda, spremeni pa se podaljšek .class
3. Program zaženemo z ukazom java


PRVI PROGRAM: 



public class Pozdrav{
public static void main(String[]args){
System.out.println("Pozdravljen svet!");
}
}










Osnovni programski konstrukti

Vsak program lahko zapišemo s tremi osnovnimi programskimi konstrukti:
-zaporedje ( nekih ukazov)
-izbira (omogoča 2 ali več različnih možnosti / več različnih zaporednih ukazov)
-ponavljanje

Grafični prikaz: diagram poteka (flow chart)  Danes se ne uporabljajo več kot sredstvo za prikaz poteka programov.

Primer:
Izračun prloščine trikotnika, če so podane vse tri stranice.

Pojmi:
-spremenljivka
-izraz
-prijejanje vrednosti

Spremenljivka=celica oz. lokacija v pomnilniku, ki hrani nek podatek.
Izraz= formula oz. računalniški predpis, s pomočjo katerega izračunamo neko vrednost.
Prirejene vrednosti = shranjevanje/zapis neke vrednosti v spremenljivko.

Izbiro realiziramo s kretnico v kateri zapišemo pogoj ( kot logični izraz).

OSNOVE PROGRAMIRANJA

Odločila sem se da na tem mestu objavim zapiske lanskega leta iz predavanj pri predmetu Osnove programiranja. (Nosilec: prof.Mahnič) vaje pa bodo letošnje.

Vabim k komentiranju!



Želim vam uspešno učenje Jave! :)

petek, 11. junij 2010

We are alike...

Vsem želim čimveč uspeha na izpitu in pri nadaljnjem študiju! 

torek, 25. maj 2010

25.05.2010_NOMINALIZACIJA



Postopek s katerim ugotavljamo če smo relacije pravilno oblikovali.
Če ja:
Ni redundance podatke
Ne bo prišlo do težav pri brisanju, vnašanju podatkov v bazo
4 stopnje normalizacije

n      Kaj si bomo pogledali?
n      Namen normalizacije.
n      Uporaba normalizacije pri načrtovanju relacijske podatkovne baze.
n      Problemi zaradi redundance podatkov v osnovnih relacijah.
n      Postopek normalizacije.
n      Osnovne normalne oblike:
n      I. normalna oblika,
n      II. Normalna oblika,
n      III. Normalna oblika
n      IV. Poslovna normalna oblika


Primeri težav/anomalij : glej prosojnice!


  • Relacije, ki vsebujejo odvečne podatke lahko povzročajo anomalije pri spreminjanju podatkov à govorimo o ažurnih anomalijah.
  • Poznamo več vrst anomalij:
–        Anomalije pri dodajanju n-teric v relacijo
–        Anomalije pri brisanju n-teric iz relacije
–        Anomalije pri spreminjanju n-teric

Anomalije pri dodjanju:
–        Če želimo dodati podatke o novih članih (staff) za neko organizacijsko enoto (branch) moramo vpisati tudi vse podrobnosti o organizacijski enoti.
–        Če želimo dodati podatke o novi organizacijski enoti, ki še nima nobenega člana, moramo v vsa polja , ki člane opisujejo, vpisati Null.


–        Če iz relacije zbrišemo n-terico, ki predstavlja zadnjega člana v neki organizacijski enoti, zgubimo tudi podatke o tej organizacijski enoti.


–        Če želimo spremeniti vrednost nekega atributa določene organizacijske enote (npr. naslov), moramo popraviti vse
n-terice, v katerih takšna vrednost atributa nastopa.






Kako preprečimo anomalije?
Z normalizacijo.

  • Postopku preoblikovanja relacij v obliko, pri kateri do ažurnih anomalij ne more priti, pravimo normalizacija.
  • Obstaja več stopenj normalnih oblik. Obravnavali bomo:
–        1NO – Prva normalna oblika
–        2NO – Druga normalna oblika
–        3NO – Tretja normalna oblika in
–        4PNO – Četrta poslovna normalna oblika



  1. normalna oblika (1NO):
-zahtevamo da ni ponovljajočih skupin atributov
-določimo funkcionalne odvisnosti
- da je definiran ključ
Postopek:
  • Koraki:
–        Odstranimo ponavljajoče atribute
–        Določimo funkcionalne odvisnosti
–        Določimo primarni ključ


Primer:




F==množica vseh funkcionalnih odvisnosti
Ključ je množica atributov, ki določa vse ostale atribute. (vpisna št + šifra predmeta)

  1. normalna oblika (2NO)
- relacija mora biti v 1NO
- ne sme vsebovati parcialnih odvisnosti
(noben atribut, ki ni del ključa, ni funkcionalno odvisen le od dela primarnega ključa, temveč od celotnega ključa)


Relacija je avtomatsko v drugi normalni obliki, če:
– Je njen primarni ključ sestavljen le iz enega atributa,
– Je njen primarni ključ sestavljen iz vseh atributov relacije ali
– Je njen primarni ključ sestavljen iz vseh razen enega atributa relacije




  1. normalna oblika (3NO)
-relacija mora biti v 2NO
- ne vsebuje transitivnih normalnih odvisnosti
Uporabimo lahko dekompozicijo.

Relacija je v tretji normalni obliki:
– Če je v drugi normalni obliki in
– Če ne vsebuje tranzitivnih funkcionalnih odvisnosti 􀃆 med
atributi, ki niso del primarnega ključa, ni odvisnosti.
􀂃 Relacija je avtomatsko v tretji normalni obliki, če:
– Je njen ključ sestavljen iz vseh atributov relacije
– Je njen ključ sestavljen iz vseh razen enega atributa relacije




4 poslovna normalna oblika 4PNO
je v tretji normalni obliki
v relaciji ne obstajajo atributi, ki bi bili odvisni od vrednosti primarnega ključa





Uporaba Nenormaliziranih relacij...
Primer:

– Rezultat (športnik, tekmovanje, čas prvega teka, čas
drugega teka, čas skupaj)
– Relacija ni v tretji normalni formi.
– Čas skupaj je izpeljan atribut 􀃆 ni odvisen od ključa, temveč
je seštevek časov obeh tekov.
– Skupen čas računamo ob vpisu v bazo, zato izboljšamo
učinkovitost pri nadaljnji obdelavi podatkov.

FIZIČNO MODELIRANJE
  • Načrtovanje fizične PB je korak, ki sledi logičnemu načrtovanju.
  • Logični načrt opredeljuje “kaj”, fizični načrt pa “kako”.
  • Vhod v načrtovanje fizične PB so:
–         Logični podatkovni model,
–         Relacijska shema
–         dokumentacija


Metoda logičnega načrtovanja...
  • Možni koraki: Možni koraki konceptualnega načrtovanja:
–         K1.1: Identificiraj entitetne tipe
–         K1.2: Identificiraj povezave
–         K1.3: Identificiraj in z entitetnimi tipi poveži atribute
–         K1.4: Atributom določi domene
–         K1.5: Določi kandidate za ključe; izmed kandidatov izberi
                  primarni ključ
–         K1.6: Po potrebi uporabi elemente razširjenega diagrama
                  entiteta – razmerje
–         K1.7: Preveri, če v modelu obstajajo odvečni elementi
–         K1.8: Preveri, če model “zdrži” transkacije
–         K1.9: Preveri model z uporabnikom

  • Možni koraki logičnega načrtovanja:
–         K2.1: Za entitetne tipe kreiraj relacije
–         K2.2: Preveri relacije z normalizacijo
–         K2.3: Preveri relacije s pregledom uporabniških transakcij
–         K2.4: Preveri omejitve integritete
–         K2.5: Preveri model z uporabnikom
–         K2.6: Združi lokalne modele v globalni model (opcijsko)
–         K2.7: Preveri zmožnosti modela za razširitve



Ročna pretvorba: močni + šibki entitetni tipi


Povezave:    1 : *   + 1 : 1
Če je obveznost na obeh straneh 1:1 povezave potem lahko združimo.

Povezava, ki ni obvezna na obeh straneh. Obvezno entiteto vzamemo kot osnovo in njen ključ prenesemo še v drugo smer.

Rekurzivne povezave: problematične, rezultat prenašanja ključev je lahko nerazumljiv.
Definiramo še en ID. Genaerator kar podvoji oznako (t.j. ključ) zato ga ponavadi preimenujemo.

Povezave med nadtipi in podtipi:
      • Identificiraj nadtipe kot očete ter podtipe kot otroke. Obstajajo različne možnosti, kako takšne povezave predstaviti z relacijami.
      • Izbira najbolj ustrezne opcije je odvisna od številnih faktorjev: izključevanje, obveznost povezav, število entitet v povezavi....




Povezave * : *
Potrebujemo vmesno relacijo.


Več-vrednostni atributi:
Za njih moramo kreirati novo relacijo. (Npr. Telefon je GSM, stac... Se omejimo. Poznamo končno število.)
Če ne vemo koliko je končnih vrednosti  naredimo namesto atributa nov entitetni tip.


Pravila združevanja lokalnih modelov:
  • Namen tega koraka je združiti vse lokalne modele v en globalni model, ki predstavlja vse uporabniške vidike podatkovne baze.
  • Čeprav so lokalni modeli preverjeni, lahko pri njihovem združevanju pride do prekrivanja in neskladnosti.
  • Globalni model preverim podobno kot smo preverjali lokalne modele.
  • Če pri načrtovanju nismo zajeli več uporabniških vidikov, lahko korak preskočimo.
    • Preveri imena in vsebino relacij ter njihove kandidate za ključ.
    • Preveri imena in vsebino povezav in tujih ključev.
    • Združi relacije z lokalnih podatkovnih modelov
    • Brez združevanja vključi relacije, ki so unikatne v posameznih podatkovnih modelih.
    • Združi povezave in tuje ključe z lokalnih podatkovnih modelov. Brez združevanja vključi povezave in tuje ključe, ki so unikatni v posameznih podatkovnih modelih.
    • Preveri, če morda manjkajo relacije, povezave in tuji ključi.
    • Preveri tuje ključe.
    • Preveri pravila za zagotavljanje celovitosti podatkov.
    • Nariši globalni podatkovni model.
    • Ažuriraj dokumentacijo.








Metoda načrtovanja fizične PB....
Do sedaj smo imeli le modele od tu naprej pa kreiramo fizično bazo
Odločamo o tem:
-kakšne so osnovne relacije
-datotečna organizacija
- kako bomo imeli indekse definirane ...

2. koraka:
k3 + k4
K3:Pretvorimo fizični model v jezik ciljnega SUPBja
K4: Izdelamo načrt datotečne organizacije in indeksov
Podrobnosti: glej ppt!!!

Osnovni vir za kreiranje podatkov je katalog. J
-podatkovni slovar: podatki glej ppt!!!

Predstavitev izpeljanih atributov:
Določiti moramo ali je shranjen v fizični bazi ali ne. Da se jih izračunat. Kaj je večji časovni strošek?
Primer hranjenja izpeljanega atributa
......
Načrt splošnih omejitev....Jih definiramo kot je pač mogoče.
Datotečna organizacija in indeksi ...
Namen je izbrati optimalno datotečno organizacijo.
Analiza transakcij: previrjamo katere so transakcije ki vplivajo na učinkovitost....Pregledamo zgolj najpomembnejše. Naredimo matriko transakcija/relacija in nato diagram transakcij.
Izbira datotečne organizacije....kopica, hash tabela, kakšni bodo indeksi...
Izbira indeksov... à smernice za uporabo sek. Indeksov
Ocena velikosti PB....
Načrt varnostnih mehanizmov: sistemska + podatkovna varnost ....
Uvedba nadzorovane redundance...
Nekaj pravil denormalizacije...
  • Koraki denormalizacije:
–         K7.1 – združevanje 1:1 povezav
–         K7.2 – Podvajanje neosnovnih atributov v povezavah 1:* za zmanjšanje potrebnih stikov.
–         K7.3 – Podvajanje tujih ključev v 1:* povezavah za zmanjšanje potrebnih stikov.
–         K7.4 – Podvajanje atributov v *:* povezavah za zmanjšanje potrebnih stikov.
–         K7.5 – Uvedba ponavljajočih skupin atributov
–         K7.6 – Kreiranje tabel, ki predstavljajo izvleček osnovne tabele.
–         K7.7 – Razbitje relacij.

»Lookup Tabele« - so najmanjši šifranti imajo zgolj ime in ID.
LookUp tabele se sestoje zgolj iz šifre in naziva. Prednosti
uporabe LookUp tabel so mnoge. Vseeno obstajajo primeri,
ko je smiselno (LookUp tabele ukiniti in) podatke podvajati
v osnovnih relacijah. Taki primeri so:
•         Ko se do LookUp tabele frekventno dostopa
•         Ko so LookUp tabele uporabljene v kritičnih poizvedbah
•         Ko je majhna verjetnost, da se bodo po vrednosti spreminjale

Uporaba izvlečkov....Za poizvedbe ki zahtevajo dostop do več relacij in povezave med njimi zahtevamo da dostopajo do njih bolj hitro.
Razbitje relacij...Relacije ki so zelo velike lahko razbijemo na particije. 2 načina: horizontalni + vertikalni.
Povečevanje učinkovitosti na račun paralerizma.
Prednosti razbitja relacij na particije:
–         Boljša porazdelitev vnosa (load balancing)
–         Večja učinkovitosti (manj podatkov za obdelavo, paralelnost izvajanja,...)
–         Boljša razpoložljivost
–         Boljša obnovljivost
–         Več možnosti za zagotavljanje varnosti


Slabosti razbitja relacije na particije
  • Particioniranje ima tudi slabosti:
–         Kompleksnost (particije niso vedno transparentne za uporabnike...)
–         Slabša učinkovitost (pri poizvedbah, kjer je potrebno poizvedovati po več particijah, je učinkovitost slabša)
–         Podvajanje podatkov (pri vertikalnem particioniranju)

Vpeljujemo v kontroliranem načinu