Sunteți pe pagina 1din 9

Fundamentele Bazelor de Date

Baz de date
1969-termenul este folosit prima dat n cadrul unei conferine n care s-a propus un model de aplicaie care
promova independena datelor fa de programare. Bazele de date trebuiau s conin un fiier care s descrie
ntreaga structur a acestora.
Def: O baz de date reprezint o colecie de date organizate ntr-o schem definit de un model conceptual; sau
o colecie de date intercorelate, mpreun cu descrierea i relaiile dintre ele.
O baz de date reprezint un sistem integrat, coerent de fiiere partajabile
Coninutul bazei de date=> Toate informaiile stocate la un moment dat ntr-o baz de date.
Schema bazei de date=> structura datelor mpreun cu relaiile dintre entiti, precum i constrngerile de
integritate.
Sistem de Gestiune al Bazelor de Date (SGBD)=> Un ansamblu de programe sau un mediu avansat de
programare destinat managementului datelor din cadrul unei baze de date.
Actorii: industriei bazelor de date sunt: Oracle, MS SQL Server, MySQL, Informix, Ingres, Magic, xBase, MS
FoxPro, MS Access etc
Un SGBD are urmtoarele funcii principale
Funcia de definire a datelor-permite, ntr-un mod specific pentru fiecare SGBD n parte, descrierea structurii
de date i a relaiilor dintre entiti, utiliznd componenta Data Definition Language (DDL);
Funcia de manipulare-realizeaz popularea, actualizarea i interogarea datelor sau a diverselor obiecte ale
bazei de date, prin utilizarea componentelor Data Manipulation Language (DML) i Query Language (QL);
Funcia de utilizare-se pun la dispoziia utilizatorului diverse modaliti de interaciune cu sistemul. Acest
dialog poate fi facilitat prin comenzi, meniuri, ferestre etc.
Deci, SGBD-ul ofer utilizatorului, prin componentele sale, instrumentele necesare transformrii datelor n
informaii utile.
Arhitectura unei baze de date
1971- pe dou nivele: schem i subschem
1975- trei nivele: separ viziunea utilizatorului de detaliile implementrii fizice
1. Extern=> cel mai aproape de utilizatorul final se mai numete nivel logic al utilizatorului
2. conceptual => sau nivelul logic, virtual sau semantic unificarea semantic a tuturor schemelor
externe individuale, pentru a furniza o perspectiv global asupra ntregii baze de date. Actorii acestui
nivel sunt: administratorul sau proiectantul bazei de date. Acest nivel are ca sarcin i gestiunea
constrngerilor de integritate i securitatea. Nivelul conceptual este unul intermediar ntre celelalte
dou.
3. i intern=> nivelul inferior din cadrul unei arhitecturi ANSI/SPARC
=> permite ca baza de date s fie descris ntr-un mod apropiat nivelului fizic de reprezentare
al datelor, dar nu pn la detaliile fizice, precum blocuri, pagini, sectoare, piste
=> indic modul de implementare al unei scheme conceptuale prin utilizarea unui anume SGBD,
precum MS Access sau MS Visual FoxPro
Rezultatul a fost arhitectura cunoscut sub denumirea (American National Standards Institute)ANSI-SPARC
(Standards Planning And Requirements Committee) proiectat pentru sistemele de baze de date centralizate
( din acest sistem au derivat sistemele distribuite i federativede de baze de date)

Modele de reprezentare ale datelor

este un instrument teoretic ce contribuie la determinarea structurii, coninutului unei baze de date,
precum i la gestiunea acestora prin setul de operaii pe care le pune la dispoziie
Are componentele:
1. Reguli privind structurarea datelor: dou seturi de astfel de reguli: una care gestioneaz structura i
relaiile dintre entiti, iar cealalt se preocup de integritatea referenial i de regulile de ntreprindere;
2. Reguli privind manipularea datelor: doar valorile (coninutul) memorate n baza de date pot fi
actualizate, n timp ce modelul conceptual este invariabil.
Modelele orientate pe obiect
=>permit descrierea bazei de date doar la nivel conceptual i extern.
=>Acestea sunt:
1.Modelele Entitate-Relaie (ER) sau Obiect-Legtur-Entitate (OLE)
2.Modelul semantic
3. Modelul funcional
4. Modelul orientat-obiect.
Modelele bazate pe nregistrri sunt:
1.Modelul ierarhic
2.Modelul reea
3.Modelul relaional

