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