CURS 4
Introducere în CSS
• Odată cu apariția HTML 3.2 au fost introduse și atributele de
personalizare a tag-urilor precum "font", "color" etc.
• Fiecare pagină a website-ului trebuia luată separat și modificate
proprietățile elementelor principale.
• Această problema a fost rezolvată în versiunea HTML 4.0.
Noţiuni introductive
Noţiuni introductive
• Toate atributele de personalizare pot fi scoase și salvate într-un fișier
extern cu extensia ".css".
• Modificând un singur fișier se poate schimba forma în care sunt afișate
toate paginile unui website, culoarea și formatarea textului, etc.
• CSS (Cascading Style Sheets) permite separarea conținutul de modul
de prezentare
Sintaxa CSS
Sintaxa CSS constă din trei părți: selector, proprietate și valoare.
selector {proprietate: valoare}
• Selector - identificarea elementelor HTML pentru care aplicăm stilul respectiv
• Proprietate – aspect al stilului ce se dorește a fi modificat
• Valoare – ce se atribuie proprietății respective
Comentariile :
/*Un comentariu se marchează așa*/
Sintaxa CSS
Dacă proprietatea are valori multiple acestea sunt separate prin punct si
vigulă.
Dacă o valoare individuală are mai mult decât un cuvânt se folosesc
ghilimele.
p {
text-align:right;
color:red;
font-family:"times new roman";
}
Dacă mai multe elemente au aceleași proprietăți acestea se pot grupa astfel:
h1, h2, h3, p {
font-family:arial, batang;
color:green;
}
Sintaxa CSS
Dacă mai multe elemente au aceleași proprietăți acestea se pot grupa astfel:
h1, h2, h3, p {
font-family:arial, batang;
color:green;
}
Tipuri de selectori
1. selector HTML
2. selector de tip clasă
3. selector de tip ID
Selector de tip HTML
• rescrie forma de afişaj a tag-urilor html.
• Acest tip de declaraţie modifică afişarea tag-ului care este selectorul
css conform cu proprietăţile declarate.
h1 { font-family: Arial, Batang;
font-size: 14px;}
• poate fi aplicat oricăror taguri .
• se folosesc pentru a stabili stilul la mai multe elemente
• poate fi folosit de câte ori se dorește
• începe cu caracterul punct “.”
• se recomanda folosirea de nume de clase descriptive.
.text { font-family: Arial;
font-size: 10px;
color:green;}
În codul html la diverse tag-uri poate apărea un atribut "class" care să
primească valoarea "text" .
<p class=“text”> Text verde scris cu arial </p>
Selector de tip clasă
• se aplică obiectelor care se identifică printr-un ID.
• O dată ce ID – ul a fost desemnat, el nu poate folosit din nou în același fișier
HTML.
• Este folosit pentru a stabili stilul unui element unic.
# exemplu {font-family: “Times New Roman”;
font-size: 10px}
<div id=“exemplu”> Acesta este un exemplu scris cu Times New Roman 10.
</div>
Selector de tip ID
Modalități de inserare a CSS
• CSS inline (în linie)
• CSS intern
• CSS extern
CSS inline
• CSS în interiorul tagului HTML.
• Folosind CSS-ul sub această formă se pierd toate avantajele pentru care a
fost creat și anume pentru a nu amesteca tagurile HTML cu formatarea și
prezentarea lor.
<body>
<p style ="text-align:right; color:green; font-family:`times new roman`;
margin-left:15px;" > Acesta este un paragraf formatat cu ajutorul
CSS.</p>
</body>
CSS intern
• codul CSS este adăugat, în interiorul fiecărei pagini html unde se dorește
folosirea stilurilor respective, în cadrul elementului head
• se plasează între tagurile <style> și </style> .
<head>
<title>titlu pagina</title>
<style type="text/css">Aici se definesc stilurile CSS</style>
</head>
CSS intern
• fiecare fișier HTML va conține codul CSS folosit la stilizare.
• când se dorește realizarea unei schimbări de stil (mărimea fontului,
culoare, etc) trebuie operată modificarea în toate paginile ce conţin acel
stil.
• această metodă este potrivită dacă există o singură pagină sau fiecare
pagina are stiluri separate
• dacă există site-uri de zeci sau sute de pagini este destul de greoi să se
modifice toate paginile.
CSS extern
• declararea stilurilor externe ale unui document html se face într-un fişier text
care apoi se include în documentul care utilizează stilurile declarate în acel
fişier
• un fișier CSS extern poate fi realizat cu orice editor de text.
• Fișierul CSS conţine doar cod CSS. Fişierul trebuie salvat cu extensia .css.
• inserarea fișierului extern in paginile HTML se face prin plasarea unei
legături în secţiunea <head> </head> a fiecărei pagini pentru care dorim să
folosim stilul respectiv.
<link rel="stylesheet" type="text/css" href=" fisierul.css" >
sau
<style type="text/css">@import url(fisierul.css )</style>
CSS extern
• fișierele externe de CSS sunt cele mai folosite.
• pentru prezentatea paginilor toate fișierele HTML apelează un singur fișier CSS
• este de recomandat să folosiți această metodă pentru o mai simplă modificare a
întregului website - se poate modifica un site întreg schimbând conținutul unui
singur fisier .css.
Modalități de inserare a CSS
În cazul folosirii în același timp a tuturor celor 3 variante ordinea de
reproducere în browser va fi următoarea:
1. Formatare CSS inline (în interiorul tag-ului HTML)
2. Formatere CSS internă (în secțiunea head a documentului)
3. Formatare CSS externă (fisier extern salvat cu extensia " * .css ")
Browserele nu afișează întotdeauna în același fel stilurile.
Unități de măsură
• absolute: cm, mm, in, pt (punct – 1pt = 1/72 inci)
• relative: - px - dimensiunea pixelului pentru dispozitivul curent
- % - procent
- em - 1em = marimea fontului pentru elementul curent, valoarea
finala va fi in functie de parintele ei
• pentru unghiuri: deg, grad, rad
• culori: - numele culorii
- rgb(x,y,z) – lime = rgb(0,255,0) – cod decimal
- #00ff00 – cod hexazecimal
Formatarea textului
• Proprietatea font
• Se pot stabili valorile pentru stil, pondere, variantă, mărime, mărimea
randului si familia fontului:
o font
o font – family – de ex. Times New Roman
o font-size
o font-style – de ex. normal, italic, oblic
o font-variant - normal sau small-caps
o font-weight – de ex: normal, bold
Formatarea textului
• pentru a stabili culoarea textului: color: valoare;
• pentru spațierea textului: letter-spacing: valoare;
• pentru alinierea textului: text-align: valoare;
• pentru indentarea primii linii dintr-un element HTML (valoarea poate fi
lungime sau procentaj): text-indent: valoare;
Modelul dreptunghiular
• Toate elementele HTML pot fi considerate drept cutii.
•Elementele bloc:
- au valori definite pentru dimensiunile spatiului ocupat
- incep pe o linie noua cu exceptia cazului cand sunt flotante si sunt
alaturate altor elemente bloc flotante.
- pot contine la randul lor alte elemente bloc sau de linie.
- sunt folosite de obicei pentru portiuni mai mari de continut;
display: block;
Modelul dreptunghiular
Elementele de linie:
• nu au valori definite pentru dimensiunile spatiului ocupat
• nu este obligatoriu sa inceapa pe o linie noua
• nu pot contine elemente bloc
• pot contine alte elemente de linie
• sunt folosite pentru portiuni mai mici de continut
display: inline;
Modelul dreptunghiular
Modelul dreptunghiular
•În CSS, termenul "model de cutie" este folosit atunci când vorbim despre design și
aspect.
• Modelul cutiei CSS este în esență o cutie care înfășoară în jurul fiecărui element
HTML.
Modelul dreptunghiular
Content - conținutul casetei, unde apar text și imagini
Padding - declara spatiul dintre chenarul (border) unui element si continutul din el,
este transparent
Border
Margin
Baze de date
1. Bănci şi baze de date
O bază de date reprezintă un ansamblu de date integrat, anume
structurat şi dotat cu o descriere a acestei structuri.
Baza de date poate fi privită ca o colecţie de fişiere interconectate care
conţin nucleul de date necesare unui sistem informatic.
1. Bănci şi baze de date
• poate fi considerată drept un model al unor aspecte ale realităţii unei
unităţi economice, modelată prin intermediul datelor.
•Diferitele obiecte din cadrul realităţii ce prezintă interes sunt denumite clase
sau entităţi.
•Pentru aceste obiecte sunt achiziţionate şi memorate date referitoare la
diferite caracteristici (atribute).
•Baza de date se constituie ca un ansamblu intercorelat de colecţii de
date, prin care se realizează reprezentarea unei realităţi.
Datele constituie orice mesaj primit de un receptor, sub o anumită formă.
Informaţiile reprezintă cantitatea de noutate adusă de un mesaj din exterior
(realitate).
Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere al
conţinutului şi al prelucrării.
O înregistrare fizică este o unitate de transfer între memoria internă şi cea externă
a calculatorului.
O înregistrare logică este unitatea de prelucrare din punct de vedere al
programului utilizator.
O înregistrare se compune din câmpuri (atribute) care descriu anumite aspecte ale
realităţii.
O bază de date trebuie să asigure:
• abstractizarea datelor (baza de date fiind un model al realităţii),
• integrarea datelor (baza de date este un ansamblu de colecţii de date intercorelate, cu
redundanţă controlată),
• integritatea datelor (se referă la corectitudinea datelor încărcate şi manipulate astfel
încât să se respecte restricţiile de integritate),
• securitatea datelor (limitarea accesului la baza de date),
• partajarea datelor (datele pot fi accesate de mai mulţi utilizatori, eventual în acelaşi
timp),
• independenţa datelor (organizarea datelor să fie transparentă pentru utilizatori,
modificările în baza de date să nu afecteze programele de aplicaţii).
1.2. Sisteme de baze de date
Arhitectura sistemului de bază de date este formată din următoarele componente:
• baza de date – reprezintă componenta de tip date a sistemului (colecţiile de date
propriu-zise);
• sistemul de gestiune a bazei/bazelor de date – ansamblul de programe prin care se
asigură gestionarea şi prelucrarea complexă a datelor şi care reprezintă componenta
software a sistemului de baze de date (Sistem de Gestiune a Bazelor de Date – SGBD);
• alte componente – proceduri manuale sau automate, inclusiv reglementări
administrative, destinate bunei funcţionări a sistemului, dicţionarul bazei de date
(metabaza de date) care conţine informaţii despre date, structura acestora, elemente de
descriere a semanticii, statistici, documentaţii, mijloacele hardware utilizate, personalul
implicat.
1.3. Nivelul de organizare a datelor într-o bază de date
Datele dintr-o bază de date pot fi structurate pe 3 niveluri, în funcţie de categoria de
personal implicată:
• nivelul conceptual (global) – exprimă viziunea administratorului bazei de date
asupra datelor. Acestui nivel îi corespunde structura conceptuală (schema) a
bazei de date, prin care se realizează o descriere a tuturor datelor, într-un mod
independent de aplicaţii, ce face posibilă administrarea datelor.
• nivelul logic – exprimă viziunea programatorului de aplicaţie asupra datelor. La
acest nivel se realizează o descriere a datelor corespunzătoare unui anumit
program de aplicaţie.
• nivelul fizic – care exprimă viziunea inginerului de sistem asupra datelor.
Corespunde schemei interne a bazei de date prin care se realizează o descriere a
datelor pe suport fizic de memorie.
SGBD-urile actuale au 3 niveluri de
reprezentare a datelor din bazele de
date:
- nivelul extern care face
referire la datele necesare
utilizatorilor;
- nivelul conceptual care
rezultă din nivelul extern prin
analiza schemelor externe şi prin
eliminarea redundanţelor;
- nivelul intern care se
realizează cu ajutorul efectiv al
SGBD-ului pornind de la schema
conceptuală.
1.4. Modelarea la nivel logic a datelor într-o bază de date
• Modelul de date reprezintă ansamblul de concepte şi instrumente
necesare pentru a construi o schemă a bazei de date.
• Modelarea datelor poate viza totalitatea datelor din cadrul bazei de date
(schema/arhitectura datelor) sau o parte a acestora (subscheme ale bazei
de date).
• Exista mai multe tipuri de baze de date după modul de organizare,
modul de dispunere pe suport magnetic a informaţiei şi a elementelor
componente.
Modele primitive
• datele sunt organizate la nivel logic în fişiere, structura de bază este înregistrarea, mai
multe înregistrări fiind grupate în structuri de tip fişier;
Baze de date ierarhice
• legăturile dintre date sunt ordonate unic, accesul se face numai prin vârful ierarhiei, un
subordonat nu poate avea decât un singur superior direct şi nu se poate ajunge la el decât
pe o singură cale;
Baze de date în reţea
• datele sunt reprezentate ca într-o mulţime de ierarhii, în care un membru al ei poate avea
oricâţi superiori, iar la un subordonat se poate ajunge pe mai multe căi;
Baze de date relaţionale
• structura de bază a datelor este aceea de relaţie – tabel, limbajul SQL (Structured Query
Language) este specializat în comenzi de manipulare la nivel de tabel;
Baze de date distribuite
• Sunt rezultatul integrării tehnologiei bazelor de date cu cea a reţelelor de calculatoare. Sunt
baze de date logic integrate, dar fizic distribuite pe mai multe sisteme de calcul.
1.5. Conceptul de sistem de gestiune a bazelor de date
Sistemele de gestiune a bazelor de date (SGBD) sunt sisteme informatice
specializate în stocarea şi prelucrarea unui volum mare de date, numărul
prelucrărilor fiind relativ mic.
Un SGBD trebuie să asigure următoarele funcţii:
• definirea – crearea bazei de date;
• introducerea datelor în baza de date;
• modificarea unor date deja existente în baza de date;
• ştergerea datelor din baza de date;
• consultarea bazei de date – interogare/extragerea datelor.
Funcții asigurate de un SGBD
• suport pentru limbaj de programare;
• interfaţă cât mai atractivă pentru comunicare cu utilizatorul;
• tehnici avansate de memorare, organizare, accesare a datelor din baza
de date;
• utilitare încorporate: sistem de gestiune a fişierelor, liste, tabele etc.;
• “help” pentru ajutarea utilizatorului în lucrul cu baza de date.
• definirea şi descrierea structurii bazei de date – se realizează printr-un limbaj
propriu, limbaj de definire a datelor (LDD), conform unui anumit model de
date;
• încărcarea datelor în baza de date – se realizează prin comenzi în limbaj
propriu, limbaj de manipulare a datelor (LMD);
• accesul la date – se realizează prin comenzi specifice din limbajul de
manipulare a datelor. Accesul la date se referă la operaţiile de interogare şi
actualizare.
- Interogarea este complexă şi presupune vizualizarea, consultarea,
editarea de situaţii de ieşire (rapoarte, liste, regăsiri punctuale).
- Actualizarea presupune 3 operaţiuni: adăugare, modificare efectuate
prin respectarea restricţiilor de integritate ale BD şi ştergere.
Activități asigurate de un SGBD
.
• întreţinerea bazei de date – se realizează prin utilitare proprii ale SGBD;
• reorganizarea bazei de date – se face prin facilităţi privind actualizarea
structurii de date şi modificarea strategiei de acces. Se execută de către
administratorul bazei de date;
• securitatea datelor – se referă la asigurarea confidenţialităţii datelor prin
autorizarea şi controlul accesului la date, criptarea datelor.
Funcții asigurate de un SGBD
Un SGBD are rolul de a furniza suportul software complet pentru dezvoltarea
de aplicaţii informatice cu baze de date.
El trebuie să asigure:
• minimizarea costului de prelucrare a datelor
• reducerea timpului de răspuns
• flexibilitatea aplicaţiilor
• protecţia datelor.
Rolul unui SGBD
.
1. Asigurarea independenţei datelor – trebuie privită din două puncte de vedere:
- independenţa logică – se referă la posibilitatea adăugării de noi tipuri de înregistrări de
date sau extinderea structurii conceptuale, fără a determina rescrierea programelor de
aplicaţie;
- independenţa fizică – modificarea tehnicilor fizice de memorare fără a determina
rescrierea programelor de aplicaţie.
2. Asigurarea redundanţei minime şi controlate a datelor – stocarea informaţiilor în
bazele de date se face astfel încât datele să nu fie multiplicate.
Obiective ale unui SGBD
3. Asigurarea facilităţilor de utilizare a datelor – presupune ca SGBD-ul să aibă anumite
componente specializate pentru: folosirea datelor de către mai mulţi utilizatori în diferite
aplicaţii, accesul cât mai simplu al utilizatorilor la date, existenţa unor limbaje performante de
regăsire a datelor, sistemul de gestiune trebuie să ofere posibilitatea unui acces multicriterial
la informaţiile din baza de date.
4. Asigurarea securităţii datelor împotriva accesului neautorizat.
5. Asigurarea coerenţei şi integrităţii datelor împotriva unor ştergeri intenţionate sau
neintenţionate.
6. Asigurarea partajabilităţii datelor – asigurarea accesului mai multor utilizatori la
aceleaşi date şi posibilitatea dezvoltării aplicaţiilor fără a se modifica structura bazei de date.
7. Asigurarea legăturilor între date – corespund asocierilor care se pot realiza între
obiectele unei aplicaţii informatice. Orice SGBD trebuie să permită definirea şi descrierea
structurii de date, precum şi a legăturilor dintre acestea, conform unui model de date (de
exemplu modelul relaţional).
8. Administrarea şi controlul datelor – sunt asigurate de SGBD, în sensul că datele pot fi
folosite de mai mulţi utilizatori în acelaşi timp, iar utilizatorii pot avea cerinţe diferite şi care
pot fi incompatibile. SGBD trebuie să rezolve probleme legate de concurenţă la date,
problemă care apare mai ales în lucrul în mediu de reţea de calculatoare.
Obiective ale unui SGBD
3. Asigurarea facilităţilor de utilizare a datelor – presupune ca SGBD-ul să aibă anumite
componente specializate pentru: folosirea datelor de către mai mulţi utilizatori în diferite
aplicaţii, accesul cât mai simplu al utilizatorilor la date, existenţa unor limbaje performante de
regăsire a datelor, sistemul de gestiune trebuie să ofere posibilitatea unui acces multicriterial
la informaţiile din baza de date.
4. Asigurarea securităţii datelor împotriva accesului neautorizat.
5. Asigurarea coerenţei şi integrităţii datelor împotriva unor ştergeri intenţionate sau
neintenţionate.
6. Asigurarea partajabilităţii datelor – asigurarea accesului mai multor utilizatori la
aceleaşi date şi posibilitatea dezvoltării aplicaţiilor fără a se modifica structura bazei de date.
Obiective ale unui SGBD
7. Asigurarea legăturilor între date – corespund asocierilor care se pot realiza între
obiectele unei aplicaţii informatice. Orice SGBD trebuie să permită definirea şi descrierea
structurii de date, precum şi a legăturilor dintre acestea, conform unui model de date (de
exemplu modelul relaţional).
8. Administrarea şi controlul datelor – sunt asigurate de SGBD, în sensul că datele pot fi
folosite de mai mulţi utilizatori în acelaşi timp, iar utilizatorii pot avea cerinţe diferite şi care
pot fi incompatibile. SGBD trebuie să rezolve probleme legate de concurenţă la date,
problemă care apare mai ales în lucrul în mediu de reţea de calculatoare.
Obiective ale unui SGBD
-funcţia de descriere a datelor – se face cu ajutorul limbajului de definire a datelor,
realizându-se descrierea atributelor din cadrul structurii BD, legăturile dintre entităţile BD, se
definesc eventualele criterii de validare a datelor, metode de acces la date, integritatea
datelor. Concretizarea acestei funcţii este schema BD.
- funcţia de manipulare – realizează actualizarea şi regăsirea datelor.
- funcţia de utilizare – asigură mulţimea interfeţelor necesare pentru comunicare a tuturor
utilizatorilor cu BD.
- funcţia de administrare – administratorul este cel care realizează schema conceptuală a
bazei de date, iar în perioada de exploatare a BD autorizează accesul la date, reface baza
în caz de incident.
- funcţia de protecţie a bazei de date – ansamblul de măsuri necesare pentru asigurarea
integrităţii (semantică, acces concurent, salvare/restaurare) şi securităţii datelor (autorizare
acces, utilizare viziuni, criptare).
Funcțiile unui SGBD
2. Etapele de realizare a unei bănci de date
2.1. Etapa de analiză
1. Studierea problemei de rezolvat - constă în studiul şi descrierea activităţilor pentru care
se va organiza baza de date (cerinţe şi resurse);
2. Proiectarea structurii bazei de date - are ca principale activităţi alegerea modelului de
SGBD, proiectarea funcţiilor bazei de date, stabilirea intrărilor şi ieşirilor aplicaţiilor;
3. Stabilirea modului de memorare a datelor – în memorie (temporare) sau pe disc în baza
de date, pentru care trebuie stabilită şi structura;
4. Stabilirea algoritmului general de rezolvare a problemei – la nivel de schemă bloc;
5. Stabilirea structurii meniului principal al aplicaţiei – acesta trebuie să conţină opţiuni
pentru toate funcţiunile sistemului informatic care sunt accesibile utilizatorului.
6. Împărţirea aplicaţiei pe programe – fiecare program urmăreşte rezolvarea unei părţi a
problemei generale.
2.2. Etapa de programare
1. Elaborarea programelor: realizarea componentelor logice – programe/aplicaţii – începând cu
programul principal si continuând cu cele de introducere/actualizare a datelor, cu cele de prelucrare
şi terminând cu programele de interogare baza de date şi extragere de informaţii.
2. Testarea funcţionării corecte a programelor individuale şi a sistemului în ansamblu – pentru cât
mai multe situaţii posibile (ideal ar fi testarea în toate situaţiile posibile dar numărul acestora este
foarte mare) incluzând în mod obligatoriu şi situaţiile limită.
3. Înlăturarea erorilor depistate – şi reluarea pasului 2. Dacă nu mai sunt erori se continuă cu
următoarea etapă.
2.3. Punerea în funcţiune şi exploatarea bazei de date
1. Încărcarea şi manipularea datelor – operaţii de actualizare şi consultare,
întreţinere (dezvoltare) a bazei de date.
2. Elaborarea documentaţiei de utilizare – care se predă beneficiarului, cât
şi documentaţia tehnică a sistemului (de preferat ca fiecare program să
aibă câte o fişă tehnică, pentru o mai uşoară depanare, întreţinere).
3. Realizarea unei baze de date
Diagrama entitate-relaţie (diagrama ER)
O entitate este un obiect concret sau abstract care există şi poate fi distins de un alt obiect
(de exemplu o persoană, un concept, un sentiment etc.).
O mulţime sau o clasă de entităţi este un grup de obiecte concrete sau abstracte de
aceeaşi natură (de exemplu toate persoanele, toate conceptele, toate sentimentele etc.).
Un atribut reprezintă o proprietate caracteristică a entităţilor din aceeaşi clasă. De exemplu,
o persoană poate fi caracterizată prin următoarele caracteristici:
- nume;
- prenume;
- cod numeric personal (CNP);
- adresă;
- telefon.
Domeniul reprezintă mulţimea valorilor pe care le poate avea un anumit atribut.
O cheie primară (sau, mai simplu, o cheie) este un atribut sau un set de atribute care
identifică într-o manieră unică o entitate - de exemplu CNP (nu există două persoane care
au acelaşi CNP).
Relaţia leagă între ele două sau mai multe entităţi prin intermediul unor atribute cu acelaşi
domeniu.
În cazul în care o relaţie leagă două entităţi, ea se numeşte binară.
Dacă relaţia este între cel puţin trei entităţi, se spune că este o relaţie n-ară.
La rândul lor, relaţiile binare se împart în trei categorii:
-relaţii unul la unul (1:1), caz în care unei entităţi E nu-i poate corespunde prin relaţia A
decât o entitate F şi, invers, entităţii F nu îi poate corespunde decât entitatea E prin
relaţia A;
-relaţii unul la mai mulţi (1:n), caz în care unei entităţi E îi pot fi asociate mai multe
entităţi Fi dar, unei entităţi Fi îi este asociată prin aceeaşi relaţie o singură entitate (E);
-relaţii mai mulţi la mai mulţi (n:n), caz în care unei entităţi Ei îi pot corespunde mai
multe entităţi Fi şi reciproc.
Cardinalitatea unei perechi (E, A), unde E este o clasă de entităţi şi A este un set de relaţii,
este dată de perechea (m, M), unde m şi M sunt numărul minim respectiv maxim de legături
A ce leagă E de una sau mai multe clase de entităţi.
O diagramă ER este reprezentarea grafică a unei colecţii de entităţi, relaţii, constrângeri,
condiţionări etc. care descriu complet o bază de date.
EXEMPLU : Bază de date elementară:
CONTRA-EXEMPLU:
Prezentarea sub forma de tabelă unică:
Probleme:
- Repetarea unor informaţii în mai multe înregistrări
• Risipă de spaţiu,
• Risc de inconsistenţă a datelor (aceeaşi informaţie prezentată în moduri diferite)
• Gestiune dificilă (unele modificări trebuie efectuate în toate înregistrările)
- Structură rigidă, dificil de adaptat unor situaţii noi
- Riscul de alterare a informaţiilor la operaţii de:
• Înserarea unei noi înregistrări,
• Modificare,
• Ştergere (ex: daca se şterge înregistrarea 6, se pierde adresa de email a autorului, care era
prezent o singură dată în tabelă).
SOLUŢIE: Împărţirea informaţiilor în mai multe tabele, legate între ele prin relaţii:
Normalizarea relaţiilor
În procesul de modelare a bazelor de date, o etapa importantă o constituie
normalizarea relaţiilor.
Normalizarea presupune perfecţionarea progresivă a schemei conceptuale
ţinând cont că trebuie asigurate următoarele cerinţe:
- trebuie garantată conservarea datelor;
- trebuie garantată conservarea dependenţelor;
- în urma normalizării, descompunerea relaţiilor iniţiale trebuie să fie una minimală.
Necesitatea normalizării poate fi cel mai uşor evidenţiată prin exemple de baze de
date nenormalizate.
Datorită structurii acestei baze de date apar ca evidente cel puţin următoarele anomalii:
1. Redundanţă – perechea de date (“Ionescu”, “Bogdan”) apare de 3 ori, (“Popa”, “Virgil”)
de două ori etc.
2. Anomalii la ştergere – dacă se şterge înregistrarea cu Nr_crt = 6 se pierd toate
informaţiile legate de studentul “Florea Ion”.
3. Anomalii la inserare – perechea (“Ionescu”, “Bogdan”, “Baze de date”, 9) este inserată
de două ori.
4. Anomalii la modificare – dacă prenumele studentului “Popa Virgil” este greşit,
modificarea lui presupune modificarea unui număr de înregistrări egal cu notele
studentului, ceea ce, între altele, poate conduce la noi erori de introducere a datelor.
O structură a bazei de date discutate care elimină o parte din aceste
anomalii imparte tabelul anterior în două tabele, conform următoarei
reprezentări şi a diagramei entitate-relaţie asociate.
În această structură se observă, totuşi, o redundanţă a unor date, dată de
apariţia repetată a numelor disciplinelor. Această redundanţă dispare prin
introducerea în structură a unei noi entităţi, adică a unui nou tabel care să
conţină denumirile disciplinelor.
Bibliografie:
1. http://www.w3schools.com/
2. http://tutorialehtml.com/
3. http://www.cssbasics.com/full.pdf
4. Lucian PETRESCU – Internet, HTML şi baze de date, Ed. Matrix Rom,
Bucuresti, 2015
5. Romică TRANDAFIR, Mihai Ştefan NISTORESCU, Bazele Informaticii şi
Limbaje de Programare - Note de Curs, 2006;
6. Cezar FLUERAŞU, Managementul Datelor şi al Cunoştinţelor - Note de
Curs, 2003;
7. Cătălin CONSTANTINESCU, Baze de Date, Note de Curs, 2006
Vă mulțumesc pentru atenție !