Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Linguaggi per interagire con le basi di dati, Appunti di Informatica

I linguaggi utilizzati per interagire con le basi di dati, in particolare il DDL, DML e DCL. Viene descritto il linguaggio SQL e le sue operazioni relazionali. Vengono inoltre spiegate le basi teoriche del modello relazionale e le forme normali. Infine, vengono presentati i vincoli sui dati e le funzioni di aggregazione.

Tipologia: Appunti

2021/2022

In vendita dal 28/01/2024

ChiaraCasoni
ChiaraCasoni 🇮🇹

32 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Linguaggi per interagire con le basi di dati
3 tipi
DDL (Data Definition Language) per la definizione del linguaggio, consente di creare le tabelle, le
chiavi primarie, per implementare lo schema logico.
DML (Data Manipulation Language) per la manipolazione e l'interrogazione: posso inserire tuple,
cancellarle o modificarle, posso interrogare (estrarre info) dal database.
DCL (Data Control Language) definisce i permessi d'accesso per gli utenti.
SQL (linguaggio strutturato per le interrogazioni).
Linguaggio che contiene comandi DDL, DML, DCL.
È un linguaggio dichiarativo, non procedurale, non fa uso di costrutti di controllo come le if, i
cicli… descrive i dati che vogliamo ottenere, gli indichiamo quali dati vogliamo.
La query (interrogazione) SQL restituisce la classifica del GP di Monza
(Esempio da es sul quaderno)
SELECT Cognome, Pilota.Nome (attributi che voglio vedere)
FROM Pilota, Gara, Partecipa (tabelle da cui prendo i dati)
WHERE Pilota.IDpilota=Partecipa.IDPilota AND Partecipa.IDGara=Gara.IDGara (join tra tabelle)
AND Gara.Nome="Gran Premio di Monza" (seleziono)
ORDER BY Punti DESC
Basi teoriche del modello relazionale
Indipendenza logica dei dati → nel modello relazionale, per come è strutturato un database, è
possibile modificare lo schema logico (tabelle) senza necessariamente modificare le viste degli
utenti e gli applicativi che usano i database.
Indipendenza fisica → è possibile modificare lo schema fisico della base di dati (tipo di
memorizzazione) senza modificare lo schema logico, viste e applicativi, perché lo schema logico
non contiene indicazioni sulla modalità di archiviazione.
Se uso altre strutture ho dei riferimenti a strutture fisiche (ed record con puntatori e strutture dinamiche).
Il modo relazionale è un modello formale → si basa sulla definizione matematica di relazione.
Una relazione è un sottoinsieme del prodotto cartesiano tra n domini di partenza.
Forme normali → sono proprietà che le tabelle devono soddisfare per non presentare anomalie di
comportamento (anomalie quando in fase di aggiornamento (operazioni di
inserimento/modifica/eliminazioni di tuple) si possono verificare perdite di dati o delle ridondanze o delle
incongruenze).
Prime 3 forme normali
Campi in forma atomica (1FN)
2FN
Tutti gli attributi non chiave devono dipendere dalla chiave primaria (3FN)
Bisogna normalizzare le tabelle in modo che rispettino le 3 forme normali (almeno le prime 3)
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Linguaggi per interagire con le basi di dati e più Appunti in PDF di Informatica solo su Docsity!

Linguaggi per interagire con le basi di dati 3 tipi

  • DDL (Data Definition Language) per la definizione del linguaggio, consente di creare le tabelle, le chiavi primarie, per implementare lo schema logico.
  • DML (Data Manipulation Language) per la manipolazione e l'interrogazione: posso inserire tuple, cancellarle o modificarle, posso interrogare (estrarre info) dal database.
  • DCL (Data Control Language) definisce i permessi d'accesso per gli utenti. SQL (linguaggio strutturato per le interrogazioni). Linguaggio che contiene comandi DDL, DML, DCL. È un linguaggio dichiarativo, non procedurale, non fa uso di costrutti di controllo come le if, i cicli… descrive i dati che vogliamo ottenere, gli indichiamo quali dati vogliamo. La query (interrogazione) SQL restituisce la classifica del GP di Monza (Esempio da es sul quaderno) SELECT Cognome, Pilota.Nome (attributi che voglio vedere) FROM Pilota, Gara, Partecipa (tabelle da cui prendo i dati) WHERE Pilota.IDpilota=Partecipa.IDPilota AND Partecipa.IDGara=Gara.IDGara (join tra tabelle) AND Gara.Nome="Gran Premio di Monza" (seleziono) ORDER BY Punti DESC Basi teoriche del modello relazionale
  • Indipendenza logica dei dati → nel modello relazionale, per come è strutturato un database, è possibile modificare lo schema logico (tabelle) senza necessariamente modificare le viste degli utenti e gli applicativi che usano i database.
  • Indipendenza fisica → è possibile modificare lo schema fisico della base di dati (tipo di memorizzazione) senza modificare lo schema logico, viste e applicativi, perché lo schema logico non contiene indicazioni sulla modalità di archiviazione. Se uso altre strutture ho dei riferimenti a strutture fisiche (ed record con puntatori e strutture dinamiche). Il modo relazionale è un modello formale → si basa sulla definizione matematica di relazione. Una relazione è un sottoinsieme del prodotto cartesiano tra n domini di partenza. Forme normali → sono proprietà che le tabelle devono soddisfare per non presentare anomalie di comportamento (anomalie quando in fase di aggiornamento (operazioni di inserimento/modifica/eliminazioni di tuple) si possono verificare perdite di dati o delle ridondanze o delle incongruenze). Prime 3 forme normali
  • Campi in forma atomica (1FN)
  • 2FN
  • Tutti gli attributi non chiave devono dipendere dalla chiave primaria (3FN) Bisogna normalizzare le tabelle in modo che rispettino le 3 forme normali (almeno le prime 3)

Vincoli sui dati Condizioni che i dati in un database devono rispettare:

  • Vincoli intrarelazionali Definiti all'interno di una tabella, attributi di una tabella: - Vincoli di dominio → stabilisce quali sono i valori che un attributo può assumere (es. Voto > 0 AND Voto <= 10). - Vincoli tra relazioni di attributi diversi → es. datarestituzione >= dataprestito - Vincoli sulla chiave primaria → non può avere valore nullo (è un attributo obbligatorio).
  • Vincoli inter-relazionali p. 297 Riguardano i legami tra più relazioni, tra più tabelle: - Vincolo di integrità referenziale → se aggiungo una tupla le chiavi esterne delle tabelle correlate non possono essere nulle. SQL (comprende DDL, DML, DCL)
  • DDL
  • Creare tabelle: CREATE TABLE
  • Modificare la struttura del database: ALTER TABLE
  • Cancellare una tabella: DROP TABLE
  • DML
  • Inserire delle tuple: INSERT
  • Modificare un dato: UPDATE
  • Eliminare il contenuto: DELETE
  • Interrogazione dei dati: SELECT OPERAZIONI RELAZIONALI
  • Si possono compiere su una relazione (tabella)
  • Operazioni che agiscono su più tabelle e hanno come risultato una nuova tabella
  • Le tabelle sono insiemi e quindi su queste è possibile eseguire delle operazioni 3 TIPOLOGIE DI OPERAZIONI CHE POSSONO ESSERE COMPIUTE SULLE TABELLE
  1. PROIEZIONE : operazione che da una tabella estrae un sottoinsieme di colonne (ottengo come risultato una tabella di grado inferiore a quella di partenza)
  2. SELEZIONE : agisce su una tabella e restituisce una tabella contenente le tuple (righe) che soddisfano una certa condizione (criterio di selezione)
  3. CONGIUNZIONI JOIN : operazione che unisce due tabelle che hanno un attributo in comune Tabella Studente (tabella esempio pag. 312) CodiceS Nome Cognome DataNascita Sesso ComuneResidenza Media S001 Mario Rossi 2002 - 01 - 08 M Bologna 8 S002 Giorgia Verdi 2001 - 09 - 18 F Bologna 6. S003 Maria Gialli 2001 - 12 - 01 F Modena 7 S004 Franco Neri 2002 - 07 - 07 M Parma 7.

