Vincoli di Integrità

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Vincoli di Integrità"

Transcript

1 Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico Questi lucidi sono stati prodotti sulla base del materiale preparato per il corso di Progetto di Basi di Dati da A. Calì e da D. Lembo.

2 Generalità I vincoli di integrità specificano proprietà dei dati I vincoli restringono l insieme delle istanze possibili su uno schema, allo scopo di riflettere meglio il dominio che i dati medesimi rappresentano Nella definizione di uno schema, occorre specificare tutti i vincoli che devono sussistere sulle istanze dello schema Occorre specificare vincoli di integrità: sullo schema concettuale sullo schema logico Antonella Poggi 1

3 Vincoli sullo schema concettuale Vincoli di identificazione Vincoli di cardinalità Vincoli esterni Antonella Poggi 2

4 Prima classificazione dei vincoli di integrità Sullo schema concettuale, possiamo classificare i vincoli a seconda che esprimano proprietà che devono essere soddisfatte da ogni stato, coppia di stati consecutivi, o insieme di stati dei dati: vincoli di stato: si riferiscono ad ogni stato dei dati vincoli di transizione di stato: si riferiscono a due stati consecutivi dei dati vincoli di sequenza di stati (temporali): si riferiscono a più di due stati (non necessariamente consecutivi) dei dati Antonella Poggi 3

5 Vincoli di stato Specificano delle proprietà statiche dei dati. Sia i vincoli di identificazione che i vincoli di cardinalità sono vincoli di stato. Si consideri il seguente schema ER. Antonella Poggi 4

6 Antonella Poggi 5

7 Esempi di vincoli esterni che possono essere classificati come vincoli di stato sono i seguenti. Il livello di un impiegato deve essere un intero tra 1 e 8. La somma dei salari di tutti gli impiegati non può superare un tetto M. Antonella Poggi 6

8 Vincoli di transizione di stato Questi vincoli riguardono due stati consecutivi dei dati. Facendo riferimento alla precedente entità Impiegato, esempi di vincoli esterni che possono essere classificati di transizione di stato sono i seguenti: Il salario di un impiegato non può essere incrementato di più del 5 per cento con una singola operazione di aggiornamento. Il salario medio non può essere incrementato di più del 5 per cento con una singola operazione di aggiornamento. Un impiegato può diventare un pensionato ma non viceversa. Antonella Poggi 7

9 Vincoli temporali Questi vincoli riguardono un insieme di più di due stati non necessariamente consecutivi. Ad esempio (facendo sempre riferimento allo scenario precedente), vincoli esterni che possono essere classificati come vincoli temporali: Una volta che un impiegato è stato licenziato da un dipartimento, non può più essere impiegato in quel dipartimento. Il salario medio di un impiegato non può incrementare di oltre il 10% in meno di 10 operazioni di aggiornamento. Prima di diventare pensionato, un impiegato deve aver assunto almeno 3 diversi livelli di impiego. Antonella Poggi 8

10 Vincoli sullo schema logico Nel passaggio dallo schema concettuale allo schema logico, i vincoli sono anch essi tradotti in vincoli espressi in termini dello schema logico (i.e., relazionale). Lo schema relazionale risultante dalla traduzione è quindi corredato da un insieme di vincoli: vincoli di chiave (primaria e no) - risultanti, per esempio, dalla traduzione dei vincoli di identificazione o da cardinalità massime pari a 1 (i.e., funzionalità); attributi obbligatori - risultanti dalla traduzione dei vincoli di cardinalità minima pari a 1; vincoli di chiave esterna (foreign key) - risultanti, per esempio, da tipizzazione di relazioni, da vincoli esterni Antonella Poggi 9

11 introdotti sull ER dopo ristrutturazione delle ISA, o da decomposizioni di tabelle nella fase di ristrutturazione del logico; vincoli di inclusione - risultanti, per esempio, dalla traduzione di vincoli di cardinalità minima pari a 1 sulle relazioni; vincoli di disgiuntezza - risultanti, per esempio, dalla traduzione di generalizzazioni; vincoli di completezza - risultanti, per esempio, dalla traduzione di generalizzazioni complete; altri vincoli esterni - risultanti dalla traduzione di vincoli esterni espressi sull ER. Antonella Poggi 10

