Sunteți pe pagina 1din 94

Proiectarea bazelor de date.

Microsoft Access
(Informatică Aplicată 1 - Cursul 4)

Victor BUCATĂ

Facultatea de Inginerie Electrică - U.P.B.

18 noiembrie 2015
Modelul conceptual al unei baze de date

Partea I

Modelul conceptual al unei baze de date


Modelul conceptual al unei baze de date

Date, informat, ii, cunos, tint, e

I Folosim adesea conceptul de informat, ie. Care este sensul acestui


cuvânt?
I Date = material brut (fapte, numere, cuvinte, poze etc.) fără vreun
înt, eles de sine stătător; se obt, in la contactul cu lumea reală.
I Informat, ii = sunt obt, inute prin prelucrarea s, i relat, ionarea datelor
într-un anumit cadru.
I Cunos, tint, e = colect, ii de informat, ii acumulate în timp s, i folosite în
momentele decizionale.
Modelul conceptual al unei baze de date

Culegerea datelor. Modelul conceptual

I Se construies, te o schemă (un model) a datelor. Etapă foarte


importantă!
I Câteva întrebări:
I Care este natura datelor?
I Care este modul de utilizare a datelor?
I Ce date trebuiesc memorate s, i prelucrate?
I Este necesară o formă convent, ională care să poată fi us, or înt, eleasă
de toată lumea.
I ERD = Entity Relationship Diagram
Modelul conceptual al unei baze de date

Entităt, i. Instant, e. Atribute. Identificatori unici

Definiţie (Entitate)
O entitate reprezintă un lucru, un obiect, o persoană, un eveniment care
are semnificat, ie pentru problema modelată.

Exemple:
I o persoană
I o clădire
I o activitate
I un eveniment etc.
Modelul conceptual al unei baze de date

Entităt, i. Instant, e. Atribute. Identificatori unici

I O entitate se reprezintă în ERD printr-un dreptunghi cu colt, urile


rotunjite.
I Numele entităt, ii este un substantiv nearticulat la singular scris în
partea de sus a dreptunghiului cu majuscule.
I Exemplu:
Modelul conceptual al unei baze de date

Entităt, i. Instant, e. Atribute. Identificatori unici

I O entitate reprezintă de fapt o clasă de obiecte.


I Există mai multe instant, e ale unei entităt, i.
I Exemplu: un obiect, o persoană, un eveniment
Modelul conceptual al unei baze de date

Entităt, i. Instant, e. Atribute. Identificatori unici

I Obiectul trebuie descris. Obt, inem caracteristicile obiectului


(atribute).
I Atributele sunt informat, ii specifice unei entităt, i ce trebuiesc
cunoscute s, i memorate.
I Exemplu: ELEV: nume, prenume, adresa, numărul de telefon, email,
data nas, terii.
I Atributele (substantive la singular) se scriu sub numele entităt, ii cu
litere mici.
Modelul conceptual al unei baze de date

Entităt, i. Instant, e. Atribute. Identificatori unici

Există atribute:
I obligatorii (marcate cu asterisc *)
I opt, ionale (marcate cu cerc o)
Atributele pot fi:
I volatile = atribute ce se modifică foarte des
I non-volatile

Definiţie (Identificator unic (UID))


Un identificator unic (UID) este formată dintr-un atribut sau mai multe s, i
defines, te în mod unic instant, ele unei entităt, i.

UID-urile se marchează prin diez (#) s, i sunt atribute obligatorii.


Exemplu: Pentru entitatea CARTE, ar putea reprezenta un UID
combinat, ia titlu, nume autor, data aparit, iei? Dar ar fi suficiente numai titlu
s, i nume autor?
Modelul conceptual al unei baze de date

Aplicat, ia 1 - Entităt, i. Instant, e. Atribute. Identificatori unici

I Determinat, i entităt, ile pentru următoarele scenarii. Identificat, i apoi


pentru fiecare entitate atributele sale, stabilit, i opt, ionalitatea acestora
s, i precizat, i unicul identificator al fiecărei entităt, i.
I Indicat, ie: Subliniat, i substantivele care au semnificat, ie pentru
afacerea descrisă. Un substantiv va fi subliniat doar la prima sa
aparit, ie. Dintre aceste substantive vet, i alege apoi entităt, ile.
I Pentru a se abona la diverse reviste, persoanele doritoare trebuie să
furnizeze numele, adresa s, i un număr de telefon. Fiecare revistă
este identificată prin titlu, numărul volumului s, i data aparit, iei.
Abonat, ii semnează pentru abonare un contract pe o anumită
perioadă de timp specificată prin data de început a abonamentului s, i
data finală. Bineînt, eles că o persoană se poate abona la mai multe
reviste în acelas, i timp.
Modelul conceptual al unei baze de date

Aplicat, ia 1 - Entităt, i. Instant, e. Atribute. Identificatori unici

I Pentru a se abona la diverse reviste, persoanele doritoare trebuie să


furnizeze numele, adresa s, i un număr de telefon. Fiecare revistă
este identificată prin titlu, numărul volumului s, i data aparit, iei.
Abonat, ii semnează pentru abonare un contract pe o anumită
perioadă de timp specificată prin data de început a abonamentului s, i
data finală. Bineînt, eles că o persoană se poate abona la mai multe
reviste în acelas, i timp.
I Cu ros, u sunt entităt, ile s, i cu verde atributele.
Modelul conceptual al unei baze de date

Aplicat, ia 2 - Entităt, i. Instant, e. Atribute. Identificatori unici

I Despre angajat, ii unei firme se cunosc numele, titlul, numărul de


telefon de la birou. Angajat, ii pot fi implicat, i într-o serie de proiecte ce
se desfăs, oară în cadrul firmei. Despre fiecare proiect se cunosc
numele, data la care a demarat proiectul s, i se poate cunoas, te o dată
la care se va finaliza proiectul. La fiecare proiect lucrează un singur
angajat, însă un angajat poate fi implicat în mai multe proiecte.
Fiecare angajat are un manager, cu except, ia directorului. Managerii
pot fi s, i ei implicat, i în proiecte.
Modelul conceptual al unei baze de date

Aplicat, ia 2 - Entităt, i. Instant, e. Atribute. Identificatori unici

I Despre angajat, ii unei firme se cunosc numele, titlul, numărul de


telefon de la birou. Angajat, ii pot fi implicat, i într-o serie de proiecte ce
se desfăs, oară în cadrul firmei. Despre fiecare proiect se cunosc
numele, data la care a demarat proiectul s, i se poate cunoas, te o dată
la care se va finaliza proiectul. La fiecare proiect lucrează un singur
angajat, însă un angajat poate fi implicat în mai multe proiecte.
Fiecare angajat are un manager, cu except, ia directorului. Managerii
pot fi s, i ei implicat, i în proiecte.
Modelul conceptual al unei baze de date

Relat, ionările dintre entităt, i

I Obiectele nu există izolate. Percepem obiectele în conexiune cu alte


obiecte.
I Între entităt, i există relat, ionări.
I Relat, ionările sunt bidirect, ionale
Caracteristicile unei relat, ionări sunt:
I numele relat, ionării
I opt, ionalitatea relat, ionării
I gradul (cardinalitatea) relat, ionării
Modelul conceptual al unei baze de date

Relat, ionări între entităt, i - exemplu

I Relat, ionarea dintre entităt, ile JUCĂTOR s, i ECHIPĂ


I Un JUCĂTOR joacă într-o ECHIPĂ.
I Numele relat, ionării este: joacă
Modelul conceptual al unei baze de date

Relat, ionări între entităt, i - exemplu

I Opt, ionalitatea: Un jucător trebuie să joace într-o echipă?


I Cardinalitatea relat, ionării: numărul de instant, e ale entităt, ii din partea
dreaptă a relat, ionării care pot intra în relat, ionare cu o instant, ă a
entităt, ii din partea stângă a relat, ionării: Un jucător trebuie/poate să
joace la o echipă s, i numai una.

Cea mai realistă variantă a relat, ionării: Un jucător poate să joace la o
echipă s, i numai una.

Orice relat, ionare este bidirect, ională: La o echipă trebuie să joace unul
sau mai mult, i jucători.
Modelul conceptual al unei baze de date

Convent, ii de reprezentare a relat, ionărilor

I O relat, ionare se reprezintă printr-o linie ce unes, te cele două entităt, i.


I Sunt două segmente distincte ale relat, ionării, câte unul pentru
fiecare entitate.
I Tipul segmentului ce pleacă de la o entitate ne va indica
opt, ionalitatea relat, ionării.
I segment continuu: relat, ionare obligatorie
I linie întreruptă: relat, ionare opt, ională
Modelul conceptual al unei baze de date

Convent, ii de reprezentare a relat, ionărilor

Caracteristica relat, ionării Valoare Mod de reprezentare


numele relat, ionării un verb se scrie deasupra relat, ionării.
opt, ionalitatea relat, ionare obligatorie (TREBUIE) linie continuă
relat, ionare opt, ională (POATE) linie întreruptă
cardinalitatea una s, i numai una linie simplă
una sau mai multe picior de cioară
Modelul conceptual al unei baze de date

Relat, ionări one-to-one

I sunt rare
I de obicei una din entităt, i este transformată în atribut al celeilalte
entităt, i.
Modelul conceptual al unei baze de date

Relat, ionări one-to-many

I sunt cele mai întâlnite tipuri de relat, ionări


Modelul conceptual al unei baze de date

Relat, ionări many-to-many

I apar în prima fază a proiectării bazei de date


Modelul conceptual al unei baze de date

Rezolvarea relat, ionărilor many-to-many

I Aceasta constă în introducerea unei entităt, i de intersect, ie pe care o


legăm de entităt, ile originale prin câte o relat, ionare one-to-many.
Modelul conceptual al unei baze de date

Rezolvarea relat, ionărilor many-to-many - pasul 1

I Se găses, te entitatea de intersect, ie (entitatea ÎNSCRIERE)


Modelul conceptual al unei baze de date

Rezolvarea relat, ionărilor many-to-many - pasul 2

I Se creează noile relat, ionări de tip one-to-many. Relat, ionările sunt


obligatorii în partea entităt, ii de intersect, ie. Partea many este spre
entitatea de intersect, ie
Modelul conceptual al unei baze de date

Rezolvarea relat, ionărilor many-to-many - pasul 3

I Se adaugă atribute în entitatea de intersect, ie


Modelul conceptual al unei baze de date

Rezolvarea relat, ionărilor many-to-many - pasul 4

I Se stabiles, te identificatorul unic pentru entitatea de intersect, ie: dacă


entitatea de intersect, ie nu are un identificator unic propriu, atunci
acesta se poate forma din identificatorii unici ai entităt, ilor init, iale la
care putem adăuga atribute ale entităt, ii de intersect, ie (se reprezintă
prin bararea relat, ionării)
Modelul conceptual al unei baze de date

Tipuri de modele fizice

Există mai multe tipuri de modele fizice:


I Modelul tabelar - toate datele sunt memorate sub forma unui singur
tabel, un tablou bidimensional de date.
I Modelul ierarhic - datele sunt organizate sub forma unor structuri
arborescente. Ex: IMS(Information Management System) produs de
IBM
I Modelul ret, ea - performant dar complicat
I Modelul relat, ional - cel mai utilizat model de stocare a datelor
I Modelul obiectual - asemănător ret, elei
I Modele hibride - mixturi ale modelelor prezentate anterior
Modelul conceptual al unei baze de date

Maparea modelului convent, ional în model fizic

Transformarea modelului conceptual, a ERD-ului, în modelul fizic, adică


în baza de date propriu-zisă se numes, te mapare. Acest proces implică
transformarea fiecărui element al ERD-ului.
Modelul conceptual al unei baze de date

Temă

Reluat, i scenariile anterioare s, i stabilit, i relat, iile dintre entităt, ile de la


fiecare exercit, iu. Rezolvat, i apoi eventualele relat, ii many-to-many.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Partea II

Modelul relat, ional al bazelor de date


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Obiectivele acestei părt, i

I Învăt, area conceptelor fundamentale ale modelului relat, ional


(introdus de E.F. Codd de la IBM în 1970).
I Înt, elegerea modului în care relat, iile sunt diferite fat, ă de tabelele
nerelat, ionale.
I Învăt, area terminologiei de bază relat, ionale.
I Înt, elegerea semnificat, iei s, i a important, ei cheilor, ale cheilor străine
s, i a conceptelor corelate.
I Înt, elegerea modului în care cheile străine construiesc relat, ionările
(asocierile).
I Învăt, area scopului s, i folosirii cheilor surogat.
I Înt, elegerea semnificat, iei dependent, elor funct, ionale.
I Prezentarea procesului de normalizare a relat, iilor.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Reiterez: Ce este o entitate?

I La fel ca în modelul conceptual, o entitate este un aspect important


pentru un utilizator sau pentru o organizat, ie s, i care trebuie să fie
reprezentat într-o bază de date.
I O entitate este reprezentată de o temă, de un subiect sau de un
concept organizat, ional. De exemplu: Clienti, Comenzi, Carti,
Proiecte etc.
I În alte modele decât modelul relat, ional (ca de exemplu modelul
entitate-asociere - folosit pentru analiza pentru proiectare de sus în
jos) entităt, ile sunt restrânse la obiecte (substantive) ce pot fi
reprezentate folosind un singur tabel alcătuit din atribute.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o entitate - exemplu


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o o relat, ie?

I O relat, ie este un tabel bidimensional care are nis, te caracteristici


speciale (pe slideul următor).
I Dimensiunile tabelului, la fel ca în cazul unei matrice constau din
rânduri s, i coloane.

I Obs: Termenul „relat, ie” nu este acelas, i lucru cu termenul


„relat, ionare” („asociere”).
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Caracteristicile unei relat, ii

I Rândurile cont, in date despre instant, ele unei entităt, i (în exemplul
anterior cu angajat, i, fiecare rând reprezintă un singur angajat).
I Coloanele cont, in date despre atributele entităt, ii.
I Celulele tabelului (intersect, ia dintre un rând cu o coloană) cont, in o
singură valoare.
I Toate valorile dintr-o coloană sunt de acelas, i fel (acelas, i tip de date).
De exemplu Id-urile sunt de tip întreg.
I Fiecare coloană are un nume unic în tabelul respectiv. Pot exista
coloane cu acelas, i nume dar în tabele diferite.
I Ordinea coloanelor nu este importantă.
I Ordinea rândurilor nu este importantă.
I Nu pot exista rânduri identice.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o relat, ie - exemplu


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o relat, ie - contraexemplu

Acest tabel are câteva probleme care-l descalifică de a fi o relat, ie.


I Există o celulă ce cont, ine două valori.
I Două rânduri sunt identice.
Toate relat, iile sunt tabele dar nu toate tabelele sunt relat, ii.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Terminologie

Divers, i utilizatori folosesc cuvinte diferite pentru aceleas, i concepte.


Următorii termeni sunt folosit, i interschimbabil (sinonime):
I Tabel = Fis, ier (folosit mai rar) = Relat, ie
I Rând = Înregistrare = Tuplu (folosit mai rar)
I Coloană = Câmp = Atribut
Obs: Termenul „relat, ie” nu este acelas, i lucru cu termenul „relat, ionare”
(„asociere”).
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o cheie?

I Este un concept foarte important pentru înt, elegerea modelului


relat, ional.
I Ideea principală: Prin cheie înt, elegem de obicei o coloană sau mai
multe ale unei relat, ii ale cărei valori sunt folosite pentru a identifica
un rând (o înregistrare).
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Unicitatea cheilor

Chei unice:
I Valorile sunt unice pentru fiecare înregistrare
I Prin urmare, cheia va identifica în mod unic un rând.
Chei non-unice:
I Valorile se pot repeta în mai multe înregistrări.
I Prin urmare, cheia va identifica un set de înregistrări.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Ce este o cheie non-unică - exemplu


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Clasificarea cheilor
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile compuse

I O cheie compusă este o cheie care este compusă din două sau mai
multe atribute.
I Se combină una sau mai multe coloane pentru a obt, ine unicitatea.
I Adesea, pentru ca o cheie să fie unică, ea trebuie să fie compusă.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile compuse - exemplu


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile compuse - exemplu

I Ilustrăm acest concept cu un exemplu din viat, a reală: presupunem


că dorim să mergem cu un tren pe ruta Bucures, ti - Craiova într-o
anumită dată.
I Un tren cu un anumit număr nu circulă decât o dată pe zi pe ruta
respectivă.
I Pentru a identifica o călătorie specifică trebuie să combinăm
numărul trenului cu data călătoriei. Această combinat, ie reprezintă o
cheie compusă.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile candidat

I O cheie „candidat” este denumită astfel deoarece poate deveni


cheie primară.
I O cheie candidat este o cheie unică.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile primare

I O cheie primară este o cheie candidat aleasă drept cheia principală


a relat, iei.
I Dacă este cunoscută valoarea cheii primare, atunci orice
înregistrare din tabel poate fi identificată în mod unic.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile surogat

I O cheie surogat este o valoare numerică unică care este adăugată


relat, iei pentru a servi drept cheie primară.
I Valorile cheilor surogat nu au nicio semnificat, ie pentru utilizatori s, i
sunt de obicei ascunse pe formulare, interogări s, i rapoarte.
I Adesea o cheie surogat este folosită în locul unei chei primare
compuse.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile surogat - exemplu


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Relat, ionările (asocierile) dintre tabele

I Un tabel poate fi relat, ionat cu alte tabele.


I Vom introduce conceptul de cheie străină.
I Exemple:
I Un Angajat lucrează într-un Departament.
I Un Director controlează un Proiect.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Relat, ionările (asocierile) dintre tabele - exemplu

I În cazul unui departament, acesta poate avea mai mult, i angajat, i dar
un angajat apart, ine unui singur departament.
I Bazele de date relat, ionale permit folosirea acestor relat, ionări
ierarhice.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile străine

I Pentru a stabili relat, ionările (asocierile), trebuie folosită o cheie


străină.
I O cheie străină este o cheie primară dintr-un tabel care este plasată
în alt tabel.
I Cheia este denumită „cheie străină” în tabelul care primes, te cheia.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile străine - Exemplul 1


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile străine - Exemplul 2


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Integritatea referent, ială

I Integritatea referent, ială stipulează că toate valorile unei chei străine
trebuie să corespundă valorii unei chei primare existente.
I Aceasta serves, te la ment, inerea calităt, ii datelor din baza de date.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Integritatea referent, ială - Exemplu

Nu există clientul cu IdClient=5. (Obs: cheia străină poate avea valori


multiple - este non-unică.)
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Valori nule (Null)

I O valoare nulă (Null) înseamnă că nu există date în acel loc.


I Putem privi o valoarea nulă ca o celulă goală din acel tabel.
I Aceasta nu este acelas, i lucru cu o valoare zero, un caracter spat, iu,
un string gol sau un caracter tab.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Problema valorilor nule

I O valoare nulă conduce adesea la ambiguităt, i.


I Valoarea atributului respectiv nu este potrivită pentru tipul de dată al
coloanei.
I Valoarea atributului nu a fost încă decisă.
I Valoarea coloanei este necunoscută.
I Toate acestea pot avea implicat, ii complet diferite.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Dependent, ele funct, ionale

I Dependent, a funct, ională este un tip de relat, ie între atribute prin care
un atribut (sau un grup de atribute) dictează valoarea altui atribut din
cadrul aceluias, i tabel.
I Exemplu: Pret, ul unei cutii de chibrituri determină pret, ul unei duzine.
I (PretCutie,Cantitate) -> PretDuzina
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Determinant, ii

I Atributul (sau atributele) care este folosit drept punct de plecare al


relat, iei (adică variabila din partea stângă a ecuat, iei) se numes, te
determinant.
I (PretCutie,Cantitate) -> PretDuzina
I (PretCutie,Cantitate) este determinantul.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile primare / Cheile candidat s, i dependent, a funct, ională

I Prin definit, ie, o cheie candidat a unei relat, ii va determina funct, ional
toate celelalte atribute care nu sunt chei din înregistrare.
I Prin extensie o cheie primară a unei relat, ii va determina funct, ional
toate celelalte atribute care nu sunt chei din înregistrare.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Cheile primare s, i dependent, a funct, ională - exemplu

(IdAngajat) -> (Nume, Telefon)

(IdProiect) -> (NumeProiect, DataInceperii)


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Normalizarea datelor

I Normalizarea datelor este un proces de analizare a unei relat, ii


pentru a asigura că aceasta este bine structurată.
I Normalizarea implică descompunerea relat, iilor cu anomalii în relat, ii
mai mici s, i bine structurate.
I Mai precis, dacă o relat, ie este normalizată (este bine structurată),
rândurile pot fi introduse, s, terse sau modificate fără a crea anomalii.
(Există trei tipuri de anomalii: anomalii de s, tergere, anomalii de
actualizare s, i anomalii de inserare - a se vedea exemplul din cursul
anterior)
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Principiile normalizării

I Principiile de proiectare relat, ională a relat, iilor normalizate sunt:


I Orice determinant trebuie să fie o cheie candidat.
I Orice relat, ie care nu este bine structurată trebuie descompusă în
două sau mai multe relat, ii bine-structurate!
I Artificiu: Ca o regulă generală, o relat, ie bine structurată nu va
cont, ine mai mult de un concept organizat, ional.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Normalizarea datelor - Exemplul 1

(IdStudent) -> (NumeStudent, NumărulCăminului, CostulCăminului)

, dar dacă:

(NumărulCăminului) -> (CostulCăminului)

atunci atributul CostulCăminului va trebui plasat în relat, ia sa proprie


rezultând relat, iile:

(IdStudent) -> (NumeleStudentului, NumărulCăminului)


(NumărulCăminului) -> (CostulCăminului)
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Normalizarea datelor - Exemplul 2

(IdAvocat, IdClient) -> (NumeClient, DataS, edint, ei, Durată)

, dar dacă:

(IdClient) -> (NumeClient)

atunci atributul NumeClient va trebui plasat în relat, ia sa proprie rezultând


relat, iile:

(IdAvocat, IdClient) -> (DataS, edint, ei, Durată)


(IdClient) -> (NumeClient)
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Pas, ii pentru normalizarea datelor

Obs: Există s, i forme normale cu grad mai mare, netratate aici.


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Prima formă normală

I Tabelul nu cont, ine atribute cu mai multe valori.


I Toate atributele sunt atomice (nu se pot diviza).
I Exemplul de pe slideul următor nu este în forma normală 1, deci nu
este o relat, ie.
I Toate relat, iile sunt în prima formă normală. (Reamintesc: Toate
relat, iile sunt tabele dar nu toate tabelele sunt relat, ii!)
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Exemplu de tabel ce NU respectă prima formă normală


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Tabelul (Relat, ia) ce respectă prima formă normală


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

A doua formă normală

I Include prima formă normală PLUS „orice atribut care nu este cheie
trebuie să fie complet dependent funct, ional de cheia primară ÎN
TOTALITATEA EI”.
I Orice atribut care nu este cheie trebuie să fie definit prin cheia
întreagă, nu numai printr-o parte a cheii.
I Nu sunt permise dependent, e part, iale.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Exemplu de diagramă a dependent, elor

IdComanda -> DataComanda, IdClient, NumeClient, AdresaClient


IdClient -> NumeClient, AdresaClient
IdProdus -> Descriere, PretUnitar
IdComanda, IdProdus -> Cantitate
De aceea nu este în Forma Normală 2!
Strategia de trecere de la o formă normală inferioară la o formă normală
superioară este descompunerea relat, iilor în relat, ii mai mici.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Eliminarea dependent, elor part, iale

Dependent, ele part, iale au fost eliminate dar există încă dependent, e
tranzitive în tabelul ComenzileClientilor.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

A treia formă normală

I Include a doua formă normală PLUS „nu trebuie să existe


dependent, e funct, ionale de atributele care nu sunt chei primare”.
I Astfel de dependent, e sunt denumite tranzitive deoarece cheia
primară determină un alt atribut care la rândul lui determină un alt
atribut.
I Solut, ie: Determinant, ii care nu sunt chei cu dependent, e tranzitive se
trec într-un tabel nou; determinantul repectiv devine cheie primară în
noul tabel s, i rămâne cheie străină în vechiul tabel.
Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Eliminarea dependent, elor tranzitive

Dependent, ele tranzitive au fost eliminate!


Entităt,i, Tabele, Relat,ii Tipuri de chei s, i relat,ionările tabelelor Integritatea referent,ială Valori nule Normalizarea datelor

Regula de aur

Regula de aur se enunt, ă astfel:


FIECARE TABEL (DENUMIT S, I RELAT, IE) TREBUIE SĂ CONT, INĂ
DOAR UN SINGUR CONCEPT ORGANIZAT, IONAL (TEMĂ, ENTITATE)!

De exemplu: Clienti, Comenzi, Carti, Proiecte etc.

Astfel se obt, in automat primele 3 forme normale.


Ce este MS Access? Operat,ii

Partea III

Microsoft Access
Ce este MS Access? Operat,ii

Ce este MS Access?

I Microsoft Access înglobează informat, iile din baza de date s, i


instrumentele pentru folosirea ei în acelas, i loc.
I Atunci când este creată o bază de date în MS Access, este creat un
fis, ier ce cont, ine diferitele părt, i ale bazei de date (tabele, interogări,
formulare, rapoarte etc.).
I Microsoft Access este un SGBD relat, ional - adică este format din
tabele relat, ionate.
I Microsoft Access este un sistem de baze de date pentru
calculatoare personale folosit pentru a gestiona datele pe diverse
nivele s, i în diverse scopuri.
I Poate fi folosit pentru gestiunea informat, iilor personale sau într-o
întreprindere de dimensiuni mici.
Ce este MS Access? Operat,ii

Crearea unei baze de date

1 Pentru a porni Microsoft 3 Navigat, i până la locat, ia unde


Access, apăsat, i vret, i să salvat, i baza de date s, i
Start->Programs->Microsoft introducet, i numele ei.
Access. 4 Apăsat, i OK (Spre deosebire
2 Din panoul de sarcini, apăsat, i de aplicat, iile obis, nuite, fis, ierul
Blank Database. este creat înainte de a începe
să se introducă date).
Ce este MS Access? Operat,ii

Fereastra bazei de date


Ce este MS Access? Operat,ii

Fereastra bazei de date

I Tabelele reprezintă nucleul bazei de date. Datele sunt salvate pe


rânduri (înregistrări) s, i pe coloane (câmpuri).
I Interogările permit utilizatorului să vadă, să calculeze, să filtreze, să
modifice, să sorteze s, i să examineze datele din tabele.
I Formularele oferă o cale intuitivă de a introduce date.
I Rapoartele prezintă datele în format pentru imprimare.
I Paginile sunt formulare salvate ca pagini web astfel încât baza de
date să fie accesibilă de pe Internet.
I Macrourile automatizează funct, ii uzuale, sunt accesate prin
intermediul unui buton, a unei taste sau a unui eveniment Visual
Basic.
I Modulele sunt grupuri de proceduri care sunt scrise în Visual Basic
s, i sunt folosite pentru a automatiza diverse funct, ii s, i de a crea
aplicat, ii cu Access.
Ce este MS Access? Operat,ii

Bara de instrumente standard


Ce este MS Access? Operat,ii

Crearea unui tabel

1 Apăsat, i pe Tables, apoi pe 2 Scriet, i numele câmpurilor as, a


New s, i selectat, i Design View. cum vom vedea în slideul
următor.
3 Apăsat, i Save
Ce este MS Access? Operat,ii

Recomandări pentru introducerea câmpurilor s, i a tipurilor lor

I Creat, i un câmp care să aibă o valoare unică s, i dat, i-i un nume
relevant, De exemplu: IdClient, IdFactura etc. Facet, i acest câmp
cheie primară apăsând pe butonul sub formă de cheie din bara de
instrumente.
I Evitat, i spat, iile s, i caracterele speciale.
I Aleget, i tipurile de date s, i mărimea potrivită pentru cont, inutul
câmpului.
I Cele mai folosite tipuri sunt:
I Autonumber (ideal pentru chei primare), Text (până la 255 de
caractere, default), Memo (până la 64000 de caractere), Number,
Currency, Date/Time
Ce este MS Access? Operat,ii

Bara de navigare

I Bara de navigare se găses, te în partea de jos a majorităt, ii tabelelor s, i


a interogărilor. Datele pot fi editate direct în tabele sau în anumite
interogări sau formulare.
Ce este MS Access? Operat,ii

Stabilirea relat, ionărilor dintre tabele

I Relat, ionările trebuie să facă corespondent, a între cheile primare s, i


cheile străine. Cheia primară oferă un identificator unic pentru
fiecare înregistrare dintr-un tabel. Cheia străină se află în alt tabel s, i
trebuie să corespundă ca valoare cu cheia primară.
I Pentru a începe stabilirea relat, ionărilor închidet, i orice tabel deschis
apoi urmat, i pas, ii următori:
Ce este MS Access? Operat,ii

Stabilirea relat, ionărilor dintre tabele (cont.)

1 Apăsas, i F11 pentru a activa fereastra principală a bazei de date.


2 Apăsat, i pe butonul Relationships din bara de instrumente.
3 Apare căsut, a de dialog Show Table s, i dat, i dublu clic pe numele
tabelelor pe care dorit, i să le relat, ionat, i.
4 Închidet, i căsut, a de dialog Show Table.
5 Traget, i de un câmp pe care dorit, i să-l legat, i până la celălalt câmp.
Cel mai adesea se conectează o cheie primară cu o cheie străină.
6 Apare căsut, a Edit Relationships.
7 Bifat, i checkbox-urile s, i apăsat, i Create
8 Repetat, i pas, ii anteriori pentru a realiza toate legăturile.
9 Închidet, i căsut, a Edit Relationships s, i salvat, i modificările.
Ce este MS Access? Operat,ii

Crearea unei interogări

I O interogare reprezintă o întrebare pe care o adresat, i bazei de date:


„arată-mi acele date din aceste surse care satisfac aceste criterii”.
I Se poate folosi Query Wizard sau Query Design View (de preferat).
I Urmat, i pas, ii de pe slideul următor:
Ce este MS Access? Operat,ii

Crearea unei interogări (cont.)

1 Activat, i fereastra principală a bazei de date.


2 Apăsat, i Queries s, i apoi dublu clic pe Create Query in Design View.
3 Selectat, i tabelele în care se află datele dorite, apăsat, i Add iar la
urmă apăsat, i Close.
Ce este MS Access? Operat,ii

Crearea unei interogări (cont.)

4 Dacă dorit, i să filtrat, i înregistrările, introducet, i criteriul pe rândul


Criteria dupa regulile de pe următorul slide.

5 Salvat, i interogarea s, i dat, i dublu clic pentru a o vizualiza.


Ce este MS Access? Operat,ii

Recomandări pentru introducerea criteriilor

Criteriul poate fi:


I de tip text. Exemplu: ”Bras, ov”
I de tip numeric, text sau data. Exemplu: between #1/1/16# and
#12/31/16#
I de tip text. Exemplu: like ”C” - cuvinte ce încep cu C
I de tip numeric. Exemplu: >500 and <=600
I IS NULL
I IS NOT NULL
Crearea unui câmp calculat în interogare, exemplu: Se scrie câmpul
Total:[pret]*[cantitate]
Ce este MS Access? Operat,ii

Importul în Access a unei foi de calcul

1 Din meniul File aleget, i Get External Data->Import.


2 Selectat, i fis, ierul de importat.
3 Selectat, i foaia de calcul dorită.
4 Selectat, i tipul destinat, iei.
5 Apăsat, i Next s, i apoi Finish.
Ce este MS Access? Operat,ii

Concluzie s, i resurse suplimentare

I Acest curs a avut scopul de a prezenta conceptele legate de bazele


de date astfel încât să fie înt, elese s, i de cei care nu au mai lucrat cu
ele.
I Am vazut ce înseamnă o bază de date, un model conceptual s, i
modelul fizic relat, ional.
I Am studiat aplicat, ia Microsoft Access potrivită pentru baze de date
de dimensiuni reduse.
I O prezentare interesantă găsit, i la
http://www.youtube.com/watch?v=4Z9KEBexzcM
I Un alt ghid util pentru Access găsit, i la
http://www.masstechnology.com/media/4225/
microsoft_access_cheatsheet.pdf
I Data viitoare ne vom ocupa mai mult de limbajul SQL.
Ce este MS Access? Operat,ii

Întrebări ?

Vă mult, umesc pentru atent, ie!

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