Documente Academic
Documente Profesional
Documente Cultură
în Microsoft Access
Crearea şi lucrul cu tabele – privire de ansamblu
Forme normale
Privire de ansamblu MS Access
Crearea tabelelor în MS Access 2013
Prelucrare Câmpuri
Tip vizualizare
DIMENSIUNEA
CÂMPULUI.
SETĂRI SUPLIMENTARE
RELATIV LA CÂMPUL
DEFINIT.
SETĂRI SPECIFICE
CONŢINUTULUI
CÂMPULUI
7
SETĂRI CARACTERISTICE CÂMPULUI
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 [ ].
Funcţii.
Constante.
Navigare Adaugare
Filtrare
Căutare
Modificare-Salvare
TOTAL
SAU
Index
Indexurile accelerează căutarile, catalogând
conținutul unui anumit câmp.
Câmpul cheie primară este indexat în mod
automat.
Se pot crea indecși și pentru câmpurile ce nu
sunt cheie primară dar se folosesc la căutări,
sortări sau filtrări
Nu se poate indexa un camp ale cărui date sunt
de tip Memo, Hyperlink sau obiect OLE.
Etape indexare
Pas1. se deschide tabelul în modul de
vizualizare DESIGN.
Pas2. Se selectează din zona Show/Hide opțiunea
Index
Vizualizare continut tabel
Exemple de tipuri câmpuri
Câmp de tip TEXT
-Sirul de lungime 0 = sir vid= se introduce prin “” ( 2 ghilimele fara
spatiu intre ele) si numai in cazul in care AllowZeroLength a campului
este pozitionta pe YES
-Daca in cp nu este nimic Access ii asigneaza (atribuie) valoarea
NULL – (care difera de sirul cu lungime zero)
>100 AND <500 Valoarea tastata trebuie sa fie cuprinsa intre 101 si 499
>DATE() Valoarea tastata trebuie sa fie mai mare decat data calendaristica curenta
>#01/01/1999# Valoarea tastata trebuie sa fie mai mica decat data 01/01/1999
“G1 “OR “G2 “OR “G3 " Valoarea tastata trebuie sa fie una dintre valorile G1sau G2 sau G3
>=#01/01/2000# AND Valoarea tastata trebuie sa fie mai mare decat 01/01/2000 si mai mica
decat 01/01/2011
#<01/01/2011#
LIKE "[A-Z]*@[A-Z].com" Introduceți o adresă de poștă electronică validă, cum ar fi una de tip .com,
.net sau .org.
OR "[A-Z]*@[A-Z].net" OR
"[A-Z]*@[A-Z].org"
[DatăFinal] >= Introduceți o dată de terminare
[DatăÎncepere] care să fie data de începere sau
după aceasta.
NOT Testează pentru a găsi valori NOT > 10 (același lucru cu<=10).
opuse. Utilizați înainte de
orice operator de comparație
cu excepția operatorului IS
NOT NULL.
Expresii - efectueaza calcule, pentru a manipula caractere sau pentru a testa date.
relaţie unu-la-mai-multi
relaţie mai-multi-la-mai-multi
TABELE
INTERFEŢEI PENTRU
CREAREA
LEGĂTURILOR.
PENTRU ADĂUGAREA
TABELELOR ÎN
SUPRAFAŢA
RELAŢIILOR.
33
CREAREA LEGĂTURILOR ÎNTRE
TABELE
LEGĂTURĂ DE
TIP UNU LA MAI
MULTE.
NUMELE
TABELEI
NUMELE CÂMPULUI
CHEIE PRIMARĂ SAU
CHEIE EXTERNĂ CARE
CREEAZĂ LEGĂTURA.
34
Integritatea bazelor de date
este proprietatea datelor de a deţine un nivel de
calitate stabilit aprioric, adecvat şi suficient
într-un context dat.
este starea existentă atunci când datele sunt
identice cu datele din documentele sursă sau din
domeniul problemei modelate, nefiind expuse la
alterări accidentale sau intenţionate ori distrugeri
fizice.
este starea existentă atunci când calitatea
informaţiei stocate este protejată de contaminare
sau degradare cu informaţie de slabă calitate.
Integritatea bazelor de date
Tip de degradare a datelor Descriere
Date Redundanţa apare atunci cînd aceleaşi date sunt înregistrate şi stocate
în mai multe locuri. Acest lucru poate conduce la incoerenţa datelor şi
redundante la anomalii ale acestora.
Date Apar atunci când date redundante, ce se găsesc în mai multe locuri, nu
prezintă acelaşi conţinut.
incoerente
Anomalii Apar atunci când există date redundante ca urmare a unei proiectări
defectuoase. În aceste situaţii este posibil ca o apariţie a datei
ale datelor redundante să fie modificată, în timp ce alte apariţii rămân
neschimbate.
Incoerenţa citirii Un utilizator nu citeşte întotdeauna ultima dată salvată, iar modificările
datelor facute de acesta sunt vizibile altor utilizatori înainte de salvare.
Date Mai mulţi utilizatori pot accesa şi citi aceleaşi date simultan, dar în
felul acesta se pierde coerenţa citirii.
neconcurente
Integritatea bazelor de date
Asigurarea integrităţii datelor este condiţionată de
trei elemente :
fizice: ce garantează stabilitatea în timp a suporturilor
fizice de date şi a procedurilor;
Siguranţa suportului de
date şi a procedurilor
=
Integritate fizică
Autentificarea Validitate+
+ Coerenţa
Confidenţialitate Semantică
+ =
Non-repudiere Integritate
= logică şi
Integritate „juridică”
semantică
Integritatea datelor
Integritatea bazelor de date
Metodele şi tehnicile ce ţin de integritatea şi securitatea bazelor
de date urmăresc:
Asigurarea coerenţei datelor stocate în raport cu
semnificaţia acestora (asigurarea integrităţii semantice).
Controalele de validare a datelor reprezintă una dintre soluţiile de
implementare a integrităţii semantice, rolul acestor controale fiind acela
de a evita introducerea de date neconforme realităţii în baza de date şi de
a verifica faptul că baza de date nu a fost supusă unor alterări de acest
tip.
04/03/2019 41
Normalizarea relaţiilor (normalization) constă în descompunerea lor,
astfel încât relaţiile rezultate să îndeplinească condiţii din ce în ce mai
restrictive în ceea ce priveşte dependenţele de date, adică să corespundă
unor forme normale cât mai avansate.
Prin normalizare se elimină (sau se micşorează) redundanţa datelor
memorate în relaţii şi anomaliile care provin din această redundanţă.
•Exemplu:
Fie relaţia
AP(IdAngajat,Nume,Prenume,Adresa,IdProiect,Ore).
04/03/2019 42
Dacă se admite că un angajat lucrează la mai multe proiecte, atunci cheia
primară a relaţiei AP este PK = {IdAngajat,IdProiect}.
Se observă că datele despre fiecare angajat (Nume, Prenume, Adresa)
se repetă în fiecare tuplu corespunzător fiecărui proiect la care acesta
lucrează, ceea ce reprezintă un grad ridicat de redundanţă a datelor.
Această redundanţă are ca efect atât creşterea spaţiului de memorare a
relaţiei, cât şi anomalii de actualizare a relaţiei. Anomaliile de
actualizare a relaţiei apar la inserarea, ştergerea sau actualizarea
tuplurilor relaţiei.
04/03/2019 43
Anomalii de inserare:
• nu se pot introduce date despre un angajat (identificatorul
angajatului, numele, prenumele, adresa) dacă nu există cel puţin un
proiect la care acesta să lucreze.
• se poate introduce un nou tuplu care conţine alte valori ale atributelor
Nume, Prenume sau Adresa, pentru aceeaşi valoare a identificatorului
IdAngajat.
De exemplu, se poate introduce tuplul
(1,Dragomir,Eugen,Bucuresti,P3,110)
Acest tuplu este acceptat de SGBD, deoarece are cheia primară (1,P3),
care nu mai există în relaţia AP. Dar în acest moment starea relaţiei AP
nu este consistentă din punct de vedere semantic deoarece există doi
angajati (Ionescu Ion şi Dragomir Eugen) care au acelaşi număr de
identificare (IdAngajat = 1).
04/03/2019 44
Anomalii de ştergere:
•Dacă se şterg toate tuplurile referitoare la un anumit proiect din
relaţia AP, atunci se pot pierde toate datele referitoare la acei
angajaţi care lucrează doar la proiectul respectiv. De exemplu, dacă
se şterg tuplurile referitoare la proiectul P2
(1,Ionescu,Ion,Bucuresti,P2,150),
(2,Popescu,Petre,Craiova,P2,50),
(3,Marin,Mihai,Ploieşti,P2,120),
atunci se pierd toate informaţiile despre angajatul Marin Mihai
(identificatorul angajatului, numele, prenumele, adresa).
04/03/2019 45
Anomalii de actualizare:
•Dacă se modifică valoarea unuia din atributele care au valori
redundante (Nume,Prenume sau Adresa) într-un tuplu al
relaţiei AP, starea relaţiei poate deveni inconsistentă.
De exemplu, dacă în tuplul
(1, Ionescu,Ion,Bucuresti,P2,150) se modifică
atributul Nume la valoarea Gheorghiu, atunci în relaţie vor
exista tuplurile: (1,Ionescu,Ion, Bucuresti,P1,100)
şi (1,Gheorghiu,Ion,Bucuresti,P2,150), adică doi
angajati cu nume diferite (Ionescu şi Gheorghiu) au acelaşi
număr de identificare (1).
De asemenea, pot să apară numeroase alte situaţii de
inconsistenţă atunci când se fac actualizări într-o astfel de relaţie
care prezintă date redundante.
04/03/2019 46
Anomaliile descrise mai sus se pot elimina dacă relaţia AP se descompune în
două relaţii echivalente:
•relaţia A(IdAngajat,Nume,Prenume,Adresa), cu cheia primară
IdAngajat
•relaţia P(IdAngajat,IdProiect,Ore), cu cheia primară
{IdAngajat,IdProiect}, iar atributul IdAngajat este o cheie
străină care referă cheia primară cu acelaşi nume din relaţia A.
04/03/2019 47
Normalizarea este un proces formal de analiză a relaţiilor bazate
pe chei primare (sau pe baza cheilor candidat în cazul BCNF).
Normalizarea presupune îndeplinirea unor reguli prin care baza
de date se poate normaliza până la un anumit grad. Dacă o cerinţă
nu este satisfăcută, relaţia trebuie descompusă în mai multe relaţii,
care individual satisfac cerinţele formei normale.
04/03/2019 48
FN (forma normala) Normalizare
3/4/2019 49
FN1
O relaţie este normalizată în prima formă normală (FN1) dacă fiecare
atribut ia numai valori atomice şi scalare din domeniul său de definiţie.
Exemplu:
PERSOANE(IdPersoana,Nume,Prenume,Adresa,NrTelefon)
atributul NrTelefon poate lua mai multe valori (telefon de acasă, telefon
la birou, telefon mobil), deci este o relaţie nenormalizată.
Această relaţie se poate normaliza prin înlocuirea atributului NrTelefon
cu trei atribute, câte unul pentru fiecare valoare posibilă:
PERSOANE(IdPersoana,Nume,Prenume,Adresa,
TelefonAcasa,TelefonBirou,TelefonMobil)
O soluţie mai eficientă este de a înlocui relaţia dată cu relaţiile:
PERSOANE(IdPersoana,Nume,Prenume,Adresa)
TELEFOANE(IdPersoana,NrTelefon)
04/03/2019 50
O soluţie mai eficientă este de a înlocui relaţia dată cu relaţiile:
PERSOANE(IdPersoana,Nume,Prenume,Adresa)
TELEFOANE(IdPersoana,NrTelefon)
04/03/2019 51
FN2
O relaţie este în a doua formă normală, dacă este în prima
forma normală (FN2) şi fiecare atribut, care nu aparţine cheii
primare, este într-o dependenţă funcţională totală faţă de cheia
primară.
Rezultă că, dacă orice cheie a unei relaţii este formată dintr-un
singur atribut, relaţia este în FN2.
De asemenea, este evident faptul că o relaţie compusă din două
atribute este în FN2, deoarece, fie cheia este formată din ambele
atribute şi atunci nu există atribute neprime, fie cheia este
formată dintr-unul din atribute iar dependenţa funcţională a
celuilalt atribut (care este atribut neprim) faţă de cheie este
totală.
04/03/2019 52
Exemplu:
Schema relaţiei este: AP(IdAngajat,Nume,
Prenume,Adresa,IdProiect,Ore), iar mulţimea dependenţelor
funcţionale FAP stabilite pe baza semnificaţiei atributelor este cea specificată
deja, adică:
FAP = {IdAngajat→Nume,IdAngajat→Prenume,
IdAngajat→Adresa,{IdAngajat,IdProiect}→Ore}
04/03/2019 54
Exemplu:
AFS(IdAngajat,Nume,Prenume,Adresa,Func-
tie,Salariu),
04/03/2019 55
Mulţimea dependenţelor funcţionale este formată din dependenţe funcţionale
totale ale unor atribute neprime faţă de cheia primară a relaţiei, deci relaţia
este în FN2.
04/03/2019 57
Astfel de redundanţe şi anomaliile de actualizare pe care le
provoacă se pot elimina dacă se descompune relaţia în două (sau
mai multe) relaţii, care să nu conţină date redundante.
Relaţia AFS se poate descompune în relaţiile:
•AF (IdAngajat,Nume, Prenume,Adresa,Functie)
•FS(Functie,Salariu)
Cheia primară a relaţiei AF este IdAngajat, şi se poate deduce
uşor din dependenţele funcţionale ale relaţiei AF.
Cheia primară a relaţiei este atributul Functie şi se deduce cu
uşurinţă din mulţimea FFS a dependenţelor funcţionale ale acestei
relaţii.
04/03/2019 58
Bibliografie
[Connolly et al. 2005] Thomas Connolly, Carolyn Begg,
Anne Strachan - Database Systems A Practical
Approach to Design, Implementation, and
Management, 3rd Edition. 2005, Addison Wesley
[Date 2003] CJ Date - An Introduction to Database
Systems, Eighth Edition. 2003, Addison Wesley
[Nitchi et al. 2009] S I Nitchi & colab. - Elemente de baze
de date si programare aplicate în economie. 2009.
Risoprint
[Sitar 2009] Databases in the Real Life Economy, Editura
Risoprint, Cluj-Napoca, 2009, ISBN 978-973-751-973-3,
pp. 58–104
[Sitar 2010] Elemente de baze de date pentru economişti,
Editura Risoprint, Cluj-Napoca, 2010, pag. 67–114
http://msdn2.microsoft.com/en-
us/vfoxpro/bb190288.aspx
http://office.microsoft.com/en-us/access/default.aspx