SlideShare a Scribd company logo
1 of 16
A cura di Riccardo Piccioni
Database
I Database sono dei sistemi di archiviazione dati che ripartiscono i
loro contenuti in una struttura ordinata, consentendone la
consultazione e l’aggregazione.

I Database, in base alla rappresentazione logica dei dati, possono
adottare i seguenti modelli:
    Modello Gerarchico: rappresenta i dati con una forma ad albero
     (file system)
    Modello Reticolare: estende il primo introducendo dei puntatori
     (collegamenti)
    Modello Relazionale: I dati sono inseriti in una tabella composta
     da righe e colonne a cui è possibile associare delle relazioni con altri
     record
    Modello Ad oggetti: i dati vengono strutturati in classi che
     aggiungono al dato anche le informazioni sulle operazioni possibili
Database Relazionali
Il modello relazionale è attualmente il più adottato. Esso si
basa sulla teoria degli insiemi abbinata all’algebra relazionale.

Una parte molto importante nel suo sviluppo è la possibilità
di interagire con il database con il linguaggio SQL

I Principali elementi di un database relazionale sono:
    Tabelle
    Procedure
    Funzioni
    Trigger
DBMS SQL
Un software che gestisce database prende il nome di
DBMS (DataBase Management System o Sistema di
Gestione di DataBase)

I principali DBMS oggi in uso sono
   Microsoft SQL Server
   MySQL
   PostreSQL
   Oracle
Tabelle
Nei database relazionali i dati sono salvati all’interno di una
struttura chiamata TABLE (tabella).
Questa struttura ripartisce le informazioni in COLUMN (colonne),
ognuna delle quali contiene un’informazione specifica.
Le righe di questa tabella sono chiamate RECORD e contengono
l’insieme delle colonne di un elemento.
Una colonna specifica di una riga è chiamata FIELD (o campo)
Nome            Cognome         Indirizzo           Città

Riccardo        Piccioni        Via dei Cincillà    Jesi

Ramone          Piccione        Vialone Grande      Ancona

Michael         Peruzzi         Via del disordine   M. San Vito
Tabelle - I Tipi Dato
Per ogni campo di una tabella è necessario specificare il tipo di dato
in esso contenuto.
Il contenuto di una colonna può essere:
      Varchar: una stringa (testo)
      Int: un numero intero
      Decimal: un numero decimale
      Datetime: una data
      Blob o varbinary: un file binario
      contatore
      Un tipo dati custom

Per alcuni tipi dato (varchar, decimal) occorre specificare la
dimensione.
Tabelle - Struttura
Le tabelle hanno la possibilità di specificare degli
elementi che contribuiscono ad ottimizzare la ricerca e
l’aggregazione delle informazioni referenziando i
contenuti della tabella.
   Key (chiavi): definisce uno o più campi chiave della
    tabella e non consentendone la duplicazione
   Index (indice): in un ottica di ottimizzazione definisce
    dei «campi di ricerca» per cui viene costruita una cache
    apposita
   Default value: permette di specificare il valore
    predefinito in fase di creazione del record qualora non
    venga specificato
Il Linguaggio SQL
Il linguaggio SQL (Structured Query Language) è un
linguaggio DML (data manipulation language) che consente
di interagire con i database relazionali a prescindere dal
DBMS usato.
I Principali comandi SQL sono:
   SELECT
    select <elenco campi> from <tabella>
   INSERT
    insert into <tabella> (<campi>) values (<valori>)
   DELETE
    delete from <tabella>
   UPDATE
    update <tabella> set <campo> = <valore>
T-SQL: where
In ogni istruzione SQL è possibile specificare i singoli
record oggetto del comando tramite la clausola WHERE

Per estrarre ad esempio dalla tabella iniziale tutti i
nominativi residenti a Jesi potrei usare la sintassi

SELECT * FROM RUBRICA WHERE CITTA = ‘Jesi’
T-SQL: unione tabelle
E’ possibile aggregare informazioni di più tabelle tra loro
utilizzando in abbinamento al comando SELECT la
clausola JOIN.
Il risultato dell’aggregazione di due o più tabelle prende
il nome di QUERY.
Esistono 3 tipi di join
   INNER JOIN
   LEFT OUTER JOIN
   RIGHT OUTER JOIN
SQL Esempi – tabelle iniziali
Si prendano ad esempio le tabelle RUBRICA e ELENCO_CITTA
Nome                Cognome              Città
Riccardo            Piccioni             Jesi
Ramone              Piccioni             Perugia
Michael             Peruzzi              M. San Vito

Città         Provincia        Regione
Jesi          AN               Marche
Ancona        AN               Marche
Perugia       PG               Umbria
M. San Vito   AN               Marche
SQL Esempi – struttura dati
 E’ possibile stabilire una relazione logica tra queste due
 tabelle in quanto il valore del campo città della tabella
 RUBRICA ha lo stesso valore logico del valore del campo
 Città nella tabella ELENCO_CITTA
   RUBRICA                     ELENCO_CITTA
   Nome
                               città
   Cognome
                               provincia
   città
                               regione
SQL Esempi – aggregazione dati
In base a questa relazione logica è possibile unire il contenuto delle due
tabelle attraverso un comando SELECT con l’aggiunta della clausola JOIN

SELECT * FROM RUBRICA
INNER JOIN ELENCO_CITTA
ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’

Il risultato di questa select restituirà la tabella

Nome            Cognome          Città            Provincia   Regione
Riccardo        Piccioni         Jesi             AN          Marche
Ramone          Piccioni         Perugia          PG          Umbria
Michael         Peruzzi          M. San Vito      AN          Marche
SQL Esempi – selezioni filtrate
Se volessimo quindi sapere quante persone abitano nelle marche
potremmo modificare la select in questo modo

SELECT * FROM RUBRICA
INNER JOIN ELENCO_CITTA
ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’
WHERE REGIONE = ‘Marche’

Il risultato di questa select restituirà la tabella
Nome            Cognome          Città            Provincia   Regione
Riccardo        Piccioni         Jesi             AN          Marche
Michael         Peruzzi          M. San Vito      AN          Marche
MySQL - Introduzione
MySQL è un database relazione open source
estremamente diffuso in quanto parte dell’architettura
LAMP (linux, apache, mysql, php) una struttura
enormemente diffusa per l’erogazione dei servizi web.

Rilasciato oggi in versione stabile anche per le
architetture WAMP e MAMP costituisce il database di
default dalla maggior parte degli hosting provider

http://www.mysql.com/
MySQL - phpMyAdmin
Nostante esista una sui GUI (MySQL Workbench),
l’amministrazione di MySQL è oggi largamente fornita
attraverso phpMyAdmin, un’applicazione open source in
php che consente di amministrare in modo semplificato
i database MySQL.

http://www.phpmyadmin.net

More Related Content

What's hot

Dublin Core In Practice
Dublin Core In PracticeDublin Core In Practice
Dublin Core In PracticeMarcia Zeng
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Archivo secuencial indexado
Archivo secuencial indexadoArchivo secuencial indexado
Archivo secuencial indexadolesster ostorga
 
Introduction to Data Warehouse
Introduction to Data WarehouseIntroduction to Data Warehouse
Introduction to Data WarehouseShanthi Mukkavilli
 
DBMS architecture &; system structure
DBMS architecture &; system  structureDBMS architecture &; system  structure
DBMS architecture &; system structureRUpaliLohar
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1ahfiki
 
Overview of Storage and Indexing ...
Overview of Storage and Indexing                                             ...Overview of Storage and Indexing                                             ...
Overview of Storage and Indexing ...Javed Khan
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to databaseArpee Callejo
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datoslauraluiso
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databasesArangoDB Database
 
Database Modeling Using Entity.. Weak And Strong Entity Types
Database Modeling Using Entity.. Weak And Strong Entity TypesDatabase Modeling Using Entity.. Weak And Strong Entity Types
Database Modeling Using Entity.. Weak And Strong Entity Typesaakanksha s
 
2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMSkoolkampus
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBVictor Cuervo
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacionalLuis Jherry
 
base de datos power point
base de datos power pointbase de datos power point
base de datos power pointscaitechnonolgy
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexadosjennifergu17
 
Fundamentals of Database ppt ch03
Fundamentals of Database ppt ch03Fundamentals of Database ppt ch03
Fundamentals of Database ppt ch03Jotham Gadot
 

What's hot (20)

Dublin Core In Practice
Dublin Core In PracticeDublin Core In Practice
Dublin Core In Practice
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Archivo secuencial indexado
Archivo secuencial indexadoArchivo secuencial indexado
Archivo secuencial indexado
 
Base de datos
Base de datosBase de datos
Base de datos
 
Introduction to Data Warehouse
Introduction to Data WarehouseIntroduction to Data Warehouse
Introduction to Data Warehouse
 
DBMS architecture &; system structure
DBMS architecture &; system  structureDBMS architecture &; system  structure
DBMS architecture &; system structure
 
Database Design Slide 1
Database Design Slide 1Database Design Slide 1
Database Design Slide 1
 
database
databasedatabase
database
 
Overview of Storage and Indexing ...
Overview of Storage and Indexing                                             ...Overview of Storage and Indexing                                             ...
Overview of Storage and Indexing ...
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to database
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Indexing
IndexingIndexing
Indexing
 
Introduction to column oriented databases
Introduction to column oriented databasesIntroduction to column oriented databases
Introduction to column oriented databases
 
Database Modeling Using Entity.. Weak And Strong Entity Types
Database Modeling Using Entity.. Weak And Strong Entity TypesDatabase Modeling Using Entity.. Weak And Strong Entity Types
Database Modeling Using Entity.. Weak And Strong Entity Types
 
2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
base de datos power point
base de datos power pointbase de datos power point
base de datos power point
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexados
 
Fundamentals of Database ppt ch03
Fundamentals of Database ppt ch03Fundamentals of Database ppt ch03
Fundamentals of Database ppt ch03
 

Viewers also liked

Web base - CSS e selettori
Web base - CSS e selettoriWeb base - CSS e selettori
Web base - CSS e selettoriAnnalisa Vignoli
 
New Standards June 2010
New Standards June 2010New Standards June 2010
New Standards June 2010VWOA
 
Test Engineer_NanYang
Test Engineer_NanYangTest Engineer_NanYang
Test Engineer_NanYangSunny Nan
 
Sesion 02-alumnos
Sesion 02-alumnosSesion 02-alumnos
Sesion 02-alumnosfmpo
 
Kompetence_JOB EXPO (2)
Kompetence_JOB EXPO (2)Kompetence_JOB EXPO (2)
Kompetence_JOB EXPO (2)Veronika Dvo?
 
Social Networking and Careers
Social Networking and CareersSocial Networking and Careers
Social Networking and CareersWilliam Buist
 
Assure assignment
Assure assignmentAssure assignment
Assure assignmentBethanyLynn
 
Come sopravvivere a una apocalisse zombie static
Come sopravvivere a una apocalisse zombie staticCome sopravvivere a una apocalisse zombie static
Come sopravvivere a una apocalisse zombie staticPaolo Valenti
 
Застосування елемнтів критичного мислення на уроках математики
Застосування елемнтів критичного мислення на уроках математикиЗастосування елемнтів критичного мислення на уроках математики
Застосування елемнтів критичного мислення на уроках математикиDmitry Voytenko
 
The Malcolm Baldrige National Quality Assurance Award
The Malcolm Baldrige National Quality Assurance AwardThe Malcolm Baldrige National Quality Assurance Award
The Malcolm Baldrige National Quality Assurance Awardahmad bassiouny
 
Insuficiencia cardíaca aguda y shock cardiogénico terapeútica 2015
Insuficiencia cardíaca aguda y shock cardiogénico   terapeútica 2015Insuficiencia cardíaca aguda y shock cardiogénico   terapeútica 2015
Insuficiencia cardíaca aguda y shock cardiogénico terapeútica 2015Daniel Borba
 
Creating New Application
Creating New ApplicationCreating New Application
Creating New ApplicationAshock Roy
 
Profile Resume 16031 Prashant Jain
Profile Resume 16031 Prashant JainProfile Resume 16031 Prashant Jain
Profile Resume 16031 Prashant JainPrashant Jain
 

Viewers also liked (19)

Web base - CSS e selettori
Web base - CSS e selettoriWeb base - CSS e selettori
Web base - CSS e selettori
 
Python base lezione 2
Python base lezione 2Python base lezione 2
Python base lezione 2
 
New Standards June 2010
New Standards June 2010New Standards June 2010
New Standards June 2010
 
Primeros auxilios
Primeros auxiliosPrimeros auxilios
Primeros auxilios
 
Test Engineer_NanYang
Test Engineer_NanYangTest Engineer_NanYang
Test Engineer_NanYang
 
Sesion 02-alumnos
Sesion 02-alumnosSesion 02-alumnos
Sesion 02-alumnos
 
Kompetence_JOB EXPO (2)
Kompetence_JOB EXPO (2)Kompetence_JOB EXPO (2)
Kompetence_JOB EXPO (2)
 
CBS Kilkenny 2016
CBS Kilkenny 2016CBS Kilkenny 2016
CBS Kilkenny 2016
 
Social Networking and Careers
Social Networking and CareersSocial Networking and Careers
Social Networking and Careers
 
Assure assignment
Assure assignmentAssure assignment
Assure assignment
 
Come sopravvivere a una apocalisse zombie static
Come sopravvivere a una apocalisse zombie staticCome sopravvivere a una apocalisse zombie static
Come sopravvivere a una apocalisse zombie static
 
Застосування елемнтів критичного мислення на уроках математики
Застосування елемнтів критичного мислення на уроках математикиЗастосування елемнтів критичного мислення на уроках математики
Застосування елемнтів критичного мислення на уроках математики
 
micobacterias
micobacteriasmicobacterias
micobacterias
 
Penzijski sistem Japana
Penzijski sistem JapanaPenzijski sistem Japana
Penzijski sistem Japana
 
RESUME PEGA
RESUME PEGARESUME PEGA
RESUME PEGA
 
The Malcolm Baldrige National Quality Assurance Award
The Malcolm Baldrige National Quality Assurance AwardThe Malcolm Baldrige National Quality Assurance Award
The Malcolm Baldrige National Quality Assurance Award
 
Insuficiencia cardíaca aguda y shock cardiogénico terapeútica 2015
Insuficiencia cardíaca aguda y shock cardiogénico   terapeútica 2015Insuficiencia cardíaca aguda y shock cardiogénico   terapeútica 2015
Insuficiencia cardíaca aguda y shock cardiogénico terapeútica 2015
 
Creating New Application
Creating New ApplicationCreating New Application
Creating New Application
 
Profile Resume 16031 Prashant Jain
Profile Resume 16031 Prashant JainProfile Resume 16031 Prashant Jain
Profile Resume 16031 Prashant Jain
 

Similar to corso web - Introduzione ai Database

Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...laboratoridalbasso
 
Access parte prima
Access parte primaAccess parte prima
Access parte primaMatekanc
 
MongoDB
MongoDBMongoDB
MongoDBNaLUG
 
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative  al Sistema di Catalogazione del progetto MESSIAHInterfacce applicative  al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAHCostantino Landino
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]Andrea Maddalena
 
Il foglio elettronico a supporto dell’attività professionale [AP03-S]
Il foglio elettronico a supporto dell’attività professionale [AP03-S]Il foglio elettronico a supporto dell’attività professionale [AP03-S]
Il foglio elettronico a supporto dell’attività professionale [AP03-S]Andrea Maddalena
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-databaseMajong DevJfu
 
IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerRiccardo De Mattia
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandasStudiabo
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandasStudiabo
 

Similar to corso web - Introduzione ai Database (20)

SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
 
Access parte prima
Access parte primaAccess parte prima
Access parte prima
 
Database Entity
Database EntityDatabase Entity
Database Entity
 
MongoDB
MongoDBMongoDB
MongoDB
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative  al Sistema di Catalogazione del progetto MESSIAHInterfacce applicative  al Sistema di Catalogazione del progetto MESSIAH
Interfacce applicative al Sistema di Catalogazione del progetto MESSIAH
 
Basi Di Dati 01
Basi Di Dati 01Basi Di Dati 01
Basi Di Dati 01
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]
 
Il foglio elettronico a supporto dell’attività professionale [AP03-S]
Il foglio elettronico a supporto dell’attività professionale [AP03-S]Il foglio elettronico a supporto dell’attività professionale [AP03-S]
Il foglio elettronico a supporto dell’attività professionale [AP03-S]
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-database
 
Excel development e sql 2.1
Excel development e sql   2.1Excel development e sql   2.1
Excel development e sql 2.1
 
IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL Server
 
Data Base In Open Office
Data Base In Open OfficeData Base In Open Office
Data Base In Open Office
 
Modulo5
Modulo5Modulo5
Modulo5
 
Database NewAGE
Database NewAGEDatabase NewAGE
Database NewAGE
 
Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 
Database
DatabaseDatabase
Database
 

corso web - Introduzione ai Database

  • 1. A cura di Riccardo Piccioni
  • 2. Database I Database sono dei sistemi di archiviazione dati che ripartiscono i loro contenuti in una struttura ordinata, consentendone la consultazione e l’aggregazione. I Database, in base alla rappresentazione logica dei dati, possono adottare i seguenti modelli:  Modello Gerarchico: rappresenta i dati con una forma ad albero (file system)  Modello Reticolare: estende il primo introducendo dei puntatori (collegamenti)  Modello Relazionale: I dati sono inseriti in una tabella composta da righe e colonne a cui è possibile associare delle relazioni con altri record  Modello Ad oggetti: i dati vengono strutturati in classi che aggiungono al dato anche le informazioni sulle operazioni possibili
  • 3. Database Relazionali Il modello relazionale è attualmente il più adottato. Esso si basa sulla teoria degli insiemi abbinata all’algebra relazionale. Una parte molto importante nel suo sviluppo è la possibilità di interagire con il database con il linguaggio SQL I Principali elementi di un database relazionale sono:  Tabelle  Procedure  Funzioni  Trigger
  • 4. DBMS SQL Un software che gestisce database prende il nome di DBMS (DataBase Management System o Sistema di Gestione di DataBase) I principali DBMS oggi in uso sono  Microsoft SQL Server  MySQL  PostreSQL  Oracle
  • 5. Tabelle Nei database relazionali i dati sono salvati all’interno di una struttura chiamata TABLE (tabella). Questa struttura ripartisce le informazioni in COLUMN (colonne), ognuna delle quali contiene un’informazione specifica. Le righe di questa tabella sono chiamate RECORD e contengono l’insieme delle colonne di un elemento. Una colonna specifica di una riga è chiamata FIELD (o campo) Nome Cognome Indirizzo Città Riccardo Piccioni Via dei Cincillà Jesi Ramone Piccione Vialone Grande Ancona Michael Peruzzi Via del disordine M. San Vito
  • 6. Tabelle - I Tipi Dato Per ogni campo di una tabella è necessario specificare il tipo di dato in esso contenuto. Il contenuto di una colonna può essere:  Varchar: una stringa (testo)  Int: un numero intero  Decimal: un numero decimale  Datetime: una data  Blob o varbinary: un file binario  contatore  Un tipo dati custom Per alcuni tipi dato (varchar, decimal) occorre specificare la dimensione.
  • 7. Tabelle - Struttura Le tabelle hanno la possibilità di specificare degli elementi che contribuiscono ad ottimizzare la ricerca e l’aggregazione delle informazioni referenziando i contenuti della tabella.  Key (chiavi): definisce uno o più campi chiave della tabella e non consentendone la duplicazione  Index (indice): in un ottica di ottimizzazione definisce dei «campi di ricerca» per cui viene costruita una cache apposita  Default value: permette di specificare il valore predefinito in fase di creazione del record qualora non venga specificato
  • 8. Il Linguaggio SQL Il linguaggio SQL (Structured Query Language) è un linguaggio DML (data manipulation language) che consente di interagire con i database relazionali a prescindere dal DBMS usato. I Principali comandi SQL sono:  SELECT select <elenco campi> from <tabella>  INSERT insert into <tabella> (<campi>) values (<valori>)  DELETE delete from <tabella>  UPDATE update <tabella> set <campo> = <valore>
  • 9. T-SQL: where In ogni istruzione SQL è possibile specificare i singoli record oggetto del comando tramite la clausola WHERE Per estrarre ad esempio dalla tabella iniziale tutti i nominativi residenti a Jesi potrei usare la sintassi SELECT * FROM RUBRICA WHERE CITTA = ‘Jesi’
  • 10. T-SQL: unione tabelle E’ possibile aggregare informazioni di più tabelle tra loro utilizzando in abbinamento al comando SELECT la clausola JOIN. Il risultato dell’aggregazione di due o più tabelle prende il nome di QUERY. Esistono 3 tipi di join  INNER JOIN  LEFT OUTER JOIN  RIGHT OUTER JOIN
  • 11. SQL Esempi – tabelle iniziali Si prendano ad esempio le tabelle RUBRICA e ELENCO_CITTA Nome Cognome Città Riccardo Piccioni Jesi Ramone Piccioni Perugia Michael Peruzzi M. San Vito Città Provincia Regione Jesi AN Marche Ancona AN Marche Perugia PG Umbria M. San Vito AN Marche
  • 12. SQL Esempi – struttura dati E’ possibile stabilire una relazione logica tra queste due tabelle in quanto il valore del campo città della tabella RUBRICA ha lo stesso valore logico del valore del campo Città nella tabella ELENCO_CITTA RUBRICA ELENCO_CITTA Nome città Cognome provincia città regione
  • 13. SQL Esempi – aggregazione dati In base a questa relazione logica è possibile unire il contenuto delle due tabelle attraverso un comando SELECT con l’aggiunta della clausola JOIN SELECT * FROM RUBRICA INNER JOIN ELENCO_CITTA ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’ Il risultato di questa select restituirà la tabella Nome Cognome Città Provincia Regione Riccardo Piccioni Jesi AN Marche Ramone Piccioni Perugia PG Umbria Michael Peruzzi M. San Vito AN Marche
  • 14. SQL Esempi – selezioni filtrate Se volessimo quindi sapere quante persone abitano nelle marche potremmo modificare la select in questo modo SELECT * FROM RUBRICA INNER JOIN ELENCO_CITTA ON RUBRICA.CITTA’ = ELENCO_CITTA.CITTA’ WHERE REGIONE = ‘Marche’ Il risultato di questa select restituirà la tabella Nome Cognome Città Provincia Regione Riccardo Piccioni Jesi AN Marche Michael Peruzzi M. San Vito AN Marche
  • 15. MySQL - Introduzione MySQL è un database relazione open source estremamente diffuso in quanto parte dell’architettura LAMP (linux, apache, mysql, php) una struttura enormemente diffusa per l’erogazione dei servizi web. Rilasciato oggi in versione stabile anche per le architetture WAMP e MAMP costituisce il database di default dalla maggior parte degli hosting provider http://www.mysql.com/
  • 16. MySQL - phpMyAdmin Nostante esista una sui GUI (MySQL Workbench), l’amministrazione di MySQL è oggi largamente fornita attraverso phpMyAdmin, un’applicazione open source in php che consente di amministrare in modo semplificato i database MySQL. http://www.phpmyadmin.net