12 Ulteriore classificazione dei vincoli di integrità Sullo schema logico, è possibile classificare i vincoli, oltre che secondo il criterio precedente, a seconda che esprimano proprietà che devono essere soddisfatte da ogni tupla, tabella o insieme di tabelle: vincoli di tupla (riga): si riferiscono alle singole righe di una tabella vincoli di tabella: si riferiscono all insieme delle righe di una tabella vincoli inter-tabella: sono i più generali, e si riferiscono a più di una tabella Antonella Poggi 11

13 Vincoli di tupla Specificano delle proprietà che devono essere soddisfatte da ogni singola tupla di una tabella. I vincoli di attributi obbligatori sono vincoli di tupla. Siano ora Impiegato, Dipartimento e Pensionato le tabelle dello schema logico derivanti dalla traduzione della porzione dello schema ER vista in precedenza (sono state accorpate nella tabella Impiegato sia la ER-relazione lavora che la ISA derivante dalla generalizzazione). La tabella Impiegato ha attributi Codice, Nome, Cognome, Livello, Salario, Dipartimento. I seguenti vincoli, derivanti anch essi dalla traduzione dei vincoli sull ER, sono ulteriori esempi di vincoli di tupla: Antonella Poggi 12

14 Il livello di un impiegato deve essere un intero tra 1 e 8. Il salario di un impiegato non può essere incrementato di più del 5 per cento con una singola operazione di aggiornamento. Una volta che un impiegato è stato licenziato da un dipartimento, non può più essere impiegato in quel dipartimento. Antonella Poggi 13

15 Vincoli di tabella Specificano delle proprietà che devono essere soddisfatte dall insieme delle tuple di una tabella. I vincoli di chiave sono vincoli di tabella. Facendo riferimento alla tabella Impiegato, esempi di vincoli di tabella sono: La somma dei salari di tutti gli impiegati non può superare un tetto M. Il salario medio non può essere incrementato di più del 5 per cento con una singola operazione di aggiornamento Il salario medio di un impiegato non può incrementare di oltre il 10% in meno di 10 operazioni di aggiornamento. Antonella Poggi 14

16 Vincoli inter-tabella Specificano delle proprietà che devono essere soddisfatte dalle tuple di un insieme di tabelle. I vincoli di chiave esterna e di inclusione sono vincoli inter-tabella. Un impiegato può diventare un pensionato ma non viceversa. Prima di diventare pensionato, un impiegato deve aver assunto almeno 3 diversi livelli di impiego. Antonella Poggi 15

17 Specifica dei vincoli È opportuno che i vincoli siano specificati in modo dichiarativo, e cioè facendo riferimento a proprietà dei dati, e non a operazioni che consentano il soddisfacimento di dette proprietà. Si può usare una descrizione precisa in linguaggio naturale, oppure formalismi ad-hoc ad es., Object Constraint Language - OCL di UML I vincoli devono essere decomposti in vincoli elementari, in modo che possano essere facilmente implementati (come vedremo più avanti) Antonella Poggi 16

18 Consistenza dei vincoli Un insieme di vincoli si dice consistente se esiste almeno un istanza dello schema che li verifica tutti. In molti casi non è difficile definire vincoli non consistenti. Antonella Poggi 17

19 Ridondanza Un insieme di vincoli si dice ridondante se esiste in esso almeno un vincolo che implica un altro. È opportuno che non ci sia ridondanza nei vincoli definiti su uno schema. Antonella Poggi 18

20 Implementazione dei vincoli Implementare i vincoli significa assicurare che i dati si trovino sempre in uno stato consistente rispetto ai vincoli. In linea di principio, i vincoli devono essere implementati al livello di gestione dei dati (tramite gli strumenti del DBMS), affinché siano soddisfatti indipendentemente dalla modalità con cui si fa loro accesso. Quando, per scelta o a causa di limiti del DBMS, alcuni vincoli non sono implementati sulla base di dati, è necessario documentare in maniera adeguata la base di dati e delegare l implementazione dei suddetti vincoli alle applicazioni che accedono alla stessa. Antonella Poggi 19

21 Vincoli di integrità nel linguaggio SQL Per dichiarare vincoli di integrità possiamo usare i seguenti costrutti SQL: Costrutto NOT NULL : permette di definire attributi obbligatori Costrutto UNIQUE: permette di definire uno o più attributi che identificano la tupla Costrutto PRIMARY KEY: permette di definire uno o più attributi che formano una chiave primaria (implica NOT NULL) Costrutto FOREIGN KEY (REFERENCES): permette di definire chiavi esterne Costrutto CHECK: permette di definire vincoli generici intra-tabella Antonella Poggi 20

22 Costrutto CREATE ASSERTION: permette di definire vincoli generici inter-tabella Tranne CREATE ASSERTION, gli altri costrutti sono usati all interno dei comandi CREATE TABLE e ALTER TABLE. Antonella Poggi 21

23 I costrutti NOT NULL, UNIQUE e PRIMARY KEY (esempio) CREATE TABLE IMPIEGATO ( CODICE INT, NOME VARCHAR(20) NOT NULL, COGNOME VARCHAR(20) NOT NULL, LIVELLO INT NOT NULL, SALARIO INT NOT NULL, DIPARTIMENTO INT NOT NULL, PRIMARY KEY (CODICE, DIPARTIMENTO), UNIQUE (NOME, COGNOME) ); Antonella Poggi 22

24 Il costrutto FOREIGN KEY Consente di esprimere un vincolo di integrità referenziale (ad es., R 1 [A] R 2 [B], con B chiave di R 2 ) B può essere chiave primaria (PRIMARY KEY) o secondaria (UNIQUE) a partire da SQL99 consente di definire una politica di reazione alle modifiche (cancellazioni ed aggiornamenti) dei dati contenuti nella tabella esterna (R 2 ) che possono portare alla violazione del vincolo Antonella Poggi 23

25 Il costrutto FOREIGN KEY (cont.) per le cancellazioni si fa uso della clausola ON DELETE [CASCADE SET NULL SET DEFAULT NO ACTION RESTRICT] a fronte della cancellazione di una tupla nella tabella esterna, tutte le righe della tabella interna che referenziano la tupla cancellata vengono eliminate (opzione CASCADE), poste a NULL (SET NULL), poste al valore di default (SET DEFAULT). Con l opzione RESTRICT, se il vincolo risulta violato, si impedisce la cancellazione. Antonella Poggi 24

26 L opzione NO ACTION Le opzioni NO ACTION e RESTRICT sono tra loro molto simili. Infatti, se la verifica del vincolo fallisce, sia in caso di utilizzo dell opzione NO ACTION che in caso di utilizzo di RESTRICT, l operazione porta ad un errore. La principale differenza tra le due è che con l opzione NO ACTION, la verifica del vincolo di integrità è fatta dopo aver tentato di modificare la tabella esterna, mentre con l opzione RESTRICT la verifica è fatta prima di tentare l esecuzione del DELETE. Antonella Poggi 25

27 Il costrutto FOREIGN KEY (cont.) per gli aggiornamenti si fa uso della clausola ON UPDATE [CASCADE SET NULL SET DEFAULT NO ACTION RESTRICT] a fronte dell aggiornamento della chiave della tabella esterna, all attributo delle corrispondenti tuple della tabella interna viene assegnato lo stesso nuovo valore (CASCADE), il valore NULL (SET NULL) oppure il valore di default (SET DEFAULT). Con l opzione RESTRICT si impedisce l aggiornamento. L opzione NO ACTION ha la stessa semantica descritta per le cancellazioni. Antonella Poggi 26

28 Il costrutto FOREIGN KEY (esempio) CREATE TABLE IMPIEGATO ( CODICE INT, NOME VARCHAR(20) NOT NULL, COGNOME VARCHAR(20) NOT NULL, LIVELLO INT NOT NULL, SALARIO INT NOT NULL, DIPARTIMENTO INT NOT NULL REFERENCES DIPARTIMENTO (COD_DIP) ON DELETE SET NULL ON UPDATE CASCADE, PRIMARY KEY (CODICE, DIPARTIMENTO), UNIQUE (NOME, COGNOME) ); Antonella Poggi 27

