SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Database – base di dati
          DBMS
DATABASE MANAGEMENT SYSTEM

           Sistema di gestione di
                base di dati
       contenitori che immagazzinano grandi
      ●


      quantità di dati

       i dati sono fruibili tramite un sistema
      ●


      di gestione
Caratteristiche

    Grandi quantità
●




    Condivisione
●




    Persistenza
●




    Affidabilità
●




    Controllo sugli accessi (DBA)
●
RDBMS
           modello RELAZIONE dei database
 RELAZIONE (o tabella)
Indirizzi
 CAMPO (a attributi della relazione)
|Cognome         |Nome      |Indirizzo   |Telefono    |
 RECORD (valori)
|Pallino         |Pinco     |Via Biglie 1|0222,222222 |
.======================================================.
|Indirizzi                                              |
|------------------------------------------------------|
|Cognome         |Nome      |Indirizzo    |Telefono     |
|---------------|----------|------------|--------------|
|Pallino         |Pinco     |Via Biglie 1|0222,222222   |
|Tizi            |Tizio     |Via Tazi 5 |0555,555555    |
|Cai             |Caio      |Via Caini 1 |0888,888888   |
|Semproni        |Sempronio |Via Sempi 7 |0999,999999   |
`======================================================'
Relazioni collegate
.============================================.
|Articoli                                    |
|--------------------------------------------|
|Codice|Descrizione    |Fornitore1|Fornitore2|
|------|---------------|----------|----------|
|vite30|Vite 3 mm      |       123|       126|
|vite40|Vite 4 mm      |       126|       127|
|dado30|Dado 3 mm      |       122|       123|
|dado40|Dado 4 mm      |       126|       127|
|rond50|Rondella 5 mm |        123|       126|
`============================================'
.==============================================.
|Movimenti                                     |
|----------------------------------------------|
|Codice|Data      |Carico|Scarico|CodFor|CodCli|
|------|----------|------|-------|------|------|
|vite40|01/01/1999| 1200|        |   124|      |
|vite30|01/01/1999|      |    800|      |   825|
|vite30|02/01/1999|      |   1000|      |   954|
|rond50|03/01/1999|      |    500|      |   954|
`=============================================='
Unioni – Intersezioni ­ Differenze
Teoria degli insiemi
.----------------------------------------------------------.
|CODICE|DATA      |CARICO|SCARICO|... |DESCRIZIONE    |... |
|------|----------|------|-------|----|---------------|----|
|vite40|01/01/1999| 1200|        |... |Vite 4 mm      |... |
|vite30|01/01/1999|      |    800|... |Vite 3 mm      |... |
|vite30|02/01/1999|      |   1000|... |Vite 3 mm      |... |
|vite30|03/01/1999| 2000|        |... |Vite 3 mm      |... |
|rond50|03/01/1999|      |    500|... |Rondella 5 mm |... |
`=========================================================='

     Esempio di unione fra Articoli e Movimenti
     attraverso il campo Codice
Vincoli sui campi
    Insieme dei valori ammissibili
●



        NULL, NOT NULL, INT, ....
    –


    Valori univoci
●



        CHIAVE PRIMARIA
    –


    Relazione con altri valori 
●



        stessa tabella 
    –

        esterni
    –
SQL
                   Structured Query Language
      linguaggio di gestione per basi di dati relazionali
Convenzioni sul linguaggio:

    Comandi scritti maiuscolo
●


     non fa differenza se non per i valori dei campi della tabella

    Nomi degli oggetti (tabelle, campi ...) sono composti solo da
●


     lettere, numeri e underscore (“_”)

    Primo carattere del nome deve essere una lettera o
●


      underscore

    La fine di una istruzione e' data dal punto e virgola o
●


     riga vuota
6 azioni – 6 comandi
AZIONE                  COMANDO
Creare tabelle          CREATE TABLE
Eliminare tabelle       DROP TABLE
Inserire record         INSERT 
Interrogare record      SELECT
Modificare record       UPDATE
Cancellare record       DELETE
Tipi di dati
Stringhe di caratteri
    VARCHAR (dimensioni)
   TEXT
I valori vanno dichiarati fra virgolette (Es: 'Nome')
  dimensioni => numero di caratteri utilizzabili nella stringhe
