Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni



Documenti analoghi
Operazioni Relazionali. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

BASI DI DATI - : I modelli di database

MODELLO RELAZIONALE. Introduzione

Elementi di Algebra Relazionale

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

Progettazione di Basi di Dati

Gli operatori relazionali

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

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Modello relazionale. ing. Alfredo Cozzi 1

Dal modello concettuale al modello logico

Operazioni sui database

Lezione V. Aula Multimediale - sabato 29/03/2008

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

Elena Baralis 2013 Politecnico di Torino 1

Le Basi di Dati. Le Basi di Dati

MODELLO E/R. Modellazione dei dati

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

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

Il Modello Relazionale

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

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

TEORIA sulle BASI DI DATI

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Il Modello Relazionale

Definizione di domini

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

Introduzione ai database relazionali

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Organizzazione degli archivi

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

BASE DI DATI: sicurezza. Informatica febbraio ASA

La normalizzazione Trasformazione da concettuale a relazionale

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

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

DBMS (Data Base Management System)

Archivi e Basi di Dati

Introduzione all Algebra Relazionale

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

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

ALGEBRA RELAZIONALE RIEPILOGO

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Modulo 2 Data Base 2

Informatica (Basi di Dati)

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

I database. Cosa sono e a cosa servono i Database

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Il Modello Relazionale (1)

Sistemi Informativi e Basi di Dati

IL MODELLO RELAZIONALE

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

Basi di dati 9 febbraio 2010 Compito A

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Progettaz. e sviluppo Data Base

Organizzazione delle informazioni: Database

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

I Sistemi Informativi

Esercitazione di Basi di Dati

Progettazione di Database. Un Esempio

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

Vincoli di integrità

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

DATABASE. A cura di Massimiliano Buschi

Introduzione ai database

Progettazione di un Database

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

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

Unità C1 Modello logico

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

DATABASE RELAZIONALI

Secondo Compitino di Basi di Dati

SQL/OLAP. Estensioni OLAP in SQL

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Informatica per le discipline umanistiche 2 lezione 10

Basi di Dati e Microsoft Access

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

disponibili nel pacchetto software.

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Rappresentazione grafica di entità e attributi

PROGETTAZIONE CONCETTUALE

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1

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

Progettazione concettuale

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Progettazione di Database

Il modello relazionale

Database 3 affitto veicoli. Testo del quesito

Cultura Tecnologica di Progetto

Transcript:

Modello Relazionale Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Cronologia dei modelli per la rappresentazione dei dati Modello gerarchico (anni 60) Modello reticolare (anni 70) Modello relazionale (anni 80-90) Modello a oggetti (2000) 2

Il modello relazionale Proposto da Edgar Frank Codd nel 1970 per favorire l indipendenza dei dati Disponibile in DBMS reali nel 1981 (non è facile implementare l indipendenza dei dati con efficienza e affidabilità!) Si basa sul concetto matematico di relazione 3

Relazione: tre accezioni relazione matematica: come nella teoria degli insiemi relazione secondo il modello relazionale dei dati relazione nel modello Entity-Relationship (chiamata anche associazione) 4

Relazione matematica D1,,Dn (n insiemi anche non distinti) prodotto cartesiano D1 Dn: l insieme di tutte le n-uple (d1,, dn) tali che d1 D1,, dn Dn relazione matematica su D1,, Dn: un sottoinsieme di D1 Dn. D1,, Dn sono i domini della relazione n è il grado della relazione 5

Relazione matematica, esempio D 1 ={a,b} D 2 ={x,y,z} prodotto cartesiano D 1 D 2 a a a b b b x y z x y z una relazione r D1 D2 a a b x z y 6

Relazione matematica, esempio A={Giovanni, Mario, Luigi, Andrea} B={Elena, Anna} 4 elementi 2 elementi Si può formare il prodotto cartesiano (8 coppie): AxB = { (Giovanni; Elena), (Giovanni; Anna), (Mario; Elena), (Mario; Anna), (Luigi; Elena), (Luigi; Anna), (Andrea; Elena), (Andrea; Anna) } La relazione x è sposato con y è uno dei possibili sottinsiemi del prodotto AxB Riga o N-upla o Tupla marito Giovanni Luigi moglie Anna Elena cardinalità grado 7

Tabelle e relazioni Una tabella rappresenta una relazione se i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro In una tabella che rappresenta una relazione l ordinamento tra le righe è irrilevante l ordinamento tra le colonne è irrilevante 8

Confronto della terminologia DEFINIZIONE FORMALE relazione attributo t-upla dominio cardinalità grado DEFINIZIONE INFORMALE tabella colonna riga tipo di dato numero righe numero colonne unica differenza significativa: definizione formale: assenza di duplicati definizione informale: possibili duplicati 9

Dal modello concettuale al modello logico Dal modello E-R viene derivato il modello logico seguendo delle semplici regole. 1. Ogni entità diventa una relazione (o tabella). 2. Ogni attributo diventa una colonna di tabella ereditando le caratteristiche dell attributo da cui deriva. 3. L Identificatore univoco di una endità diventa la chiave primaria {PK} della relazione. La rappresentazione di una tabella è fornita mediante il suo schema: <nome entità> (attributo,attributo..) Clienti( codice,ragione sociale, indirizzo, cap, città,partitaiva) 10

Dal modello concettuale al modello logico 4. La relazione uno a uno diventa un unica relazione che contiene gli attributi della prima e della seconda entità (salvo eccezioni in caso di partecipazione opzionale) 5. L associazione uno a molti viene rappresentata aggiungendo, agli attributi dell entità che svolge il ruolo a molti, l identificatore univoco dell identità col ruolo a uno. Questo identificatore prende il nome di chiave esterna (foreign key=fk) dell entità associata. Eventuali attributi dell associazione vengono inseriti anch essi nell entità con ruolo a molti, insieme alla chiave esterna. 11

Dal modello concettuale al modello logico 6. L associazione molti a molti diventa una nuova relazione (tabella) composta dagli identificatori univoci delle due entità e dagli eventuali attributi dell associazione. La chiave della nuova relazione è formata dall insieme di attributi che compongono le chiavi delle due entità oltre agli attributi necessari a garantire l unicità delle tuple. 7. L associazione uno a uno con una entità con partecipazione opzionale viene trattata come una associazione uno a molti scegliendo l entità con partecipazione opzionale come se fosse a molti. Se entrambe le entità partecipano in modo opzionale si tratta come una associazione molti a molti. 12

La rappresentazione delle relazioni: Clienti( codice,cognome Nome, indirizzo, cap, città,codtipo) 13

Esempio associazione uno a uno Soluzione1 Direttori (Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) Dipartimenti (Nome, Telefono, Sede) Soluzione2 Direttori (Codice, Cognome, Stipendio) devo inoltre imporre che i valori del campo DipartimentoDiretto della tabella Direttore siano tutti diversi tra loro! Altrimenti creo una relazione 1-N Dipartimenti (Nome, Telefono, Sede, Direttore, InizioDirezione) devo inoltre imporre che i valori del campo Direttore della tabella Dipartimento siano tutti diversi tra loro! Altrimenti creo una relazione 1-N 14

Esempio associazione uno a uno Direttori (Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) Dipartimenti (Nome, Telefono, Sede) Dato che l associazione tra Impiegato e Direzione ha cardinalità (0,1), nella relazione Impiegato per il nome del dipartimento diretto sono possibili valori nulli devo inoltre imporre che i valori del campo Dipartimento della tabella Impiegato siano tutti diversi tra loro! Altrimenti creo una relazione 1-N 15

Esempio associazione uno a uno Direttori (Codice, Cognome, Stipendio) Dipartimenti (Nome, Telefono, Sede) Direzioni (DataInizio, Codice, NomeDipartimento) 16

Esempio associazione uno a molti Giocatori (Cognome, DataNascita, Ruolo) Squadre (Nome, Città, Colori) Contratti (Giocatore, DataNascitaGiocatore, NomeSquadra, Ingaggio) 17

Esempio associazione molti a molti Impiegati (Matricola, Cognome, Stipendio) Progetti (Codice, Nome, Budget) Partecipazioni (Matricola, Codice, DataInizio) 18

Algebra relazionale Il modello logico Relazionale si fonda sull algebra relazionale Permette di definire formalmente le proprietà delle basi di dati relazionali Permette di calcolare il risultato delle interrogazioni 19

Operazioni relazionali Le operazioni più importanti nel campo delle basi di dati sono le operazioni di: 1. Selezione σ. Si può ottenere una tabella con minore cardinalità selezione di alcune righe della tabella iniziale. 2. Proiezione π. Si può ottenere una tabella con minore grado=selezione di alcune colonne della tabella iniziale. 3. Congiunzione (join) Si ottiene una nuova tabella contenente una combinazione degli attributi delle tabelle di partenza, con grado N1+N2-K (N1 e N2= grado delle tabelle di partenza, K =num. attributi comuni). 20

Operazioni relazionali: SELEZIONE ARTICOLI codice descrizione colore Codfornitore C01 Cartella A4 C15 Penna biro Blu C21 Raccoglitore Verde C08 Cartella cuoio Marrone C35 Agenda La selezione opera sempre su una sola tabella e genera una nuova relazione costituita solo dalle n-uple (le righe) che soddisfano una determinata condizione SELEZIONE DI ARTICOLI PER COLORE= ROSSO ; codice descrizione colore Codfornitore C01 Cartella A4 C35 Agenda σ Si Scrive: (Articoli) colore =rosso 21

Operazioni relazionali: PROIEZIONE ARTICOLI codice descrizione colore Codfornitore C01 Cartella A4 C15 Penna biro Blu C21 Raccoglitore Verde C08 Cartella cuoio Marrone C35 Agenda La proiezione opera sempre su una sola tabella, genera una nuova relazione estraendo solo alcune colonne PROIEZIONE DI ARTICOLI SU CODICE, DESCRIZIONE; codice C01 C15 C21 C08 C35 descrizione Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda π Si Scrive: (Articoli) codice, descrizione 22

Operazioni relazionali: CONGIUNZIONE La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione INNER JOIN (join interno) si abbinano le sole righe con valori identici negli attributi comuni JOIN naturale se gli attributi hanno stesso nome, es codfornitore e codfornitore EQUI-JOIN se gli attributi hanno nomi diversi, es codfornitore e codice OUTER JOIN (join esterno) LEFT-JOIN se dalla tabella del verso 1 si prendono comunque tutte le righe RIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righe FULL-JOIN se da entrambe le tabelle si prendono tutte le righe SELF JOIN Righe di una tabella vengono combinate con righe della stessa tabella 23

Operazioni relazionali: CONGIUNZIONE ARTICOLI codice descrizione colore Codfornitore C01 Cartella A4 C15 Penna biro Blu C21 Raccoglitore Verde C08 Cartella cuoio Marrone C35 Agenda INNER JOIN (join interno) La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione in cui compaiono gli attributi (le colonne) di entrambe le relazioni si abbinano le sole righe con valori identici negli attributi comuni FORNITORI codice F03 nominativo Alberto Mario Cicoria Fabio Marino Vito JOIN naturale se gli attributi hanno stesso nome, es codfornitore e codfornitore EQUI-JOIN se gli attributi hanno nomi diversi, es codfornitore e codice 24

Operazioni relazionali: EQUI-JOIN ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone FORNITORI codice F03 nominativo Alberto Mario Cicoria Fabio Marino Vito CONGIUNZIONE DI ARTICOLI SU CODFORNITORE E DI FORNITORI SU CODICE; codice descrizione colore Codfornitore Codice nominativo C01 C15 C21 C08 Cartella A4 Penna biro Raccoglitore Cartella cuoio Blu Verde Marrone Alberto Mario Alberto Mario Cicoria Fabio Cicoria Fabio Si Scrive: Articoli Codfornitore Fornitori codice 25

Operazioni relazionali: NATURAL-JOIN ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone FORNITORI Codfornitore F03 nominativo Alberto Mario Cicoria Fabio Marino Vito CONGIUNZIONE DI ARTICOLI SU CODFORNITORE E DI FORNITORI SU CODICE; codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 Cartella A4 Penna biro Raccoglitore Cartella cuoio Blu Verde Marrone Alberto Mario Alberto Mario Cicoria Fabio Cicoria Fabio Si Scrive: Articoli Fornitori 26