29 Il costrutto DEFAULT Nei casi in cui per specificare la reazione ad una cancellazione o ad una modifica si ricorre alla clausola SET DEFAULT, è necessario che sia previsto un valore di default da assegnare all attributo che eventualmente rimane appeso. Nell istruzione CREATE TABLE si usa la seguente sintassi: <Nome Colonna> <tipo SQL> DEFAULT <expression> Quando si definisce un valore di default per una colonna, tale valore viene assegnato quando si inserisce una tupla senza specificare alcun valore per l attributo in oggetto Antonella Poggi 28

30 Il costrutto DEFAULT (esempio) CREATE TABLE IMPIEGATO ( CODICE INT, NOME VARCHAR(20) NOT NULL, COGNOME VARCHAR(20) NOT NULL, LIVELLO INT DEFAULT 1 NOT NULL, SALARIO INT NOT NULL, DIPARTIMENTO INT NOT NULL REFERENCES DIPARTIMENTO (COD_DIP) ON DELETE SET NULL ON UPDATE CASCADE, PRIMARY KEY (CODICE, DIPARTIMENTO), UNIQUE (NOME, COGNOME) ); Antonella Poggi 29

31 Il costrutto CHECK Consente di esprimere vincoli di integrità complessi su una sola tabella: CHECK (<condizione>) dove <condizione> è una qualsiasi condizione che può comparire all interno di una clausola WHERE (incluse quelle che fanno uso di sub-query) Consente di implementare vincoli a livello di tupla (ad esempio, SALARIO >= 0) e di tabella (in genere tramite sub-query con operatori aggregati). Antonella Poggi 30

32 Esempio CREATE TABLE IMPIEGATO ( CODICE INT, NOME VARCHAR(20) NOT NULL, COGNOME VARCHAR(20) NOT NULL, LIVELLO INT DEFAULT 1 NOT NULL CHECK (LIVELLO <= 8 AND LIVELLO >=1), SALARIO INT NOT NULL CHECK (SALARIO >=0), DIPARTIMENTO INT NOT NULL REFERENCES DIPARTIMENTO (COD_DIP), PRIMARY KEY (CODICE, DIPARTIMENTO), UNIQUE (NOME, COGNOME), CHECK (50 > (SELECT AVG(SALARIO) FROM IMPIEGATO)) ); Antonella Poggi 31

33 Il comando ALTER TABLE In alternativa alla sintassi descritta fin qui per definire vincoli, si può usare il comando ALTER TABLE: ALTER TABLE <Nome tabella> ADD <{PRIMARY KEY FOREIGN KEY UNIQUE CHECK}> Tale comando è utile per realizzare vincoli di integrit referenziali ciclici: per far sì che R 1 referenzi R 2 ed R 2 referenzi R 1 si può definire prima R 1 senza vincolo di foreign key (altrimenti si dovrebbe far riferimento ad R2 che non è stata ancora definita), poi R 2 con il vincolo di foreign key verso R 1, ed infine aggiungere il vincolo di foreign key ad R 1 con il comando ALTER TABLE Antonella Poggi 32

34 Il costrutto ASSERTION Per i vincoli inter-tabella, il costrutto CREATE ASSERTION permette di definire vincoli a livello di schema: CREATE ASSERTION <NomeAss> CHECK (<condizione>); Antonella Poggi 33

