Sistemi Informativi e Basi di Dati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi Informativi e Basi di Dati"

Transcript

1 Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione (7 lucidi) Sistemi ormativi e Basi di Dati Sistema ormativo Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali e' essenziale per il funzionamento dell'azienda e' fortemente integrato con il sistema organizzativo comprende risorse umane Sistema ormatico Insieme dei sistemi hardware e software presenti in una azienda assicura la generazione, l'elaborazione, la circolazione e la memorizzazione delle informazioni su supporti informatici Tipici esempi di sistemi informativi applicazioni gestionali classiche gestione ordini, personale, magazzino applicazioni finanziarie banche, borsa, carte di credito sistemi di prenotazione treni, aerei, alberghi, autonoleggi nuove applicazioni gestione dei progetti, del territorio commercio elettronico Dato : Dal dato all informazione unita' elementare (grezza) di informazione ormazione : elaborazione dei dati per rispondere a esigenze specifiche dell'impresa

2 Compiti della tecnologia dell informazione (visione centrata sui dati) Immissione, Memorizzazione, Cancellazione dei dati Accesso, Elaborazione,Trasferimento : dai dati all'informazione Presentazione, Visualizzazione dell'informazione Dai dati ai processi PROCESSO : procedura aziendale che risponde ad un particolare compito applicativo utenti processi data base Come analizzare i sistemi informativi? a partendo dai dati b partendo dai processi CRITERIO PRINCIPALE: STABILITA DAI DATI! Architettura che ne consegue utenti processi database management system data base Database Management System (DBMS) Confronto con architetture con/senza DBMS sistemi software dedicati alla gestione dei dati esistono sul mercato alcune centinaia di prodotti diversi - per uso personale - per server in una rete - per mainframe software applicativo sistema operativo file (distinti) software applicativo DBMS sistema operativo database (unico) principale differenza: gestione dei dati unitaria e a piu' alto livello (tramite linguaggi specializzati)

3 Principali caratteristiche condivisione dei dati - assenza di replicazione nei file - concorrenza qualita' dei dati - vincoli di integrita' efficienza - caricamento, query, sort controllo dell'accesso - privatezza robustezza Come si usa un DBMS? a definendo la struttura generale dei dati b definendo le specifiche operazioni sui dati schema STRUTTURA DEI DATI SUI CONTI CORRENTI conto corrente di Giorgio Rossi conto corrente di Paolo Bianchi. istanza Architettura a livelli degli schemi Architettura a livelli degli schemi Schema esterno : descrizione per specifiche applicazioni Schema logico : descrizione globale applicazioni schema esterno applicazioni schema esterno schema logico applicazioni schema esterno Schema interno : descrizione dei meccanismi di gestione dei dati schema fisico Data base Perche' a tre livelli? Indipendenza logica : capacita' di offrire una visione dei dati differente ad utenti differenti Indipendenza fisica: capacita' di astrarre completamente dai meccanismi di gestione dei dati I linguaggi del DBMS DATA DEFINITION LANGUAGE (DDL) es: CREATE, DROP, ALTER DATA MANIPULATION LANGUAGE (DML) es: SELECT, INSERT, UPDATE, DELETE

4 Gli utenti del DBMS Database administrator : programma il DDL Programmatori applicativi : programmano le applicazioni, usano il DML Utenti casuali : eseguono versioni "amichevoli" del DML (query language, interfacce grafiche) Utenti finali ("terminalisti"): eseguono le applicazioni utenti casuali Gli utenti del DBMS utenti finali applicazioni DBMS data base programmatori applicativi database administrator database administrator processore DDL dizionario dati I moduli del DBMS programmatore applicativo processore DML utente casuale piano di esecuzione query supporto esecuzione dati utente finale applicazione DBMS utenti processo client DBMS in un contesto di rete middleware database management system data base utenti processo client database server rete Strumenti per realizzare applicazioni AMBIENTE CASE (Computer-Aided Software Engineering) : aiuta a progettare schemi e applicazioni APPLICATION GENERATOR (IV generation language) : aiutano a costruire semplici applicazioni FORM MANAGER : aiutano a descrivere l'interazione con il database (FORM = MODULO) REPORT GENERATOR : aiutano a produrre output - cartacei o su terminale - a caratteri o grafici Struttura del corso Parte I: Basi di dati relazionali Parte II: Progetto delle basi di dati Parte III: Descrizione dei sistemi informativi Parte IV: Esperienze

5 Obiettivi del corso Descrizione architetturale - delle basi di dati - dei sistemi informatici - dei sistemi informativi Obiettivi del corso () Insegnare due abilita di base (astratte) - progettare basi di dati - interrogare basi di dati Per sapersi orientare - nel contesto tecnologico - negli standard industriali Il contesto tecnologico sistemi distribuiti su rete - facilita' di accesso, interoperabilita sistemi multiprocessore paralleli - scalabilita' delle prestazioni nuove tecnologie per la gestione dei dati - data warehouse, data mining sistemi interconnessi da Internet - World-Wide-Web: la miglior interfaccia per accedere facilmente alle informazioni Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione (9 lucidi) Il modello relazionale dei dati Cronologia dei modelli per la rappresentazione dei dati Modello gerarchico (anni 60) Modello reticolare (anni 70) Modello relazionale (anni 80) Modello a oggetti (anni 90)

6 Cronologia del modello relazionale Definizione informale Inventato da T. Codd, 970 (IBM Research di Santa Teresa, Cal) Primi progetti: SYSTEM R (IBM), Ingres (Berkeley Un.) Principali scoperte tecnologiche: Primi sistemi commerciali: inizio anni 80 (Oracle, IBM-SQL DS e DB, Ingres, ormix, Sybase) studente NOME Carlo Giovanni Paola Antonio colonna CITTA Bologna Milano Torino Roma C-DIP Log Log schema istanza riga Successo commerciale: dal 985. Definizione formale Dominio D: un qualunque insieme di valori Prodotto cartesiano su n domini D x D x D n (non necessariamente distinti): insieme delle n-ple (tuple) < d, d,... d n >, con d i D i, i n Relazione R su D x D x... D n : un qualunque sottoinsieme di D x D x... D n. D = (a,b) D = (,,) Esempio D x D = ( <a,>, <b,>, <a,>, <b,>, <a,>, <b,> ) R = ( <a,>, <b,> ) R = ( <c,>, <b,>, <a,> ) R = ( ) R4 = ( <a,>, <b,>, <a,>, <b,>, <a,>, <b,> ) Proprieta' Grado della relazione: numero di domini (n) Cardinalita' della relazione: numero di tuple Attributo: nome dato al dominio in una relazione [I nomi di attributo in una relazione devono essere tutti distinti fra loro] Schema (di una relazione): tabella (attributo, attributon) [I nomi delle relazioni in uno schema devono essere tutti distinti fra loro] R(A,B) A a b B Proprieta' R(C,D) C c b a D

7 Confronto della terminologia Esempio : gestione degli esami universitari DEFINIZIONE FORMALE DEFINIZIONE INFORMALE Una differenza significativa studente relazione attributo tupla, n-pla dominio cardinalita' grado tabella colonna riga tipo di dato numero di righe numero di colonne DEFINIZIONE FORMALE assenza di duplicati DEFINIZIONE INFORMALE possibili duplicati NOME Carlo 45 Paola 70 Antonio CITTA Bologna Torino Roma C-DIP Log Esempio : gestione degli esami universitari Esempio : gestione degli esami universitari corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE esame 70 COD- CORSO DATA VOTO Esempio : gestione degli esami universitari studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE Interrogazioni quali professori hanno esaminato Carlo? studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO DOCENTE matematica Barozzi informatica Meo

