INTRODUCERE

Definiţii
Proiectarea reprezintă un sistem coerent de activităţi mintale şi tehnice care au ca scop elaborarea documentaţiei de realizare a unui produs care trebuie să răspundă unor cerinţe social-economice. La modul general, un produs poate fi de tip “hard” sau “soft”. Prin modul de abordare, activităţile de proiectare sunt asemănătoare, indiferent de natura produsului. Proiectarea asistată de calculator (Computer Aided Design – CAD), poate fi definita ca o activitate de utilizare a unui sistem de calcul în proiectarea, modificarea, analiza şi optimizarea proiectării. Sistemul de calcul este format din echipamente şi programe care asigura funcţiile necesare în proiectare. Baza de date este un ansamblu structurat de date înregistrat pe suporturi accesibile calculatorului pentru a satisface simultan cerinţele mai multor utilizatori într-un mod selectiv şi în timp util. Sistemul de gestiune a bazelor de date este ansamblul de programe care permit utilizatorului să interacţioneze cu o bază de date. În contextul actual, nu orice colecţie de date, reprezintă o bază de date. O cerinţă primordială este aceea a organizării datelor dintr-o bază de date după anumite reguli. Regulile şi conceptele care permit descrierea structurii unei baze de date formează modelul datelor . În timp au fost definite trei astfel de modele: modelul ierarhic în care datele sunt organizate sub forma unui arbore, nodurile constând din înregistrări, iar arcele referinţe către alte noduri; modelul reţea în care datele erau organizate sub forma unui graf orientat. Nodurile şi arcele au aceeaşi semnificaţie ca mai sus; modelul relaţional în care, intuitiv, datele sunt organizate sub formă de tabele.

lista de coloane şi tipul datelor din acestea. Aceste informaţii sunt cunoscute sub numele generic de constrângeri de integritate. crearea şi exploatarea bazelor de date. în principal.Dezavantajul principal al primelor două modele constă în operarea greoaie cu datele. . Termenul de relaţie (care da denumirea modelului) provine din matematica. De asemenea descrierea poate include informaţii despre elementele de identificare ale înregistrărilor dintr-o tabela (cheie primara). iar reprezentarea intuitiva a unei relaţii este o tabela. În cazul modelului relaţional descrierea structurii unei baze de date consta. în descrierea tabelelor componente: denumire. Obiectivele disciplinei Obiectivele principale ale cursului „Bazele proiectării asistate de calculator” sunt de a forma cursanţilor competenţe şi abilităţi privind: principiile de proiectare a bazelor de date. Popularitatea acestui model este datorata simplităţii sale (din punct de vedere al utilizatorului) şi a posibilităţii de definire a unor limbaje neprocedurale de descriere şi manipulare a datelor. a coloanelor comune cu alte tabele (chei străine) şi a altor restricţii şi verificări de corectitudine pentru datele stocate. De aceea ele nu se mai folosesc în realizarea sistemelor de gestiune moderne. acestea fiind bazate pe modelul relaţional al datelor.

câmpuri. Structurarea informaţiilor Aplicaţiile moderne organizează informaţiile sub forma unor tabele: liste de rânduri şi coloane ce amintesc de registrul unui contabil sau de o foaie de lucru din Microsoft Office Excel. utilizate în proiectare. de lungă durată. Acesta trebuie bine înţeles şi se obţine prin discuţii cu clientul şi prin analiza atentă a situaţiilor necesare unor decizii luate corect. fiecare rând sau înregistrare ar conţine informaţii despre un produs. primul pas în crearea bazei de date este stabilirea structurii (schema) acesteia. Un câmp este un element singular de informaţie . în tabelul catalog. chei primare şi străine. însă cele mai multe baze de date conţin multe tabele. înregistrări. poate exista doar un singur tabel. Într-o bază de date simplă. Odată ce este cunoscut acest lucru. Cu alte cuvinte. se poate crea un tabel care stochează informaţii despre produse. cum ar fi numele sau preţul. actualizate. a acesteia. proiectarea pleacă de la rolul bazei de date. O înregistrare este o modalitate semnificativă şi consistentă de a combina anumite informaţii. Fiecare rând se mai numeşte înregistrare şi fiecare coloană. Deoarece o proiectare corectă este esenţială pentru atingerea scopurilor utilizării unei baze de date.Principii de proiectare a bazelor de date O bază de date proiectată corespunzător furnizează acces la informaţii precise.un tip de element care apare în orice înregistrare. este esenţială. învăţarea unor principii de bază. de asemenea. corespunde scopului pentru care a fost creată şi oferă facilităţi privind realizarea de modificări. relaţii între tabele. De exemplu. O proiectare (modelare) bună a bazei de date conduce la o utilizare eficientă. Proiectarea unei baze de date are ca punct de plecare subiectul sau tema bazei de date necesarul de informaţii concretizat în situaţii şi rapoarte de care beneficiarul acesteia are nevoie. De exemplu. alt tabel care stochează informaţii despre comenzi şi un altul cu informaţii referitoare la clienţi (vezi concordanta cu conţinutul). se mai numeşte câmp. Fiecare coloană sau câmp conţine un anumit tip de informaţie despre acest produs. . Termenul structură implică noţiuni precum tabele.

corecta şi realista. iar limbajul utilizat sa fie usor inteles. transformarea elementelor de informaţii în coloane. f. Este foarte important ca cerintele clientilor sa fie identificate. corectitudinea şi caracterului complet al informaţiilor. evitarea informaţiilor redundante. c. care au o influenţă negativă deoarece consumă spaţiu şi sporesc probabilitatea producerii de erori. b. o bază de date ce conţine informaţii incorecte sau incomplete va genera rapoarte eronate care conduc la A. iar referinţele clienţilor. g. d. aplicarea regulilor de normalizare. specificarea cheilor primare. rafinarea proiectării. împărţirea informaţiilor.Principii de proiectare Procesul de proiectare al unei baze de date trebuie să ia în considerare două principii de bază: decizii greşite. determinarea scopului bazei de date. Scopul bazei de date trebuie urmărit în timpul întregii activităţi de proiectare. e. h. selectarea şi organizarea informaţiilor necesare. configurarea relaţiilor din tabel. constituie sugestii pentru echipa de proiectare. fiind consultat în toate fazele. Etapele procesului de proiectare Pentru o proiectare eficienta a unei baze de date se recomanda parcurgerea următoarelor etape: a. Cade în sarcina echipei de proiectare sa verifice daca fiecare cerinţă şi constrangere formulată de beneficiar este relevanta. Este esential ca intreaga . Determinarea scopului bazei de date Determinarea scopului bazei de date constituie o etapă deosebit de importantă a procesului de proiectare în ansamblu.

La conceptia formularului luaţi în considerare structura informaţiilor. începeţi cu informaţiile existente. B. care să fie consultată în cadrul procesului de proiectare. câte casete de completat să facem şi ce elemente să înregistrăm? Fiecare dintre aceste elemente poate reprezenta o coloană din tabel. Selectarea şi organizarea informaţiilor necesare Selectarea informaţiilor se va face având în vedere menirea bazei de date. de exemplu pentru o afacere de familie. Pentru o bază de date restrânsă. scopul se poate întinde pe mai multe paragrafe şi trebuie să includă când şi de către cine va fi utilizată baza de date. treceţi în listă fiecare element la care vă gândiţi că ar putea fi util. Imaginaţi-vă cum ar arăta raportul şi proiectaţi-l în funcţie de . Colectaţi documentele cu informaţii şi faceţi o listă cu fiecare tip de informaţii afişate şi înregistraţi-le în formulare. Pe măsură ce pregătiţi lista. care afişează nivelurile de inventar ale produselor. scopul poate fi formulat simplu: "baza de date a clienţilor cu o listă a informaţiilor despre clienţi în scopul producerii de liste de corespondenţă şi de rapoarte. se recomanda divizarea acestora în proiecte mai mici. Dacă nu aveţi formulare. De exemplu. cum se întâmplă de obicei într-o conjunctură corporativă. Pentru probleme complexe." Dacă baza de date este mai complexă sau este utilizată de mai multe persoane. De asemenea. Trebuie să ştim: ce informaţii se vor pune în formular. se poate crea un raport de vânzări pentru un produs. care afişează vânzările în funcţie de regiune sau un raport de rezumare a inventarului. se pot genera scrisori formale. Nu vă faceţi griji dacă nu este perfectă din prima încercare. Dacă baza de date va fi utilizată de catre mai multe categorii de clienţi. nu ezitaţi să le cereţi părerea. Ideea principală este să se descrie riguros misiunea bazei de date. de mare anvergura. imaginaţi-vă că trebuie să proiectaţi un formular pentru a înregistra aceste informaţii. Concepţia bazei de date trebuie să ia în considerare tipurile de rapoarte pe care doriţi să le obţineţi din baza de date.investigare a problemei sa fie facuta de proiectanţi inainte de a gasi solutia. Pentru a găsi şi organiza informaţiile necesare. care li se vor trimite clienţilor pentru a-i anunţa de evenimente sau de oferte speciale.

după ce găsiţi şi organizaţi informaţiile unei baze de date pentru vânzări de produse. comenzi. tabelul furnizori şi tabelele clienti şi comenzi. lista preliminară poate conţine: catalog produse. Faceţi acelaşi lucru pentru scrisoarea formală şi pentru orice alt raport de care aveţi nevoie. Pentru fiecare client. De exemplu. furnizori. este util să se stocheze separat numele de familie ale clienţilor. În general. C. să presupunem că dorim să oferim clienţilor oportunitatea de a se abona la diverse mesaje periodice. prin poşta electronică şi că dorim să imprimăm o listă a celor care s-au abonat. Este indicat să se construiască un “prototip” al fiecărui raport sau lista de ieşire şi să se ia în considerare elementele necesare pentru a produce raportul. pentru a ordona. deoarece pentru a ordona un raport după numele de familie. Împărţirea informaţiilor în tabele Împărţirea informaţiilor în tabele se face pe baza celor mai importante entităţi sau subiecte. În cazul unui nume. Se recomandă ca informaţiile să fie despărţite în cele mai mici părţi utile. pentru ca numele de familie să fie uşor disponibil. este logic să pornim cu patru tabele: tabelul catalog. clienţi. De exemplu. acestea fiind entităţile principale. Necesitatea de a le trimite mesaje de poştă electronică clienţilor sugerează un alt element care trebuie înregistrat: adresa de poştă electronică. În concluzie. Imaginarea şi proiectarea secvenţială a unor rapoarte şi liste ne ajută să stabilim elementele de care avem nevoie în baza de date.informaţiile dorite în raport. . a căuta sau raporta în funcţie de un element informaţional. se va despărţi numele în două părţi: nume şi prenume. Pentru a înregistra aceste informaţii. trebuie evidenţiat acel element într-un câmp propriu. avem nevoie de o coloană “Abonat la mesaje email” la tabelul pentru clienţi. Pe masura elaborarii proiectului lista poate fi îmbunătăţită până când se ajunge la un proiect care funcţionează bine. se poate seta câmpul la DA sau la NU.