35 Esempio (vincolo di inclusione) vincolo: Ogni impiegato risiede in almeno una città (supponiamo che esista una tabella RISIEDE IN(IMPIEGATO,CITTA), con chiave su entrambe le colonne) CREATE ASSERTION impiegato_risiede CHECK (NOT EXISTS (SELECT * FROM IMPIEGATO WHERE CODICE NOT IN (SELECT IMPIEGATO FROM RISIEDE_IN) ); Antonella Poggi 34

36 Assegnare nomi espliciti a vincoli in SQL Tutti i vincoli di integrità (tranne i vincoli sugli attributi obbligatori) hanno un nome unico all interno di uno schema. Se il nome non è specificato esplicitamente, viene assegnato dal sistema secondo una modalità dipendente dall implementazione. Esplicitare il nome di un vincolo può essere conveniente, per esempio, quando si prevede la necessità di eliminare il vincolo stesso (con l istruzione DROP CONSTRAINT <Nome Vincolo>) Antonella Poggi 35

37 Per esplicitare il nome di un vincolo: nell istruzione CREATE TABLE, si usa la sintassi CONSTRAINT <NomeVincolo> [ PRIMARY KEY UNIQUE FOREIGN KEY CHECK ]; nell istruzione ALTER TABLE, si usa la sintassi ADD CONSTRAINT <NomeVincolo> [ {PRIMARY KEY UNIQUE FOREIGN KEY CHECK} ]; Antonella Poggi 36

38 CREATE TABLE IMPIEGATO ( NOME VARCHAR(20) NOT NULL, COGNOME VARCHAR(20) NOT NULL, LIVELLO INT CHECK (LIVELLO <= 8 AND LIVELLO >=1), SALARIO INT CHECK (SALARIO >=0), DIPARTIMENTO INT, CONSTRAINT imp_fk FOREIGN KEY (DIPARTIMENTO) REFERENCES DIPARTIMENTO(COD_DIP), CONSTRAINT imp_pk PRIMARY KEY (CODICE, DIPARTIMENTO), CONSTRAINT imp_k UNIQUE (NOME, COGNOME), CONSTRAINT imp_max CHECK (50 > (SELECT AVG(SALARIO) FROM IMPIEGATO)) ); Antonella Poggi 37

39 Modalità di verifica di vincoli Ogni vincolo è caratterizzato da una modalità di verifica (checking mode), che determina il momento in cui il vincolo viene verificato: nel caso in cui la modalità sia IMMEDIATE il vincolo è controllato dopo l esecuzione di ogni comando SQL; se la modalità è DEFERRED il vincolo è verificato solo al termine della transazione corrente La modalità deferred può essere applicata solo ai vincoli che, al momento della loro creazione, sono stati definiti DEFERRABLE (N.B. Se non si specifica nulla, un vincolo viene implicitamente definito come NON DEFERRABLE). Se un vincolo è inizialmente definito DEFERRABLE, allora si deve specificare la sua modalità di verifica iniziale: Antonella Poggi 38

40 CONSTRAINT <NomeVincolo> [ PRIMARY KEY UNIQUE FOREIGN KEY CHECK ] [DEFERRABLE INITIALLY IMMEDIATE INITIALLY DEFERRED NON DEFERRABLE]; per modificare la modalità di verifica di un vincolo inizialmente definito DEFERRABLE, si usa la sintassi: SET CONSTRAINT <NomeVincolo> [DEFERRED IMMEDIATE]; Antonella Poggi 39

41 Esempio CREATE TABLE IMPIEGATO ( CODICE INT, NOME VARCHAR(20), COGNOME VARCHAR(20), LIVELLO INT CHECK (LIVELLO <= 8 AND LIVELLO >=1), SALARIO INT CHECK (SALARIO >=0), DIPARTIMENTO INT, PRIMARY KEY (CODICE, DIPARTIMENTO), UNIQUE (NOME, COGNOME), CHECK (50 > (SELECT AVG(SALARIO) FROM IMPIEGATO)) CONSTRAINT imp_fk FOREIGN KEY (DIPARTIMENTO) REFERENCES DIPARTIMENTO(COD_DIP) DEFERRABLE INITIALLY IMMEDIATE ); SET CONSTRAINT imp_fk DEFERRED; Antonella Poggi 40

42 MySQL vs. Standard SQL per l implementazione di vincoli MySQL consente di usare: Costrutto PRIMARY KEY Costrutto UNIQUE Costrutto FOREIGN KEY Costrutto NOT NULL Costrutto DEFAULT Non è possibile utilizzare il costrutto CHECK (questo impedisce la definizione dichiarativa di molti vincoli fra cui inclusione, completezza e disgiuntezza). Antonella Poggi 41

43 Un alternativa al costrutto CHECK Nei casi in cui si voglia forzare il valore di alcuni campi ad appartenere da un determinato insieme finito, è possibile usare un tipo enumerato ENUM. CREATE TABLE PERSONA( NOME VARCHAR(20), COGNOME VARCHAR(20), ETA INT, SESSO ENUM ( M, F ) ); In questo esempio, posso inserire tuple che abbiano nel campo SESSO esclusivamente i valori M, F, m, f. Antonella Poggi 42

44 MySQL ed il costrutto foreign key È possibile specificare le clausole ON {DELETE UPDATE} [{ CASCADE SET NULL RESTRICT NO ACTION}] Il comportamento di default è RESTRICT) L opzione NO ACTION si comporta in maniera analoga (differentemente dallo standard SQL) L opzione SET DEFAULT non è supportata Non è supportato l uso della clausola DEFERRABBLE tutti i vincoli sono verificati dopo l esecuzione di ogni comando SQL! Antonella Poggi 43

45 Esempio Contratto(cod fiscale, tipo, importo) PartitaIVA(cod fiscale, numero) Vincolo di chiave esterna: PartitaIVA[cod fiscale] Contratto[cod fiscale] (foreign key) Vincoli esterni: 1. Contratto[tipo] {C,P} i.e., ogni contratto deve essere di tipo C o P ( CoCoCo o Prestazione Professionale ) 2. Contratto[importo] i.e., l importo di un contratto deve essere al più pari a Antonella Poggi 44

46 3. cf,t,i,n Contratto(cf,t,i), PartitaIVA(cf,n) t= P i.e., tutte le tuple di Contratto che riguardano soggetti con partita IVA corrispondono a prestazioni professionali 4. cf,i Contratto(cf, P, i) n PartitaIVA(cf,n) i.e. tutte le tuple di Contratto che corrispondono a prestazioni professonali riguardano soggetti che hanno partita IVA Antonella Poggi 45

47 Implementazione dei vincoli 1. PartitaIVA[cod fiscale] Contratto[cod fiscale] Vincolo di stato / Vincolo inter-tabella Vincolo di foreign key: è necessario fare un attenta analisi del dominio per definire come reagire agli inserimenti nella tabella PartitaIVA: una soluzione semplice ed in questo caso soddisfacente è quella di delegarne la gestione al costrutto FOREIGN KEY un inserimento va a buon fine se esiste un contratto relativo al soggetto gli aggiornamenti/cancellazioni nelle tabelle Contratto/PartitaIVA: e.g. utilizzando le opzioni ON DELETE CASCADE, ON UPDATE CASCADE Antonella Poggi 46

48 2. Contratto[tipo] {C,P} Vincolo di stato / Vincolo di tupla Implementato tramite un tipo enumerato (costrutto ENUM). Antonella Poggi 47

49 Creazione tabelle codice SQL create table CONTRATTO( cod_fiscale CHAR(16) primary key, tipo ENUM ( I, P ) NOT NULL, importo INT NOT NULL ); create table PARTITAIVA( cod_fiscale CHAR(16) primary key, numero varchar(20) NOT NULL UNIQUE ); alter table PARTITAIVA add constraint fk_partitaiva foreign key (cod_fiscale) references CONTRATTO(cod_fiscale) on delete cascade on update cascade; Antonella Poggi 48

50 Implementazione dei vincoli (Cont.) 3. Contratto[importo] Vincolo di stato / Vincolo di tupla 4. cf,t,i,n Contratto(cf,t,i), PartitaIVA(cf,n) t= P Vincolo di stato / Vincolo inter-tabella 5. cf,i Contratto(cf, P, i) n PartitaIVA(cf,n) Vincolo di stato / Vincolo inter-tabella I vincoli 3,4 e 5 non si possono implementare seguendo un approccio dichiarativo! Antonella Poggi 49

51 Quando un vincolo non può essere implementato in maniera dichiarativa, ovvero non si ha a disposizione alcun costrutto SQL che ne gestisca il soddisfacimento ad ogni inserimento/aggiornamento/cancellazione nelle tabelle coinvolte, è necessario fare un analisi accurata del da farsi in corrispondenza delle operazioni critiche, e definire apposite politiche di reazione. Vedremo più avanti come implementarli con un approccio procedurale... Antonella Poggi 50

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

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

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: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione

Dettagli

Gestione delle tabelle

Gestione delle tabelle Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza

Dettagli

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema

Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Approccio procedurale Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi

Dettagli

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici Il linguaggio SQL Il linguaggio SQL il linguaggio SQL è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose (California) è diventato

Dettagli

SQL - Tipi di dato Il linguaggio SQL

SQL - Tipi di dato Il linguaggio SQL SQL - Tipi di dato Il linguaggio SQL I tipi di dato in SQL:1999 si suddividono in tipi predefiniti tipi strutturati tipi user-defined ci concentreremo sui tipi predefiniti i tipi predefiniti sono suddivisi

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

Basi di Dati e Sistemi Informativi. Structured Query Language

Basi di Dati e Sistemi Informativi. Structured Query Language Basi di Dati e Sistemi Informativi Structured Query Language Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio

Dettagli

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011 Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse

Dettagli

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza Basi dati attive Triggers Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Una base di dati

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

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

Il linguaggio SQL: DDL di base

Il linguaggio SQL: DDL di base Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,

Dettagli

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio Coadiutore: Dott.ssa D. Nicotera PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 29/03/2014 SQL : Structured Query Language

Dettagli

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base 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,

Dettagli

11 - Progettazione Logica

11 - Progettazione Logica 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 11 - Progettazione Logica

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

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere capitolo 7 di Garcia- Molina et al. Vincoli e Triggers Un vincolo e una relazione tra dati che il DBMS deve assicurare. Esempio: vincoli

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Progetto Logos - Documentazione -

Progetto Logos - Documentazione - Progetto Logos - Documentazione - Marco Benvegnù Gianluca Marcante Simone Sanavio Roberto De Franceschi PM) Corso di Basi di Dati Corso di Laurea in Ingegneria Informatica A.A. 2002/2003 Progetto Logos

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione

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. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

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

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5 Domini elementari, Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Bit Valori booleani (vero/falso), singoli o in sequenza (la sequenza può essere di lunghezza variabile) Sintassi: bit

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 2012 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Lezione 3 Structured Query Language

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Basi di Dati prof. Letizia Tanca

Basi di Dati prof. Letizia Tanca Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

IL MODELLO RELAZIONALE

IL MODELLO RELAZIONALE IL MODELLO RELAZIONALE E i vincoli per le basi di dati relazionali 2 La storia Introdotto nel 1970 da E. F. Ted Codd http://en.wikipedia.org/wiki/edgar_f._codd (centro ricerche IBM) Codd, E.F. (1970).

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

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

Corso di Basi di Dati A.A. 2014/2015 Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2014/2015 Esercitazione su Progettazione Logica Tiziana Catarci, Andrea Marrella Ultimo aggiornamento :

Dettagli

SQL. Storia e standard

SQL. Storia e standard SQL Lorenzo Sarti 2009 Basi di Dati 1 Storia e standard Lorenzo Sarti 2009 Basi di Dati 2 SQL-2 È ricco e complesso e nessun sistema commerciale lo implementa in maniera completa Sono definiti 3 livelli

Dettagli

Dal modello concettuale al modello logico

Dal modello concettuale al modello logico Dal modello concettuale al modello logico Traduzione dal modello Entita - Associazione al modello Relazionale Ciclo di sviluppo di una base di dati (da parte dell utente) Analisi dello scenario Modello

Dettagli

Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica

Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica 1 Introduzione alla progettazione delle basi di dati v Progettazione concettuale (in questa fase si usa il modello

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 I lucidi del corso sono stati prodotti

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 Cos'è SQL? Linguaggio di riferimento per le basi di dati relazionali

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

OR true null false true true true true null true null null false true null false NOT

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

VIDES. Mariagrazia Rossi

VIDES. Mariagrazia Rossi VIDES Mariagrazia Rossi Sommario Descrizione della realtà... 2 Requisiti Funzionali... 2 Requisiti non Funzionali... 3 Dizionario dei termini... 3 Diagramma dei casi d uso... 4 CASI D USO... 7 Process

Dettagli

Esercitazione: Il DBMS MySQL

Esercitazione: Il DBMS MySQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI

PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI LEZIONE DEL 11/11/2008 di BASI DI DATI Prof. Bochicchio PROGETTAZIONE DI BASI DI DATI RELAZIONALI ATTRAVERSO LA TRADUZIONE DI SCHEMI ER ED EER A SCHEMI RELAZIONALI Nelle lezioni precedenti abbiamo accennato

Dettagli

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a un sito di affitto

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 21 LUGLIO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a pubblicazioni su riviste

Dettagli

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE I DATABASE o basi di dati possono essere definiti come una collezione di dati gestita dai DBMS. Tali basi di dati devono possedere determinati requisiti, definiti come specifiche, necessarie per il processo

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore DDL e progettazione Testi degli esercizi Esercizio 1 (Tema d esame del 20 settembre 2012 Si consideri il seguente schema di base di dati che vuole tenere

Dettagli

Linguaggio SQL. Structured Query Language

Linguaggio SQL. Structured Query Language Linguaggio SQL Structured Query Language Creato negli anni 70 presso IBM Inizialmente solo linguaggio di interrogazione Ora linguaggio di riferimento per DB relazionali Standardizzato grazie al lavoro

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti: Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

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

Data Base Relazionali

Data Base Relazionali Data Base Relazionali Modello Relazionale dei dati Basi di Dati Relazionali 1 Progettazione di DB METODOLOGIA DI PROGETTO IN TRE FASI Descrizione formalizzata e completa della realtà di interesse REALTA'

Dettagli

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 L azienda Plastic S.p.A, operante nel settore materie plastiche, ha deciso di dotarsi di un Sistema Informativo per la gestione del suo

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

Dettagli

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it

Basi di dati. Informatica. Prof. Pierpaolo Vittorini pierpaolo.vittorini@cc.univaq.it pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 18 marzo 2010 Un esempio di (semplice) database Quando si pensa ad un database, generalmente si immagina

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Basi di dati 1 Il Modello Relazionale Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il Modello Relazionale Basi di dati 2 Introduzione Il modello

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Linguaggio SQL Descriviamo la notazione usata nel seguito:

Linguaggio SQL Descriviamo la notazione usata nel seguito: Descriviamo la notazione usata nel seguito: i termini del linguaggio sono sottolineati; i termini variabili sono scritti in corsivo; le parentesi angolari (< >)permettono di isolare un termine della sintassi;

Dettagli

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Basi di dati. Gabriella Trucco gabriella.trucco@unimi.it

Basi di dati. Gabriella Trucco gabriella.trucco@unimi.it Basi di dati Gabriella Trucco gabriella.trucco@unimi.it Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di informazioni, sulla quale è possibile

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE MODELLO RELAZIONALE Definizione di relazione Schema e istanza Chiave Valori nulli Predicati e vincoli di integrità Vincolo di integrità referenziale cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Dettagli

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati Informatica B Introduzione alle Basi di Dati e ai DBMS Contenuti Introduzione a dati e basi dati DBMS Modello dei dati Informazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.),

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Indice Cognome Nome Matr.xxxxxx email Cognome Nome Mat. Yyyyyy email Argomento Pagina 1. Analisi dei requisiti 1 a. Requisiti espressi

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 28 settembre 2011 1 Progettazione

Dettagli

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale Unione Europea Regione Sicilia Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale ISTITUTO TECNICO INDUSTRIALE STATALE G. MARCONI EDILIZIA ELETTRONICA e

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 4 Giugno 2007 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

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

nuove voci tutti i giorni, e non si cancellano o aggiornano voci tutti i giorni), non si avverte l esigenza di avvalersi di un sistema informatico.

nuove voci tutti i giorni, e non si cancellano o aggiornano voci tutti i giorni), non si avverte l esigenza di avvalersi di un sistema informatico. LE BASI DI DATI Generalità Un sistema informatico serve ad elaborare informazioni. Esso è giustificato, anzi è necessario, quando le informazioni da memorizzare sono tante e le elaborazioni da eseguirvi

Dettagli

IL DAT A B A S E DI ALGE B R A N D O

IL DAT A B A S E DI ALGE B R A N D O IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 davide.valeriani@studenti.unipr.it Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli