Sommario Le basi di dati Cenni storici e introduzione

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

Calcolo Relazionale.
DB - Modello relazionale dei dati
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Basi di Dati prof. A. Longheu
Gestione Dati & Archivi
Il modello relazionale: strutture e vincoli
ESEMPI DI ARCHIVI DI DATI
Sommario Gli algoritmi I linguaggi per la formalizzazione di algoritmi
1 Informatica Presentazione del corso ENIAC Electronical Numerical Integrator and Calculator Il primo calcolatore elettronico, lENIAC Electronical Numerical.
L’uso dei database in azienda
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Progettazione di una base di dati
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
Corso di Informatica - Basi di Dati Introduzione alle basi di dati Gabriella Pasi
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Implementare un modello di dati
INFORMATICA Corso Base Modulo G: I DataBase  Access.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
DAGLI ARCHIVI AI DATABASE
MODELLO LOGICO DEI DATI
Progettare un database
Introduzione a Oracle 9i
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Introduzione alle basi di dati
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Corso di Laurea in Ingegneria per l’Ambiente e il Territorio Informatica per l’Ambiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
I DATABASE.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Informatica Introduzione alle basi di dati Lezione 2 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione Programma del Corso.
Basi di dati: introduzione parte prima Ernesto Damiani.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Le basi di dati.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati.
Transcript della presentazione:

Sommario Le basi di dati Cenni storici e introduzione UNIVAC Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti. L’algebra di Boole Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true e false, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati. Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione. Sommario Le basi di dati Cenni storici e introduzione Da sistemi informativi a sistemi informatici: le basi di dati e i DBMS Il modello relazionale Vincoli Chiavi Algebra relazionale

Le basi di dati

Cenni storici Gli archivi costituiscono una memoria di lavoro indispensabile per gestire quantità ingenti di informazione, per ordinare gli elementi significativi, metterli in relazione, e filtrare i dati che devono essere utilizzati nelle varie circostanze Prima della diffusione dei sistemi informatici, gli archivi erano gestiti in forma cartacea, con schedari e registri, che permettevano di catalogare e ordinare i dati secondo un unico criterio di ricerca e rendevano disagevole il recupero e l’analisi dell’informazione L’avvento dell’informatica ha permesso l’integrazione, in un unico programma applicativo, delle funzionalità di archiviazione e gestione dei dati

Introduzione  1 Le basi di dati, ed i relativi programmi di gestione, sono sistemi che permettono la manipolazione di grandi quantità di informazione, per raggiungere gli scopi di una qualche organizzazione (azienda, istituzione, etc.): Raccolta, acquisizione Archiviazione, conservazione Elaborazione, trasformazione, produzione Distribuzione, comunicazione, scambio

Introduzione  2 Le attività di gestione delle informazioni, così come le informazioni stesse, mentre a livello umano possono essere realizzate usando idee informali e linguaggio naturale, a livello informatico devono essere opportunamente formalizzate e codificate Tuttavia, tali formalizzazioni sono per lo più anteriori alla realizzazione dei sistemi informatici Nei sistemi informatici le informazioni vengono rappresentate in modo strutturato ed essenziale (mediante i dati)

Introduzione  3 Il database permette la creazione di una memoria digitale vasta ed “intelligente”, che può essere utilizzata a diversi livelli di complessità Il database è un insieme integrato di informazioni omogenee, che fornisce strumenti, quali tabelle, query, maschere e report, per la catalogazione, l’ordinamento e la ricerca dei dati

Basi di dati oggi... Sistemi informativi Informazioni Dati DBMS DBMS borsa DBMS orari Sistemi informativi Informazioni Dati

Sistema informativo Sottosistema di un’organizzazione che gestisce acquisizione elaborazione conservazione produzione (distribuzione) delle informazioni di interesse Ogni organizzazione ha un sistema informativo Le informazioni sono un “bene” L’esistenza del sistema informativo è indipendente dalla sua automazione (sistema informatico)

Sistema informatico Gestisce un sistema informativo in modo automatizzato Garantisce che i dati siano conservati in modo permanente su dispositivi di memoria Permette un aggiornamento veloce dei dati per riflettere rapidamente le loro variazioni Rende i dati accessibili alle interrogazioni degli utenti Può essere distribuito sul territorio Nota: prima di essere automatizzati, molti sistemi informativi si sono evoluti verso una razionalizzazione e standardizzazione delle procedure e dell’organizzazione delle informazioni

