SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
SISTEMI INFORMATIVI
     D’AZIENDA
   dott. ing. Francesco Guerra
   guerra.francesco@unimo.it
SISTEMI INFORMATIVI D’AZIENDA




                                     Il modello relazionale




                                          dott. ing. Francesco Guerra   2

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                     Il modello relazionale

                                     La maggior parte dei DBMS in commercio si fonda sul
                                     modello relazionale che e’ stato progettato da Codd nel 1970.
                                     Il modello relazionale si fonda sul concetto di relazione e di
                                     tabella
                                        Dati due insiemi D1 e D2 si definisce prodotto cartesiano di D1 e
                                        D2 (in simboli D1 x D2) l’insieme delle coppie ordinate (v1, v2)
                                        tali che v1 e’ un elemento di D1 e v2 e’ un elemento di v2
                                        Una relazione matematica sugli insiemi D1 e D2 e’ un
                                        sottoinsieme di D1 x D2
                                        Le relazioni possono essere rappresentate graficamente in forma
                                        tabellare.




                                                            dott. ing. Francesco Guerra                   3

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                              Relazione e tabelle: un esempio

                                A={1,2,3}
                                B={a,b}

                                Prodotto cartesiano:
                                                                                          1   a
                                {(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}
                                                                                          1   b
                                                                                          2   a
                                                                                          2   b
                                                                                          3   a
                                                                                          3   b




                                                            dott. ing. Francesco Guerra           4

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                     Il modello relazionale

                                     L’esempio fa riferimento a una relazione composta da due
                                     insiemi di elementi, ma tali relazioni possono essere
                                     generalizzate rispetto al numero di insiemi.
                                        Il numero delle componenti del prodotto cartesiano e’ detto
                                        grado della relazione
                                        Il numero di elementi della relazione (n-uple) e’ detto
                                        cardinalita’ della relazione
                                     Con riferimento all’uso che si fa delle relazioni per
                                     organizzare i dati nei DB, ciascuna n-upla contiene dati fra
                                     loro collegati:
                                        Non e’ definito alcun ordinamento fra le n-uple
                                        Le n-uple sono distinte le une dalle altre
                                     E’ possibile introdurre un nome a ogni occorrenza di
                                     dominio in una relazione (attributo)
                                                            dott. ing. Francesco Guerra                   5

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                      Tabella di un DB

                                                Attributo



                                Nome        Cognome         Data di nascita           Professione
                                                                                                     n-upla
                                Francesco   Guerra          21/05/1973                Contrattista
                                Giulia      Montanari       01/01/1979                Studente
                                Erika       Rossi           02/02/1983                Impiegata




                                                        dott. ing. Francesco Guerra                     6

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                   Relazioni e basi di dati

                                     Una base di dati e’ un insieme di tabelle correlate
                                                       Matricola        NomeCorso          Docente         Voto
                                       esaESAESAMI
                                          ESAME
                                                       123              Matematica         Rossi           28




                                                              Matricola            Nome            Cognome        Età
                                               STUDENTI
                                            STUDENTE
                                                              123                  Anna            Verde          21




                                                CORSO  NomeCorso  Anno                      Crediti

                                                 CORSOCORSOCORSI1
                                                       Matematica                           5




                                                             dott. ing. Francesco Guerra                                7

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                      Informazione incompleta e valori nulli

                                     La rappresentazione del modello relazionale impone che le
                                     informazioni siano rappresentate con tuple di dati omogenee:
                                     le relazioni possono infatti rappresentare tuple corrispondenti
                                     alle relazioni stesse:
                                     PERSONE (nome, cognome, indirizzo, n_cellulare)

                                     il valore dell’attributo n_cellulare potrebbe non essere presente
                                     per tutte le tuple
                                        Si potrebbe utilizzare un valore del dominio per identificare
                                        l’assenza di informazione
                                           Richiede l’esistenza di tale valore
                                           L’uso di valori di dominio puo’ generare confusione: la distinzione fra
                                           valori veri e valori falsi e’ nascosta.
                                        Esiste un opportuno valore (NULL – valore nullo) che indica
                                        l’assenza di informazione (intesa come valore sconosciuto, valore
                                        inesistente o assenza generica di informazione)
                                                               dott. ing. Francesco Guerra                     8

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                             Vincoli di integrita’

                                     Le strutture del modello relazionale ci permettono di
                                     organizzare le informazioni di interesse per le applicazioni, ma
                                     non tutte i dati (o le combinazioni di dati) che sono
                                     rappresentabili dal dominio permettono di descrivere stati
                                     corretti del database
                                        Vincolo di integrita’:proprieta’ che deve essere soddisfatta dalle
                                        istanze che rappresentano informazioni corrette per l’applicazione
                                           Vincoli di tupla: esprimono condizioni sui valori di ciascuna tupla,
                                           indipendentemente dalle altre tuple
                                           Chiavi: e’ l’insieme di attributi minimo che permette di identificare
                                           univocamente ogni tupla della relazione (ovviamente non e’
                                           consentito agli attributi della chiave di assumere dei valori nulli)
                                           Vincoli di integrita’ referenziale: permettono di correlare in maniera
                                           corretta tuple appartenenti a relazioni diverse assicurando che
                                           quando in una tupla si utilizza il valore di un attributo per riferirsi a
                                           un’altra tupla questa deve essere una tupla esistente (chiave esterna)
                                                               dott. ing. Francesco Guerra                       9

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                     Esempio: modellazione di un sito di e-commerce

                                Si vuole modellare un sito di e-commerce che vende libri.
                                I clienti vengono identificati da un login e descritti
                                tramite il nome, il cognome e l’e-mail.
                                I libri sono identificati dal codice ISBN e per ogni libro
                                viene descritto l’autore, il titolo, il numero di pagine e
                                il prezzo.
                                In una certa data un cliente acquista un certo numero di
                                copie di uno o piu’ libri. L’acquisto deve essere
                                memorizzato dal DB.

                                Per risolvere il problema e’ sufficiente realizzare un DB con tre
                                tabelle:
                                      Una tabella memorizza i clienti
                                      Una tabella memorizza i libri
                                      Una tabella memorizza gli acquisti

                                                          dott. ing. Francesco Guerra           10

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                     Esempio: modellazione di un sito di e-commerce

                                Clienti (login, password, nome, cognome, email)
                                      Chiave: login
                                Libro (ISBN, autore, titolo, n_pagine, prezzo)
                                      Chiave: ISBN
                                Acquisto (data, login, ISBN, quantita)
                                      Chiave (esterna): login (riferisce a Clienti), ISBN (riferisce a Libro)




                                                                  dott. ing. Francesco Guerra                   11

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                     Esempio: modellazione di un sito di e-commerce




                                                    dott. ing. Francesco Guerra   12

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                       Esempio: modellazione di un sito di e-commerce

                                     Secondo la modellazione assunta e considerando le istanze
                                     inserite nella pagina precedente:
                                        Si puo’ inserire nel db un altro cliente di nome Francesco,
                                        cognome Guerra e login fguerra73?
                                        Si puo’ inserire nel db un altro cliente che abbia login fguerra,
                                        password 21573 nome Francesco, cognome Guerra, email
                                        guerra.francesco@unimore.it?
                                        Un cliente puo’ acquistare due volte lo stesso libro in date
                                        diverse?
                                        Il cliente fguerra puo’ acquistare il libro ISBN 88-371 autore:
                                        Bergamaschi, …?
                                        Possono essere inseriti clienti nel db senza che abbiano mai
                                        fatto acquisti?
                                        Si possono inserire libri che non sono mai stati acquistati?
                                        Si possono inserire degli acquisti senza la presenza di una
                                        tupla corrispondente nella tabella libri e nella tabella clienti?
                                                             dott. ing. Francesco Guerra                13

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                   Esempio: prestito in biblioteca

                                Si rappresenti mediante il modello relazionale il funzionamento del db della
                                biblioteca. Un utente e’ identificato dal codice fiscale e ha un nome, un
                                cognome, un indirizzo. Un libro e’ identificato dal codice, ha un titolo, un
                                autore, una casa editrice e un anno.
                                Un utente puo’ prendere in prestito piu’ libri con il vincolo che in una certa
                                data un utente non posso prendere in prestito piu’ di un libro


                                Libro (codice, titolo, autore, casa_editrice, anno)
                                Chiave: codice
                                Utente (cf, nome, cognome, indirizzo)
                                Chiave: cf
                                Prestito (codice, cf, data)
                                Chiave: codice, cf, data




                                                               dott. ing. Francesco Guerra                       14

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                                   Esercizi

                                Considerare le informazioni per la gestione dei prestiti di una biblioteca
                                personale. Il proprietario presta libri ai suoi amici, che indica semplicemente
                                attraverso i nomi o soprannomi (per evitare omonimie) e fa riferimento ai libri
                                attraverso i titoli (non possiede due libri con lo stesso titolo).
                                Quando presta un libro prende nota della data prevista per la restituzione.
                                Definire uno schema di relazione per rappresentare queste informazioni e
                                mostrarne un’istanza in forma tabellare. Indicare la chiave (le chiavi) della
                                relazione.


                                Rappresentare per mezzo di una o piu’ relazioni le informazioni contenute
                                nell’orario delle partenze di una stazione ferroviaria: numero, orario,
                                destinazione finale, categoria del treno, …




                                                              dott. ing. Francesco Guerra                    15

       2                        DB
SISTEMI INFORMATIVI D’AZIENDA

                                                                                        Bibliografia

                                     Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e
                                     linguaggi di interrogazione, McGraw-Hill
                                     Beneventano, Bergamaschi, Vincini: Progetto di basi di dati
                                     relazionali, Pitagora Editrice Bologna




                                                          dott. ing. Francesco Guerra             16

       2                        DB

Mais conteúdo relacionado

Mais de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 

Mais de Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 

Último

Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”
Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”
Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”Associazione Digital Days
 
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...Associazione Digital Days
 
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...Associazione Digital Days
 
Limmi un successo che mette radici da un solo frutto: il limone di Sicilia
Limmi un successo che mette radici da un solo frutto: il limone di SiciliaLimmi un successo che mette radici da un solo frutto: il limone di Sicilia
Limmi un successo che mette radici da un solo frutto: il limone di SiciliaLimmi
 
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...Associazione Digital Days
 
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...Associazione Digital Days
 
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...Associazione Digital Days
 
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...Associazione Digital Days
 
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...Associazione Digital Days
 
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...Associazione Digital Days
 
BioClima_Da gestori a custodi del territorio_Modulo 2
BioClima_Da gestori a custodi del territorio_Modulo 2BioClima_Da gestori a custodi del territorio_Modulo 2
BioClima_Da gestori a custodi del territorio_Modulo 2Etifor srl
 

Último (11)

Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”
Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”
Luca Faccin, CEO @PerformancePPC – “Tool AI per migliorare i processi aziendali”
 
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...
Simone Bonamin, Partner di @Argo Business Solutions S.r.l. – “Online Brand Pr...
 
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...
Pamela Serena Nerattini, Consulente LinkedIn e HR – “Ascoltare per crescere i...
 
Limmi un successo che mette radici da un solo frutto: il limone di Sicilia
Limmi un successo che mette radici da un solo frutto: il limone di SiciliaLimmi un successo che mette radici da un solo frutto: il limone di Sicilia
Limmi un successo che mette radici da un solo frutto: il limone di Sicilia
 
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...
Giulia Pascuzzi – Coach & Business Leader – Parlare di diversità è davvero in...
 
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...
Gianni Clocchiatti, Consulente per l’innovazione e la creatività d’impresa, F...
 
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...
Edoardo Marrone, Direttore Commerciale di @Across- “Valorizzare il tesoro nas...
 
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...
Eleonora Sordella, Headhunter, Coach, Formatrice e Chiara Bonomi, Training De...
 
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...
Mario Madafferi, Innovation Manager @Progesia SRL Società Benefit – “L’Integr...
 
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...
Enrico Busto, Strategic Technology Advisor fondatore di @Eticrea – “Reskillin...
 
BioClima_Da gestori a custodi del territorio_Modulo 2
BioClima_Da gestori a custodi del territorio_Modulo 2BioClima_Da gestori a custodi del territorio_Modulo 2
BioClima_Da gestori a custodi del territorio_Modulo 2
 

2 Siadb

  • 1. SISTEMI INFORMATIVI D’AZIENDA dott. ing. Francesco Guerra guerra.francesco@unimo.it
  • 2. SISTEMI INFORMATIVI D’AZIENDA Il modello relazionale dott. ing. Francesco Guerra 2 2 DB
  • 3. SISTEMI INFORMATIVI D’AZIENDA Il modello relazionale La maggior parte dei DBMS in commercio si fonda sul modello relazionale che e’ stato progettato da Codd nel 1970. Il modello relazionale si fonda sul concetto di relazione e di tabella Dati due insiemi D1 e D2 si definisce prodotto cartesiano di D1 e D2 (in simboli D1 x D2) l’insieme delle coppie ordinate (v1, v2) tali che v1 e’ un elemento di D1 e v2 e’ un elemento di v2 Una relazione matematica sugli insiemi D1 e D2 e’ un sottoinsieme di D1 x D2 Le relazioni possono essere rappresentate graficamente in forma tabellare. dott. ing. Francesco Guerra 3 2 DB
  • 4. SISTEMI INFORMATIVI D’AZIENDA Relazione e tabelle: un esempio A={1,2,3} B={a,b} Prodotto cartesiano: 1 a {(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)} 1 b 2 a 2 b 3 a 3 b dott. ing. Francesco Guerra 4 2 DB
  • 5. SISTEMI INFORMATIVI D’AZIENDA Il modello relazionale L’esempio fa riferimento a una relazione composta da due insiemi di elementi, ma tali relazioni possono essere generalizzate rispetto al numero di insiemi. Il numero delle componenti del prodotto cartesiano e’ detto grado della relazione Il numero di elementi della relazione (n-uple) e’ detto cardinalita’ della relazione Con riferimento all’uso che si fa delle relazioni per organizzare i dati nei DB, ciascuna n-upla contiene dati fra loro collegati: Non e’ definito alcun ordinamento fra le n-uple Le n-uple sono distinte le une dalle altre E’ possibile introdurre un nome a ogni occorrenza di dominio in una relazione (attributo) dott. ing. Francesco Guerra 5 2 DB
  • 6. SISTEMI INFORMATIVI D’AZIENDA Tabella di un DB Attributo Nome Cognome Data di nascita Professione n-upla Francesco Guerra 21/05/1973 Contrattista Giulia Montanari 01/01/1979 Studente Erika Rossi 02/02/1983 Impiegata dott. ing. Francesco Guerra 6 2 DB
  • 7. SISTEMI INFORMATIVI D’AZIENDA Relazioni e basi di dati Una base di dati e’ un insieme di tabelle correlate Matricola NomeCorso Docente Voto esaESAESAMI ESAME 123 Matematica Rossi 28 Matricola Nome Cognome Età STUDENTI STUDENTE 123 Anna Verde 21 CORSO NomeCorso Anno Crediti CORSOCORSOCORSI1 Matematica 5 dott. ing. Francesco Guerra 7 2 DB
  • 8. SISTEMI INFORMATIVI D’AZIENDA Informazione incompleta e valori nulli La rappresentazione del modello relazionale impone che le informazioni siano rappresentate con tuple di dati omogenee: le relazioni possono infatti rappresentare tuple corrispondenti alle relazioni stesse: PERSONE (nome, cognome, indirizzo, n_cellulare) il valore dell’attributo n_cellulare potrebbe non essere presente per tutte le tuple Si potrebbe utilizzare un valore del dominio per identificare l’assenza di informazione Richiede l’esistenza di tale valore L’uso di valori di dominio puo’ generare confusione: la distinzione fra valori veri e valori falsi e’ nascosta. Esiste un opportuno valore (NULL – valore nullo) che indica l’assenza di informazione (intesa come valore sconosciuto, valore inesistente o assenza generica di informazione) dott. ing. Francesco Guerra 8 2 DB
  • 9. SISTEMI INFORMATIVI D’AZIENDA Vincoli di integrita’ Le strutture del modello relazionale ci permettono di organizzare le informazioni di interesse per le applicazioni, ma non tutte i dati (o le combinazioni di dati) che sono rappresentabili dal dominio permettono di descrivere stati corretti del database Vincolo di integrita’:proprieta’ che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione Vincoli di tupla: esprimono condizioni sui valori di ciascuna tupla, indipendentemente dalle altre tuple Chiavi: e’ l’insieme di attributi minimo che permette di identificare univocamente ogni tupla della relazione (ovviamente non e’ consentito agli attributi della chiave di assumere dei valori nulli) Vincoli di integrita’ referenziale: permettono di correlare in maniera corretta tuple appartenenti a relazioni diverse assicurando che quando in una tupla si utilizza il valore di un attributo per riferirsi a un’altra tupla questa deve essere una tupla esistente (chiave esterna) dott. ing. Francesco Guerra 9 2 DB
  • 10. SISTEMI INFORMATIVI D’AZIENDA Esempio: modellazione di un sito di e-commerce Si vuole modellare un sito di e-commerce che vende libri. I clienti vengono identificati da un login e descritti tramite il nome, il cognome e l’e-mail. I libri sono identificati dal codice ISBN e per ogni libro viene descritto l’autore, il titolo, il numero di pagine e il prezzo. In una certa data un cliente acquista un certo numero di copie di uno o piu’ libri. L’acquisto deve essere memorizzato dal DB. Per risolvere il problema e’ sufficiente realizzare un DB con tre tabelle: Una tabella memorizza i clienti Una tabella memorizza i libri Una tabella memorizza gli acquisti dott. ing. Francesco Guerra 10 2 DB
  • 11. SISTEMI INFORMATIVI D’AZIENDA Esempio: modellazione di un sito di e-commerce Clienti (login, password, nome, cognome, email) Chiave: login Libro (ISBN, autore, titolo, n_pagine, prezzo) Chiave: ISBN Acquisto (data, login, ISBN, quantita) Chiave (esterna): login (riferisce a Clienti), ISBN (riferisce a Libro) dott. ing. Francesco Guerra 11 2 DB
  • 12. SISTEMI INFORMATIVI D’AZIENDA Esempio: modellazione di un sito di e-commerce dott. ing. Francesco Guerra 12 2 DB
  • 13. SISTEMI INFORMATIVI D’AZIENDA Esempio: modellazione di un sito di e-commerce Secondo la modellazione assunta e considerando le istanze inserite nella pagina precedente: Si puo’ inserire nel db un altro cliente di nome Francesco, cognome Guerra e login fguerra73? Si puo’ inserire nel db un altro cliente che abbia login fguerra, password 21573 nome Francesco, cognome Guerra, email guerra.francesco@unimore.it? Un cliente puo’ acquistare due volte lo stesso libro in date diverse? Il cliente fguerra puo’ acquistare il libro ISBN 88-371 autore: Bergamaschi, …? Possono essere inseriti clienti nel db senza che abbiano mai fatto acquisti? Si possono inserire libri che non sono mai stati acquistati? Si possono inserire degli acquisti senza la presenza di una tupla corrispondente nella tabella libri e nella tabella clienti? dott. ing. Francesco Guerra 13 2 DB
  • 14. SISTEMI INFORMATIVI D’AZIENDA Esempio: prestito in biblioteca Si rappresenti mediante il modello relazionale il funzionamento del db della biblioteca. Un utente e’ identificato dal codice fiscale e ha un nome, un cognome, un indirizzo. Un libro e’ identificato dal codice, ha un titolo, un autore, una casa editrice e un anno. Un utente puo’ prendere in prestito piu’ libri con il vincolo che in una certa data un utente non posso prendere in prestito piu’ di un libro Libro (codice, titolo, autore, casa_editrice, anno) Chiave: codice Utente (cf, nome, cognome, indirizzo) Chiave: cf Prestito (codice, cf, data) Chiave: codice, cf, data dott. ing. Francesco Guerra 14 2 DB
  • 15. SISTEMI INFORMATIVI D’AZIENDA Esercizi Considerare le informazioni per la gestione dei prestiti di una biblioteca personale. Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso i nomi o soprannomi (per evitare omonimie) e fa riferimento ai libri attraverso i titoli (non possiede due libri con lo stesso titolo). Quando presta un libro prende nota della data prevista per la restituzione. Definire uno schema di relazione per rappresentare queste informazioni e mostrarne un’istanza in forma tabellare. Indicare la chiave (le chiavi) della relazione. Rappresentare per mezzo di una o piu’ relazioni le informazioni contenute nell’orario delle partenze di una stazione ferroviaria: numero, orario, destinazione finale, categoria del treno, … dott. ing. Francesco Guerra 15 2 DB
  • 16. SISTEMI INFORMATIVI D’AZIENDA Bibliografia Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e linguaggi di interrogazione, McGraw-Hill Beneventano, Bergamaschi, Vincini: Progetto di basi di dati relazionali, Pitagora Editrice Bologna dott. ing. Francesco Guerra 16 2 DB