Podcast Beta
Questions and Answers
Qual è la differenza principale tra un sistema informativo e un sistema informatico?
Come possono le informazioni diventare significative?
Cosa rappresentano i 'dati' in un contesto pratico?
Qual è un esempio di come i dati possano trasformarsi in informazioni?
Signup and view all the answers
Quali strumenti possono essere utilizzati per gestire informazioni senza rappresentazioni complesse?
Signup and view all the answers
Che cosa non è corretto dire riguardo ai dati?
Signup and view all the answers
Qual è una caratteristica essenziale dei sistemi informatici?
Signup and view all the answers
Quale affermazione è vera sui sistemi informativi?
Signup and view all the answers
Cosa rappresenta uno schema di relazione nel modello relazionale?
Signup and view all the answers
Qual è la corretta definizione di 'istanza di relazione'?
Signup and view all the answers
Che cosa indicano i nomi di relazione in uno schema di base dati?
Signup and view all the answers
Come vengono rappresentati gli attributi in uno schema di relazione?
Signup and view all the answers
Quale delle seguenti affermazioni è falsa riguardo allo schema di base dati?
Signup and view all the answers
Come viene indicato un insieme di attributi in un modello relazionale?
Signup and view all the answers
Qual è la forma corretta per rappresentare un insieme di attributi in notazione compatta?
Signup and view all the answers
Come vengono indicati i nomi di relazione se non possono essere utilizzati nomi significativi?
Signup and view all the answers
Quale operatore SQL è utilizzato per unire i risultati di due o più query producendo un insieme di righe distinte?
Signup and view all the answers
Cosa restituisce l'operatore INTERSECT quando viene utilizzato tra due query?
Signup and view all the answers
Quale condizione deve essere rispettata per utilizzare l'operatore UNION tra due query?
Signup and view all the answers
Cosa fa l'operatore EXCEPT in una query SQL?
Signup and view all the answers
In quale situazione sarebbe più utile l'operatore INTERSECT?
Signup and view all the answers
Quale tra le seguenti affermazioni è vera riguardo all'operatore UNION?
Signup and view all the answers
Quale risultato si otterrebbe utilizzando l'operatore EXCEPT tra le due query fornite sugli studenti?
Signup and view all the answers
Qual è il principale utilizzo dell'operatore UNION in SQL?
Signup and view all the answers
Qual è una caratteristica della dipendenza transitiva in una relazione?
Signup and view all the answers
Cosa indica che una relazione è in Forma Normale di Boyce-Codd (BCNF)?
Signup and view all the answers
Quale affermazione è vera riguardo al comportamento attivo dei DBMS?
Signup and view all the answers
Qual è il paradigma fondamentale su cui si basa un trigger?
Signup and view all the answers
Cosa si intende per dipendenza funzionale non banale?
Signup and view all the answers
Perché è necessario eliminare le dipendenze transitive per raggiungere la 3NF?
Signup and view all the answers
Qual è il risultato di una relazione che non soddisfa i requisiti della BCNF?
Signup and view all the answers
Qual è uno degli obiettivi principali della 3NF?
Signup and view all the answers
Cosa rappresenta un'azione in un trigger?
Signup and view all the answers
Quale di queste affermazioni descrive il modo di esecuzione 'BEFORE'?
Signup and view all the answers
Quando un trigger viene attivato?
Signup and view all the answers
Qual è il ruolo della granularità in un trigger?
Signup and view all the answers
Qual è la principale funzione dei trigger nella gestione dei dati?
Signup and view all the answers
Quali eventi possono attivare un trigger?
Signup and view all the answers
Quale delle seguenti opzioni descrive in modo errato la creazione di un trigger?
Signup and view all the answers
Cosa succede quando viene eseguito un trigger in modalità 'AFTER'?
Signup and view all the answers
Study Notes
Sistemi informativi e Sistemi informatici
- La disponibilità di informazioni e la capacità di gestirle in modo efficace è fondamentale per qualsiasi attività, a livello individuale e organizzativo.
- Ogni organizzazione dispone di un sistema informativo per gestire le informazioni necessarie al raggiungimento dei propri obiettivi.
- L'esistenza di un sistema informativo non è legata alla sua automatizzazione.
- I sistemi informativi esistono da molto prima dell'avvento dei computer, esempi sono gli archivi bancari o anagrafici.
- La parte automatizzata di un sistema informativo viene definita sistema informatico.
- Negli ultimi decenni, la diffusione capillare dell'informatica ha portato molti sistemi informativi ad essere anche sistemi informatici.
- È essenziale non confondere i due concetti.
- Nelle attività più semplici, le informazioni possono essere gestite senza rappresentazioni complesse, utilizzando la lingua scritta, i numeri o i disegni.
- In altri casi, le informazioni non vengono formalizzate, ma rimangono memorizzate a livello mentale.
- Con la crescita della complessità delle attività, è diventata necessaria una migliore organizzazione e codifica delle informazioni.
- Nei sistemi informatici, la rappresentazione e la codifica di informazioni diventa fondamentale.
- Le informazioni vengono tradotte in dati, che devono essere interpretati per fornire significato.
- I dati da soli non hanno significato; è solo attraverso la loro interpretazione e correlazione che diventano informazioni.
- Le informazioni, arricchiscono la nostra conoscenza del mondo.
- I dati possono essere considerati come simboli (numeri, stringhe, ecc.) che richiedono elaborazione per acquisire significato, diventando informazioni utili.
- Ad esempio, la stringa "Ferrari" e il numero "8", scritti su un foglio di carta, sono dati.
- Da soli non significano nulla. Tuttavia, nel contesto di un ristorante durante una notte di Capodanno, questi dati possono rappresentare l'ordinazione di una bottiglia di spumante della marca Ferrari, da addebitare alla camera numero 8.
- Questo esempio dimostra come, una volta aggiunte informazioni contestuali, i dati si trasformano in informazioni.
Schema di relazione
- Costituito da un simbolo R (nome della relazione) e un insieme di attributi [X = {A
1, A2, ..., An}]{.math.inline}, solitamente indicato come [R(X)]{.math.inline}. - A ciascun attributo è associato un dominio.
Schema di base di dati
- Rappresenta un insieme di schemi di relazione con nomi diversi:
[R = {R
1(X1), R2(X2), ..., Rn(Xn)}]{.math.display}. - I nomi di relazione servono a distinguere le varie relazioni all'interno della base di dati.
- L'insieme di schemi di relazione con nomi diversi: [R = {STUDENTI(Matricola, Cognome, Nome), ESAMI(Voto, Corso), CORSI(Codice, Titolo, Docente)}]{.math.display} può essere considerato come uno schema di base di dati, con opportune definizioni per i domini.
Istanza di relazione
- Rappresenta un insieme r di tuple su X.
[R = {R
1(X1), R2(X2), ..., Rn(Xn)}]{.math.display} - Ogni [r
i]{.math.inline} è una relazione sullo schema [Ri(Xi)]{.math.inline}.
Convenzioni nella notazione
- Gli attributi vengono indicati con lettere iniziali dell'alfabeto (maiuscole), eventualmente con indici e/o pedici: [A, B, C, A^′^, A
1, ...]{.math.inline}. - Insiemi di attributi saranno indicati con lettere finali dell'alfabeto (maiuscole): [X, Y, Z, X′, X
i, ...]{.math.inline}. - Un insieme in cui si vogliano evidenziare gli attributi componenti verrà denotato dalla giustapposizione dei nomi degli attributi stessi: ad esempio, scriveremo [X = ABC]{.math.inline} anziché [X = {A, B, C}]{.math.inline}.
- Analogamente, l'unione di insiemi verrà denotata dalla giustapposizione dei relativi nomi: scriveremo [XY]{.math.inline} anziché [X ∪ Y]{.math.inline}; unendo le due convenzioni, scriveremo [XA ]{.math.inline}anziché [X ∪ {A}]{.math.inline}.
- Per i nomi di relazione, quando non si possano o debbano usare nomi significativi, utilizzeremo R e lettere contigue (maiuscole): [R
1, S, S′, ...]{.math.inline}. - Per le relazioni, utilizzeremo gli stessi simboli, ma in lettere minuscole.
Operatori insiemistici in SQL
- Gli operatori insiemistici consentono di combinare i risultati di due o più query come se fossero insiemi matematici.
- Le principali operazioni insiemistiche sono UNION, INTERSECT ed EXCEPT.
UNION
- Unisce i risultati di due o più query, producendo un insieme di righe distinte.
- Elimina le righe duplicate.
- Le query devono avere lo stesso numero e tipo di dati compatibili.
- Ad esempio, se una query seleziona nomi e cognomi, anche l'altra deve avere colonne corrispondenti.
- Utilizzando UNION, puoi ottenere un elenco unico di nomi e cognomi degli studenti presenti in due tabelle, STUDENTI_BASIDATI e STUDENTI_ANALISI1, senza duplicati.
- Il comando seguente restituirebbe un insieme di studenti, assicurandosi che ogni nome e cognome appaia una sola volta.
SELECT Nome, Cognome FROM STUDENTI_BASIDATI
UNION
SELECT Nome, Cognome FROM STUDENTI_ANALISI1;
INTERSECT
- Identifica le righe comuni tra due query.
- Restituisce solo le righe che si trovano in entrambe le tabelle.
- Con le stesse tabelle dell'esempio precedente, per trovare solo gli studenti presenti in entrambe le tabelle, puoi scrivere:
SELECT Nome, Cognome FROM STUDENTI_BASIDATI
INTERSECT
SELECT Nome, Cognome FROM STUDENTI_ANALISI1;
- Il risultato includerebbe solo gli studenti che sono elencati in entrambe le tabelle, utile per analisi comparative o per verificare l'appartenenza a gruppi specifici.
EXCEPT
- Trova le righe presenti nella prima query ma non nella seconda.
- Utile per isolare le differenze tra i due set di risultati.
Dipendenza Transitiva
- Si verifica quando un attributo non primo è determinato da un altro attributo non primo, che a sua volta dipende dalla chiave.
- Per esempio, se abbiamo una relazione con gli attributi "Impiegato", "Progetto" e "Sede", e se "Sede" dipende da "Progetto", e "Progetto" dipende da "Impiegato", allora "Sede" dipende transitivamente da "Impiegato".
- Questa condizione viola la 3NF, poiché l'attributo "Sede" non dovrebbe dipendere da un attributo che non è parte della chiave primaria.
Forma normale di Boyce-Codd (BCNF)
- Versione più rigorosa della 3NF.
- Una relazione è in BCNF se per ogni dipendenza funzionale non banale, l'insieme di attributi che determina gli altri attributi (determinante) deve essere una superchiave della relazione.
- Una relazione non può avere dipendenze funzionali in cui l'insieme di attributi determinante non sia una superchiave.
- Sebbene una relazione in 3NF soddisfi la maggior parte dei requisiti per evitare anomalie, esistono casi in cui alcune dipendenze funzionali violano comunque il principio della superchiave, che la BCNF risolve.
- Passare alla BCNF non garantisce sempre la conservazione delle dipendenze funzionali.
Comportamento attivo delle basi di dati e trigger
-
Tradizionalmente, i DBMS erano considerati passivi: eseguivano solo le istruzioni transazionali inviate dagli utenti.
-
Il comportamento attivo, introdotto con i trigger, consente ai DBMS di reagire autonomamente a determinati eventi.
-
Si basa sul paradigma E-C-A (evento-condizione-azione).
-
Permette alla base di dati di rispondere automaticamente a una situazione specifica quando si verifica un evento particolare.
-
I trigger sono regole definite che si attivano a fronte di eventi transazionali predefiniti.
-
Ogni trigger segue il paradigma E-C-A, suddiviso in tre componenti fondamentali:
- Evento: rappresenta il momento di attivazione del trigger, ossia una modifica dello stato dei dati, come un'operazione di INSERT, DELETE o UPDATE.
- Condizione: una condizione logica che specifica se il trigger debba effettivamente essere eseguito quando si verifica l'evento.
- Azione: rappresenta una sequenza di comandi SQL o una procedura memorizzata che viene eseguita se la condizione è soddisfatta.
-
Grazie ai trigger, una parte delle logiche applicative diventa "condivisa" all'interno della base di dati, garantendo l'indipendenza della conoscenza: le regole e la logica reattiva vengono estratte dal codice dell'applicazione e centralizzate nella gestione della base di dati stessa.
-
Ciò rende la manutenzione delle regole aziendali più agevole e aumenta la consistenza dei dati, poiché tutti i sistemi che accedono alla base di dati condividono lo stesso insieme di regole.
-
I trigger vengono definiti utilizzando il linguaggio di definizione dei dati (DDL) tramite l'istruzione CREATE TRIGGER.
Creazione e sintassi dei trigger
-
La sintassi standard include vari elementi:
- Il nome del trigger e il nome della tabella target su cui esso viene applicato.
- La specifica dell'evento che lo attiva (ad esempio, INSERT, DELETE, UPDATE).
- Il modo di esecuzione, ossia quando il trigger viene eseguito rispetto all'evento: BEFORE o AFTER.
- La granularità dell'evento, che può essere statement-level (per l'intera operazione) o row-level (per ciascuna riga coinvolta nell'operazione).
- Eventuali condizioni e azioni, cioè le istruzioni che il trigger deve eseguire se la condizione è verificata.
Modo di esecuzione dei trigger: BEFORE e AFTER
- I trigger possono essere configurati per essere eseguiti prima (BEFORE) o dopo (AFTER) l'operazione specificata.
- BEFORE: esegue il trigger prima che l'evento venga effettivamente applicato sulla base di dati. Utile per controllare o validare le modifiche prima che vengano registrate, garantendo integrità e consistenza dei dati in fase di modifica.
- AFTER: esegue il trigger subito dopo che l'operazione è stata completata. È il comportamento più comune e viene utilizzato in moltissime applicazioni, come la gestione dei log o l'aggiornamento di record collegati in altre tabelle.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Questo quiz esplora i concetti di sistemi informativi e sistemi informatici, evidenziando le loro differenze e relazioni. Scoprirete come le organizzazioni gestiscono le informazioni e l'importanza della loro corretta automazione. Testate la vostra comprensione attraverso domande mirate.