Operazioni relazionali: CONGIUNZIONE ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda OUTER JOIN (join esterno) Blu Verde Marrone La congiunzione combina 2 relazioni aventi un attributo in comune generando una nuova relazione in cui compaiono gli attributi (le colonne) di entrambe le relazioni si abbinano tutte le righe anche se non sono presenti valori identici negli attributi comuni codice F03 FORNITORI nominativo Alberto Mario Cicoria Fabio Marino Vito LEFT-JOIN se dalla tabella del verso 1 si prendono comunque tutte le righe RIGHT-JOIN se dalla tabella del verso MOLTI si prendono comunque tutte le righe FULL-JOIN se da entrambe le tabelle si prendono tutte le righe 27

Operazioni relazionali: LEFT-JOIN ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone FORNITORI codice F03 nominativo Alberto Mario Cicoria Fabio Marino Vito FORNITORI ARTICOLI dalla tabella del verso 1 si prendono tutte le righe ARTICOLI LEFT JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 Cartella A4 Penna biro Raccoglitore Cartella cuoio Blu Verde Marrone F03 Alberto Mario Alberto Mario Cicoria Fabio Cicoria Fabio Marino Vito SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli LEFT JOIN fornitori ON articoli.codfornitore=fornitori.codice; 28

Operazioni relazionali: RIGHT-JOIN ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone FORNITORI codice F03 nominativo Alberto Mario Cicoria Fabio Marino Vito FORNITORI ARTICOLI dalla tabella del verso Molti si prendono tutte le righe ARTICOLI LEFT JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone Alberto Mario Alberto Mario Cicoria Fabio Cicoria Fabio SELECT articoli.codice, descrizione, colore, codfornitore, nominativo FROM articoli RIGHT JOIN fornitori ON articoli.codfornitore=fornitori.codice; 29

Operazioni relazionali: FULL-JOIN ARTICOLI codice descrizione colore Codfornitore C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone FORNITORI codice F03 nominativo Alberto Mario Cicoria Fabio Marino Vito FORNITORI ARTICOLI Da entrambe le tabelle si prendono tutte le righe ARTICOLI FULL JOIN FORNITORI codice descrizione colore Codfornitore nominativo C01 C15 C21 C08 C35 Cartella A4 Penna biro Raccoglitore Cartella cuoio Agenda Blu Verde Marrone F03 Alberto Mario Alberto Mario Cicoria Fabio Cicoria Fabio Marino Vito In ACCESS non esiste 30

Operazioni relazionali: SELF-JOIN MEDICI Righe di una tabella vengono combinate con righe della stessa tabella codice ruolo cognome nome codprimario m1 assistente lovero anna m6 m2 assistente marini valeria m6 m3 assistente luisi carlo m6 m4 primario mancini bianca m7 m5 primario linuzzi luigi m7 m6 primario mondelli giovanni m7 m7 dirigente franci francesco SELECT medici.codice, medici.ruolo, medici.cognome, medici.nome, medici.codprimario, medici_1.cognome AS [cognome primario], medici_1.nome AS [nome primario] FROM medici LEFT JOIN medici AS medici_1 ON medici.codprimario = medici_1.codice; codice ruolo cognome nome codprimario cognome primario nome primario m1 assistente lovero anna m6 mondelli giovanni m2 assistente marini valeria m6 mondelli giovanni m3 assistente luisi carlo m6 mondelli giovanni m4 primario mancini bianca m7 franci francesco m5 primario linuzzi luigi m7 franci francesco m6 primario mondelli giovanni m7 franci francesco m7 dirigente franci francesco 31

Operazioni Insiemistiche: Unione Unione tra due tabelle è possibile solo se le due tabelle hanno lo stesso grado. Il risultato sarà costituito da tutte le righe della prima tabella + tutte le righe della seconda tabella eliminando le duplicazioni. A U B A Union B 32

Operazioni Insiemistiche: Intersezione L Intersezione tra due tabelle è possibile solo se le due tabelle hanno lo stesso grado. Il risultato sarà costituito dalle righe comini alle due tabelle. A B A Intersection B 33

Operazioni Insiemistiche: Sottrazione La sottrazione tra due tabelle è possibile solo se le due tabelle hanno lo stesso grado. Il risultato sarà costituito dalle sole righe della prima tabella che non sono cpntenute nella seconda. A - B A Minus B 34