Valori numerici
    INT
    FLOAT
interi e numeri con virgola mobile
Date
    DATE
    TIME
    TIMESTAMP
I valori vanno dichiarati fra virgolette o apici
Tabella ­ sintassi
Creare

CREATE TABLE nome_tabella (
        nome_colonna1 TIPO_COLONNA1
VINCOLI_COLONNA1,
        nome_colonna2 TIPO_COLONNA2
VINCOLI_COLONNA2,
                     ....
        nome_colonnan TIPO_COLONNA_n
VINCOLI_COLONNA_n
        );
Cancellare

DROP TABLE nome_tabella;
Tabella ­ esempio

CREATE TABLE indirizzi (
   id serial PRIMARY KEY,
   nome varchar(40) NOT NULL,
   cognome varchar(40) NOT NULL,
   indirizzo varchar(40) DEFAULT    'sconosciuto',
   telefono varchar(40) NOT NULL,
   id_comune int references      (ammcom.id),
   data_nascita date
);

DROP TABLE indirizzi;
Inserire ­ sintassi

INSERT INTO nome_tabella (
     colonna_1,
     colonna_2,
     ...
      colonna_ n
)
VALUES (
     valore_1,
     valore_2,
     ...
     valore_n
);
Inserire ­ esempio
INSERT INTO Indirizzi (
      nome,
      cognome,
     indirizzo,
      telefono,
     compleanno
  )
  VALUES (
      'Gigi',
      'Marzullo',
      'Via Teulada 66 Roma',
      '06 1234567',
     '1915/03/26'
  );
Cancellare
Sintassi
DELETE FROM nome_tabella [WHERE condizione]

Esempio

DELETE FROM indirizzi;

           Mancando una condizione (WHERE)

                     il comando

               SVUOTA LA TABELLA
Operatori di condizione
... WHERE campo OPERATORE valore

Operatori di confronto

> maggiore di
< minore di
= uguale a
!= diverso da

Esempio delete con condizione
DELETE FROM indirizzi WHERE nome = 'Gigi';
Modifica ­ sintassi
UPDATE nome_tabella SET

colonna_1 = nuovo_valore_1,

colonna_2 = nuovo_valore_2,

...

colonna_n = nuovo_valore_n

      [WHERE condizione]
Modifica ­ esempio

UPDATE indirizzi SET

  nome='Gigino'

     WHERE

cognome='Marzullo';
Interrogare ­ sintassi

SELECT

campo1,campo2,...,campoN

FROM nome_tabella

[[WHERE condizione [ORDER BY campoN]];
Interrogare ­ esempi

SELECT * FROM indirizzi;

SELECT nome, cognome FROM indirizzi;

SELECT * FROM indirizzi WHERE
         data_nascita >= '1986/03/01';

SELECT nome, cognome FROM indirizzi
       WHERE data_nascita >= '1986/03/01'
       ORDER BY nome;
Operatori logici
          AND, OR, NOT,     ...

Esempio con SELECT
SELECT nome, cognome FROM indirizzi WHERE
data_nascita >= '1986/03/01'
AND data_nascita <='1986/04/30'

Esempio con DELETE
DELETE FROM indirizzi WHERE nome = 'Gigi'
OR nome='Silvio'
Query (select) di unione fra 2 tabelle
                S
   SELECT indirizzi.nome, ammcom.descrizion
                E
             FROM indirizzi, ammcom
                L
     WHERE indirizzi.id_comune = ammcom.id
                E
                C
                                  id
                T
id
                                 descrizion
id_comune
                n                geometry
cognome
                o
nome
                m    nome
                e
                .   descrizion
    indirizzi                       amm_com
                i
                n
                      join
                d
                i
Extra
Funzioni
sono chiamate tramite il comando SELECT

Esempio sintassi per SUM()
SELECT SUM(expression )
FROM tables
WHERE predicates;

Molti DBMS permettono di creare nuovi funzioni attraverso
un linguaggio specifico (SQL Procedural Language)
spesso estendibile
Es: Postgresql offre pgSQL estendibile con R

Trigger
le funzioni possono essere associate ad eventi

Mais conteúdo relacionado

Mais procurados

Association rule mining
Association rule miningAssociation rule mining
Association rule miningAcad
 
Triggers in SQL | Edureka
Triggers in SQL | EdurekaTriggers in SQL | Edureka
Triggers in SQL | EdurekaEdureka!
 
Unit 4-lecte3-io interface
Unit 4-lecte3-io interfaceUnit 4-lecte3-io interface
Unit 4-lecte3-io interfacevishal choudhary
 
Theory of automata and formal language
Theory of automata and formal languageTheory of automata and formal language
Theory of automata and formal languageRabia Khalid
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMSkoolkampus
 
Controlling User Access -Data base
Controlling User Access -Data baseControlling User Access -Data base
Controlling User Access -Data baseSalman Memon
 
Distance Metric Learning
Distance Metric LearningDistance Metric Learning
Distance Metric LearningSanghyuk Chun
 
The Relational Database Model
The Relational Database ModelThe Relational Database Model
The Relational Database ModelShishir Aryal
 
Relational database
Relational database Relational database
Relational database Megha Sharma
 

Mais procurados (20)

Association rule mining
Association rule miningAssociation rule mining
Association rule mining
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
 
Sequences and indexes
Sequences and indexesSequences and indexes
Sequences and indexes
 
Oracle Database Sequence
Oracle Database SequenceOracle Database Sequence
Oracle Database Sequence
 
push down automata
push down automatapush down automata
push down automata
 
Answer quiz minimax
Answer quiz minimaxAnswer quiz minimax
Answer quiz minimax
 
pushdown automata
pushdown automatapushdown automata
pushdown automata
 
Mysql Ppt
Mysql PptMysql Ppt
Mysql Ppt
 
Triggers in SQL | Edureka
Triggers in SQL | EdurekaTriggers in SQL | Edureka
Triggers in SQL | Edureka
 
Oracle archi ppt
Oracle archi pptOracle archi ppt
Oracle archi ppt
 
Unit 4-lecte3-io interface
Unit 4-lecte3-io interfaceUnit 4-lecte3-io interface
Unit 4-lecte3-io interface
 
Theory of automata and formal language
Theory of automata and formal languageTheory of automata and formal language
Theory of automata and formal language
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
 
Bayes Belief Networks
Bayes Belief NetworksBayes Belief Networks
Bayes Belief Networks
 
Controlling User Access -Data base
Controlling User Access -Data baseControlling User Access -Data base
Controlling User Access -Data base
 
Distance Metric Learning
Distance Metric LearningDistance Metric Learning
Distance Metric Learning
 
Ms sql-server
Ms sql-serverMs sql-server
Ms sql-server
 
The Relational Database Model
The Relational Database ModelThe Relational Database Model
The Relational Database Model
 
Chapter 4 Structured Query Language
Chapter 4 Structured Query LanguageChapter 4 Structured Query Language
Chapter 4 Structured Query Language
 
Relational database
Relational database Relational database
Relational database
 

Destaque

Database, concetti di base
Database, concetti di baseDatabase, concetti di base
Database, concetti di baseantmng
 
analisi ed utilizzazione della scoutizzazione - modulo 26
analisi ed utilizzazione della scoutizzazione - modulo 26analisi ed utilizzazione della scoutizzazione - modulo 26
analisi ed utilizzazione della scoutizzazione - modulo 26Maurizio Napolitano
 
tecniche di rilevamento dei dati durante le partite - modulo 25
tecniche di rilevamento dei dati durante le partite - modulo 25tecniche di rilevamento dei dati durante le partite - modulo 25
tecniche di rilevamento dei dati durante le partite - modulo 25Maurizio Napolitano
 
Alzatore Corso Primo Grado - Trento 2010
Alzatore Corso Primo Grado - Trento 2010Alzatore Corso Primo Grado - Trento 2010
Alzatore Corso Primo Grado - Trento 2010Maurizio Napolitano
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazioneguestbe916c
 
Cattaneo Avellino12112008
Cattaneo Avellino12112008Cattaneo Avellino12112008
Cattaneo Avellino12112008pipp8
 
dati e storie: dal grigiore dei numeri ai colori di immagini e mappe
dati e storie: dal grigiore dei numeri ai colori di immagini e mappedati e storie: dal grigiore dei numeri ai colori di immagini e mappe
dati e storie: dal grigiore dei numeri ai colori di immagini e mappeMaurizio Napolitano
 
Presentazione - la nascita e lo sviluppo di Internet.
Presentazione - la nascita e lo sviluppo di Internet.Presentazione - la nascita e lo sviluppo di Internet.
Presentazione - la nascita e lo sviluppo di Internet.guest11dfa15c
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis nimartini
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSergio Porcu
 

Destaque (20)

Database, concetti di base
Database, concetti di baseDatabase, concetti di base
Database, concetti di base
 
Database - progettazione
Database - progettazioneDatabase - progettazione
Database - progettazione
 
Il linguaggio SQL
Il linguaggio SQLIl linguaggio SQL
Il linguaggio SQL
 
Database
DatabaseDatabase
Database
 
analisi ed utilizzazione della scoutizzazione - modulo 26
analisi ed utilizzazione della scoutizzazione - modulo 26analisi ed utilizzazione della scoutizzazione - modulo 26
analisi ed utilizzazione della scoutizzazione - modulo 26
 
tecniche di rilevamento dei dati durante le partite - modulo 25
tecniche di rilevamento dei dati durante le partite - modulo 25tecniche di rilevamento dei dati durante le partite - modulo 25
tecniche di rilevamento dei dati durante le partite - modulo 25
 
MongoDB
MongoDBMongoDB
MongoDB
 
Alzatore Corso Primo Grado - Trento 2010
Alzatore Corso Primo Grado - Trento 2010Alzatore Corso Primo Grado - Trento 2010
Alzatore Corso Primo Grado - Trento 2010
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
4 progettazione DB
4 progettazione DB4 progettazione DB
4 progettazione DB
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazione
 
Cattaneo Avellino12112008
Cattaneo Avellino12112008Cattaneo Avellino12112008
Cattaneo Avellino12112008
 
Modulo 1 - Lezione 3
Modulo 1 - Lezione 3Modulo 1 - Lezione 3
Modulo 1 - Lezione 3
 
dati e storie: dal grigiore dei numeri ai colori di immagini e mappe
dati e storie: dal grigiore dei numeri ai colori di immagini e mappedati e storie: dal grigiore dei numeri ai colori di immagini e mappe
dati e storie: dal grigiore dei numeri ai colori di immagini e mappe
 
Presentazione - la nascita e lo sviluppo di Internet.
Presentazione - la nascita e lo sviluppo di Internet.Presentazione - la nascita e lo sviluppo di Internet.
Presentazione - la nascita e lo sviluppo di Internet.
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis n
 
Reti di computer
Reti di computerReti di computer
Reti di computer
 
DATABASE (Basi di dati)
DATABASE (Basi di dati)DATABASE (Basi di dati)
DATABASE (Basi di dati)
 
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazioneSQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ER
 

Semelhante a Introduzione al SQL e ai database

Semelhante a Introduzione al SQL e ai database (6)

Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Sql 3
Sql 3Sql 3
Sql 3
 
Sql stored procedures
Sql stored proceduresSql stored procedures
Sql stored procedures
 
Basi Di Dati 05
Basi Di Dati 05Basi Di Dati 05
Basi Di Dati 05
 
Sql 1
Sql 1Sql 1
Sql 1
 

Mais de Maurizio Napolitano

I dati AGCOM del pluralismo politico sociale in televisione
I dati AGCOM del pluralismo politico sociale in televisioneI dati AGCOM del pluralismo politico sociale in televisione
I dati AGCOM del pluralismo politico sociale in televisioneMaurizio Napolitano
 
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...Maurizio Napolitano
 
Soluzioni open source per la mobilità
Soluzioni open source per la mobilitàSoluzioni open source per la mobilità
Soluzioni open source per la mobilitàMaurizio Napolitano
 
Il diritto all'oblio nell'era digitale
Il diritto all'oblio nell'era digitaleIl diritto all'oblio nell'era digitale
Il diritto all'oblio nell'era digitaleMaurizio Napolitano
 
OpenStreetMap: disegnamo la mappa del mondo
OpenStreetMap: disegnamo la mappa del mondoOpenStreetMap: disegnamo la mappa del mondo
OpenStreetMap: disegnamo la mappa del mondoMaurizio Napolitano
 
Estrarre dati da Twitter via API e soluzioni OSINT
Estrarre dati da Twitter via API e soluzioni OSINTEstrarre dati da Twitter via API e soluzioni OSINT
Estrarre dati da Twitter via API e soluzioni OSINTMaurizio Napolitano
 
OpenStreetMap: passato, presente e futuro (?)
OpenStreetMap:  passato, presente e futuro (?)OpenStreetMap:  passato, presente e futuro (?)
OpenStreetMap: passato, presente e futuro (?)Maurizio Napolitano
 
Ten years of opendata: what has happened and what is there to do
Ten years of opendata: what has happened and what is there to doTen years of opendata: what has happened and what is there to do
Ten years of opendata: what has happened and what is there to doMaurizio Napolitano
 
Infographics & data visualization - corso base FBK
Infographics & data visualization - corso base FBKInfographics & data visualization - corso base FBK
Infographics & data visualization - corso base FBKMaurizio Napolitano
 
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...Maurizio Napolitano
 
Dati: catalizzatori di innovazione per la smarticity
Dati: catalizzatori di innovazione per la smarticityDati: catalizzatori di innovazione per la smarticity
Dati: catalizzatori di innovazione per la smarticityMaurizio Napolitano
 
la comunicazione attraverso i social media
la comunicazione attraverso i social mediala comunicazione attraverso i social media
la comunicazione attraverso i social mediaMaurizio Napolitano
 
creare cruscotti per investigare i dati
creare cruscotti per investigare i daticreare cruscotti per investigare i dati
creare cruscotti per investigare i datiMaurizio Napolitano
 
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitale
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitaleFollow the white Rabbit: opportunità e trabocchetti nella nostra vita digitale
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitaleMaurizio Napolitano
 
Strumenti e suggerimenti per creare grafici
Strumenti e suggerimenti per creare graficiStrumenti e suggerimenti per creare grafici
Strumenti e suggerimenti per creare graficiMaurizio Napolitano
 

Mais de Maurizio Napolitano (20)

I dati AGCOM del pluralismo politico sociale in televisione
I dati AGCOM del pluralismo politico sociale in televisioneI dati AGCOM del pluralismo politico sociale in televisione
I dati AGCOM del pluralismo politico sociale in televisione
 
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...
FIPAV - allievo allenatore Il protocollo di allenamento - Modulo 2 - napolita...
 
La gestione del gruppo
La gestione del gruppoLa gestione del gruppo
La gestione del gruppo
 
percorsi ciclabili e stress
percorsi ciclabili e stresspercorsi ciclabili e stress
percorsi ciclabili e stress
 
Soluzioni open source per la mobilità
Soluzioni open source per la mobilitàSoluzioni open source per la mobilità
Soluzioni open source per la mobilità
 
Il diritto all'oblio nell'era digitale
Il diritto all'oblio nell'era digitaleIl diritto all'oblio nell'era digitale
Il diritto all'oblio nell'era digitale
 
OpenStreetMap: disegnamo la mappa del mondo
OpenStreetMap: disegnamo la mappa del mondoOpenStreetMap: disegnamo la mappa del mondo
OpenStreetMap: disegnamo la mappa del mondo
 
Estrarre dati da Twitter via API e soluzioni OSINT
Estrarre dati da Twitter via API e soluzioni OSINTEstrarre dati da Twitter via API e soluzioni OSINT
Estrarre dati da Twitter via API e soluzioni OSINT
 
OpenStreetMap: passato, presente e futuro (?)
OpenStreetMap:  passato, presente e futuro (?)OpenStreetMap:  passato, presente e futuro (?)
OpenStreetMap: passato, presente e futuro (?)
 
Strumenti per il Fact Checking
Strumenti per il Fact CheckingStrumenti per il Fact Checking
Strumenti per il Fact Checking
 
Estrarre contenuti da Web
Estrarre contenuti da WebEstrarre contenuti da Web
Estrarre contenuti da Web
 
Ten years of opendata: what has happened and what is there to do
Ten years of opendata: what has happened and what is there to doTen years of opendata: what has happened and what is there to do
Ten years of opendata: what has happened and what is there to do
 
Infographics & data visualization - corso base FBK
Infographics & data visualization - corso base FBKInfographics & data visualization - corso base FBK
Infographics & data visualization - corso base FBK
 
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...
Percorso di specializzazione per i ruoli di ricevitore–attaccante, opposto e ...
 
Dati: catalizzatori di innovazione per la smarticity
Dati: catalizzatori di innovazione per la smarticityDati: catalizzatori di innovazione per la smarticity
Dati: catalizzatori di innovazione per la smarticity
 
la comunicazione attraverso i social media
la comunicazione attraverso i social mediala comunicazione attraverso i social media
la comunicazione attraverso i social media
 
creare cruscotti per investigare i dati
creare cruscotti per investigare i daticreare cruscotti per investigare i dati
creare cruscotti per investigare i dati
 
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitale
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitaleFollow the white Rabbit: opportunità e trabocchetti nella nostra vita digitale
Follow the white Rabbit: opportunità e trabocchetti nella nostra vita digitale
 
Strumenti e suggerimenti per creare grafici
Strumenti e suggerimenti per creare graficiStrumenti e suggerimenti per creare grafici
Strumenti e suggerimenti per creare grafici
 
Data Journalism e Fake News
Data Journalism e Fake NewsData Journalism e Fake News
Data Journalism e Fake News
 

Introduzione al SQL e ai database

  • 1. Database – base di dati DBMS DATABASE MANAGEMENT SYSTEM Sistema di gestione di base di dati contenitori che immagazzinano grandi ● quantità di dati i dati sono fruibili tramite un sistema ● di gestione
  • 2. Caratteristiche Grandi quantità ● Condivisione ● Persistenza ● Affidabilità ● Controllo sugli accessi (DBA) ●
  • 3. RDBMS modello RELAZIONE dei database RELAZIONE (o tabella) Indirizzi CAMPO (a attributi della relazione) |Cognome |Nome |Indirizzo |Telefono | RECORD (valori) |Pallino |Pinco |Via Biglie 1|0222,222222 | .======================================================. |Indirizzi | |------------------------------------------------------| |Cognome |Nome |Indirizzo |Telefono | |---------------|----------|------------|--------------| |Pallino |Pinco |Via Biglie 1|0222,222222 | |Tizi |Tizio |Via Tazi 5 |0555,555555 | |Cai |Caio |Via Caini 1 |0888,888888 | |Semproni |Sempronio |Via Sempi 7 |0999,999999 | `======================================================'
  • 4. Relazioni collegate .============================================. |Articoli | |--------------------------------------------| |Codice|Descrizione |Fornitore1|Fornitore2| |------|---------------|----------|----------| |vite30|Vite 3 mm | 123| 126| |vite40|Vite 4 mm | 126| 127| |dado30|Dado 3 mm | 122| 123| |dado40|Dado 4 mm | 126| 127| |rond50|Rondella 5 mm | 123| 126| `============================================' .==============================================. |Movimenti | |----------------------------------------------| |Codice|Data |Carico|Scarico|CodFor|CodCli| |------|----------|------|-------|------|------| |vite40|01/01/1999| 1200| | 124| | |vite30|01/01/1999| | 800| | 825| |vite30|02/01/1999| | 1000| | 954| |rond50|03/01/1999| | 500| | 954| `=============================================='
  • 5. Unioni – Intersezioni ­ Differenze Teoria degli insiemi .----------------------------------------------------------. |CODICE|DATA |CARICO|SCARICO|... |DESCRIZIONE |... | |------|----------|------|-------|----|---------------|----| |vite40|01/01/1999| 1200| |... |Vite 4 mm |... | |vite30|01/01/1999| | 800|... |Vite 3 mm |... | |vite30|02/01/1999| | 1000|... |Vite 3 mm |... | |vite30|03/01/1999| 2000| |... |Vite 3 mm |... | |rond50|03/01/1999| | 500|... |Rondella 5 mm |... | `==========================================================' Esempio di unione fra Articoli e Movimenti attraverso il campo Codice
  • 6. Vincoli sui campi Insieme dei valori ammissibili ● NULL, NOT NULL, INT, .... – Valori univoci ● CHIAVE PRIMARIA – Relazione con altri valori  ● stessa tabella  – esterni –
  • 7. SQL Structured Query Language linguaggio di gestione per basi di dati relazionali Convenzioni sul linguaggio: Comandi scritti maiuscolo ● non fa differenza se non per i valori dei campi della tabella Nomi degli oggetti (tabelle, campi ...) sono composti solo da ● lettere, numeri e underscore (“_”) Primo carattere del nome deve essere una lettera o ● underscore La fine di una istruzione e' data dal punto e virgola o ● riga vuota
  • 8. 6 azioni – 6 comandi AZIONE COMANDO Creare tabelle CREATE TABLE Eliminare tabelle DROP TABLE Inserire record INSERT  Interrogare record SELECT Modificare record UPDATE Cancellare record DELETE
  • 9. Tipi di dati Stringhe di caratteri VARCHAR (dimensioni) TEXT I valori vanno dichiarati fra virgolette (Es: 'Nome') dimensioni => numero di caratteri utilizzabili nella stringhe Valori numerici INT FLOAT interi e numeri con virgola mobile Date DATE TIME TIMESTAMP I valori vanno dichiarati fra virgolette o apici
  • 10. Tabella ­ sintassi Creare CREATE TABLE nome_tabella ( nome_colonna1 TIPO_COLONNA1 VINCOLI_COLONNA1, nome_colonna2 TIPO_COLONNA2 VINCOLI_COLONNA2, .... nome_colonnan TIPO_COLONNA_n VINCOLI_COLONNA_n ); Cancellare DROP TABLE nome_tabella;
  • 11. Tabella ­ esempio CREATE TABLE indirizzi ( id serial PRIMARY KEY, nome varchar(40) NOT NULL, cognome varchar(40) NOT NULL, indirizzo varchar(40) DEFAULT 'sconosciuto', telefono varchar(40) NOT NULL, id_comune int references (ammcom.id), data_nascita date ); DROP TABLE indirizzi;
  • 12. Inserire ­ sintassi INSERT INTO nome_tabella ( colonna_1, colonna_2, ... colonna_ n ) VALUES ( valore_1, valore_2, ... valore_n );
  • 13. Inserire ­ esempio INSERT INTO Indirizzi ( nome, cognome, indirizzo, telefono, compleanno ) VALUES ( 'Gigi', 'Marzullo', 'Via Teulada 66 Roma', '06 1234567', '1915/03/26' );
  • 14. Cancellare Sintassi DELETE FROM nome_tabella [WHERE condizione] Esempio DELETE FROM indirizzi; Mancando una condizione (WHERE) il comando SVUOTA LA TABELLA
  • 15. Operatori di condizione ... WHERE campo OPERATORE valore Operatori di confronto > maggiore di < minore di = uguale a != diverso da Esempio delete con condizione DELETE FROM indirizzi WHERE nome = 'Gigi';
  • 16. Modifica ­ sintassi UPDATE nome_tabella SET colonna_1 = nuovo_valore_1, colonna_2 = nuovo_valore_2, ... colonna_n = nuovo_valore_n [WHERE condizione]
  • 17. Modifica ­ esempio UPDATE indirizzi SET nome='Gigino' WHERE cognome='Marzullo';
  • 19. Interrogare ­ esempi SELECT * FROM indirizzi; SELECT nome, cognome FROM indirizzi; SELECT * FROM indirizzi WHERE data_nascita >= '1986/03/01'; SELECT nome, cognome FROM indirizzi WHERE data_nascita >= '1986/03/01' ORDER BY nome;
  • 20. Operatori logici AND, OR, NOT, ... Esempio con SELECT SELECT nome, cognome FROM indirizzi WHERE data_nascita >= '1986/03/01' AND data_nascita <='1986/04/30' Esempio con DELETE DELETE FROM indirizzi WHERE nome = 'Gigi' OR nome='Silvio'
  • 21. Query (select) di unione fra 2 tabelle S SELECT indirizzi.nome, ammcom.descrizion E FROM indirizzi, ammcom L WHERE indirizzi.id_comune = ammcom.id E C id T id descrizion id_comune n geometry cognome o nome m nome e . descrizion indirizzi amm_com i n join d i
  • 22. Extra Funzioni sono chiamate tramite il comando SELECT Esempio sintassi per SUM() SELECT SUM(expression ) FROM tables WHERE predicates; Molti DBMS permettono di creare nuovi funzioni attraverso un linguaggio specifico (SQL Procedural Language) spesso estendibile Es: Postgresql offre pgSQL estendibile con R Trigger le funzioni possono essere associate ad eventi