Anteprima
Vedrai una selezione di 10 pagine su 42
Base dati - Struttura e Query Pag. 1 Base dati - Struttura e Query Pag. 2
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 6
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 11
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 16
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 21
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 26
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 31
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 36
Anteprima di 10 pagg. su 42.
Scarica il documento per vederlo tutto.
Base dati - Struttura e Query Pag. 41
1 su 42
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

CANCELLAZIONE:

Possibilità di rimuovere delle tuple a seconda di una condizione imposta dalla clausola WHERE. Se

non fosse presente nessuna condizione, verrebbero cancellate tutte le righe di una determinata

tabella. Parola utilizzata => DELETE

DELETE FROM NomeTabella [ WHERE Condizione ]

Lezione 5 – SQL, Trigger

Trigger => Grilletto, regole attive. Ogni trigger fa riferimento ad una tabella.

Componente per la gestione di regole Evento-Condizione-Azione:

Evento: normalmente modifiche alla base dati (insert, delete, update)

– Condizione: determina se la regola debba essere eseguita

– Azione: esecuzione programma esterno, sequenza istruzioni SQL

Le basi dati attive hanno un comportamento reattivo (in contrasto con passivo): eseguono non solo

le transizioni utente , ma anche le regole

Granuralità e modalità:

Granuralità:

di ennupla (row-level): il trigger viene attivato per ogni ennupla coinvolta nell'operazione

– di operazione (statement-level): una sola attivazione per ogni istruzione SQL, con

– riferimento a tutte le ennuple coinvolte

Modalità:

immediata: il trigger è valutato immediatamente dopo (after) o prima (before) dell'evento

– che li ha attivati

differita: il trigger è valutato alla fine della transazione che comprende l'evento (dopo

– comando commit)

Sintassi Trigger:

create trigger NomeTrigger

Modo Evento on TabellaTarget

[referencing Referenza]

[for each Livello]

[when (PredicatoSQL)]

statementproceduraleSQL

end;

Esempio Pratico:

Impiegato (ID, Nome, Cognome, Ufficio, Stipendio, DipN)

Scrivere Trigger per l'imitare l'aumento di stipendio di un impiegato a non piu del 20%.

Principali Applicazioni del Trigger:

Specificare vincoli di integrità complessi (regole gestionai)

– Gestione dei dati derivati

– Mantenimento della consistenza delle viste materializzate rispetto alle modifiche nelle

– relazioni di base

Lezione 6 – SQL, Viste

Una vista in SQL è una tabella derivata a partire da altre tabelle (tabelle di base o altre viste).

Una vista è una tabella virtuale => non ci sono tuple istanza della vista memorizzate.

In generela le viste sono usate per:

Interrogazioni: la vista definisce una nuova tabella che non esiste direttamente nella BD e

– che verrà utilizzata frequentemente per delle interrogazioni.

Sicurezza: la vista definisce una tabelle contenente un sottoinsieme di dati , al fine di

– limitare la'accesso degli utenti a quei solo dati

Sintassi:

CREATE VIEW Nomevista [(ListaAttributi)] AS SelectSQL

[WITH [LOCAL | CASCADED] CHECK OPTION]

Esempi:

Se necessitiamo di usare spesso nomi, cognomi impiegati con loro sede di lavoro

CREATE VIEW Sedeimpiegati AS

SELECT Impiegato.Nome, Impiegato.Cognome,

Dipartimento.Indirizzo

FROM Impiegato, Dipartimento

WHERE Impiegato.DipN = Dipartimento.Nome

Determinare il dipartimento che spende di piu in stipendi

CREATE VIEW BudgetStipendi (Dip,Totalestipendi) AS

SELECT DipN, SUM(Stipendio)

FROM Impiegato

GROUP BY DipN

SELECT Dip

FROM BudgetStipendi

WHERE Totalestipendi =(SELECT MAX(Totalestipendi)

FROM BudgetStipendi)

Implementazioni delle interrogazioni:

Modifica al momento dell'interrogazione: L'interrogazione sulla vista viene modificata in

– un'interrogazione sulle tabelle di base su cui la vista è definita => poco efficiente su viste

complesse

Materializzazione di viste: Creazione di una tabella temporanea della vista quando viene

– eseguita per la prima volta l'interrogazione (Vista Materializzata) => mantenimento della

vista supponendo che ci saranno altre interrogazioni. Tecniche di aggiornamento

incrementale per tenere aggiornata la vista. Il DBMS potrà togliere una lista materializzata

dopo che non è piu usata per un certo periodo di tempo

Aggiornabilità delle viste:

In generale, i sistemi considerano Aggiornabili: viste contenenti una sola tabella con chiave

– primaria della tabella base e tutti gli attributi NOT NULL

In generale, i sistemi considerano NON Aggiornabili: Viste definite su piu tabelle con join, e

– viste che usano operatori aggregati e funzioni di raggruppamento

Check Point => si applica a viste aggiornabili, mantengono memoria della vista dopo agg. tabella

Cancellazione viste => Quando una vista non serve più , DROP VIEW NomeVista

Lezione 7 – Progettazione di BasiDati

Per progettare una BD si parte da un processo di astrazione e concettualizzazione della realtà,

dell'analisi del problema posto, l'identificazione di oggetti, le loro proprietà e i legami di interesse,

seguondo una METODOLOGIA DI PROGETTAZIONE.

Tipi di progettazione:

Progettazione concettuale: Rappresentare i requisiti informali sulla realtà d'interesse in

– termini di una descrizione concettuale formale e completa (schema concettuale),

indipendentemente dal DBMS utilizzato.

Progettazione Logica: Traduzione dello schema concettuale nel modello dei dati adottato da

– DBMS scelto per la gestione della BD. Dipende dal DBMS utilizzato.

Progettazione Fisica: Lo schema logico viene completato con la specifica dei parametri fisici

– di memorizzazione dei dati (organizzazione file e indici)

Meccanismi di astrazione => Processo mentale eseguito quando ci si concentra sulle proprietà

essenziali di un insieme di oggetti, ignorando le differenze. Diversi meccanismi di astrazione sono:

Classificazione

– Aggregazione

– Generalizzazione

Classificazione => Meccanismo utilizzato per definire un concetto come classi di oggetti del

mondo reale caratterizzati da proprietà comuni.

Aggregazione => Meccanismo utilizzato per definire una nuova classe a partire da un insieme di

classi che rappresentato le sue componenti

Generalizzazione => Meccanismo secondo cui si definisce una relazione di sottoinsieme tra gli

oggetti di due o piu classi. Ereditarietà delle proprietà della generalizzazione da parte di tutte le

specializzazioni

I tre meccanismi sono indipendenti tra loro, e forniscono un diverso meccanismo per la

concettualizzazione e strutturazione delle informazioni. Proprietà dei concetti stabiliti dai

meccanismi:

Modello Entità-Relazionale:

Entità => Rappresenta una classe di oggetti della realtà di interesse aventi proprietà comuni ed

esistenza "autonoma". Ogni tipo di entità all'interno di uno schema ha un nome che lo identifica

univocamente ed è rappresentato da un rettangolo.

Relazione => Rappresenta un legame logico tra due o piu tipi di entità , significativo per

l'applicazione di interesse. Un tipo di associazione R all'interno di uno schema ha un nome

identificativo univoco e viene rappresentato con un rombo.

Grado di associazione => Numero di entità che partecipano al tipo di associazione (es: binaria)

Associazione => Legame fra entità che include esattamente un'entità e per ciascun tipo di entità Ei

che partecipa ad R. Ciascun assciazione rappresenta il fatto che le entità partecipanti sono correlate

tra loro.

Possono esistere tipi di associazione diversi tra gli stessi tipi di entità, per esprimere legami

semantici differenti.

Esempio:

Associazione ricorsiva ad anello => Definite tra un tipo di entità e se stesso: lo stesso tipo di entità

partecipa al tipo di associazione con ruoli diversi

Lezione 8 – Progettazione Concettuale

Analisi dei requisiti => Completa individuazione dei problemi che il sistema da realizzare deve

risolvere e le caratteristiche che il sistema dovrà possedere.

Aspetti statici (dati)

– Aspetti dinamici (transazioni/operazioni sui dati)

I requisiti sono generalmente descrizioni in linguaggio naturale, quindi sono informali e possono

risultare incompleti o presentare inconsistente. L'analisi ha quindi lo scopo di chiarire e organizzare

i requisiti raccolti (non sempre facile perchè attività legata all'applicazione da realizzare)

Regole generali:

Scelta del corretto livello di astrazione => Evitare termini troppo generici e/o specifici

– Standardizzazione della struttura delle frasi

– Evitare frasi contorte => Definizioni semplici e chiare dei vari concetti

– Individuare sinonimi/omonimi e unificare i termini

– Sinonimi: termini diversi ma con significato uguale, unificazione

Omonimi: termini uguali, ma significato diverso , diversificazione

Costruire un glossario dei termini

Esempi Omonia e Sinonimia:

Esempio di Glossario dei termini:

La produzione di uno schema segue un approccio incrementale a partire dai requisiti. Si possono

usare diverse strategie di implementazione:

Top Down

– Bottom up

– Inside out

– Mixed

Strategia TopDown:

Si parte da uno schema contenente astrazioni di alto livello e si procede con successivi raffinamenti

top-down. I raffinamenti aumentano man mano che si procede con deattagli aggiuntivi.

Strategia BottomUp:

Si parte da uno schema contenente astrazioni di base che descrivono frammenti elementari di realtà

e si procede aggregando tali astrazioni o aggiungendone di nuove

Strategia InsideOut:

Caso particolare della strategia bottom-up. Si individuano inizialmente alcuni concetti di maggiore

rilevanza e da questi si procede rappresentando via via i concetti vicini a quelli iniziali

(procedimento a "macchia d olio")

Strategia Mista:

Combinazione di strategia top-down e bottom-up. Definizione di uno schema contenente a livello

astratto i concetti principali dell'applicazione. Su ciascuna parte dello schema si puo procedere

applicando entrambe le strategie => Adatta a progetti di una certa complessità.

Qualità di uno schema concettuale:

Leggibilità: Uno schema concettuale è leggibile quando presenta i requisiti in maniera

– facilmente comprensibile (scelta nomi significativi, minimizzazione intersezioni)

Minimalità: Uno schema concettuale è minimale quando non presenta ridondanze, ovvero le

– specifiche sui dati sono rappresentate una volta sola nello schema (si puo tollerare la

ridondanza se documentata)

Completezza: Uno schema concettuale è completo quando descrive tutti i requisiti di

– interesse e le operazioni possono essere eseguite a partire dai concetti contenuti nello

schema

Correttezza: Uno schema concettuale è corretto quando fa un uso proprio dei costrutti del

– modello concettuale utilizzato ( errori sintattici e semantici)

Lezione 9 – Progettazione Logica

Dallo schema Concettuale (Entity Relationship) si passa allo schema Logico => Specific

Dettagli
A.A. 2014-2015
42 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher only_one_crive di informazioni apprese con la frequenza delle lezioni di Data Base e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano o del prof Castano Silvana.