8 Interrogazioni quali studenti hanno preso 0 in matematica? studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE Esempio : gestione personale impiegato NOME Piero Giorgio DATA-ASS Giovanni assegnamento NUM-PROG PERC SALARIO M,5 M M -MGR null progetto NUM-PROG TITOLO TIPO 4 Idea Wide Esprit Esprit Interrogazioni chi e' il manager di Piero? Interrogazioni in quali tipi di progetti lavora Giovanni? impiegato impiegato NOME DATA-ASS SALARIO -MGR NOME DATA-ASS SALARIO -MGR Piero --95 M Piero --95 M Giorgio --97,5 M null Giorgio --97,5 M null Giovanni M Giovanni M assegnamento NUM-PROG 4 PERC progetto NUM-PROG TITOLO Idea 4 Wide TIPO Esprit Esprit assegnamento NUM-PROG 4 PERC progetto NUM-PROG TITOLO Idea 4 Wide TIPO Esprit Esprit Esempio : gestione ordini cliente COD-CLI INDIRIZZO P-IVA ordine COD-ORD COD-CLI DATA IMPORTO dettaglio COD-ORD COD-PROD QTA Interrogazioni quali ordini ha emesso Paolo? quanti ordini ha emesso Paolo? quante candele sono state ordinate il 5/7/9? calcolare per ciascun cliente la somma degli importi di tutti gli ordini estrarre l'ordine di importo piu' alto prodotto COD-PROD NOME PREZZO

9 Riflessioni Come arricchire lo schema? a differenza fra schema e istanza b due attivita' assai differenti: - progetto dello schema - gestione dell'istanza c passaggio dai dati all'informazione (Query language) VINCOLI DI INTEGRITA': escludono alcune istanze in quanto non rappresentano correttamente il mondo applicativo - CHIAVI - VINCOLI SUI VALORI NULLI (POI) - INTEGRITA' REFERENZIALE (POI) - VINCOLI GENERICI (POI) Nozione di chiave Sottoinsieme degli attributi dello schema che ha la proprieta' di unicita' e minimalita' unicita': non esistono due tuple con chiave uguale minimalita': sottraendo un qualunque attributo alla chiave si perde la proprieta' di unicita' Chiavi nell'esempio : gestione degli esami universitari studente NOME CITTA C-DIP esame COD-CORSO DATA VOTO corso COD-CORSO TITOLO DOCENTE impiegato assegnamento Chiavi nell'esempio : gestione personale NOME DATA-ASS SALARIO -MIL NUM-PROG PERC progetto NUM-PROG NOME PREZZO Chiavi nell'esempio : gestione ordini cliente COD-CLI INDIRIZZO P-IVA ordine COD-ORD COD-CLI DATA IMPORTO dettaglio COD-ORD COD-PROD QTA prodotto COD-PROD NOME PREZZO

10 Con molteplici chiavi: una e' definita CHIAVE PRIMARIA le rimanenti chiavi sono SECONDARIE CLIENTE (COD-CLIENTE,INDIRIZZO,P-IVA) Chiave primaria: COD-CLIENTE Chiave secondaria: P-IVA Sommario: Definizione formale e informale di relazione (o tabella) Descrizione informale di varie basi di dati relazionali e delle interrogazioni esprimibili su di esse Definizione e esemplificazione della nozione di chiave Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione (4 lucidi) Linguaggi di interrogazione a linguaggi formali Classificazione Algebra relazionale Calcolo relazionale Programmazione logica b linguaggi programmativi Algebra relazionale definita da Codd (70) molto utile per imparare a formulare query insieme minimo di 5 operazioni che danno l'intero potere espressivo del linguaggio SQL: Structured Query Language QBE: Query By Example

11 Una visione d'insieme Esempio : gestione degli esami universitari operazioni unarie binarie selezione proiezione unione differenza join studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE Selezione Sintassi del predicato di selezione SELECT [NOME='Paola'] STUDENTE espressione booleana di predicati semplici e' una tabella (priva di nome) con schema : lo stesso schema di STUDENTE istanza : le tuple di STUDENTE che soddisfano il predicato di selezione 45 NOME Paola CITTA Torino C-DIP operazioni booleane : AND (P AND P) OR (P OR P) NOT (P) predicati semplici : TRUE, FALSE termine comparatore termine comparatore : =,!=, <, <=, >, >= termine : costante, attributo espressione aritmetica di costanti e attributi Esempio di selezione SELECT [(CITTA'='Torino') OR ((CITTA'='Roma') AND NOT (C-DIP='log'))] STUDENTE NOME Carlo Paola Antonio CITTA Bologna Torino Roma C-DIP Log NOME Carlo Paola Antonio Proiezione PROJECT [NOME,C-DIP] STUDENTE e' una tabella (priva di nome) con schema : gli attributi NOME e C-DIP istanza : la restrizione delle tuple sugli attributi NOME e C-DIP C-DIP Log

12 Proiezione e duplicati nel modello formale la proiezione elimina i duplicati nel modello informale (e nei sistemi) la eliminazione dei duplicati va richiesta esplicitamente PROJECT [C-DIP] STUDENTE C-DIP Log Assegnamento serve per dare un nome al risultato di una espressione algebrica non fa parte delle operazioni algebriche INFORMATICI = SELECT [C-DIP=''] STUDENTI TORINESI = SELECT [CITTA'='Torino'] STUDENTI Unione TABELLA UNION TABELLA si puo' fare se TABELLA e TABELLA sono compatibili con lo stesso grado oppure (nei sistemi) con domini ordinatamente dello stesso tipo 45 NOME Carlo Paola CITTA Unione INFORMATICI UNION TORINESI e' una tabella (priva di nome) con schema : lo schema di INFORMATICI istanza : la unione delle tuple di INFORMATICI e TORINESI Bologna Torino C-DIP Differenza TABELLA MINUS TABELLA si puo' fare se TABELLA e TABELLA sono compatibili Differenza INFORMATICI MINUS TORINESI e' una tabella (priva di nome) con schema : lo schema di INFORMATICI istanza : la differenza delle tuple di INFORMATICI e TORINESI NOME Carlo CITTA Bologna C-DIP attenzione: non e' commutativa

13 Join STUDENTE JOIN [=] ESAME e' una tabella (priva di nome) con schema : la concatenazione degli schemi di STUDENTE e ESAME istanza: le tuple ottenute concatenando quelle tuple di STUDENTE e di ESAME che soddisfano il predicato STUDENTE. 70 NOME Carlo Carlo Antonio CITTA Bologna Bologna Roma C-DIP Log ESAME. 70 COD- CORSO DATA VOTO Sintassi del predicato di join espressione congiuntiva di predicati semplici: ATTR comp ATTR ove ATTR appartiene a TAB ATTR appartiene a TAB comp: =,!=, <, <=, >, >= attributi omonimi sono resi non ambigui usando la notazione puntata : ESAME., STUDENTE. Equi-join e Join naturale Join naturale di tre tabelle EQUI-JOIN : soli confronti di uguaglianza JOIN NATURALE : equi-join di tutti gli attributi omonimi STUDENTE JOIN ESAME 70 NOME Carlo Carlo Antonio CITTA Bologna Bologna Roma C-DIP Log COD- CORSO DATA VOTO STUDENTE JOIN ESAME JOIN CORSO NOME Carlo Carlo CITTA Bologna Bologna Antonio Roma C-DIP Log COD- CORSO DATA VOTO TITOLO DOCENTE matem barozzi infor infor meo meo Espressioni algebriche Concatenazione di piu' operazioni algebriche Esprimono interrogazioni in modo formale Consentono di estrarre informazioni dai dati Selezione e proiezione NOME Carlo Paola Antonio CITTA Bologna Torino Roma C-DIP quali studenti sono iscritti al diploma di informatica? PROJECT [NOME] NOME SELECT [C-DIP=''] Carlo STUDENTE Log Paola

14 Selezione e proiezione NOME Carlo Paola Antonio CITTA Bologna Torino Roma C-DIP Log quali studenti di Logistica non sono di Milano? PROJECT [NOME] SELECT [C-DIP='Log' AND CITTA!= 'Milano'] STUDENTE NOME Antonio Esempio : gestione degli esami universitari studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE Selezione, proiezione e join quali studenti hanno preso 0 in matematica? NOME 70 Carlo Carlo CITTA Bologna Bologna Antonio Roma C-DIP Log COD- CORSO DATA VOTO TITOLO DOCENTE matem barozzi infor infor meo meo Selezione, proiezione e join quali studenti hanno preso 0 in matematica? PROJECT [NOME] SELECT [VOTO=0 AND TITOLO='matematica'] (STUDENTE JOIN ESAME JOIN CORSO) NOME Carlo Equivalenza di espressioni quali studenti hanno preso 0 in matematica? PROJECT [NOME] SELECT [VOTO=0 AND TITOLO='matematica'] (STUDENTE JOIN ESAME JOIN CORSO) PROJECT [NOME] ( STUDENTE JOIN (SELECT [VOTO=0] ESAME) JOIN (SELECT [TITOLO='matematica'] CORSO)) Selezione, proiezione e join quali professori hanno esaminato Antonio? PROJECT [DOCENTE] SELECT [NOME = 'Antonio'] (STUDENTE JOIN ESAME JOIN CORSO) DOCENTE Meo

15 Equivalenza di espressioni PROJECT [DOCENTE] SELECT [NOME = 'Antonio'] (STUDENTE JOIN ESAME JOIN CORSO) PROJECT [DOCENTE] (CORSO JOIN (ESAME JOIN SELECT [NOME = 'Antonio'] STUDENTE)) Espressioni con unione e differenza estrarre la matricola degli studenti romani oppure degli studenti che hanno sostenuto un esame il giorno ( PROJECT [] SELECT [CITTA'='Roma'] STUDENTE) UNION ( PROJECT [] (STUDENTE JOIN SELECT [DATA=8--98] ESAME)) 70 UNION 70 Espressioni con unione e differenza estrarre la matricola degli studenti che hanno preso almeno un voto superiore a 8 e non sono mai scesi sotto il 5 (PROJECT [] SELECT [VOTO>=8] ESAME) MINUS (PROJECT [] SELECT [VOTO<5] ESAME) MINUS 70 Esercizi Riprendere le basi di dati per la gestione del personale e degli ordini e esprimere in forma algebrica le interrogazioni : - in quali tipi di progetti lavora Giovanni? - chi e' il manager di Piero? - quali ordini ha emesso Paolo? - quali prodotti sono ordinati da un cliente di Milano? - quali prodotti hanno prezzo inferiore a L e non sono presenti in nessun ordine? Esempio : gestione personale impiegato NOME Piero Giorgio DATA-ASS Giovanni assegnamento NUM-PROG PERC SALARIO M,5 M M -MGR null progetto NUM-PROG TITOLO TIPO 4 Idea Wide Esprit Esprit Esempio : gestione ordini cliente COD-CLI INDIRIZZO P-IVA ordine COD-ORD COD-CLI DATA IMPORTO dettaglio COD-ORD COD-PROD QTA prodotto COD-PROD NOME PREZZO

16 Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 4 (9 lucidi) Dichiarazione degli schemi in SQL Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali Standardizzato da ANSI e ISO Composizione di SQL Data Definition Language (DDL) definizione di: domini, tabelle, indici autorizzazioni, viste, vincoli, procedure, trigger Data Manipulation Language (DML) linguaggio di query, linguaggio di modifica, comandi transazionali Standardizzazione di SQL Progressione dello standard per estensioni quasi-compatibili - prima versione nel 986 (SQL-) - modifica alla prima versione nel 989 (SQL-89) - seconda versione nel 99 (SQL-, SQL-9) - terza versione attesa per il 998 (SQL-) In SQL-: - entry SQL (piu' o meno equivalente a SQL-89) - intermediate SQL - full SQL Potere espressivo di standard e sistemi commerciali un tipico sistema commerciale SQL- SQL-89 SQL- SQL-

17 Domini elementari in SQL- Altri domini elementari in SQL- a stringhe CHAR (N) VARCHAR (N) b numerici esatti NUMERIC (N) DECIMAL (N) c numerici approssimati FLOAT(N) N=, 0.7E04 = 700 b domini speciali DATE YYYYMMDD BIT (N) VARBIT (N) INTEGER SMALLINT REAL DOUBLE PRECISION TIME(N) HHMMSS.NNNN TIMESTAMP INTERVAL Il valore "null" null e' un valore polimorfico (che appartiene a tutti i domini) col significato di valore non noto il valore esiste in realta' ma e' ignoto al database (es.: data di nascita) il valore e' inapplicabile (es.: numero patente per minorenni) Vincoli di integrita' di dominio NOT NULL esclude il valore nullo PRIMARY KEY chiave primaria (implica NOT NULL) UNIQUE chiave secondaria (non implica NOT NULL) CHECK predicato che deve essere soddisfatto (POI) Definizione dei domini applicativi CREATE DOMAIN PrezzoQuotidiani AS INTEGER DEFAULT 500 NOT NULL CREATE DOMAIN OreLezione AS SMALLINT DEFAULT 40 Definizione delle tabelle CREATE TABLE STUDENTE ( CHAR(6) PRIMARY KEY NOME VARCHAR (0) NOT NULL CITTA' VARCHAR (0) C-DIP CHAR () )

18 Definizione delle tabelle () CREATE TABLE ESAME ( CHAR(6) COD-CORSO CHAR(6) DATA DATE NOT NULL VOTO SMALLINT NOT NULL PRIMARY KEY(,COD-CORSO) ) CREATE TABLE CORSO ( COD-CORSO CHAR(6) PRIMARY KEY TITOLO VARCHAR(0) NOT NULL DOCENTE VARCHAR(0) ) Integrita' referenziale Esprime un legame gerarchico (padrefiglio) fra tabelle Alcuni attributi della tabella figlio sono definiti FOREIGN KEY I valori contenuti nella FOREIGN KEY devono essere sempre presenti nella tabella padre Esempio: studente - esame Il problema degli orfani studente 45 studente 45 orfani: tuple che restano prive di padre a causa di cancellazioni e modifiche della tabella padre 70 esame 70 esame Gestione degli orfani: cancellazione Cosa succede degli esami se si cancellano gli studenti? a CASCADE (si cancellano anche gli esami) b SET NULL c SET DEFAULT d NO ACTION Gestione degli orfani: modifica Cose succede degli esami se si modifica la matricola nella tabella STUDENTE? a CASCADE (si modifica la FOREIGN KEY anche nei corrispondenti esami) b SET NULL c SET DEFAULT d NO ACTION

19 Definizione : nella tabella figlio CREATE TABLE ESAME ( FOREIGN KEY REFERENCES STUDENTI ON DELETE CASCADE ON UPDATE CASCADE ) E' lecito essere figli di piu' padri CREATE TABLE ESAME (... PRIMARY KEY(,COD-CORSO) FOREIGN KEY REFERENCES STUDENTI ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY COD-CORSO REFERENCES CORSO ON DELETE NO ACTION ON UPDATE NO ACTION ) Una istanza scorretta Una istanza corretta NOME CITTA C-DIP viola la chiave viola il NULL viola la integrita' referenziale COD- CORSO DATA NULL esame VOTO NULL NOME CITTA C-DIP 70 COD- CORSO DATA esame VOTO Esempio : gestione ordini cliente COD-CLI INDIRIZZO P-IVA ordine COD-ORD COD-CLI DATA IMPORTO Definizione della tabella CLIENTE CREATE TABLE CLIENTE ( COD-CLI CHAR(6) PRIMARY KEY INDIRIZZO CHAR(50) P-IVA CHAR() UNIQUE ) dettaglio COD-ORD COD-PROD QTA prodotto COD-PROD NOME PREZZO

20 Definizione della tabella ORDINE CREATE TABLE ORDINE ( COD-ORD CHAR(6) PRIMARY KEY COD-CLI CHAR(6) NOT NULL DEFAULT='999999' DATA DATE IMPORTO INTEGER FOREIGN KEY COD-CLI REFERENCES ORDINE ON DELETE SET DEFAULT ON UPDATE SET DEFAULT) Definizione della tabella DETTAGLIO CREATE TABLE DETTAGLIO ( COD-ORD CHAR(6) COD-PROD CHAR(6) QTA SMALLINT PRIMARY KEY(COD-ORD,COD-PROD) FOREIGN KEY COD-ORD REFERENCES ORDINE ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY COD-PROD REFERENCES PRODOTTO ON DELETE NO ACTION ON UPDATE NO ACTION) Definizione della tabella PRODOTTO CREATE TABLE PRODOTTO ( COD-PROD CHAR(6) PRIMARY KEY NOME CHAR(0) PREZZO SMALLINT ) Esercizio Riprendere le basi di dati per la gestione del personale (seconda lezione) ed esprimere in SQL la dichiarazione dello schema. Esempio : gestione personale impiegato NOME Piero Giorgio DATA-ASS Giovanni assegnamento NUM-PROG PERC SALARIO M,5 M M -MGR null progetto NUM-PROG TITOLO Idea 4 Wide TIPO Esprit Esprit Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 5 ( lucidi) 4 00

21 Dichiarativita' di SQL Interrogazioni in SQL In SQL l'utente specifica QUALE informazione e' di suo interesse ma non COME estrarla dai dati il sistema costruisce una strategia di accesso (QUERY OPTIMIZATION) e l'aspetto piu' qualificante delle basi di dati relazionali Struttura di SQL Basata sulla composizione di blocchi (SELECT FROM WHERE) Ogni blocco ha il potere espressivo di una qualunque combinazione di selezioni, proiezioni e join Esempio : gestione degli esami universitari studente esame 70 NOME Carlo Paola Antonio COD- CORSO CITTA Bologna Torino Roma DATA C-DIP Log VOTO corso COD- CORSO TITOLO matematica Barozzi informatica Meo DOCENTE Interrogazione semplice Interrogazione semplice SELECT * FROM STUDENTE NOME Carlo Paola Antonio CITTA Bologna Torino Roma C-DIP Log STUDENTE NOME CITTA C-DIP SELECT NOME FROM STUDENTE WHERE C-DIP = 'Log' INTERPRETAZIONE ALGEBRICA (a meno dei duplicati) PROJECT [NOME] SELECT [C-DIP='Log'] STUDENTE

22 Sintassi nella clausola SELECT SELECT * SELECT NOME, CITTA' SELECT DISTINCT CITTA' SELECT CITTA' AS LUOGO-DI-RESIDENZA SELECT REDDITO-CATASTALE * 0.05 AS TASSA-ICI SELECT SUM(SALARIO) Sintassi della clausola FROM FROM STUDENTE FROM STUDENTE AS X FROM STUDENTE, ESAME FROM STUDENTE JOIN ESAME ON STUDENTE.=ESAME. Sintassi della clausola WHERE Duplicati Espressione Booleana di predicati semplici (come in algebra) Alcuni predicati aggiuntivi: BETWEEN: DATA BETWEEN --90 AND --99 LIKE: C-DIP LIKE 'log%' TARGA LIKE 'MI_777_8%' SELECT DISTINCT C-DIP FROM STUDENTE C-DIP Log SELECT C-DIP FROM STUDENTE C-DIP Log Interrogazioni e valori nulli Predicati e valori nulli SELECT * FROM STUDENTE WHERE CITTA' IS [NOT] NULL attenzione : se CITTA' ha valore NULL (CITTA' = 'Milano') ha valore 'UNKNOWN' logica a tre valori (V,F,U) V AND U = U V OR U = V F AND U = F F OR U = U NOT U = U P = (CITTA' IS NOT NULL) AND (C-DIP LIKE '%') CITTA Milano Milano NULL Milano C-DIP NULL Log P V U F F TUPLA SELEZ si no no no

23 Interrogazione semplice con due tabelle Estrarre il nome degli studenti di Logistica che hanno preso almeno un 0. SELECT NOME FROM STUDENTE, ESAME WHERE STUDENTE. = ESAME. AND C-DIP LIKE 'Lo% AND VOTO = 0 NOME Carlo Interpretazione algebrica (a meno di duplicati e includendo nell'algebra il match parziale) SELECT NOME FROM STUDENTE, ESAME WHERE STUDENTE. = ESAME. AND C-DIP LIKE 'Lo% AND VOTO = 0 PROJECT [NOME] SELECT [(C-DIP LIKE 'Lo%') AND (VOTO=0)] (STUDENTE JOIN ESAME) Join di due tabelle (variante sintattica) SELECT NOME FROM STUDENTE, ESAME WHERE STUDENTE. = ESAME. AND C-DIP LIKE 'Lo% AND VOTO = 0 SELECT NOME FROM STUDENTE JOIN ESAME ON STUDENTE. = ESAME. WHERE C-DIP LIKE 'Lo%' AND VOTO > 0 Interrogazione semplice con tre tabelle Estrarre il nome degli studenti di Matematica che hanno preso almeno un 0. SELECT NOME FROM STUDENTE, ESAME, CORSO WHERE STUDENTE. = ESAME. AND CORSO.COD-CORSO = ESAME.COD-CORSO AND TITOLO LIKE 'mat%' AND VOTO = 0 PROJECT [NOME] SELECT [(TITOLO LIKE 'mat%') AND (VOTO=0)] (STUDENTE JOIN ESAME JOIN CORSO) Interrogazione semplice con variabili relazionali CHI SONO I DIPENDENTI DI GIORGIO? impiegato NOME Piero Giorgio DATA-ASS Giovanni SALARIO M,5 M M -MGR null Chi sono i dipendenti di Giorgio? SELECT X.NOME FROM IMPIEGATO AS X, IMPIEGATO AS Y WHERE X.-MGR = Y. AND Y.NOME = Giorgio X.NOME Piero Giovanni X.-MGR Y. Y.NOME Giorgio Giorgio

24 Blocchi SQL per la modifica tre operazioni elementari inserzione cancellazione modifica Inserzione INSERT INTO STUDENTE VALUES ('456878', 'Giorgio Rossi', 'Bologna', 'Logistica e Produzione') INSERT INTO BOLOGNESI (SELECT * FROM STUDENTE WHERE CITTA' = 'Bologna') Cancellazione Modifica DELETE FROM STUDENTE WHERE = '678678' UPDATE ESAME SET VOTO = 0 WHERE DATA = UPDATE ESAME SET VOTO = VOTO + WHERE = '787989' Esercizi Riprendere le basi di dati per la gestione del personale e esprimere in SQL le interrogazioni seguenti: - in quali tipi di progetti lavora Giovanni? - chi e' il manager di Piero? - in quali progetti lavora Piero? - quali impiegati lavorano nel progetto IDEA? - quali impiegati lavorano al 00% del loro tempo nel progetto WIDE? Esercizi Riprendere le basi di dati per la gestione del personale e esprimere in SQL le modifiche seguenti: - inserire la tupla <4,Luca,--97,M,> - modificare il salario di Piero assegnandolo a 4M - aumentare il salario di Giorgio del 5% - cancellare i dati di Giovanni

25 Esempio : gestione personale impiegato NOME Piero Giorgio DATA-ASS Giovanni assegnamento NUM-PROG PERC SALARIO M,5 M M -MGR null progetto NUM-PROG TITOLO TIPO 4 Idea Wide Esprit Esprit Esercizio in quali tipi di progetti lavora Giovanni? PROJECT [TIPO] SELECT [NOME= Giovanni'] (IMPIEGATO JOIN ASSEGNAMENTO JOIN PROGETTO) TIPO Esprit Esercizio in quali tipi di progetti lavora Giovanni? SELECT TIPO FROM IMPIEGATO AS I, ASSEGNAMENTO AS A, PROGETTO AS P WHERE I.=A. AND A.NUM-PROG=P.NUM-PROG AND NOME='Giovanni' Esercizio chi e' il manager di Piero? SELECT Y.NOME FROM IMPIEGATO AS X, IMPIEGATO AS Y WHERE X.-MGR=Y. AND X.NOME='Piero' Esercizio modificare il salario di Piero assegnandolo a 4M UPDATE IMPIEGATO SET SALARIO = 4M WHERE NOME='Piero' Esercizio 4 aumentare il salario di Giorgio del 5% UPDATE IMPIEGATO SET SALARIO = SALARIO *.05 WHERE NOME='Giorgio'

26 Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 6 (9 lucidi) Interrogazioni complesse Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazioni Query con raggruppamento Query binarie Query nidificate Esempio : gestione ordini cliente COD-CLI INDIRIZZO P-IVA ordine COD-ORD COD-CLI DATA IMPORTO dettaglio COD-ORD COD-PROD QTA prodotto COD-PROD NOME PREZZO ordine COD-ORD Istanza di ordine COD-CLI 4 DATA IMPORTO Query con ordinamento SELECT * FROM ORDINE WHERE IMPORTO > ORDER BY DATA COD-ORD COD-CLI DATA IMPORTO

27 Order by COD-CLI Order by COD-CLI asc, DATA desc COD-ORD COD-CLI DATA IMPORTO COD-ORD COD-CLI DATA IMPORTO Query aggregate Utilizzano le funzioni aggregate: SUM sommatoria AVG media MIN minimo MAX massimo COUNT cardinalita' Query con massimo Selezionare l importo massimo degli ordini. SELECT MAX(IMPORTO) AS MAX-IMP FROM ORDINE MAX-IMP Query con sommatoria Selezionare la somma degli importi degli ordini relativi al cliente numero. SELECT SUM(IMPORTO) AS SOMMA-IMP FROM ORDINE WHERE COD-CLIENTE = SOMMA-IMP Query con raggruppamento si aggiungono le clausole GROUP-BY (raggruppamento) HAVING (selezione dei gruppi) SELECT.. FROM.. WHERE.. GROUP BY.. HAVING..

28 Query con raggruppamento Passo : Valutazione WHERE Selezionare la somma degli importi degli ordini successivi al per quei clienti che hanno emesso almeno ordini. COD-ORD COD-CLI 4 DATA IMPORTO SELECT COD-CLI, SUM (IMPORTO) FROM ORDINE WHERE DATA > GROUP BY COD-CLI HAVING COUNT (IMPORTO) >= Passo : Raggruppamento Passo : Calcolo degli aggregati si valuta la clausola GROUP-BY COD-ORD COD-CLI 4 DATA IMPORTO si calcolano SUM (IMPORTO) e COUNT (IMPORTO) per ciascun gruppo COD-CLI 4 SUM (IMPORTO) COUNT (IMPORTO) Passo 4 : Estrazione dei gruppi Passo 5 : Produzione del risultato si valuta il predicato COUNT (IMPORTO) >= COD-CLI 4 SUM (IMPORTO) COUNT (IMPORTO) COD-CLI SUM (IMPORTO)

29 Query con raggruppamento e ordinamento E possibile ordinare il risultato delle query con raggruppamento SELECT.. FROM.. [ WHERE.. ] GROUP BY.. [ HAVING.. ] ORDER BY. Raggruppamento e ordinamento Selezionare la somma degli importi degli ordini successivi al per quei clienti che hanno emesso almeno ordini, in ordine decrescente di somma di importo. SELECT COD-CLI, SUM (IMPORTO) FROM ORDINE WHERE DATA > GROUP BY COD-CLI HAVING COUNT (IMPORTO) >= ORDER BY SUM(IMPORTO) DESC Risultato dopo la clausola di ordinamento COD-CLI SUM (IMPORTO) Doppio raggruppamento Selezionare la somma delle quantita' dei dettagli degli ordini emessi da ciascun cliente per ciascun prodotto, purche' la somma superi 50. SELECT COD-CLI, COD-PROD, SUM(QTA) FROM ORDINE AS O, DETTAGLIO AS D WHERE O.COD-ORD = D.COD-ORD GROUP BY COD-CLI, COD-PROD HAVING SUM(QTA) > 50 Situazione dopo il join e il raggruppamento Estrazione del risultato ordine COD-CLI ORDINE. DETTAGLIO. COD-PROD QTA COD-ORD COD-ORD dettaglio gruppo, gruppo, gruppo, gruppo, si valuta la funzione aggregata SUM(QTA) e il predicato HAVING COD-CLI COD-PROD SUM(QTA)

30 Query binarie Costruite concatenando due query SQL tramite operatori insiemistici: UNION unione INTERSECT intersezione EXCEPT (MINUS) differenza (si eliminano i duplicati) Unione Selezionare i codici degli ordini i cui importi superano lire oppure presenti in qualche dettaglio con quantita' superiore a 000. SELECT COD-ORD FROM ORDINE WHERE IMPORTO > UNION SELECT COD-ORD FROM DETTAGLIO WHERE QTA > 000 Differenza Selezionare i codici degli ordini i cui importi superano lire ma non presenti in nessun dettaglio con quantita' superiore a 000. SELECT COD-ORD FROM ORDINE WHERE IMPORTO > EXCEPT SELECT COD-ORD FROM DETTAGLIO WHERE QTA > 000 Intersezione Selezionare i codici degli ordini i cui importi superano lire e che sono presenti in qualche dettaglio con quantita' superiore a 000. SELECT COD-ORD FROM ORDINE WHERE IMPORTO > INTERSECT SELECT COD-ORD FROM DETTAGLIO WHERE QTA > 000 Query nidificate Costruite concatenando due query SQL nel predicato where: [NOT] IN [DOES NOT] EXISTS comp ANY, ALL comp: =,!=, <, <=, >, >= appartenenza esistenza quantificatori Query nidificate Selezionare nome e indirizzo dei clienti che hanno emesso qualche ordine di importo superiore a SELECT NOME, INDIRIZZO FROM CLIENTE WHERE COD-CLI IN SELECT COD-CLI FROM ORDINE WHERE IMPORTO >

31 Equivalenza fra IN e query semplici SELECT NOME, INDIRIZZO FROM CLIENTE WHERE COD-CLI IN SELECT COD-CLI FROM ORDINE WHERE IMPORTO > equivale (a meno di duplicati) a: SELECT NOME, INDIRIZZO FROM CLIENTE JOIN ORDINE ON CLIENTE.COD-CLI = ORDINE.COD-CLI WHERE IMPORTO > Selezionare nome e indirizzo dei clienti che hanno emesso qualche ordine i cui dettagli comprendono il prodotto Pneumatico. SELECT NOME, INDIRIZZO FROM CLIENTE WHERE COD-CLI IN SELECT COD-CLI FROM ORDINE WHERE COD-ORD IN SELECT COD-ORD FROM DETTAGLIO WHERE COD-PROD IN SELECT COD-PROD FROM PRODOTTO WHERE NOME = 'Pneumatico' La query equivalente equivale (a meno di duplicati) a: SELECT NOME, INDIRIZZO FROM CLIENTE AS C, ORDINE AS O, DETTAGLIO AS D, PRODOTTO AS P WHERE C.COD-CLI = O.COD-CLI AND O.COD-ORD = D.COD-ORD AND D.COD-PROD = P.COD-PROD AND IMPORTO > Uso di IN nelle modifiche aumentare di L l importo di tutti gli ordini che comprendono il prodotto 456 UPDATE ORDINE SET IMPORTO = IMPORTO WHERE COD-ORD IN SELECT COD-ORD FROM DETTAGLIO WHERE COD-PROD = '456' Query con NOT IN Selezionare nome e indirizzo dei clienti che non hanno emesso nessun ordine di importo superiore a SELECT NOME, INDIRIZZO FROM CLIENTE WHERE COD-CLI NOT IN SELECT COD-CLI FROM ORDINE WHERE IMPORTO > La query con ANY e ALL SELECT COD-ORD FROM ORDINE WHERE IMPORTO > ANY SELECT IMPORTO FROM ORDINE COD-ORD IMPORTO SELECT COD-ORD FROM ORDINE WHERE IMPORTO >= ALL SELECT IMPORTO FROM ORDINE ANY F V V ALL F V F

32 Esercizi Riprendere le basi di dati per la gestione del personale e degli ordini ed esprimere in SQL le interrogazioni : - quale impiegati lavorano in un progetto in cui non lavora il loro manager? - quanti ordini ha emesso Paolo? - quante candele sono state ordinate il 5/7/97? - calcolare per ciascun cliente la somma degli importi di tutti gli ordini - estrarre l'ordine di importo piu' alto Esercizio (lezione precedente) in quali tipi di progetti lavora Giovanni? SELECT TIPO FROM IMPIEGATO WHERE IN SELECT FROM ASSEGNAMENTO WHERE NUM-PROG IN SELECT NUM-PROG FROM PROGETTO WHERE NOME='Giovanni' Esercizio (lezione precedente) chi e' il manager di Piero? SELECT NOME FROM IMPIEGATO WHERE -MGR IN SELECT FROM IMPIEGATO WHERE NOME='Piero' Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 7 ( lucidi) Aspetti evoluti del DDL Aspetti evoluti nella definizione degli schemi Creazione di indici Modifica degli schemi Gestione di viste Autorizzazioni d'accesso Vincoli di integrita (poi) Procedure e regole attive (poi)

33 Creazione di indici INDICI: meccanismi di accesso efficiente ai dati (spiegati poi) CREATE INDEX es.: CREATE INDEX DATA-IX ON ORDINI (DATA) CREATE UNIQUE INDEX es.: CREATE UNIQUE INDEX ORD-KEY ON ORDINI (ORD-COD) Comandi di modifica degli schemi Necessari per garantire l evoluzione della base di dati a fronte di nuove esigenze E possibile: CREARE NUOVI OGGETTI (CREATE) MODIFICARE OGGETTI PREESISTENTI (ALTER) CANCELLARE OGGETTI (DROP) Cancellazione degli oggetti DROP (domini, tabelle, indici, view, asserzioni, procedure, trigger) es.: DROP TABLE ORDINI es.: DROP INDEX DATA-IX OPZIONI RESTRICT e CASCADE RESTRICT: impedisce drop se gli oggetti comprendono istanze CASCADE: applica drop agli oggetti collegati Modifica degli oggetti ALTER (domini, tabelle) es.: ALTER TABLE ORDINI ADD COLUMN NUM-FATT CHAR(6) es.: ALTER TABLE ORDINI ALTER COLUMN IMPORTO ADD DEFAULT 0 es.: ALTER TABLE ORDINI DROP COLUMN DATA Viste relazionali Offrono la "visione" di tabelle virtuali (schemi esterni) Classificate in: SEMPLICI (Selezione e proiezione su una sola tabella) COMPLESSE Sintassi delle viste relazionali CREATE VIEW <Nome> AS <QUERY> CREATE VIEW <Nome> ( <Nome-attributi>) AS <QUERY> Le query possono include al loro interno viste definite in precedenza

34 ordini 4 6 Esempio di vista semplice Ordini di importo superiore a CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > VISTA : ordini principali Uso della vista per query Vista: CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > Query: SELECT NUM-CLI FROM ORDINI-PRINCIPALI Composizione della vista con la query: SELECT NUM-CLI FROM ORDINI WHERE IMPORTO > Modifiche tramite le viste Vista: CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > Modifica: UPDATE ORDINI-PRINCIPALI SET IMPORTO = IMPORTO *.05 WHERE NUM-CLI = Composizione della vista con la modifica: UPDATE ORDINI SET IMPORTO = IMPORTO *.05 WHERE NUM-CLI = AND IMPORTO > Esempio di vista complessa CREATE VIEW CLI-PRO (CLIENTE,PRODOTTO) AS SELECT COD-CLI, COD-PROD FROM ORDINE JOIN DETTAGLIO ON ORDINE.COD-ORD = DETTAGLIO.COD-ORD Vista complessa (JOIN) CLIENTE PRODOTTO 45 JOIN COD-CLI COD-ORD.. COD-ORD COD-PROD.. 45 Interrogazione sulla vista complessa Query: SELECT CLIENTE FROM CLI-PROD WHERE PRODOTTO = 45 Composizione della vista con la query: SELECT COD-CLI FROM ORDINE JOIN DETTAGLIO ON ORDINE.COD-ORD = DETTAGLIO.COD-ORD WHERE COD-PROD = 45

35 Modifiche sulla vista complessa Vista complessa (JOIN) Non e' possibile modificare le tabelle di base tramite la vista perche' la interpretazione e' ambigua CLIENTE PRODOTTO 45 4 es.: UPDATE CLI-PROD SET PRODOTTO = 4 WHERE CLIENTE = a il cliente ha cambiato l'ordine b il codice del prodotto e' cambiato COD-CLI COD-ORD 45 JOIN.. COD-ORD COD-PROD Autorizzazioni d accesso PRIVATEZZA: protezione selettiva della base di dati in modo da garantire l accesso solo agli utenti autorizzati. Meccanismi per identificare l utente (tramite PAROLA CHIAVE o PASSWORD): Quando si collega al sistema informatico Quando accede al DBMS UTENTI individuali e GRUPPI di utenti Autorizzazioni d accesso Si attribuiscono agli UTENTI dei PRIVILEGI DI ACCESSO alle RISORSE utenti: identificati tramite password risorse: tabelle, view (e altre) GRANT <privilegi> ON <risorse> TO <utenti> Principali privilegi di accesso Esempio SELECT [ATTRIBUTI] UPDATE [ATTRIBUTI] INSERT DELETE ALL PRIVILEGES GRANT ALL PRIVILEGES ON ORDINE TO User GRANT UPDATE(IMPORTO) ON ORDINE TO User GRANT SELECT ON ORDINE TO User, User

36 Concessione dei privilegi Il creatore di una risorsa ha tutti i privilegi Spesso l'utente DATABASE ADMINISTRATOR crea l'intera base di dati Chi detiene un privilegio puo' concederlo con GRANT OPTION GRANT ALL PRIVILEGES ON ORDINE TO User WITH GRANT OPTION Esempio di uso, grant option Database administrator GRANT ALL PRIVILEGES ON ORDINE TO User WITH GRANT OPTION User GRANT SELECT ON ORDINE TO User WITH GRANT OPTION User GRANT SELECT ON ORDINE TO User Revoca dei privilegi REVOKE <privilegi> ON <risorsa> FROM <utente> es: REVOKE UPDATE ON ORDINE FROM User REVOKE SELECT ON ORDINE FROM User Revoca di un previlegio con cascata DBA Revoca dei privilegi con cascata REVOKE <privilegi> ON <risorsa> FROM <utente> CASCADE User User Revoca di un privilegio con cascata Database administrator GRANT SELECT ON ORDINE TO User WITH GRANT OPTION User GRANT SELECT ON ORDINE TO User Database administrator REVOKE SELECT ON ORDINE FROM User CASCADE Viste e autorizzazioni di accesso Viste = unita di autorizzazione Consentono la gestione ottimale della privatezza

37 Esempio: gestione dei conti correnti Requisiti di accesso filiale filiale filiale Banca rete CONTO-CORRENTE(NUM-CONTO, FILIALE, CLIENTE, COD-FISC, DATA-APERTURA, SALDO) TRANSAZIONE(NUM-CONTO, DATA, PROGR, CAUSALE, AMMONTARE) funzionari cassieri cassieri, all previleges select update saldo, select all previleges select select conto-corrente NUM- N. CONTO FILIALE x y z transazione NUM- CONTO x x y... SALDO filiale filiale Viste relative alla prima filiale DEFINE VIEW CONTO AS ( SELECT * FROM CONTO-CORRENTE WHERE FILIALE = ) DEFINE VIEW TRANSAZIONE AS ( SELECT * FROM TRANSAZIONE WHERE NUM-CONTO IN ( SELECT NUM-CONTO FROM CONTO ) ) Autorizzazioni relative ai dati della prima filiale GRANT ALL PRIVILEGES ON CONTO TO FUNZIONARI GRANT UPDATE(SALDO) ON CONTO TO CASSIERI GRANT SELECT ON CONTO TO CASSIERI, CASSIERI, CASSIERI GRANT SELECT ON TRANSAZIONE TO FUNZIONARI GRANT ALL PRIVILEGES ON TRANSAZIONE TO CASSIERI GRANT SELECT ON TRANSAZIONE TO CASSIERI, CASSIERI Esercizi Riprendere le basi di dati per la gestione del personale ed esprimere: - i comandi per modificare la tabella IMPIEGATO aggiungendo il campo COD-FISC - una vista complessa che contiene il nomi degli impiegati che lavorano ai vari progetti - la vista che seleziona gli IMPIEGATI che lavorano al progetto Wide - le istruzioni che consentono all utente MGR-WIDE il pieno controllo sulla vista Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 8 (8 lucidi)

38 Vincoli, procedure e regole attive in SQL Qualita' dei dati Qualita' dei dati: correttezza, completezza, attualita'. In molte applicazioni reali i dati sono di scarsa qualita' (5% - 40% di dati scorretti). Per aumentare la qualita' dei dati: Regole di integrita' Manipolazione dei dati tramite programmi predefiniti (procedure e trigger) Esempio : gestione magazzino Vincoli di integrita' generici magazzino COD-PROD 4 5 QTA-DISP QTA-RIORD Predicati che devono essere veri se valutati su istanze corrette (legali) della base di dati Espressi in due modi: - negli schemi delle tabelle - come asserzioni separate riordino COD-PROD DATA QTA-ORD Vincoli associati alle tabelle Si utilizza la clausola: CHECK (PREDICATO) associata ai vari attributi oppure espressa al termine della dichiarazione della tabella Esempio: definizione di MAGAZZINO CREATE TABLE MAGAZZINO AS ( COD-PROD CHAR() PRIMARY KEY QTA-DISP INTEGER NOT NULL CHECK(QTA-DISP>0) QTA-RIORD INTEGER NOT NULL CHECK (QTA-RIORD>0) CHECK (QTA-DISP>QTA-RIORD) )

39 Asserzioni Predicati espressi separatamente dalla definizione delle tabelle, che devono essere veri se valutati su istanze corrette (legali) CREATE ASSERTION Ordini-Limitati AS CHECK( 000 <= SELECT COUNT(COD-PROD) FROM RIORDINO) Significato dei vincoli La verifica dei vincoli puo' essere: a immediate (immediata): la loro violazione annulla l'ultima modifica b deferred (differita): la loro violazione annulla l'intera applicazione S0 V S S S f Modifica dinamica del significato dei vincoli Ogni vincolo e' definito di un tipo (normalmente "immediate") L'applicazione puo' modificare il tipo iniziale dei vincoli: - set constraints immediate - set constraints deferred Tutti i vincoli vengono comunque verificati, prima o poi. Procedure Moduli di programma che svolgono una specifica attivita' di manipolazione dei dati Non standard in SQL- ma presenti nei principali sistemi relazionali Due momenti: - dichiarazione (DDL) - invocazione (DML) Con architettura client-server sono: - invocate dai client - memorizzate e eseguite presso i server Esempio : prelievo dal magazzino magazzino COD-PROD QTA-DISP QTA-RIORD riordino COD-PROD DATA QTA-ORD Specifica L utente indica un prelievo dando il codice del prodotto e la quantita' da prelevare Se la quantita' disponibile in magazzino non e' sufficiente la procedura si arresta con una eccezione Viene eseguito il prelievo, modificando la quantita' disponibile in magazzino Se la quantita' disponibile in magazzino e' inferiore alla quantita' di riordino si predispone un nuovo ordine d'acquisto.

40 COD-PROD 4 Interfaccia PROCEDURE PRELIEVO ( PROD INTEGER, QUANT INTEGER) Invocazione PRELIEVO(4,50) Stato iniziale nella base di dati QTA-DISP 70 QTA-RIORD 50 Realizzazione della procedura. DICHIARAZIONE VARIABILI. LETTURA DELLO STATO. SE LA QUANTITA' DISPONIBILE E' INSUFFICIENTE: ECCEZIONE 4. AGGIORNAMENTO DELLO STATO 5. SE LA NUOVA QUANTITA' DISPONIBILE E` INFERIORE ALLA QUANTITA' DI RIORDINO: EMISSIONE DI UN ORDINE Procedura PROCEDURE PRELIEVO (PROD INTEGER, QUANT INTEGER) IS Q, Q INTEGER X EXCEPTION BEGIN SELECT QTA-DISP, QTA-RIORD INTO Q, Q FROM MAGAZZINO WHERE COD-PROD = PROD; IF Q < QUANT THEN RAISE(X); UPDATE MAGAZZINO SET QTA-DISP = QTA-DISP - QUANT WHERE COD-PROD = PROD; IF Q - QUANT < Q THEN INSERT INTO RIORDINO VALUES(PROD, SYSDATE, Q) END Esempio di invocazione PRELIEVO(4,50) PROD=4, QUANT=50 SELECT QTA-DISP, QTA-RIORD INTO Q, Q FROM MAGAZZINO WHERE COD-PROD = PROD; COD-PROD 4 QTA-DISP 70 Q = 70, Q = 50 QTA-RIORD 50 Invocazione (continua) IF Q < QUANT THEN RAISE(X) non scatta UPDATE MAGAZZINO SET QTA-DISP = QTA-DISP - QUANT WHERE COD-PROD = PROD COD-PROD 4 QTA-DISP 0 QTA-RIORD 50 Q - QUANT < Q e' vero: INSERT INTO RIORDINO VALUES(PROD, SYSDATE, Q) COD-PROD 4 DATA QTA-RIORD 50 Regole attive (trigger) Moduli di programma che svolgono una specifica attivita' di manipolazione dei dati Non standard in SQL- ma presenti nei principali sistemi relazionali Simili alle procedure, ma l'invocazione e' automatica Seguono il paradigma EVENTO-CONDIZIONE-AZIONE

41 Paradigma evento - condizione - azione (ECA) evento: modifica alla base di dati condizione: predicato azione: modifica alla base di dati, segnalazioni agli utenti informalmente: - quando accade l'evento - se la condizione e' vera - allora si esegue l'azione Esempio: gestione automatica del riordino. EVENTO: UPDATE(QDISP) IN MAGAZZINO. CONDIZIONE: LA NUOVA QUANTITA' DISPONIBILE E' INFERIORE ALLA (NUOVA) QUANTITA' DI RIORDINO: NEW.Q-DISP < NEW.Q-RIORD. AZIONE: SE LA QUANTITA' DISPONIBILE E ' INSUFFICIENTE: ECCEZIONE EMISSIONE DI UN ORDINE Regola attiva (trigger) CREATE TRIGGER GESTIONE-RIORDINO AFTER UPDATE OF QTA-DISP ON MAGAZZINO WHEN (NEW.QTA-DISP < NEW.QTA-RIORD) FOR EACH ROW X EXCEPTION BEGIN END IF NEW.QTA-DISP < 0 THEN RAISE(X); INSERT INTO RIORDINO VALUES(NEW.COD-PROD, SYSDATE, NEW.QTA-RIORD) Esecuzione dell'applicazione UPDATE MAGAZZINO SET QTA-DISP = QTA-DISP - 50 WHERE COD-PROD = 4 COD-PROD 4a QTA-DISP 0 QTA-RIORD 50 Esecuzione del trigger evento : UPDATE(QTA-DISP) ON MAGAZZINO condizione : VERA azione : IF NEW.QTA-DISP < 0 THEN RAISE(X) non scatta COD-PROD 4 INSERT INTO RIORDINO VALUES (NEW.COD-PROD, SYSDATE, NEW.QTA-RIORD) DATA QTA 50 Problemi di progetto per procedure e trigger Decomposizione modulare delle applicazioni Paradigma di invocazione: - esplicita (procedure) - implicita (trigger) Aumento di: - efficenza - controllo - riuso

42 Conseguenze dell uso di procedure e trigger Aumenta la responsabilita' dell'amministratore della base di dati (rispetto al programmatore applicativo) Si sposta "conoscenza" dalle applicazioni allo schema della base di dati (independenza di conoscenza) (per saperne di piu': sito internet Esercizi Riprendere le basi di dati per la gestione degli ordini ed esprimere: - un vincolo di integrita' che impedisce la presenza di piu' di 00 dettagli per ciascun ordine. - una procedura che elimina tutti gli ordini e i relativi dettagli di un particolare cliente - un trigger che scatta quando viene cancellato un cliente ed elimina tutti gli ordini e i relativi dettagli di quel cliente Un breve ripasso MODELLO RELAZIONALE ALGEBRA RELAZIONALE - SELEZIONE, PROIEZIONE, UNIONE, DIFFERENZA, JOIN SQL - DATA DEFINITION - CREATE DOMAIN, TABLE, INDEX, VIEW, ASSERTION, PROCEDURE, TRIGGER - DROP, ALTER - GRANT, REVOKE SQL - DATA MANIPULATION - SELECT - INSERT, UPDATE, DELETE Prof. Stefano Ceri Sistemi ormativi Aziendali (965A) Lezione 9 (5 lucidi) Architettura dei sistemi informatici Tecnologia dei sistemi informativi LAN MAN ufficio citta distribuzione geografica WAN

43 Paradigma client-server Tecnica per strutturare sistemi software Viene resa "pubblica" una "interfaccia di servizi" Due tipologie di sistemi: CLIENT richiedono i servizi SERVER forniscono i servizi servizi richiesti dal CLIENT svolti dai SERVER Client-server nei sistemi informativi Separazione funzionale ideale CLIENT : presentazione dell'informazione SERVER : gestione dei dati SQL : il linguaggio ideale per separare gli ambienti CLIENT : formula query, elabora risultati SERVER : esegue query RETE : trasferisce i comandi di attivazione (es: di procedure SQL) e i risultati Architettura client-server classica Architettura con server applicativo CLIENT compone richieste in SQL CLIENT richiede applicazioni CLIENT CLIENT SERVER esegue richieste in SQL SERVER APPLICATIVO compone richieste in SQL DATABASE SERVER esegue richieste in SQL Parallelismo nei server Distribuzione dei dati Uso di macchine multiprocessore Elaborazione identica su ciascun processore Obiettivo : prestazioni DATABASE SERVER con parallelismo NON SOLO presenza di molteplici basi di dati MA ANCHE presenza di applicazioni che usano dati provenienti da piu' fonti CLIENT applicazione base di dati parallela processori dischi base di dati distribuita DATABASE SERVER DATABASE SERVER

44 Replicazione dei dati Motivazione: maggior disponibilita', efficienza, differente trattamento dei dati, affidabilita' base di dati replicata copia principale copia secondaria copia secondaria Separazione funzionali degli ambienti Ambiente operativo: gestione "in linea" dei dati, finalizzato alla gestione delle transazioni di modifica On Line Transaction Processing (OLTP) Ambiente di analisi: gestione "fuori linea" dei dati, finalizzato ad interrogazioni e analisi statistiche On Line Analytical Processing (OLAP) Ambiente per l'analisi : data warehouse Interazione fra OLTP e OLAP DATA WAREHOUSE: descrizione organizzata di tutti i dati necessari per una analisi strategica del comportamento dell'impresa Tecniche: analisi multidimensionale, data mining CLIENT OLTP CLIENT OLAP DATABASE SERVER DATABASE SERVER DATA WAREHOUSE Sistemi "LEGACY " Sistemi realizzati su architetture basate su MAINFRAME (grande calcolatore centrale) cui si collegano terminali poco sofisticati (spesso con interfaccia a caratteri) MAINFRAME Sistemi "LEGACY " terminale terminale terminale Normalmente obsoleti, ma spesso preziosi (assicurano la gestione operativa di applicazioni importanti, ad esempio finanziarie, fiscali, prenotazioni aeree, etc ) DATABASE MODEM linea telefonica MODEM terminale 4 terminale 5 sistema legacy

Interrogazioni complesse. SQL avanzato 1

Interrogazioni complesse. SQL avanzato 1 Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio

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

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

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

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

Dettagli

Il 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

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

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

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

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

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

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

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

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

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

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

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

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

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL SQL come linguaggio di interrogazione Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse,

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

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

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati 1 SQL Il nome stava per Structured Query Language Più che un semplice linguaggio di query: si compone di una parte DDL e di una DML DDL:

Dettagli

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

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

Dettagli

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

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

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

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

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

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

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

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

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

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

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

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Aspetti avanzati nella definizione degli schemi DDL2 1

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

Dettagli

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

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

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

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

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

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

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

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 e Sistemi informativi aziendali

Basi di dati e Sistemi informativi aziendali Sistemi informativi Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 2007 Politecnico di Torino

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

Tecnologia dei Sistemi Informativi. architettura s.i. 1

Tecnologia dei Sistemi Informativi. architettura s.i. 1 Tecnologia dei Sistemi Informativi architettura s.i. 1 Sistema Informativo comprende risorse umane è fortemente integrato con il sistema organizzativo è essenziale per il funzionamento dell'azienda architettura

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

Facoltà di Farmacia - Corso di Informatica

Facoltà di Farmacia - Corso di Informatica Basi di dati Riferimenti: Curtin cap. 8 Versione: 13/03/2007 1 Basi di dati (Database, DB) Una delle applicazioni informatiche più utilizzate, ma meno conosciute dai non informatici Avete già interagito

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

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17

Lorenzo Braidi. Database design. Libro_datadesign.indb 1 23-11-2004 10:06:17 Lorenzo Braidi Database design Libro_datadesign.indb 1 23-11-2004 10:06:17 Sommario Introduzione...XI Capitolo 1 Le basi di dati relazionali... 1 Le basi di dati... 1 Un po di storia... 2 I database gerarchici...

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

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

Sistemi per la gestione di database: MySQL ( )

Sistemi per la gestione di database: MySQL ( ) Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento

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

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

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

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

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

Dettagli

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12 SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : (1) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Dettagli

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

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

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007 Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE

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

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 DB2 Data Management Software Il linguaggio SQL Raggruppamenti Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute in questa

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

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

Sistemi centralizzati e distribuiti

Sistemi centralizzati e distribuiti Sistemi centralizzati e distribuiti In relazione al luogo dove è posta fisicamente la base di dati I sistemi informativi, sulla base del luogo dove il DB è realmente dislocato, si possono suddividere in:

Dettagli

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

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

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

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

Introduzione all Algebra Relazionale

Introduzione all Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

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

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

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio

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 di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

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

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

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

Elementi di Algebra Relazionale

Elementi di Algebra Relazionale Note dalle lezioni di INFORMATICA (per gli allievi della classe quinta - indirizzo MERCURIO) Elementi di Algebra Relazionale prof. Stefano D.L.Campanozzi I.T.C. Giulio Cesare Bari - a.s. 2008-2009 1 Introduzione

Dettagli

Linguaggio SQL: fondamenti. Basi di dati. Elena Baralis Pag. 1. Linguaggio SQL: fondamenti. Sistemi informativi. Introduzione

Linguaggio SQL: fondamenti. Basi di dati. Elena Baralis Pag. 1. Linguaggio SQL: fondamenti. Sistemi informativi. Introduzione Sistemi informativi Istruzione : fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 al linguaggio SQL Istruzioni del linguaggio Notazione 4

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

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( ) Invia modulo Basi di Dati + Laboratorio INSEGNAMENTO 214-215 ANNO ACCADEMICO Informatica Triennale sede di Brindisi CORSO DI LAUREA IN Paolo Buono DOCENTE 2 1 ANNO DI CORSO SEMESTRE 7 N CREDITI LEZIONI

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