Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni"

Transcript

1 Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste l istruzione check (Condizione) La condizione specificata deve essere verificata da tutte le tuple in ogni momento. E possibile con check definire tutti i vincoli predefiniti. Però è meno leggibile e non si possono applicare le politiche di reazione alle violazioni. Tuttavia è molto potente Check, esempio create table Impiegato ( Matricola character(6), Cognome character(20), Nome character(20), Sesso character not null check (sesso in ( M, F )) Stipendio integer, Superiore character(6), check(stipendio <= (select Stipendio from Impiegato J where Superiore = J.Matricola) ) Asserzioni Le asserzioni sono vincoli che fanno parte dello schema; non sono associati ad alcun attributo o tabella. Permettono di definire tutti i vincoli utilizzabili nella definizione di una tabella, ma anche vincoli su più tabelle o vincoli che richiedono che una tabella abbia certe caratteristiche (es. una certa cardinalità). create assertion NomeAsserzione check(condizione) create assertion AlmenoUnImpiegato check (1 <= (select count(*) from Impiegato)) Asserzioni Ogni vincolo di integrità è associato ad una politica di controllo che specifica se è immediato o differito. Se è immediato è verificato immediatamente dopo una modifica. Se è differito solo al termine dell esecuzione di una serie di operazioni (transazione). Se un vincolo immediato viene violato, l operazione di modifica può essere annullata immediatamente (rollback parziale). Tutti i vincoli predefiniti sono immediati. Se invece è differito al momento in cui si verifica la violazione non è più possibile identificare l operazione che l ha causata e quindi va annullata tutta la transazione (rollback). Questo garantisce la consistenza della base di dati. Per cambiare il tipo di controllo: set constraints [NomeVincolo] immediate set constraints [NomeVincolo] deferred 1

2 Le viste sono tabelle virtuali ricavate da informazioni contenute in altre tabelle. Nella definizione possono essere contenute anche altre viste purché non vi siano dipendenze ricorsive o immediate (una vista non può dipendere da se stessa), né transitive. create view NomeVista[(ListaAttributi)] as SelectSQL [ with [ local cascaded ] check option ] La query SQL deve restituire un numero di attributi pari a quelli contenuti nello schema; l ordine degli attributi nella target list deve rispettare quello dello schema create view ImpiegatiAmmin(Matricola,Nome,Cognome,Stipendio) as select Matricola, Nome, Cognome, Stipendio from Impiegato where Dipart = Amministrazione and Stipendio > 10 Su certe viste è possibile fare modifiche che alterano le tabelle che le compongono. Ci sono problemi se la vista è definita tramite un join. SQL permette la modifica di una vista solo se una sola riga di ciascuna tabella di base corrisponde a una riga della vista. Di solito si richiede che sia definita su una sola tabella e/o che contenga almeno una chiave primaria. check option richiede che si facciano modifiche solo sulle righe della vista e che le righe continuino ad appartenere alla vista dopo le modifiche. Se una vista è definita in termini di altre viste l opzione local o cascaded specifica se il controllo debba coinvolgere solo la vista più esterna o se deve essere propagato a tutti i livelli. Il default è cascaded. Quindi se è specificata la check option ogni comando di aggiornamento per essere propagato non deve eliminare righe dalla vista. Le viste consentono anche di sostituire interrogazioni nidificate o di creare interrogazioni altrimenti impossibili da definire. create view BudgetStipendi(Dip,TotaleStipendi) as select Dipart, sum(stipendio) from Impiegato group by Dipart Trovare il dipartimento che spende di più in stipendi select Dip from BudgetStipendi wheretotstipendi=(select max(totalestipendi) from BudgetStipendi) 2

3 SQL prevede la definizione di utenti, per assegnare diversi privilegi. Gli utenti possono essere gli stessi del sistema su cui è attivo il server SQL, oppure indipendenti dal sistema. Ogni componente del sistema è proteggibile, di solito si proteggono le tabelle. Il controllo degli accessi è basato sul concetto di privilegio, caratterizzato da: risorsa cui si riferisce utente che concede il privilegio utente che lo riceve azione che viene permessa possibilità di trasmettere o meno il privilegio ad altri utenti Il creatore di una risorsa ha tutti i privilegi, al momento della sua creazione. Esiste anche un utente speciale _system, che ha tutti i privilegi su tutte le risorse in qualsiasi momento. I privilegi sono: insert, (applicabile a tabelle o viste) inserisce un nuovo oggetto nella risorsa update (tabelle viste attributi) aggiorna il valore di un oggetto delete (tabelle e viste) rimuove un oggetto select (tabelle viste attributi) permette di leggere la risorsa references (tabelle ed attributi) permette che venga fatto riferimento ad una risorsa nell ambito della definizione dello schema di una tabella. usage (domini) permette che venga usata la risorsa drop e alter sono riservati al creatore degli oggetti cui si applicano I comandi per concedere o revocare privilegi sono grant e revoke grant Privilegi on Risorsa to Utenti [with grant option] concede i Privilegi sulla Risorsa agli Utenti grant select on Dipartimento to Stefano concede all utente Stefano il privilegio di select sulla tabella Dipartimento. Se si specifica anche with grant option l utente può propagare i diritti anche ad altri. La parola chiave all privileges specifica tutti i possibili privilegi. revoke Privilegi on Risorsa from Utenti [restrict cascade] fa l operazione inversa. Con restrict si impedisce che la revoca provochi altre revoche, con cascade si concede. 3

4 SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i normali linguaggi di programmazione In quest ultimo caso è necessario che un preprocessore si occupi di riconoscere in un sorgente il codice SQL e lo trasformi in codice del linguaggio che si sta usando. SQL e linguaggi di programmazione Uno dei problemi che sorgono è il fatto che SQL sia orientato agli insiemi mentre i linguaggi di programmazione, ad eccezione di alcuni linguaggi ad oggetti, possono essere soltanto orientati alle tuple. Le tuple dovranno quindi essere scandite una per una per eseguire un comando SQL. Si può ovviare a questo o con linguaggi ad oggetti che supportino operazioni evolute sugli insiemi o mediante i cursori. I cursori estendono SQL in modo tale da fornire la possibilità ad un programma di accedere alle tabelle una riga alla volta. Hanno un comportamento simile ai puntatori a file. declare NomeCursore [scroll] cursor for SelectSQL [for < read only update [ of Attributo {, Attributo }] > ] associa un cursore ad una interrogazione. scroll indica se il programma può spostarsi liberamente nell interrogazione for [read only update] specifica se il cursore deve essere usato in sola lettura o in un comando di modifica. open NomeCursore attiva l interrogazione cui è collegato il cursore e permette di accedere al risultato tramite il comando fetch [ Posizione from ] NomeCursore into ListadiFetch che prende una riga dal cursore e la ripone nelle variabili della ListadiFetch. La corrispondenza fra attributi e variabili è per posizione. Quando si parla di riga corrente si intende l ultima riga letta. 4

5 Posizione può assumere i valori: next (il cursore legge la riga successiva alla corrente) prior (la precedente) first (la prima) last (l ultima) absolute EsprIntera (la i-esima, i è il risultato dell espressione) relative EsprIntera (la i-esima rispetto alla corrente) Le opzioni di posizione possono essere usate solo se è stata specificata l opzione scroll. Altrimenti solo next. In quel caso l implementazione è più efficiente. update e delete possono usare i cursori. update NomeTabella set Attributo = < Espressione null default > {, Attributo = < Espressione null default > } where current of NomeCursore delete from NomeTabella where current of NomeCursore close NomeCursore chiude il cursore e libera la memoria dalla copia del risultato della query cui è collegato. Se la query restituisce solo una riga si può evitare il cursore e usare select ListaAttributi into ListaVariabili In molti casi è necessario formulare interrogazioni arbitrarie, non solo parametrizzabili, ma anche dipendenti ad esempio dallo stato dell esecuzione di un programma. Le interrogazioni che si possono formulare attraverso le istruzioni viste sinora sono di tipo statico, cioè scritte una volta per tutte. consente di costruire interrogazioni al momento dell esecuzione di un programma. In SQL statico, i comandi vengono compilati una volta per tutte. Questo si traduce in elevata efficienza. In, per ottimizzare l efficienza di un programma e mantenerla equivalente a quella di SQL statico, sono previste due modalità di esecuzione. 5

6 execute immediate IstruzioneSQL Questo comando provoca l esecuzione immediata dell istruzione e può quindi essere usato solo per comandi che non richiedono parametri in ingresso o in uscita. istruzionesql= delete from Dipartimento where Nome = Amministrazione ; $ execute immediate :istruzionesql Se il comando viene eseguito più volte o se il programma deve gestire uno scambio di parametri bisogna distinguere 2 fasi: preparazione ed esecuzione. Fase di preparazione prepare NomeComando from IstruzioneSQL fa analizzare l istruzione e la fa tradurre nel linguaggio procedurale del sistema. Gli eventuali parametri sono sostituiti da? In pratica, definisce una funzione che sarà possibile chiamare dal linguaggio ad alto livello. prepare :comando from select Città from Dipartimento where Nome =? Quando non serve più l istruzione è possibile deallocare la memoria deallocate prepare NomeComando deallocate prepare :comando Fase di esecuzione execute NomeComando [ into TargetList ] [ using ListaParametri ] La target list contiene le variabili in cui deve essere inserito il risultato dell esecuzione del comando. La lista dei parametri specifica i valori che devono essere assunti dai parametri della funzione. execute :comando into :citta using :dipartimento diventa, se :dipartimento assume il valore Produzione, select Città from Dipartimento where Nome = Produzione I cursori vengono utilizzati come in SQL statico, con la sola differenza che si associa al cursore l identificativo dell interrogazione invece che l interrogazione stessa e che si possono usare using e into per specificare i valori dei parametri di ingresso e uscita. prepare :comando from :istruzionesql declare Cursore cursor for :comando open Cursore using :nome1 6

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52) Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una maschera (form) per consentire agli utenti di inserire dati. L'ordinamento degli attributi