Gestione delle informazioni Modo di gestire e comunicare le informazioni accesso, elaborazione, trasmissione lingua scritta e parlata disegni, grafici, schemi codici e numeri Modo di memorizzare l’informazione ricordata a memoria copia cartacea in formato elettronico

Sistemi per la gestione di informazioni Nelle attività standardizzate dei sistemi informativi complessi sono state introdotte col tempo forme di organizzazione e codifica delle informazioni Ad esempio, nei servizi anagrafici si è iniziato con registrazioni discorsive e poi  nome e cognome estremi anagrafici codice fiscale... una chiave per tutti!

I sistemi informativi Rendono disponibili le informazioni Permettono di gestirle in maniera efficace Non sono legati alla loro realizzazione automatizzata (sistema informatico) Informazione  dato L’informazione si ottiene interpretando opportunamente i dati Mario Rossi 0577233601 Numero Numero di telefono di Mario Rossi

Dati e informazioni Dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; in informatica, elementi di informazione costituiti da simboli che devono essere elaborati Informazione: notizia o elemento che consente di avere conoscenza di fatti, situazioni, modi di essere

Base di dati È una collezione di dati utilizzata per rappresentare le informazioni di interesse in un sistema informativo I dati hanno vita più lunga delle procedure che operano su di essi Gestione di una base di dati Organizzazione e conservazione dei dati Operazioni per la gestione e l’accesso ai dati

Un esempio: la rubrica telefonica Dati Nome Cognome Indirizzo Telefono Mario Rossi Via Garibaldi 10 0577233601 Operazioni Cercare un numero, dato il nome Inserire un nuovo numero Modificare un indirizzo ……

Basi di dati: dove si trovano? Anagrafe — anagrafe residenti, anagrafe studenti Servizi bancari — conti correnti, Bancomat, carte di credito Elenchi delle utenze telefoniche Orari ferroviari Prenotazione voli Catalogo prodotti (CD,…) …… Accessibili in modo distribuito (Sportelli Bancomat, negozi,...) Accessibili da Internet (Orari FFSS, siti di ecommerce,...) Accessibili da terminali dedicati (Agenzie di viaggio, biblioteche...) ……

DBMS DBMS — Data Base Management System — è un sistema software per gestire basi di dati: ha il compito di amministrare i file in una base di dati, in modo persistente e condiviso Caratteristiche Grandi dimensioni uso della memoria secondaria Condivisione accesso di più utenti a dati comuni; si riduce la ridondanza dei dati e la possibilità di inconsistenze ed errori; necessario un meccanismo di contollo di concorrenza Persistenza i dati rimangono memorizzati Affidabilità capacità di non perdere i dati in caso di malfunzionamento (backup e recovery ) Privatezza ciascun utente è riconosciuto da un username e una password e ha autorizzazione ad effettuare soltanto certe operazioni Efficienza capacità di svolgere le operazioni in tempo ragionevole e con risorse di calcolo e memoria accettabili

A cosa serve una base di dati  1 Per l’utente finale, l’uso più comune di una base di dati è l’esecuzione di opportune interrogazioni, query, predefinite Esempi tipici di interrogazioni sono… l’accesso al catalogo elettronico di una biblioteca la consultazione (online oppure sulle apposite macchine nelle stazioni) degli orari dei treni la prenotazione di un volo aereo la consultazione delle informazioni relative all’andamento dei titoli in borsa ……

A cosa serve una base di dati  2 Le interrogazioni possono essere molto semplici… Elencami tutti i libri di Calvino che sono presenti in biblioteca …ma possono essere anche molto complesse Elencami i libri di Calvino che nel titolo hanno una parola che compare anche nel titolo di un libro di Pavese e che sono stati presi in prestito almeno 10 volte Le interrogazioni possono essere espresse usando opportuni linguaggi, detti query language, che si differenziano in base al modello dei dati adottato L’uso di linguaggi di programmazione specializzati costituisce la maggiore differenza fra le basi di dati ed i fogli elettronici (oltre alla diversa quantità di informazione trattabile)

Descrizione dei dati nei DBMS Livelli diversi di descrizione e rappresentazione dei dati permettono l’indipendenza dei dati dalla rappresentazione fisica i programmi fanno riferimento alla struttura a livello più alto le rappresentazioni fisiche possono essere modificate senza necessità di modifica dei programmi Si introduce il concetto di modello dei dati modalità usata per organizzare i dati e descriverne la struttura: offre meccanismi di rappresentazione per descrivere sinteticamente il formato dei dati

Il modello dei dati Modalità prescelta per l’organizzazione dei dati e per descriverne la struttura: Relazionale, gerarchica, reticolare, ad oggetti... Il modello relazionale permette di organizzare i dati in insiemi di record a struttura fissa (concetto di relazione) Nome Cognome Indirizzo Telefono record Mario Rossi Via Verdi 5 0577234567 Marco Bianchi Via Righi 73 0557456783 Anna Dati Via Romeo 4 0578345234

Schemi ed istanze Schema: parte non variabile dei dati, è il formato del record (nome della relazione ed attributi) RUBRICA(Nome,Cognome,Indirizzo,Telefono) Istanza (stato): valori effettivi contenuti nella base di dati

schema esterno (vista) Schemi e astrazione schema esterno (vista) descrizione, allo stesso livello di astrazione dello schema logico, di una parte della base di dati (es., la parte accessibile ad una classe di utenti) utente (applicazioni) descrizione della base di dati nel modello logico (es., struttura della tabella) schema logico rappresentazione dello schema logico per mezzo di strutture di memorizzazione (file) schema fisico il livello logico è indipendente da quello fisico: una tabella è utilizzata nello stesso modo qualunque sia la sua realizzazione fisica (che può anche variare nel tempo) DB

Esempio Una “vista” relazionale Corso Docente Basi di dati Rossi Impianti Neri Linguaggi e traduttori Verdi CdL Materia Anno II Basi di dati 5 Impianti Linguaggi e traduttori 4 IE DOCENZA MANIFESTO ELETTRONICA CdL Materia Anno IE Basi di dati 5 Linguaggi e traduttori Una “vista” relazionale

Utenti di un DBMS L’amministratore della base di dati (DBA) è responsabile della progettazione, del controllo e dell’amministrazione della base di dati; configura il DBMS per garantirne le prestazioni, assicura l’affidabilità del sistema, gestisce le autorizzazioni di accesso I progettisti e programmatori di applicazioni realizzano programmi che accedono alla base di dati; utilizzano gli strumenti di sviluppo per la creazione di interfacce verso la base di dati Gli utenti, in grado di utilizzare i linguaggi interattivi di interrogazione, effettuano transazioni (attività frequenti e predefinite) o attività casuali

Transazioni  1 Programmi che realizzano attività frequenti e predefinite, con poche eccezioni, previste a priori Esempi: versamento presso uno sportello bancario emissione di un certificato anagrafico prenotazione aerea Il termine transazione ha un’altra accezione, più specifica: una transazione è un insieme di operazioni sulla base di dati che devono essere considerate in modo indivisibile (o atomico); ovvero, o tutte le operazioni dell’insieme sono eseguite correttamente oppure nessuna

Transazioni  2 L’effetto di una transazione deve essere corretto, anche in presenza di transazioni concorrenti eseguite nello stesso intervallo di tempo Gli effetti di una transazione conclusasi positivamente devono essere definitivi, ovvero devono essere garantiti anche in presenza di guasti e di esecuzione concorrente Costituiscono una transazione... ...le operazioni di addebitamento dell’importo prelevato da un Bancomat e l’erogazione del denaro ...lo spostamento di fondi fra due conti (le operazioni di accreditamento su un conto e addebitamento su un altro)

Vantaggi e svantaggi dei DBMS dati come risorsa comune a disposizione di tutta l’organizzazione gestione centralizzata con possibilità di standardizzazione disponibilità di servizi integrati riduzione di ridondanze e inconsistenze grazie alla condivisione indipendenza dei dati (favorisce lo sviluppo e la manutenzione delle applicazioni) Svantaggi costo dei prodotti e della transizione verso di essi (strutture, hardware/software, personale) non scorporabilità di eventuali servizi non utili (con riduzione di efficienza)

