Lucrare de licenta [617672]
Lucrare de licenta
Realizarea unui magazin virtual
www.referat.ro
Cuprins
Capitolul I. Proiectarea bazelor de date…………………………4
1.1 Analiză sistemului și a cerințelor informaționale……………..4
1.2. Proiectarea stru cturii bazei de date……………………….15
1.3. Incărcarea datelor în baza de date……………………….21
1.4. Exploatarea și întreținerea bazei de date…………………..22
Capitolul II. Baze de date relationale…………………… …..23
2.1. Formalizarea procesului de ameliorare a schemei conceptuale a
BDR………………………………….23
2.2. Tehnica diagramelor de dependență riguroasa………………….23
2.3. Proiectarea asistata de calculator a BDR…………….. ……29
2.4. Directii de perfectionare a BDR…………………………32
Capitolul III. Interogarea bazelor de date……………………..33
3.1. Algebra relaționala…………………………………..36
3.2. Operatori logici…………….. ………………….36
3.3. Operatori relaționali………………………………..40
Capitolul IV. Introducere in PHP………………………………47
4.1. Ce este php -ul…………………………………48
4.2. Ce poate face php -ul…… …………………………….48
4.3. Scurt istoric ………………………………….48
4.4. Instalare și configurare…………………………………50 www.referat.ro
4.5. Descrierea limbajului………………………………..51
Capitolul V. Descr ierea sistemului informatic……………………106
1. PROIECTAREA BAZELOR DE DATE
1.1 Analiză sistemului și a cerințelor informaționale
Activitatea de analiză constă în:
1. Analiză componentelor sistemului și a legă turilor dintre acestea. Această etapă
poartă numele de analiză structurală sau statică și se finalizează prin elaborarea modelului
structural (static) al sistemului.
2. Analiză stărilor și a tranzițiilor posibile dintre acestea în raport cu anumite
evenime nte. Etapa poartă numele de analiză temporală sau comportamentală și are ca
rezultat elaborarea modelului dinamic al sistemului.
3. Analiză cerințelor informaționale și a transformărilor de date din sistem prin
care sunt satisfăcute aceste cerințe. Are ca rezultat elaborarea modelului funcțional al
sistemului.
4. Intercorelarea modelelor structural, dinamic și funcțional pentru analiză
integrală a sistemului.
În cazul BD ierarhice, rețea și relaționale, analiză structurală este foarte
importantă deoarece ac easta reflectă preponderent aspectele structurale și mai puțin cele
dinamice.
Pentru BD postrelaționale și în special BD orientate pe obiecte, foarte importante
sunt și analizele temporală și funcțională deoarece astfel de BD surprind foarte bine și
aspect ele dinamice, funcționale, semantice.
1.1.1. Analogia structurală
Are scopul evidențierii componentelor sistemului, pentru care urmează să se
calculeze și memoreze date în BD, precum și acela al evidențierii legăturilor dintre
componente.
Principalele tehnici de analiză structurală sunt:
– tehnica entitate – asociere ( entity – relationship) introdusă de P.P.S. Chen în
anul 1976;
– tehnica Semantic Data Model (SDM) introdusă de Hammer în anul 1981;
– tehnica IFO, RM/T, etc.
Cea mai utilizată dintre a cestea, este tehnica entitate -asociere. Prin ea se poate
construi modelul structural al sistemului sub forma unei diagrame entitate – asociere.
Pentru aceasta trebuie parcurse următoarele etape:
identificarea componentelor (entităților) din cadrul sistemul ui;
identificarea asocierilor dintre componente și clasificarea
acestora;
identificarea atributelor aferente entităților și a asocierilor dintre
entități;
stabilirea atributelor de identificare a entităților.
a) Componentele unui sistem, odată identifi cate pot fi reprezentate în diagrama
structurală prin blocuri dreptunghiulare. Spre exemplu într -o unitate economică pot fi
reprezentate următoarele entități: CLIENȚI; FURNIZORI; PRODUSE FINITE;
MATERII PRIME; COMENZI APROVIZIONARE; COMENZI PRODUSE FINITE;
FACTURI; ÎNREGISTRĂRI CONTABILE FURNIZORI; ÎNTEGISTRĂRI
CONTABLIE CLIENȚI; AGENȚI COMERCIALI; etc.
Fiecare entitate are mai multe instanțe (realizări).
b) În cadrul unui sistem, de obicei, componentele se află în interlegături
structurale și funcționale. Deci, între componente există asocieri. Asocierile sunt însoțite
de semnificații. Deci, odată cu identificarea lor, ele trebuie și calificate. Într -o diagramă,
entitățile care participă la o asociere se reprezintă prin noduri, iar asocierile se reprezintă
prin arce neorientate. Semnificația legăturii se reprezintă prîntr -un nume plasat într -un
romb situat pe arcul care leagă cele două entități.
Exemplu:
Tipul (forma) legăturii se exprimă cu ajutorul cardinalitii.
Cardinalitatea asocierii exprimă numărul minim și maxim de realizări (instanțe)
ale unei entități care poate fi asociată cu o realizare a partenerului de asociere. Se exprimă
prin câte o pereche de numere pentru fiecare entitate din asociere. De exemplu, în
asocierea prezentată se pot scrie card inalele:
Perechea (0,1) atașată entității furnizor semnifică numărul minim de realizări ale
entității FURNIZOR care se pot asocia cu o realizare a entității MATERII -PRIME.
Acesta este “0”. Numărul maxim este “1”. Perechea (1,1) este asociată entității
MATERII -PRIME și care semnifică faptul că un furnizor poate oferi minim un tip de
materie primă și maxim tot un tip de materie primă.
Perechea (0,1) arată că numărul minim de furnizori care pot oferii o materie primă
este “0” iar numărul maxim este “1”.
Perechea (1,1) arată că un furnizor poate oferi minim un tip de materie primă și
maxim tot un tip de materie primă.
Se pot distinge următoarele tipuri principale de legături între entități:
1. După cardinalitatea asocierii, legăturile sunt: 1 la 1; 1 la mai mulți ( 1 la n );
mai mulți la mai mulți (m la n).
După obligativitatea participării entităților la asociere, asocierile sunt: asocieri
parțiale și asocieri totale.
După gradul și obligativitatea asocierii sunt:
asocieri parțiale de tip 1 la 1; FURN IZOR furnizează MATERII -PRIME
Figura 2.1.
0,1 1,1
FURNIZOR furnizează MATERII -PRIME
Figura 2.2
asocieri to tale de tip 1 la 1;
asocieri parțiale de tip 1 la n;
asocieri totale de tip 1 la n;
asocieri parțiale de tip m la n;
asocieri totale de tip m la n.
2. După numărul de entități distincte care participă la asociere sunt:
asocieri binare (două entități); aso cieri recursive (ale entităților cu ele însele);
asocieri complexe (mai mult de două entități distincte).
3. După semnificația asocierii sunt:
Reprezentarea asocierilor:
De tip 1 la 1. Maximele cardinalității au valoarea 1 la toate entitățile.
De tip 1 la mai mulți. Maximul cardinalității are valoarea 1 la o entitate, iar la
cealaltă are valoarea mulți.
Sau:
De tip mai mulți la mai mulți. Maximul cardinalității are valoarea mulți.
În cazul utilizării unor SGBD este avantajos să se descompună asocierea m la n în
două asocieri de tip 1 la n utilizând o transformare realizată prin introducerea unei entitați
intermediare. Această transformare este preferabilă datorită faptului că este mult mai ușor
de implementat și utilizat două relații de tip 1 la n decât una de tip m la n. Un exemplu de E1 E2 A (…,m) (…,1) E1 A (…,1) (1,…)
E2
(…,1) (…, m)
E1 A E2
(…,m
) (…,m
) E1 E2 A
Figura 2.3.
descompunere a unor asocieri m la n în câte două acocieri de tip 1 la n este prezentat în
figura 2.4.
Asocieri parțiale. O asociere este parțială atunci când nu există obligativitatea
participării la acea sta a tuturor entitaților vizate, ci numai a unora sau a niciuneia dintre
ele. Obligativitatea participării este reprezentată de minimele cardinalitații. Valoarea zero
arată lipsa de obligativitate (vezi figura 2.5.).
Asocierile totale exprimă ob ligativitatea participarii entitaților la o asociere.
Acestea pot fi de tipul 1 la 1 , 1 la m, m la 1 și m la n (m : 0) ca în figura 2.6a, b, c, d.
Asocieri recursive. Pot fi de tipul 1 la 1, 1 la n și m la n, parțiale sau totale (figura
2.7.).
A
1
E1 A E
2 A
2 E
1 E2 (…,m) (…,m) (…,1) (…,m)
(…,m) (…,1)
Figura 2.4.
E1 A E2 E1 A E2 (0,…) (…,…) (…,…) (0,…)
Figura 2.5.
E1 A E2 E1 A
E2 (1,…) (1,…) (1,…) (m,…)
a) b)
E1 A E2
E1 A E2 (m,…) (1,…) (m,…) (m,…)
c) d)
Figura 2.6.
Persoane
Căsătorie Angajați
Șef Piese
Ansamblu (0,1) (0,1) (0,1) (0,m) (0,m) (0,m)
a) b) c)
Figura 2.7.
reprezintă o asociere parțială de tip 1 la 1 a entitații persoane cu ea însăși.
reprezintă o asociere de tip 1 la n care prezintă subordonarea ierarhică a
angajaților unei organizații la un singur angajat, dar șef.(parțială)
reprezintă o asociere de ti p m la n. Ea semnifică faptul că mai multe piese pot
constitui un ansamblu și o piesă poate intra în componența altor piese.
Asocierile complexe între mai mult de două entități distincte reprezintă
activitați complexe (figura 2.8.).
O asocier e complexă se poate transforma într -o asociere binară prin introducerea
unei entități sau mai multor entități intermedire. Un exemplu pentru o astfel de
transformare se prezintă în figura 2.9.
Cursuri Săli
Profesori Date
Asociere (…, m) (…,m)
(…,m) (…,1)
Figura 2.8.
Cursuri Săli
Curs -Profesori Sală-Dată A
3
A
2 A
5 A
1 A
4 (1, 1) (1, 1)
(0, m) (0, m)
(1,1) (1,1)
(0, m) (0, m)
După semnificația lor, asocierile pot fi de dou ă tipuri care vor fi prezentate în cele
ce urmează.
Asocieri de tipul “este un”. Entitățile generice (clase) sunt obținute prin
generalizarea entităților care au anumite caracteristici comune numite subclase.
Asocierile de tipul “este un” reprezintă o gen eralizare.
Specializarea este procesul invers generalizarii. Asocierea de tip “este un” este o
asociere de tip 1 la 1.
Asocierea de tip “este conținut în” reprezintă un proces de agregare, de grupare a
mai multor entități. Este o asociere de tip 1 la n sau m la n.
Identificarea atributelor aferente entităților și asocierilor dintre entități. Atributele
exprimă caracteristici ale componentelor sistemului (entităților sistemului) și
caracteristici ale asocierilor dintre entități. Într -o diagramă de tip entit ate-asociere,
atributele se reprezintă prin blocuri ovale legate de o entitate sau de asocierea la care se
referă.
Principalele tipuri de atribute sunt:
Atribut compus (bloc) format din cel puțin două atribute. Valoarea să este
reprezentată de valoarea at ributelor componente (exemplu prezentat în figura 2.10).
a4
a5 a3
E a1
a2
Figura 2.10.
– a3 este atribut compus din a4 și a5.
Atribut calculat (dedus). Valoarea să nu este cunoscută direct ci este calculată pe
baza valorilor altor atribute. De exemplu, atributul N R. STUDENȚI EA 5 are o valoare
care se deduce din suma atributelor EA 5.1 + EA 5.2 + EA 5.3.
Atributul simplu nu este nici compus nici calculat. Valorile lui sunt valori
atomice, adică valori care nu se mai pot descompune. De exemplu, atributele a1, a4, a5
din figura 1.10., sunt atribute simple.
Atribut repetitiv este atributul care la un moment dat, are mai multe valori ce apar
sub forma unei liste de valori. Este indicat prin două săgeți așezate pe legătura să, cu
vârful săgeților spre el. De exemplu atr ibutul a2 din figura 1.10 este un atribut repetitiv.
Atribute de identificare a entităților.
Un atribut de identificare poartă numele de cheie și se caracterizează prin
unicitatea valorii sale pentru fiecare instanță a entității.
În diagramele entitate -asociere, atributele cheie se reprezintă prin subliniere sau
prîntr -o săgeată spre entitatea de care aparține și ale căror instanțe le identifică (figura
2.11).
sau
Figura 2.11.
Un atribut cheie trebuie să satisfacă următoarele cerințe:
– identificar e unică a realizărilor (instanțelor) de entitate; a E a
E
– existența unei semnificații a lor;
utilizare ușoară. Atributele compuse sunt greu de utilizat și pot genera confuzii.
Nu sunt indicate.
– lungime cât mai redusă pentru a crește eficiența accesului. Poate apare și în alte
entități ca și cheie externă.
Pentru aceeași entitate pot exista mai multe atribute de identificare, deci, mai
multe chei candidate. Selectarea unuia dintre atributele de identificare drept cheie se
realizează astfel:
Determinarea atribut elor candidat cheie. Dacă nu exista un astfel
de atribut se poate selecta un grup de atribute drept candidat cheie.
Dacă există un singur candidat cheie acesta se va selecta ca cheie.
Dacă există mai mulți candidați cheie, se va selecta unul dintre
acești a cu ajutorul unei euristici, astfel:
se preferă atributele ale căror valori sunt mai puțin volatile;
se preferă atributele ale căror valori sunt mai scurte.
1.1.2. Analiză comportamentală a sistemului
Analiză comportamentală urmărește evoluția tempora lă a componentelor
sistemului. Are ca rezultat elaborarea modelului dinamic. Pentru construirea modelului
dinamic trebuie parcurse următorele etape:
identificarea stărilor componentelor;
identificarea evenimentelor care determină trecerea unei componente d într-o stare
în alta;
stabilirea succesiunii de evenimente și construirea diagramei de tranziție a stărilor
componentelor sistemului (diagrama de flux a evenimentelor).
În elaborarea diagramei de flux trebuie să se țină cont de restricțiile dinamice ale
sistemului care servesc la identificarea tranzițiilor admisibile între două stări.
În figura 2.12 se prezintă un exemplu de model dinamic al unui loc de munca –
LOCM. Această diagramă foarte utilă pentru pregătirea, lansarea și urmărirea unui proces
de prod ucție.
Pentru un echipament, stările și evenimentele care determină tranziția între stări
sunt prezentate în figura 2.13.
a
ctivare
deza
civar Oprit Intrerupt
Utilaj
e
neactivate Utilaj
e
activate În stare de funcționare
Program de
lucru
încărcat Program de
lucru
neîncărcat
În activitate
activare echip.
terminare lucru
În așteptare
În lucru
În pană Utilaj defect defectare echip. inca
rcareîn
pornire oprire relansare intrerupere
încărcare
program dezactivar e
echip. activare
echip. pornire
Figura 2.12.
Oprit În funcțiune În pană activare
dezactivar
e defectare
remediere
Intrerupt
intrer
upere rela nsare
Figura 2.12.
1.1.3. Analiză cerințelor funcționale ale sistemului
Are scopul determinării transformărilor de da te care se produc în cadrul
sistemului pentru satisfacerea cerințelor sale informaționale.
Transformările de date se prezintă sub forma unor diagrame de flux a prelucrărilor
care conțin în noduri procesele de prelucrare informațională, arcele dintre noduri
reflectând fluxurile informaționale. O astfel de diagramă poartă numele de model
funcțional. Un exemplu de model funcțional se prezintă în figura 2.14.
În analiză funcțională, accentul se deplasează de la realitatea analizată către
cerințele informaționale ale utilizatorilor, satisfacerea acestora constituind obiectivul
realizarii bazei de date (BD).
Principalele etape necesare în construirea modelului funcțional, sunt:
identificarea datelor de intrare și de ieșire din sistem;
construirea diag ramelor de flux care reflectă legăturile procedurale dintre intrări și
ieșiri;
identificarea restricțiilor;
precizarea criteriilor de optimizare. Cont
bancar
Actualizare
Verif
icare
parola
u
tilizat corect
suma
Figura 2.14.
Un exemplu de model funcțional parțial pentru domeniul comercial se prezintă în
figura 2.15.
1.1.4. INTE GRAREA MODELELOR SISTEMULUI
Consta în integrarea modelelor structurale, dinamice și funcționale într -un sistem
unitar. Investigarea sistemului real, a proprietăților intrinseci, statice și dinamice ale
componentelor sale, proprietăți in dependente de aplicațiile care operează asupra lor se
finalizează prin modul structural și dinamic al sistemului. Creare
clienți Stergere
clienți Date despre
clienți care
trebuie sterși
Clienți Introduce
re
comenzi Date
despre
clienți care
emit
comenzi Date despre
noile
comenzi Date pentru
actualizarea
comenzilor
Comenzi
pentru
produse Produse Date
despre
produsele
coman dat
e
Date despre
comenzi
Exp
edierea
pro
duselor Date privind
expedierea
produselor
nota de predare
Facturare Date
despre
facturare Factur
i
Plata
pr
oduselor
Date
despre
plata Date despre
facturile care
trebuie
achitate Inregistra
ri
contabile
în contul
clienților
Figura 2.15.
Analiză cerințelor informaționale ale utilizatorilor formează modelul funcțional.
Aceste rezultate distincte trebuie integrate. În cadrul int egrării trebuie stabilit în ce
măsura modelele structurale și dinamice satisfac cerințele aplicațiilor, verificându -se dacă
ele sunt complete și consistente. Se verifică dacă relațiile dintre componentele sistemului
sunt stabilite corespunzător, astfel înc ât să facă posibilă regăsirea informațiilor din mai
multe entități.Se verifică legăturile dintre entităti care asigură coerența informațiilor și
posibilitatea efectuării de actualizări concomitente asupra datelor redundante.
Se urmărește ca toate elementel e informaționale participante la diferite tranziții să
fie asignate ca atribute a diverselor entități. Pe baza acestor analize integrate se
efectuează adăugările și/sau corelările necesare între modelele sistemului. Rezultatul final
trebuie să fie acela în care modelele structural și dinamic trebuie să fie într -o oarecare
măsură, dependente de tipurile de aplicații, iar modelul funcțional să nu mai fie orientat
exclusiv pe aplicații concrete și pe tipuri de aplicații.
1.2. PROIECTAREA STRUCTURII BAZEI DE DATE
Modelele elaborate în fazele anterioare (structural, dinamic, funcțional) sunt
modele conceptuale sau semantice care sunt independente de SGBD -ul pe care vor fi
implementate pentru a deveni operaționale. Independenta față de SGBD este o cerință a
modelelor Aceste dependențe pot genera numeroase dezavantaje dupa cum urmează:
schimbarea SGBD -ului impune reproiectarea BD;
structura constructivă și funcționala a unui SGBD poate influența negativ
activitatea de analiză, prin restricțiile impuse de acesta c are pot î încuraja sau descuraja
anumite reprezentări;
luând ca reper facilitățile unui SGBD, utilizatorul neinformatician care nu
cunoaște bine SGBD -ul ales nu își poate exprima cerințele în deplina cunoștință de cauză.
Proiectarea structurii BD impune l uarea în considerare a SGBD -ului cu ajutorul
căruia va fi implementată și exploatată BD. Structura BD trebuie să reprezinte un modul
al datelor, exprimat în conceptele specifice unui anumit SGBD. Deci proprietatea
structurii BD reprezintă transpunerea mode lelor conceptuale în termenii unui model al
datelor acceptat de un SGBD.
Proiectarea structurii BD constă în parcurgerea următoarelor activități:
a) alegerea SGBD -ului care urmează a fi utilizat pentru implementare;
b) proiectarea schemei conceptuale a B D;
c) proiectarea schemei externe (subschemei) BD;
d) proiectarea schemei interne (subschemei) BD;
1.2.1.ALEGEREA SISTEMULUI DE GESTIUNE A BAZEI DE DATE
Alegerea SGBD -ului presupune efectuarea următoarelor activități:
1. Stabilirea cerințelor utilizat orilor sub aspectul: tipuri de aplicații; timpului de
raspuns; confidentialității datelor; securității datelor; usurință în utilizare; etc.
2. Stabilirea cerințelor de ordin tehnic printre care: portabilitatea SGBD, a
colecțiilor de date și a programelor; facilități obligatoriu de asigurat privind încărcarea,
exploatarea și întreținerea BD; etc.
3. Stabilirea cerințelor de ordin economic privind: încadrarea în bugetul alocat
pentru realizarea BD; timpul necesar pentru pregătirea utilizatorilor și trecerea l a
exploatarea curenta a BD, etc.
4. Ierarhizarea cerințelor stabilite la punctele 1 -3 în funcție de importanța acordata
Fiecărei cerințe.
5. Analiză comparativa a SGBD -urilor disponibile pentru alegerea unuia dintre
ele.
6. Stabilirea corespondenței între cerințele precizate la punctele 1,2,3 și
caracteristicile SGBD -urilor, analizate în scopul satisfacerii cerințelor formulate.
7. Alegerea SGBD -ului.
1.2.2.PROIECTAREA SCHEMEI CONCEPTUALE
Proiectarea schemei conceptuale impune desfăsurarea următoarelor a ctivități:
a) Stabilirea colecțiilor de date și definirea detaliata a conținutului acestora;
b) Determinarea legăturilor între colecțiile date și a modului de reprezentare a
acestora în cadrul schemei conceptuale;
c) Testarea schemei conceptuale și îmbună tățirea acesteia, dacă este cazul;
Descrierea schemei conceptuale în limbajul de descriere a datelor al SGBD și
încărcarea acestei descrieri în BD.
a) Stabilirea colecțiilor de date și definirea detaliata a conținutului acestora.
Are ca punct de plecare r ezultatele obținute în etapa de analiză a sistemului.
Fiecărei entități identificate în etapa de analiză îi corespunde, de obicei, o colecție de date
din cadrul schemei conceptuale. În cadrul acestor colecții se vor defini atributele
specifice entităților și atributele specifice pentru exprimarea legăturilor dintre
componentele sistemului real. Sunt cazuri când nu există o corespondență strictă între
entitățile din modelele semantice și colecțiile de date din schema conceptuală a BD,
deoarece, din considere nte de îmbunătățire a lucrului pe colecțiile de date, se poate
decide spargerea unei entități în două sau mai multe colecții de date.
Între atributele unei entități pot exista raporturi de determinare. Aceste
dependențe pot avea efecte negative asupra expl oatării BD, îndeosebi la actualizare. Din
acest motiv se recomandă descompunerea unei colecții mari de date în două sau mai
multe colecții mai mici, cu un număr mai mic de atribute. Dar o crestere prea mare a
numărului de colecții de date poate determina c reșterea dificultăților în satisfacerea
cerințelor informaționale impunând căi de acces prea lungi, BD devenind mai lentă.
Legăturile între un număr mare de colecții de date determină creșterea redundanței
datelor în BD și deci, o utilizare ineficientă a s uporturilor de enumerare.
În lucrul cu BD se introduc colecții de date care conțin unele rezultate obținute
prin prelucrarea datelor în BD, prelucrări care impun calcule costisitoare. Aceste colecții
măresc redundanța BD, dar reduc timpii de acces.
Pentru scurtarea căilor de acces la date se impune includerea unor atribute
concomitent în mai multe colecții ale BD, deci, redundanța mărita.
În cele ce urmează se va prezenta un exemplu de 2 colecții de date aparținând
unui institut de cercetători: una privind personalul și alta privind proiectele de derulare:
Colecția cercetătorilor stiințifici conține datele personale, datele referitoare la
activitatea stiințifica și identificatorii proiectelor la care lucreaza (a).
Colecția privind proiecte le de cercetare conține pentru fiecare proiect în parte
identificat prin cod proiect, tema, tipul proiectului precum și date referitoare la personalul
de cercetare al proiectului (b). a) b) – marca
– nume
– sex
– data angajarii
– titlul stiintific
– cod proiect CERCETĂTOR
I – cod proiect
– denumire tema
– tip proiect
– marca cercetator
– etc.
c) – cod proiect
– denumire tema
– tip proiect
– nume
– sex
PRO IECTE
– marca
– nume
– sex
– data angajarii
– titlul stiintific
– denumire tema
– tip proiect d) CERCETĂTOR
I PROIECTE
Obținerea unor informații complete despre un anumit proiect presupune
consultarea ambelor colecții.
Pentru scurtarea timpului de acces se poate recurge la includerea unor date des
solicitate cum ar fi numele și sexul cercetătorilor în colecția de date PROIECTE (c) și
similar, în colecția de date CERCETĂTORI se pot introduce de numirea temei și tipul
proiectului (d).
b) Determinarea legăturilor între colecțiile date și a modului de reprezentare a
acestora în cadrul schemei
Se pornește de la legăturile dintre entitățile identificate în etapa de analiză a
sistemului pentru stab ilirea cerințelor informaționale. Trebuie determinate și legăturile
dintre colecțiile care nu au un corespondent direct în entitățile sistemului, dar care se află
în asociere unele cu altele.
Modul de reprezentare a legăturilor depinde de modelul SGBD. Pen tru modelele
ierarhic și retea se utilizează pointeri (adrese de legătură) pentru înlănțuirea datelor.
Pentru modelul relațional, legăturile dintre colecțiile de date se reprezintă cu
ajutorul cheilor externe sau cu ajutorul unor colecții distincte.
c) Testarea schemei conceptuale și îmbunătățirea acesteia, dacă este cazul
Presupune determinarea gradului în care schema conține elementele
informaționale necesare satisfacerii cerințelor utilizatorilor și măsura în care elementele
informaționale reflecta ra porturile naturale dintre componentele sistemului. Mai trebuie
verificat și dacă redundanța datelor este la nivelul minim și dacă ea poate fi controlata.
Prin testare se identifică eventualele erori de proiectare care fac necesară
revizuirea schemei.
d) Descrierea schemei conceptuale în limbajul de descriere a datelor al SGBD și
încărcarea acestei descrieri în BD
Descrierea schemei se face prin intermediul limbajului de descriere a datelor de
care dispune SGBD -ul. Prin descriere se obtine proiectul BD sau schema BD (în
concepția CODASYL). Compilatorul LLD transcrie schema în formatul de memorare în
BD.
1.2.3.PROIECTAREA SCHEMEI EXTERNE
Schema externă a BD este forma de reprezentare a schemei conceptuale pentru un
utilizator oarecare. Programele de apl icații operează asupra elementelor schemei
conceptuale, numai prin intermediul schemei externe, avand acces doar la acele elemente
care sunt incluse în schema externă. În concepția CODASYL, schema externă reprezintă
o parte a schemei conceptuale.
1.2.4. PROIECTAREA SCHEMEI INTERNE
Schema conceptuală poate conține diferite forme de structurare a datelor: liniară,
arborescentă, retea, relațională. Memorarea datelor pe suportul fizic se face numai sub
forma unei structuri liniare. La proiectarea schemei int erne trebuie stabilită metoda de
liniarizare a schemei conceptuale. Metoda de liniarizare depinde de tipul SGBD -ului sau
de sistemele de operare sub care functioneaza BD.
1.3..ÎNCĂRCAREA DATELOR ÎN BD
Conținutul acestei etape este relativ simplu, dar vo lumul de muncă este foarte
mare și dependent de mărimea colecțiilor de date. În BD trebuiesc încărcate numai date
corecte și un număr minim de parcurgeri ale ciclului validare -corectare.
Principalele surse de alimentare cu date BD sunt documentele primare și colecțiile
de date gestionate prin diversele instrumente informatice cum ar fi sistemele de gestiune
a fișierelor.
Este recomandat ca înainte de încărcarea în BD să se constituie colecția temporara
de date (fișiere) astfel încât validarea datelor să se facă înainte de încărcarea lor în BD.
Trebuie ca numarul de validări la introducerea datelor în BD să fie cât mai mic, deoarece
acestea încetinesc execuția programelor și pot determina legături inexistente datorită
inexistentei unor date.
Cu cât validarea datelor este mai riguros facută prin utilizarea unor fișiere
temporale, cu atât programele de încărcare în BD sunt mai simple și mai robuste, iar
încărcarea mai rapidă.
1.4.EXPLOATAREA ȘI ÎNTREȚINEREA BD
Exploatarea BD de către utilizatorii finali are scopul satisfacerii cerințelor
informaționale ale acestora. SGBD -ul oferă utilizatorilor instrumente facile de exploatare
cum ar fi limbajele de manipulare a datelor.
Întreținerea BD este o activitate complexa care constă în actualizarea datelor din
BD și reproiectarea structurii BD atunci când este necesar. Această activitate este
independentă de administratorul BD. SGBD -ul, prin intermediul limbajelor de
manipulare, facilitează întreținerea BD. De asemenea, pot fi folosite utilitare pentru
generare de sta tistici privind activitatea BD, etc.
Dacă întreținerea BD devine foarte dificilă, atunci se poate lua decizia de
abordare a ei și realizarea unei noi BD, astfel concepută.
2. BAZE DE DATE RELAȚIONALE
2.1.Formalizarea procesului de ameliorare a
schemei conceptuale a BDR
Acest proces are ca scop automatizarea și creșterea rigorii prelucrării pentru
trecerea relatiilor dîntr -o forma normala în alta forma normala. Procesul de formalizare
impune introducerea unor noțiuni precum:
închiderea unui grup de atribute în raport cu un ansamblu de dependențe
funcționale;
proiecția unui ansamblu de dependențe pe un grup de atribute.
Cu ajutorul acestor noțiuni se pot formaliza atât procesele de identificare cât și
cele de eliminare a diferitelor categorii de d ependențe nedorite din cadrul relatiilor.
2.2.Tehnica diagramelor de dependență riguroasă
Se caracterizează prin faptul că proiectarea schemei conceptuale a BDR se
realizează prin compunerea directa a câmpurilor de date elementare (atribuite) în relati ile
complet normalizate. Aceasta tehnica a fost introdusa de Smith și presupune utilizarea
unor noțiuni și conventii specifice de reprezentare grafica și a unor promisiuni de lucru.
Principalele noțiuni și conventii de reprezentare grafica sunt:
Depende nte unice
Fie două atribute sau grupuri de atribute A și B. Se spune ca exista o dependență
unica de la A la B, notata cu A(B atunci când o realizare(valoare) a lui A determina o
singura realizare(valoare) a lui B.
Atributul (atributele) A poarta numele d e cheie -primara, iar când A este nenul se
determina total sau partial valoarea lui B.
Atributul (atributele) A poarta numele de element -tinta .
Dacă trei atribute (grupe de atribute) au concomitent dependente unice: A(B, B(C
și A(C, atunci dependență A(C p oarta numele de dependență tranzitiva și trebuie
eliminata.
Dependente multiple
Se spune ca exista o dependență multipla de la A la B și se noteaza cu A((B,
atunci când o realizare(valoare) a lui A determina o multime de realizari(valori) ale lui B.
Atributele (grupurile de atribute) A și B sunt chei dacă sunt nenule și fiecare combinatie
între A și B este unica. A poarta numele de cheie primara, iar B de cheie finala.
Dacă o cheia finala este în acelasi timp o cheie primara într -o alta
dependență(simpla sau multipla), atributul(atributele) cheii primare corespunzatoare cheii
finale poarta numele de cheie de legătura.
Exemplu:
:
A – cheie primara;
B – cheie de legătura;
C,D – chei finale.
Dacă o dependență unica sau multipla între două elemente nu m ai are sageti de la
sau inspre ea, se spune ca acesta este un element izolat. A C
D
3. Dependente duble(triple)
Reprezintă dependentele dintre un lant de chei de legătura, o cheie primara și o
cheie finala(tinta).
Exemplu:
4. Domeniul
Reprezintă o mu ltime de valori din care se extrag valorile câmpurilor de
date(atribute) care vor constitui o relatie. Diferitele câmpuri de date pot avea ca sursa un
acelasi domeniu, ceea ce face necesară utilizarea în cadrul diagramei a cate unui indicator
de domeniu pe ntru fiecare asemenea element.
Exemplu:
Prin (1) s -a desemnat domeniul marcilor utilizate în firma.
Tehnica diagramelor de dependență riguroasa presupune parcurgerea a două mari
grupuri de activități:
stabilirea dictionarului de atribute și a listelor de dependente;
determinarea schemei conceptuale a BDR.
Etapele de aplicare a tehnicii diagramelor de dependență riguroasa sunt prezentate
în schema din figura urmatoare:
COD
UTILA
J
MAR
CA COD
PIESA
NORM
A TIP
MARCA
MUNCITO
R
COD
ATELIER
NUME
MUNCITO
R
COD
ECHIPA SEF
ATELIER
SEF
ECHIPA
(1)
(1)
Stabilirea dictionarului de atribute
Stabilirea listelor de dependente a)
X W Y
Z Stabilirea dictionarului de atribute presupune inventarierea tuturor câmpurilo r de
date(atributelor) din cadrul modelului entitate -asociere. Rezultatul activității este
alcatuirea dictionarului de atribute.
Stabilirea listelor de dependente se face pe baza legăturilor dintre atribute și
exprimarea acestor legături. Algoritmul il co nstituie elaborarea elaborarea listelor de
dependente. La intocmirea listelor trebuie respectate urmatoarele cerințe principale:
fiecare atribut trebuie să posede un nume unic, cel din dictionar;
numele atributului să fie scris cu majuscule atât în listel e de dependente, cât și în
diagrame;
atributele trebuie să fie elementare;
trebuie realizata descrierea Fiecărei dependente în parte.
Intocmirea diagramelor de dependență riguroasa prin reprezentarea grafica a
dependentelor din cadrul listelor de dependen te. Diagramele trebuie să reflecte clar, fara
ambiguitati, dependentele unice sau multiple dintre elementele simple, duble sau triple și
să evidentieze elementele izolate.
Diagramele se intocmesc utilizand urmatoarele conventii:
fiecare legătura trebuie să prezinte un singur sens;
spre un element cheie primara trebuie să puncteze o singura sageata cu cap dublu
și nu mai multe.
Exemplu:
unde:
X – cheie primara;
W – cheie de legătura;
Y – elementul de tinta;
Z – cheia finala
În acest caz valoa rea lui W și valoarea lui X determina valoarea lui Y și/sau
valorile lui Z.
În timpul elaborarii diagramelor trebuie inlaturate toate dependentele tranzitive;
Elementele cheii de legătura pot fi legate cu un element cheie primara, avand grija
ca numai o s ageata cu cap dublu să puncteze spre elementul cheie primara sau spre un
element cheie de legătura;
Exemplu:
Se pot combina cheile de legătura și cheia primara în elemente duble/triple.
Elaborarea diagramelor trebuie să inceapa cu câmpurile de date( atribute) care sunt
cele mai importante pentru domeniul vizat. Aceste date poarta numele de “nucleu de
date” . Aceste atribute se vor constitui, în general, în chei de legătura și în chei primare.
Pentru reducerea numărului de atribute din cheia primara se recomanda utilizarea
cheilor surogat care servsc la divizarea cheilor primare prea lungi, transformandu -se în
cheie externă pentru o relatie în amonte și cheie primara(sau o portiune a ei) pentru
relatiile în avalansa.
Exemplu:
S1 este atributul s urogatul care se introduce în relatie și se obtin R11 și R12.
M N O P M N O
P
M:D M N:D N O:D O P:D P Q:D Q R:D R S:D S
M:D M N:D N O:D O S1:DS1
R1
R11
Sinteza relatiilor normalizate. Relatile complet normalizate sunt sintetizate pe
baza diagramelor de dependență riguroasa , prelucrandu -se dependentele unice,
dependentele pe cheie finala și el ementele izolate. Procesul de sinteza a relatiilor se
considera incheiat atunci când toate componentele diagramelor sunt transformate în
relatii.
Exemplu:
Compunerea atributelor în relatii se realizează prin urmatoarele actiuni:
Prelucrar ea dependentelor unice: B →G, G→H+I, G→H+J, K→L, și se obtin
relatiile R1, R2, R3:
Prelucrarea dependentelor pe cheie finala: D →→F și D→→E, rezultand relatiile
R3 și R4 A B C
D F
G
E H
K L J I
A:D A B:D B C:D C
R1
B:D B D:D D G:D G H:D H I:D I J:D J
R2
R3 R4
Supranormalizarea este recomandata pentru obținerea relatiilor complet
normalizate a tunci când proiectantul anticipeaza un volum mare de actualizari.Dacă în
utilizarea BD ponderea o constituie consultarile de date, normalizarea completa nu este
recomandata.
Intocmirea documentatiei referitoare la schema conceptuală a BDR
Listele de depend ență riguroasa constituie o documentatie a BDR. În aceasta
etapa se analizeaza o schita a schemei conceptuale a BDR care să reflecte toate relatiile
din BDR. Fiecare relatie este descrisa prin nume și atributele care o alcatuiesc. Cheile
primare se sublini aza cu o linie continua, iar cheile externe, cu o linie intrerupta.
Relatiile se aseaza în asa fel încât să se poata figura liniile de legătura: cheie
primara – cheie externă ajutand utilizatorul să inteleaga care sunt atributele cheie ce au
asociat un ace lasi domeniu.
2.3. PROIECTAREA ASISTATA DE CALCULATOR A
SCHEMEI CONCEPTUALE A BDR
Presupune utilizarea unor instrumente care să asiste și să automatizeze partial
procesul de proiectare a BDR. Are ca efect usurarea acestei activități și îmbunătățirea
consi derabila a rezultatelor obținute.
Un exemplu didactic este componenta de asistare a proiectarii a BD al
SGBDR SABRINA.
COM
B NAT
B
HELP B baza de
cunostinte
Schema
rationala
normalizat
a Motorul de
inferenta
PROLOG
Baza de
reguli de
proiectare
Baza de
date
utilizator reteaua semanticii
În acest exemplu, instrumentele de proiectare asistata apartin SGBDR. În aceste
cazuri aceste sunt complet separate.
Inter fata cu utilizatorul include:
modulul de prelucrare a limbajului natural(NAT);
modulul de prelucrare a limbajului de comanda(COM);
modulul explicativ(HELP) și modulul de coordonare a comunicarii(RUN).
Motorul de inferenta al sistemului expert de proiecta re asistata elaboreaza schema
conceptuală a BDR, pentru care sunt precizate:
schemele relatiilor componente aflate în FN3;
schemele relatiilor derivate necesare;
restricțiile de integritate asociate relatiilor.
2.3.1. PROIECTAREA SCHEMEI EXTERNE
Schema e xternă a BDR cuprinde ansamblul tabelelor de date la care are acces un
utilizator. Pentru o BDR, se considera ca are atatea scheme externe cati utilizatori exista
la un moment dat. Aceste scheme trebuiesc proiectate și apoi facute operaționale.
Schema exte rnă conține modelul de organizare și de structurare a datelor de care
are nevoie un utilizator pentru a -și satisface cerințele informaționale. Schema externă
reprezintă o partitie a schemei conceptuale a BDR. Ea mai poarta numele de subschema a
BDR.
Modulu l de structurare a datelor din schema externă poate fi acelasi cu cel din
schema conceptuală, când reprezintă o partitie efectiva a schemei conceptuale, sau poate
fi diferit.
Schema conceptuală trebuie să reprezinte un optim în raport cu ansamblul
cerințel or informaționale ale tuturor utilizatorilor, în timp ce schema externă urmareste
satisfacerea cerințelor informaționale ale unui utilizator.
Principalele etape de proiectare a schemei externe sunt:
determinarea domeniului de interes pentru un utilizator;
analiză structurala, dinamica și funcționala a acestui domeniu;
proiectarea schemei externe pe baza analizei de la punctul b);
Operationalizarea schemei externe. Presupune descrierea să în limbajul de
descriere a datelor al SGBDR, compilarea acestei descr ieri și încărcarea formei compilate
în BDR. Pentru a putea fi folosita de utilizator, acesta trebuie să primeasca drepturi de
acces la tabelele de date care compun schema externă.
Un alt mod mai practic de proiectare a schemei externe presupune parcurgere a
următoareloretape:
identificarea în cadrul schemei conceptuale a BDR, a datelor necesare unui
utilizator;
structura datelor identificate în etapa a) cu ajutorul mecanismului de definire a
view -urilor (relatii virtuale). Schema externă va fi formata din a nsamblul relatiilor da
baza și/sau relatiilor virtuale care conțin datele necesare utilizatorului;
testarea și îmbunătățirea schemei externe;
Operationalizarea schemei externe cu ajutorul mecanismului de acordare a
dreptului de acces.
2.3.2. PROIECTAREA S CHEMEI INTERNE
Consta în restabilirea structurilor de memorare a datelor pe suportul extern și
implementarea drumurilor de acces la date.
O metoda de lucru pentru proiectarea schemei interne este metoda arborilor de
predicate specifice SGBDR SABRINA care poate fi imoplementata și la alte sisteme.
U arbore de predicate reprezintă o metoda ierarhica de impartire a unei relatii în
subrelatii în scopul identificarii datelor care satisfacacelasi criteriu în aceeasi subrelatie.
Arborii de predicate permit regrup area multicriteriala a tuplurilor unei relatii,
plasand subrelatiile în zone fizice apropiate. Partitionarea logica definita de arbori de
predicate se traduce în partitionarea fizica. Arborii de predicate se utilizează pentru
definirea adreselor logice baz ate pe conținut și profil. Profilul unui nod este reprezentat
de concatenarea numărului de ramuri pe drumul care pleaca de la radacina arborelui și
ajunge în nodul respectiv. Acesta se exprima prîntr -un sir de biti. Asocierea dintre adresa
logica și partit ie definewste arborele de plasare a relatiei.
2.4. DIRECTII DE PERFECTIONARE A BDR
Modelul relațional are urmatoarele limite:
Utilizarea numai de atribute elementare cu un număr redus de tipuri predefinite.
Acest tip ne permite modelarea corespunzatoare a diversitatii de proprietati al obiectelor.
Simplitatea prea mare a modelului și structurarea artificiala pe colecții ca urmare
a urmare a procesului de normalizare a relatiilor.
Principalele limite ale SGBDR sunt:
Mijloace limitate de exprimare a re strictiilor de integritate;
Diferentele mari între tratarea datelor de către limbajele relaționale de manipulare
a datelor și limbajele evaluate de programe;
Absenta mecanismelor de lucru cu versiuni;
Controlul concurentei este orientat pe gestiune, tranza ctiile lungi nefiind tratate;
Saracia mecanismelor deductive;
Inflexibilitatea interfetelor cu utilizatorii. Din acest motiv se impune introducerea
unor tipuri de interfete adoptate aplicațiilor;
Lipsa mecanismelor de tratare a cerințelor recursive de date , pentru realizarea
prelucrarilor paralele în ceea ce priveste cererile de date și accesul la date;
Comportamentul reactiv al BDR în sensul ca reactia BDR se manifesta ca
raspuns, ca o consecinta a actiunilor realizate asupra BD.În vederea schimbarii acest ui
comportament și transformarea lui într -un comportament activ(BDR activa) trebuia ca
SGBDR să fie inzestrat cu mecanisme declansatoare care să permita initierea unor actiuni
ca urmare a unor evenimente asincrone din afara sau din interiorul BD. Aceste
mecanisme oferă, în general, facilități de tratare a actiunilor conditionate ce sunt
modelate prin reguli care exprima actiuni ce trebuiesc realizate într -un anumit context.
Pentru depasirea acestor limite se pot contura urmatoarele directii de perfectionare
a BDR:
Perfectionarea BDR în limitele modelului relațional.În acest sens se pot mentiona:
introducerea modelului relațional binar;
introducerea conceptului de BDR normalizata (modelul relațional cu valori
structurate). Un model în acest sens il constitui e modelul BDR fuzzy(atributele pot avea
valori fuzzy).
Extinderea modelului relațional și fuctionalitatea SGBDR dincolo de limitele
BDR. Astfel au aparut BD deductive care incorporeaza facilități interferentiala specifice
sistemelor expert.
3. DESPRE I NTEROGAREA BAZELOR DE DATE
În viitorul nu prea indepartat, multe firme își vor asigura profilul nu doar prin
utilizarea eficienta a resurselor traditionale: energie electrica, carbune, otel etc., ci mai
ales a acelei resurse numite INFORMATIE. Datele și i nformatiile acumulate într -o firma
reprezintă în fapt un valoros bun ce trebuie valorificat corespunzator. Pentru a -și
maximiza profitul, aceste date trebuie astfel organizate încât să poata fi utilizate în cel
mai eficient mod posibil. Aceasta consta de o bicei în crearea , întreținerea și utilizarea
unor baze de date pe sisteme de calcul moderne.
O baza de date este formata dîntr -o colecție de date diverse și un software care să
controleze accesul la acestea, cunoscut sub numele de sistem de gestiune al ba zelor de
date(SGBD). În fapt, un SGBD este un program ce furnizeaza o interfata între sistemul de
operare de pe sistemul de calcul respectiv și utilizator, cu scopul de a simplifica pe cât
posibil accesul la date.
Un SGBD indeplineste urmatoarele functii i mportante:
stocarea, regasirea și actualizarea datelor, astfel un SGBD permite utilizatorilor să
creeze și să manipuleze date într -un mod facil, fara a fi necesar să cunoasca structura
interna a datelor;
crearea și întreținerea dictionarului de date( catal ogul de sistem);
gestionarea facilitatilor legate de accesarea simultana a unor inregistrari ale bazei
de date de către mai multi utilizatori;
pastrarea unei copii de siguranta(“ back -up”) și posibilitatea de a recupera datele
în cazul “caderii” sistemului ;
probleme de securitate a datelor( parole de acces ale utilizatorilor, verificari,
vizualizari ale datelor, etc.);
Gestionarea informatiei sub forma unor baze de date prezinta o serie de avantaje
ce sunt prezentate în cele ce urmează:
Independenta datelor . Intr -o baza de date, datele sunt pastrate astfel încât
schmbarea structurii acesteia să nu afecteze nici unul din programele de aplicatie ce
utilizează datele din baza de date respectiva, spre deosebire de o abordare orientata spre
fișiere, unde o modifi care chiar nesemnificativa în structura fișierului poate necesita un
effort considerabil din partea programatorului.
Consistenta datelor. Modificarea articolelor din baza de date este perceputa de
fiecare dintre utilizatorii sistemului de baze de date.
Controlul redundanței. În sistemele de gestiune de baze neorientate spre baze de
date, aceeasi informatie poate fi pastrata în mai multe fișiere diferite și în consecinta
creste nejustificat spatiul ocupat pe disc, dar și în timpul consumat cu actualizarea da telor
redundante.
Integritatea datelor, în sensul corectitudinii lor. Un SGBD furnizeaza utilizatorilor
posibilitatea specificarii anumitor restrictii. Spre exemplu când se inregistreaza
O mai mare securitate a datelor. Astfel, un SGBD va asigura faptul ca doar
utilizatorii autorizati vor avea acces la date.
Un control centralizat al datelor, prin intermediul unui administrator al bazelor de
date.
O mai mare cantitate de informatie disponibila utilizatorilor. Cu un sistem de baze
de date, utilizatorii acces eaza informatia ce a fost anterior pastrata în fișiere aflate pe
sisteme de calcul diferite, chiar incompatibile între ele.
Orice SGBD modern furnizeaza un limbaj de interogare a datelor, de obicei tip
SQL(“Structured Data Language”) sau cel putin cateva instructiuni SQL ce permit
utilizatorilor să obt ina mult mai rapid și mai simplu informatiile dorite, decat dacă ar
utiliza un program scris într -un limbaj procedural pentru care efortul de programare nu ar
fi deloc neglijabil.
Limbajele de interogare pot fi clasificate în două categorii:
limbaje algebr ice, în care interogarile asupra relatiilor sunt exprimate prin
intermediul unor operatori aplicati asupra lor. În aceasta categorie se incadreaza limbajul
SQL.
limbaje bazate pe calculul relațional, în care interogarile asupra relatiilor sunt
exprimate pr in intermediul unor conditii pe care tuplele relatiilor trebuie să le satisfaca.
Aceasta categorie de limbaje se clasifica la randul ei în două categorii în funcție de
obiectul asupra căruia se aplica opeatia și anume:
b1) limbaje bazate pe calculul relați onal orientat pe tuple, în care conditiile se
aplica asupra tuplelor relatiilor, reprezentativ fiind aici QUEL, limbajul de interogare
Ingres;
b2) limbaje bazate pe calcul relațional orientat pe domenii, în care conditiile
domeniului din care ia valori atr ibutul relatiei. Reprezentativ pentru aceasta categorie
QBE, limbajul de interogre dezvoltat de IBM.
Pentru reprezentarea structurii logice a datelor dîntr -o baza de date s -au impus de –
a lungul ultimelor decenii trei modele și anume: modelul ierarhizat, ca re presupune
crearea unei structuri arborescente de reprezentare a datelor, modelul retea, în care
elementele ce reprezintă datele sunt legate între ele prin pointeri, formandu -se astfel o
retea și modelul relațional, aceasta din urma impunandu -se net în f ata celorlalte două,
fiind la ora acuala la baza realizarii majoritatii produselor software din lumea bazelor de
date.
3.1. Algebra relațională
Grupe de operatori
Limbajele algebrice se caracterizează prin faptul ca operează cu expresii
matematice co nstruite utilizand operatori specifici și operanzi reprezentati de tabele,
rezultatul acestor expresii fiind reprezentat tot de tabele.
Operatorii algebrei relaționale sunt structurati în două grupe:
Operatori logici, reprezentati de reuniune, intersectie, diferenta, produsul
cartezian;
Operatori relaționali reprezentati de:
operatori unari de restricti, și anume: selectia, proiecția;
operatori unari de extensie, și anume: compunerea, diviziunea.
3.2.Operatori logici
REUNIUNEA a două tabele R și S prezen tand aceeasi structura, ( R(S), unde R
este formata din n tupluri și S este formata din m tupluri, are ca rezultat o a treia tabela, T
avand aceeasi structura cu a tabelelor sursa și continand m+n tupluri.
INTRSECTIA a două tabele R și S, prezentand ac eeasi structura, ( R(S),
genereaza o a treia tabela, T( cu aceeasi structura), continand tutplurile identice
aparținând atât lui R, cât și lui S.
DIFERENTA dintre două tabele R și S, avand aceeasi structura (R -S), este
reprezentata de tabela T cuprinzand multimea tuplurilor apartinnd lui R, dar neapartinand
lui S. A B C
a1 b1 c1
a2 b2 c2
TABELA R
A B C
a3 b3 b3
a4 b4 c4
a5 b5 c5
TABELA S
A B C
a1 b1 c1
a2 b2 c2
a3 b3 b3
a4 b4 c4
a5 b5 c5
TABELA T REUNIUNE (R;S)
A B C
a4 b4 c4
TABELA T INTERSECTIE (R;S) A B C
a1 b1 c1
a2 b2 c2
a4 b4 c4
TABELA R
A B C
a3 b3 b3
a4 b4 c4
a5 b5 c5
TABELA S
PRODUSUL CARTESIAN a oua tabele R și S(
R(S) este reprezentat de tabela T, stocand multimea
perechilor obținute prin concatenarea inr egistrarilor aparținând lui R cu cele aparținând
lui S.
3
.3. Operatori relaționali A B C
a1 b1 c1
a2 b2 c2
TABELA R
A B C
a3 b3 b3
a4 b4 c4
a5 b5 c5
TABELA S
A B C
a1 b1 c1
a2 b2 c2
TABELA T DIFERENTA (R;S)
A B
a1 b1
a2 b2
TABELA R
A B C
a1 b1 c1
a2 b2 c2
TABELA S
A B C D E
a1 b1 c1 d1 e1
a1 b1 c2 d2 e2
a1 b1 c3 d3 e3
a2 b2 c1 d1 e1
a2 b2 c2 d2 e2
a2 b2 c3 d3 e3
TABELA T PROD (R;S)
SELECTIA aplicata asupra unei tabele R, stocand ntupluri, genereaza o noua
tabela R1, prezentand aceeasi structura, dar stocand m tupluri( m<=n).
R1SEL( R;<conditie>)
Conditia se construieste utilizand:
Operatorii logici: AND, OR, NOT
Operatorii de comparare: =,<,>,<=,>=,<>
PROIECȚIA aplicata asupra unei tabele R, prezentand gradul n, va genera o noua
tabela R1, prezentand gradul m( m<=n) și sto cand acelasi număr de tupluri ca și R.
Proiecția se poate realiza:
Prin eliminarea valorilor duplicate returnate( PROI);
Prin returnarea valorilor returnate, inclusiv a celor duplicate ( PROID).
COMPUNEREA( JOIN) se aplica asupra a două tabele R și S care prezinta în
structura lor un atribut comun( numit atribut de jonctiune) și genereaza o noua tabela T
cu o structura complexa formata implicit din multimea atributelor tabelelor sursa. A B
a1 b1
a2 b2
TABELA R1
A B
a1 b1
a2 b2
a3 b3
TABELA R
R1SEL(R;A=a2 or
A=a3)
A B
a1 b1
a2 b2
a3 b3
TABELA R1
A B C D
a1 b1 c1 d1
a2 b2 c2 d2
a3 b3 c3 d3
TABELA R
R1PROI(R;A,
B)
A B C
a1 b1 c1
TABELA R B D
b1 d1
b1 d2
TABELA S
TJOIN(R,S;A iBj)
unde:
( reprezintă conditia de compunere
( ( {= ,<,>,<=,>=,<>}
Tabela T rezultata:
DIVIZIUNEA
realizează impartirea unuei tabele binare RS de grad x+y la o relatie unara S de grad y,
catul find reprezentat de tabela R de grad x.
T
EHN
OLO
GII SI
LIMB
AJE
FOLO
SITE
S
curt istoric al limbajului SQL
A B C D
a1 b1 c1 d1
a1 b1 c1 d2
TABELA T
A B C D E
a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d3 e3
a3 b3 c3 d3 e3
TABELA RS
C D E
c1 d1 e1
c2 d2 e2
c3 d3 e3
c3 d3 e3
TABELA S
A B
a1 b1
a2 b2
a3 b3
a3 b3
TABELA R
SQL a fost conceput ca un limbaj standard de descriere a datelor și acces la
informatiile din bazele de date, ulterior dezvoltandu -se ca o adevarata tehnologie dedicata
arhitecturilor client/server.
Utilizat initial de către firma I.B.M. pentru produsul D B2, limbajul de interogare a
bazelor de date relaționale SQL(“Structured Query Language”) a devenit la mijlocul
decenului trecut un standard de facto în domeniu. De atunci și pana în prezent au fost
dezvoltate un număr de sapte versiuni ale standardului SQ L, trei dintre acestea aparținând
Institutului National American de Standarde( ANSI), celelalte fiind concepute de firme
de prestigiu ca IBM. Microsoft și Borland, sau de către consortiile industriale SAG( “The
SQL Access Group”) și X/Open, primul format d in sute de firme ce comercializeaza
software pentru baze de date, iar cel din urma orientat spre activități de promovare a
standardelor în domeniul sistemelor deschise. Din pacate, lipsa unui standard unic SQL,
are drept consecinte creșterea costurilor pro gramelor de gestiune a bazelor de date și
ingreuneaza întreținerea arhitecturilor client/server.
Primul standard SQL a fost creat în anul 1989 de către ANSI fiind cunoscut sub
numele de ANSI -SQL’89 și a fost revizuit în octombrie 1992 sub noua denumire ANS I-
SQL’92. Proliferarea între timp a diferitelor implementari ale limbajului SQL a
determinat formarea consortiului SAG, cu scopul de a concepe un set de standarde SQL,
care să aiba la baza un subset al standardului ANSI -SQL’89 și în plus să rezolve
problem e legate de implementarea acestora în arhitecturi client/server cum ar fi
conectivitatea și interfete cu utilizatorul ale programelor.
În anul 1992 firma Microsoft în calitate de membru SAG a lansat pe piata
produsul ODBC( “Open Database Connectivity”), un standard API -SQL ce are la baza un
proiect de standard și defineste o interfata de programare a aplicațiilor( API) pentru a
accesul la bazele de date.
Cauzele care au determinat proliferarea unui număr atât de mare de standarde
SQL rezida în esenta în fa ptul ca acestea sunt concepute ca un set de recomandari, ceea
ce lasa loc pentru interpretari variate în ce priveste specificatiile limbajului și
implementarea lui în aplicații.
Interfata de programare cunoscuta în domeniu sub initialele API, oferă o cale de
comunicare între programe și bazele de date prin apeluri de functii care substituie
instructiunile SQL. Astfel, standardele API se bazeaza pe conectivitate și anume
conectarea utilizatorului la baza de date, precum și schimbul de date și mesaje SQL.
Concluzionand, în viitorul apropiat nu se intrevad schimbri majore în domeniul
standardelor SQL care să impuna renuntarea în mare parte la tot ce s -a realizat pana în
prezent.
Descrierea comenzilor SQL
SQL este un limbaj simplu și în consecinta accesibil t uturor utilizatorilor. Se
fundamenteaza în principal pe conceptul de bloc de cerere care se poate formaliza, dupa
cum urmează:
<bloc de cerere>
lista de atribute
din lista tabele ale bazei de date
criteriu de indeplinit <expresie>
unde: lista de atribute cuprinde atribute din structura tabelei sursa sau atribute
calculate pe baza celor existente în tabela/tabele sursa.
Limbajul SQL pune la dispozitia utilizatorilor urmatoarele categorii de comenzi:
Comenzi SQL de descriere a datelor, permitand definirea t abelelor reale și
virtuale ale bazei de date, modificarea structurii tabelelor, stergerea tabelelor și a
indecsilor( CREATE TABLE, CREATE VIEW,ALTER TABLE, DROP TABLE, DROP
INDEX
Comenzi SQL de manipulare a datelor, permitand inserarea, stergerea și
actualizarea de tuplu ri( INSERT, DELETE, UPDATE);
Comenzi de interogare a datelor, permitand regasirea, selectarea și afisarea datelor
( SELECT);
Comnzi de control a datelor, permitand atribuirea și/sau revocarea dreptului de
acces la date( GRANT, REVOKE).
În continuare se va trece la explicarea comenzilor.
Comenzi SQL de descriere a datelor
Crearea tabelelorse realizează prin lansarea comenzii Create Table prezentand
urmatoarea sintaxa:
CREATE TABLE<nume tabela> ([atribut 1] tip -atribut1 (dimensiune) [,[atribut
2] tip -atribut2 (dimensiune) …] )
CONSTRAINT nume -index {PRIMARY KEY | UNIQUE ([ATRIBUT])};
unde :
atribut 1, atribut 2,…, atribut n reprezintă atributele definite în cadrul tabelei;
tip-atribut specifica natura atributului( tipul atributului);
primary key permite specificarea atributului cu rol de cheie primara pe care se
construieste un index.
Dacă se doreste modificarea structurii tabelei prin adaugarea unui nou atrubut se
va folosi comanda ALTER TABLE:
ALTER TABLE nume -tabela ADD COLUNM nume -atribut tip [NOT
NULL],…;
Stergerea unei tabele se realizează cu comanda DROP TABLE avand sintaxa:
DROP TABLE nume -tabela;
Crearea tabelelor virtuale, view -ui, permite definirea unor “ferestre” prin care se
poate “privi” în tabele sau, altfel spus, putem vizualiza datele dorite dîntr -o tabela
specificata:
CREATE TABLE nume -view [(nume -atribut),…] AS cerere;
Comenzi de manipulare a datelor
Pentru inserarea unui tuplu într -o tabela se realizează comanda INSERT,
prezentand urmatoarea sintxa:
INSERT INTO nume -tabela [(nume -atribut,…)] {VALUES (valoare,…)|cerere}
Actualizarea datelor dîntr -o tabela se realizează prin comanda UPDATE:
UPDATE nume -tabela SET{nume -atribut=expresie,…|(nume –
atribut=subcerere),…} [Where conditie];
Noua realizare a atributului actualizat se preci zeaza prin expresie sau este returnat
de subcererea precizata. Clauza where permite selectarea tuplurilor afectate de
actualizare.
Comenzi SQL de interogare a datelor
O cerință a utilizatorului de selectare a datelor relaționala se exprima prin ceea ce
am numit un bloc de cerere.
Un bloc de cerere în SQL prezinta urmatoarea sintaxa simplificata:
SELECT [ALL/DISTINCT/DISTINCTROW] lista atribute
FROM nume -tabele
[Where criteriu -de-cautare]
[Group BY atribut –de-grupare]
[HAVING criteriu -de-grupare]
[ORDER B Y criteriu -de-ordonare[ASC|DESC]]
unde:
lista-atribute – specifica atributele ale caror valori vor fi returnate;
nume -tabele – specifica tabelele din care se vor extrage datele;
ALL – specifica returnarea tuturor tutplurilor care indeplinesc conditii le
precizate în blocul de cerere;
DISTINCTROW – vizeaza inregistrari duplicate care nu vor fi returnate în
urma executarii cererii;
WHERE – permite, prin precizarea unei expresii, exprimarea criteriului de
selectie;
ORDER BY – precizeaza atributul dupa care se face ordonarea;
GROUP BY – folosit pentru a partitiona o relatie în grupuri, acordand acestora
valori pe un atribut sau lista de atribute;
HAVING – folosit pentru a specifica criterii de selectie pe grupuri de tupluri.
Operatorii utilizati în b locurile de cereri
În construirea blocurilor de cereri se pot folosi urmatorii operatori:
operatori aritmetici: +, -, *, / etc.
operatori logici: and, or, not
operatori de atribute și comparare: >, <, =, <=, >=, <>
Comenzi SQL de control
Acordarea drep turilor unor utilizatori de a utiliza baza de date sau de a lucra cu
obiecte ale bazei de date definite de alti utilizatori se realizează folosind comanda
GRANT.
GRANT [CONNECT] [RESOURCE] TO utilizator,… [IDENTIFIED BY
parola,…]
GRANT {privilegiu, privile giu,…|ALL} ON tabela TO {utilizator|PUBLIC};
Prima sintaxa permite utilizatoului precizat în clauza TO să se conecteze la baza
de date, respectiv să -și creeze propriile tabele.
Cea de -a două sintaxa permite actiunile( privilegiile) de care dispune un utili zator
sau toti utilizatorii( PUBLIC) aupra tabelei spacificate.
Anularea drepturilor acordate se realizează utilizand comanda REVOKE;
REVOKE {privilegiu,…|ALL} ON tabela FROM{utilizator,…|PUBLIC}
4. INTRODUCERE ÎN PHP
4.1. Ce este PH P?
4.2. Ce poate face PHP?
4.3. O scurta istorie despre PHP.
4.1. Ce este PHP?
PHP este un limbaj de scripting inserat în html pentru partea de server.
Ce inseamna asta? Pentru a intelegere se va prezenta un simplu exemplu:
Se observa cât de diferi t este acesta de un script CGI scris în alte limbaje ca Perl
sau C –în loc de a scrie un program cu multe comenzi pentru a genera cod HTML se scrie
un script HML cu ceva cod inserat în el pentru a face o anumita actiune( în acest caz de a
scrie un text). C odul Php este inclus în taburile speciale de start și end ce permit intrarea
și iesirea în modul php. <html>
<head>
<title>Exampl e</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
Lucrul care distinge PHP -ul de un alt limbaj( de exemplu JavaScrip) este ca codul
este executat pe server. Dacă ar exista un cod similar cu cel de mai su s pe server, clientul
ar primi rezultatele executarii sciptului, dar nu și -ar da seama care este codul care
genereaza.Se poate chiar configua serverul de web ca să proceseze toate fișierele html cu
php, astfel încât utilizatorii nu pot vedea sursele pagini i.
4.2. Ce poate face PHP?
La nivelul cel mai de baza, PHP face ce face orice alt program CGI, a de exemplu
să conecteze date, să genereze pagini dinamice, să trimita și să primeasca cookies.
Probabil ca cea mai puternica și mai importanta trasatura a PH P-ului este faptul ca
suporta o mare varietate de baze de date. Urmatoarele baze de date sunt suportate în
prezent:
Adabas D Ingres Oracle (OCI7 and OCI8)
Dbase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read -only) MSQL Solid
Hyperwave Direct MS -SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
De asemenea php -ul poate comunica cu lte servicii folosind protocoale ca: IMAP,
SNMP, NNTP, POP3, HTTP și multe altele.
4.3. O scurta istorie despre PHP
PHP a fost conceput candva în to amna anului 1994 de către Rasmus Lerdorf.
Versiuni aneriore nepublicae erau folosite pe pagina lui pentru a tine evidenta celor ce se
uitau la Curricullum Vitae. Prima versiune folosita de altii a fost disponibila în prima
parte a anului 1995 și era cunosc uta sub numele “Personal Home Page Tools” . Era
alcatuit dîntr -un foarte simplistic motor parser ce intelegea doar cateva macrouri și cateva
utilitare ce se foloseau atunci pe paginile web. Parserul a fost rescris pe la jumatatea
anului 1995 și se numea PH P/FI Version 2. Numele de FI venea de la un alt pachet pe
care Rasmuns il scrisese care interpreta formuri html. El a combinat scripturile uilitarelor
personal page cu Form Interpreter și a adaugat suport mSQL și astfel s -a nascut PHP/FI.
PHP/FI a crescut în ritm uluitor și oamenii au inceput să -și aduca contributia la codul lui.
Este dificil de dat statistici dar se estimeaza ca la sfarsitul lui 1996 PHP/FI se
folosea pe 15000 de site -uri. La jumatatea lui 1997 numarul crescuse pana la 50000. La
jumatatea lui 1997 s -a facut o schimbare la dezvoltarea PHP -ului. din micul proiect al lui
Rasmus a devenit lucrarea a unui grup de oameni. Parserul a fost rescris de la zero de
către Zeev Suraski și Andi Gutmans și el a format baza pentru php versiunea 3. Mult cod
a fost pastrat din PHP/FI și mult a fost rescris.
Ultima versiune PHP4 foloseste motrul de scripting Zend pentru o mai mare
performanta suporta și o mai larga libertate de librarii și extensii și ruleaza ca un modul
nativ de server pe toate serverele web c unoscute. Astazi php3 sau php4 se livreaza cu un
număr de produse comerciale cum ar fi Red Hat's Stronghold web server. În momentul de
fata se foloseste php -ul pe 5.100.000 de site -uri.Aceasta inseamna putin mai mult decat
numarul de site -uri pe care rulea za serverul Microsoft's IIS ( acesta din urma ruland pe
5030000 site -ri).
Sunt patru moduri de a iesi din html și a intra în modul php
Primul mod este disponibil doar dacă optiunea de marcaje scurte( short tags) a
fost activata. Aceasta poate fi facu tă activand în php config file, optiunea short open tags.
A două metoda este etoda preferata în eneral deoarece permite noi generatii de xhtml să
fie implementata usor cu php.Al 4 -lea mod este disponibil doar dacă marcajele tip asp au
fost actiate folosind setarea de configurare asp tags.
Instructiunile sunt sparate ca în C sau Perl adica cu caracterul ”;”. Marcajul de
incheiere(?>) indica sarsitul instructiunii.
4.4. Instalare
Kit-ul se aduce de la adresa http://www.php.net/downloads.php. Dupa ce se aduc e
de la aceasta adresa( la proiectul de fata s -a adus ultima versiune – PHP 4.0.5 [4,590Kb] –
30 April 2001) pachetul se desface într -un director(de exemplu Php).
Configurare
Se cauta fișierul php3 -ini-dist în directorul "C:/php".
Se va redenumi ca php 3.ini 1. <? echo ("this is the simplest, an SGML processing
instruction \n"); ?>
2. <?php echo("if you want to serve XH TML or XML documents, do
like this \n"); ?>
3. <script language="php">
echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
4. <% echo ("You may optionally use ASP -style tags"); %>
<%= $vari able; # This is a shortcut for "<%echo .." %>
Se editeaza în Notepad (sau în alt editor) și se cautata textul "extension_dir" în
php.ini și se schimbata randul în : extension_dir = C: \php
Se decomenteaza linia: extension=php_mysql.dll
Se copiaza fișierul php.ini în directorul c: \Window
4.5. D escrierea limbajului
Numere intregi
Pot fi specifiate folosind una din urmatarele sintaxe:
M
ărimea unui intreg este dependență de platforma pe cae ruleaza desi valoarea maxima de
2 miliarde este cea obisnuita adica valoarea pe 32 biti
Numere cu virg ula mobila
Numerele cu virgula mobila(double) pot fi specificate folosind una din
urmatoarele sintaxe:
Mărimea unui număr cu virgula mobila este dependență de platforma pe care
ruleaza desi valoarea maxima de 1.8e308 cu precizie de 14 cifre este valoa rea obisnuita(
format IEEE pe 64 biti).
Sirurile
Pentru siruri sunt două seturi de delimitare. Dacă sirul este inclus între ghilimele
variabilele sirului vor fi expandate. Ca și în C și Perl caracterul backslash poate fi folosit
pentru a specifica caracter e speciale: $a = 1234; # numar zecimal
$a = -123; # numar negativ
$a = 0123; # numar octal
$a = 0x12; # numar hexazecimal
$a = 1.234;
$a = 1.2e3;
\n linefeed (LF or 0x0A în ASCII)
\r carriage return (CR or 0x0D în ASCII)
\t horizontal tab (HT or 0x09 în ASCII)
\\ Backslash
\$ Dolar
\" double -quote
\[0-7]{1,3} secventa de caractere în notare octala
\x[0-9A-Fa-f]{1,2} secventa de caractere în notare hexazecimala
Vectori
PHP suporta vectori scalari și asociativi. De fapt nu exista nici o diferenta între
cei doi. Se poate crea un vector folosind functiile list sau array sau se poate seta explicit
fiecare valoare a elementelor vec torului.
Se poate crea un vector adaugand valori vectorului. Când se asigneaza o valoare
unui variabile tip vector nedand nici un argument, valoarea va i adaugata la sfarsitul
vectorului.
Operatori aritmetici
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
$a[ ] = "hello"; // $a[2] == "hello"
$a[ ] = "world"; // $a[3] == "world"
Adunarea operatorilor
Exemplu Nume Rezultat
$a + $b Adunare Suma dintre $a și $b.
$a – $b Scadere Diferenta dintre $a și $b.
$a * $b Inmultire Produsul dintre $a și $b.
$a / $b Impartire Catul dintre $a și $b.
$a % $b Modulul Restul dintre $a și $b.
Compararea operatorilor
Exemplu Nume Rezultat
$a == $b Egalitate Adevarat dacă $a este egal cu $b.
$a === $b Identic Adevarat dacă $a este egal cu $b și sunt de
acelasi tip( numai la PHP 4).
$a != $b Nu sunt egale Adevarat dacă $a nu este egal cu $b.
$a !== $b Nu sunt identice Adeva rat dacă $a nu este egal cu $b, sau
nu sunt de acelasi tip. ( numai la PHP 4).
$a < $b Mai mic decat Adevarat dacă $a este strict mai mic decat
$b.
$a > $b Mai mare Adevarat dacă $a strict mai mare decat $b.
$a <= $b Mai mic sau egal Adevarat dacă $a este mai mic sau egal cu
$b.
$a >= $b Mai mare sau egal Adevarat dacă $a mai mare sau egal cu $b.
Incrementarea/Decrementarea operatorilor
Exemplu Nume Rezultat
++$a Pre-incrementare Incrementeaza $a , apoi returneaza $a.
$a++ Post-incrementare Returneaza $a, then increments $a by one.
–$a Pre-decrementare Decrementeaza $a by one, then returns $a.
$a– Post-decrementare Returneaza $a, then decrements $a by one
Operatori logici
Exemplu Nume Rezultat
$a and $b And Adevarat dacă și $a și $b su nt adevarate.
$a or $b Or Adevarat dacă ori $a ori $b este adevarat.
$a xor $b Xor Adevarat dacă ori $a ori $b este adevarat,
dar nu amandoua.
! $a Not Adevarat dacă $a este fals.
$a && $b And Adevarat dacă și $a și $b sunt adevarate.
$a || $b Or Adev arat dacă ori $a ori $b este adevarat.
Prezentarea instructiunilor
În acest capitol se vor prezenta acele instructiuni care se regasesc în acest proiect.
if
Sintaxa:
Dacă evaluarea expr este TRUE, atunci PHP executa statement iar dacă evaluarea
este FALSE atunci va ignora statement.
În continuare se va prezenta un exemplu concret:
if (expr)
statement
Dacă sunt mai multe statement de executat, atunci instructiunea if ca arata ca mai
jos:
else
Instructiunea if -else permite programarea unei structuri de decizie î n care o
conditie( rezultatul evaluarii unei expresii) determina:
executarea sau nu a unei secvente de intructiuni;
executarea unei secvente în două alternative.
while
Instructiunea while permite programarea ciclurilor cu test
if ($a > $b)
print "acesta este un exemplu";
if ($a > $b) {
print "a este mai mare ca b";
$b = $a;
}
if ($a > $b) {
print "a est e mai mare decat b";
} else {
print "a nu este mai mare decat b";
}
while (expr)
statement
Instructiunea se exe cuta de mai multe ori cât timp conditia testata( expr) este
adevarata( nenula).
for
Instructiunea for are o definitie care îi extinde mult domeniul de aplicare. Ea oferă
cea mai compacta metoda de programare a ciclurilor cu test initial, motiv pentru care este
cel mai des folosita.
Aceasta forma reprezintă de fapt forma compactizata a unui ciclu while. Efectul
este similar cu al secventei:
$i = 1;
while ($i <= 10)
{
print $i++;
}
for (expr1; expr2; expr3)
statement
expresie1;
while(expresie 2)
{
instructiune
expre sie3;
}
Rolurile celor trei expresii sunt definite în felul urmator:
expresia1 se evalueaza o singur data, inain tea primei iteratii, pentru a efectua
initializarile necesare;
expresia 2 este evaluata și testata inaintea Fiecărei iteratii și reprezintă conditia de
iesire din ciclu;
expresia 3 se evalueaza la sfarsitul Fiecărei iteratii, pentru actualizarea
parametril or ciclului.
break
Instructiunea break se utilizează numai în două contexte:
în instructiunea swich, pentru a marca incheierea secventei de instructiuni
asociate unui selector case și iesirea din instructiunea switch.
În instructiunile de ciclare, pent ru a detrmina iesirea fortata dîntr -un cilu while,
do-while sau for, indiferent de valoarea conditiei de ciclare.
1.1. HTML
Creat în Elvetia în anul 1989, HTML este utilizat pentru crearea paginilor Web.
Utilizarea HTML propune scrierea textului, tabele lor si referintelor la imaginile incadrate
in pagina web, iar apoi se adauga tag -urile HTML pentru a descrie amplasarea
elementelor in pagina. Paginile Web pot fi vizionate prin intermediul unor programe
speciale, numite browser e, care sunt capabile sa int erpreteze limbajul HTML. HTML
dispune de un set de predefinit de tag -uri, nu puteti crea tag -uri proprii. Pentru a complica
lucrurile, exista versiuni diferite de browsere si versiuni diferite ale limbajului HTML, un
tag recunoscut de un browser nu poate f i recunoscut de un browser diferit sau mai putin
recent. Urmeaza cîteva exemple de tag -uri HTML:
<B>…..</B> Pentru text boldat
<U>…..</U> Pentru text subliniat
<I>…..</I> Pentru text italic
<P>…..</P> Pentru a începe un paragraf nou
<TABLE>…..</TABLE> Pentru a insera un tabel
<TITLE >…..</TITLE> Pentru a intitula o pagina
Tag-urile HTML indica efectele aplicate diferitor parti de pagina în programele
browser (asa ca Netscape Navigator si Internet Explorer). Prima versiune a HTML
continea mai putin de 30 de tag -uri. Odata cu dezvoltarea web -ului, au aparut mai multe
idei pentru îmbunatatirea acestuia. În cea mai recenta versiune sunt mai putin de o suta de
tag-uri de baza HTML. Implementarea efectelor dorite poate fi capatata si cu un numar
mai mic dec ît acesta. Majoritatea tag -urilor HTML trebuie sa fie deschise <A>, apoi
închise </A>. Urmeaza o propozitie -exemplu: Majoritatea programelor de editare a
textului pot prezenta textul în font boldat , Italic si subliniat. Codul HTML pentru aceasta
propozitie este: <P> Majoritatea programelor de editare a textului pot prezenta textul în
<B> bold, </B> <I>italic, </I> si <U> subliniat </U>. </P> Tag -urile HTML (<B> si
</B>) de pe ambele parti ale cuvîntului “bold” fac ca acest cuvînt sa apara în bold, chiar
daca cuvîntul bold nu apare boldat în cod. Tag -urile HTML nu sunt vazute în browser.
Editoarele HTML Editoarele HTML va usureaza munca deoarece sînt capabile sa
insereze codul HTML în documentul dumneavoastra. De aceea nu este necesar sa
cunoasteti codul HTML , editorul transforma automat design -ul un cod HTML. Editoarele
HTML mai sunt considerati folositori si datorita urmatoarelor doua cauze: nu sunteti
obligati sa memorizati toate tag -urile si nu ve -ti perde timpul la tiparirea lor. Pe lînga
toate acestea ed itoarele HTML permit atît adaugarea, stergerea si modificarea textului, cît
si inserarea imaginilor, tabelelor si tintelor (targets). Ele de asemenea permit miscarea si
lichidarea legaturilor (links) si a imaginilor de pe pagina, iar apoi publicarea pagini i
propriu -zis în Internet. Drept exemple de editoare HTML servesc Microsoft Front Page si
Netscape Composer.
Antet
<h#> … </h#> #=1, 2, 3, 4, 5, 6
<h1>La multi ani!</h1> La multi ani!
<h2>La multi ani!</h2> La multi ani!
<h3>La multi ani!</h3> La multi an i!
<h4>La multi ani!</h4> La multi ani!
<h5>La multi ani!</h5> La multi ani!
<h6>La multi ani!</h6> La multi ani!
<hn> –</hn> intarit.
<hn> –</hn> insereaza o linie goala fara a fi nevoie de tag -ul <p>
Nu pot afisa fonte de dimensiuni diferite in aceeasi linie.
Dimensiune font
<font size=#> … </font> #=1, 2, 3, 4, 5, 6, 7 or +#, -# (pe o portiune de text)
<basefont size=#> #=1, 2, 3, 4, 5, 6, 7 (pentru toata pagina)
<font size=7>La multi ani!</font> La multi ani!
<font size=6>La multi ani!</font> La mu lti ani!
<font size=5>La multi ani!</font> La multi ani!
<font size=4>La multi ani!</font> La multi ani!
<font size=3>La multi ani!</font> La multi ani!
<font size=2>La multi ani!</font> La multi ani!
<font size=1>La multi ani!</font> La multi ani!
Marcare fizica
<b>La multi ani!</b> La multi ani!
<i>La multi ani!</i> La multi ani!
<u>La multi ani!</u> La multi ani!
<tt>La multi ani!</tt> La multi ani!
<sup>La multi ani!</sup> La multi ani!
<sub>La multi ani!</sub> La multi ani!
<s>La multi ani!</s> La mul ti ani!
<strike>La multi ani!</strike> La multi ani!
Marcare logica
<em>La multi ani!</em> La multi ani!
<strong>La multi ani!</strong> La multi ani!
<code>La multi ani!</code> La multi ani!
<samp>La multi ani!</samp> La multi ani!
<kbd>La multi ani!</kbd > La multi ani!
<var>!</var> La multi ani!
<dfn>La multi ani!</dfn> La multi ani!
<cite>La multi ani!</cite> La multi ani!
<small>La multi ani!</small> La multi ani!
<big>La multi ani!</big> La multi ani!
Dimensiuni si atribute
<i><font size=5>
<b>La</b> multi <font size=6> ani!</font>
</font></i>
La multi ani!
Culoare font
Culoarea specificata <font color=#> … </font>
#=rrggbb numar hexazecimal sau numele culorii:
Black = "#000000" Olive = "#808000"
Teal = "#008080" Red = "#FF0000"
Blue = "#0000F F" Maroon = "#800000"
Navy = "#000080" Gray = "#808080"
Lime = "#00FF00" Fuchsia = "#FF00FF"
White = "#FFFFFF" Green = "#008000"
Purple = "#800080" Silver = "#C0C0C0"
Yellow = "#FFFF00" Aqua = "#00FFFF"
<font color=ffffff>White</font> &
<font color=white>White</font>
Tipuri de fonte
<font face="#"> … </font>
#=fonte disponibile
<font face="Arial, Helvetica"> Noroc!</font>
Noroc!
Entitati
&#; #=cuvant cheie sau codul ascii
Caractere in HTML4.0
& &
< <
> >
" "
Structur a unui document
<html>…</html>
<head>…</head>
<body>…</body>
<HTML> <HEAD> <title>, <base>, <link>, <isindex>, <meta> </HEAD>
<BODY> Corpul unui document </BODY> </HTML>
Set de caractere
<meta http -equiv="Content -Type" content="text/html;charset=# ">
#=
us-ascii, iso -8859 -1, x -mac-roman, iso -8859 -2, x -mac-ce,
iso-2022 -jp, x -sjis, x -euc-jp,
euc-kr, iso -2022 -kr,
gb2312, gb_2312 -80,
x-euc-tw, x -cns11643 -1, x-cns11643 -2, big5
Se poate specifica codul setului de caractere pentru fiecare document HTML. Se
utilizeaza pentru cei care vor sa scrie cu alt set de caractere decat cel implicit. Daca
codificatorul se specifica in documentul HTML, browserul poate schimba automat in
setul de caractere precizat. In special cand se folosesc alte entitati, este bine sa se
specifice setul de caractere (de ex: iso -8859 -1). Entitatile vor aparea modificate la
accesarea documentului de catre alte browsere.
Culoare de fond si text
<body bgcolor=# text=# link=# alink=# vlink=#>
bgcolor – culoarea de fond
text – culoarea textului
link – culoarea legaturii
alink – culoarea legaturii la activare
vlink – culoarea legaturii dupa activare
#=rrggbb numar hexazecimal sau numele culorii:
Black = "#000000" Olive = "#808000"
Teal = "#008080" Red = "#FF0000"
Blue = "#0000FF" Maroon = "#800000"
Navy = "#000080" Gray = "#808080"
Lime = "#00FF00" Fuchsia = "#FF00FF"
White = "#FFFFFF" Green = "#008000"
Purple = "#800080" Silver = "#C0C0C0"
Yellow = "#FFFF00" Aqua = "#00FFFF"
Imagin ea de fond
<body Margini
Marginea stanga <body leftmargin=#>
Marginea superioara <body topmargin=#>
#=dimensiunea marginii
Legaturi
Legaturi de baza <a href="URL"> … </a>
Acesta este un
<a href="../exemplu/legatura.html">test pentru legaturi</a>.
Acesta este un test pentru legaturi .
Legatura la o pagina din document
<a href="#nume"> … </a>
<a name="nume"> … </a>
<a href="#salt">Salt la urmatoarea "legatura"</a><P>
<a name="salt">Legatura</a>
Salt la urmatoarea "legatura"
Salt la un alt document
<a href="URL#nume"> … </a>
<a name="nume"> … </a>
Salt la o
<a href="../exemplu/legatura.html#salt"> urmatoarea "legatura"</a>
din alt document.
Salt la o "legatura" din alt document.
Ferestre tinta
<a href="URL" target="Numele_Ferestrei"> … </a>
Netscape Navigator 2.0* deschide o fereastra noua.
<a href="../exemplu/fereastra.html" tar get="numele_ferestrei">
Deschide o fereastra!
</a>
Deschide o fereastra!
Linii de delimitare
Hair Line<hr>
<hr>
<hr size=#>
background="imagine -URL">
<hr size=10>
<hr width=#>
<hr width=50>
<hr width=50%>
<hr align=#> #=left, right
<hr width=50% align=left>
<hr width=50% align=right>
<hr noshade>
<hr noshade>
<hr color=#>
#=rrggbb numar hexazecimal sau numele culorii:
Black = "#000000" Olive = "#808000"
Teal = "#008080" Red = "#FF0000"
Blue = "#0000FF" Maroon = "#800000"
Navy = "#000080" Gray = "#808080"
Lime = "#00FF00" Fuchsia = "#FF00FF"
White = "#FFFFFF" Green = "#008000"
Purple = "#800080" Silver = "#C0C0C0"
Yellow = "#FFFF00" Aqua = "#00FF FF"
<hr color="red">
Liste
Liste neordonate <ul><li>…</ul>
<ul>
<li>Ziua
<li>Noaptea
</ul>
Ziua
Noaptea
Liste ordonate <ol><li>…</ol>
<ol>
<li>Ziua
<li>Noaptea
</ol>
Ziua
Noaptea
Liste de definitii <dl><dt>…<dd>…</dl>
<dl>
<dt>Ziua
<dd>Zi ua straluceste soarele.
<dt>Noaptea
<dd>Noaptea apar stelele pe cer.
</dl>
Ziua
Ziua straluceste soarele.
Noaptea
Noaptea apar stelele pe cer.
Lista de definitii compacta
<dl compact><dt>…<dd>…</dl>
Ziua
Ziua straluceste soarele.
Noaptea
Noapt ea apar stelele pe cer. <dl compact>
<dt>Ziua
<dd>Ziua straluceste soarele.
<dt>Noaptea
<dd>Noaptea apar stelele pe cer.
</dl>
Liste marcate
Tipuri de marcare
<li type=#> #=disk(sfera), circle(cerc), square(patrat)
<ul>
<li type=disc>UNU
<li type=circ le>DOI
<li type=square>TREI
</ul>
UNU
DOI
TREI
Majuscule <li type=#> #=A, a, I, i, 1
<ol><li type=A>UNU -UNU
<li>UNU -DOI</ol>
UNU -UNU
UNU -DOI
<ol><li type=a>UNU -UNU
<li>UNU -DOI</ol>
UNU -UNU
UNU -DOI
<ol><li type=I>UNU -UNU
<li>UNU -DOI</ol>
UNU -UNU
UNU -DOI
<ol><li type=i>UNU -UNU
<li>UNU -DOI</ol>
UNU -UNU
UNU -DOI
<ol><li type=1>UNU -UNU
<li>UNU -DOI</ol>
UNU -UNU
UNU -DOI
Numerotarea listelor <ol start=#> #=numar
<ol start=5> <li type=A>UNU -UNU <li>UNU -DOI <ol start=10> <li>DOI -UNU
<li type=i>DOI -UNU </ol></ol>
UNU -UNU
UNU -DOI
DOI-UNU
DOI-DOI
Texte preformatate
<pre>…</pre>
<pre>
Comunicatiile au luat amploare.
A aparut Internet -ul.
<b>Azi se poate comunica in mai multe feluri:</b>
<ul><li>Fax
<li>Posta
<li>Posta electronica</ul>
</pre>
Comunicatiile au luat amploare A aparut Internet -ul Azi se poate comunica in mai
multe feluri:
Fax
Posta
Posta electronica
<listing>…</listing>
<listing>
Comunicatiile au luat amploare.
A aparut Internet -ul
<b>Azi se poate comunica in mai multe feluri: </b>
<ul><li>Fax
<ul><li>Posta
<li>Posta electronica</ul>
</listing>
Comunicatiile au luat amploare. A aparut Internet -ul Azi se poate comunica in
mai multe feluri:
Fax
Posta
Posta electronica
<xmp>
Comunicatiile au luat amploare.
A aparut Internet -ul
<b>Azi se poate comunica in mai multe feluri:</b>
<ul><li>Fax
<li>Posta
<li>Posta electronica</ul>
</xmp>
Comunicatiile au luat amploare. A aparut Internet -ul Azi se poate comunica in
mai multe feluri:
Fax
Posta
Posta electronica
Spatiere
<spacer ty pe="horizontal" size=#> #=spatiu pe orizontala
<spacer type="vertical" size=#> #=spatiu pe verticala
IERI <spacer type="horizontal" size=50> AZI <spacer type="vertical" size=50>
MAINE
IERI AZI MAINE
<spacer type="block" width=# height=# align=##>
#=spac e size
##=top, middle, bottom, left, right
<spacer type="block" width=150 height=50 align=left> IERI<br> AZI<br>
MAINE
IERI
AZI
MAINE
Afisare multicoloane
<multicol cols=#> … </multicol> #=numarul de coloane
<multicol cols=2> text text text… </mul ticol>
text text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text text
text text text
Declarare imagine
<img src=#> #=Imagine URL
<img alt=#>
#=Textul afisat in cazul in care nu reuseste incarcarea imaginii.
<img src="SMILING.GIF" alt="UN ZAMBET : -)">
Imagini si text
<img align=#> #= top, middle, bottom,
absmiddle, absbottom, texttop, baseline
<img src=URL align= top> Un zambet!
Un zambet!
<img src=URL align= middle> Un zambet!
Un zambet!
<img src=URL align= bottom> Un zambet!
Un zambet!
<img src=URL align= absmiddle> Un zambet!
Un zambet!
<img src=URL align= absbottom> Un zambet!
Un zambet!
<img src=URL align= texttop> Un zambet!
Un zambet!
<img src=URL align= baseline> Un zambet!
Un zambet!
O singura linie de text poate apare de o parte si de alta a unei imagini.
Pozitionare imagini
<img align=left>
<img src=URL align=left>Un zambet!<br>
Este mereu<br>
incurajator.<br>
Hahaha.. ..<br>
Un zambet!
Este mereu
incurajator.
Hahaha….
<img align=right>
Un zambet!
Este mereu
incurajator.
Hahaha….
<br clear=all>
<img src=URL align=left>Un zambet!<br>
Este mereu
<br clear=all>
incurajator.<br>
Hahaha….<br>
Un zambet!
Este mereu
incurajator.
Hahaha….
<img vspace=# hspace=#> #=value
<img src=URL align=left vspace=10 hspace=20>Un zambet!<br>
Este mereu<br>
incurajator.<br>
Hahaha….<br>
Un zambet!
Este mereu
incurajator.
Hahaha….
Linia de contur
<img border=#> #=value
<a href="UR L">
<img src=URL border=15>
</a>
Elemente tabel
<table>…</table>
<tr> – definitie linie de tabel
<th> – antet
<td> – date
<table border> <tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Flori Culori Parfum
A B C
<table> <tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Flori Culori Parfum
A B C
Dimensionare tabele
Dimensionare dupa coloane
<th colspan=#>
<table border> <tr><th colspan=3> Florarie</th> <tr> <th>Flori</th>
<th>Culori</th> <th>Parfum</th> <tr><td>A</td><td>B</td><td>C</td> </table>
Florarie
Flori Culori Parfum
A B C
Dimensionare dupa randuri
<th rowspan=#>
<table border> <tr><th rowspan=3> Florarie</th> <th>Flori</th>
<td>A</td></tr> <tr> <th>Culori</th> <td>B</td></tr> <tr><th>Parfum</th>
<td>C</td></tr> </table>
Florarie Flori A
Culori B
Parfum C
<table border=#> – chenarul unei tabele
<table border=10> <tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C </td> </table>
Flori Culori Parfum
A B C
<table width=# height=# > – suprafata unei tabele
<table border width=170 height=100>
<tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Flori Culori Parfum
A B C
<table cellspacing=#> – spatiul dintre celule (in pixeli)
<table border cellspacing=10>
<tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Flori Culori Parfum
A B C
<table cellpadding=#> – dimensiunea unei cel ule (in pixeli)
<table border cellpadding=10>
<tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Flori Culori Parfum
A B C
Afisare text in tabel
<tr align=#>
<th align=#> #=left, center, right
<td align=#>
<table border width=160> <tr>
<th>Flori</th><th>Culori</th><th>Parfum</th><tr> <td align=left>A</td> <td
align=center>B</td> <td align=right>C</td> </table>
Flori Culori Parfum
A B C
<tr valign=#>
<th valign=#> #=top(sus), middle(mijloc), bottom(jos ), baseline
<td valign=#>
<table border height=100> <tr> <th>Flori</th><th>Culori</th>
<th>Parfum</th><th>Altceva</th> <tr> <td valign=top>A</td> <td
valign=middle>B</td> <td valign=bottom>C</td> <td valign=baseline>D</td> </table>
Flori Culori Parfum Altceva
A B C D
Asezare tabel in pagina
<table align=left>
<table align="left" border> <tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table> Florile preferate…<br> trandafirii,
zambilele, etc.
Florile preferate…
trandafirii, zambilele, etc.
<table align=right>
Flori preferate… trandafirii, zambilele, etc.
Titlu de tabel
Aliniere titlu pe orizontala
<caption align=#> … </caption>
#=left(st anga), center(centrat), right(dreapta)
<table border> <caption align=center>Florarie</caption>
<tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table> Flori Culori Parfum
A B C
Flori Culori Parfum
A B C
Florarie
Flori Culori Parfum
A B C
Aliniere titlu pe vertical a
<caption valign=#> … </caption>
#=top(sus), bottom(jos)
valign=implicit este top.
<table border> <caption valign=bottom>Florarie</caption>
<tr><th>Flori</th><th>Culori</th><th>Parfum</th>
<tr><td>A</td><td>B</td><td>C</td> </table>
Florarie
Flori Culori Parfum
A B C
Structura rame
<frameset> … </frameset>
<frame src="url">
<noframes> … </noframes>
Elementul <noframes> se foloseste pentru browser -ele care nu suporta frame -uri.
<HTML>
<HEAD>
</HEAD>
<FRAMESET>
<FRAME SRC="url">
<NOFRAMES > … </NOFRAMES>
</FRAMESET>
</HTML>
Dimensiune frame
<frameset cols=#>
<frameset cols=30%,20%,50%>
<frame src="A.html">
<frame src="B.html">
<frame src="C.html">
</frameset>
A B C
<frameset rows=#>
<frameset rows=25%,25%,50%>
<frame src="A.html">
<frame src="B.html">
<frame src="C.html">
</frameset>
A
B
C
COLOANE si RANDURI
<frameset cols=20%,*>
<frame src="A.html">
<frameset rows=40%,*>
<frame src="B.html">
<frame src="C.html">
</frameset>
</frameset>
A B
C
Fara redimensionare <frame n oresize>
Frame -ul implicit este redimensionabil.
Tinte intr -un frame
Numele frame -ului
<frame name=#>
<a href=url target=#>
<frameset cols=50%,50%>
<frame src="A.html">
<frame src="B.html" name="SALUT">
</frameset>
A B
Tinta speciala
<a href=url targ et=_blank>
<a href=url target=_self>
<a href=url target=_parent>
<a href=url target=_top>
Atribute frame
Chenar <frame frameborder=#> #=yes, no
<frameset rows=30%,*>
<frame src="Acol.html" frameborder=no>
<frameset cols=30%,*>
<frame src="Bcol.html" f rameborder=no>
<frame src="Ccol.html" frameborder=no>
</frameset>
</frameset>
A
B C
Spatiu intre frame -uri (IExplorer)
<frameset framespacing=#> #=dimensiunea spatiului
<frameset rows=30%,* framespacing=100>
<frame src="Acol.html">
<frameset cols=30%,*>
<frame src="Bcol.html">
<frame src="Ccol.html">
</frameset> A
B C
</frameset>
Culoare chenar (Netscape)
<frameset bordercolor=#>
#=rrggbb numar hexazecimal sau numele culorii:
Black = "#000000" Olive = "#808000"
Teal = "#008080" Red = "#FF 0000"
Blue = "#0000FF" Maroon = "#800000"
Navy = "#000080" Gray = "#808080"
Lime = "#00FF00" Fuchsia = "#FF00FF"
White = "#FFFFFF" Green = "#008000"
Purple = "#800080" Silver = "#C0C0C0"
Yellow = "#FFFF00" Aqua = "#00FFFF"
<frameset ro ws=30%,* bordercolor=red>
<frame src="Acol.html">
<frameset cols=30%,*>
<frame src="Bcol.html">
<frame src="Ccol.html">
</frameset>
</frameset>
Margini <frame marginwidth=# marginheight=#>
<frameset cols=50%,50%>
<frame src="A.html">
<frame src= "A.html"
marginwidth=50
marginheight=50>
</frameset>
AAAA AA
AA
Scroll <frame scrolling=#> #=yes, no, auto A
B C
#=auto este implicit.
Frame mobil (IExplorer)
<iframe src=# name=##> … </iframe>
#=URL
##=numele frame -ului (ca in paragraful Tinte intr -un frame)
… = sursa html pentru browser -e care nu suporta frame -uri
<center>
<iframe src="A.html" name="window">
Aici este un frame mobil
</iframe>
<br><br>
<a href="A.html" target="window">Incarca A</A><BR>
<a href="B.html" target="window">Incarca B</A><B R>
<a href="Ccol.html" target="window">Incarca C</A><BR>
</center>
Afiseaza
A.html
Incarca A
Incarca B
Incarca C
Structura unui formular
Structura de baza
<form action="url" method=*>
…
…
<input type=submit> <input type=reset>
</form>
*=GET, P OST
Intrari
<input type=* name=**>
*=text, password(parola), checkbox, radio, image(imagine), hidden(ascuns),
submit, reset
**=Nume simbolic pentru un script CGI
Text si parola
*=text, parola
<input type=*>
<input type=* value=**>
<form action=/cgi -bin/post -query method=POST>
Numele:
<input type=text name=name><br>
Home Page:
<input type=text name= home value=http://><br>
Password:
<input type=password name=name><br>
<input type=submit><input type=reset>
</form>
Numele:
Home Page:
Password:
<input type=* size=**>
<input type=* maxlength=**>
<form action=/cgi -bin/post -query method=POST>
<input type=text name=a01 size=40><br>
<input type=text name=a02 maxlength=5><br>
<input type=submit><input type=reset>
</form>
Checkbox si radio
<input type=checkbox>
<input type=checkbox checked>
<input type=checkbox value=**>
<form action=/cgi -bin/post -query method=POST>
<inpu t type=checkbox name=f01>
Banana<p>
<input type=checkbox name=f02 checked>
Mar<p>
<input type=checkbox name=f03 value=Portocala>
Portocala<p>
<input type=submit><input type=reset>
</form>
Banana
Mar
Portocala
<input type=radio value=**>
<input type=radio value=** checked>
<form action=/cgi -bin/post -query method=POST>
<input type=radio name=fructe>
Banana<p>
<input type=radio name=fructe checked>
Mar<p>
<input type=radio name=fructe value=Portocala>
Portocala<p>
<input type=submit><input type=reset>
</form>
Banana
Mar
Portocala
Coordonate imagine
<input type=image src=url>
<form action=/cgi -bin/post -query method=POST>
<input type=image name=fata src=SMILING.GIF><p >
<input type=radio name=zoom value=2 checked>x2
<input type=radio name=zoom value=4>x4
<input type=radio name=zoom value=6>x6<p>
<input type=reset>
</form>
x2
x4
x6
Elemente ascunse
<input type=hidden value=*>
<form action=/cgi -bin/post -query method=POST>
<input type=hidden name=add value=wwwuser@www.ro>
Aici este un element ascuns. <p>
<input type=submit><i nput type=reset>
</form>
Top of Form
wwwuser@www.ro
Aici este un element ascuns.
Meniu selectabil
Elementul "select"
<select name= *>
<option> …
</select>
<option selected>
<option value=**>
<form action=/cgi -bin/post -query method=POST>
<select name=fructe>
<option>Banana
<option selected>Mar
<option value=Fructul -preferat>Portocala
</select><p>
<input type=submit><input type=r eset>
</form>
<select size=**>
<form action=/cgi -bin/post -query method=POST>
<select name=fructe size=3>
<option>Banana
<option select ed>Mar
<option value=Fructul -preferat>Portocala
<option>Piersica
</select><p>
<input type=submit><input type=reset>
</form>
<select size =** multiple>
<form action=/cgi -bin/post -query method=POST>
<select name=fructe size=3 multiple>
<option selected>Banana
<option selected>Mar
<option value=Fructul -preferat>Portocala
<option selected>Piersica
</select><p>
<input type=submit><input type=r eset>
</form>
Suprafata text
<textarea name=* rows=** cols=**> … <textarea>
<form action=/cgi -bin/post -query method=POST>
<textarea name=comment rows=5 cols=60>
</textarea>
<P>
<input type=submit><input type=reset>
</form>
UTILITARE FOLOSITE
I.5.1. ADOBE PHOTOSHOP
Adobe Photoshop este uneditor de imagini cu ajutorul caruia putem crea si
prelucra imagini digitale de o calitate ridicata, fara a avea nevoie de unechipament foarte
costisitor. Ca si o camera intunecata electronica, Adobe Photoshop permite prelucarea de
fotografii scanate, dispozitive si desene proprii in diverse feluri. Programul combina un
sir intreg de instrumente de selsctie, de pictat si editat, de corectie a culorilor si efecte
speciale(cum ar fi rotatia si filtrarea), care va permit sa editati imag ini in unul dintre
multele moduri color, inclusiv RGB si CMYK.
Capacitatea de a lucra pe mai multe straturi, ofera flexibilitatea de a experimenta
si de a face corectii usor. Ca instrument de productie tipografica, Adobe Photoshop
realizeaza o separatie de culori si semitonuri de o calitate ridicata, care pot fi tiparite usor
la imprimanta, folosid multiplele optiuni de listare.
Mai jos este o scurta explicatie la cum se realizeaza un header si un meniu.
I.5.1.1. Header site in Adobe Photoshop
Se deschi de un nou fisier Photoshop de dimensiunea 600×200 px
Se creaza o forma care sa se incadreze in noul document cu Rounded rectangle tool si
coloreaza selectia cu un gradient ca in imaginea de mai jos:
Se selecteaza un dreptungi in partea stanga a formei si coloreaz -o cu o culoare mai
deschisa. Fa la fel pentru un dreptunghi mai mic situat in josul acestuia dar cu o culoare
mai inchisa:
Se va defini un pattern pentru primul layer creat. Deschidem un nou fisier
photoshop de dimensiunea 3x3px si il marim pana la 1600%. Coloram patratelul cu 3
patratele mai mici in felul urmator:
De la Edit > Define pattern defineste pattern -ul si denumeste -l pentru a il tine minte in
viitor. Inchide acest fisier
Se revine acum la fisierul initial: Layer > Layer style > Pattern overlay cu urmatoarele
setari:
Rezultatul obtinut:
Acesta este pasul in care vom adauga logo -ul creat in tutorialul precedent, vom adauga
text si slogan:
Vom adauga o imagine in dreapta headerului. Aceasta este imaginea mea dintr -o
colectie de stock photos care o am in calculator.
Va voi invata acum cum sa decupati o imagine intr -un mod care nu este
destructiv. Adaugati o masca layerului cu poza apasand pe butonul de mai jos
Se selecteaza unealta brush in masca creata si cu negru click pe spatiile care nu ne
intereseaza. Se va observa ca va deveni transparent locul in care utilizati unealta brush.
Se poate modifica marimea uneltei cu tastele "[" si "]" mai mica respectiv mai ma re. Se
face unealta mai mica in locurile stramte si mai mare unde este mai mult loc de sters.
Dupa ce s -a decupat imaginea se redimensioneaza si pozitioneaza in partea dreapta a
headerului. Rezultatul este mai jos:
I.5.1.2. Meniu profesional pentru website
Se deschide un nou fisier cu dimensiunea 600x200px. Se deseneaza un oval cu Rounded
rectangle tool.
Ne vom folosi de efecte pentru a -i da acestei forme desenate un aspect cat mai
profesional. Prima oara ne vom ocupa de umbra: Layer > Layer Style > Drop Shadow
Vom folosi urmatoarele setari:
Rezultatul este prexentat mai jos:
Urmeaza apoi Inner Shadow: Layer > Layer Style > Inner S hadow
Multiplica layerul obtinut
Se schimba Blending Mode al acestui layer, cel de deasupra, in “Color Burn”
Rezultatul este mai jos:
Cu o nuanta mai inchisa scriem componentele menu -ului. Putem face asta pe acelasi layer
apasand tasta space intre optiuni. Eu am folosit insa layere diferite.
Vom face acum separatorul menu -ului. Selectam intre prima optiune si a doua o
linie orizontala de un pixel putin mai mica decat inaltimea barei si o coloram cu o culoare
mai deschisa decat cea pe care am folosit -o in text. Se face acelasi lucru in dreapta ace stei
linii in imediata sa apropriere cu o culoare mult mai deschisa. Multiplicam apoi aceste
doua layere, puteti sa le si grupati daca doriti. Le multiplicam de cate ori avem nevoie
punandu -le intre optiuni.
Pe un nou layer se selecteaza un nou oval pe care il coloram cu alb ca in imaginea de mai
jos:
Se scade opacitatea ac estui layer pana se obtine efectul dorit. In cazul de fata s -a
scazut pana pe la 40% si mutati acest layer sub text si separatoare.
I.5.1.2. PhpMyAdmin
Acesta este un pachet de scripturi php care ajuta sa gestionati baza de date
folosind o interfata web.
In poza de mai jos va este aratat cum arata acest pachet de scripturi php numit
phpMyAdmin.
Dupa ce s -a descarcat de pe internet ultima versi une de phpMyAdmin, se
dezarhiveaza folderul in directorul www.
Se intra apoi in folderul phpMyAdmin si deschideti fisierul config.inc.php si se
cauta si se editateaza liniile 84, 85 si 86 care arata cam asa:
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or
cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ‘’; // MySQL password (only needed
Se modifica modul de autentificare si alegeti in loc de config, cookie astfel i ncat
linia sa fie:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
apoi se seteaza o parola secreta pentru modul de autentificare.
Se cauta linia $cfg['blowfish_secret'] = ''; si se seteaza in interiorul ei un cuvant,
de exemplu $cfg['blowfish_secret'] = ' baubau';
Dupa ce s -au facut aceste modificari, este recomandat ca in locul user -ului root, sa
creati un altul cu mai putine drepturi. Se intra in phpMyAdmin ca root si se creaza un nou
utilizator apoi setati -l in config.inc.php.
Se acceseaza apoi http: //localhost/phpmyadmin si observati ca va cere un user si o
parola pentru a se face autentificarea.
Se inrtoduc username root iar ca parola, se introduce cea setata de mai devreme.
Fara sa se faca vreo modificare in fisierul acesta de configurare, se ac ceseaza
http://localhost/phpmyadmin dupa ce se pune folderul phpMyAdmin in www.
Dupa ce s -a incarcat pagina, se apasa pe legatura “Drepturi de acces” (daca
interfata este in limba romana), iar daca este in engleza, se apasa pe “Privileges”. Acest
buton se afla in mijlocul paginii. Se va incarca pagina cu drepturile de acces asupra
MySQL -ului, apoi se apasati pe butonul incercuit in poza de mai jos.
Apoi dupa ce s -a incarcat urmatoarea pagina, unde apare ”Schimbare parola” se
bifeaza ”Parola”, apoi se tasteaza parola dorita dupa care se apasa pe butonul „Executa”.
Dupa setarea parolei se merge la baza de date MySQL, urmatorul pas fiind
intoarcerea la fisierul config.inc.php si sa ii setam parola in campul
$cfg['Servers'][$i]['password'] = ‘’; si anum e:
$cfg['Servers'][$i]['password'] = ‘parolamysql’;
O baza de date este coloana vertebrala a unui site dinamic.
Ea este alcatuita din tabele care, la randul lor, sunt formate din inregistrari dispuse
in campuri.
Dupa cum se vede, in prima poza apa re baza de date cu numele “tutorial” cu
tabela “formular”.
In a-II-a poza, apar inregistrarile (coloanele) din cadrul tabelei formular.
Un rand din baza de date se alcatuieste din:
1) Un nume , dupa cum vedeti in coloana camp . Acest nume nu poate contine
spatiu.
2) O valoare tip care difera coloana la coloana.
Cele mai folosite tipuri sunt:
Tipuri numerice:
INT – Stocare octeti 4
BIGINT – 64 biti
Tipuri de sir:
CHAR – Interval 1 -255 caractere
VARCHAR – Interval 1 -255 caractere
Tipuri de text:
TEXT – Lungime maxima de caractere 65.535
LONGTEXT – Lungime maxima de caractere 4.294.967.295
Exemple de folosire phpMyAdmin
1) Crearea unei baze de date
Se acceseaza http://localhost/phpmyadmin/ se observa in mijloc, campul “Creaza
baza de date noua” si se apasa bu tonul “Executa”
Se scrie numele bazei de date, dupa care apasati butonul “Creaza”.
In cazul de fata s -a ca exemplu, baza de date cu numele tutorial
Dupa ce s -a creat baza de date cu numele tutorial, se observa ca in partea stanga
apare numele acesteia, iar in mijloc este scris textul “Nu s -a gasit nici un tabel in baza de
date.”.
Pentru a adauga un tabel in baza noastra de date, trebuie sa complet campul
“Creaza tabela noua in baza de date tutorial”
In casuta campul “Nume” se introduce numele tabele i ce va apare in baza de date
tutorial, iar in casuta “Campuri” se introduce numarul de randuri ce le va avea aceasta
tabela.
Sa luam ca exemplu: Nume: formular
Campuri: 4, apoi se apasa butonul Executa
Intorcandu -ne putin la cunostintele pe care le -am acumulat cu o pagina mai sus,
vom observa ca apar campurile: “Camp”, “Tip”, “Lungime”. . .
O prima adaugare in orice baza de date, este bine sa fie un camp cu numele id, iar
ca tip sa fie INT, si o setare speciala pentru aceasta prima linie din tabela noa stra, este
alegerea valorii auto_increment din categoria “Extra”, si apoi trebuie bifat optiunea
primar
Se adauga pe rand in coloana “Camp” urmatoarele: nume , prenume , varsta.
Ca Tip pentru aceste 3 intrari, alegeti CHAR, apoi in coloana “Lungime/Set are”
se adauga o valoare numerica, adica numarul de caractere maxime care sa poata intra in
acel rand.
Exemplu: Pentru coloana camp cu valoarea “nume” o sa avem ca tip CHAR si
lungime 30. Asta inseamna ca putem introduce un text mai mic sau egal cu 30 cara ctere.
Dupa ce s -au introdus datele precum am spus mai sus si am aratat in poze, se
apasa butonul “Salveaza”.
In urmatoarele 2 poze se vede ca tabelul a fost creat, se arata comanda SQL , dupa
care se listeaza aceasta tabela.
Dupa ce s -a creat baza de date cu numele tutorial si tabela cu numele formular , se
pot adauga informatii in aceasta tabela.
Sus in pagina avem un meniu:
Se apasa pe butonul “Inserare”
Se completeaza campul “Valoare” cu datele pe care doritm sa le introduceti in
form ular pentru fiecare in valorile casutei “Camp”, si anume:
Dupa ce ati adaugat informatii in casuta “Valoare”, se apasati butonul “Executa”.
La fel ca si in atunci cand am adaugat o tabela, ni se va arata sintaxa SQL
Pentru a vizualiza datele adauga te in tabela formular, se apasa pe butonul
“Navigare” din partea de sus a paginii.
In aceasta instanta se observa ca se poate edita, sterge aceasta intrare.
Structura constructiva si functionala a produsului
Descriere generala
Inainte de a se tre ce la lucrul efectiv, s -au avut in vedere urmatorii pasi in
realizarea aplicatiei :
s-a proiectat in Adobe Photoshop modelul de pagina (modul cum va aratata site –
ul) ;
dupa realizarea acestei imagini, s -a trecut la spargerea ei si includerea in HTML.
Mai concret, s -au definit active butoanele, s -au realizat link -urile, s -au creat spatii pentru
text (tabele invizibile), spatii pentru reclama si totodata s -a creat standardul CSS pentru
text(aceeasi marime, culoare, pentru editoriale, titluri, link -uri) ;
s-a realizat proiectarea bazei de date, cu tabelele aferente si relatiile dintre ele;
realizarea tabelelor a fost proiectata in functie de datele si rapoartele care aveau sa se
ceara
dupa realizarea celor prezentate mai sus, s -a trecut la inseararea limbajulu i php si
a limbajului sql.
5. DESCRIEREA BAZEI DE DATE
Înainte de a trece la descrierea proprie zisa a bzei de date, mai intai se va descrie
tehnologia folosita.
Se vor volosi serverele Apache și MySql, iar PHP este mediul de progremare care
face legătu ra dintre cele două servere, dupa cum se poate vedea în figura de mai jos:
S
erver
ul
MySq
l este
un
server
de
baze de date. În momentul în care PHP face o interogare către Serverul MySql, acesta din
urma trimite informatiile necesare, iar serverul Apache are rolul de a prelucra informatiile
cu ajutorul lui PHP. MySql
PHP Apache
Interogare
SQL Raspuns
Prelucrare
date
Descriere baza de date
Tbcategorii
Id_categorie – identificator(cheia primara)
Nume_categorie – nume categorie
Id_parent – cod special
Rank – rangul, adica dacă este categories sau subca tegorie
Prezentare – prezentarea categoriei
Tbproduse
Id_produs – identificator(cheia primara)
Nume_produs – numele produsului
Descriere – descriere produs
Specificatie – specitficatie tehnica
Pliant_html – specificatie tehnica în format html(es te un link către acest
fișier)
Pliant_dbf – specificatie tehnica în format dbf(este un link către acest
fișier)
Manual – manual
Id_categorie – identificator
Rank – rangul, adica dacă este categories au subcategorie
Tbleg_poze_produs
Acest tabel fac e legătura dintre tabele, legătura ce poate fi posibila datrorita
cheilor secundare. Practic, se face legătura dintre poze și produse.
id_leg_poze_produs – identificator(cheia primara)
id_poza – identificator
id_produs – identificator
Tbpoze
Este tab elul în care se salveaza toate pozele produselor.
Id_poza – identificator(cheia primara)
Poza_mica – adresa către poza mica
Poza_mare – adresa către poza mare
Tbleg_soft_produs
Este tabelul în care se fac legăturile dintre mai multe tabele. S -a recur s la aceasta
procedura pentru ca exista cazul de legătura infinit – infinit
Id_leg_software_produs – identificator
Id_produs – identificator
Id_software – identificator
Tbsoftware
Tabelul ce se refera la acest produs de tip software
Id_software – identificator(cheia primara)
Nume_software – numele produsului
Link – adresa către o alta pagina
Powered by http://www.referat.ro/
cel mai tare site cu referate
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Lucrare de licenta [617672] (ID: 617672)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