Dettagli

insert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto

insert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una form per consentire agli utenti di inserire dati. L'ordinamento degli attributi (se

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

SQL-DML/3. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

SQL-DML/3. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste SQL-DML/3 Credits to: Prof. P. Atzeni UniRoma3 Prof. S. Ceri PoliMI Prof. S. Paraboschi UniBG Prof. R. Torlone UniRoma3 Operazioni

Dettagli

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe SQL SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe Operazioni di aggiornamento Abbiamo visto come creare tabelle e come interrogarle. Vedremo ora come popolarle

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operazioni di aggiornamento operazioni di inserimento: insert eliminazione: delete modifica: update di una o più ennuple di una

Dettagli

Vincoli di integrità generici: check

Vincoli di integrità generici: check Lezione 5 Vincoli di integrità e Viste 1 Vincoli di integrità generici: check La clausola check permette di restringere i domini e specificare predicati che devono essere soddisfatti ogni volta che un

Dettagli

Controllo degli accessi

Controllo degli accessi Controllo degli accessi SQL prevede la definizione di utenti, a ciascuno dei quali sono assegnati privilegi diversi. Gli utenti possono essere gli stessi del sistema su cui è attivo il server SQL, oppure

Dettagli

Controllo degli accessi. Controllo degli accessi. Controllo degli accessi. Controllo degli accessi

Controllo degli accessi. Controllo degli accessi. Controllo degli accessi. Controllo degli accessi SQL prevede la definizione di utenti, a ciascuno dei quali sono assegnati privilegi diversi. Gli utenti possono essere gli stessi del sistema su cui è attivo il server SQL, oppure indipendenti dal sistema.

Dettagli

Linguaggio SQL: costrutti avanzati Controllo dell accesso

Linguaggio SQL: costrutti avanzati Controllo dell accesso Linguaggio SQL: costrutti avanzati D B M G Sicurezza dei dati Risorse e privilegi Gestione dei privilegi in SQL Gestione dei ruoli in SQL D B M G 2 Pag. 1 1 D B M G Sicurezza dei dati Protezione dei dati

Dettagli

Linguaggio SQL: costrutti avanzati D B M G

Linguaggio SQL: costrutti avanzati D B M G Linguaggio SQL: costrutti avanzati D B M G Controllo dell accesso Sicurezza dei dati Risorse e privilegi Gestione dei privilegi in SQL Gestione dei ruoli in SQL D B M G 2 Sicurezza dei dati Protezione

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati

Dettagli

8 SQL : Check, Asserzioni,Viste

8 SQL : Check, Asserzioni,Viste Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2011/2012 8 SQL : Check, Asserzioni,Viste

