DATABASE PER IL WEB. Programmazione Web 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "DATABASE PER IL WEB. Programmazione Web 1"

Transcript

1 DATABASE PER IL WEB Programmazione Web 1

2 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca da8 la comunicazione usa dei protocolli specifici Programmazione Web 2

3 Database Database o base di da8 : sia collezione di da8 sia database management system (DBMS): Programma standalone per la ges8one di collezioni di da8 MySQL, PostgreSQL, Oracle DB, CouchDB Libreria all'interno di un programma SQLite, BerkleyDB Tipi di database: Relazionali A ogger No-SQL (Not Only SQL) Programmazione Web 3

4 Trend Database hwp://db-engines.com/en/ranking Programmazione Web 4

5 Database relazionali Da8 raccol8 in tabelle non ordinate: relazioni colonne: campi, awribu8, fields righe: tuple, records Utenti (CF, nome, cognome) CF nome cognome BNCFR... Franco Bianchi VRDGS... Giuseppe RSSMR... Mario Verdi Rossi Prestiti (utente, libro, dataprestito, datarestituzione) Libri (ISBN, autore, titolo) ISBN autore titolo Caroll Alice in W Tanenbaum Reti di Calc AA. VV. Lonely Plan Hofstadter GEB-EGB utente libro dataprestito datarestituzione RSSMR /12/ VRDGS /10/ /11/2011 Programmazione Web 5

6 Vincoli di integrità Evitano che vengano inserite informazioni "non possibili" Esistono da8 che sono sintarcamente correr ma non rappresentano informazioni possibili per l applicazione di interesse Vincoli di dominio 8po di dato ammesso per un campo Vincoli di chiavi primarie Insieme di awribu8 che iden8ficano univocamente le tuple di una relazione Vincoli di tupla relazioni interne fra i da8 Vincoli di integrità referenziale Fanno riferimento a chiavi primarie su altre relazioni SoddisfaR se valore esiste nell'altra relazione Programmazione Web 6

7 Vincoli di dominio Tipi di dato che uso per le diverse colonne ES: range di interi o di date ES: insieme di valori, o di stringhe ES: Il codice fiscale ha il suo formato Utenti (CF, nome, cognome) CF nome cognome BNCFR... Franco Bianchi VRDGS... Giuseppe RSSMR... Mario Verdi Rossi Libri (ISBN, autore, titolo) ISBN autore titolo Caroll Alice in W Tanenbaum Reti di Calc AA. VV. Lonely Plan Hofstadter GEB-EGB Prestiti (utente, libro, dataprestito, datarestituzione) utente libro dataprestito datarestituzione RSSMR /12/ VRDGS /10/ /11/2011 Programmazione Web 7

8 Chiavi Primarie Insieme di awribu8 che iden8ficano univocamente le tuple di una relazione Almeno una per ogni relazione Possono essere definite su più awribu8 Se non esiste una chiave, va definita (es. valore incrementale) Utenti (CF, nome, cognome) CF nome cognome BNCFR... Franco Bianchi VRDGS... Giuseppe RSSMR... Mario Verdi Rossi Prestiti (utente, libro, dataprestito, datarestituzione) Libri (ISBN, autore, titolo) ISBN autore titolo Caroll Alice in W Tanenbaum Reti di Calc AA. VV. Lonely Plan Hofstadter GEB-EGB utente libro dataprestito datarestituzione RSSMR /12/ VRDGS /10/ /11/2011 Programmazione Web 8

9 Vincoli di tupla datapres8to < datares8tuzione Utenti (CF, nome, cognome) CF nome cognome BNCFR... Franco Bianchi VRDGS... Giuseppe Verdi RSSMR... Mario Rossi Libri (ISBN, autore, titolo) ISBN autore titolo Caroll Alice in W Tanenbaum Reti di Calc AA. VV. Lonely Plan Hofstadter GEB-EGB Prestiti (utente, libro, dataprestito, datarestituzione) utente libro dataprestito datarestituzione RSSMR /12/ VRDGS /10/ /11/2011 Programmazione Web 9

10 Vincoli di integrità referenziale Fanno riferimento a chiavi primarie su altre relazioni SoddisfaR se valore esiste nell'altra relazione Libri (ISBN, autore, titolo) Utenti (CF, nome, cognome) ISBN autore titolo CF nome cognome Caroll Alice in W BNCFR... Franco Bianchi Tanenbaum Reti di Calc VRDGS... Giuseppe Verdi RSSMR... Mario Rossi AA. VV. Lonely Plan Hofstadter GEB-EGB Devono esistere Prestiti (utente, libro, dataprestito, datarestituzione) utente libro dataprestito datarestituzione RSSMR /12/ VRDGS /10/ /11/2011 Programmazione Web 10

11 Ambiente di Lavoro MYSQL un DBMS che useremo nelle esercitazioni ci si interagisce a linea di comando su una shell oppure via rete con protocollo proprietario il server risponde su porta 3306 di default ha il concewo di utente, password e permessi amministratore di default: root phpmyadmin una serie di script per interagire con mysql da una pagina web comunica con mysql via rete Programmazione Web 11

12 Programmazione Web 12

13 SQL 2 pronunce, entrambe valide Linguaggio di programmazione per la ges8one di basi di da8 Standard ma non molto interoperabile Case insensi8ve Programmazione Web 13

14 Sintassi Sequenza di instruzioni separa8 da ; Principali comandi SELECT - extracts data from a database UPDATE - updates data in a database DELETE - deletes data from a database INSERT INTO - inserts new data into a database CREATE DATABASE - creates a new database ALTER DATABASE - modifies a database CREATE TABLE - creates a new table ALTER TABLE - modifies a table DROP TABLE - deletes a table CREATE INDEX - creates an index (search key) DROP INDEX - deletes an index Programmazione Web 14

15 SELECT Seleziona una matrice di da8 da un database Il risultato è posto in una tabella dewa result-set Sintassi Programmazione Web 15

16 Esempio Northwind sample database Programmazione Web 16

17 SELECT DISTINCT Res8tuisce dei da8 diversi fra loro Sintassi Esempio Programmazione Web 17

18 WHERE Serve a selezionare le tuple secondo un certo criterio ESEMPI Programmazione Web 18

19 INSERT INTO Inserisce una tupla di valori in una tabella Sintassi Esempi Programmazione Web 19

20 UPDATE Aggiorna dei record Sintassi Esempio Warning Programmazione Web 20

21 DELETE Cancellare dei record Sintassi Esempio Programmazione Web 21

22 Programmazione Web 22

23 Operatori = Equal <> Not equal. Note: In some versions of SQL this operator may be wriwen as!= > Greater than < Less than >= Greater than or equal <= Less than or equal BETWEEN Between an inclusive range LIKE Search for a pawern IN To specify mul8ple possible values for a column Programmazione Web 23

24 AND e OR AND logico tra due condizioni della WHERE OR logico tra due condizioni della WHERE Espressioni complesse Programmazione Web 24

25 ORDER BY Ordina i risulta8 nel Result set Esempio Programmazione Web 25

26 LIMIT Limita il numero dei risulta8 Esempio (5 tuple) Programmazione Web 26

27 LIKE Cercare con dei pawern Sintassi Esempi Programmazione Web 27

28 Wildcard % - A subs8tute for zero or more characters _ - A subs8tute for a single character [charlist] - Sets and ranges of characters to match [!charlist] - Matches only a character NOT specified within the brackets Esempi Programmazione Web 28

29 BETWEEN Seleziona dei range numerici, testo o data Esempi Programmazione Web 29

30 IN Specifica liste di valori per la clausola WHERE Esempio Programmazione Web 30

31 ALIAS Posso definire dei nomi temporanei nell'istruzione per colonne o tabelle Programmazione Web 31

32 INNER JOIN Combinare tuple di tabelle diverse Programmazione Web 32

33 INNER JOIN Combinare tuple di tabelle diverse Programmazione Web 33

34 INNER JOIN Combinare tuple di tabelle diverse Programmazione Web 34

35 Altre Istruzioni Programmazione Web 35

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1 I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

Dettagli

Fondamenti di Informatica e Programmazione

Fondamenti di Informatica e Programmazione Fondamenti di Informatica e Programmazione Prof. G ianni D Angelo Email: [email protected] A. A. 2018/ 19 Le Origini di SQL Principali Versioni Anni 70 1986 SEQUEL Structured English QUEry Language Sviluppato

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

PROGETTAZIONE DI DATABASE Linguaggio SQL

PROGETTAZIONE DI DATABASE Linguaggio SQL PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi [email protected]

Dettagli

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006 Basi di Dati Esercitazione Algebra Relazionale e SQL 15 maggio 2006 Ing. Paolo Cappellari Esercitazione Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti

Dettagli

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Domande utili alla preparazione dell orale di Informatica all Esame di Stato Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre

Dettagli

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI La finalità di questa esercitazione è quella di creare, date delle specifiche progettuale, appositi script di creazione e popolamento di una base

Dettagli

Sommario. Introduzione... 13

Sommario. Introduzione... 13 Sommario Introduzione... 13 1. Database pro e contro... 19 A cosa serve conoscere i database?...19 Le alternative alla gestione manuale...22 Quando non serve un database?...24 Domande ed esercizi...26

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Connessione con MySQL

Connessione con MySQL Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

SQL DDL. Create database. Alter database. Drop database

SQL DDL. Create database. Alter database. Drop database SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi

Dettagli

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: Interrogazioni SQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

ESERCITAZIONE: Fornitore-Fornisce-Articolo

ESERCITAZIONE: Fornitore-Fornisce-Articolo ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel): acronimo di Structured Query Language (linguaggio di interrogazione strutturato) Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

Soluzione esercitazione 01

Soluzione esercitazione 01 Soluzione esercitazione 01 Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SolEse01.pdf Sistemi Informativi L-A Videonoleggio - caso A: tabella

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab

Dettagli

Left Join, Right Join, Full Join

Left Join, Right Join, Full Join Left Join, Right Join, Full Join Consideriamo il solito schema di database dell'ultima verifica. Ipotizziamo inoltre che tra le due relazioni sia impostato un vincolo di Integrità Referenziale. Modello

Dettagli

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 E3 - MySQL: Creazione di Schemi ed Interrogazioni Tiziana Catarci, Andrea Marrella Ultimo aggiornamento

Dettagli

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Select From Where...

Select From Where... Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle

Dettagli

Connessione con MySQL

Connessione con MySQL Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli