le basi di dati e il linguaggio sql
DESCRIPTION
LE BASI DI DATI E IL LINGUAGGIO SQL. Basi di dati (database) UA2. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/1.jpg)
LE BASI DI DATI E IL LINGUAGGIO SQL
![Page 2: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/2.jpg)
Basi di dati (database) UA2
Con il termine database si indicano in informatica gli archivi di dati, organizzati in modo integrato attraverso tecniche di modellazione dei dati e gestiti sulle memorie di massa del computer attraverso appositi software. A grandi linee possiamo dire che si tratta di una collezione di archivi ben organizzati e strutturati che costituiscono una base di lavoro per utenti diversi che utilizzano software diversi.
![Page 3: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/3.jpg)
Organizzazione degli archivi mediante basi di dati
Il database è una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi di una specifica organizzazione. I dati sono gestiti da un unico sistema chiamato DBMS (DataBase Management System) che ne permette la gestione e ne regola gli accessi.
![Page 4: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/4.jpg)
Caratteristiche dei DBMS
Un DBMS deve essere in grado di risolvere i problemi che si presentano con l’approccio tradizionale e la gestione degli archivi deve avere le seguenti caratteristiche:
• Facilità di accesso• Indipendenza dalla struttura logica e fisica• Eliminazione di ridondanza e di inconsistenza• Integrità dei dati• Controllo della concorrenza• Sicurezza dei dati
![Page 5: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/5.jpg)
DBMS – Facilità di accesso
Il ritrovamento dei dati deve essere facilitato e svolto con grande velocità anche nel caso di database molto grandi e con richieste provenienti contemporaneamente da più utenti
![Page 6: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/6.jpg)
DBMS – Indipendenza dalla struttura logica e fisica
Deve essere possibile apportare delle modifiche alla definizione delle strutture del database senza modificare il software applicativo. Deve essere possibile modificare i supporti con cui i dati sono registrati e le modalità di accesso alle memorie di massa senza modifiche alle applicazioni.
![Page 7: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/7.jpg)
DBMS – Eliminazione di ridondanza e di inconsistenza
Gli stessi dati non devono comparire più volte in archivi diversi, in quanto il database è costituito da archivi integrati. Il database non può presentare campi uguali con valori diversi in archivi diversi.
![Page 8: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/8.jpg)
DBMS – Integrità dei dati
Devono essere previsti dei controlli per evitare anomalie ai dati causate dai programmi e dalle applicazioni degli utenti. Le operazioni sui dati vengono eseguite fino al loro completamento per assicurare la consistenza dei dati
![Page 9: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/9.jpg)
DBMS – Controllo della concorrenza
I database possono essere utilizzati da più utenti. Bisogna garantire che le operazioni svolte da utenti diversi in modo concorrente non interferiscano tra loro.
![Page 10: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/10.jpg)
DBMS – Sicurezza dei dati
Devono essere previste procedure di controllo sia per impedire accessi non autorizzati ai dati contenuti nel database, sia per la protezione da guasti accidentali.
![Page 11: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/11.jpg)
I linguaggi per database
Le prestazioni del DBMS vengono attivate dall’utente usando appositi comandi che costituiscono a tutti gli effetti un linguaggio, attraverso il quale l’utente può comunicare con il sistema di elaborazione che gestisce il database:• DDL (Data Definition Language)• DML (Data Manipulation Language)• QL (Query Language)
![Page 12: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/12.jpg)
DDL (Data Definition Language)
Linguaggio per la descrizione dei dati, delle tabelle, delle viste, delle associazioni tra tabelle, dei vincoli di integrità e dei controlli relativi alla sicurezza.
Rappresenta lo strumento attraverso il quale l’utente ordina al DBMS la creazione della struttura del database
![Page 13: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/13.jpg)
DML (Data Manipulation Language)
E’ il linguaggio per il trattamento (o manipolazione) dei dati contenuti nel database e consente le usuali operazioni di accesso per inserimenti, modifiche o cancellazioni.
![Page 14: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/14.jpg)
QL (Query Language)
E’ il linguaggio per le interrogazioni al database e consente il ritrovamento dei dati che interessano, sulla base dei criteri di ricerca richiesti dall’utente
![Page 15: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/15.jpg)
Modellazione dei dati UA4
Modellare i dati significa costruire una rappresentazione semplificata della realtà osservata o di un problema aziendale, individuandone gli elementi caratteristici e i legami intercorrenti tra essi. La progettazione di un modello di dati avviene a livelli diversi:• Livello concettuale• Livello logico• Livello fisico
![Page 16: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/16.jpg)
Modellazione dei dati – livello concettuale
Solitamente il problema della realizzazione di un database viene sottoposto da parte di un cliente, il quale cerca di descrivere a parole i suoi bisogni. Per questo motivo la prima analisi consiste nella ricerca, all'interno della descrizione del problema, dei termini più significativi, che indicano quali sono i contenuti del database che si vuole costruire. Al termine di questa fase viene prodotto uno schema chiamato Schema E-R che rappresenta in forma grafica i collegamenti tra gli oggetti astratti individuati.
![Page 17: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/17.jpg)
Modellazione dei dati – livello logico
In questa fase si parte dallo schema E-R ottenuto nel livello precedente, per ottenere un altro schema, detto anche schema logico. Questo schema spiega concretamente come realizzare il vero e proprio database cioè gli archivi e i collegamenti tra gli archivi. A seconda di come si preferisca realizzare questi collegamenti, si può adottare un modello a scelta tra i seguenti: modello relazionale, modello gerarchico, modello reticolare e modello ad oggetti. Si vedranno più avanti questi modelli, in particolare il modello logico relazionale e come esso realizza i collegamenti tra gli archivi.
![Page 18: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/18.jpg)
Modellazione dei dati – livello fisico
In questa fase il problema è individuare la forma migliore in cui salvare i dati che costituiscono gli archivi. Per fare ciò è necessario rispondere a domande come: dove verranno salvati i dati? Che struttura avranno i dati nei file? Che file system si utilizzerà? Quest'ultima fase di solito è influenzata dal DBMS sul quale è caduta la scelta, e dal file system usato, e non sarà trattata.
![Page 19: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/19.jpg)
Modello Entità Associazioni (Modello E/R)
E’ uno strumento per analizzare le caratteristiche di una realtà in modo indipendente dagli eventi che in essa accadono, cioè per costruire un modello concettuale dei dati indipendente dalle applicazioni. Il risultato di questo lavoro è la definizione di una rappresentazione grafica detta schema E/R. Gli elementi di un modello entità associazioni sono:• Entità• Associazioni• Attributi
![Page 20: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/20.jpg)
Modello E/R - Entità
L’entità è un oggetto concreto o astratto che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare
![Page 21: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/21.jpg)
Modello E/R - AssociazioneL’associazione è un legame che stabilisce un’interazione tra le entità
![Page 22: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/22.jpg)
Modello E/R - Attributi
Le proprietà delle entità e delle associazioni sono descritte attraverso gli attributi
• Formato
• Dimensione
• Opzionalità
![Page 23: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/23.jpg)
Modello E/R
Le associazioni possono avere attributi
Si indica con il termine chiave o chiave primaria un insieme minimale di attributi che permettono di distinguere tra loro le istanze di una stessa entità
![Page 24: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/24.jpg)
Associazioni tra entità
La molteplicità di una associazione è il numero di possibili istanze di un’entità che viene messo in corrispondenza con un’istanza dell’altra entità che partecipa all’associazione. Il numero minimo e massimo di possibili istanze viene espresso da una coppia di numeri separati da punti (es. 1..N). Il valore minimo assume di solito i valori 0 o 1. Il valore massimo è detto cardinalità della partecipazione all’associazione ed in genere assume il valore 1 o N.
![Page 25: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/25.jpg)
Associazione 1:1 o biunivoca
Un’associazione si dice uno a uno quando ogni istanza della prima entità si deve associare a una sola istanza della seconda entità e viceversa
PersonaCodice FiscaleCorrisponde
1 1
![Page 26: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/26.jpg)
Associazione 1:N
Un’associazione si dice uno a molti quando ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre a ogni istanza della seconda si deve associare una sola istanza della prima
ContoCorrente
MovimentoEffettuare
1 N
![Page 27: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/27.jpg)
Associazione N:N
Un’associazione si dice molti a molti se a ogni istanza della prima entità si possono associare a una o più istanze della seconda entità, e a ogni istanza della seconda si possono associare una o più istanze della prima
Docente ClasseInsegnare
N N
![Page 28: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/28.jpg)
Modello Relazionale UA5
Il modello relazionale rappresenta il database come un insieme di relazioni (tabelle). Viene considerato attualmente il modello più semplice ed efficace, perché è più vicino al modo consueto di pensare i dati, e si adatta in modo naturale alla classificazione e alla strutturazione dei dati.
![Page 29: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/29.jpg)
Caratteristiche Modello Relazionale
• tutte le righe di una tabella contengono lo stesso numero di colonne
• gli attributi rappresentano informazioni elementari non scomponibili ulteriormente
• i valori assunti da un campo appartengono al dominio dei valori possibili
• in una relazione ogni riga è diversa da tutte le altre
• le righe compaiono in una tabella in un ordine non prefissato
![Page 30: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/30.jpg)
Caratteristiche Modello Relazionale
Una relazione con n colonne si indica come una relazione di grado n, il nome con il quale si identifica una colonna si chiama attributo, l’insieme dei valori che possono essere assunti da un attributo definiscono il dominio di quell’attributo, ed il numero delle n-uple (dette anche tuple) si chiama cardinalità della relazione.
![Page 31: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/31.jpg)
Caratteristiche Modello Relazionale
a1 a2 …………………… an
b1 b2 …………………… bn
: : :
z1 z2 …………………… zn
Cardinalità
Grado
![Page 32: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/32.jpg)
Dallo schema E/R al modello relazionale
• Ogni entità diventa una tabella• Ogni attributo dell’entità diventa una colonna della
tabella• L’identificatore univoco dell’entità diventa la chiave
primaria della tabella• L’associazione uno a uno diventa una sola tabella che
contiene gli attributi della prima e della seconda entità• L’associazione uno a molti si ottiene aggiungendo agli
attributi dell’entità che svolge il ruolo a molti, l’identificatore univoco dell’entità che svolge il ruolo a uno nell’associazione (chiave esterna)
![Page 33: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/33.jpg)
Dallo schema E/R al modello relazionale
• L’associazione molti a molti diventa una nuova tabella composta dagli identificatori univoci delle due entità e dagli eventuali attributi dell’associazione. La chiave della nuova tabella è formata dall’insieme di attributi che compongono le chiavi delle due entità, oltre agli attributi dell’associazione necessari a garantire l’unicità delle righe della tabella ottenuta
![Page 34: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/34.jpg)
Le operazioni relazionali
In generale gli operatori relazionali agiscono su una relazione per ottenere una nuova relazione. In sostanza le operazioni relazionali consentono di effettuare le interrogazioni alla base di dati per ottenere le informazioni desiderate estraendo da una tabella una sottotabella, oppure combinando tra loro due o più tabelle e generando così nuove relazioni
![Page 35: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/35.jpg)
Le operazioni relazionali Selezione
La selezione genera una nuova tabella costituita solo dalle righe della tabella di partenza che soddisfano una determinata condizione
Codice Nome Cognome Codice Nome Cognome
![Page 36: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/36.jpg)
Le operazioni relazionali Proiezione
La proiezione genera una nuova tabella estraendo dalla tabella iniziale solo alcune colonne
Codice Nome Cognome
Codice Cognome
![Page 37: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/37.jpg)
Le operazioni relazionali Congiunzione (join interno)
La congiunzione tra due tabelle R e S combina due relazioni aventi uno o più attributi in comune, generando una nuova tabella le cui righe contengono sia gli attributi di R che quelli di S e abbinano le sole righe di R e di S con valori identici negli attributi comuni; gli attributi comuni di R e di S sono presenti una sola volta nelle righe della congiunzione
![Page 38: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/38.jpg)
Le operazioni relazionali Congiunzione (join interno)
A B C
1 2 3
6 7 8
9 7 8
5 7 9
B C D
2 3 4
2 3 5
2 4 12
7 8 10
A B C D
1 2 3 5
1 2 3 4
6 7 8 10
9 7 8 10
![Page 39: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/39.jpg)
Le operazioni relazionali Congiunzione (join esterno)
Il join esterno è una congiunzione che restituisce le righe dell’una e dell’altra anche se non sono presenti valori uguali per gli attributi comuni. Il join esterno può essere left join quando elenca comunque tutte le righe della prima tabella congiungendo, tra le righe della seconda, solo quelle per le quali si trovano valori corrispondenti per gli attributi comuni
![Page 40: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/40.jpg)
Le operazioni relazionali Congiunzione (join esterno)
A B C
1 2 3
6 7 8
9 7 8
5 7 9
B C D
2 3 4
2 3 5
2 4 12
7 8 10
A B C D
1 2 3 5
1 2 3 4
6 7 8 10
9 7 8 10
5 7 9
A B C D
1 2 3 5
1 2 3 4
2 4 12
6 7 8 10
9 7 8 10
A B C D
1 2 3 5
1 2 3 4
2 4 12
6 7 8 10
9 7 8 10
5 7 9
R right join S
SR
R full join SR left join S
![Page 41: LE BASI DI DATI E IL LINGUAGGIO SQL](https://reader035.vdocuments.pub/reader035/viewer/2022062309/56814bf9550346895db8ef7e/html5/thumbnails/41.jpg)
Integrità referenziale
L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dati quando si hanno relazioni associate tra loro attraverso la chiave esterna (queste regole servono per rendere valide le associazioni tra tabelle e per eliminare gli errori di inserimento, cancellazione o modifica). Viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata.