Sie sind auf Seite 1von 19

LICEUL

PROIECT DE ATESTAT

Profesor indrumator,
CRUDU IRINA ALEXANDRA

cls. XII !

"##$
%

LICEUL

PROIECT &OX PRO ' (A)E DE DATE PENTRU &AR*ACIE

(UCURESTI "##$

"

CUPRINS

%. !eneralitati +++++++++++++++++++++..+,a-.. ". O,eratori. Ti,uri de date+++++++++++++++++..,a-.$ /. O,eratii s,ecifice 0a1elor de date++++++++++++++,a-%# .. Enunt ,ro0lema+++++++++++++++++...+++,a-%2 2.Re1ol3are ,ro0lema+++++++++++++++++++.,a-%2 4.(i0lio-rafie++++++++++++++++++++++.,a-."#

1. BAZE DE DATE. GENERALITATI.


O baza de date este un sistem de colectii de date referitoare la un domeniu ,articular, care ,oate fi utili1at si ,relucrat de mai multi o,eratori in sco,uri diferite. Sistemul de gestiu e al bazel!" de date 5S!(D6 este un ,ac7et de ,ro-rame care reali1ea1a -estiunea si ,relucrarea com,le8a a 0a1elor de date. Pentru descrierea structurilor datelor, ,recum si a relatiilor dintre acestea intr o 0a1a de date se utili1ea1a un ,rocedeu formal, numit m!del #! #e$tual. In ,ractica ,relucrarii automate a datelor, s au consacrat urmatoarele modele conce,tuale. Ierar7ic retea relational %ODELUL IERAR&IC Se 0a1ea1a ,e structuri de re,re1entare ar0orescente si ti,uri de relatii % la % si % la n. Cu a9utorul acestui model, structura 0a1ei de date ,oate fi re,re1entata su0 forma unui ar0ore cu un nod radacina 5trunc7iul6 si celelalte noduri 5ramuri6 contin colectiile de date. Le-aturile intre noduri reflecta relatiile de asociere intre inre-istrarile 5set de date cu aceleasi ,ro,rietati6 colectiilor de date su,erioare si inferioare.

*odelul ierar7ic are urmatoarele caracteristici: accesul direct este ,osi0il numai la inre-istrarile din colectia de date radacina: accesul la inre-istrarile colectiilor de date inferioare se face ,rin s,ecificarea tuturor colectiilor, care se -asesc ,e drumul de la colectia radacina ,ana la colectiacercetata: toate inre-istrarile din colectiile 0a1ei de date, cu e8ce,tia colectiei de date radacina au cate o inre-istrare su,erioara. Se defineste astfel o relatie, care asi-ura consultarea inre-istrarilor din colectiile de date de sus in 9os si de la stan-a s,re drea,ta 5modul ;to, do<n=6. *odelul ierar7ic are unele limite, in s,ecial la o,eratiile de actuali1are 5modificarea 3alorilor6 a 0a1ei de date, deoarece adau-area de inre-istrari se ,oate face numai cu ,reci1area colectiei de date su,erioare 5cu e8ce,tia colectiei de date radacina6, iar ster-erea unei inre-istrari, -enerea1a ster-erea tuturor inre-istrarilor su0ordonate. %ODELUL RETEA Se 0a1ea1a ,e structura de re,re1entare retea si ti,uri de relatii % l% %, %la n si m la n. O retea este formata din mai multe noduri le-ate intre ele. In modelul retea al unei 0a1e de date, fiecare nod re,re1inta o colectie de date iar le-aturile reflecta relatiile de asociere. Caracteristica ,rinci,ala este aceea ca, acce,ta ca oricare colectie de date sa se situe1e ,e ni3elul %, ,rin indicarea e8,licita a relatiilor dintre acestea. In ,lus, acce,ta e8istenta

tem,orara a inre-istrarilor fara le-aturi cu alte inre-istrari si ,ermite re,re1entarea unica a inre-istrarilor in 0a1a de date. *odelul retea este un model com,le8, dificil de folosit, ocu,a s,atiu de memorie ineficient si de,endentele din retea sunt ,utin clare, din cau1a e8istentei mai multor relatii de su0ordonare. %ODELUL RELATIONAL Conform acestui model, conce,erea structurii 0a1ei de date de,inde e8clusi3 de le-aturile intre o0iecte ce ,ermit o descriere sim,la su0 forma ta0elara. Acest model de re,re1entare a datelor se 0a1ea1a ,e notiunea matematica de relatie. O relatie R este o su0multime a ,rodusului carte1ian de n multimi numite domenii 5Di6, n fiind -radul relatiei. O 0a1a de date relationala este o multime de relatii semantic le-ate ,rin domenii de definitie comune. *odelul relational a fost introdus ,entru a elimina restrictiile im,use de catre modelul retea asu,ra le-aturilor intre colectiile de date. Anumite le-aturi ,ot sa nu e8iste la un moment dat si sa a,ara du,a aceea. In aceste conditii in mdelul retea structura datelor tre0uie modificata, ceea ce nu este ca1ul modelului relational, unde numai le-aturile intre colectii sunt semnificati3e. In conclu1ie, o relatie ,oate fi re,re1entata ,rintr un ta0el, in care, fiecare rand re,re1inta o inre-istrare 5un tu,lu6 distincta, iar fiecare coloana un domeniu, ,rin res,ectarea urmatoarelor re-uli: fiecare rand al ta0elului tre0uie sa fie diferit de celelalte randuri si formea1a un tu,lu> ordinea randurilor in ta0el nu este ,redefinita ,utand fi modificata fara restrictii>

coloanele ta0elului sunt identificate ,rin cod? ,rodus distincte, fiecare 3aloare a unui cam, este re,re1entata ,rintr un sir de

re,re1entand cam,urile modelului relational>

caractere> in fiecare coloana a ta0elului, 3alorile sunt de acelasi fel, constituind un domeniu. Orice tu,lu al relatiei este identificat ,rin intermediul unei c7ei ,rimare, care este definita ,rintr un cam, sau un -ru, de cam,uri cu 3alori unice. Cu a9utorul modelului relational structura conce,tuala a 0a1ei de date ,oate fi re,re1entata su0 forma unei multimi de ta0ele, care se asocia1a intre elel ,rin intermediul unor c7ei. Cele mai im,ortante a3anta9e ale mdelului relational sunt: este usor accesi0il ,entru ,ersoanele mai ,utin initiate in informatica, datorita fa,tului ca 0a1a de date este re,re1entata sim,lu ca o colectie de ta0ele> este un mdel omo-en de re,re1entare a le-aturilor dintre colectiile de date, numai ,rin relatii> asi-ura inde,endenta ,ro-ramelor fata de structura datelor, datorita sim,lificarii structurii conce,tuale si lo-ice> ,ermite ,roiectarea unei structuri o,time a datelor, eliminand admite satisfacerea cerintelor intam,latoare ale utili1atorilor.

redundanta si anomaliile de actuali1are>

'. OPERATORI. TIPURI DE DATE


Un ti, de date re,re1inta multimea 3alorilor si a o,eratiilor care se ,ot efectua cu acestea. '.1. O$e"at!"i Re,re1inta sim0oluri ,rin care se s,ecifica o,eratiile care se ,ot efectua cu diferite 3alori. Ei se -ru,ea1a astfel: o,eratori aritmetici : A, , B, C, si ridicare la ,utere BB o,eratori relationari : D, E, DF, EF, DE o,eratori lo-ici : not, and, or '.'. Ti$u"ile de date &iecare cam, intr o 0a1a de date are asociat un ti, de date. &o8 Pro une la dis,o1itie urmatoarele ti,uri de date : %6 ti,ul alfacod? ,rodusric 5c7aracter, memo6 "6 ti,ul cod? ,rodusric 5cod? ,rodusric, float6 /6 ti,ul data calendaristica 5date6 .6 ti,ul lo-ic 5lo-ical6 26 ti,ul s,ecial 5-eneral6

Ti$ul al(a#!d) $"!dus"i# are doua su0titluri: Ti$ul #a"a#te" este alcatuit din litere, cifre, sim0oluri si s,atii. Lun-imea ma8ima este "2. de caractere. Pe datele de ti, sir de caractere ,ot fi a,licati o,eratorii de concatenare si o,eratorii relationari. Ti$ul mem! este tot un sir de caractere dar folosit ,entru stocarea 0locurilor lar-i de te8t de ,ana la 2%" GO intr un cam,. Ti$ul #!d) $"!dus"i# este folosit ,entru stocarea cod? ,rodusrelor cu sau fara 1ecimale, semnul H I , fiind admis inaintea cod? ,rodusrelor. Ti,ul cod? ,rodusric cu,rinde su0ti,urile cod? ,rodusric si float diferenta dintre ele a,are la ,reci1ia de memorare a 3alorilor. Dimensiunea ma8ima a unui ,unct cu 3alori cod? ,rodusrice este de "#. Ti$ul data #ale da"isti#a este folosit ,entru stocarea datelor calendaristice su0 forma LL C))CAA. Dimensiunea cam,ului este im,licit de o,t caractere. Ti$ul l!gi# este folosit ,entru stocarea 3alorilor lo-ice ade3arat sau fals. Ti$ul s$e#ial ,ermite ,astrarea in ta0elele 0a1ei de date a unor documente, foi de calcul sau ima-ini.

*. CATE+A OPERATII SPECI,ICE BAZELOR DE DATE


*.1. C"ea"ea u ei baze de date si i t"!du#e"ea datel!" Crearea unei 0a1e de date ,resu,une sta0ilirea structuri 0a1ei de date si acod? ,rodus ,reci1area cod? ,roduslui, ti,ului si lun-imea fiecarui cam, din ta0el. Pentru crearea structurei unei 0a1e de date se utili1ea1a comanda create. Comanda Create Sinta8a: Create KDCod? ,rodus 0a1a de dateEL

*.'. Des#-ide"ea si i #-ide"ea bazel!" de date *.'.1. Des#-ide"ea u ei baze de date Desc7iderea sim,la a unei 0a1e de date se reali1ea1a din fereastra command cu a9utorul comen1ii use. Comanda use Sinta8a: use Dcod? ,rodus 0a1a de dateE *.'.'. I #-ide"ea u ei baze de date
%#

Inc7iderea sim,la a unei 0a1e de date se ,oate reali1a utili1and comanda use fara a s,ecifica cod? ,rodusle 0a1ei de date. Pentru a inc7ide toate 0a1ele de date desc7ise se utili1ea1a comanda close da0ases, iar comanda close all ,ermite inc7iderea tuturor fisierelor, inclus3 fisierele 0a1a de date. Selectarea unei 1one de lucru se face din fereastra de comanda, cu a9utorul comen1ii select. Comanda select Sinta8a: select D 1ona de lucru E *.'.*. Des#-ide"ea u ei baze de date i t".! a umita z! a de lu#"u Desc7iderea unei 0a1e de date intr o anumita 1ona se face ,rin comanda: Use Dcod? ,rodus 0a1a de dateE in D 1ona de lucruE

*.*. +izualiza"ea/ #!$ie"ea si m!di(i#a"ea st"u#tu"ii u ei baze de date *.*.1. +izualiza"ea st"u#tu"ii u ei baze de date Se ,oate reali1a din linia de comanda 5fereastra command6, cu a9utorul comen1ii list structure. Aceasta comanda ,ermite afisarea 53i1uali1area6 ,e ecran a structurii 0a1ei de date. Comanda list structure
%%

Sinta8a: list structure *.*.'. C!$ie"ea st"u#tu"ii u ei baze de date Pentru co,ierea structurii unei 0a1e de date se creea1a o noua 0a1a de date a3and aceeasi structura ca a 0a1ei de date curente sau se crea1a o noua 0a1a de date ce contine numai anumite cam,uri din 0a1a de date curente. Co,ierea structurii se reali1ea1a cu a9utorul comen1ii co,M structure. Comanda co,M structure Sinta8a: co,M structure to Dfisier nouE KfieldsDlista cam,uriEL *.*.*. %!di(i#a"ea st"u#tu"ii *odificarea structurii unei 0a1e de date include adau-area de noi cam,uri, ster-erea sau modificarea unor cam,uri e8istente 5modificare cod? ,rodus, lun-ime sau ti,6. *odificarea structurii se reali1ea1a din linia de comanda cu a9utorul comen1ii modifM structure. Comanda modifM structure Sinta8a: modifM structure *.0. +izualiza"ea u ei baze de date Presu,une afisarea inre-istrarilor 0a1ei de date. Ni1uali1area se ,oate reali1a cu a9utorul comen1ilor list si dis,laM. Comanda list Permite o afisare continua, fara o,rire du,a fiecare ecran ,lin.

%"

Sinta8a:listKfieldsDlista Comanda dis,laM

cam,uriELKDdomeniuELKforDe8,l%EL

K<7ileDe8,l"ELKoffLKto ,rinterK,rom,tLLKto fileDfisierEL Afisarea continutului 0a1ei de date curente, ecran cu ecran, adica du,a um,lerea ecranului cu informatie, afisarea se o,reste si se astea,ta a,asarea unei taste sau clicO ,e mouse ,entru continuare. Sinta8a: dis,laMKKfieldsLDlista cam,uriELKDdomeniuELKforDe8,l%EL K<7ileDe8,l"ELKoffLKto ,rinterK,rom,tLLKto fileDfisierEL *.1. Adauga"ea de i "egist"a"i Se face ,rin intermediul comen1ilor a,,end si insert. Comanda a,,end Sinta8a: a,,end K0lanOL comanda sim,la a,,end adau-a o inre-istrare la sfarsitul 0a1ei de date si ,ermite utili1atorului sa com,lete1e ca,murile intr o fereastra. Cu a9utorul acestei comen1i, se ,ot efectua modificari in intrea-a 0a1a de date. comanda a,,end 0lanO adau-a o inre-istrare 3ida la sfarsitul 0a1ei de date, fara a afisa fereastra de editare. Comanda insert Sinta8a: insert K0lanOLK0eforeL comanda insert adau-a o inre-istrare in 0a1a de date, du,a inre-istrarea curenta> comanda insert 0efore adau-a o inre-istrare inaintea inre-istrarii curente>

%/

comanda insert 0lanO inserea1a o inre-istrare 3ida, fara a fi desc7isa fereastra de editare. *.2. Ste"ge"ea i "egist"a"il!" di t".! baza de date Comanda delete Comanda delete marc7ea1a ,entru ster-ere inre-istrari din 0a1a de date acti3a. Sinta8a: deleteKDdomeniuELKforDe8,l.%ELK<7ileDe8,l"ELKnoo,timi1eL Comanda nu ster-e fi1ic inre-istrarile din 0a1a de date.Clau1ele cmen1i au aceeasi semnificatie ca la comen1ile anteriare.domeniul im,licit este inre-istrarea curenta . Comanda ,acO Comanda ,acO determina ster-erea fi1ica a inre-istrarilor care au fost marcate ,entru ster-ere folosind comanda delete. Sinta8a:,acO KmemoLKd0fL Comanda 1a, Sinta8a:1a, Comanda 1a, ster-e toate inre-istrarile din 0a1a de date acti3a, ,astrand doar structura. Aceasta comanda este ec7i3alenta cu succesiunea de comen1i: Delete all PacO Dar e8ecutia este mult mai ra,ida

0. ENUNT PROBLE%A

%.

Se considera 0a1a de date a-enda cu structura : cod? ,rodus, denumire? ,rodus, cantitate?,rodus, ,ret?,rodus. (a1a de date este inde8ata la creare ,e cam,ul cod? ,rodus. Se cere, ,rin intermediul unui meniu, sa se reali1e1e urmatoarele o,eratii : B Adau-area unui nou ,rodus B *odificarea informatiilor le-ate de un anumit ,rodus B Ster-erea unui ,rodus B Ni1uali1area continutului 0a1ei de date

1.REZOL+AREA PROBLE%EI
set talk off ON SHUTDOWN CLEAR EVENTS define window w1 from 3 1 to !" #$ define window w! from 3 1 to !" #$ define men% men1 define &ad &1 of men1 &rom&t 'Ada%(are' at ! 1 define &ad &! of men1 &rom&t ')odifi*are' at ! 1+ define &ad &3 of men1 &rom&t 'Ster(ere' at ! 3$ define &ad &" of men1 &rom&t 'Vi,%ali,are' at ! "+ define &ad &+ of men1 &rom&t 'Terminare' at ! -$ on sele*tion &ad &1 of men1 do ada%(are on sele*tion &ad &! of men1 do modifi*are on sele*tion &ad &3 of men1 do ster(ere on sele*tion &ad &" of men1 do .i,%ali,are on sele*tion &ad &+ of men1 do terminare a*ti.ate men% men1 READ e.ents ON SHUTDOWN USE &rod%s E/CLUS0VE &ro*ed%re ada%(are a*ti.ate window w1 %se &rod%s order *od1&rod%s o&t2'D' do w3ile %&&er4o&t52'D' CLEAR STORE $ TO .*od1&rod%s STORE S6ACE41+$5 TO .den%mire1&rod%s STORE $ TO .*antitate1&rod%s STORE $7$ TO .&ret1&rod%s 8 ! + sa9 '0ntrod%*eti *od%l &rod%s%l%i' (et .*od1&rod%s &i*t '::::::::::' read STORE '.*od1&rod%s' TO .1 SEE; <.1 0= =OUND45

%2

8 : + sa9 '6rod%s%l a mai fost introd%s *od%l tre>%ie sa fie %ni*7' else 8 " + sa9 '0ntrod%*eti den%mirea &rod%s%l%i?' (et .den%mire1&rod%s &i*t '@@@@@@@@@@' 8 + + sa9 '0ntrod%*eti *antitatea din sto* a &rod%s%l%i?' (et .*antitate1&rod%s &i*t '::::::::::' 8 - + sa9 '0ntrod%*eti &ret%l &rod%s%l%i?' (et .&ret1&rod%s &i*t '::::::::::' read a&&end >lank re&la*e *od1&rod%s wit3 .*od1&rod%s den%mire1&rod%s wit3 .den%mire1&rod%s *antitate1&rod%s wit3 .*antitate1&rod%s &ret1&rod%s wit3 .&ret1&rod%s endif o&t2' ' 8 1$ + sa9 'Doriti sa mai *ontin%atiADBN' (et o&t f%n*tion 'C' read enddo %se dea*ti.ate window w1 ret%rn &ro*ed%re modifi*are a*ti.ate window w! %se &rod%s order *od1&rod%s o&t2'D' do w3ile %&&er4o&t52'D' *lear store $ to .*od1&rod%s 8 + + sa9 '0ntrod%*eti *od%l &rod%s%l%i?' (et .*od1&rod%s &i*t '::::::::::' read STORE '.*od1&rod%s' TO .1 SEE; <.1 if not fo%nd45 8 1- + sa9 'Cod%l &rod%s%l%i n% a fost (asitC' else 8 # + sa9 'Den%mirea &rod%s%l%i?' 8 # "$ sa9 den%mire1&rod%s 8 : + sa9 'Cantitatea din sto* a &rod%s%l%i?' 8 : "$ sa9 *antitate1&rod%s 8 1$ + sa9 '6ret%l &rod%s%l%i?' 8 1$ "$ sa9 &ret1&rod%s store s&a*e41+$5 to .den%mire1&rod%s store $ to .*antitate1&rod%s store $7$ TO .&ret1&rod%s 8 11 + sa9 '0ntrod%*eti noile .aloriC' 8 1! + sa9 'Den%mire?' (et .den%mire1&rod%s &i*t '@@@@@@@@@@' 8 13 + sa9 'Cantitate ?' (et .*antitate1&rod%s &i*t '::::::::::' 8 1" + sa9 '6ret?' (et .&ret1&rod%s f%n*tion 'C' read re&la*e den%mire1&rod%s wit3 .den%mire1&rod%s *antitate1&rod%s wit3 .*antitate1&rod%s &ret1&rod%s wit3 .&ret1&rod%s endif o&t2' ' 8 1: + sa9 'Doriti sa mai *ontin%atiADBN' (et o&t f%n*tion 'C'

%4

read enddo dea*ti.ate window w! ret%rn &ro*ed%re ster(ere a*ti.ate window w1 %se &rod%s order *od1&rod%s o&t2'D' do w3ile %&&er4o&t52'D' *lear store $ to .*od1&rod%s 8 + + sa9 '0ntrod%*eti *od%l &rod%s%l%i?' (et .*od1&rod%s &i*t '::::::::::' read STORE '.*od1&rod%s' TO .1 seek <.1 if not fo%nd45 8 1+ + sa9 'Cod%l &rod%s%l%i n% a fost (asitC' else 8 D + sa9 'Den%mirea &rod%s%l%i?' 8 D 3+ sa9 den%mire1&rod%s 8 # + sa9 'Cantitatea din sto*?' 8 # 3+ sa9 *antitate1&rod%s 8 : + sa9 '6ret%l &rod%s%l%i?' 8 : 3+ sa9 &ret1&rod%s store s&a*e415 to o&t1 8 13 + sa9 'Doriti sa ster(etiADBN' (et o&t1 f%n*tion 'C' read if %&&er4o&t152'D' delete endif endif o&t2' ' 8 1# + sa9 'Doriti sa mai *ontin%atiADBN' (et o&t f%n*tion 'C' read enddo &a*k dea*ti.ate window w1 ret%rn &ro*ed%re *a&t 8 1 "$ sa9 'Lista &rod%se' 8 ! 1 sa9 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EE' 8 3 1 sa9 'F Cod%l &rod%s%l%i F Den%mire F Cantitate F 6ret F' 8 " 1 sa9 'F F F F F' 8 + 1 sa9 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EE' ret%rn &ro*ed%re .i,%ali,are %se &rod%s

%@

sort to &rod%s1 on *od1&rod%s a*ti.ate window w1 do *a&t (o to& k2do w3ile not eof45 8 k + sa9 *od1&rod%s &i*t '::::::::::' 8 k 3+ sa9 den%mire1&rod%s &i*t%re '@@@@@@@@@@' 8 k "+ sa9 *antitate1&rod%s &i*t '::::::::::' 8 k -$ sa9 &ret1&rod%s &i*t '::::::::::' k2kG1 if kH1# 8 1: + sa9 '6entr% *ontin%are a&asati o tastaC' k92inke94$5 k28 - 1 *lear to !" D: endif ski& enddo 8 1: + sa9 'Am terminat listarea7 ' k92inke94$5 8 1 1 *lear to !" D: %se dea*ti.ate window w1 ret%rn &ro*ed%re terminare dea*ti.ate men% men1 CLEAR e.ents ret%rn

%$

Bibli!g"a(ie
Colectia de informatica ' &OX PRO ' teorie si a,licatii Editura Else Autorii: Eu-en Po,escu *i7aela Codres Doina Preda Ecaterina (oarna Sofia Nitelaru Lim0a9ul Pascal structuri dinamice de date, -rafuri si ,ro-ramare orientata ,e o0iecte Editura Else Autori: Eu-en Po,escu Sofia Nitelaru *i7aela Codres Daniel Codres
Powered by http://www.referat.ro/ cel mai tare site cu referate

%J

Das könnte Ihnen auch gefallen