OPERATORI PER LA CLAUSOLA WHERE (condizioni)

  • Uguale a: =
  • Maggiore di: >
  • Minore di: <
  • Maggiore o uguale a: >=
  • Minore o uguale a: <=
  • Diverso da: <> OPERATORI LOGICI (per clausola WHERE composta)
  • AND: entrambe le clausole devono essere soddisfatte
  • OR: almeno una clausola deve essere soddisfatta
  • NOT: negazione, cambia il valore di verità della clausola ( es: soddisfatta quando non vera), può essere combinato con gli altri operatori logici: AND NOT e OR NOT **OPERATORI DI CONFRONTO
  1. LIKE** Permette di fare confronti tra gli attributi di tipo stringa, posso usarlo per estrarre determinate parole o dare anche clausole di estrazione _ rappresenta un carattere arbitrario (può essere tutti i caratteri), % rappresenta una stringa arbitraria (qualsiasi stringa) Es: estrazione dalla tabella Studenti i dati degli alunni il cui nome inizia per M SELECT CodiceS, Nome, Cognome FROM Studente WHERE Nome LIKE ‘M%’; (seleziono tutti i nomi di studenti che iniziano per M, il % sta a significare che non è importante quali caratteri della stringa vengano dopo) CodiceS Nome Cognome S001 Mario Rossi S003 Maria Gialli 2. BETWEEN Permette di esprimere le condizioni di appartenenza ad un intervallo numerico Es: elenco degli studenti con una media compresa tra il 7 e l’ SELECT CodiceS, Nome, Cognome, Media FROM Studente WHERE Media BETWEEN 7 AND 8; CodiceS Nome Cognome Media S001 Mario Rossi 8 S003 Maria Gialli 7 S004 Franco Neri 7.

3. IN

Permette di esprimere condizioni di appartenenza del valore di un attributo a un insieme, non necessariamente numerico, che si specifica tra parentesi tonde ORDINAMENTO DEI RISULTATI DELLE QUERY Per ordinare (ordine alfabetico o numerico) il risultato di una query secondo i valori di una o più colonne si aggiunge alla fine dell’istruzione della query la clausola ORDER BY Es: Elenco degli studenti in ordine alfabetico SELECT Nome, Cognome FROM Studente ORDER BY Nome; Nome Cognome Franco Neri Giorgia Verdi Maria Gialli Mario Rossi Si può specificare se l’ordinamento deve essere fatto per valori crescenti (già di default, ma posso anche scrivere ORDER BY Nome ASC ) oppure per valori decrescenti (ORDER BY Nome DESC ). L’ordinamento può essere effettuato anche in base a più attributi della relazione (colonne della tabella), il primo che scrivo nell’ ORDER BY sarà il primo ad essere ordinato INNER JOIN Si utilizza su query che vengono si riferiscono a più tabelle, è possibile effettuare i join perché le tabelle sono connesse dalle chiavi esterne. Deve esserci corrispondenza esatta tra le righe delle due tabelle SELECT (attributi di più tabelle) FROM (tabella 1) JOIN (tabella 2) ON (chiave primaria tabella 1) = (chiave esterna tabella 2) … OUTER JOIN (non lo abbiamo usato) Non richiede la corrispondenza tra le righe delle due tabelle. La tabella risultante di un OUTER JOIN trattiene, oltre ai record con valori coincidenti degli attributi della regola join anche i record privi di corrispondenza. A seconda da quale tabella prendere tutti i record (le righe) di usa:

  • LEFT JOIN
  • RIGHT JOIN
  • FULL OUTER JOIN