Informatika | Adatbázisok » Clipper előadásjegyzet

Alapadatok

Év, oldalszám:2000, 13 oldal

Nyelv:magyar

Letöltések száma:131

Feltöltve:2008. szeptember 24.

Méret:184 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

Adatbázis-kezelés -1- 2000-szept.-11 Clipper előadásjegyzet Ajánlott irodalmak: • Endrődy Tamás: Korszerű programozás Clipper 5.01 él CL-clipperben • Mircrosoft Access könyvek • Halasi Béla: Adatbázis-kezelés, adatbázis-modellezés Adatbázis: valamilyen szempont szerint összefüggő adatfájlok együttese. Adatfájl: valamilyen szempont szerint összefüggő adatok együttese. Az adatfájl rekordokból épül fel. A rekord: egy egyed tulajdonságait tartalmazza. Egyed: személy, tárgy, esemény, jelenség A rekord mezőkből épül fel. Mező: egy adott tulajdonság, a fájl legkisebb része, amire nevével tudunk hivatkozni. Adatbázis tervezés: kulcsmező dkod név Sz.a 010 Xy 020 Zv 1980 1979 dkod dat óra 020 050 01.02 6 8 01.03 kapcsolómező Kulcsmező: egyértelműen azonosítja egy fájl rekordjait. Adatbáziskezelés lépései: - a felhasználó számára lényeges

adatokat meg kell határozni (helyzetfelmérés) - különböző adatok közötti kapcsolatok meghatározása - valamennyi lényeges adatot azonosítani kell - kulcsmezők meghatározása - egy egyed többi tulajdonságának meghatározása Kapcsolati arány: 1:n pl.: 1 dolgozó; több munkahely n:1 pl.: több dolgozó; 1 munkahely n:n pl.: több dolgozó; több munkahely Adatbáziskezelővel szembeni követelmények: - a különböző igények hatékony kielégítése; a kívánt adat elég gyorsan a rendelkezésre álljon. Az adatok redundancia-mentes rendezése A kiválasztás és csoportosítás - a kiválasztás lehetséges legyen különböző szempontok szerint - adatfüggetlenség:  fizikai: az adatbázis logikai szerkezete legyen független az adatok fizikai, tárolási és elérési módjától. Adatbázis-kezelés -2- 2000-szept.-11 logikai: az adatbázis szerkezetében létrehozott változások ne befolyásolják jelentősen az adatbázist használó többi

programot. További követelmények: I. adatleíró nyelv: az adatbázis logikai szerkezetét írja le.  Mezőjellemzők megadása:  Milyen típusú legyen (karakteres, numerikus, dátum, logikai); előnye, hogy már minimális ellenőrzés végezhető (adatbeviteli hibák kiszűrése)  Mező neve; ezzel hivatkozhatunk rá.  Mező mérete; a logikai adatfüggetlenség megvalósításában segít. A méret magadásából az adatbázis-kezelő ki tudja számolni, hogy egy adott mező hol kezdődik  Megadható még:  Értékszabály a beviendő értékre vonatkozóan.(pl: egy mező értéke >50, vagy egy diák adatait lakhely szerint 4 betűvel jelölve az egyes megfelelő mezők csak a 4 betű valamelyikét tartalmazhatják).  Is not Null  Referenciális integritás biztosítása: (integritás = adatbázis épsége) hivatkozási épség: nem vehetek fel olyan adatot, amelyek az alaptörzsbe nincs rögzítve.  Kulcsmező vagy idegen mező legyen-e 

Alapértelmezett érték is megadható II. Adatkezelő nyelv:  Meg kell valósítani azokat a műveleteket, amelyek az adatleíró nyelv megkövetel.  Alapvető adat-karbantartási műveletek:  Adatbevitel  Módosítás  Törlés  Megjelenítés képernyőn és nyomtatón  Lekérdezések, rendszerezés  Követelmény:  Adatbiztonság megvalósítása  Mentések biztosítása  Illetéktelen hozzáférés elleni védelem (jogok szabályozása a rendszeradminisztrátor feladata) Adatbázis-kezelők megvalósítása 4 szinten: A. Beépülő: (host language system) pl: Oracel; adott nyelven programozható, de meghívható belőle más nyelvbeli utasítások. Egy előfordítóval lefordítjuk az adatbázist arra a nyelvre, amelybe szeretnénk dolgozni. B. Önálló nyelvű (selfcontained system) az adatbázis-kezelő tartalmazza mindazon utasításokat, amelyeket használni akarunk (dbase, clipper, foxpro) C. Magas-szintű nyelvek D. Assembly  Tárigény:

Végrehajtási idő: Programozási idő BACD BACD DCAB Adatbázis-kezelés -3- Hierarchikus adatbázis-kezelő: Hálós típusú adatbázis-kezelő: 2000-szept.-11 1 : n arányt valósít meg; a kereszthivatkozások nem lehetségesek; fastruktúrájú, 1 bejáratú n :m arányt valósít meg. Kapcsolórekordok DBMS, IDS11) Relációs típusú adatbázis-kezelő: Sor, record bejegyzés. Oszlop, mező tartomány A logikai szerkezet és a tárolás nem egyértelműen független. A logikai kapcsolatok változtatása a tárolás újraszervezését igényli. Nagy számítógépeken használják. (IDMS, Követelmény:  Nem tartalmazhat két azonos sort, legalább egy értékben különböznie kelll. Ez a mező a kulcs.  A sorok sorrendje lényegtelen.  Az oszlopokra a nevükkel hivatkozhatunk; egy reláción belül nem lehet két tulajdonságnak azonos neve.  Oszlopok sorrendje lényegtelen, de az egyes sorokban a tulajdonságok azonos sorrendben szerepeljenek.  A

táblázatokra a nevükkel hivatkozhatunk. A relációs adatbázis véges számú tartományokon meghatározott időfüggő relációk véges halmaza. (adott oszlop tartalma időnként változik) Clipper A Clipper egy komplett rendszer, mely tartalmazza mindazt az eszközt, ami az alkalmazói programok fejlesztéséhez szükséges. A lefordított, összefűzött, hibamentes Clipper programok *.exe fájlként futtathatók Előnyei:  Az értelmezőnél gyorsabb végrehajtás,  A forráskód kiterjesztett védelme,  Nem szükséges az értelmező program jelenléte futás közben,  Dbase utasítások alkalmazhatók. Hátránya: a program nyomkövetése nehézkesebb. Adatbázis-kezelés -4- 2000-szept.-11 ~1985-ben a Nantucket cég dolgozta ki a Clippert 1987-ben megjelent a Summer’87 nevű változat ~1991-ben megjelent a Clipper 5.0 és a 501 a CA cégtől (Computer Assiositation) 1993-ban megjelent a Clipper 5.2, amibe rengeteg függvényt vezettek be; még nem

teljesen objektumorientált; a C-nyelvhez hasonló nyelvezetű. Szükséges konfiguráció:  PC XT, AT, 1FDD, 1HDD, 384Kb memória, mono vagy színes monitor, esetleg nyomtató  Dos 3.1 hálózatban; egyébként Dos 20 is elég 1. A műszaki paraméterek jobbak , mint a Dbase-nél: • Mezők száma: 1024 • Memóriaváltozók száma: 2048 • Mező méretek: ch 32k (ASCII karaktereket tartalmazhat) N 19 byte (+,-,$,E,09) L 1 byte (.T,t,y,Y) / (F,f,n,N) D 8 byte alapértelmezésben mm/dd/yy set date ansi yy.mmdd set century on yyyymmdd Memo 10 byte-ot foglal a *.dbf-ban; ugyanolyan nevű *.dbt jön létre, melyben 1 mező 512 byte-onként nő 64Kb-ig. Mező név 10 byte hosszú betűvel kezdődő kell, hogy legyen. Memóriaváltozók: az adatok átmeneti tárolására használjuk ♦ Ch 64K a=”bcd” ♦ N 19 b x=12.3 ♦ D 8b d1=date() ; d2=ctod(„2000.0907”) ♦ L 1b z=.T Tömb: Declare tömb1[numerikus kifejezés] Pl.: declare szavak[3] A tömb elemszáma: 2048

(különböző típusúak lehetnek); Nyitva tartható fájlok száma: 255 összesen 15 index fájl (munkaterület) Operátorok:  Aritmetikai: + , - , * , / , ^  Relációs: < , > , <= , >= , = , <>, $  Logikai: .and , or , not  Karakteres: + , kompatenáció: Pl.: a=”abc” b=” de” a+b=”abc de” a-b=”abcde ” Parancsok általános alakja: Ige [<hatókör>] [<kifejezéslista>] [for<feltétel>] [while<feltétel>] Pl.: Use anyag Display next50 anev,ar,ar*1.25 for ar>5000 while ar<100000 Record 28 All Rest Adatbázis-kezelés -5- 2000-szept.-11 File kiterjesztések: .dbf – adatfile .dbt – adatbázis memo .ntx – index file (nyitva tartható max 15) Hálózatos rendszerben meg kell vizsgálni az indexfájl létezik-e (ha van, és valaki használja, akkor nem írhatom felül). A probléma legegyszerűbb elkerülése, hogy egy menüpontba rakom az index-készítést. .prg – program fálj .mem – memória

változó Az utasítások bővítményei bizonyos esetekben felcserélhetők. Ahol nem, ott a Clipper figyelmeztet. Az utasításciklusok egymásba ágyazhatók Parancsok, parancscsoportok, parancsosztályok: 1) (adat) fájlok létrahozása: • create <.dbf név> • index on <kulcsmező> to <.ntx név> • /modify command <.prg név> dbase-ben/ • copy to <fnév1> az aktuális, nyitott fájlról készít másolatot. Megadható hatókör, feltétel. dbf fájlról készíthető • copy file <fnév1> to <fnév2> nem nyitott, bármilyen típusú fájlról készít másolatot. • total on <mezőnév> to <fnév3> az adott mező szerint összesíti az azonos mezőhöz tartozó rekordokat. Adott mező szerint kell a fájlt rendezni • Sort to <fnév4> on <mezőnév> [/A] [/D] [,<mezőnév>] mezőnév szerint rendezett fájlt hoz létre. /A: növekvő; /D: csökkenő sorrendben Ez a fájl nem fog módosulni, ha az

eredetit módosítom. 2) Adat hozzáadás: • Append [blank] • /browse a Clipperben csak függvényként jelenik meg/ 3) Adatmódosítás: • Replace <mezőnév> with <kifejezés> [,<mezőnév2> with <kifejezés2>,]; [for<feltétel>] [<hatókör>] • @<sor><oszlop>[say<kifejezés>][get<kifejezés>] A get után kötelező a read! [read] Lehet több get után 1 read ! • delete [<hatókör>][for<feltétel>] logikai törlés (set deleted on/off) • recall • pack fizikai törlés • zap töröl mindent 4) Adatmegjelenítés nyomtatóra vagy képernyőre: set device to print/screen • @ • @ <sor1>,<oszlop1> [clear] to <sor2>,<oszlop2> [double] a sor1, osz1-tő a sor2, osz2-ig keretet rajzol, ha nincs clear, ha van, akkor töröl. • @ <sor1>,<oszlop1>,<sor2>,<oszlop2> box <karakterfüzér (9karakter)> • ?<kifejezés> (set print on/off) • list

• disp Adatbázis-kezelés -6- 2000-szept.-11 5) Recordmutató pozicionálása: • goto <n> • go top/buttom • locate [for<feltétel>] • seek <kifejezés> • skip <±kifejezés> 6) Adatbázis-kezelés: • use <fnév> [index<.ntx lista>] • use • close databases • select 1 1-es munkaterület use anyag index akod select2 use raktar index rakkod set relation to akod into A list akod, Aanev, mennyis,datum, Ame do while .noteof() select1 seek Bakod if found() select2 dispakod, Aanev, menny,datum, Ame skip endif enddo Adatbázis fájlok használata: • Select ezzel a paranccsal kapcsoljuk össze az egyes munkaterületeket • Reindex az indexállományok újraépítésére szolgál. Ha több a nyitott indexfájl, akkor az újak nyitásához az előzőkből be kell zárni. Ha hálózatból veszem az indexfájlokat akkor ezek elérése időigényes. Hálózati megnyitásnál: set index to <.ntx lista> • Copy • Rename •

Erase 7) Memóriaváltozó kezelése: • Értékadás: store <kifejezés> to <változólista> pl.: x=28 a=”abc” d=date() z=.F • Clear memory • Release • Save to <.mem név> mentés • Restore from <.mem név> visszaállítás • getread • sum <mezőlista> to <memváltozó lista> [for<feltétel>] [<hatókör>] Adatbázis-kezelés -7- 2000-szept.-11 • average <mezőlista> to <memváltozó lista> [for<feltétel>] [<hatókör>] • count to <memváltozó> [for<feltétel>] [<hatókör>] • wait [<prompt>][to<memváltozó>] 8) Programozás parancsai: • Elágazás kétfelé: ifendif if <feltétel> <parancsok> [else <parancsok>] endif • Ciklusszervezés: do whileenddo do while <feltétel> <parancsok> [loop] /vissza az elejére/ [exit] /kilép a ciklusból/ enddo • Fornext ciklus (hátultesztelős) for

<memváltozó>=<numerikus kifejezés> to <numerikus kifejezés2> [step<numerikus kifejezés3>] <parancsok> [exit] next pl.: hossz=len(tömb) for i=1 to hossz tömb[i]=i*2 next Elágazás többfelé: do caseendcase do case case <feltétel> <parancsok> [case <feltétel2> <parancsok> case <feltétel n > <parancsok>] [otherwise <parancsok>] endcase • public <változólista> • private <változólista> • local <változólista> helyi • static <változólista> • quit • (modify command <.prg név>) 9) Környezet beállítás: • clear • eject • Do <.prg név> pl: do anyag Procedure <proc név> <parancsok> return főprg alprg do case case v=1 set proc to alprg do adatbe close proc case v=2 Proc adatbe <parancsok> return Set procedure to <proc tnév> Return Adatbázis-kezelés • • • • • • • • • • -8- 2000-szept.-11

set date ansi set century on/off set confirm on/off set default to <drive> set path to <path> set color to <szinek> set device to print/sceen @ set print on/off (?) set index to <.ntx név> set relation Függvény-csoportok:  Szövegkezelő függvények: - Upper(<kifejezés>) nagybetűsre konvertál Lower(<kifejezés>) kisbetűsre konvertál Right() Left() kiemelő fg.-ek Substr(<karakteres kifejezés>, <n1>,<n2>) Replicate(<karakter>,<n>) Space(<n>) n hosszúságú üres részt lehet létrehozni Ltrim() Rtrim() rövidítést lehet ezközölni Alltrim()  Aritmetikai függvények: - Abs() Min() Max() Sqrt() Exp() Log() Mod() Round(<numerikus kifejezés>,<n>) ha: n+ tizedesekre; n0 egészre; n- tizesekre kerekít.  Dátumkezelő függvények: - Year() n Month() n Day() n Cdow() ch Cmonth() ch Dow() n hányadik nap van Date() Adatbázis-kezelés -9- 2000-szept.-11  Konverziós

függvények: - Str(<numerikus kifejezés>,<n1>,<n2>) nch Val(<karakteres kifejezés>) chn ha betűkből áll, 0-val tér vissza Dtoc(<datum kifejezés>) dch Ctod(<karakteres kifejezés>) chd Asc(<karakter>) chASCII Chr(<ASCII kód>) ASCIIch Adatbázis-kezelés - 10 - 2000-szept.-11  Egyébb függvények: - Recno() record pozíció metése Reccount() összes record száma Recsize() record méretét meghatározza Bof() Eof() Found() Deleted() File() Isprinter() printerlekérdező Iif(<feltétel>,<parancs1>,<parancs2>) Row() Col() Prow() Pcol() & pl.: filenév=”x” use &filenév így az x nevű fáljt nyitom meg. Saját függvény definiálása: FUNCTION <fg.név> Parameters <változók> <parancsok> return([<visszatérési érték>]) Menükészítés Clippernél: Set wrap on Set message to <n> @ <sor><oszlop> PROMPT <szöveg> [message <szöveg2>]

menu to <n> HELP határára a help.prg parancsai hajtódnak végre = általános help Helyérzékeny help egy help-kód segítségével a help.prg-ban eldönthetjük, hogy a felhasználó melyik pontban kérte a segítséget. Bevezetünk egy változót pl: helpx és minden modulban más kódot adunk, s ez alapján oda ugrik, ahova címeztem. Tartalomfüggő help egy getread résznél F1-et megnyomva 3 változót ad vissza: - inputvar – ch - linenum – n - callprg – ch Clipper program  fordítása: C>clipper <.prgnév>  szerkesztése: c>rtlink file <.objnév lista> [lib<könyvtárak> out<kimeneti filenév>] Adatbázis-kezelés - 11 - 2000-szept.-11 Microsoft Access Windows környezetben müködő relációs adatbáziskezelő Kis, közepes vállalatok adatfeldolgozására kiválóan alkalmas. Fontosabb objektumok: - Tábla - Lekérdezés - Űrlap - Jelentés - Makro ismétlődő feladatok elvégzésére szolgál. Makrók és

eseményvezérelt eljárások segítik az alkalmazás és objektumainak összekapcsolását. A makrók Visual-Basic nyelven megírt kódok, amelyekkel válaszolunk az űrlapokon fellépett eseményekre, továbbá saját függvényeket írhatunk. - Modul Mező: Definiálás: mezőnév max. 64ch Típusai: - Szöveg 255 byte - Szám - Dátum - Idő - Feljegyzés max. 64kB - Pénznem - Logikai - Számláló - OLE objektum max. 1GB kép, hang Tulajdonságok: - Méret - Formátum - Tizedes-jegyek - Bemeneti maszk, cím - Alapértelmezett érték - Érvényességi szabály - Érvényességi szöveg - Kötelező-e a kitöltése - Null hossz - Indexelt-e Normál forma 1NF: minden cella csak elemi értékeket tartalmaz A tábla két dimenziós Pl. nem normalizált THELY3 THELY2 SZKOD1 SZNEV1 THELY1 Adatbázis-kezelés - 12 - 2000-szept.-11 1NF kerüljön SZKOD1 SZNEV1 TELEPHELY1 SZKOD1 SZNEV1 TELEPHELY2 Cikkszám cikknév SZKOD1 SZNEV1 TELEPHELY3 2NF: Funkcionális függés egy

adott R relációban egy B tartomány funkcionálisan függ A tartománytól, ha bármely időpontban minden egyes A értékhez egy B érték tartozik egy adott reláción belül, azaz: cikkszám egyértelműen meghatározza cikk nevét pl. Tételek (megrendelési tételek) <megrendelés száma> cikkszám, cikknév, ár m-e, mennyiség> összetett kulcs TÉTEL <megrendelés szám; cikkszám; mennyiség> kétféle CIKK kulcsmező <cikkszám, cikknév, é. ár, mennyiségi egység> ↓ kulcsmező Nem kell minden megrendelésnél minden adatot újra bevinni. 2NF-ben akkor van egy adatbázis, ha azonosítón kívül egy tulajdonság sem függ funkcionálisan az azonosító egy részétől. Előnyei: - redundancia csökken - törlési adatfüggőség megszűnik Megrendelés után visszamondja a megrendelést. - hozzáadási adatfüggőség szűnik meg Nem tudom a termék árát felvenni, mindaddig, amíg a megrendelés nem történik meg. - Módosítási

adatfüggőség megszűnik. 3NF: pl.: <m rendelés száma, vevő kódja, vevő neve, címe, dátum> kulcsmező redundáns: vevő neve, címe RENDEL <megrend., vevő kód, dátum> VEVŐ <vevő kód, neve, címe> Adatbázis-kezelés - 13 - 2000-szept.-11 Idegen kulcs: adott relációban nem elsődleges kulcs, de más reláció egyedeit egyértelműen azonosítja. Van funkcionális függés: megrend. Szám vevő kód Belső függés van: vevő kódja neve címe Tranzitív, belső függés: - Ha egy tulajdonság funkcionálisan függ az első kulcstól, de ugyanakkor függ egy másik tulajdonságtól, egy idegen kulcstól. - Ha 2NF – ban van, és nem tartalmaz tranzitív (belső függés)