Il modello relazionale Codd, 1970 Adottato dalla maggior parte dei DBMS in commercio Definisce come sono organizzati i dati e non come sono memorizzati e gestiti dal sistema informatico Relazione – Tabella Il concetto di relazione proviene dalla matematica, mentre quello di tabella è intuitivo Il modello relazionale permette di trattare i dati a livello logico senza preoccuparsi del livello fisico, ovvero di come i dati sono effettivamente elaborati e memorizzati: per accedere ai dati non è necessario conoscere le strutture fisiche (file) con cui sono realizzati!

Prodotto cartesiano  1 Consideriamo l’insieme dei nomi e dei numeri di telefono dei dipendenti di un’azienda: Mario Rossi Luca Verdi Anna Bianchi 2345 2367 2378 2356 D1 D2 Il prodotto cartesiano D1 D2 è l’insieme di tutte le coppie ordinate (NOME,TELEFONO)

Prodotto cartesiano  2 Il prodotto cartesiano contiene tutte le possibili associazioni fra gli elementi degli insiemi La rubrica dei numeri telefonici contiene solo alcune possibili coppie

Relazioni Una relazione matematica sugli insiemi D1 e D2 (domini) è un sottoinsieme del prodotto cartesiano D1  D2 La rubrica contiene solo le coppie (NOME,TELEFONO) che esistono Mario Rossi 2345 Luca Verdi 2367 2378 Anna Bianchi 2356

Un esempio D1 = Squadre di Serie A D2 = Squadre di Serie A D3 = Numero Relazione Risultati delle partite della 27° giornata del campionato 2004/05 Fiorentina Reggina 2 1 Inter Lecce 2 1 Messina Lazio 1 Parma Cagliari 3 2 Sampdoria Chievo 1 Siena Brescia 2 3 Udinese Bologna 1 Livorno Palermo 2 2

Relazioni con attributi Ogni nupla della relazione stabilisce un legame fra i dati Il significato dei valori dipende dall’ordine con cui sono elencati nella nupla SquadraDiCasa SquadraOspite RetiCasa RetiOspitata Fiorentina Reggina 2 1 Un nome può essere associato a ciascuna componente della nupla I nomi associati ai domini si dicono attributi e descrivono il ruolo che il dominio ha nella relazione

Record e campi Ciascuna nupla della relazione può essere vista come un record Gli attributi definiscono la struttura del record, ovvero i suoi campi Si può accedere al valore di un attributo di un record usando il nome del campo tuple SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Fiorentina Reggina 2 1 Inter Lecce Messina Lazio Si usa il termine tupla per indicare una riga di n valori corrispondenti ad attributi (l’ordine non è significativo)

Tuple e relazioni Una relazione su X è un insieme di tuple su X (X è un insieme di attributi) Si usa la definizione di tupla al posto di n–upla: In una n–upla gli elementi sono individuati per posizione In una tupla gli elementi sono individuati per attributi relazione tuple attributi serie A N domini SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Fiorentina Reggina 2 1 Inter Lecce Messina Lazio

Relazioni e basi di dati Una base di dati è in genere costituita da più relazioni Si possono creare corrispondenze fra le tuple di relazioni distinte Le corrispondenze si ottengono fra tuple di relazioni diverse aventi gli stessi valori su un insieme assegnato di attributi

Corrispondenze fra relazioni Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/1982 A80198330 Neri Luca 04/08/1985 A80295640 Felici Lorenzo 25/02/1983 A80197456 Melli Mara 17/10/1980 STUDENTI ESAMI CORSI

Schemi per basi di dati Uno schema di relazione R(X) è costituito dal nome della relazione e da un insieme di attributi, X={A1, A2,…, An} Uno schema di base di dati è un insieme di schemi di relazioni con nomi diversi: R={R1(X1), R2(X2),…, Rm(Xm)} STUDENTI(Matricola, Cognome, Nome, Data di Nascita) R = { STUDENTI(Matricola, Cognome, Nome, Data di Nascita), ESAMI(Studente, Voto, Corso), CORSI(Codice, Titolo, Docente) }

Esempio: archivio forniture Codice Descrizione Magazzino Costo A0001 Chiodi 35mm 234000 0.15 A0004 Viti 12mm 102400 0.25 PRODOTTI P0010 Pinza 200 7 P0230 Cacciavite 600 3.50 Articolo Quantita Data Cliente A0001 3000 25/06/2004 0034 A0004 500 25/06/2004 0034 P0010 3 12/07/2004 0001 FORNITURE P0230 2 13/07/2004 0101 A0004 100 15/07/2004 0034 Codice Nome Indirizzo P. IVA 0001 Carlo Berti Via Roma 6 02332002 0034 BCD Spa Via Verdi 4 04554303 0101 A&G Srl Viale Morgagni 16 10920393 0076 Luca Nelli Piazza Bixio 5 08832822 CLIENTI

Informazione incompleta Può accadere che il valore di un attributo non sia disponibile per tutte le tuple Si introduce un valore nullo (NULL) che denota l’assenza di informazione sul valore di un attributo per una data tupla Il valore di un attributo può essere sconosciuto, inesistente o privo di informazione (non si sa se esiste) inesistente sconosciuto

Vincoli di integrità Occorre che le tuple rappresentino informazioni corrette per l’applicazione: Ex: Valori nulli Non ammesso! Matricola Cognome Nome Data di nascita NULL Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/19 8 2 A80197456 Melli Mara STUDENTI Può essere accettabile Alcuni campi non possono assumere valori nulli! In generale, occorre che i valori assegnati agli attributi in ciascuna tupla soddisfino una serie di vincoli

Vincoli intrarelazionali Sono vincoli che coinvolgono il valore degli attributi all’interno di una stessa relazione: Valore non ammesso Combinazione non ammessa Non ci possono essere due studenti con matricola uguale! Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1985 A80293450 Rossi Andrea 13/04/1982 A80198760 Felici Lorenzo 25/02/1983 A80197456 Melli Mara 17/10/1980

Vincoli interrelazionali Sono vincoli che coinvolgono più relazioni Garantiscono l’integrità dei riferimenti fra tabelle ESAMI CORSI ?

Vincoli di tupla Esprimono condizioni sui valori degli attributi di ciascuna tupla indipendentemente dalle altre (intrarelazionali) Sono espressi con predicati che devono essere veri per tutte le tuple Possono anche essere definiti da espressioni aritmetiche che legano fra loro i valori degli attributi (Voto18) AND (Voto30) NOT((Lode=‘L’) AND (Voto30)) PAGAMENTI(Data,Importo,Ritenute,Netto) Netto = Importo – Ritenute

Chiavi I vincoli di chiave sono fondamentali per il modello relazionale Una chiave è un insieme di attributi utilizzato per identificare univocamente le tuple di una relazione Matricola Nome, Cognome, Data di Nascita, Luogo di Nascita SI Nome, Cognome, Corso Nome, Cognome, Data di Nascita NO

Superchiavi e chiavi Un insieme K di attributi è una superchiave per una relazione R se R non contiene due tuple distinte t1 e t2 con t1[K]=t2[K] Un insieme di attributi K è una chiave per una relazione R se è una superchiave minimale (cioè non esiste una superchiave K’ che è contenuta in K) CHIAVI (Superchiavi Minimali) {Matricola} {Nome, Cognome, Data di Nascita, Luogo di Nascita} SUPERCHIAVI {Matricola, Nome} {Nome, Cognome, Data di Nascita, Luogo di Nascita, Corso} {Matricola, Corso}

Scelta delle chiavi La scelta della chiave deve tenere conto delle proprietà del mondo reale da cui provengono i dati STUDENTI(Matricola,Cognome,Nome,Data di Nascita,Luogo di Nascita,Corso) {Cognome,Nome,Corso} può essere una chiave nel caso che in un dato ateneo (e quindi nella base di dati) non ci siano due studenti con ugual Nome e Cognome iscritti allo stesso corso… ma niente vieta che possa accadere in futuro! Può essere aggiunto un campo ad hoc (ad esempio la matricola) da usare come chiave I campi corrispondenti alla chiave primaria non possono assumere valori nulli

Integrità referenziale Le corrispondenze fra i dati in relazioni diverse si stabiliscono per mezzo dei valori di chiavi delle tuple AGENTI AUTO INFRAZIONI Matricola: chiave primaria per AGENTI chiave esterna per INFRAZIONI Prov, Numero: chiave primaria per AUTO Codice Data Agente Art Prov Numero 174655 25-12-2002 672 44 FI M363521 156732 13-05-2003 223 12 SI BC637ZY Proprietario Indirizzo 456345 17-08-2002 GR ZA731CD Gilli Luca Via Oro Tilli Nedo Via Abete Billi Aldo Via Sole

Vincoli di integrità referenziale Un vincolo di integrità referenziale (foreign key, chiave esterna) fra un insieme di attributi X di una relazione R1 e una relazione R2 è soddisfatto se i valori su X di ciascuna tupla in R1 compaiono come valori della chiave (primaria) dell’istanza di R2 Codice Data Agente Art Prov Numero 174655 25-12-2002 672 44 FI M363521 INFRAZIONI 156732 13-05-2003 223 12 SI BC637ZY 456345 17-08-2002 345 44 GR ZA731CD ? AGENTI Occorre definire un vincolo di integrità referenziale fra l’attributo Agente della relazione INFRAZIONI e la relazione AGENTI (chiave primaria Matricola)

Un esempio AUTOVEICOLI INCIDENTI vincolo di integrità referenziale fra l’attributo Targa1 della relazione INCIDENTI e la relazione AUTOVEICOLI 2) vincolo di integrità referenziale fra l’attributo Targa2 della relazione

Algebra relazionale È basata su un insieme di operatori definiti su relazioni e che producono relazioni Si possono combinare gli operatori di base per ottenere interrogazioni complesse operatori insiemistici (unione, intersezione, differenza) ridenominazione, selezione, proiezione join (join naturale, prodotto cartesiano, theta–join)

Operatori insiemistici  1 Hanno senso solo se si applicano a relazioni con lo stesso schema (con gli stessi attributi) L’unione di due relazioni R1(X) e R2(X) è la relazione R(X)= R1(X) U R2(X) che contiene le tuple che appartengono ad R1 oppure ad R2, oppure ad entrambe Laurea 1° livello Laurea 2° livello STUDENTI

Operatori insiemistici  2 L’intersezione di due relazioni R1(X) e R2(X), definite su un insieme di attributi X, è la relazione R(X)= R1(X) R2(X) contenente le tuple che appartengono sia a R1(X) che a R2(X) La differenza di due relazioni R1(X) e R2(X), definite su un insieme di attributi X, è la relazione R(X)= R1(X) – R2(X) contenente le tuple che appartengono a R1(X) ma non a R2(X) U SPECIALIZZATI LAUREATI SPECIALIZZATI  LAUREATI SPECIALIZZATI – LAUREATI

Ridenominazione Con l’operazione di ridenominazione si modifica il nome degli attributi lasciando inalterato il contenuto delle relazioni IMPIEGATI OPERAI Sede,RetribuzioneAgenzia,Stipendio(IMPIEGATI) Sede,RetribuzioneFabbrica,Salario(OPERAI) Sede,RetribuzioneAgenzia,Stipendio(IMPIEGATI)  Sede,RetribuzioneFabbrica,Salario(OPERAI)

Selezione L’operatore di selezione cond (R) produce una relazione che contiene le tuple della relazione R che soddisfano la condizione cond. Le condizioni di selezione possono prevedere confronti fra attributi e fra attributi e costanti e possono essere costruite combinando condizioni più semplici con i connettivi logici  (or),  (and) e  (not) IMPIEGATI(Cognome, Nome, Età, Stipendio) Età<30 AND Stipendio>2.000(IMPIEGATI) Vengono selezionati i record relativi ad impiegati con età minore di 30 anni e stipendio superiore a 2000€

Esempi di selezione Età<30 AND Stipendio>2.000(IMPIEGATI) Città di Nascita=Residenza(CITTADINI) CITTADINI

Proiezione Dati una relazione R(X) e un sottoinsieme Y degli attributi in X, la proiezione di R su Y, Y(R), è l’insieme delle tuple su Y ottenute dalle tuple di R considerando solo i valori su Y Cognome,Nome(DOCENTI) DOCENTI Cat,Stipendio(DOCENTI)