Dettagli

Basi di dati. SQL: Caratteristiche evolute

Basi di dati. SQL: Caratteristiche evolute Basi di dati SQL: Caratteristiche evolute Vincoli di integrità generici: check Specifica di vincoli di ennupla (e anche vincoli più complessi, non sempre supportati) check ( Condizione ) 2 Check, esempio

Dettagli

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni

Dettagli

Aspetti avanzati nella definizione degli schemi DDL2 1

Aspetti avanzati nella definizione degli schemi DDL2 1 Aspetti avanzati nella definizione degli schemi DDL2 1 Aspetti avanzati del DDL Creazione di indici Modifica degli schemi Gestione di viste Autorizzazioni d'accesso Vincoli di integrità Procedure e regole

Dettagli

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata Domini Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata numeric [(Precisione [,Scala])] decimal [(Precisione [,Scala])] integer smallint Precisione specifica il numero di

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

Il linguaggio SQL: le viste

Il linguaggio SQL: le viste Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 6 Raffaella Gentilini 1 / 40 Sommario 1 Viste 2 3 2 / 40 Viste Viste le viste sono tabelle virtuali corrispondono al risultato di una query (SELECT) valutata

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

SQL Laboratorio di Basi di Dati a.a. 2002/2003

SQL Laboratorio di Basi di Dati a.a. 2002/2003 1 SQL Laboratorio di Basi di Dati a.a. 2002/2003 dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 2 Sommario (V parte) Aspetti avanzati della definizione dei dati

Dettagli

Laboratorio di Basi di Dati e Multimedia

Laboratorio di Basi di Dati e Multimedia Laboratorio di Basi di Dati e Multimedia Laurea in Informatica Multimediale - A.A. 2006/07 Docente: Alessandra Di Pierro Email: dipierro@sci.univr.it Lezione 2 Vincoli intrarelazionali Proprietà che devono

Dettagli

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

SQL Sintassi Dei Comandi

SQL Sintassi Dei Comandi SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la

Dettagli

D B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati

D B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati Sistemi informativi D B M G Linguaggio SQL: costrutti avanzati Gestione delle transazioni SQL per le applicazioni Controllo dell accesso Gestione degli indici D B M G 2 Pag. 1 2007 Politecnico di Torino

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2007/2008 Interrogazioni con raggruppamento E possibile

Dettagli

VISTE. 19/11/2015 Concetti Avanzati - SQL 71

VISTE. 19/11/2015 Concetti Avanzati - SQL 71 VISTE 19/11/2015 Concetti Avanzati - SQL 71 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni dei dati contenuti nelle tabelle fisiche

Dettagli

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL Interrogazioni con ANY e ALL Operatori ANY e ALL Sintassi: WHERE Attributo OperatoreConfronto [ANY ALL] (SelectAttributoSingolo) ANY: la riga soddisfa la condizione se risulta vero il confronto con almeno

Dettagli

SQL DDL. Create database. Alter database. Drop database

SQL DDL. Create database. Alter database. Drop database SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ SQL (Structured Query Language) e il linguaggio di riferimento per le basi di dati relazionali. Diverse

Dettagli

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate Select La sintassi di select cui siamo arrivati dopo le estensioni viste è quindi: SelectSQL ::= select ListaAttributiOEspressioni from ListaTabelle [ where CondizioniSemplici ] [ group by ListaAttributiDiRaggruppamento]

Dettagli

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola: Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno 2012 Cognome e nome: Matricola: Parte prima Domanda 1 Domanda 2 Domanda 3 Totale Istruzioni: È vietato portare

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel): acronimo di Structured Query Language (linguaggio di interrogazione strutturato) Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ 1 Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

Dettagli

Il linguaggio SQL: autorizzazioni

Il linguaggio SQL: autorizzazioni Il linguaggio SQL: autorizzazioni Sistemi Informativi T Versione elettronica: 04.6.SQL.autorizzazioni.pdf Autorità e privilegi Nei DBMS SQL ogni operazione deve essere autorizzata, ovvero l utente che

Dettagli

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

Basi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive

Basi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive Basi di Dati e Sistemi Informativi Basi di dati Attive Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Asserzioni Introdotte in SQL-2 rappresentano dei vincoli che non sono però associati

Dettagli

Primo Compitino di Basi di Dati

Primo Compitino di Basi di Dati Primo Compitino di Basi di Dati 19 Aprile 2004 Svolgere gli esercizi direttamente sul foglio del testo Usare fogli aggiuntivi solo in mancanza di spazio. NOME: COGNOME: MATRICOLA: Esercizio Punti previsti

Dettagli

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi Corso di Basi di Dati 10. Esercitazioni in SQL: Complementi A.A. 2016 2017 Funzioni condizionali Vediamo qualche altro comando utile di SQL. Il comando coalesce ammette come argomento una sequenza di espressioni

Dettagli

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi Corso di Basi di Dati 10. Esercitazioni in SQL: Complementi A.A. 2016 2017 Funzioni condizionali Vediamo qualche altro comando utile di SQL. Il comando coalesce ammette come argomento una sequenza di espressioni

Dettagli

Vincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1

Vincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1 Vincoli, procedure e regole attive in SQL SQL: vincoli, trigger 1 Qualità dei dati Qualità dei dati: correttezza, completezza, attualità In molte applicazioni reali i dati sono di scarsa qualità (5% -

Dettagli

PRODOTTO CARTESIANO Caso Generale

PRODOTTO CARTESIANO Caso Generale PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

Gestione dei valori nulli

Gestione dei valori nulli Gestione dei valori nulli La gestione dei valori nulli, a seconda dell implementazione, avviene attraverso una logica a due valori come in SQL-89, o a tre valori (vero, falso, unknown) come in SQL-2. In

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Stringhe di caratteri

Stringhe di caratteri Domini primitivi In SQL sono disponibili alcune famiglie di domini elementari attraverso le quali è possibile definire i domini di appartenenza dei campi. Stringhe di caratteri CHARACTER [VARYING] [(NumeroCaratteri)]

Dettagli

ESERCITAZIONE: Fornitore-Fornisce-Articolo

ESERCITAZIONE: Fornitore-Fornisce-Articolo ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito

Dettagli

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE Dato il seguente schema E/R E la sua traduzione nel seguente schema relazionale: disponibile in http://www.dbgroup.unimo.it/sire/20110513/20110513.bak Viene richiesto di 1) Risolvere la seguente interrogazione

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Settima parte Interrogazione di una

Dettagli

Vincoli interrelazionali

Vincoli interrelazionali Vincoli interrelazionali Politiche associate alla cancellazione (comando delete): cascade tutte le corrispondenti righe della tabella interna vengono cancellate. set null all attributo referente viene

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare alcune informazioni relative a Twitter. TWEET

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica Dipartimento Informatica Materia Informatica Classe 5 Tec Ore/anno 198 A.S. 2018-2019 MODULI COMPETENZE UNITA di APPRENDIMENTO Gestione delle informazioni Tot. h 10 Base di Dati Tot. h 56 Grafica in C#

Dettagli

SQL - Valori nulli. Linguaggio SQL

SQL - Valori nulli. Linguaggio SQL SQL - Valori nulli SQL usa una logica a tre valori per valutare il valore di verità di una condizione di ricerca (clausola where) True (T), False (F), Unknown (?) un predicato semplice valutato su un attributo

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo

Dettagli

Il linguaggio SQL costrutti DDL.

Il linguaggio SQL costrutti DDL. Il linguaggio SQL costrutti DDL foglia@iet.unipi.it Sommario Costrutti per la creazione dello schema Costrutti per la creazione delle tabelle Costrutti per la modifica dello schema modifica/cancellazione

Dettagli

Vincoli. Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi

Vincoli. Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi Lucidi derivati da quelli di Jeffrey D. Ullman 1 Vincoli e Triggers Un vincolo e una relazione

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 1 Luglio 2008 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab

Dettagli

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL : fondamenti Linguaggio per gestire le basi di dati relazionali Structured Query Language SQL possiede istruzioni per definire lo schema di una base di dati relazionale leggere e scrivere i dati definire

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

Cap. 7 -Trigger e loro uso

Cap. 7 -Trigger e loro uso 1 SOMMARIO 2 Introduzione... 3 Definizione standard di trigger... 10 Cap. 7 -Trigger e loro uso Uso dei trigger e integrità referenziale... 18 Comportamento attivo delle BD Si realizza disponendo di un

Dettagli

D B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE

D B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti DB M B G Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE D B M G 2 DB M B G (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple D B M G 4 (2/3)

Dettagli

record a struttura fissa

record a struttura fissa Modello Relazionale E un modello logico: definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso tabelle. Es. (relazioni INSEGNAMENTO

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple

Dettagli

Elena Baralis 2013 Politecnico di Torino 1

Elena Baralis 2013 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti D B M G 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple D B M G 4 (2/3) INSERT inserimento

Dettagli

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 - Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 06/04/2016 Esercizio 1 Dare

Dettagli

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili)

SQL. Domini. Domini elementari (predefiniti) Domini definiti dall utente (semplici, ma riutilizzabili) SQL SQL Structured Query Language è un linguaggio con varie funzionalità: contiene sia il DDL sia il DML; esistono varie versioni dell SQL; vediamo gli aspetti essenziali non i dettagli storia : prima

Dettagli

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2013-2014 Docente: Gigliola Vaglini Docente laboratorio: Francesco Pistolesi Lezione SQL avanzato 1 Controllo

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo Linguaggi per basi di dati Accesso alla base di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l accesso Linguaggi di manipolazione dei dati Utilizzati

Dettagli

SQL: "storia" 31/05/2006 2

SQL: storia 31/05/2006 2 SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli

Dettagli

Basi di Dati e Sistemi Informativi

Basi di Dati e Sistemi Informativi Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Esercizio 1 Scrivere il codice SQL dello schema ARTICOLI Codice

Dettagli

Istruzioni. DDL: CREATE, DROP e ALTER TABLE. DML: INSERT, DELETE e UPDATE DQL: SELECT. DCL: GRANT e REVOKE

Istruzioni. DDL: CREATE, DROP e ALTER TABLE. DML: INSERT, DELETE e UPDATE DQL: SELECT. DCL: GRANT e REVOKE Istruzioni DDL: CREATE, DROP e ALTER TABLE DML: INSERT, DELETE e UPDATE DQL: SELECT DCL: GRANT e REVOKE INSERT INSERT INTO nome_tabella VALUES (V 1, V 2,, V N ); Inserisce la n-upla (v 1,, v n ) nella

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali SQL Linguaggio di interrogazione per basi di dati relazionali SQL Structured Query Language Linguaggio di interrogazione per basi di dati relazionali. Permette di comunicare con diversi sistemi tramite

Dettagli

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. Ordinamento E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. order by AttrdiOrdinamento [asc desc] {, AttrdiOrdinamento

Dettagli

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Interrogazioni$e$il$valore$NULL$

Interrogazioni$e$il$valore$NULL$ SQL$Avanzato$ Interrogazioni+complesse,+trigger,+viste+e+modifiche+dello+schema+! 2 Interrogazioni$e$il$valore$NULL$! Il valore NULL Logica a tre valori 3! Significato del valore NULL! Valore sconosciuto!

Dettagli

Mattia Fazzi: 14/05/2019

Mattia Fazzi: 14/05/2019 Mattia Fazzi: mattia.fazzi@student.unife.it 14/05/2019 SQL Linguaggio utilizzato per definire i dati nel database. Definire i vincoli. Possibilità di creare, modificare e eliminare le tabelle. CREATE TABLE

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 22 Settembre 2003 NOME: COGNOME: MATRICOLA: Esercizio Punti previsti 1 10 2 12 3 8 4 3 Totale 33 Punti assegnati Esercizio 1 (Punti 10) Si vuole sviluppare una base di dati

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli