Deck 1 Flashcards
Cosa significa che NULL è un valore polimorfo?
NULL può corrispondere a 3 diverse situazioni:
Esiste ma non è noto
Non esiste
Non si sa
Logica a 2 - 3 valori:
2 VALORI: qualsiasi confrontro con NULL restituisce FALSE
3VALORI: confronto con NULL restituisce UNKNOW e permette di verificare in modo esplicito la presenza (o assenza) di valori nulli
Vincoli INTRA - INTER relazionali in SQL
INTRA: sono vincoli che coinvolgono 1 RELAZIONE, devono essere verificati per ogni istanza della Relazione (Not null, Unique, Primary key, Check)
INTER: Sono vincoli che coinvolgono Più RELAZIONI che devono essere verificati da ogni istanza delle Relazioni (Check, References/Foreign Key)
Violazione di Vincoli, Politiche di Reazione, Modifiche agli Schemi.
I Vincoli possono essere violati a seguito di:
-Operazioni sulla tabella interna ( che referenzia)-> in caso di violazione rifiuto l’operazione
-Operazioni sulla tabella esterna (referenziata): -> in caso di violazione si possono definire delle Politiche di Reazione: ( Cascade, Set null, Set default, No action)
Modifiche agli schemi: Alter e Drop
Join SQL, definire i tipi.
-OUTER JOIN: Permettono di mantere le tuple di una tabella anche se non hanno corrispondenza nell’altra (Right mantiene le tuple della tab di Destra
(Left mantiene le tuple della tabella di sinistra
(Full maniente le tuple di entrambe le tabelle
-INNER JOIN: Specifica una condizione su una colonna (mantiene entrambe le colonne delle due relazioni?), join default di SQL
-NATURAL JOIN: Esegue un join delle tabelle indicate se hanno valori dell’attributo uguali e lo stesso tipo di dato
Generalizzazioni e specializzazioni (padre figlie)
Il padre è la generalizzazione delle figlie (specializzazioni).
Classificazione:
-Totale: Ogni Occorrenza P è di ALMENO 1 Figlia
-Parziale: Esistono Occorrenze P di nessuna Figlia
-Esclusiva: Ogni Occorrenza P è di max 1 Figlia
-Sovrapposta: 1 Occorrenza P per più Figlie
Eliminazione delle Gerarchie.
-Accorpamento delle figlie nel padre:
le entità figlie vengono eliminate e attributi e relazioni vengono trasferiti nel padre (con opzionale). Va inserito uno o N selettori.
-Accorpamento del padre nelle figlie:
Il padre viene eliminato, gli attributi e le relazioni (in opzionale) vengono trasferiti a ciascuna figlia.
-Mantenimento delle entità: Il legame gerarchico viene sostituito con relazioni tra il padre e ciascuna figlia. Le figlie sono entità deboli identificate esternamente con la relazione del padre. (esclusiva>0:1, totale>1,n)
Problema dei valori NULLI all’interno del MODELLO RELAZIONALE
Il valore NULL denota assenza di un valore di DOMINIO. Porta ambiguità in quei valori importanti per avere una base di dati completa ed efficiente. Si pongono restrizione sulla presenza di valori Nulli.
Fasi Ciclo di Vita della Base di Dati
Il processo non è quasi mai sequenziale.
1)Studio di Fattibilità: Definisce i costi (diretti e indiretti) delle varie alternative possibili e stabilisce le priorità
2)Raccolta e analisi requisiti: individua le proprietà e le funzioni che dovrà avere il sistema.
3)Progettazione: definisce le strategie e i criteri di scelta, si divide in 3 fasi a cascata:
-Progettazione Concettuale>produce Schema Concettuale
-Progettazione Logica> Schema Logico senza dettagli fisici
-Progettazione Fisica> Schema Fisico che implementa il DB
4)Implementazione: Realizza il sistema in base alla fase di Progettazione
5)Validazione e collaudo: verifica il corretto funzionamento
6)Funzionamento: il sistema è operativo e funziona correttamente
In Modello Relazionale: Cos è il Vincolo di Integrità Referenziale.
Il vincolo di Integrità Referenziale è un vincolo inter-relazionale. Se è presente, la tabella che referenzia, può assumere valori solo dagli attributi della tabella referenziata. Il DBMS andrà a controllare i vincoli sulle condizioni espresse da Asserzioni e costrutti Check, ad ogni operazione o alla fine della transazione (immediate o deferred). In caso di violazione attiva le politiche di restrizione:
-Cascade: viene propagata la modifica/cancellazione
-Set Null: viene settato a Null il valore pendente
-Set Default: viene imposto un valore di default
-No Action: viene impedita la modifica
Proprietà di Distributività della Selezione e della Proiezione rispetto agli operatori insiemistici.
Proprietà distributiva della selezione VALE rispetto a:
• Unione: σc (E1 ∪E2) ≡σc (E1) ∪σc (E2)
• Intersezione: σc (E1∩E2) ≡σc (E1)∩ σc (E2)
• Differenza: σc (E1 - E2) ≡σc (E1) - σc(E2)
Proprietà distributiva della proiezione vale solo per l’unione:
• πC (E1 ∪ E2) ≡πC (E1)∪ πC (E2)
Per intersezione (∩) e Differenza (-) non vale perché ci possono essere tuple diverse.
Variabili in SQL.
permettono di effettuare delle query altrimenti impossibili come su tuple della stessa tabella. Creano un Alias per le tabelle da interrogare.
In Algebra Relazionale: Differenza tra Theta Join e Natural Join.
-Theta Join: Seleziona le Tuple delle tabelle specificate
che soddisfano una condizione data. Può essere
scritta anche usando SELEZIONE e PRODOTTO
CARTESIANO:
r1 ⋈condizione r2 ≡σcondizione (r1 X r2)
- Natural Join: effettua l’unione di due tabelle in base al valore delle colonne in comune (stesso nome). Si può scrivere anche usando la PROIEZIONE, EQUAL JOIN, RIDENOMINAZIONE:
r1 ⋈ r2 = πABCD (r1 ⋈ B=B’ and C=C’ ( ρB’,C’ <- B,C (r2)))
Ristrutturazione dello schema ER.
Si fa per l’ottimizzazione dello schema e per semplificare lo schema.
1- Analisi ridondanze
2- Eliminazione delle Gerarchie
3-Accorpamento di entità e relazioni
4-Scelta degli identificatori primari
Esistono viste non modificabili?
Si poichè non è sempre possibile determinare il modo in cui la modifica sulla vista possa essere riportata sulla tabella base. La vista è aggiornabile solo quando corrisponde alla riga della tabella base.