SlideShare a Scribd company logo
1 of 10
PROGETTARE UNA
BASE DI DATI –
TEORIA
GIUSEPPE CRAMAROSSA
ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO
4 FEBBRAIO 2017
SOMMARIO
 Generalità
 I database
 Tipi di database
 Entità
 Campi
 Relazioni
 Per capire: facciamo un gioco – nomi, cognomi e città
GENERALITÀ
 La necessità di salvare informazioni è diventata molto
importante
 Data mining
 Profilazione degli utenti
 Salvataggio di dati
 Tali informazioni devono essere organizzati in modo tale
da essere facilmente usufruibili e in poco tempo, anche
da più utenti
 A quali informazioni può accedere l’utente? E a quali non
può accedere?
I DATABASE
 I database permettono di gestire grandi quantità dati in
maniera efficiente e semplice
 Gestiscono l’accesso simultaneo ai dati, sia in lettura che
in scrittura
 Gestiscono gli utenti che possono usufruire dei dati
 Permettono di essere interrogati attraverso un linguaggio
di interrogazione (SQL)
 Permettono di fare ricerche nei dati secondo certi
parametri
 Verrà visto più tardi
TIPI DI DATABASE
 Esistono vari tipi di database
 Ad oggetti
 Reticolari
 Gerarchici
 Relazionali
 La scelta dipende dal tipo di applicazione da sviluppare
 Studieremo un database di tipo relazionale (RDBMS)
 MySQL
 Open source (gratuito)
 Robusto (maturo)
ENTITÀ
 Rappresentano classi di oggetti che hanno elementi comuni tra loro
 Persone
 Lingue
 Sono le tabelle del database
 Contengono campi, che determinano gli elementi da inserire
 Le entità possono essere collegate tra loro attraverso relazioni
 Un’entità può anche essere relazionata a se stessa (relazione riflessiva)
 Ogni entità deve avere una chiave primaria
CAMPI
 Indicano i dati da inserire nella tabella
 L’insieme dei campi costituisce un record (o tupla)
 Possono essere di vari tipi
 Intero, stringa, enumerativo, booleano, …
 I campi possono avere anche delle proprietà
 Autoincremento
 Indice
 Unica
RELAZIONI
 Permettono di collegare più tabelle tra loro
 Bisogna fare attenzione all’integrità referenziale
 Esistono vari tipi di relazioni
 Uno a uno (1:1)
 A un record di una tabella è associato un solo record di un’altra tabella
 Uno a molti (1:N)
 A un record di una tabella sono associati più record di un’altra tabella
 Molti a molti (N:N)
 A ogni record di una tabella sono associati più record di un’altra tabella
e viceversa
PER CAPIRE: FACCIAMO UN GIOCO -
NOMI, COGNOMI E CITTÀ (1/2)
NOMI COGNOMI CITTÀ
Carlo Rossi Padova
Giovanna Bianchi Mantova
Giulio Verdi Padova
Mario Gialli Padova
Giovanni Arancioni Trieste
Tizio Caio Matera
Sempronio Scipione Aosta
 Facciamo il gioco di nomi, cognomi e città
 Prendiamo come esempio i dati riportati nella
tabella a sinistra
 Trasformiamo la tabella in una base di dati
 I dati devono essere organizzati in modo tale
da eliminare le rindondanze
 Tale operazione viene definita
normalizzazione e viene fatta anche sui
campi della tabella
 I nomi e cognomi sono tipici delle persone.
Verrà creata quindi la tabella persone con
questi campi
 Le città costituiranno un entità a parte
 DA RICORDARE: Ogni tabella deve avere una
chiave primaria (verrà sottolineata)
PER CAPIRE: FACCIAMO UN GIOCO -
NOMI, COGNOMI E CITTÀ (2/2)
PERSONE
IDPERSONA NOME COGNOME EXTIDCITTA
1 Carlo Rossi 1
2 Giovanna Bianchi 2
3 Giulio Verdi 1
4 Mario Gialli 1
5 Giovanni Arancioni 3
6 Tizio Caio 4
7 Sempronio Scipione 5
CITTA
IDCITTA NOMECITTA
1 Padova
2 Mantova
3 Trieste
4 Matera
5 Aosta

More Related Content

Viewers also liked

Windows Store Apps: Tips & Tricks
Windows Store Apps: Tips & TricksWindows Store Apps: Tips & Tricks
Windows Store Apps: Tips & TricksRobert MacLean
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesGiuseppe Cramarossa
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Giuseppe Cramarossa
 
SOA, DDD e microservices
SOA, DDD e microservicesSOA, DDD e microservices
SOA, DDD e microservicesMauro Servienti
 
How to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutesRobert MacLean
 
Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.Robert MacLean
 
CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea VallottiCommit University
 
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...Codemotion
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoGabriele Gaggi
 
Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)Robert MacLean
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramGiuseppe Cramarossa
 
Single Sign On con IdentityServer
Single Sign On con IdentityServerSingle Sign On con IdentityServer
Single Sign On con IdentityServerMauro Servienti
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
NodeJS for .NET web developers
NodeJS for .NET web developersNodeJS for .NET web developers
NodeJS for .NET web developersCodemotion
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5Robert MacLean
 
REST in-practice, in practice!
REST in-practice, in practice!REST in-practice, in practice!
REST in-practice, in practice!Codemotion
 
AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communicationVittorio Conte
 

Viewers also liked (20)

Windows Store Apps: Tips & Tricks
Windows Store Apps: Tips & TricksWindows Store Apps: Tips & Tricks
Windows Store Apps: Tips & Tricks
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and frames
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
AngularJS-Intro
AngularJS-IntroAngularJS-Intro
AngularJS-Intro
 
SOA, DDD e microservices
SOA, DDD e microservicesSOA, DDD e microservices
SOA, DDD e microservices
 
How to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutes
 
Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.Visual Studio: The best tool for web developers.
Visual Studio: The best tool for web developers.
 
CommitUniversity AngularJSAdvanced Andrea Vallotti
CommitUniversity  AngularJSAdvanced Andrea VallottiCommitUniversity  AngularJSAdvanced Andrea Vallotti
CommitUniversity AngularJSAdvanced Andrea Vallotti
 
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...
Introduzione allo sviluppo di giochi multiplayer in HTML5 (con Socket.io) - V...
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)Protection of Personal Information Bill (POPI)
Protection of Personal Information Bill (POPI)
 
Open Source Licensing
Open Source LicensingOpen Source Licensing
Open Source Licensing
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 
Single Sign On con IdentityServer
Single Sign On con IdentityServerSingle Sign On con IdentityServer
Single Sign On con IdentityServer
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
NodeJS for .NET web developers
NodeJS for .NET web developersNodeJS for .NET web developers
NodeJS for .NET web developers
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5
 
REST in-practice, in practice!
REST in-practice, in practice!REST in-practice, in practice!
REST in-practice, in practice!
 
AngularJS 2.0
AngularJS 2.0 AngularJS 2.0
AngularJS 2.0
 
AngularJS: server communication
AngularJS: server communicationAngularJS: server communication
AngularJS: server communication
 

More from Giuseppe Cramarossa

Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwpCorso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwpGiuseppe Cramarossa
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiGiuseppe Cramarossa
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareGiuseppe Cramarossa
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkGiuseppe Cramarossa
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiGiuseppe Cramarossa
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetGiuseppe Cramarossa
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleGiuseppe Cramarossa
 
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Giuseppe Cramarossa
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesGiuseppe Cramarossa
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Giuseppe Cramarossa
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Giuseppe Cramarossa
 

More from Giuseppe Cramarossa (17)

Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwpCorso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
 
Lezione 11 - Javascript
Lezione 11 - JavascriptLezione 11 - Javascript
Lezione 11 - Javascript
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggetti
 
Lezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQLLezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQL
 
Lezione 7 - CSS
Lezione 7 - CSSLezione 7 - CSS
Lezione 7 - CSS
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del software
 
Lezione 5 - L'HTML
Lezione 5 - L'HTMLLezione 5 - L'HTML
Lezione 5 - L'HTML
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
 
Lezione 3 - Il CMS Joomla
Lezione 3 - Il CMS JoomlaLezione 3 - Il CMS Joomla
Lezione 3 - Il CMS Joomla
 
Lezione 2 - Il World Wide Web
Lezione 2  - Il World Wide WebLezione 2  - Il World Wide Web
Lezione 2 - Il World Wide Web
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocale
 
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile Services
 
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
Arduino + Azure: Realizzazione pratica di circuiti usando vari sensori e app ...
 
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web ...
 

Recently uploaded

Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 

Recently uploaded (9)

Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 

Lezione 8 - Teoria - Progettare una base di dati

  • 1. PROGETTARE UNA BASE DI DATI – TEORIA GIUSEPPE CRAMAROSSA ALTERNANZA SCUOLA-LAVORO @ LICEO SCIENTIFICO «G. GALILEI» BITONTO 4 FEBBRAIO 2017
  • 2. SOMMARIO  Generalità  I database  Tipi di database  Entità  Campi  Relazioni  Per capire: facciamo un gioco – nomi, cognomi e città
  • 3. GENERALITÀ  La necessità di salvare informazioni è diventata molto importante  Data mining  Profilazione degli utenti  Salvataggio di dati  Tali informazioni devono essere organizzati in modo tale da essere facilmente usufruibili e in poco tempo, anche da più utenti  A quali informazioni può accedere l’utente? E a quali non può accedere?
  • 4. I DATABASE  I database permettono di gestire grandi quantità dati in maniera efficiente e semplice  Gestiscono l’accesso simultaneo ai dati, sia in lettura che in scrittura  Gestiscono gli utenti che possono usufruire dei dati  Permettono di essere interrogati attraverso un linguaggio di interrogazione (SQL)  Permettono di fare ricerche nei dati secondo certi parametri  Verrà visto più tardi
  • 5. TIPI DI DATABASE  Esistono vari tipi di database  Ad oggetti  Reticolari  Gerarchici  Relazionali  La scelta dipende dal tipo di applicazione da sviluppare  Studieremo un database di tipo relazionale (RDBMS)  MySQL  Open source (gratuito)  Robusto (maturo)
  • 6. ENTITÀ  Rappresentano classi di oggetti che hanno elementi comuni tra loro  Persone  Lingue  Sono le tabelle del database  Contengono campi, che determinano gli elementi da inserire  Le entità possono essere collegate tra loro attraverso relazioni  Un’entità può anche essere relazionata a se stessa (relazione riflessiva)  Ogni entità deve avere una chiave primaria
  • 7. CAMPI  Indicano i dati da inserire nella tabella  L’insieme dei campi costituisce un record (o tupla)  Possono essere di vari tipi  Intero, stringa, enumerativo, booleano, …  I campi possono avere anche delle proprietà  Autoincremento  Indice  Unica
  • 8. RELAZIONI  Permettono di collegare più tabelle tra loro  Bisogna fare attenzione all’integrità referenziale  Esistono vari tipi di relazioni  Uno a uno (1:1)  A un record di una tabella è associato un solo record di un’altra tabella  Uno a molti (1:N)  A un record di una tabella sono associati più record di un’altra tabella  Molti a molti (N:N)  A ogni record di una tabella sono associati più record di un’altra tabella e viceversa
  • 9. PER CAPIRE: FACCIAMO UN GIOCO - NOMI, COGNOMI E CITTÀ (1/2) NOMI COGNOMI CITTÀ Carlo Rossi Padova Giovanna Bianchi Mantova Giulio Verdi Padova Mario Gialli Padova Giovanni Arancioni Trieste Tizio Caio Matera Sempronio Scipione Aosta  Facciamo il gioco di nomi, cognomi e città  Prendiamo come esempio i dati riportati nella tabella a sinistra  Trasformiamo la tabella in una base di dati  I dati devono essere organizzati in modo tale da eliminare le rindondanze  Tale operazione viene definita normalizzazione e viene fatta anche sui campi della tabella  I nomi e cognomi sono tipici delle persone. Verrà creata quindi la tabella persone con questi campi  Le città costituiranno un entità a parte  DA RICORDARE: Ogni tabella deve avere una chiave primaria (verrà sottolineata)
  • 10. PER CAPIRE: FACCIAMO UN GIOCO - NOMI, COGNOMI E CITTÀ (2/2) PERSONE IDPERSONA NOME COGNOME EXTIDCITTA 1 Carlo Rossi 1 2 Giovanna Bianchi 2 3 Giulio Verdi 1 4 Mario Gialli 1 5 Giovanni Arancioni 3 6 Tizio Caio 4 7 Sempronio Scipione 5 CITTA IDCITTA NOMECITTA 1 Padova 2 Mantova 3 Trieste 4 Matera 5 Aosta