Corso di Informatica (Basi di Dati)

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
SQL applicato a SQL Server
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Sistemi per il recupero delle informazioni
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
1 SQL come linguaggio di definizione di dati Eugenio Di Sciascio.
Basi di Dati prof. A. Longheu
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Progettazione ER Un database universitario contiene informazioni riguardanti i professori (identificati dal codice fiscale) e informazioni relative ai.
SQL.
SQL Structured Query Language
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJCapo (SELStipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))
Equivalenza di espressioni
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Il linguaggio ASP Lezione 4 Manipolare i database con ASP Lutilizzo dei FORM per laggiunta dei dati.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
SQL.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
LINGUAGGIO S Q L breve presentazione curata da Aldo Pappalepore
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
lun mar mer gio ven SAB DOM FEBBRAIO.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
IV D Mercurio DB Lezione 2
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
SQL (III) Data Definition Language/ Data Manipulation Language.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Lezione 4 – Linguaggi ed Interazione. Linguaggi La comunicazione è essenziale tra gli esseri umani Se vogliamo chiedere informazioni stradali ad un passante.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Transcript della presentazione:

Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008

Introduzione Cos’è SQL (Structured Query Language)? E’ un linguaggio che consente di gestire le Basi di Dati relazionali. Esso è contemporaneamente un: Data Definition Language (DDL), cioè consente di creare lo schema della Base di Dati (e delle relazioni) Data Manipulation Language (DML), cioè consente di manipolare le istanze della Base di Dati

Introduzione Vedremo, in questa lezione, come SQL (parte DDL) permetta di: definire un dominio (DOMAIN) creare uno schema di Base di dati (SCHEMA) creare uno schema di relazione (TABLE) effettuare modifiche degli schemi di Base di Dati e di relazione Nota Bene: in questa e nelle successive slide le parole scritte in maiuscolo (salvo indicazione contraria) sono parole appartenenti al linguaggio SQL

Definizione dei domini Un dominio è fondamentalmente un tipo di dato (data type). Il DDL di SQL prevede: domini elementari predefiniti domini definiti dall’utente (di cui non ci occuperemo…) Nel seguito verranno presentati i domini elementari indicandone la sintassi SQL.

I domini elementari I domini elementari di SQL sono: CHAR(n) o CHARACTER(n)  per stringhe di n caratteri (anche uno solo) VARCHAR(n)  per stringhe di lunghezza variabile BIT(n)  per stringhe di n bit (anche uno solo), usati per specificare una sequenza di n proprietà tramite flag (0 per proprietà falsa e 1 per proprietà falsa)

I domini elementari I domini elementari di SQL sono: BOOLEAN  per singoli valori booleani (restrizione di BIT(n)) INTEGER e SMALLINT  per gli interi DECIMAL(i,j) o NUMERIC(i,j)  per i decimali; i il numero di cifre significative e j il numero di cifre dopo la virgola (es. se ho un dominio DECIMAL(5,1), 34532 corrisponde a 3453,2)

I domini elementari I domini elementari di SQL sono: FLOAT, DOUBLE PRECISION e REAL  per i numeri in virgola mobile (mantissa + esponente) DATE  per la data strutturata in YEAR, MONTH, DAY TIME  per l’ora strutturata in HOUR, MINUTE, SECOND TIMESTAMP  per data + ora

Creazione di uno schema di Base di Dati La sintassi SQL per creare uno schema di Base di Dati è la seguente: CREATE SCHEMA <schemaName> …seguito dalle definizioni delle tabelle (con domini e vincoli) che costituiscono la Base di Dati. <schemaName> è il nome che si vuole associare alla Base di Dati come identificatore.

Creazione di uno schema di Base di Dati NOTA: non è necessario però definire tutte le tabelle (domini e vincoli) insieme a CREATE SCHEMA. Infatti le tabelle si possono aggiungere in una fase successiva (cioè dopo avere eseguito il comando CREATE SCHEMA) con il comando ALTER (che però non vedremo…). Il comando CREATE SCHEMA da solo crea dunque una Base di Dati senza tabelle.

Creazione di uno schema di relazione Il comando SQL per definire uno schema di relazione è CREATE TABLE che: crea un’istanza vuota della tabella (cioè senza ennuple) permette di specificare attributi, domini, valori di default e vincoli di integrità La sintassi di CREATE TABLE è riportata nelle slide successive.

Creazione di uno schema di relazione Definizione di una tabella con N attributi (e i relativi N domini) CREATE TABLE <tableName>( <attrib1> <domain1>, <attrib2> <domain2>, …, <attribN> <domainN> )

Creazione di uno schema di relazione Esempio di definizione di tabella con 5 attributi (e i relativi 5 domini) CREATE TABLE Impiegati( Matricola CHAR(6), Cognome CHAR(20), Nome CHAR(20), Dipartimento CHAR(15), Stipendio NUMERIC(9) )

Creazione di uno schema di relazione L’effetto del comando CREATE TABLE dell’esempio precedente è di creare la tabella vuota avente schema: Impiegati Matricola Cognome Nome Dipartimento Stipendio

Creazione di uno schema di relazione In CREATE TABLE per ogni attributo può essere specificato un valore di default nel seguente modo: CREATE TABLE <tableName>( <attrib1> <domain1> [DEFAULT <val1>], <attrib2> <domain2> [DEFAULT <val2>], …, <attribN> <domainN> [DEFAULT <valN>] ) DEFAULT <val*> tra parentesi quadre significa che è un elemento opzionale (i valori di default possono anche non essere specificati)

Creazione di uno schema di relazione Se per un attributo A di una relazione R è definito un valore di default, quando viene inserita una ennupla che non specifica un valore per A, viene assunto il valore di default di A. In caso contrario viene assunto il valore NULL.

Creazione di uno schema di relazione Esempio di creazione di tabella con un valore di default per l’attributo Stipendio: CREATE TABLE Impiegati( Matricola CHAR(6), Cognome CHAR(20), Nome CHAR(20), Dipartimento CHAR(15), Stipendio NUMERIC(9) DEFAULT 0 )

Creazione di uno schema di relazione L’effetto del comando CREATE TABLE dell’esempio precedente è di creare la tabella vuota avente schema: Impiegati Matricola Cognome Nome Dipartimento Stipendio Il successivo inserimento della ennupla (2345, Rossi, Mario, , Vendite), che non specifica il valore dell’attributo Stipendio, comporta l’effettivo inserimento...

Creazione di uno schema di relazione … della ennupla (2345, Rossi, Mario, 0, Vendite) Impiegati Matricola Cognome Nome Dipartimento Stipendio 2345 Rossi Mario Vendite Mentre l’inserimento della ennupla (2346, Neri, Piero, 2000, ) che non specifica il valore dell’attributo Dipartimento, comporta l’effettivo inserimento...

Creazione di uno schema di relazione … della ennupla (2346, Neri, Piero, 2000, NULL), dal momento che per l’attributo Dipartimento non è stato specificato un valore di default Impiegati Matricola Cognome Nome Dipartimento Stipendio 2345 Rossi Mario Vendite 2346 Neri Piero NULL 2000

Creazione di uno schema di relazione In CREATE TABLE per ogni attributo può essere specificato il vincolo di valore non nullo nel seguente modo: CREATE TABLE <tableName>( <attrib1> <domain1> [NOT NULL], <attrib2> <domain2> [NOT NULL], …, <attribN> <domainN> [NOT NULL] ) NOT NULL tra parentesi quadre significa che è un elemento opzionale (se non viene specificato significa che si ammettono valori nulli per l’attributo)

Creazione di uno schema di relazione Se per un attributo A di una relazione R è stato definito il vincolo di NOT NULL, per A non sono ammessi valori nulli. In tale caso si può inserire in R una ennupla che non specifica il valore per A solo se per A è stato definito anche un valore di DEFAULT. In caso contrario il valore di A va sempre specificato.

Creazione di uno schema di relazione Esempio di creazione di tabella con un vincolo NOT NULL per Cognome e Nome: CREATE TABLE Impiegati( Matricola CHAR(6), Cognome CHAR(20) NOT NULL, Nome CHAR(20) NOT NULL, Dipartimento CHAR(15), Stipendio NUMERIC(9) DEFAULT 0 )

Creazione di uno schema di relazione In CREATE TABLE possono essere specificati i vincoli di chiave nel seguente modo: CREATE TABLE <tableName>( <attrib1> <domain1> [UNIQUE], <attrib2> <domain2> [UNIQUE], …, <attribN> <domainN> [UNIQUE], [UNIQUE(K1)], ... [UNIQUE(KM)] ) K1,… KM sono i sottoinsiemi di almeno due attributi su cui si vogliono definire delle chiavi

Creazione di uno schema di relazione Esempio di creazione di tabella con un vincolo di chiave per Matricola e uno per (Cognome,Nome,Dipartimento): CREATE TABLE Impiegati( Matricola CHAR(6) UNIQUE, Cognome CHAR(20) NOT NULL, Nome CHAR(20), Dipartimento CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, UNIQUE(Cognome,Nome,Dipartimento) )

Creazione di uno schema di relazione Attenzione! Il valore NULL è considerato sempre diverso nelle diverse ennuple. Quindi le due ennuple (NULL, Rossi, Mario) e (NULL, Rossi, Mario) sono considerate diverse!

Creazione di uno schema di relazione In CREATE TABLE può essere specificato un solo vincolo di chiave primaria nel seguente modo: CREATE TABLE <tableName>( <attrib1> <domain1> [PRIMARY KEY], <attrib2> <domain2> [PRIMARY KEY], …, <attribN> <domainN> [PRIMARY KEY], [PRIMARY KEY(K)], ) K è il sottoinsieme di almeno due attributi su cui si vuole definire la chiave primaria.

Creazione di uno schema di relazione Esempio di creazione di tabella con un vincolo di chiave primaria su Matricola: CREATE TABLE Impiegati( Matricola CHAR(6) PRIMARY KEY, Cognome CHAR(20) NOT NULL, Nome CHAR(20), Dipartimento CHAR(15), Stipendio NUMERIC(9) DEFAULT 0 )

Creazione di uno schema di relazione Esempio di creazione di tabella con un vincolo di chiave primaria per (Cognome,Nome,Stipendio) e uno di chiave su Matricola: CREATE TABLE Impiegati( Matricola CHAR(6) UNIQUE, Cognome CHAR(20) NOT NULL, Nome CHAR(20), Dipartimento CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, PRIMARY KEY(Cognome,Nome,Dipartimento) )

Creazione di uno schema di relazione In CREATE TABLE può essere specificato un qualsiasi numero di vincoli di chiave esterna nel seguente modo: CREATE TABLE <tableName>( <attrib1> <domain1> [REFERENCES <masterTable1>(<attrMaster11>)], <attrib2> <domain2> [REFERENCES <masterTable2>(<attrMaster12>)], …, <attribN> <domainN> [REFERENCES <masterTable1>(<attrMaster1N>)], [FOREIGN KEY(<attrList1>) REFERENCES <masterTable21>(<attrMList1>)], … [FOREIGN KEY(<attrListM>) REFERENCES <masterTable2M>(attrMListM)] )

Creazione di uno schema di relazione Si supponga ad esempio di avere creato una Base di Dati con le seguenti tre relazioni: Auto(Provincia,Numero,Cognome,Nome) Vigili(Matricola,Cognome,Nome) Infrazioni(Codice,Data,Vigile,Provincia,Numero) e di aver già creato gli schemi per Auto e Vigili su cui sono state definite due chiavi primarie, rispettivamente (Provincia,Numero) e (Matricola). La slide successiva riporta un esempio di CREATE TABLE che crea lo schema di Infrazioni in cui vengono definite la chiave esterna sull’attributo Vigile rispetto alla master Vigili (e alla sua chiave primaria Matricola) e la chiave esterna sull’insieme di attributi (Provincia,Numero) rispetto alla master Auto (e alla sua chiave primaria (Provincia,Numero)).

Creazione di uno schema di relazione Esempio di creazione di tabella con vincoli di chiave esterna su (Vigile) e (Provincia, Numero) CREATE TABLE Infrazioni( Codice CHAR(6) PRIMARY KEY, Data DATE NOT NULL, Vigile INTEGER NOT NULL REFERENCES Vigili(Matricola), Provincia CHAR(2), Numero CHAR(6), FOREIGN KEY(Provincia,Numero) REFERENCES Auto(Provincia,Numero) )