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

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

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

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

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

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

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

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

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

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

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

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

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

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. 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

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

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

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

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

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

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

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

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

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

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

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

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

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

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

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I

Dettagli

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza

Dettagli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

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

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

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

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

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

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

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

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

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

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

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Si formulino le seguenti interrogazioni tramite il linguaggio SQL: Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 15.01.2009 - Docente: Massimo Coppola Modello Relazionale e SQL Si consideri la seguente base di dati relativa alla redazione di

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

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

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

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio

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

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

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

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

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

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

Progettazione Logica. Progettazione Logica

Progettazione Logica. Progettazione Logica Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Tabelle per ogni concetto Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it Passaggio al modello logico (1)

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

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

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

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota Attributi e domini Assumiamo un universo infinito numerabile U = {A 0, A 1, A 2...} di attributi. Denotiamo gli attributi con A, B, C, B 1, C 1... e gli insiemi di attributi con X, Y, Z, X 1,... per brevità

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

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo. Esame di Stato Istituto Tecnico Industriale Proposta di soluzione della seconda prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico: 2003-2004 1. Schema concettuale della base di dati Lo schema

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

Secondo Compitino di Basi di Dati

Secondo Compitino di Basi di Dati Secondo Compitino di Basi di Dati 10 Giugno 2004 NOME: COGNOME: MATRICOLA: Esercizio Punti previsti 1 18 2 12 3 3 Totale 33 Punti assegnati Esercizio 1 (Punti 18) Si vuole realizzare un applicazione per

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini Dipartimento di Scienze Ambientali, Informatica e Statistica Università Ca Foscari Venezia La base di dati del

Dettagli

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze Decomposizione senza perdita Data una relazione r su X, se X 1 e X 2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X 1 e X 2 è

Dettagli

Artifact Centric Business Processes (I)

Artifact Centric Business Processes (I) Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di

Dettagli

Elena Baralis 2013 Politecnico di Torino 1

Elena Baralis 2013 Politecnico di Torino 1 Modello relazionale Docente M2170 Fondamenti di informatica Verdi M4880 Sistemi di elaborazione Bianchi F0410 Basi di dati Neri Docenti Nome Dipartimento Telefono Verdi Informatica 123456 Bianchi Elettronica

Dettagli

database: modello entityrelationship

database: modello entityrelationship Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 database: modello entityrelationship Prof.Valle D.ssaFolgieri Lez7 25.10.07 Trattamento dati. Database: modello entity-relationship 1 Fasi

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

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

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

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

I database. Cosa sono e a cosa servono i Database

I database. Cosa sono e a cosa servono i Database I database Estratto dal Modulo 1 - I database Prof. Piero GALLO 1 Cosa sono e a cosa servono i Database Un database(o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di

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

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Capitolo 7. Esercizio 7.1

Capitolo 7. Esercizio 7.1 Capitolo 7 Esercizio 7.1 Dato lo schema relazionale: IMPIEGATO (Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager) Definire le seguenti regole attive in Oracle e DB2: 1. una regola, che quando il

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

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

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

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

SQL. Alcune note sulla definizione dei dati

SQL. Alcune note sulla definizione dei dati SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)

Dettagli