Conceptele modelului relaional


O baz de date reprezint o modalitate de stocare a unor informaii (date) pe un suport extern, cu posibilitatea
regsirii acestora. Cel mai rspndit model de baz de date este numit entitate-relaie n care datele sunt
memorate n tabele legate ntre ele. Pentru a putea stabili legturi ntre dou sau mai multe tabele ale unei baze
de date se definesc chei. Cheile pot fi primare i secundare.
Termenii cu care opereaz teoria relaional sunt:
1. Relaie=>reprezint un TABEL, compus din linii i coloane.
2. Atribut=>COLOANA
3. Domeniu (tip) =>iruri de caractere, date calendaristice, numere ntregi, numere reale, valori de adevr .
Atributele se definesc pe domenii
4. Ordin (aritate, rang) =>Numrul atributelor dintr-o relaie
5. Tuplu=>LINIILE tabelului
6. Cardinalitate=>Numrul total de tuple
7. Chei=>Setul de atribute al unei relaii care permite identificarea unui tuplu (entitate)

Tipuri de chei
Cheie candidate: este un atribut, sau un set K de atribute ale unei relaii R, dac i numai dac acesta
ndeplinete urmtoarele proprieti :
1.Identificarea unic: setul K e capabil s identifice n mod unic fiecare tuplu din R;
2.Ireductibilitatea: orice subset din K nu va fi capabil s asigure identificarea unic;
3.Valorile NULL: niciun atribut din K nu poate lua valoarea NULL (valoare neatribuit).

Obs:Atunci cnd cheia este compus doar dintr-un singur atribut, aceasta este o cheie candidat simpl, altfel
avem de-a face cu una compozit.
Tip special de cheie candidat.=>Cheia primar este acea cheie candidat selectat s asigure identificarea
unic la un moment dat. Restul cheilor candidate se numesc chei alternative i pot suplini oricnd rolul cheii
primare.
Cheie strin sau extern.=>este o referin la o cheie din alt relaie, ceea ce nseamn c tuplul referit trebuie
s aib pentru unul din atributele sale, o valoare a cheii din tuplul de referin.
Avnd dou relaii R1 i R2, o cheie strin este un atribut din R2 dac i numai dac valoarea sa este identic
cu una din valorile cheii candidate (primare) corespondente din R1, sau s fie NULL. R1 este denumit relaieprinte, n timp ce R2 este relaie-fiu n coresponden cu acest atribut. Uneori se mai ntlnesc termenii de
principal sau secundar, sau altele ntlnite la tipurile de entiti.

Tipuri de relaii (legturi)


Relaia una-la-una (1:1). Fiecare entitate dintr-un set S1 este legat de cel mult o entitate din setul S2 i viceversa
Relaia una-la-mai multe (1:n). Fiecare entitate dintr-un set S1 este conectat la una sau mai multe entiti din
setul S2 i fiecare entitate din setul S2 este conectat la cel mult o entitate din setul S1.(un client ar putea face
mai multe comenzi)=> Cele mai frecvente relaii
Relaia mai multe-la-mai multe (n:n sau m:n). Mai multe entiti din S1 sunt n relaie cu una sau mai multe
entiti din S2. Acest tip de relaie nu este suportat n mod direct de ctre modelul relaional, dar poate fi
simulat prin adugarea unei entiti intermediare (S3) ntre cele dou. n aceste circumstane vom avea o relaie
de tip 1:n ntre S1 i S3 i una n:1 ntre S3 i S2.
Ex: daca exita 2 tabele: Autori, Carti exista posibilitatea ca o carte sa fie scrisa de 2 sau mai multi coautori.
Dar fiecare dintre acestia au scris si alte carti singuri sau cu alti autori. Acest tip de relatie primeste de obicei o
tabela proprie deci vom avea: Carti, Autori si Cartile_Autorilor.
Regula: acest tip de relatie provoaca probleme in exemplele practice de baze de date normalizate fapt pentru
care aceste tipuri de relatii se sparg in relatii de 1 la mai multi.
Ex1: Carti si Autori
Autori(IDAutor,Nume_Autor); Carti(IDCarte,Titlu);
Cartile_Autorilor(IDLegatura,IDAutor,IDCarte);
Ex2.student si cursuri.
Student(IDStudent,Nume)
Cursuri(IDCursuri,Curs)
Un student se inscrie la mai multe cursuri si intotdeauna un curs are mai multi studenti. Pt a se crea relatia intre
cele 2 tabele se creaza o tabela intermediara care va stabili legatura:
Student_Cursuri(IDStudent,IDCursuri)
Normalizarea este arta organizarii bazelor de date astfel incat tabele sa fie relationate in cel mai optim mod,
formand o structura flexibila in vedrea extinderii ulterioare. Seturile de reguli folosite in normalizare se numesc
forme normale.
La prima etapa se creaza tabela bidimensionala care va contine toate datele despre toate informatiile care se
vor impartii in tabele. Aceasta tabela consuma mult spatiu pe disc si nu este normalizata:
Ex:
numeStudent-numele studentului
IDCurs1- id-ul primului curs la care este inscris studentul;
NumeCurs1-numele primului curs
DescriereCurs1-descrierea primului curs
ProfesorCurs1-profesorul primului curs la care este inscris studentul

