Dichiarazione degli schemi in SQL DDL 1
|
|
|
- Lamberto Bassi
- 9 anni fa
- Visualizzazioni
Transcript
1 Dichiarazione degli schemi in SQL DDL 1
2 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali Standardizzato da ANSI e ISO DDL 2
3 Composizione di SQL Data Definition Language (DDL) definizione di: domini, tabelle, indici autorizzazioni, viste, vincoli, procedure, trigger Data Manipulation Language (DML) linguaggio di query, linguaggio di modifica, comandi transazionali DDL 3
4 Standardizzazione di SQL Progressione dello standard per estensioni quasi-compatibili - prima versione nel 1986 (SQL-1) - modifica alla prima versione nel 1989 (SQL-89) - seconda versione nel 1992 (SQL-2, SQL-92) - terza versione attesa per il 1998 (SQL-3) In SQL-2: - entry SQL (più o meno equivalente a SQL-89) - intermediate SQL - full SQL DDL 4
5 Potere espressivo di standard e sistemi commerciali un tipico sistema commerciale SQL-1 SQL-89 SQL-2 SQL-3 DDL 5
6 Domini elementari in SQL-2 a stringhe CHAR (N) VARCHAR (N) BIT (N) VARBIT (N) b numerici esatti NUMERIC (N) DECIMAL (N) INTEGER SMALLINT DDL 6
7 Altri domini elementari in SQL-2 c numerici approssimati b domini speciali FLOAT(N) N=2, 0.172E04 = 1700 REAL DOUBLE PRECISION DATE YYYYMMDD (es ) TIME(N) HHMMSS.NNNN (es. 14:05:23.) TIMESTAMP ( DATE+TIME ) INTERVAL ( pura durata ) DDL 7
8 Il valore "null" null è un valore polimorfo (che appartiene a tutti i domini) col significato di valore non noto il valore esiste in realtà ma è ignoto al database (es.: data di nascita) il valore è inapplicabile (es.: numero patente per minorenni) DDL 8
9 Vincoli di integrità di dominio NOT NULL esclude il valore nullo PRIMARY KEY chiave primaria (implica NOT NULL) UNIQUE chiave secondaria (non implica NOT NULL) CHECK predicato che deve essere soddisfatto DDL 9
10 Definizione dei domini applicativi CREATE DOMAIN PrezzoQuotidiani AS INTEGER DEFAULT 1500 NOT NULL CREATE DOMAIN OreLezione AS SMALLINT DEFAULT 80 DDL 10
11 Definizione delle tabelle CREATE TABLE STUDENTE ( MATR CHAR(6) PRIMARY KEY, NOME VARCHAR (30) NOT NULL, NOME VARCHAR (30) NOT NULL, CITTÀ VARCHAR (20), C-DIP CHAR (3) ) CREATE TABLE CORSO ( COD-CORSO CHAR(6) PRIMARY KEY, TITOLO VARCHAR(30) NOT NULL, DOCENTE VARCHAR(20) ) DDL 11
12 Definizione delle tabelle (2) CREATE TABLE ESAME ( MATR CHAR(6), COD-CORSO CHAR(6), DATA DATE NOT NULL, VOTO SMALLINT NOT NULL, PRIMARY KEY(MATR,COD-CORSO) ) DDL 12
13 Integrità referenziale Esprime un legame gerarchico (padre-figlio) fra tabelle Alcuni attributi della tabella figlio sono definiti FOREIGN KEY I valori contenuti nella FOREIGN KEY devono essere sempre presenti nella tabella padre DDL 13
14 Esempio: studente - esame studente MATR 415 esame 702 MATR 702 DDL 14
15 Il problema degli orfani studente MATR 415 orfani: tuple che restano prive di padre a causa di cancellazioni e modifiche della tabella padre esame 702 MATR 702 DDL 15
16 Gestione degli orfani Cosa succede degli esami se si cancellano gli studenti? a CASCADE b SET NULL c SET DEFAULT d NO ACTION (si cancellano anche gli esami) (viene impedita l operazione) Cose succede degli esami se si modifica la matricola nella tabella STUDENTE? a CASCADE (si modifica la FOREIGN KEY b SET NULL anche nei corrispondenti esami) c SET DEFAULT d NO ACTION (viene impedita l operazione) DDL 16
17 Definizione : nella tabella figlio CREATE TABLE ESAME (... FOREIGN KEY MATR REFERENCES STUDENTI, ON DELETE CASCADE ON UPDATE CASCADE ) È lecito essere figli di più padri CREATE TABLE ESAME (. PRIMARY KEY(MATR,COD-CORSO), FOREIGN KEY MATR REFERENCES STUDENTI ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY COD-CORSO REFERENCES CORSO ON DELETE NO ACTION ON UPDATE NO ACTION ) DDL 17
18 MATR NOME CITTÀ C-DIP Una istanza scorretta esame viola la chiave viola il NULL viola la integrità referenziale MATR COD- CORSO DATA NULL VOTO NULL 28 DDL 18
19 Una istanza corretta MATR NOME CITTÀ C-DIP esame MATR COD- CORSO DATA VOTO DDL 19
20 Esempio : gestione ordini COD-CLI INDIRIZZO P-IVA cliente COD-ORD COD-CLI DATA IMPORTO ordine COD-ORD COD-PROD QTA dettaglio COD-PROD NOME PREZZO prodotto DDL 20
21 Definizione delle tabelle CLIENTE e ORDINE CREATE TABLE CLIENTE ( COD-CLI CHAR(6) PRIMARY KEY, INDIRIZZO CHAR(50), P-IVA CHAR(12) UNIQUE ) CREATE TABLE ORDINE ( COD-ORD CHAR(6) PRIMARY KEY, COD-CLI CHAR(6) NOT NULL DEFAULT='999999', DATA DATE, IMPORTO INTEGER, FOREIGN KEY COD-CLI REFERENCES ORDINE ON DELETE SET DEFAULT ON UPDATE SET DEFAULT) DDL 21
22 Definizione delle tabelle DETTAGLIO e PRODOTTO CREATE TABLE DETTAGLIO ( COD-ORD CHAR(6), COD-CLI CHAR(6), QTA SMALLINT, PRIMARY KEY(COD-ORD,COD-PROD), FOREIGN KEY COD-ORD REFERENCES ORDINE ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY COD-PROD REFERENCES PRODOTTO ON DELETE NO ACTION ON UPDATE NO ACTION) CREATE TABLE PRODOTTO ( COD-PROD CHAR(6) PRIMARY KEY, NOME CHAR(20), PREZZO SMALLINT ) DDL 22
23 Esercizio:gestione personale esprimere in SQL la dichiarazione dello schema MATR NOME DATA-ASS SALARIO MATR-MGR impiegato 1 Piero M 2 2 Giorgio ,5 M null 3 Giovanni M 2 assegnamento progetto MATR NUM-PROG PERC NUM-PROG TITOLO TIPO Idea Esprit Wide Esprit DDL 23
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
Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5
Domini elementari, Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Bit Valori booleani (vero/falso), singoli o in sequenza (la sequenza può essere di lunghezza variabile) Sintassi: bit
Basi di Dati prof. Letizia Tanca
Basi di Dati prof. Letizia Tanca (lucidi tratti dal libro Atzeni-Ceri-Paraboschi-Torlone) AA 2003-04 Linguaggi di interrogazione commerciali per il Modello Relazionale dei Dati: SQL - il DDL Domini I domini
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia
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]
Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati
Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati 1 SQL Il nome stava per Structured Query Language Più che un semplice linguaggio di query: si compone di una parte DDL e di una DML DDL:
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
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
Il linguaggio SQL: DDL di base
Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS
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. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm dott.ssa Francesca A. Lisi [email protected]
SQL. Lezione 1. Docente: Alberto Belussi
LaboratoriodiBasidiDatieWeb Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è
4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli
Base di dati, tabella, ennupla, attributo, dominio Le Basi di Dati Relazionali Concetti Fondamentali Valori nulli Vincoli di chiave, di ennupla, di riferimento 2 Modello logico dei DBMS (Data Base Management
SQL Laboratorio di Basi di Dati a.a. 2002/2003
1 SQL Laboratorio di Basi di Dati a.a. 2002/2003 dott.ssa Francesca A. Lisi [email protected] Orario di ricevimento: mercoledì ore 10-12 2 Cos'è SQL? Linguaggio di riferimento per le basi di dati relazionali
SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"
SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,
Laboratorio di Basi di Dati Esercizio 8.4/9.1
Laboratorio di Basi di Dati Esercizio 8.4/9.1 Pierluigi Pierini Technolabs S.p.a. [email protected] Università degli Studi di L Aquila Dipartimento di Informatica Technolabs S.p.A. R&D Department
Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione
Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
Corso di Informatica (Basi di Dati)
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.
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
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
SQL: Concetti Base -Prima Parte-
SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition
Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati
Informatica B Introduzione alle Basi di Dati e ai DBMS Contenuti Introduzione a dati e basi dati DBMS Modello dei dati Informazioni e dati Dato: elemento semanticamente significativo (data, codice, ecc.),
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
Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:
Tipi di linguaggi per basi di dati Si distinguono due categorie: DDL DML Linguaggi di definizione dei dati o data definition languages: utilizzati per definire gli schemi logici, esterni e fisici e le
Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011
Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse
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
Lezione 4. Dallo schema ER al relazionale
Lezione 4 Dallo schema ER al relazionale Pag.1 Insieme di entità ER e tabelle relazionali CREATE TABLE ( CHAR(15), CHAR(20), INTEGER, PRIMARY KEY ()) Pag.2 Traduzione di relazioni ER (segue) dal r rid
Laboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti
SQL Sintassi Dei Comandi
SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org [email protected] Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la
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,
