Linguaggi di Interrogazione - SQL PDF

Title Linguaggi di Interrogazione - SQL
Author VIRGINIA MARONI
Course Sistemi Informativi
Institution Politecnico di Milano
Pages 7
File Size 761.1 KB
File Type PDF
Total Downloads 36
Total Views 144

Summary

Descrizione dei linguaggi di interrogazione, algebra relazionale, SQL ...


Description

I linguaggi di interrogazione Ci permettono di effettuare transazioni di tipo “read” e si dividono in due categorie: - Linguaggi procedurali (algebra relazionale) I linguaggi vogliono sapere di quale informazione abbiamo bisogno e anche l’ordine con cui effettuare le diverse operazioni per arrivare al risultato che si necessita. È abbastanza complesso perché l’ordine deve tener conto della capacità della macchina. Servono per definire il processo algoritmico mediante il quale viene soddisfatta l’interrogazione richiesta. - Linguaggi non procedurali (SQL) Bisogna solo specificare i requisiti che vogliamo ottenere, l’ordine è definito dal. Servono per descrivere la formulazione del risultato, un interprete apposito si incarica di trovare il modo migliore per raggiungerlo (query optimizer, fornito dal DBMS stesso)

L’algebra relazionale È un linguaggio procedurale che però non ha un sistema che la sfrutta, viene insegnata solo perché è il modello da cui sono partiti tutti i linguaggi di interrogazione. Ha solamente definito le operazioni base di interrogazione. Lavora sul modello relazionale, come input abbiamo dati raccolti in tabelle. Ci offre 5 operatori chiavePosso avere operazioni unarie (come input una tabella) e binarie (come input due tabelle)

Esempio Studente MATRICOLA NOME 123 Paolo 345 Luca Corso COD-CORSO TITOLO 1 Matematica 2 Informatica Esame MATRICOLA COD-CORSO 123 1 678 2

CITTÀ Milano Monza

C-DIP Info Ges

DOCENTE Bianchi Rossi DATA 3.01.2019 18.02.2019

VOTO 30 25

1

Le operazioni unarie

Le operazioni binarie Le operazioni insiemistiche (unione e differenza) partono dal presupposto che le due tabelle su cui opero hanno lo stesso schema. Il grado rimane lo stesso ma varierà la cardinalità Esame1 MATRICOLA COD-CORSO DATA VOTO 123 01 3.01.2019 30 678 01 18.02.2019 25 Esame2 MATRICOLA COD-CORSO DATA VOTO 123 1 3.01.2019 30 678 2 18.02.2019 25 2

La join ⋈ Nasce a partire dal prodotto cartesiano di due tabelle, non ho condizioni sullo schema delle relazioni di partenza. R1 X R2 genera una tabella con schema = schema_R1 + schema_R2 MATRICOLA NOME CITTà FACOLTà MATRICOLA COD-CORSO DATA VOTO 123 Paolo Milano Inf 123 01 10.09.18 30 123 Paolo Milano Inf 345 01 10.07.18 24 123 Paolo Milano Inf 123 02 15.07.18 27 345 Luca Monza Ges 123 01 10.09.18 30 345 Luca Monza Ges 345 02 10.07.18 24 345 Luca Monza Ges 123 01 15.07.18 27 Posso definire molti vincoli Le righe che hanno la stessa matricola sono quelle più interessanti perché mettono in relazione gli esami con gli studenti. La prima riga è significativa, la seconda no perché mette in relazione Paolo con un esame che non ha fatto. Vado a selezionare quelle in cui studente.matr=esame.matr, tengo solo le righe in cui questi valori sono uguali. Il grado di questa tabella è minore uguale alla somma dei gradi delle tabelle di partenza. MATRICOLA NOME CITTà FACOLTà MATRICOLA COD-CORSO DATA VOTO 123 Paolo Milano Inf 123 01 10.09.18 30 123 Paolo Milano Inf 123 02 15.07.18 27 345 Luca Monza Ges 345 02 10.07.18 24 Per quanto riguarda la cardinalità è la stessa della tabella esame perché vado a ripetere le caratteristiche dello studente tante volte quanti sono gli esami da lui sostenuti. La selezione su prodotto cartesiano è stata compressa nel simbolo di Join che si può definire come selezione su prodotto cartesiano. Il risultato è il seguente (riporta tabella risultato) Sono nel caso di join naturale quando gli attributi che vogliamo confrontare hanno lo stesso nome. Abbiamo le informazioni di due tabelle in un’unica tabella. 3

L’operazione di join viene fatta subito perché prima metto insieme le tabelle e poi faccio le operazioni.

SQL Schema di riferimento Fornitore CodiceF RagioneSociale Indirizzo Prodotto CodiceP

Nome

Catalogo CodiceF

CodiceP

Città

Marca Modello

Costo

Sql è un linguaggio di interrogazione non procedurale, ha una sua sintassi fatta da diversi operatori e codifica tutti gli operatori dell’algebra aggiungendone di nuovi. È il linguaggio più utilizzato e la maggior parte dei DBMS si basa su SQL. È composto da due parti: data definition language che definisce le strutture le tabelle e il DML è la parte di interrogazione.

4

Gli operatori

5

6

7...


Similar Free PDFs