Informatica B. Introduzione alle Basi di Dati e ai DBMS

Documenti analoghi
Informatica B. Introduzione alle Basi di Dati e ai DBMS

Il modello relazionale dei dati. modello relazionale 1

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Algebra relazionale: operazioni

DataBase Management System - DBMS

Elena Baralis 2007 Politecnico di Torino 1

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

Basi di dati (database)

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

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

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Fondamenti di Teoria delle Basi di Dati

Introduzione alle Basi di Dati

Basi di dati. Elena Baralis Politecnico di Torino

Che cos è l informatica?

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

SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Informatica di Base - 6 c.f.u.

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Structured Query Language

PIL Percorsi di Inserimento Lavorativo

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Basi di Dati: Corso di laboratorio

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

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Le Basi di Dati. Sommario. Sistema Informatico. Sistema Informativo. Fondamenti di Informatica Anno Accademico 2010/2011

Informatica per le Scienze Umane. Introduzione al corso: programma

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

MODELLI LOGICI DEI DATI

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

Pag Politecnico di Torino 1

Basi di dati Basi di dati per bioinformatica

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

DATABASE PER IL WEB. Programmazione Web 1

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

RELAZIONI E BASI DI DATI

Il modello relazionale

Dichiarazione degli schemi in SQL DDL 1

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

Caratteristiche dei linguaggi per Database

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

LINGUAGGI E UTENTI DI UN DBMS

Basi di dati 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 2012/13

Sommario. Introduzione... 13

Le basi di dati. Base di dati = dati + DBMS.

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

Le basi di dati. Lez. 3: Il Modello Relazionale

Anno Accademico 2007/2008. Sistemi Informativi. Corso di Laurea in Ingegneria della Gestione Industriale

Informatica per l Ambiente e il Territorio

Informatica per l Ambiente e il Territorio

Modello Relazionale. Architettura a tre livelli di un DBMS

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

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

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Informatica e Bioinformatica: Basi di Dati

BASI DATI: algebra relazionale

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Sistemi Informativi e Basi di Dati

Basi di Dati: Corso di laboratorio

Interrogazioni nidificate

SQL QUERY: Le interrogazioni del database

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

Introduzione ai calcolatori Elettronici

Ordo et connexio rerum idem est ac ordo et connexio idearum

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

Basi di Dati prof. Letizia Tanca

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Introduzione alle basi di dati

DBMS. Alice Pavarani

Corso di Basi di Dati/Laboratorio di Basi di Dati

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012. Basi di dati

Progettazione di basi di dati D B M G

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

Laboratorio di Basi di Dati

Il modello Relazionale.

Basi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

BASI DI DATI. Titolo Prof. Cognome Nome Indirizzo Numero Telefono

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

I database. Introduzione alla teoria delle basi di dati

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

Laboratorio di Basi di Dati

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

DBMS (Data Base Management System)

Interrogazioni nidificate

Transcript:

ormatica B Introduzione alle Basi di Dati e ai DBMS

ormazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.), generalmente in formato numerico o testuale, che l azienda è interessata a registrate in forma permanente ormazione: insieme di dati, elaborazioni di dati o dati inseriti all interno di un contesto che rappresentano un valore per l impresa Ruolo critico dei dati nelle organizzazioni Inizialmente erano utilizzati per specifiche applicazioni Contabilità Vendite Produzione (distinta base e piano di produzione) Cresce, anche per ragioni tecnologiche, la possibilità e la disponibilità di dati nelle aziende La disponibilità di dati ha reso possibili nuove procedure in azienda (es. sistemi di controllo di gestione, business intelligence) I dati hanno caratteristiche più stabili rispetto alle procedure, manuali o automatizzate, che operano su di essi (si pensi alle applicazioni bancarie) 2006 Impianti di Elaborazione 2

Dal dato all informazione Dato: <Stefano Ceri, Basi di dati, IIIA, I Sem> ormazione: Chi insegna basi di dati? Stefano Ceri Quando si tiene il corso? Al I semestre del III anno. 2006 Impianti di Elaborazione 3

Basi di dati e sistemi di gestione di basi di dati Non esiste un unica definizione formale Base dati: raccolta di dati e/o informazioni permanenti organizzata secondo uno schema predeterminato Su una base dati è possibile effettuare operazioni quali: Inserimento Cancellazione Aggiornamento Interrogazioni Sistema di gestione di una base dati (DBMS, Database Management System): sistema software in grado di gestire collezioni di dati che siano Grandi Condivise Persistenti Affidabili Private I DBMS consentono Immissione, Memorizzazione, Cancellazione dei dati Accesso, Elaborazione,Trasferimento: dai dati all'informazione Presentazione, Visualizzazione dell'informazione 2006 Impianti di Elaborazione 4

Confronto con architetture con/senza DBMS software applicativo sistema operativo software applicativo DBMS sistema operativo principale differenza: gestione dei dati unitaria e a più alto livello (tramite linguaggi specializzati) file (distinti) database (unico) 2006 Impianti di Elaborazione 5

Base di dati e file system a confronto PROGRAMMA APPLICATIVO PROGRAMMA APPLICATIVO DATI DATI FILE SYSTEM PROGRAMMA APPLICATIVO DATI DATI PROGRAMMA APPLICATIVO DBMS DATI DATI DATI PROGRAMMA APPLICATIVO PROGRAMMA APPLICATIVO 2006 Impianti di Elaborazione 6

Modello dei dati E un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un elaboratore Ogni modello di dati fornisce meccanismi di strutturazione (analoghi ai costruttori di tipo dei linguaggi di programmazione) che permettono la definizione di nuovi tipi di dato Esistono vari modelli di dati Ad oggi il modello più diffuso nei prodotti disponibili sul mercato è il modello relazionale 2006 Impianti di Elaborazione 7

Cronologia del modello relazionale Inventato da T. Codd del 1970 presso IBM Research di Santa Teresa (California) Primi progetti: SYSTEM R (IBM) Ingres (Berkeley Un.) Prime scoperte tecnologiche 1978 1980 Primi sistemi commerciali: inizio anni 80 Oracle IBM-SQL DS e DB2 Ingres ormix Sybase Successo commerciale: dal 1985 ad oggi 2006 Impianti di Elaborazione 8

Il modello relazionale: tabelle Meccanismo di strutturazione: Tabella Lo schema definisce la struttura della tabella, con istanza si definiscono invece i contenuti della tabella Ogni riga è una tupla di n elementi (qui 4) Le colonne vengono anche dette attributi o domini (tipo) MATR NOME colonna COGNOME CORSO schema Paolo Rossi Ges 307 415 Massimo Andrea Verdi Ferrari Ges istanza 702 Fabio Rossi riga 2006 Impianti di Elaborazione 9

MODELLI LOGICI DEI DATI RELAZIONALE I DATI SONO RAPPRESENTATI COME SEQUENZE DI VALORI DI ATTRIBUTI DATI CARATTERIZZATI DALLE STESSE SEQUENZE DI ATTRIBUTI SONO RAGGRUPPATI IN TABELLE LE ASSOCIAZIONI TRA I DATI SONO OTTENUTE ASSOCIANDO VALORI DI ATTRIBUTI IN TABELLE DIVERSE RELAZIONALE 2006 Impianti di Elaborazione 10

Interrogazioni Quali professori hanno esaminato Carlo? studente MATR NOME CITTA INDIR Carlo Bologna 415 Paola Torino 702 Antonio Roma Log esame MATR COD- CORSO DATA VOTO corso COD- CORSO TITOLO DOCENTE 1 7-9-03 10 1 matematica Barozzi 2 8-1-03 8 2 informatica Meo 702 2 7-9-03 5

Interrogazioni Quali studenti hanno preso 10 in matematica? studente MATR NOME CITTA INDIR Carlo Bologna 415 Paola Torino 702 Antonio Roma Log esame MATR COD- CORSO DATA VOTO corso COD- CORSO TITOLO DOCENTE 1 7-9-03 10 1 matematica Barozzi 2 8-1-03 8 2 informatica Meo 702 2 7-9-03 5

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 2006 Impianti di Elaborazione 15

Schemi e istanze Schema: parte sostanzialmente invariante della base dati, descrive le caratteristiche dei dati Istanza (o stato): parte variabile, comprende i valori effettivi, è destinata cambiare nel tempo studente MATR NOME CITTA Corso Carlo Bologna 415 Paola Torino 702 Antonio Roma Log 2006 Impianti di Elaborazione 16

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' 2006 Impianti di Elaborazione 17

Chiavi nell'esempio: gestione degli esami universitari studente MATR NOME CITTA C-DIP esame MATR COD-CORSO DATA VOTO corso COD-CORSO TITOLO DOCENTE 2006 Impianti di Elaborazione 18

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 2006 Impianti di Elaborazione 19

Importanza delle chiavi L esistenza delle chiavi garantisce l accessibilità a ciascun dato della base di dati Ogni singolo valore è univocamente accessibile tramite: nome della relazione valore della chiave nome dell attributo Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni diverse ( il modello relazionale è basato su valori )

Vincoli di integrità referenziale Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 e un altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell istanza di R1 compaiono come valori delle chiavi (primaria) dell istanza di R2 Casi più complicati si verificano quando: La chiave è composta da più attributi Vi sono più chiavi 2006 Impianti di Elaborazione 21

Esempio Codice 143256 987554 987557 630876 539856 Data 25-10-92 26-10-92 26-10-92 15-10-92 12-10-92 Agente 567 456 456 456 567 Provincia RM RM RM MI MI Numero 4E5432 4E5432 2F7643 2F7643 2F7643 Agenti Auto Matricola Cognome Nome 567 456 638 Rossi Neri Neri Mario Luigi Piero razioni Provincia Numero Proprietario RM RM RM 2F7643 1A2396 4E5432 Verdi Piero Verdi Piero Bini Luca 2006 Impianti di Elaborazione 22 MI 2F7643 Bini Luca

Esempio Codice 143256 987554 987557 630876 539856 Data 25-10-92 26-10-92 26-10-92 15-10-92 12-10-92 Agente 567 456 456 456 567 Provincia RM RM RM MI MI Numero 4E5432 4E5432 2F7643 2F7643 2F7643 Agenti Auto Matricola Cognome Nome 567 456 638 Rossi Neri Neri Mario Luigi Piero razioni Provincia Numero Proprietario RM RM RM 2F7643 1A2396 4E5432 Verdi Piero Verdi Piero Bini Luca 2006 Impianti di Elaborazione 23 MI 2F7643 Bini Luca

Esempio Codice 143256 987554 987557 630876 539856 Data 25-10-92 26-10-92 26-10-92 15-10-92 12-10-92 Agente 567 456 456 456 567 Provincia RM RM RM MI MI Numero 4E5432 4E5432 2F7643 2F7643 2F7643 Agenti Auto Matricola Cognome Nome 567 456 638 Rossi Neri Neri Mario Luigi Piero razioni Provincia Numero Proprietario RM RM RM 2F7643 1A2396 4E5432 Verdi Piero Verdi Piero Bini Luca 2006 Impianti di Elaborazione 24 MI 2F7643 Bini Luca

Esempio razioni Codice Data Agente Provincia Numero 987554 26-10-92 456 RM 2F7643 630876 15-10-92 456 FI 4E5432 Agenti Auto Matricola 567 Cognome Rossi Nome Mario Provincia RM Numero 1A2396 Proprietario Verdi Piero 638 Neri Piero FI MI 4E5432 2F7643 Bini Luca Luci Gino 2006 Impianti di Elaborazione 25

SQL Il nome sta per Structured Query Language E più di un semplice linguaggio di query: si compone di una parte Data Definition Language (DDL) e di una Data Manipulation Language (DML) DDL: definizione di domini, tabelle, indici, autorizzazioni, viste, vincoli, procedure, trigger DML: linguaggio di query, linguaggio di modifica, comandi transazionali 2006 Impianti di Elaborazione 26

SQL come linguaggio di interrogazione Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono tradotte dall ottimizzatore (query optimizer) nel linguaggio procedurale interno al DBMS Il programmatore si focalizza sulla leggibilità, non sull efficienza È l'aspetto più qualificante delle basi di dati relazionali 2006 Impianti di Elaborazione 27

Interrogazioni SQL Le interrogazioni SQL hanno una struttura select-from-where Sintassi: select AttrEspr [[ as ] Alias ] {, AttrEspr [[ as ] Alias ] } from Tabella [[ as ] Alias ] {, Tabella [[ as ] Alias ] } [ where Condizione ] Le tre parti della query sono chiamate: clausola select / target list clausola from clausola where La query effettua il prodotto cartesiano delle tabelle nella clausola from, considera solo le righe che soddisfano la condizione nella clausola where e per ogni riga valuta le espressioni nella target list 2006 Impianti di Elaborazione 28

Esempio: gestione degli esami universitari Studente MATR NOME CITTA CDIP Carlo Bologna 415 Paola Torino 702 Antonio Roma Log Esame MATR COD- CORSO DATA VOTO Corso COD- CORSO TITOLO DOCENTE 1 7-9-97 30 1 matematica Barozzi 2 8-1-98 28 2 informatica Meo 702 2 7-9-97 20 2006 Impianti di Elaborazione 29

Interrogazione semplice select * from Studente MATR NOME CITTA CDIP Carlo Bologna 415 Paola Torino 702 Antonio Roma Log 2006 Impianti di Elaborazione 30

Interrogazione semplice select Nome from Studente where CDip = Log NOME Antonio 2006 Impianti di Elaborazione 31