să presupunem că dorim să ştergem un produs. aceasta va aparţine tabelului furnizori. în mod accidental. coloanele din acel tabel trebuie să stocheze numai datele despre acel subiect. numele şi informaţiile furnizorului s-ar repeta. cât şi despre furnizorul lui. oraş-cod poştal. Dacă pentru exemplul de mai sus am utiliza un singur tabel. este o soluţie mult mai bună. Dacă aceeaşi informaţie se repetă în mai multe locuri. O altă problemă a acestui proiect apare atunci când trebuie modificate informaţiile despre furnizor (să presupunem că trebuie schimbată adresa unui furnizor). dar înregistrarea adresei furnizorului într-un singur loc (tabelul furnizori) rezolvă problema. De exemplu. Deoarece adresa apare în multe locuri este posibil. După ce se alege subiectul reprezentat de un tabel.În general proiectantii mai puţin experimentaţi sunt tentaţi să plaseze cât mai multe informaţii într-un singur tabel. Transformarea elementelor informaţionale în coloane Stabilirea coloanelor dintr-un tabel se face pe baza informaţiilor necesare pentru subiectul înregistrat în tabel. fapt ce mareşte dimensiune bazei de date. Deoarece adresa unui furnizor este o informaţie despre furnizor. Deoarece se poate ca multe produse să aibă acelaşi furnizor. formulă introductivă şi adresă email. într-un tabel separat denumit furnizori. abonat la mesaje de poştă electronică. amplasati informaţia într-un tabel separat. dar să păstrăm informaţiile furnizorului. iar apoi legarea acelui tabel cu tabelul catalog. De exemplu. În final. Înregistrarea informaţiilor despre furnizori o singură dată. este . Acest lucru este posibil prin menţinerea separată a datelor. Pentru început aceste informaţii reprezintă o listă corespunzătoare. fiecare rând conţine atât informaţii despre produs. şi nu una despre produs. în două tabele separate. dar ulterior poate fi îmbunătăţită. vom avea nevoie de urmatoarele informaţii: nume. tabelul pentru produse trebuie să stocheze numai date despre produse. D. să omitem efectuarea tuturor modificărilor. adresă. De aceea la proiectarea bazelor de date se recomanda să înregistraţi fiecare informaţie o singură dată. Acest lucru nu este o idee bună. din exemplul precedent. Pentru tabelul clienţi.

E. Despărţirea informaţiilor în părţi logice favorizează prelucrarea şi gestionarea acestora în funcţie de acestea. cum ar fi marca unui angajat sau un număr de serie pentru un produs. Dacă se combină mai multe tipuri de informaţii într-un câmp. deoarece numele nu sunt unice. se recomanda a nu se utiliza acea . fiecare rând stocat în tabel. În terminologia bazelor de date.indicat să se stocheze numele clienţilor în două coloane: prenume şi nume de familie. Stocaţi cele mai mici părţi logice din informaţii Se recomandă stocarea informaţiilor în câmpuri destinate celor mai mici parţi logice. Într-o cheie primara nu pot exista valori duplicate. pentru facilităţi de exploatare. Nu utilizaţi numele oamenilor pentru cheia primară. Este foarte posibil să existe doi oameni cu acelaşi nume în acelaşi tabel. Specificarea cheilor primare Se recomandă ca fiecare tabel trebuie să includă o coloană sau un set de coloane care identifică. în mod unic. De obicei. Nu includeţi date calculate Se recomandă să nu se înregistreze rezultatele unor calcule în tabele. Pare a fi tentant să înregistrăm într-un singur câmp informatii complete cum ar fi numele sau denumirea şi/sau descrierea produselor. chiar dacă aplicaţiile pentru baze de date pot efectua calculele. Aplicatiile pentru baze de date utilizează câmpuri de tipul cheie primară pentru a asocia rapid date din tabele multiple şi a prelucra datele. O cheie primară trebuie întotdeauna să aibă o valoare. este dificil să se regăsească ulterior date individuale. se utilizează un număr unic de identificare. aceste informaţii reprezintă cheia primară a tabelului. iar dacă este posibil ca valoarea unei coloane să fie necunoscută la un anumit moment.

