• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2 Sigda - Database
 

2 Sigda - Database

on

  • 644 views

 

Statistics

Views

Total Views
644
Views on SlideShare
644
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    2 Sigda - Database 2 Sigda - Database Presentation Transcript

    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA dott. ing. Francesco Guerra francesco.guerra@unimore.it
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Introduzione al linguaggio SQL dott. ing. Francesco Guerra 2 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL SQL e’ il linguaggio di riferimento per le basi di dati relazionali. Il linguaggio SQL contiene al suo interno le funzionalità di: DDL (Data Definition Language): insieme di comandi per la definizione dello schema di una base di dati relazionale DML (Data Manipulation language): insieme di comandi per la modifica e l’interrogazione dell’istanza di una base di dati DCL (Data Control Language): insieme di comandi per la gestione degli utenti e dei privilegi di accesso. dott. ing. Francesco Guerra 3 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: tipi di dato Il linguaggio SQL mette a disposizione 6 famiglie di domini elementari: Caratteri Bit Tipi numerici esatti Tipi numerici approssimati Data e ora Intervalli temporali Nuove versioni dello standard (SQL:1999) hanno introdotto nuovi domini: Boolean, BLOB, CLOB dott. ing. Francesco Guerra 4 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: definizione di tabella Una tabella e’ costituita da una collezione di attributi e da un insieme (eventualmente) vuoto di attributi: create table NomeTabella (NomeAttributo Dominio [Valore Default] [Vincoli] {, NomeAttributo Dominio [Valore Default] [Vincoli]} Altri Vincoli ) Vincoli intrarelazionali: check, not null, unique, primary key Vincoli interrelazionali: foreign key dott. ing. Francesco Guerra 5 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: interrogazioni SQL esprime le interrogazioni in modo dichiarativo, ovvero viene specificato l’obiettivo dell’interrogazione e non il modo in cui ottenerlo. L’interrogazione viene passata all’ottimizzatore, un componente del DBMS che analizza l’interrogazione e formula una interrogazione nel linguaggio procedurale interno utilizzato dal DBMS (il linguaggio procedurale specifica i passi necessari per ottenere il risultato). In generale, esistono diversi modi per esprimere la stessa interrogazione. dott. ing. Francesco Guerra 6 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: interrogazioni (2) Sintassi per l’interrogazione: Select <lista select> From <lista from> [Where <condizione>] [Order by <lista order>] Clausola select: specifica gli elementi dello schema della tabella risultato Clausola from: indica le tabelle sulle quali effettuare l’interrogazione Clausola where: specifica le condizioni sulle quali verificare l’interrogazione Clausola order by: specifica un’ordinamento del risultato dott. ing. Francesco Guerra 7 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: clausola select E’ possibile selezionare tutti gli attributi attraverso un unico simbolo * Possono comparire delle generiche espressioni sul valore degli attributi di ciascuna riga selezionata: Select stipendio/12 as stipendio_mensile dott. ing. Francesco Guerra 8 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: clausola where predicati semplici Predicati semplici: operatori =,<>,>, >=, <, <= pag 142/143 [BERGAMASCHI] Nel caso in cui i predicati sono separati dall’operatore and, sono selezionate solo le righe nelle quali tutti i predicati sono veri. Quando i predicati sono separati dall’operatore or, sono selezionate solo le righe per cui almeno uno dei predicati risulta vero. L’operatore logico not è unario e inverte il valore di verita’ del predicato. Se si esprime una relazione con l’uso di and e or, conviene esplicitare l’ordine di valutazione mediante l’uso delle parentesi. Selezionare gli studenti iscritti al primo anno di corso e che risiedano a Modena o a Reggio Emilia dott. ing. Francesco Guerra 9 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: clausola where predicati semplici Uso del like: nel confronto tra stringhe l’operatore like permette di utilizzare dei caratteri speciali _ per rappresentare il confronto con un carattere arbitrario e % per una stringa di un numero arbitrario (eventualmente nullo) di caratteri arbitrari. dott. ing. Francesco Guerra 10 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: gestione dei duplicati E’ possibile che una interrogazione restituisca più volte uno stesso valore (anni di corso degli studenti che abitano a Modena). L’eliminazione dei duplicati è specificata con la parola chiave distinct. Se la clausola select contiene una primary key per ogni tabella che compare nella clausola from, il risultato non contiene dei duplicati dott. ing. Francesco Guerra 11 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL Operatori quantificati: pag 143 [BERGAMASCHI] ANY | ALL Operatore di confronto con valori NULL: Attributo is [not] null Ordinamento del risultato: pag 143 [BERGAMASCHI] Order by Attributo [asc | desc] {, Attributo [asc | desc]} dott. ing. Francesco Guerra 12 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: prodotto cartesiano e join pag 144/151 [BERGAMASCHI] Sintassi: Select attr From Tabella [[as] Alias] {[TipoJoin] join Tabella [[as] Alias] on CondizionediJoin} TipoJoin: Inner default, si puo’ omettere Right outer Left outer Full outer dott. ing. Francesco Guerra 13 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: interrogazioni innestate Una interrogazione e’ innestata se la sua condizione e’ formulata utilizzando il risultato di un’altra interrogazione, chiamata subquery: Operatori quantificati Operatori di set Quantificatore esistenziale pag 152/158 [BERGAMASCHI] dott. ing. Francesco Guerra 14 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Il linguaggio SQL: operatori aggregati Gli operatori aggregati sono gestiti come una estensione delle normali interrogazioni: prima viene eseguita l’interrogazione e poi viene applicato l’operatore aggregato. Ci sono 5 operatori aggregati: Count Sum Max Min Avg pag 159/160 [BERGAMASCHI] dott. ing. Francesco Guerra 15 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Bibliografia Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e linguaggi di interrogazione, McGraw-Hill Beneventano, Bergamaschi, Guerra, Vincini: Progetto di basi di dati relazionali, Pitagora Editrice Bologna, 2007 dott. ing. Francesco Guerra 16 2 DB
    • SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA Schema di esempio S(Matr,SNome,Citta,ACorso) C(CC,CNome,CD) FK: CD REFERENCES D D(CD,CNome,Citta) E(Matr,CC,Data,Voto) FK: Matr REFERENCES S FK: CC REFERENCES C dott. ing. Francesco Guerra 17 2 DB