Basi di Dati

Dichiarazione degli schemi in SQL
Basi di Dati – Dove ci troviamo?
                                                 A) Introduzione
                                                     1    2

     B) Prog. Concettuale (ER)                                     C) Modello Relazionale, 
                                                                   Algebra relazionale, SQL

      1   2    3       4       5       6     7                 1       2   3   4    5    6    7

          D) Prog. Logica e                                    E) Tecnologia di un DBMS
          Normalizzazione

           1       2       3       4                               1   2   3    4    5    6


                                           F) Programmazione DB


                                                      1   2

2                                                              Basi di Dati: Dichiarazione degli schemi in SQL
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


3                                        Basi di Dati: Dichiarazione degli schemi in SQL
Composizione di SQL

    Data DefinitionLanguage (DDL)
     definizione di domini, tabelle, indici, viste, vincoli, procedure, 
     trigger


    Data ManipulationLanguage (DML)
     linguaggio di query, modifica, comandi          transazionali


    Data ControlLanguage (DCL)
     linguaggio per la gestione degli utenti e dei privilegi di accesso


4                                          Basi di Dati: Dichiarazione degli schemi in SQL
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 nel 1999 (SQL‐3, SQL‐99)


    In SQL‐2:
      entry SQL (più o meno equivalente a SQL‐89)
      intermediate SQL
      full SQL

5                                        Basi di Dati: Dichiarazione degli schemi in SQL
Potere espressivo di standard e sistemi commerciali

    un tipico
     sistema
 commerciale



                    SQL‐1

                    SQL‐89
                    SQL‐2

                    SQL‐3

 6                             Basi di Dati: Dichiarazione degli schemi in SQL
Tipi di dati in SQL‐2 

stringhe                 numerici esatti

     CHAR (N)                 NUMERIC (P, S)

     VARCHAR (N)              DECIMAL (P, S)

     BIT (N)                  INTEGER

     VARBIT (N)               SMALLINT


 7                           Basi di Dati: Dichiarazione degli schemi in SQL
Tipi di dati in SQL‐2 (cont.)

Numerici approssimati      Domini speciali

     FLOAT(N)                   DATE
                                 YYYYMMDD

     REAL
                                TIME(N)
                                 HHMMSS.NNNN
     DOUBLE PRECISION
                                TIMESTAMP

                                INTERVAL

 8                               Basi di Dati: Dichiarazione degli schemi in SQL
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



 9                                        Basi di Dati: Dichiarazione degli schemi in SQL
Definizione dei domini applicativi
  Un dominio è un insieme di valori consentiti

  Un dominio può essere un tipo di dato base dell’SQL 
  (dominio elementare) oppure può essere definito 
  dall’utente:

CREATE DOMAIN <nome‐dominio>
AS<tipo‐di‐dati>
             [DEFAULT<valore‐default>]
             [<vincoli‐di‐dominio>]

 10                                Basi di Dati: Dichiarazione degli schemi in SQL
Esempi

CREATE DOMAIN PrezzoQuotidiani
AS INTEGER
DEFAULT 1500
      NOT NULL

CREATE DOMAIN OreLezione
AS SMALLINT
DEFAULT 80


 11                              Basi di Dati: Dichiarazione degli schemi in SQL
Definizione delle tabelle
  Una tabella è costituita da:
      una lista di uno o più attributi (colonne) 
      un insieme di zero o più vincoli


CREATE TABLE <nome‐tabella>
(<nome‐col><dominio> [<vincoli‐col>] ,
  …
<nome‐col><dominio> [<vincoli‐col>] ,
  [<vincoli‐tab>]  
)

 12                                       Basi di Dati: Dichiarazione degli schemi in SQL
Vincoli di colonna
     NOT NULL
      l’attributo non può assumere il valore null
 UNIQUE
      unicità dell’attributo
 PRIMARY KEY
      l’attributo è la chiave primaria
 CHECK
      esprime un generico vincolo sulla colonna tramite una 
      espressione logico‐relazionale
 REFERENCES 
      esprime il vincolo della Foreign Key 

13                                            Basi di Dati: Dichiarazione degli schemi in SQL
Vincoli di tabella
  PRIMARY KEY  (<lista‐colonne>)
      chiave primaria della tabella (implica NOT NULL)


  FOREIGN KEY (<lista‐colonne>) REFERENCES <tab> 
  [(<lista‐colonne>)] 
      chiave secondaria della tabella


  CHECK (<condizione>)
      predicato che deve essere soddisfatto per tutte le tuple della 
      tabella


 14                                       Basi di Dati: Dichiarazione degli schemi in SQL
Esempi
CREATE TABLE STUDENTE 
  (  MATR CHAR(6) PRIMARY KEY
     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)  )

15                          Basi di Dati: Dichiarazione degli schemi in SQL
Esempi (cont.)
CREATE TABLE ESAME
  (  MATR CHAR(6)
     COD‐CORSO CHAR(6)
     DATA DATE  NOT NULL
     VOTO SMALLINT NOT NULL 
     PRIMARY KEY(MATR,COD‐CORSO) 
  )




16                          Basi di Dati: Dichiarazione degli schemi in SQL
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




17                                  Basi di Dati: Dichiarazione degli schemi in SQL
Esempio: studente ‐ esame

studente
      MATR
      123
      415                             esame
      702                                  MATR
                                           123
                                           123
                                           702

 18                         Basi di Dati: Dichiarazione degli schemi in SQL
Il problema degli orfani
                    ORFANI:
studente
                    tuple che restano prive di padre a 
      MATR          causa di cancellazioni 
      123           e modifiche della tabella padre
      415                                 esame
      702                                      MATR
                                               123
                                               123
                                               702

 19                             Basi di Dati: Dichiarazione degli schemi in SQL
Gestione degli orfani
 Cosa succede degli esami se si cancellano gli studenti?
     CASCADE  (si cancellano anche gli esami)
     SET NULL 
     SET DEFAULT
     NO ACTION

 Cose succede degli esami se si modifica la matricola nella 
 tabella STUDENTE? 
     CASCADE  (si modificano anche gli esami)
     SET NULL
     SET DEFAULT
     NO ACTION

20                                      Basi di Dati: Dichiarazione degli schemi in SQL
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 )

 21                                    Basi di Dati: Dichiarazione degli schemi in SQL
Una istanza scorretta
studente MATR            NOME      CITTÀ       C‐DIP
              123
              415
              702

                                esame   MATR      COD‐            DATA                  VOTO
       viola la chiave                            CORSO
                                        123       1               2004‐09‐07            30
                                        123       2               2005‐01‐08            28
                                        123       2               2004‐08‐01            28
viola il NOT NULL
                                        702       2               2004‐09‐07            20
viola la integrità                      702       1               NULL                  NULL
referenziale                            714       1               2004‐09‐07            28

  22                                           Basi di Dati: Dichiarazione degli schemi in SQL
Una istanza corretta
studente
MATR   NOME   CITTÀ    C‐DIP
123
415
702
                                                                 esame
                       MATR    COD‐          DATA                   VOTO
                               CORSO
                       123       1           2004‐09‐07             30
                       123       2           2005‐01‐08             28
                       702       2           2004‐09‐07             20


23                              Basi di Dati: Dichiarazione degli schemi in SQL
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

24                                         Basi di Dati: Dichiarazione degli schemi in SQL
Definizione della tabella CLIENTE

            cliente
              COD‐CLI      INDIRIZZO       P‐IVA



CREATE TABLE CLIENTE
  (  COD‐CLI CHAR(6)  PRIMARY KEY
     INDIRIZZO CHAR(50)  
     P‐IVA CHAR(12) UNIQUE 
  ) 

25                                   Basi di Dati: Dichiarazione degli schemi in SQL
Definizione della tabella ORDINE
          ordine
           COD‐ORD      COD‐CLI      DATA      IMPORTO



CREATE TABLE ORDINE 
  (     COD‐ORD CHAR(6)  PRIMARY KEY
        COD‐CLICHAR(6)  NOT NULL  DEFAULT='999999'
        DATA DATE      
        IMPORTO INTEGER
        FOREIGN KEY COD‐CLIREFERENCESCLIENTE 
        ON DELETE SET DEFAULT
        ON UPDATE SET DEFAULT
  )

 26                                      Basi di Dati: Dichiarazione degli schemi in SQL
Definizione della tabella DETTAGLIO
            dettaglio
             COD‐ORD      COD‐PROD      QTA

CREATE TABLE DETTAGLIO
  (     COD‐ORD CHAR(6) 
        COD‐CLI CHAR(6)
        QTA SMALLINT 
        PRIMARY KEY (COD‐ORD,COD‐PROD)
        FOREIGN KEY COD‐ORDREFERENCESORDINE 
                ON DELETE CASCADE   ON UPDATE CASCADE
        FOREIGN KEY COD‐PRODREFERENCES PRODOTTO
                ON DELETE NO ACTION   ON UPDATE NO ACTION
  )

 27                                    Basi di Dati: Dichiarazione degli schemi in SQL
Definizione della tabella PRODOTTO

          prodotto
            COD‐PROD     NOME      PREZZO




CREATE TABLE PRODOTTO
  (  COD‐PROD CHAR(6)  PRIMARY KEY
     NOME CHAR(20)
     PREZZO SMALLINT 
  )

28                              Basi di Dati: Dichiarazione degli schemi in SQL
Esercizio: gestione personale
     esprimere in SQL la dichiarazione dello schema
MATR     NOME       DATA‐ASS     SALARIO       MATR‐MGR                  impiegato
1        Piero      2002‐01‐01   1500 €        2
2        Giorgio    2004‐01‐01   2000 €        null
3        Giovanni   2003‐07‐01   1000 €        2 

assegnamento                        progetto
MATR     NUM‐PROG     PERC           NUM‐PROG          TITOLO           TIPO
1        3            50             3                 Idea             Esprit
1        4            50             4                 Wide             Esprit
2        3            100
3        4            100
    29                                     Basi di Dati: Dichiarazione degli schemi in SQL

More Related Content

PDF
PDF
C6 Sql2
PDF
Esercizisulla Normalizzazione
PPTX
Creare unlibroconwikipedia
PPTX
Cmic2010bb
PDF
Linguaggi Formali e Compilazione: Automi
PDF
09 Esercizi Generali
C6 Sql2
Esercizisulla Normalizzazione
Creare unlibroconwikipedia
Cmic2010bb
Linguaggi Formali e Compilazione: Automi
09 Esercizi Generali

Similar to C3 Ddl1 (20)

PDF
2 Sigda - Database
PDF
C4 Sql1
PDF
C2 Ling Interrog
ODP
primi comandi SQL con Mysql
PDF
PPT
Basi Di Dati 01
PPT
Basi Di Dati 02
PDF
Basi di Dati - C1 - Il modello relazionale dei dati
PPSX
Il linguaggio SQL
PPTX
Database relazionali
PPTX
IBM i db2 udb vs Microsoft SQL Server
ODP
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
PPTX
Database introduzione
PDF
Introduzione al SQL e ai database
PDF
Corso Di Basi Di Dati 02 S Q L Query
PDF
Corso Di Basi Di Dati 02 S Q L D M L
PDF
Access parte prima
PPT
Basi Di Dati 03
PDF
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
PPTX
DATABASE (Basi di dati)
2 Sigda - Database
C4 Sql1
C2 Ling Interrog
primi comandi SQL con Mysql
Basi Di Dati 01
Basi Di Dati 02
Basi di Dati - C1 - Il modello relazionale dei dati
Il linguaggio SQL
Database relazionali
IBM i db2 udb vs Microsoft SQL Server
SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione
Database introduzione
Introduzione al SQL e ai database
Corso Di Basi Di Dati 02 S Q L Query
Corso Di Basi Di Dati 02 S Q L D M L
Access parte prima
Basi Di Dati 03
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
DATABASE (Basi di dati)
Ad

More from Majong DevJfu (20)

PDF
9 - Architetture Software - SOA Cloud
PDF
8 - Architetture Software - Architecture centric processes
PDF
7 - Architetture Software - Software product line
PDF
6 - Architetture Software - Model transformation
PDF
5 - Architetture Software - Metamodelling and the Model Driven Architecture
PDF
4 - Architetture Software - Architecture Portfolio
PDF
3 - Architetture Software - Architectural styles
PDF
2 - Architetture Software - Software architecture
PDF
1 - Architetture Software - Software as a product
PDF
10 - Architetture Software - More architectural styles
PDF
PDF
PDF
4 (uml basic)
POT
Tmd template-sand
PPT
26 standards
9 - Architetture Software - SOA Cloud
8 - Architetture Software - Architecture centric processes
7 - Architetture Software - Software product line
6 - Architetture Software - Model transformation
5 - Architetture Software - Metamodelling and the Model Driven Architecture
4 - Architetture Software - Architecture Portfolio
3 - Architetture Software - Architectural styles
2 - Architetture Software - Software architecture
1 - Architetture Software - Software as a product
10 - Architetture Software - More architectural styles
4 (uml basic)
Tmd template-sand
26 standards
Ad

C3 Ddl1

  • 2. Basi di Dati – Dove ci troviamo? A) Introduzione 1 2 B) Prog. Concettuale (ER) C) Modello Relazionale,  Algebra relazionale, SQL 1 2 3 4 5 6 7 1 2 3 4 5 6 7 D) Prog. Logica e  E) Tecnologia di un DBMS Normalizzazione 1 2 3 4 1 2 3 4 5 6 F) Programmazione DB 1 2 2 Basi di Dati: Dichiarazione degli schemi in SQL
  • 3. 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 3 Basi di Dati: Dichiarazione degli schemi in SQL
  • 4. Composizione di SQL Data DefinitionLanguage (DDL) definizione di domini, tabelle, indici, viste, vincoli, procedure,  trigger Data ManipulationLanguage (DML) linguaggio di query, modifica, comandi  transazionali Data ControlLanguage (DCL) linguaggio per la gestione degli utenti e dei privilegi di accesso 4 Basi di Dati: Dichiarazione degli schemi in SQL
  • 5. 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 nel 1999 (SQL‐3, SQL‐99) In SQL‐2: entry SQL (più o meno equivalente a SQL‐89) intermediate SQL full SQL 5 Basi di Dati: Dichiarazione degli schemi in SQL
  • 6. Potere espressivo di standard e sistemi commerciali un tipico sistema commerciale SQL‐1 SQL‐89 SQL‐2 SQL‐3 6 Basi di Dati: Dichiarazione degli schemi in SQL
  • 7. Tipi di dati in SQL‐2  stringhe numerici esatti CHAR (N) NUMERIC (P, S) VARCHAR (N) DECIMAL (P, S) BIT (N) INTEGER VARBIT (N) SMALLINT 7 Basi di Dati: Dichiarazione degli schemi in SQL
  • 8. Tipi di dati in SQL‐2 (cont.) Numerici approssimati Domini speciali FLOAT(N)       DATE YYYYMMDD REAL TIME(N) HHMMSS.NNNN DOUBLE PRECISION TIMESTAMP INTERVAL 8 Basi di Dati: Dichiarazione degli schemi in SQL
  • 9. 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 9 Basi di Dati: Dichiarazione degli schemi in SQL
  • 10. Definizione dei domini applicativi Un dominio è un insieme di valori consentiti Un dominio può essere un tipo di dato base dell’SQL  (dominio elementare) oppure può essere definito  dall’utente: CREATE DOMAIN <nome‐dominio> AS<tipo‐di‐dati> [DEFAULT<valore‐default>] [<vincoli‐di‐dominio>] 10 Basi di Dati: Dichiarazione degli schemi in SQL
  • 11. Esempi CREATE DOMAIN PrezzoQuotidiani AS INTEGER DEFAULT 1500 NOT NULL CREATE DOMAIN OreLezione AS SMALLINT DEFAULT 80 11 Basi di Dati: Dichiarazione degli schemi in SQL
  • 12. Definizione delle tabelle Una tabella è costituita da: una lista di uno o più attributi (colonne)  un insieme di zero o più vincoli CREATE TABLE <nome‐tabella> (<nome‐col><dominio> [<vincoli‐col>] , … <nome‐col><dominio> [<vincoli‐col>] , [<vincoli‐tab>]   ) 12 Basi di Dati: Dichiarazione degli schemi in SQL
  • 13. Vincoli di colonna NOT NULL l’attributo non può assumere il valore null UNIQUE unicità dell’attributo PRIMARY KEY l’attributo è la chiave primaria CHECK esprime un generico vincolo sulla colonna tramite una  espressione logico‐relazionale REFERENCES  esprime il vincolo della Foreign Key  13 Basi di Dati: Dichiarazione degli schemi in SQL
  • 14. Vincoli di tabella PRIMARY KEY  (<lista‐colonne>) chiave primaria della tabella (implica NOT NULL) FOREIGN KEY (<lista‐colonne>) REFERENCES <tab>  [(<lista‐colonne>)]  chiave secondaria della tabella CHECK (<condizione>) predicato che deve essere soddisfatto per tutte le tuple della  tabella 14 Basi di Dati: Dichiarazione degli schemi in SQL
  • 15. Esempi CREATE TABLE STUDENTE  ( MATR CHAR(6) PRIMARY KEY 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)  ) 15 Basi di Dati: Dichiarazione degli schemi in SQL
  • 16. Esempi (cont.) CREATE TABLE ESAME ( MATR CHAR(6) COD‐CORSO CHAR(6) DATA DATE  NOT NULL VOTO SMALLINT NOT NULL  PRIMARY KEY(MATR,COD‐CORSO)  ) 16 Basi di Dati: Dichiarazione degli schemi in SQL
  • 17. 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 17 Basi di Dati: Dichiarazione degli schemi in SQL
  • 18. Esempio: studente ‐ esame studente MATR 123 415 esame 702 MATR 123 123 702 18 Basi di Dati: Dichiarazione degli schemi in SQL
  • 19. Il problema degli orfani ORFANI: studente tuple che restano prive di padre a  MATR causa di cancellazioni  123 e modifiche della tabella padre 415 esame 702 MATR 123 123 702 19 Basi di Dati: Dichiarazione degli schemi in SQL
  • 20. Gestione degli orfani Cosa succede degli esami se si cancellano gli studenti? CASCADE  (si cancellano anche gli esami) SET NULL  SET DEFAULT NO ACTION Cose succede degli esami se si modifica la matricola nella  tabella STUDENTE?  CASCADE  (si modificano anche gli esami) SET NULL SET DEFAULT NO ACTION 20 Basi di Dati: Dichiarazione degli schemi in SQL
  • 21. 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 ) 21 Basi di Dati: Dichiarazione degli schemi in SQL
  • 22. Una istanza scorretta studente MATR NOME CITTÀ C‐DIP 123 415 702 esame MATR COD‐ DATA VOTO viola la chiave CORSO 123 1 2004‐09‐07 30 123 2 2005‐01‐08 28 123 2 2004‐08‐01 28 viola il NOT NULL 702 2 2004‐09‐07 20 viola la integrità  702 1 NULL NULL referenziale 714 1 2004‐09‐07 28 22 Basi di Dati: Dichiarazione degli schemi in SQL
  • 23. Una istanza corretta studente MATR NOME CITTÀ C‐DIP 123 415 702 esame MATR COD‐ DATA VOTO CORSO 123 1 2004‐09‐07 30 123 2 2005‐01‐08 28 702 2 2004‐09‐07 20 23 Basi di Dati: Dichiarazione degli schemi in SQL
  • 24. 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 24 Basi di Dati: Dichiarazione degli schemi in SQL
  • 25. Definizione della tabella CLIENTE cliente COD‐CLI      INDIRIZZO       P‐IVA CREATE TABLE CLIENTE ( COD‐CLI CHAR(6)  PRIMARY KEY INDIRIZZO CHAR(50)   P‐IVA CHAR(12) UNIQUE  )  25 Basi di Dati: Dichiarazione degli schemi in SQL
  • 26. Definizione della tabella ORDINE ordine COD‐ORD      COD‐CLI      DATA      IMPORTO CREATE TABLE ORDINE  ( COD‐ORD CHAR(6)  PRIMARY KEY COD‐CLICHAR(6)  NOT NULL  DEFAULT='999999' DATA DATE       IMPORTO INTEGER FOREIGN KEY COD‐CLIREFERENCESCLIENTE  ON DELETE SET DEFAULT ON UPDATE SET DEFAULT ) 26 Basi di Dati: Dichiarazione degli schemi in SQL
  • 27. Definizione della tabella DETTAGLIO dettaglio COD‐ORD      COD‐PROD      QTA CREATE TABLE DETTAGLIO ( COD‐ORD CHAR(6)  COD‐CLI CHAR(6) QTA SMALLINT  PRIMARY KEY (COD‐ORD,COD‐PROD) FOREIGN KEY COD‐ORDREFERENCESORDINE  ON DELETE CASCADE   ON UPDATE CASCADE FOREIGN KEY COD‐PRODREFERENCES PRODOTTO ON DELETE NO ACTION   ON UPDATE NO ACTION ) 27 Basi di Dati: Dichiarazione degli schemi in SQL
  • 28. Definizione della tabella PRODOTTO prodotto COD‐PROD     NOME      PREZZO CREATE TABLE PRODOTTO ( COD‐PROD CHAR(6)  PRIMARY KEY NOME CHAR(20) PREZZO SMALLINT  ) 28 Basi di Dati: Dichiarazione degli schemi in SQL
  • 29. Esercizio: gestione personale esprimere in SQL la dichiarazione dello schema MATR NOME DATA‐ASS SALARIO MATR‐MGR impiegato 1 Piero 2002‐01‐01 1500 € 2 2 Giorgio 2004‐01‐01 2000 € null 3 Giovanni 2003‐07‐01 1000 € 2  assegnamento progetto MATR NUM‐PROG PERC NUM‐PROG TITOLO TIPO 1 3 50 3 Idea Esprit 1 4 50 4 Wide Esprit 2 3 100 3 4 100 29 Basi di Dati: Dichiarazione degli schemi in SQL