Această relaţie este de tipul mai-mulţi-la-mai-mulţi. iar un produs poate apărea în mai multe comenzi. pentru orice furnizor din tabelul furnizori pot exista multe produse în tabelul catalog. este important să luăm în considerare ambele sensuri ale relaţiei. pot exista mai multe înregistrări în tabelul comenzi.coloană într-o cheie primară. Rafinarea proiectării În momentul în care există tabelele. În acest sens se pot crea relaţii de tipul “unul-la-mai-mulţi” sau “mai-mulţi-la-mai-mulţi”. deoarece pentru orice produs pot exista mai multe comenzi. iar pentru orice comandă pot exista mai multe produse. când există o relaţie unu-la-unu sau unu-la-mai-mulţi. câmpurile şi relaţiile necesare. De aceea. Când există o relaţie mai-mulţi-la-maimulţi este necesar un al treilea tabel pentru a reprezenta relaţia. Luaţi în considerare relaţia dintre tabelul catalog şi tabelul comenzi. informaţiile se împart în tabele separate. În acest caz e vorba despre o relaţie de tipul unul-la-mai-mulţi. Crearea relaţiilor dintre tabele După ce s-au împărţit informaţiile în tabele. Utilizarea unei chei care nu se modifica asigură sincronizarea cheii primare cu tabelele care fac referinţă la ea. Se pot utiliza relaţiile dintre tabele pentru a asocia informaţiile în moduri utile. Într-o bază de date relaţională. Un alt exemplu este în cazul unei comenzi. În general. bazate pe subiecte. pot exista mai multe înregistrări în tabelul catalog şi pentru fiecare înregistrare din tabelul catalog. Astfel. pentru fiecare înregistrare din tabelul comenzi. Spre exemplu. Pentru a detecta relaţiile de tipul mai-mulţi-la-mai-mulţi dintre tabele. . un furnizor poate furniza mai multe produse. se recomandă înregistrarea (popularea) cu date eşantion şi realizarea unor simulări (interogări. este necesară o asociere între acestea. tabelele implicate trebuie să partajeze una sau mai multe coloane. F. G. o comandă poate include mai multe produse.

Normalizarea este un concept pus la punct de Edgar Frank Codd (cercetător de la firma IBM). nici un tabel nu poate avea mai multe coloane pentru date corelate. trei câmpuri numite autor1. autor2 şi . Cum trebuie înţelese aceste reguli ? Un tabel furnizori care memorează adresa unui furnizor într-un singur câmp numit adresa nu respectă prima regulă deoarece adresa nu reprezintă o informaţie atomică (elementară). în ordine. la rândul lor. Există mai multe forme normale. localitate. au fost grupate în submulţimi numite forme normale. număr etc. a acestora asigură o structură bună bazei de date ce urmează a fi proiectată. rapoarte etc. iar respectarea. ci ea se structurează în elemente ca: judeţ. stradă. Prima formă normală Această formă presupune ca toate tabelele unei baze de date să respecte următoarele reguli: • • fiecare coloană trebuie să conţină o singură valoare (recomandabil ca aceasta să fie elementară. Acestea. adică indivizibilă). la începutul anilor ’70. Codd a introdus o mulţime de reguli care trebuie respectate atunci când se proiectează structura unei baze de date. pe lângă alte informaţii. Aceeaşi persoană a introdus şi modelul relaţional al bazelor de date. Aceasta constă în aplicarea unui set de reguli prin care se urmăreşte eliminarea redundanţelor şi a altor probleme care pot afecta integritatea bazei de date. model viabil şi astăzi. H. Presupunem că acest tabel conţine în structura sa.înregistrări.) Acest lucru ne ajută la evidenţierea problemelor potenţiale şi la corectarea acestora. Aplicarea regulilor de normalizare Structurarea unei baze de date presupune şi un proces numit normalizare. Pentru exemplificarea celei de a doua reguli considerăm cazul unui tabel numit titluri şi care face parte din structura bazei de date a unei biblioteci de carte.

număr etc. autor2 şi autor3. se scot din structura tabelului titluri şi se includ într-un tabel distinct. Pentru eliminarea celei de a doua anomalii câmpurile corelate care se repetă. nu se va descompune în cele trei informaţii elementare. De ce e necesar a fi respectate aceste două reguli ? Memorarea informaţiei privind adresa într-un singur câmp în cazul tabelului furnizori face imposibilă ordonarea şi/sau gruparea furnizorilor după criterii precum judeţul. În acest caz. se identifică câmpurile care conţin date multiple. Includerea celor trei câmpuri autor1. tabelul titluri nu respectă cea de-a doua regulă a primei forme normale. Există situaţii în care nu se recomandă divizarea unei informaţii compuse. pentru aducerea unei baze de date la prima formă normală trebuie urmaţi paşii: 1. autor2 şi autor3 în structura tabelului titluri conduce la o risipă de memorie atunci când un titlu are unul sau doi autori sau la imposibilitatea de a memora o informaţie completă privind autorii în situaţia în care cartea are mai mult de trei autori. Cum trebuie concepută structura bazei de date pentru a asigura respectarea regulilor prevăzute de prima formă normală ? Pentru a respecta prima regulă. Este cazul datei calendaristice care. localitatea etc. localitate. . informaţia privind adresa se divide în elemente atomice care se memorează în câmpuri distincte ca judeţ. în care se adaugă o înregistrare pentru fiecare autor al aceluiaşi titlu. deşi se compune din informaţii privind ziua. luna şi anul. spre exemplu autori.autor3 pentru fiecare titlu de carte existentă în bibliotecă. respectiv autor1. În concluzie. stradă.

Pentru a aduce tabelul facturi_furnizori la cea de-a doua formă normală. se creează cheile străine necesare şi se stabilesc relaţii între tabele. . Aceste coloane trebuie scoase din structura tabelului curent şi ele vor face obiectul unui tabel nou. Pentru aducerea unei baze de date la a doua formă normală trebuie urmaţi paşii: 1. acest ultim câmp (câmpuri) va avea rol de cheie străină. se identifică câmpurile care pot avea valori repetate. se creează noile tabele necesare. 2. furnizori) împreună cu câmpul (câmpurile) care conţine valoarea cheii primare din primul tabel. Pentru facturile primite de la acelaşi furnizor valorile coloanei nume_furnizor se repetă. Dacă baza de date respectă prima şi a doua formă normală e puţin probabil ca restricţiile celei de a treia forme normale să mai fie necesare. Trebuie identificate coloanele ale căror valori se repetă pe mai multe rânduri. spre exemplu. 3. Între tabelele furnizori şi facturi_furnizori se stabileşte o legătură pe baza câmpului comun (cheie primara – cheie straina).2. 3. grupurile de coloane care se repetă se organizează în tabele separate. se creează chei primare. A doua formă normală Presupunem că baza de date este deja în prima formă normală. A treia formă normală A treia formă normală presupune faptul că baza de date este deja în a doua formă normală şi toate câmpurile care nu conţin chei depind de cheia primară. numele furnizorului se elimină din acest tabel şi se include într-un tabel nou (numit. Pentru exemplificare considerăm cazul tabelului facturi_furnizori a cărui structură include o coloană nume_furnizor. fiecare din aceste câmpuri se împarte în coloane separate. 4. În tabelul furnizori.

Pentru exemplificare să considerăm tabelul furnizori amintit mai sus. memorate în câmpurile judeţ. dar prin aplicarea principiilor care şi-au dovedit funcţionalitatea. Pentru a respecta regulile celei de a treia forme normale câmpurile judeţ. se creează cheile străine necesare şi se stabilesc relaţii între tabele. se creează noile tabele necesare. Acest proces este foarte complex. localitatea sau strada există indiferent de faptul că tabelul furnizori conţine sau nu un furnizor din judeţul. 4. . localitate. Pe baza celor prezentate se constată că proiectarea bazelor de date este unul din cei mai importanţi paşi în dezvoltarea unei astfel de aplicaţii. localitate si respectiv. strada. strada se scot din structura tabelului furnizori şi se creează alte trei tabele corespunzător celor trei câmpuri. 3. în tabelele noi se definesc sau se introduc chei primare. Acesta conţine în structura sa informaţii privind adresa. localitatea sau de pe strada respectivă. se identifică câmpurile care nu depind direct de cheia primară. Oricare din cele trei câmpuri nu depinde de furnizor în sensul că judeţul. Aducerea unei baze de date la a treia formă normală presupune parcurgerea următorilor paşi: 1. se poate ajunge relativ uşor la o soluţie viabilă. 2.

Sign up to vote on this title
UsefulNot useful