Join È l’operatore che permette di correlare dati contenuti in relazioni diverse confrontando i valori contenuti in esse join naturale è un operatore che correla dati in relazioni diverse sulla base di valori uguali in attributi con lo stesso nome; il risultato è una relazione che ha per attributi l’unione degli attributi delle relazioni di partenza e le tuple ottenute combinando quelle delle relazioni con valori uguali sugli attributi comuni IMPIEGATI CAPOREPARTO IMPIEGATI CAPOREPARTO

Un esempio di join COORDINATORI RICERCATORI RICERCATORI COORDINATORI Ciascuna tupla della prima relazione è combinabile con tutte le tuple dell’altra; il risultato contiene un numero di tuple pari al prodotto del numero di tuple nelle due relazioni originarie

Infrazioni e auto INFRAZIONI AUTOVEICOLI INFRAZIONI AUTOVEICOLI

Theta–join È un operatore derivato: corrisponde alla generazione di tutte le possibili combinazioni fra le tuple delle due relazioni seguita da una selezione basata su una condizione F R1 F R2 = F( R1 R2) Selezione delle tuple che soddisfano F Tutte le possibili combinazioni delle tuple È importante dal punto di vista pratico perché è molto utilizzato nei sistemi di basi di dati esistenti

Un esempio di theta–join PROGETTI RICERCATORI RICERCATORI PROGETTI RICERCATORI Progetto=Codice PROGETTI

Query in algebra relazionale  1 Un’interrogazione, o query, a una base di dati produce una serie di record che soddisfano i criteri richiesti È una funzione che, applicata ad un’istanza di base di dati, produce una relazione, ovvero dei dati organizzati come tuple di una relazione Le interrogazioni si possono rappresentare con gli operatori dell’algebra relazionale che forniscono una procedura per calcolarne il risultato

Query in algebra relazionale  2 Con le query è possibile recuperare i dati dalle tabelle e organizzarli in modo diverso Le query permettono di utilizzare le tabelle in modo dinamico… …mettendo in relazione le informazioni …filtrando i dati di interesse …effettuando ricerche incrociate sui record che rispondono a determinati criteri

Un esempio di interrogazione SUPERVISIONE IMPIEGATI Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 1.700€

I passi dell’interrogazione: 1 Si selezionano gli impiegati che guadagnano più di 1.700€ Stipendio>1.700(IMPIEGATI) Si associano gli impiegati trovati con i rispettivi capi Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE

I passi dell’interrogazione: 2 Si estrae la matricola dei capi Capo( Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE) Si associa la matricola con la relazione IMPIEGATI per ottenere le informazioni sui capi e poi si proietta sugli attributi richiesti (Nome, Stipendio) Nome,Stipendio (IMPIEGATI Matricola=Capo ( Capo( Stipendio>1.700(IMPIEGATI) Impiegato=Matricola SUPERVISIONE)))

Esempio: Azienda Un DBMS, a differenza di un semplice gestore di file, lavora a livello dei singoli campi nei singoli record del file, ovvero agisce a livello dei singoli attributi sulle tuple della tabella relazionale Sia data la tabella IMPIEGATO: ID Nome Età Stipendio_orario Ore Stipendio 86 Giulia Invernizzi 51 16.60 € 94 1560.40 € 123 Francesca Perrera 18 8.50 € 185 1572.50 € 149 Franco Toccasana 43 12.35 € 250 3087.50 € 71 Gianni Calvini 53 17.80 € 245 4361.00 € 165 Bruno Ferri 17 6.70 € 355.10 €

Esempio: Azienda Un DBMS può eseguire la seguente interrogazione: select id, nome, età, stipendio_orario, ore, stipendio from impiegato where id = 123; che recupera tutte le informazioni relative all’impiegato con ID uguale a 123; ID è la chiave primaria Per localizzare invece tutte le informazioni riguardanti un impiegato con un dato nome… select id, nome, età, stipendio_orario, ore, stipendio from impiegato where nome = ‘Gianni Calvini’; L’attributo Nome può non identificare la tupla univocamente; se nella tabella esistono più impiegati con lo stesso nome, vengono estratti tutti gli elementi rilevanti

Esempio: Azienda Se l’interrogazione presuppone l’estrazione solo di alcuni attributi, può essere formulata come… select nome, stipendio from impiegato where nome = ‘Gianni Calvini’; select id, nome, stipendio from impiegato where nome = ‘Gianni calvini’; che estrae solo il nome e lo stipendio dell’impiegato/i con il nome specificato