SlideShare a Scribd company logo
DBMS
Una base di dati (database o DB) è una collezione organizzata di dati utilizzati per
rappresentare le informazioni di interesse ed è gestita da un DBMS.
Un DBMS (DataBase Management System) è un sistema software in grado di gestire collezioni
di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza.
Grandi vuol dire di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo
utilizzati.
Persistenti significa con un periodo di vita indipendente dalle singole esecuzioni dei programmi
che le utilizzano.
Condivise, nel senso che vengono utilizzate da applicazioni diverse.
Le caratteristiche di affidabilità e privatezza si definiscono invece come:
Affidabilità - resistenza a malfunzionamenti HW o SW
Privatezza - con una disciplina di controllo degli accessi
Modello E-R
Il modello Entità/Relazione (Entity Relationship model E-R) è un modello concettuale di dati, e
fornisce una serie di strutture (costrutti) per la descrizione della realtà.
I costrutti sono utilizzati per definire degli schemi che descrivono l’organizzazione e la struttura
delle occorrenze dei dati.
I costrutti principali sono quattro:
* Entità
* Relazioni
* Attributi
* Generalizzazione
Entità
Entità: rappresentano classi di oggetti (fatti, persone) che hanno proprietà comuni ed
esistenza “autonoma” per una applicazione.
CITTA’, DIPARTIMENTO, IMPIEGATO, ACQUISTO, VENDITA
sono es. di entità di una applicazione aziendale.
Una occorrenza di una entità è un oggetto della classe che l’entità rappresenta
(come accade nella programmazione ad oggetti).
Una entità si rappresenta graficamente con una rettangolo, all'interno del quale si
mette il nome del concetto che rappresenta.
Impiegato
Relazioni
rappresentano legami logici, significativi per l’applicazione, tra due o più entità.
RESIDENZA è un esempio di relazione che può sussistere tra le entità CITTA’ e
IMPIEGATO,
mentre ESAME può esserlo tra STUDENTE e CORSO.
Una occorrenza di una relazione è una n-upla (coppia nel caso di relazione binaria)
costituita da occorrenze di entità, una per ciascuna delle entità coinvolte. Una
relazione si rappresenta graficamente con una rombo, all'interno del quale si mette il
nome del concetto che rappresenta.
Attributi
Attributi: descrivono proprietà elementari di entità o relazioni di interesse ai fini
dell’applicazione.
N_posti
Spettacolo Settore
Titolo
Data Prezzo
Nome
N_posti_disponibili
Cardinalità delle relazioni
Cardinalità delle relazioni: vengono specificate per ciascuna entità che partecipa a
una relazione e dicono quante volte, in una relazione tra entità, un’occorrenza di una
di queste entità può essere legata ad occorrenze delle altre entità coinvolte nella
relazione (indica il minimo e il massimo delle occorrenze).
Nello schema si intende cha ad un impiegato possono essere assegnati da uno a cinque
incarichi, e che ad un incarico possono essere assegnati da 0 a molti (N) impiegati.
Generalizzazioni
rappresentano legami logici tra una entità padre e una o più entità figlie, che sono comprese
dal padre e che ne costituiscono un caso particolare. Il padre viene chiamato
generalizzazione dei figli, che vengono chiamati specializzazioni dell’entità padre. Tra le
entità coinvolte in una generalizzazione valgono le proprietà:
* Ogni occorrenza dell’entità figlia lo è anche dell’entità padre
* Ogni proprietà dell’entità padre (attributi, identificatori, relazioni) è anche una proprietà
delle entità figlie (ereditarietà).
DB
Relazionali
Entità
Relazioni
Cardinalità
Esempio
Anomalie di DB non relazionali
• Aggiornamento
In una tabella dove i dati sono ripetuti inutilmente l’aggiornamento dei dati
comporta dover aggiornare numerose righe. Si pensi al caso in cui una delle righe
da modificare era stata inserita con un errore di una lettera, una query di UPDATE
fallirà e i dati risulterebbero incongruenti.
• Cancellazione
La cancellazione di un dato in una tabella deve essere possibile senza dover
eliminare altri dati importanti.
• Inserimento
Se una tabella contiene informazioni non appartenenti alla stessa entità, ad esempio
clienti e contatti, sarà impossibile inserire solo una società.
Prima forma normale
• Ogni colonna deve contenere un valore ‘atomico’
• La tabella deve avere una chiave primaria
• Non sono ammessi gruppi ripetuti di dati
Seconda forma normale
Questa problematica entra in gioco quando si hanno chiavi su più campi.
La tabella è in seconda forma normale se non si hanno colonne che dipendono
solo parzialmente dalla chiave primaria: ad esempio da uno solo dei due campi
che costituiscono la chiave.
Terza forma normale
Una tabella è in terza forma normale se non sono presenti
dipendenze transitive, cioè si hanno campi che dipendono da
una colonna che non è la chiave primaria.
Esempio
Per archiviare i dati di un sistema on-line per la
iscrizione a corsi di formazione sono necessarie le
seguenti informazioni:
- corsi (titolo, durata, data_inizio, n_max_allievi)
- moduli (nome, descrizione, durata)
- docenti (nome, cognome,...altre info anagrafiche)
- studenti (nome,cognome,...informazioni anagrafiche)
Nello schema indicato sono state trascurate le chiavi
primarie e le chiavi esterne (foreign key). Si
consideri inoltre la eventuale necessità di entità
aggiuntive, tra cui ricordo l'esigenza di memorizzare
le iscrizioni ai corsi.
Soluzione
corsi
docenti
studenti
modulistruttura
(1:N) (1:N)
iscrizione
(1:N)
(1:N)
(1:N)
Relazione
ternaria
anagraficadati
dati
(1:1) (1:1) (1:1)
(1:1)
Soluzione

More Related Content

Similar to Database Entity

LEZ_10_IntroDB.pptx
LEZ_10_IntroDB.pptxLEZ_10_IntroDB.pptx
LEZ_10_IntroDB.pptx
WalterQuattrociocchi1
 
Database relazionali
Database relazionaliDatabase relazionali
Database relazionali
Marco Liverani
 
Progettazione di un database relazionale
Progettazione di un database relazionaleProgettazione di un database relazionale
Progettazione di un database relazionale
Nicola Iantomasi
 
Modello er (2)
Modello er (2)Modello er (2)
Modello er (2)
enzosa007
 
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai Database
Riccardo Piccioni
 
Base dati capitolo_5
Base dati capitolo_5Base dati capitolo_5
Base dati capitolo_5gestlab
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Massimo Cenci
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with Crowdsourcing
Viviana Murello
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Massimo Cenci
 
Descrizione di NO-SQL
Descrizione di NO-SQLDescrizione di NO-SQL
Descrizione di NO-SQL
Antonio Tandoi
 
Dbms
DbmsDbms
Dbms
Paola Bez
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
Giuseppe Cramarossa
 
MongoDB
MongoDBMongoDB
MongoDB
NaLUG
 
Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
Sebastiano Merlino (eTr)
 
I riferimenti in Excel
I riferimenti in ExcelI riferimenti in Excel
I riferimenti in Excel
johnthejocker
 
Open Data in Trentino
Open Data in TrentinoOpen Data in Trentino
Open Data in Trentino
datitrentinoit
 
Access parte prima
Access parte primaAccess parte prima
Access parte primaMatekanc
 
SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
Maurizio Farina
 

Similar to Database Entity (20)

LEZ_10_IntroDB.pptx
LEZ_10_IntroDB.pptxLEZ_10_IntroDB.pptx
LEZ_10_IntroDB.pptx
 
Database relazionali
Database relazionaliDatabase relazionali
Database relazionali
 
Progettazione di un database relazionale
Progettazione di un database relazionaleProgettazione di un database relazionale
Progettazione di un database relazionale
 
Modello er (2)
Modello er (2)Modello er (2)
Modello er (2)
 
corso web - Introduzione ai Database
corso web - Introduzione ai Databasecorso web - Introduzione ai Database
corso web - Introduzione ai Database
 
Base dati capitolo_5
Base dati capitolo_5Base dati capitolo_5
Base dati capitolo_5
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Data base elvira asile
Data base elvira asileData base elvira asile
Data base elvira asile
 
CrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with CrowdsourcingCrowdDB: Answering Queries with Crowdsourcing
CrowdDB: Answering Queries with Crowdsourcing
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Descrizione di NO-SQL
Descrizione di NO-SQLDescrizione di NO-SQL
Descrizione di NO-SQL
 
Dbms
DbmsDbms
Dbms
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
MongoDB
MongoDBMongoDB
MongoDB
 
Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
 
I riferimenti in Excel
I riferimenti in ExcelI riferimenti in Excel
I riferimenti in Excel
 
Basi Di Dati 01
Basi Di Dati 01Basi Di Dati 01
Basi Di Dati 01
 
Open Data in Trentino
Open Data in TrentinoOpen Data in Trentino
Open Data in Trentino
 
Access parte prima
Access parte primaAccess parte prima
Access parte prima
 
SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 

More from Sergio Ronchi

Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
Sergio Ronchi
 
Java lezione 18
Java lezione 18Java lezione 18
Java lezione 18
Sergio Ronchi
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
Sergio Ronchi
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
Sergio Ronchi
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
Sergio Ronchi
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
Sergio Ronchi
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
Sergio Ronchi
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
Sergio Ronchi
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
Sergio Ronchi
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
Sergio Ronchi
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
Sergio Ronchi
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
Sergio Ronchi
 
Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
Sergio Ronchi
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
Sergio Ronchi
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
Sergio Ronchi
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
Sergio Ronchi
 
Java lezione 3
Java lezione 3Java lezione 3
Java lezione 3
Sergio Ronchi
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
Sergio Ronchi
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
Sergio Ronchi
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
Sergio Ronchi
 

More from Sergio Ronchi (20)

Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
 
Java lezione 18
Java lezione 18Java lezione 18
Java lezione 18
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
 
Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Java lezione 3
Java lezione 3Java lezione 3
Java lezione 3
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 

Database Entity

  • 1. DBMS Una base di dati (database o DB) è una collezione organizzata di dati utilizzati per rappresentare le informazioni di interesse ed è gestita da un DBMS. Un DBMS (DataBase Management System) è un sistema software in grado di gestire collezioni di dati che siano grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza. Grandi vuol dire di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati. Persistenti significa con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano. Condivise, nel senso che vengono utilizzate da applicazioni diverse. Le caratteristiche di affidabilità e privatezza si definiscono invece come: Affidabilità - resistenza a malfunzionamenti HW o SW Privatezza - con una disciplina di controllo degli accessi
  • 2. Modello E-R Il modello Entità/Relazione (Entity Relationship model E-R) è un modello concettuale di dati, e fornisce una serie di strutture (costrutti) per la descrizione della realtà. I costrutti sono utilizzati per definire degli schemi che descrivono l’organizzazione e la struttura delle occorrenze dei dati. I costrutti principali sono quattro: * Entità * Relazioni * Attributi * Generalizzazione
  • 3. Entità Entità: rappresentano classi di oggetti (fatti, persone) che hanno proprietà comuni ed esistenza “autonoma” per una applicazione. CITTA’, DIPARTIMENTO, IMPIEGATO, ACQUISTO, VENDITA sono es. di entità di una applicazione aziendale. Una occorrenza di una entità è un oggetto della classe che l’entità rappresenta (come accade nella programmazione ad oggetti). Una entità si rappresenta graficamente con una rettangolo, all'interno del quale si mette il nome del concetto che rappresenta. Impiegato
  • 4. Relazioni rappresentano legami logici, significativi per l’applicazione, tra due o più entità. RESIDENZA è un esempio di relazione che può sussistere tra le entità CITTA’ e IMPIEGATO, mentre ESAME può esserlo tra STUDENTE e CORSO. Una occorrenza di una relazione è una n-upla (coppia nel caso di relazione binaria) costituita da occorrenze di entità, una per ciascuna delle entità coinvolte. Una relazione si rappresenta graficamente con una rombo, all'interno del quale si mette il nome del concetto che rappresenta.
  • 5. Attributi Attributi: descrivono proprietà elementari di entità o relazioni di interesse ai fini dell’applicazione. N_posti Spettacolo Settore Titolo Data Prezzo Nome N_posti_disponibili
  • 6. Cardinalità delle relazioni Cardinalità delle relazioni: vengono specificate per ciascuna entità che partecipa a una relazione e dicono quante volte, in una relazione tra entità, un’occorrenza di una di queste entità può essere legata ad occorrenze delle altre entità coinvolte nella relazione (indica il minimo e il massimo delle occorrenze). Nello schema si intende cha ad un impiegato possono essere assegnati da uno a cinque incarichi, e che ad un incarico possono essere assegnati da 0 a molti (N) impiegati.
  • 7. Generalizzazioni rappresentano legami logici tra una entità padre e una o più entità figlie, che sono comprese dal padre e che ne costituiscono un caso particolare. Il padre viene chiamato generalizzazione dei figli, che vengono chiamati specializzazioni dell’entità padre. Tra le entità coinvolte in una generalizzazione valgono le proprietà: * Ogni occorrenza dell’entità figlia lo è anche dell’entità padre * Ogni proprietà dell’entità padre (attributi, identificatori, relazioni) è anche una proprietà delle entità figlie (ereditarietà).
  • 13. Anomalie di DB non relazionali • Aggiornamento In una tabella dove i dati sono ripetuti inutilmente l’aggiornamento dei dati comporta dover aggiornare numerose righe. Si pensi al caso in cui una delle righe da modificare era stata inserita con un errore di una lettera, una query di UPDATE fallirà e i dati risulterebbero incongruenti. • Cancellazione La cancellazione di un dato in una tabella deve essere possibile senza dover eliminare altri dati importanti. • Inserimento Se una tabella contiene informazioni non appartenenti alla stessa entità, ad esempio clienti e contatti, sarà impossibile inserire solo una società.
  • 14. Prima forma normale • Ogni colonna deve contenere un valore ‘atomico’ • La tabella deve avere una chiave primaria • Non sono ammessi gruppi ripetuti di dati
  • 15. Seconda forma normale Questa problematica entra in gioco quando si hanno chiavi su più campi. La tabella è in seconda forma normale se non si hanno colonne che dipendono solo parzialmente dalla chiave primaria: ad esempio da uno solo dei due campi che costituiscono la chiave.
  • 16. Terza forma normale Una tabella è in terza forma normale se non sono presenti dipendenze transitive, cioè si hanno campi che dipendono da una colonna che non è la chiave primaria.
  • 17. Esempio Per archiviare i dati di un sistema on-line per la iscrizione a corsi di formazione sono necessarie le seguenti informazioni: - corsi (titolo, durata, data_inizio, n_max_allievi) - moduli (nome, descrizione, durata) - docenti (nome, cognome,...altre info anagrafiche) - studenti (nome,cognome,...informazioni anagrafiche) Nello schema indicato sono state trascurate le chiavi primarie e le chiavi esterne (foreign key). Si consideri inoltre la eventuale necessità di entità aggiuntive, tra cui ricordo l'esigenza di memorizzare le iscrizioni ai corsi.