Sintassi nella clausola select select * select Nome, Città select distinct Città select Città as LuogoDiResidenza select RedditoCatastale * 0.05 as TassaImu select sum(salario) 2006 Impianti di Elaborazione 32

Sintassi della clausola from from Studente from Studente as X from Studente, Esame from Studente join Esame on Studente.Matr=Esame.Matr 2006 Impianti di Elaborazione 33

Sintassi della clausola where Espressione booleana di predicati semplici Alcuni predicati aggiuntivi: between: Data between 1-1-90 and 31-12-99 2006 Impianti di Elaborazione 34

Congiunzione di predicati Estrarre gli studenti di informatica originari di Bologna: select * from Studente where CDip = and Città = Bologna Risultato: Matr Nome Città CDip Carlo Bologna 2006 Impianti di Elaborazione 35

Operatore like Estrarre gli studenti con un nome che ha una a in seconda posizione e finiscono per o : select * from Studente where Nome like _a%o Risultato: Matr Nome Città CDip Carlo Bologna 2006 Impianti di Elaborazione 36

Disgiunzione di predicati Estrarre gli studenti originari di Bologna o di Torino: select * from Studente where Città = Bologna or Città = Torino Risultato: Matr Nome Città CDip Carlo Bologna 415 Paola Torino 2006 Impianti di Elaborazione 37

Espressioni booleane Estrarre gli studenti originari di Roma che frequentano il corso in ormatica o in Logistica: select * from Studente where Città = Roma and (CDip = or CDip = Log ) Risultato: Matr Nome Città CDip 702 Antonio Roma Log 2006 Impianti di Elaborazione 38

Duplicati In SQL, le tabelle prodotte dalle interrogazioni possono contenere più righe identiche tra loro I duplicati possono essere rimossi usando la parola chiave distinct 2006 Impianti di Elaborazione 39

Duplicati select distinct CDip from Studente CDip Log select CDip from Studente CDip Log 2006 Impianti di Elaborazione 40

Clausola from select * from R,S Realizza il prodotto cartesiano R S E una tabella: schema : gli attributi di R e S (grado(rxs)= grado(r)+grado(s)) istanza : tutte le possibili coppie di tuple di R e S (card(rxs)=card(r)*card(s)) 2006 Impianti di Elaborazione 41

2006 Impianti di Elaborazione 42 Esempio A a b B 1 3 C c b a D 1 3 2 R1(A,B) R2(C,D) D 1 3 2 1 3 2 A a a a b b b B 1 1 1 3 3 3 C c b a c b a R1xR2 (A,B,C,D)

Interrogazione con due tabelle Estrarre il nome degli studenti di ormatica che hanno preso almeno un 30 select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = and Voto = 30 2006 Impianti di Elaborazione 43

Interrogazione semplice con due tabelle Studente MATR NOME CITTA CDIP Esame MATR COD- CORSO DATA VOTO Carlo Bologna 1 7-9-97 30 415 Paola Torino 2 8-1-98 28 702 Antonio Roma Log 702 2 7-9-97 20 2006 Impianti di Elaborazione 44

Interrogazione semplice con due tabelle MATR NOME CITTA CDIP MATR COD-CORSO DATA VOTO Carlo Bologna 1 7-9-97 30 Carlo Bologna 2 8-1-98 28 Carlo Bologna 702 2 7-9-97 20 415 Paola Torino 1 7-9-97 30 415 Paola Torino 2 8-1-98 28 415 Paola Torino 702 2 7-9-97 20 702 Antonio Roma Log 1 7-9-97 30 702 Antonio Roma Log 2 8-1-98 28 702 Antonio Roma Log 702 2 7-9-97 20 2006 Impianti di Elaborazione 45

Interrogazione semplice con due tabelle Estrarre il nome degli studenti di ormatica che hanno preso almeno un 30 select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = and Voto = 30 NOME Carlo 2006 Impianti di Elaborazione 46

Join di due tabelle select Nome from Studente, Esame where Studente.Matr = Esame.Matr and CDip = and Voto = 30 select Nome from Studente join Esame on Studente.Matr = Esame.Matr where CDip = and Voto = 30 2006 Impianti di Elaborazione 47

Interrogazione semplice con tre tabelle Estrarre il nome degli studenti che hanno preso 30 in Matematica select Nome from Studente, Esame, Corso where Studente.Matr = Esame.Matr and Corso.CodCorso = Esame.CodCorso and Titolo = Matematica' and Voto = 30 NOME Carlo 2006 Impianti di Elaborazione 48