IDCurs2- id-ul celui de-al doilea curs la care este inscris studentul;
NumeCurs2-numele cursului 2.
DescriereCurs2-descrierea celui de-al doilea curs
ProfesorCurs2-profesorul celui de-al doilea curs la care este inscris studentul
Obs:
Pt a se cuprinde toate cursurile se vor repeta coloanele IDCurs, DescriereCurs, ProfesorCurs. Eliminarea
redundantei in acest caz este primul pas in procesul de normalizare.
Prima forma normala
Regulile acestei forme sunt:
1.eliminarea informatiei redundante
2. crearea de tabele separate pt datele aflate in relatie
Deci datele tabelei bidimensionale se pot pastra in 2 tabele distincte:
Ex:
student(IDStudent,Nume);
cursuri(IDCurs,IDStudent,NumeCurs,Descriere,Profesor);
Cele 2 tabele reprezinta acum o relatie de 1 la mai multi. Un student fiind inscris la mai multe cursuri.
A 2-a forma normala
Regula acestei forme normale este:
1. nici un atribut non-cheie nu depinde de o portiune a cheii primare
Deci, in cazul in care exista campuri care nu au o legatura foarte mare cu cheia primara in tabela, trebuie
eliminate.
Ex:mai trebuie o tabela numita Studenti_Cursuri. Deci baza de date in a 2 forma normal devine:
Student(IDStudent,Nume);
Cursuri(IDCursuri,NumeCurs,Descriere,Profesor);
Student_Cursuri(IDStudent,IDCursuri);
Aceasta structura evidentiaza o relatie de tip mai multe la mai multe implementate cu ajutorul unei tabela de
legatura.
Forma a 3 a normal
Regula:
1.nici un atribut nu depinde de un alt atribut care nu este cheie primara.
Deci, trebuie sa se verifice daca mai exista campuri care sa fie puse in tabele separate si care nu depind de cheia
primara.
In ex nostru: ce date se repeta? Profesori. Inevitabil un profesor preda mai multe cursuri. Campul profesor nu
este cheie.
Obs:Cea de-a 3-a forma normal este potrivita pt eliminarea redundantelor si permiterea flexibilitatii si
scalabilitatii
Student(IDStudent,Nume);
Student_Cursuri(IDStudent,IDCursuri);
Cursuri(IDCursuri,NumeCurs,Descriere,IDProfesor);
Profesori(IDProfesor,NumeProfesor, DescriereCurs);

Tipuri de restricii constrngeri


=>reguli definite de utilizator
Constrngeri obligatorii n modelul entitate realie sunt: constrngeri de domeniu ne permit s introducem
doar anumite valori care se potrivesc cu tipul dictat de un anumit atribut (nu vom introduce text, numere sau
imagini la un atribut DataNasterii, definit ca dat calendaristic), integritatea entitii,- se refer la faptul c

niciunul dintre atributele cheii candidate nu accept valori NULL i n totalitate nu pot fi duplicate (conform
definiiei cheii candidate); integritatea referenial - spune c valorile cheii strine dintr-o relaie-fiu trebuie s
fie una din valorile existente n cadrul cheii primare/candidate din relaia-printe, sau prin excepie NULL-uri;
Constrngeri opional n modelul entitate realie sunt: reguli de ntreprindere - sunt constrngeri adiionale
definite de proiectantul bazei de date (data angajrii trebuie s fie mai mare dect data naterii, stocurile de
produse i preurile nu pot fi negative etc).

REGULI LA INSERARE
Tabela printe. Se poate aduga orice tuplu, dar cu evitarea duplicatelor i a valorilor NULL pentru cheia
candidat. n caz contrar se ncalc integritatea entitii, NU cea referenial.
Exemplu: n PRODUSE, un nou tuplu poate avea codul C002, S003 etc., dar nu C001, S001 sau S002, i nici
NULL.
Tabela fiu.
Regula de restricionare spune c nu putem insera un tuplu care s aib o valoare a cheii strine pe care s n-o
regsim printre valorile cheii candidate, dar poate fi n mod excepional NULL. Exemplu: n VANZARI, se
poate introduce orice nregistrare avnd C001, S001, S002, sau NULL n Cod, dar nimic altceva. Introducnd
spre exemplu C002, ar nsemna c intenionm s vindem un produs inexistent. Setnd regula de restricie la
inserare se vor stopa astfel de ncercri.

REGULI LA TERGERE/ACTUALIZARE
Tabela printe. Putem terge/actualiza orice tuplu care nu este conectat la vreun tuplu din tabela-fiu,
dar cu respectarea integritii entitii n cazul actualizrilor. Aceast conectare se traduce n acest caz
particular ca efectuarea a cel puin unei vnzri din produsul respectiv.
Regula de restricionare. Se va interzice orice ncercare de tergere/actualizare a vreunui tuplu care
este n legtur cu orice tuplu din tabela-fiu. Exemplu: Tuplele #1 i #3 nu pot fi terse/actualizate.
Regula de cascadare. Dac un astfel de tuplu este ters/actualizat, atunci toate tuplele din tabela-fiu cu
care acesta relaioneaz, vor fi la rndul lor actualizate/terse. Exemplu: n cazul n care se va terge
nregistrarea #3 din PRODUSE, atunci nregistrrile #2-#4 din tabela VANZARI vor fi terse automat. Atunci
cnd valoarea cheii candidate dintr-un astfel de tuplu se actualizeaz, atunci toate valorile cheii strine
corespondente din tabela-fiu, vor fi i ele automat actualizate. Exemplu: Dac n PRODUSE modificm codul
lui S002 n S005, atunci nregistrrile #2-#4 din VANZARI vor avea i ele S005, n loc de S002, n cadrul
atributului Cod; respectiv, dac se actualizeaz codul C001 n C002 din PRODUSE, automat se va actualiza i
nregistrarea #1 din VANZARI, codul devenind C002.
Tabela fiu. n ceea ce privete tergerea, nu exist nicio restricie, putnd terge orice tuplu. Exemplu:
n VANZARI se poate terge nregistrarea #1, pentru care codul este N001; la fel oricare din celelalte
nregistrri. Se poate actualiza orice valoare a vreunei chei candidate, ns noua valoare trebuie s fie, fie una
din valorile cheii candidate corespondente din tabela-printe, fie NULL. Exemplu: n VANZARI, la
nregistrarea #3, putem schimba codul S002, fie n C001 sau S001, fie n NULL.

Restricii de integritate

Visual FoxPro
-SGBD relaional
-este un limbaj de programare dinamic complet, care nu are nevoie de un mediu de programare
-se utilizeaz nu doar pentru tradiionalele aplicaii "fat client", dar i ca middleware i aplicaii web.

Microsoft Office Access


-o component din pachetul Microsoft Office;
-apariie 1995 pn n prezent;
Microsoft Office Access 2013 este un sistem de gestiune a bazelor de date (SGBD) dezvoltat de firma Microsoft
care ofer urmtoarele faciliti:
1. Are o compatibilitate destul de bun cu SQL-ul, dar fr posibilitatea de implementare a declanatorilor
i procedurilor stocate;
2. Access furnizeaz un mediu de programare puternic prin ale sale formulare i rapoarte conduse de
evenimente, ce utilizeaz VBA;
3. Are o interfa-utilizator prietenoas;
4. Suport i gestioneaz componente OLE DB, ADO, ADOX n vederea integrrii componentelor Access
cu celelalte tehnologii Microsoft;
5. Este capabil s gestioneze documente HTML, XML. Aceast facilitate ajut la crearea aplicaiilor de
baze de date cu interfa web;

6. Includerea de filtre i convertoare pentru familia de produse xBASE Visual Basic for Applications; GUI
Graphic User Interface

Moduri de lucru
1.Interfaa vizual- folosi opiunile/comenzile din meniuri sau file, dar poate apela i la o serie de instrumente
vizuale constructori, manageri/gestionari, generatoare, sau proiectani sau instrumente de asisten
interactiv (de tip wizard sau instrumente de proiectare rapid)
2.Utilizarea de modele predefinite/abloane. Utilizatorul poate prelua un exemplu funcional, pe care poate
apoi s-l personalizeze nevoilor sale. Aceste modele predefinite se pot gsi n C:\Program Files\Microsoft
Office\Templates\1033\Access\ pentru Access.
3.Folosirea comenzilor. comenzi SQL (Structured Query Language)
4.Programe- poate fi combinat cu cel vizual, atunci cnd realizm aplicaii, meniuri, formulare, sau pentru
elemente de complexitate superioar sau personalizri

Tipuri de date VFP

Lansarea unei sesiuni Microsoft Access


C:\Student\An2\FB\Grupa\Nume_Prenume
1. Se activeaz de pe desktop +iconul aferent
2. Start (All) Programs Microsoft Office Microsoft Access); 2007
3. C:\Program Files\Microsoft Office\OFFICE12\MSACCESS.EXE;
4.Start Search dup fiierele MSACCESS.EXE i dublu-clic pe rezultate;
Prezentare Microsoft Access
cu MS Office 2013, interfaa clasic bazat pe meniuri a fost nlocuit cu interfaa
Microsoft Office Fluent bazat pe acea zon orizontal denumit panglic (ribbon), care conine anumite file
(tab-uri) obligatorii sau contextuale, n cadrul crora avem grupuri de opiuni/comenzi.
Componentele unei baze de date (tabele,interogri, formulare, rapoarte, pagini de acces la date,
macrocomenzi, module Visual basic) sunt memorate ntr-un fiier cu extensia
.accdb.

Pagina Home (Views, Clipboard, Font, Rich Text, Records, Sort&Filter, Find) pagina principal Access,
conine funcii de editri de baz cum ar fi Cut i Paste, mpreun cu marea majoritate a opiunilor de
formatare;
pagina Create (Tables, Forms, Reports, Other)grupeaz toate opiunile de creare;
pagina External Data (Import, Export, Collect Data, SharePoint Lists)conine toate operaiile care faciliteaz
colaborarea i schimbul de date;
pagina Database tools (Macro, Show/Hyde, Analyze, Move Data,Database Tools)coloana vertebral a
Access-ului. Aici se pot crea sau menine relaiile dintre tabele, se analizeaz performanele fiierului i se
execut rutine de ntreinere.

SETRI CARACTERISTICE CMPULUI

FORMAT- permite alegerea unor formate prestabilite sau crearea unui format personalizat pentru tipul
de dat ales.
DECIMAL PLACES -stabilete numrul de zecimale ntre 0-15.
INPUT MASK -se aplic tipului text i dat calendaristic un format personalizat de afiare. Ex.Tel.
(0262)655-224.
CAPTION -nume atribuit cmpului la vizualizare(diferit de cel intern,deja atribuit).
DEFAULT VALUE -valoarea inclus implicit, nainte de actualizarea cmpului
VALIDATION RULE - regula de validare testat pe baza criteriului definit sub forma unei expresii.
Acestea folosesc:
Operatori: = ,- ,*, /, Mod ,< ,> , , ,AND,OR ,BETWEEN ,IN ,IS NULL.
Indentificatori: n paranteze drepte [ ].
Funcii.
Constante.
VALIDATION TEXT -mesajul care apare n cazul nerespectrii regulii de validare.
REQUIRED -se stabilete la yes dac este strict necesar completarea acestui cmp.
INDEXED - se alege opiunea pentru un index neduplicat (primar) sau duplicat . Cmpul indexat este
util n operaiile de cutare n baza de date.

S-ar putea să vă placă și