5. Database relazionali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "5. Database relazionali"

Transcript

1 Corso di Laurea in Matema1ca Dipar9mento di Matema9ca e Fisica Sistemi per l elaborazione delle informazioni 5. Database relazionali Dispense del corso IN530 prof. Marco Liverani Archivi informa1ci (digitali) L archiviazione dei da9 è una delle applicazioni più diffuse ed importan9 dei calcolatori Tra gli obieqvi dell archiviazione informa9ca dei da9 evidenziamo i seguen9: Garan9re una elevata capacità di archiviazione Garan9re il recupero efficiente delle informazioni archiviate Garan9re la possibilità di selezionare in modo efficiente le informazioni desiderate Garan9re l integrità fisica e logica delle informazioni archiviate Garan9re la possibilità di u9lizzare le informazioni archiviate atraverso diversi strumen1 informa1ci Garan9re la protezione delle informazioni archiviate, impedendo la letura o l alterazione delle informazioni da parte di persone non autorizzate a farlo M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 1

2 Archiviazione su file Ogni programma applica9vo può archiviare su file i da9 di propria competenza Questo 9po di archiviazione tutavia non 9ene conto di alcuni aspeq importan9: Il formato con cui sono memorizzate le informazioni su file è arbitrario, non standard Altre applicazioni so[ware possono accedere ai da9 solo se il formato dei da1 ed il loro significato vengono resi no9 da chi ha progetato l applicazione di archiviazione (oggi si usa frequentemente una codifica XML, che in parte risolve questa problema9ca) Devono essere ges9te situazioni di accesso concorrente Chi sviluppa il so[ware di archiviazione deve farsi carico anche degli aspeg fisici : efficienza nella scritura e nella selezione delle informazioni, protezione delle informazioni riservate, modalità di accesso ai file, ecc. Database Management System Per far fronte a ques9 problemi, a par9re dagli anni 70 sono state sviluppate applicazioni dedicate all archiviazione di informazioni: DBMS, DataBase Management System CaraTeris9che di una base da9 ges9ta atraverso un DBMS: Può avere una grande dimensione (anche superiore a quella di un singolo disco del computer) Può essere condivisa tra più applicazioni È persistente È affidabile, il DBMS fornisce strumen9 per mantenere integro e ges9re dei backup della base da9 È sicuro e garan1sce la riservatezza, consente il controllo degli accessi, solo gli uten9 autorizza9 possono accedere ai da9 È efficiente: le operazioni elementari sull archivio vengono eseguite molto rapidamente È standard: i programmi hanno un interfaccia astrata e di alto livello per scrivere e leggere informazioni sull archivio presente sulla memoria secondaria È disaccoppiato dall applicazione: la componente so[ware di ges9one dei da9 sull archivio informa9co è dis9nta dalla componente so[ware che implementa la logica di business con cui si opera sui da9 È accessibile via rete: il DBMS può operare su una macchina dis9nta da quella su cui viene eseguita l applicazione che u9lizza i da9 dell archivio; l applicazione è inconsapevole della dislocazione fisica del DBMS, si collega al DBMS comunque via rete, anche se il DBMS è sulla stessa macchina su cui gira l applicazione Oggi sul mercato e sui canali del so[ware open source esistono numerosissimi prodog DBMS affidabili: Oracle Database, Microso[ SQL Server, IBM DB/2, MySQL, PostgresSQL, ecc. M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 2

3 Modello di database Ogni DBMS u9lizza un modello astraoo atraverso cui rappresentare le informazioni (e trasformare i singoli da9 in vere e proprie informazioni) Negli anni sono sta9 propos9 diversi modelli, tra i quali: Gerarchico, ad albero Re9colare Relazionale Relazionale ad oggeq Il modello che ci interessa è il modello relazionale, progetato nei laboratori di ricerca di IBM negli anni 70 ed oggi divenuto lo standard di fa7o per le basi di da9 e degli strumen9 DBMS: si parla infaq di RDBMS = rela:onal database management system Il modello relazionale è basato sul conceto di relazione (nel senso algebrico del termine) e di tabella (conceto intui9vo) Data una collezione di insiemi A 1, A 2,, A n, il prodooo cartesiano A 1 A 2 A n è l insieme delle n- ple {(a 1, a 2,, a n ) tali che a i A i i=1,, n} Una relazione su A 1, A 2,, A n è un sotoinsieme del prodoto cartesiano A 1 A 2 A n Relazioni tra insiemi Studen- Corsi Olivieri IN110 Pestrin Simeone AL110 CR210 Fabrianesi Piroso IN440 AM110 Nunzi M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 3

4 Relazioni e prodooo cartesiano Studente Corso Olivieri IN110 Olivieri CR210 Olivieri AL110 Relazione Olivieri Olivieri AM110 IN440 Prodo7o cartesiano Simeone IN110 Simeone CR210 Simeone AL110 Domini e aoribu1 Nell ambito della teoria relazionale dei da9 è u9le poter considerare le n- ple di una relazione come sequenze non ordinate (a differenza di quanto avviene nella teoria degli insiemi) Quindi ad esempio (a 1, a 2, a 3 ) = (a 3, a 1, a 2 ) In questo caso, per dis9nguere i da9 presen9 in una n- pla, è u9le assegnare dei nomi ai valori delle n- ple; tali nomi vengono deq aoribu1 L insieme A i (finito o infinito) dei valori che un certo atributo può assumere è il dominio dell atributo stesso M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 4

5 Relazioni e tabelle È possibile rappresentare una relazione mediante una tabella: Relazione X ATributo A ATributo B ATributo C A 1 B 7 C 4 A 9 B 7 C 1 Il numero di colonne (il numero di atribu9) è il grado della relazione Il numero di righe è la cardinalità della relazione La relazione dell esempio ha cardinalità 2 e grado 3 Chiavi primarie Consideriamo la seguente relazione rappresentata mediante una tabella: Esami Studente Matricola Corso Docente Voto Bianchi IN110 Liverani 24 Verdi AL210 Fontana 27 Rossi IN110 Liverani 25 Bianchi AL210 Fontana 22 Una chiave primaria (primary key) è un campo (atributo) o un insieme di campi della tabella che permetono di individuare univocamente un record (riga della tabella) Nell esempio la chiave primaria è la coppia Matricola + Corso M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 5

6 Chiavi esterne e correlazioni fra tabelle Per ridurre la ridondanza dei da9 (evitare ripe9zioni inu9li) è possibile suddividere le informazioni su più tabelle: Studente Matricola Nome Bianchi Verdi Rossi Corso Nome Docente AL110 Fontana IN110 Liverani Corso Matricola Voto IN AL IN AL Le chiavi esterne (foreign key) sono atribu9 di una tabella X che consentono di correlare il record con un record di una tabella Y atraverso la ripe9zione del valore della chiave primaria della tabella Y Diagramma En1tà/Relazioni In questo modo è possibile costruire una rappresentazione dei da9 atraverso un diagramma (un grafo) che rappresenta le relazioni esisten1 fra le varie en1tà Le relazioni possono essere di tre 9pi: 1:1 : ad ogni record dell en9tà A corrisponde uno ed un solo record dell en9tà B 1:M : ad ogni record dell en9tà A corrispondono diversi record dell en9tà B M:M : ad ogni record di A corrispondono mol9 record di B e viceversa. Studente Corso 1:M M:1 M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 6

7 Diagramma En1tà/Relazioni La relazione viene espressa mediante un verbo o un sostan9vo, rappresentato con un rombo collegato a due en9tà Anche le relazioni, come le en9tà, possono essere caraterizzate da atribu9 Nome Matr. Docente Anno Studente CFU SSD Corso Sos9ene Appello Aula Voto n. iscrid Data Data Diagramma En1tà/Relazioni Di seguito un modello E/R più complesso, parte di un database relazionale di un sistema aziendale M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 7

8 Modello fisico della base da1 Nel modello fisico le en:tà e le relazioni sono rappresentate mediante tabelle collegate tra loro mediante le chiavi primarie e le chiavi esterne Modello fisico della base da1 Ad esempio il modello E/R rela9vo agli studen9, ai corsi e agli esami, può essere tradoto nel modello fisico rappresentato in figura Studente Matricola (PK) Nominativo Iscritto IdStudente (FK) IdCorso (FK) Anno Corso IdCorso (PK) Anno (PK) Nome Docente CFU SSD Sostiene IdStudente (FK) Id (FK) Data Voto IdCorso (FK) Anno (FK) Id (FK) Data N_iscritti Aula M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 8

9 OGmizzazione di una base da1 La possibilità di definire correlazioni tra le en9tà del database ci permete di ogmizzarne la struoura L operazione di oqmizzazione consiste nella suddivisione dei da9 su tabelle dis9nte, in modo da ridurre la ridondanza; questa aqvità si chiama normalizzazione della base da1 Esempio di base da9 non normalizzata Esami Nome Matricola AL210 Prof_AL210 IN110 Prof_IN110 GE110 Prof_GE110 Rossi Fontana 22 Liverani - Lopez Verdi Fontana - Liverani 27 Lopez Bianchi Fontana 30 Liverani 26 Lopez Finalità della normalizzazione Perché normalizzare la base da9? Per risolvere i seguen9 problemi: ridondanza: inu9le ripe9zione di uno stesso dato anomalia di aggiornamento: per mantenere integre e coeren9 le informazioni è necessario modificare più volte uno stesso dato anomalia di cancellazione: eliminando un informazione dal database se ne perdono anche altre anomalia di inserimento: non è possibile inserire informazioni incomplete, anche quando sarebbe necessario farlo Esami Nome Matricola AL210 Prof_AL210 IN110 Prof_IN110 GE110 Prof_GE110 Rossi Fontana 22 Liverani - Lopez Verdi Fontana - Liverani 27 Lopez Bianchi Fontana 30 Liverani 26 Lopez M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 9

10 Forme normali Esistono delle regole che devono essere rispetate dalla base da9 affinché questa sia corretamente normalizzata; queste regole sono note come forme normali Prima forma normale in una tabella non possono esistere colonne definite per contenere una molteplicità di valori NO! Matr Esami Esami sostenu9 AL110 IN110 GE110 IN Matr Corso Voto AL GE IN IN OK! Forme normali Seconda forma normale in una tabella in cui la chiave primaria è composta da più a7ribu: tu7e le colonne devono dipendere dalla chiave primaria NO! Matr Corso Voto Docente AL Fontana GE Lopez IN Liverani AL Fontana Matr Corso Voto AL GE IN OK! IN Corso Nome Docente AL110 Fontana GE110 Lopez IN110 Liverani M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 10

11 Forme normali Terza forma normale Non esistono dipendenze tra colonne di una tabella se non basate sulla chiave primaria NO! Matr Corso Voto Credi AL GE IN IN Corso Nome AL110 GE110 IN110 Docente Fontana Lopez Liverani Matr Corso Voto AL GE IN IN Corso OK! Nome Docente Credi9 AL410 Fontana 6 IN440 Liverani 7 IN110 Liverani 10 Forme normali Forma normale di Boyce e Codd Una tabella è in forma normale se per ogni dipendenza funzionale A B definita su di essa, A con:ene una chiave della tabella. Matr Corso Voto Docente Credi9 Studente AL Fontana 10 Rossi GE Lopez 10 Bianchi IN Liverani 10 Rossi IN Fontana 7 Verdi NO! Dipendenze funzionali: A B: il valore di A determina il valore di B Corso Docente Corso Credi9 Matricola, Corso Voto Matricola Studente M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 11

12 Forme normali Forma normale di Boyce e Codd Una tabella è in forma normale se per ogni dipendenza funzionale A B definita su di essa, A con:ene una chiave della tabella. Matr Corso Voto AL GE IN IN Studente Matricola Nome Bianchi Verdi Rossi Corso Nome Docente Credi9 AL110 Fontana 10 GE110 Lopez 10 IN110 Liverani 10 OK! Dipendenze funzionali: A B: il valore di A determina il valore di B Corso Docente Corso Credi9 Matricola, Corso Voto Matricola Studente Linguaggio SQL: caraoeris1che Per operare su una base da9 relazionale è stato progetato un linguaggio standard: SQL (Structured Query Language) È un linguaggio di interrogazione e manipolazione della base da9 e delle informazioni in essa contenute Non è un linguaggio impera9vo/procedurale, è un linguaggio dichiara1vo: manca dei conceq di variabile e di stru7ura di controllo algoritmica, 9pica dei linguaggi impera9vi e della programmazione struturata È cos9tuito da tre insiemi di istruzioni: DDL (Data Defini:on Language): per definire la strutura della base da9 DCL (Data Control Language): per ges9re i criteri di protezione e di accesso ai da9 DML (Data Manipula:on Language): per operare sui da9 M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 12

13 Data Defini1on Language È il set di istruzioni di SQL per la definizione della strutura della base da9. Sono tre le istruzioni principali del DDL: create: per la creazione di database, tabelle, indici, viste, ecc. alter: per la modifica della strutura di una tabella o di altri oggeq interni ad una base da9 drop: per l eliminazione di una tabelle, di un intero database o di altri oggeq Creazione di un database: create database studenti; Cancellazione di un database: drop database studenti; Dominio di definizione degli aoribu1 Definire una tabella significa definirne gli aoribu1 e il dominio degli stessi atribu9 I domini sono quelli 9pici di ogni linguaggio di programmazione: numeri interi (int, integer) numeri floa1ng point (float, real, double) stringhe di caraoeri (char, varchar) date (date, 9me, 9mestamp) Altri 9pi possono essere defini9 sulla base di specifiche 9piche di un determinato RDBMS Ogni atributo può essere anche caraterizzato da un valore di default e una serie di vincoli (es. not null per i campi obbligatori di una tabella) Tra i vincoli vi è la possibilità di aggiungere un atributo alla chiave primaria della tabella o l atributo di chiave esterna referenziando uno o più campi chiave di un altra tabella M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 13

14 Creazione di una tabella Nell esempio riportato di seguito vengono create due tabelle denominate corso ed esame (usando la sintassi di MySQL): create table corso ( sigla char(5) not null primary key, nome char(20) not null, docente char(30), crediti integer default 6 ) engine=innodb; create table esame ( s_corso char(5) not null references corso.sigla, matr_studente char(10) not null references studente.matricola, voto integer not null, primary key (s_corso, matr_studente) foreign key (s_corso) references corso(sigla) on update cascade on delete restrict, foreign key (matr_studente) references studente(matricola) on update cascade on delete cascade ) engine=innodb; Indici sulle tabelle Per rendere più efficiente l operazione di selezione dei da9 presen9 su una tabella, è possibile creare uno o più indici su una stessa tabella Se una tabella è priva di indici, l unico metodo per cercare da9 che corrispondono ad un determinato criterio, è quello di eseguire un full table scan, ossia una scansione dell intera tabella su cui si esegue la ricerca: il tempo richiesto è lineare nel numero di righe della tabella (complessità O(n)) L indice è una strutura da9 che consente di migliorare i tempi di ricerca delle informazioni presen9 in una tabella L indice è spesso una strutura da9 ad albero (alberi binari, alberi R- B, ecc.) costruita sui valori di una specifica colonna di una tabella di database (es.: il campo cognome di una tabella anagrafica): in questo modo il tempo di ricerca diventa logaritmico, anziché lineare: O(log 2 n) Su una stessa tabella possono essere defini9 più indici su più campi Esempio: create index nominativo on studente (cognome) Dopo varie operazioni di inserimento e cancellazione sui record di una tabella, l indice è probabilmente sbilanciato e quindi non più efficace: in tali casi è sufficiente eliminare l indice (drop index nominativo) e ricrearlo dopo qualche istante M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 14

15 Indici sulle tabelle Studente Matricola Nome Cognome Mario Rossi Anna Bianchi Elena Neri Chiara Aldi Ugo Mei Aldo Bruni Irene Sassi Bianchi Mei Tabella con n righe: per cercare un dato devo scorrerla per intero (n operazioni di confronto) Rossi Indice sull atributo cognome : è un albero parzialmente ordinato la cui altezza è vicina a log 2 n Aldi Bruni Neri Sassi Data Control Language È il set di istruzioni di SQL per la definizione dei permessi di accesso sui database e sulle tabelle e per la ges9one degli account utente. Sono due le istruzioni principali del DCL: grant: per assegnare un determinato permesso ad un utente revoke: revocare un determinato permesso ad un utente Concessione di permessi: grant privilegi on risorsa to uten: with grant option; Esempio: grant select on studenti to liverani; M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 15

16 Data Manipula1on Language È il set di istruzioni di SQL per la ges1one delle informazioni presen9 nella base da9 Sono quatro le istruzioni principali del DML: insert: per inserire da9 in una tabella select: per selezionare in base a determina9 criteri o condizioni i da9 presen9 in una o più tabelle update: per modificare i da9 di una tabella sulla base di un determinato criterio di selezione delete: per eliminare i record di una tabella corrisponden9 ad una determinata condizione Inserimento da1 L istruzione insert consente di inserire un insieme di valori nei campi di un solo record in una tabella: l ordine con cui vengono forni9 i valori ai diversi campi, sono specifica9 elencando nello stesso ordine i nomi degli atribu9 corrisponden9 Le stringhe di caraoeri devono essere delimitate da apici; se la stringa con9ene un apice, questo va riportato due volte esempio: Maria Giovanna, Guido Dell Acqua, Le date devono essere indicate nel formato specifico del DBMS (es.: aaaa- mm- gg, come ) Sintassi dell istruzione insert: insert into tabella (campo 1,, campo k ) values (valore 1,, valore k ); Esempio: insert into corso (sigla, cfu, nome, docente) values ( IN110, 10, Informatica 1, Liverani Marco ); M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 16

17 Selezione di record L istruzione select consente di leggere informazioni presen9 sul database, selezionando il risultato da una o più tabelle, mediante apposite condizioni che consentono di scegliere tra i record presen9 in archivio, quelli da visualizzare in output Sintassi dell istruzione select: select tabella 1.campo 1,, tabella h.campo k from tabella 1,, tabella h where condizione order by tabella i.campo i,, tabella j.campo j ; Esempio: select (corso.sigla, corso.nome, corso.docente) from corso where crediti>=6 order by corso.docente, corso.sigla; Anche il risultato di una select è una tabella: una select su una o più tabelle produce una tabella Join È possibile eseguire operazioni di selezione che coinvolgano più tabelle grazie alle correlazioni stabilite tra queste atraverso le chiavi primarie e le chiavi esterne Questa operazione si chiama join Esempio: select studente.nome, studente.cognome, corso.nome, esame.voto from studente, corso, esame where studente.matricola=esame.matr_studente and esame.s_corso=corso.sigla order by esame.voto; M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 17

18 Join e prodooo cartesiano di tabelle Ogni operazione di join fra più tabelle consiste innanzi tuto in un prodooo cartesiano tra le tabelle coinvolte nella select Dalla relazione (tabella) otenuta come prodoto cartesiano si selezionano solo le righe che corrispondono con la where condi:on Una operazione di join può essere quindi molto onerosa per la macchina: la base da9 deve essere progetata in modo da minimizzare il numero di join necessarie per otenere le informazioni di interesse Join e prodooo cartesiano di tabelle Matr Corso Voto AL GE IN Studente Matricola Nome Bianchi Verdi Rossi select esame.corso, esame.voto, studente.nome from esame, studente where esame.matr=studente.matricola; Join: esame studente Matr Corso Voto Matricola Nome AL Bianchi AL Verdi AL Rossi GE Bianchi GE Verdi M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 18

19 Aggiornamento L istruzione update consente di modificare alcuni dei valori assegna9 ai campi di una tabella dei record che soddisfano determinate condizioni Sintassi dell istruzione update: update tabella set campo 1 =valore 1,, campo k =valore k where condizione; Esempio: update studente set nome= Mori where matricola=102030; ATenzione: una istruzione update priva di una condizione esegue l aggiornamento su tuoe le righe (record) della tabella Cancellazione L istruzione delete permete di eliminare i record di una tabella che soddisfano una determinata condizione Sintassi dell istruzione delete: delete from tabella where condizione; Esempio: delete from studente where nome like Mo% or matricola=213243; ATenzione: una istruzione delete priva di una condizione esegue la cancellazione di tug i record (tute le righe) della tabella L operatore like permete di confrontare il valore di un campo con una parte di una stringa, u9lizzando il caratere jolly % Nell esempio elimina i record della tabella studente in cui il campo nome inizia con la stringa Mo M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 19

20 Operazioni di gruppo È possibile otenere atraverso una select anche valori non presen9 nei campi della tabella, ma calcola1 raggruppando più record sulla base di un criterio di aggregazione Esempio: select studente.nome, avg(esame.voto) as media from studente, esame where studente.matricola=esame.matr group by studente.nome order by media desc; select count(*) from studenti; Tipiche funzioni di gruppo sono sum: somma i valori numerici dei campi average/avg: calcola la media aritme9ca dei valori numerici dei campi count: conta i record che soddisfano determinate condizioni SQL e altri linguaggi di programmazione Spesso il linguaggio SQL viene u9lizzato all interno di programmi scriq con altri linguaggi di programmazione (C, C++, Java, Perl, Python, ecc.) Nello sviluppo di un programma è spesso molto u9le il conceto di transazione una transazione raccoglie una serie di operazioni svolte sul database e solo al termine della transazione stessa le esegue effeqvamente (commit) in caso si verifichi un errore durante l esecuzione del programma, è possibile chiudere la transazione annullando tute le operazioni eseguite fino a quel momento (rollback) Esistono librerie di funzioni API per l accesso alle interfacce messe a disposizione dai DBMS Esempio in linguaggio Perl u9lizzando DBI/DBD per MySQL: #!/usr/bin/perl use DBI; $db = DBI- >connect("dbi:mysql:dbname=marcodb", "marco", "marco") or die DBI::errstr; $query = $db- >prepare("select nome, cognome from rubrica order by cognome"); $query- >execute(); for ($i=1; $i <= $query- >rows(); $i++) { ($nome, $cognome) = $query- >fetchrow(); print "Record n. $i\n Nome: $nome\n Cognome: $cognome\n\n"; } $query- >finish(); $db- >disconnect(); M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 20

21 SQL e altri linguaggi di programmazione Un esempio analogo in linguaggio C #include <my_global.h> #include <mysql.h> int main(void) { MYSQL *connessione = mysql_init(null); mysql_real_connect(connessione," ", "marco", "marco", "marcodb, 0,NULL,0); mysql_query(connessione, "select nome, cognome from rubrica order by cognome"); MYSQL_RES *risultato = mysql_store_result(connessione); MYSQL_ROW riga; while (riga = mysql_fetch_row(result)) { printf("nome: %s\ncognome: %s\n\n", row[0], row[1]); } mysql_free_result(risultato); mysql_close(connessione); return(0); } Object- Rela1onal Mapping Spesso per lo sviluppo di programmi che fanno uso di una base da9 relazionale si u9lizzano linguaggi di programmazione object oriented (es.: Java, C#, C++, ecc.) In tali casi una buona ingegnerizzazione del codice la si può raggiungere mappando le classi di oggeg implementate dal programma con en1tà presen1 sul database relazionale, che offrono funzioni di persistenza per gli oggeq otenu9 istanziando tali classi Un prodoto ORM (Object- Rela:onal Mapping) offre delle funzioni di alto livello per realizzare il collegamento tra le classi del programma e le en9tà del database In questo modo il codice sorgente si semplifica, visto che è la libreria ORM ad occuparsi della maggior parte delle ques9oni tecniche di interazione tra il programma e il DBMS Hibernate è un so[ware middleware open source che implementa il servizio ORM per applicazioni scrite in Java: mediante file di configurazione si definisce la mappatura tra oggeq del programma Java ed en9tà presen9 sul DBMS (o che Hibernate deve creare sul DBMS nella fase di inizializzazione) con alcuni metodi messi a disposizione dal middleware si eseguono operazioni di scritura e letura dei da9, operando diretamente sugli oggeq del programma, senza la necessità di u9lizzare diretamente il linguaggio SQL NHibernate è un prodoto equivalente ad Hibernate, per il framework Microso[.net M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 21

22 NO- SQL Database Management Systems Il modello relazionale è potente, flessibile e assai diffuso, ma ha dei limi9, sopratuto quando è necessario tratare moli enormi di da9 o quando è difficile struturare a priori il dato nelle en9tà del database Esistono numerosi modelli per la rappresentazione dei da9, diversi dal modello relazionale Ques9 modelli sono implementa9 in prodoq so[ware disponibili sul mercato e più spesso sui canali del so[ware open source: si trata di prodoq sperimentali o assai solidi e ben strutura9, u9lizza9 per la ges9one affidabili di servizi on- line estremamente onerosi (Google, Facebook, ecc.) Tali prodoq u9lizzano linguaggi di interrogazione del database e di manipolazione dei da9 diversi da SQL: per questo si parla di NO- SQL database, Not Only SQL Database NO- SQL Database Management Systems Document Oriented Database Non memorizzano i da9 in tabelle con campi uniformi per ogni record come nei DB relazionali: ogni record è memorizzato come un documento che possiede determinate carateris9che; qualsiasi numero di campi con qualsiasi lunghezza può essere aggiunto al documento ProdoQ so[ware: IBM Lotus Notes, OrientDB, MongoDB, Apache Solr, ecc. Graph Database Rappresenta i da9 come un grafo ed u9lizza ver9ci e spigoli del grafo per memorizzare informazioni; gli elemen9 del grafo (ver9ci e spigoli) possono rappresentare informazioni con strutura e significato differente ProdoQ so[ware: Neo4j, OrientDB, ecc. Database basa1 su coppie chiave/valore Sono basa9 su array associa9vi, mappe o dizionari: sono cos9tui9 da coppie chiave/valore (es.: nome/marco, cognome/liverani, ecc.) ProdoQ so[ware: BigTable (Google), Berkeley DB, ecc. Database object oriented Implementano un modello ad oggeq, 9picamente integrato con il modello relazionale; consentono l implementazione di metodi per operare su specifici 9pi di dato (immagini fotografiche, da9 spaziali georeferenzia9, da9 con uno specifico significato fisico, ecc.) ProdoQ so[ware: Informix Illustra, IBM DB/2 Universal Database, ecc. M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 22

23 Bibliografia essenziale 1 Atzeni, Ceri, Paraboschi, Torlone, Basi di da: ConceD, linguaggi e archite7ure, McGraw- Hill, Guidi, Dorbolò, Guida a SQL, McGraw- Hill, Codd, A rela:onal model for large shared data banks, Communica9on of the ACM, 13(6), June MySQL, MySQL Reference Manual, htp://dev.mysql.com/doc/refman/5.6/en/ 5 PostgreSQL, PostgreSQL Documenta:on, htp://www.postgresql.org/docs/9.4/sta9c/ Oracle Exadata Database Machine Oracle, leader mondiale nel se7ore dei prodod RDBMS, produce delle macchine server di classe enterprise specificamente proge7ate ed ingegnerizzate per svolgere con la massima efficienza il ruolo di database machine M. Liverani - Dispense del corso IN530 - Sistemi per l'elaborazione delle informazioni 23

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

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

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1 Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge

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

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

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

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

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

Basi di dati Il linguaggio SQL

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

Dettagli

Basi di dati Il linguaggio SQL

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

Dettagli

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

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

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

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

DEFINIZIONI FONDAMENTALI

DEFINIZIONI FONDAMENTALI Consorzio per la formazione e la ricerca in Ingegneria dell'informazione DEFINIZIONI FONDAMENTALI Per vincere ci vuole una buona partenza... Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.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

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

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

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

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

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

Il linguaggio SQL: le basi

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

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati

Dettagli

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

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

Dettagli

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

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

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati Facoltà di Lingue e Letterature Straniere Base di dati (accezione generica, metodologica) Insieme organizzato di dati utilizzati per il supporto

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

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

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

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

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base Sistemi di Elaborazione delle Informazioni DB ed SQL Prof. Silvio Vassallo Modello Relazionale Il modello relazionale si basa sul concetto di RELAZIONE tra insiemi di oggetti. Dati n insiemi A 1,A 2, A

Dettagli

Introduzione a MySQL

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

Dettagli

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

Sistemi Informativi Aziendali II

Sistemi Informativi Aziendali II Modulo 2 Sistemi Informativi Aziendali II 1 Corso Sistemi Informativi Aziendali II - Modulo 2 Modulo 2 La gestione delle informazioni strutturate nell impresa: La progettazione di un Data Base; Le informazioni

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Facoltà di Pianificazione del Territorio A.A. 2011/2012. Informatica

Facoltà di Pianificazione del Territorio A.A. 2011/2012. Informatica Facoltà di Pianificazione del Territorio A.A. 2011/2012 Informatica Le basi di dati 2 Dati e Informazioni Un dato in sé non costituisce un informazione in quanto consiste semplicemente di un insieme di

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

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

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

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

Dettagli

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

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

Dettagli

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

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

SQL: Concetti Base -Prima Parte-

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

Dettagli

TEORIA sulle BASI DI DATI

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

Dettagli

Il linguaggio SQL: 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

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

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

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

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

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

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

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

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

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati 1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 Sistema organizzativo è costituito da una serie di risorse e di regole necessarie

Dettagli

SQL Manuale introduttivo

SQL Manuale introduttivo SQL Manuale introduttivo SOMMARIO INTRODUZIONE... 3 TIPI DI DATI... 3 STRINGHE DI CARATTERI... 3 NUMERI... 3 DATA/ORA... 4 COSTANTI STRINGA... 4 COSTANTI NUMERICHE... 4 COSTANTI DATA/ORA... 5 NOTE SULLA

Dettagli

Introduzione al linguaggio SQL

Introduzione al linguaggio SQL Introduzione al linguaggio SQL Structured Query Language (Linguaggio Strutturato di Interrogazione di Database) prof. Cleto Azzani IPSIA MORETTO BRESCIA (2004) Che cos è un Data Base (Base di dati) Insieme

Dettagli

Basi di Dati Relazionali

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

Dettagli

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

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Corso di Laurea Interfacoltà in Biotecnologie Lezione 3: Basi di Dati Lucido 1 Scopo della lezione Definire cos è una base di dati e un sistema di gestione della base di dati

Dettagli

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

Basi di Da( MySQL & MySQL Workbench. Anna Monreale Basi di Da( MySQL & MySQL Workbench Anna Monreale MySQL MySQL è un DBMS gratuito ed open- source (h@p://www.mysql.com) MySQL può essere uilizzato in Windows, Linux, MacOS X. MySQL è un RDBMS (relaional

Dettagli

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB MODULO 5 DATA BASE MODULO 5 - DATA BASE 1 PROGRAMMA Introduzione: concetti generali di teoria Progettazione rapida introduzione alla progettazione di DB Utilizzo di Access pratica sulla creazione e l utilizzo

Dettagli

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

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

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Informatica I per la. Fisica

Informatica I per la. Fisica Corso di Laurea in Fisica Informatica I per la Fisica Lezione: Software applicativo II Fogli elettronici e Data Base Software: software di sistema (BIOS) sistema operativo software applicativo ROM Dischi

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

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

SQL. Storia e standard

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

Dettagli

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

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

Dettagli

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

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

Informatica Introduzione alle basi di dati

Informatica Introduzione alle basi di dati Informatica Introduzione alle basi di dati Prof. Giovanni Giuffrida e-mail: giovanni.giuffrida@dmi.unict.it 27 November 2014 Basi di Dati - Introd. - Prof. G. Giuffrida 1 Materiale didattico Atzeni,Ceri,Paraboschi,Torlone,

Dettagli

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

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

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Sistema di Gestione di Basi di Dati DataBase Management System DBMS Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base... 45 Variabili, operatori e commenti... 47 Array...

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base... 45 Variabili, operatori e commenti... 47 Array... Prefazione...xiii A chi si rivolge il libro... xiv Struttura e contenuti del libro... xiv Dove trovare aiuto... xvii Le newsletter di SitePoint... xviii I vostri commenti... xviii Convenzioni adottate

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

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

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

Dettagli

Basi di Dati 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

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

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

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

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

Dettagli

PIANO DI LAVORO. a.s. 2014 / 2015

PIANO DI LAVORO. a.s. 2014 / 2015 PIANO DI LAVORO a.s. 2014 / 2015 Materia: INFORMATICA Classe: quinta A Data di presentazione: 7/10/2014 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it - Url: www.itdavinci.it

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

Laboratorio di Basi di Dati Introduzione a SQL

Laboratorio di Basi di Dati Introduzione a SQL Laboratorio di Basi di Dati Introduzione a SQL Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it evoluzione e standards 1970 - E.F. Codd, A Relational Model of Data for Large Shared Data

Dettagli

DATABASE. www.andreavai.it

DATABASE. www.andreavai.it Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni

Dettagli

Il linguaggio SQL. I Sistemi di Gestione di Basi di Dati. Data Management Software

Il linguaggio SQL. I Sistemi di Gestione di Basi di Dati. Data Management Software DB2 Data Management Software Il linguaggio SQL I Sistemi di Gestione di Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute

Dettagli

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Linguaggio SQL Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

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

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Introduzione ai Database e a Microsoft Access

Introduzione ai Database e a Microsoft Access Introduzione ai Database e a Microsoft Access 1 Il Sistema Informativo aziendale Un Sistema Informativo aziendale è costituito: dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda

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