Transcript Curs 9

Informatica in
economie
Lect. univ. dr. SILVESTRU Cătălin
Proiectarea corectă este esențială pentru atingerea
scopurilor utilizării unei baze de date.
Tabele – rânduri (inregistrari) și coloane (campuri,
atribute)
O înregistrare combina anumite informații. Un câmp
este un element singular de informație - un tip de
element care apare în orice înregistrare.
• In tabelul produse, fiecare rând sau
înregistrare conține informații despre un
produs.
• Fiecare coloană sau câmp conține un
anumit tip de informație despre acest produs,
cum ar fi numele sau prețul.
1.
Redundanta minima si controlata, datele duplicate
consumă spațiu și sporesc probabilitatea producerii
de erori și inconsistențe
2. Corectitudinea si completitudinea informatiilor –
rapoarte, decizii fundamentate incorect
Dacă baza de date conține informații incorecte, orice
rapoarte care extrag informații din baza de date vor
conține, de asemenea, informații incorecte.
Proiectarea bazelor de date relationale – PASI
1.
2.
3.
4.
5.
6.
7.
8.
Determinarea scopului bazei de date
Identificarea si organizarea informatiilor necesare
Împărtirea informatiilor în tabele
Transformarea elementelor de informatii în coloane
Specificarea cheilor primare
Definirea legaturilor dintre tabele
Rafinarea proiectării
Normalizarea bazei de date
1. Determinarea scopului bazei de date
2. Identificarea si organizarea informatiilor necesare
Date de intrare – formulare, fise
Date de iesire – rapoarte, mesaje e-mail
Date agregate – sortare, grupare
3. Impărtirea informatiilor în tabele
4. Transformarea elementelor de informatii în coloane
• Date compuse
• Generalitate
• Date nevolatile
5. Specificarea cheilor primare
O coloană sau un set de coloane care identifică, în mod unic,
fiecare rând stocat în tabel.
6. Definirea legaturilor dintre tabele, asocierea utilă a
informațiilor
•Coloana ID furnizor din tabelul Produse se numește cheie externă. O cheie
externă este cheia primară a unui alt tabel. Coloana ID furnizor din tabelul
Produse este o cheie externă, deoarece este și cheia primară a tabelului
Furnizori.
7. Rafinarea proiectării
-Entitati/Coloane lipsa sau in plus
-Redundanta
-Campuri goale -> inregistrari
-Legaturi
8. Normalizarea bazei de date
Ameliorarea progresiva a structurii bazei
de date prin eliminarea unor anomalii
(neajunsuri) de actualizare din structură.
Prin normalizare se are în vedere atat
eliminarea
anomaliilor
cat
si
a
dependențelor nedorite între date si
eliminarea redundanțelor.
8. Normalizarea bazei de date
Anomalia de ştergere semnifică faptul că stergând un tuplu dintr-o
tabelă, pe lângă informațiile care trebuie şterse, se pierd şi
informațiile utile existente în tuplul respectiv;
Anomaliile de adăugare semnifică faptul că nu pot fi incluse noi
informații necesare într-o tabelă, deoarece nu se cunosc şi alte
informații utile (de exemplu valorile pentru cheie);
Anomalia de modificare semnifică faptul că este dificil de modificat o
valoare a unui atribut atunci când ea apare în mai multe tupluri.
8. Normalizarea bazei de date
O bază de date nenormalizată este adusă mai întâi în forma
normală unu (FN1), apoi în forma normală 2 (FN2) ş.a.m.d., prin
aplicarea unor reguli de optimizare a structurii bazei de date ce
urmăresc spargerea unui tabel nenormalizat în două sau mai
multe tabele normalizate, fără pierdere de informații.
FN2 este de preferat FN1,
FN3 este de preferat FN2,
FN4 este de preferat FN3,
FN5 este de preferat FN4.
8. Normalizarea bazei de date
Exemplu: baza de date destinata gestionarii comenzilor
efectuate de catre clientii unei companii.
8. Normalizarea bazei de date
FN1. O tabelă este în FN1 dacă toate atributele ei
conţin valori elementare (nedecompozabile), adică
fiecare tuplu nu trebuie să aibă date la nivel de grup
sau repetitiv. Structurile de tip arborescent şi reţea
se transformă în tabele cu atribute elementare.
Fiecare structură repetitivă generează (prin
descompunere) o nouă tabelă, iar atributele la nivel
de grup se înlătură, rămânând doar cele elementare.
8. Normalizarea bazei de date
Prin atribut simplu (atribut atomic) se înțelege un atribut
care nu mai poate fi descompus în alte atribute, în caz
contrar, atributul este compus (atribut neatomic).
Exemplu:
-Data calendaristică – este un atribut în care apar câmpurile: zi, lună, an;
-Adresa – este un atribut în care apar câmpurile: strada, nr, bloc, scara, etaj,
apartament, localitate, județ;
-Data operațiunii bancare – este un atribut în care apar câmpurile data, ora;
-Buletin/carte identitate – este un atribut în care apar câmpurile: seria, nr.
Un grup repetitiv este un atribut (grup de atribute) dintr-o
relație care apare cu valori multiple pentru o singură
apariție a cheii primare a relației nenormalizate.
8. Normalizarea bazei de date
Date la nivel de grup
8. Normalizarea bazei de date
Date repetitive
8. Normalizarea bazei de date
8. Normalizarea bazei de date
O tabelă în FN1 prezintă încă o serie de anomalii de
actualizare.
8. Normalizarea bazei de date
O tabelă în FN1 prezintă încă o serie de anomalii de
actualizare.
8. Normalizarea bazei de date
FN2. O tabelă este în FN2 dacă şi numai dacă este în FN1 şi
fiecare atribut noncheie al tabelei este dependent
funcţional complet de cheie.
Un atribut B al unei tabele depinde funcţional de atributul
A al aceleiaşi tabele, dacă fiecărei valori a lui A îi
corespunde o singură valoare a lui B, care îi este asociată
în tabelă. Un atribut B este dependent funcţional complet
de un ansamblu de atribute A în cadrul aceleiaşi tabele,
dacă B este dependent funcţional de întreg ansamblul A (nu
numai de un atribut din ansamblu).
Eliminarea dependenţelor incomplete se face prin
descompunerea tabelei iniţiale în două tabele, ambele
conţinând atributul intermediar.
8. Normalizarea bazei de date
O tabelă în FN2 prezintă încă o serie de anomalii de
actualizare.
8. Normalizarea bazei de date
O tabelă în FN2 prezintă încă o serie de anomalii de
actualizare.
8. Normalizarea bazei de date
FN3. O tabelă este în FN3 dacă şi numai dacă este în
FN2 şi fiecare atribut noncheie depinde în mod
netranzitiv de cheia tabelei.
Într-o tabelă T, fie A,B,C trei atribute cu A cheie.
Dacă B depinde de A (A -> B) şi C depinde de B (B ->
C) atunci C depinde de A în mod tranzitiv.
Eliminarea dependenţelor tranzitive se face prin
descompunerea tabelei iniţiale în două tabele,
ambele conţinând atributul intermediar.
8. Normalizarea bazei de date
8. Normalizarea bazei de date