SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Basi di Dati

Aspetti avanzati nella definizione degli schemi
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 ‐ Aspetti avanzati nella definizione degli schemi
Aspetti avanzati del DDL
    Creazione di indici
    Modifica degli schemi
    Gestione di viste 
    Autorizzazioni d'accesso




3                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Creazione di indici 
     INDICI: 
       meccanismi di accesso efficiente ai dati


     CREATE INDEX  
     CREATE  INDEX DATA‐IX
     ON ORDINI (DATA)

     CREATE UNIQUE INDEX  
     CREATE  UNIQUE INDEX ORD‐KEY
     ON ORDINI (ORD‐COD)

 4                                 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Comandi di modifica degli schemi 
    Necessari per garantire l’evoluzione della base di dati a 
    fronte di nuove esigenze

    E’ possibile:
      CREARE NUOVI OGGETTI (CREATE)
      MODIFICARE OGGETTI PREESISTENTI (ALTER)
      CANCELLARE OGGETTI (DROP)




5                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Cancellazione degli oggetti 
    DROP (domini, tabelle, indici, view, asserzioni, procedure, 
    trigger)
      Es: DROP TABLE ORDINI
      Es: DROP INDEX DATA‐IX


    OPZIONI RESTRICT e CASCADE
      RESTRICT: impedisce drop se gli oggetti comprendono istanze
      CASCADE: applica drop agli oggetti collegati




6                               Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Modifica degli oggetti 
    ALTER (domini, tabelle)
     Es: ALTER TABLE ORDINI ADD COLUMN NUM‐FATT CHAR(6)
     Es: ALTER TABLE ORDINI ALTER COLUMN IMPORTO ADD 
     DEFAULT  0
     Es: ALTER TABLE ORDINI DROP COLUMN DATA




7                             Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Viste relazionali 
     Offrono la "visione" di tabelle virtuali (schemi esterni)

     Classificate in
       SEMPLICI (Selezione e proiezione su una sola tabella)
       COMPLESSE




 8                                Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Sintassi delle viste relazionali 
     CREATE VIEW <Nome> AS <QUERY>

     CREATE VIEW <Nome> ( <Nome‐attributi>) AS <QUERY>

     Le query possono includere al loro interno viste definite 
     in precedenza




 9                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Esempio di vista semplice 
 Ordini di importo superiore a 10.000 €
             CREATE VIEW ORDINI‐PRINCIPALI AS
                    SELECT * FROM ORDINI
                    WHERE IMPORTO > 10.000
 ordini

                                                     VISTA :
                                                     ordini principali

     1    3   2003-06-01 50.000
     4    1   2004-07-01 12.000
     6    3   2004-09-03 27.000



10                          Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Uso della vista per query
 Vista:
          CREATE VIEW ORDINI‐PRINCIPALI AS
          SELECT *
          FROM ORDINI
          WHERE IMPORTO > 10.000

 Query:
          SELECT NUM‐CLI
          FROM ORDINI‐PRINCIPALI

 Composizione della vista con la query:
       SELECT NUM‐CLI
       FROM ORDINI
       WHERE IMPORTO > 10.000

11                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Modifiche tramite le viste
 Vista:
             CREATE VIEW ORDINI‐PRINCIPALI AS
             SELECT * FROM ORDINI
             WHERE IMPORTO > 10.000

 Modifica:
             UPDATE ORDINI‐PRINCIPALI
             SET IMPORTO = IMPORTO * 1.05
             WHERE NUM‐CLI = 3

 Composizione della vista con la modifica:
           UPDATE ORDINI
           SET IMPORTO = IMPORTO * 1.05
           WHERE NUM‐CLI = 3 
           AND IMPORTO > 10.000

12                               Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Esempio di vista complessa
CREATE VIEW CLI‐PRO (CLIENTE,PRODOTTO) 
AS
SELECT COD‐CLI, COD‐PROD
FROM ORDINE JOIN DETTAGLIO
  ON ORDINE.COD‐ORD = DETTAGLIO.COD‐ORD




13                     Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Vista complessa (JOIN)

              CLIENTE PRODOTTO
              12             45



                     JOIN


COD-CLI COD-ORD    …..         COD-ORD COD-PROD …..
12      33                     33                      45

 14                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Interrogazione sulla vista complessa
 Query:
          SELECT CLIENTE
          FROM CLI‐PROD
          WHERE PRODOTTO = 45

 Composizione della vista con la query:
        SELECT COD‐CLI
        FROM ORDINE JOIN DETTAGLIO 
           ON ORDINE.COD‐ORD = DETTAGLIO.COD‐ORD
        WHERE COD‐PROD = 45

15                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Modifiche sulla vista complessa
 Non è possibile modificare le tabelle di base tramite la 
 vista perché l’interpretazione è ambigua
     Es:  UPDATE CLI‐PROD SET PRODOTTO=43 WHERE CLIENTE=12


 il cliente ha cambiato l'ordine
 il codice del prodotto è cambiato




16                          Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Vista complessa (JOIN)
             CLIENTE PRODOTTO
             12           45                              43



                    JOIN


COD-CLI COD-ORD    …          COD-ORD COD-PROD …
12      33    48              33                      45             43
                               48                      43

 17                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Autorizzazioni d’accesso
 PRIVATEZZA: protezione selettiva della base di dati in 
 modo da garantire l’accesso   solo agli utenti autorizzati.

 Meccanismi per identificare l’utente (tramite PAROLA 
 CHIAVE o PASSWORD):
     Quando si collega al sistema informatico
     Quando accede al DBMS


 UTENTI individuali e GRUPPI di utenti



18                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Autorizzazioni d’accesso
 Si attribuiscono agli UTENTI dei PRIVILEGI DI ACCESSO alle 
 RISORSE
     Utenti: identificati tramite password
     Risorse:  tabelle, view (e altre)


 GRANT <privilegi> ON <risorse> TO <utenti>




19                               Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Principali privilegi di accesso
  SELECT [ATTRIBUTI]
  UPDATE [ATTRIBUTI]
  INSERT
  DELETE
  ALL PRIVILEGES

  ESEMPI:
      GRANT ALL PRIVILEGES ON ORDINE TO User1
      GRANT UPDATE(IMPORTO) ON ORDINE TO User2
      GRANT SELECT ON ORDINE TO User2, User3


 20                         Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Concessione dei privilegi
 Il creatore di una risorsa ha tutti i privilegi

 Spesso l'utente DATABASE ADMINISTRATOR crea l'intera 
 base di dati

 Chi detiene un privilegio può concederlo con GRANT 
 OPTION:
     GRANT ALL PRIVILEGES ON ORDINE TO User1 WITH GRANT 
     OPTION




21                            Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Esempio di uso, grant option
 Database administrator:
     GRANT ALL PRIVILEGES ON ORDINE TO User1 WITH GRANT 
     OPTION


 User1
     GRANT SELECT ON ORDINE TO User2 WITH GRANT OPTION


 User2
     GRANT SELECT ON ORDINE TO User3




22                          Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Revoca dei privilegi
 REVOKE <privilegi> ON <risorsa> FROM <utente>
     REVOKE UPDATE ON ORDINE FROM User1
     REVOKE SELECT ON ORDINE FROM User3


 Revoca dei privilegi con cascata
     REVOKE <privilegi> ON <risorsa> FROM <utente> CASCADE 




23                            Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Revoca di un privilegio con cascata
 Database administrator
     GRANT SELECT ON ORDINE TO User1 WITH GRANT OPTION


 User1
     GRANT SELECT ON ORDINE TO User2


 Database administrator
     REVOKE SELECT ON ORDINE FROM User1 CASCADE




24                          Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Revoca di un privilegio con cascata

     A          B                       C                               D




     A              B                            C



                                    Non si revoca ciò che
     Z                              Z ha concesso a C




25                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Algoritmo dei Time‐Stamp
           read, insert      T=15              read, insert, delete
     A
                                         X                                                Y
                             T=20                                        T=25
           read, delete
     B

                              T=30
           read, delete
     C



     Al tempo T=35 B revoca (con cascata) tutti i diritti a X




26                                    Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Algoritmo dei Time‐Stamp
             CATALOGO DEI GRANT

      User tabella   grantor read insert delete

      X    EMP         A          15           15            -
      X    EMP         B          20             -           20
      Y    EMP         X          25           25            25
      X    EMP         C          30           -             30


Ad ogni GRANT si inserisce una tupla con il tempo
della concessione in corrispondenza del privilegio


 27                        Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Algoritmo dei Time‐Stamp
  User tabella     grantor read insert delete

  X      EMP           A      15            15           -
  X      EMP           B      20             -           20
  Y      EMP           X      25            25           25
  X      EMP           C      30            -            30

Se B revoca tutti i diritti a X si elimina la tupla (X,B)
X può continuare a read, insert e delete perché li ha
ricevuti anche da A e C
Ad Y si revoca il delete perché al tempo 25 X poteva
averlo ricevuto solo da B

 28                          Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Viste e autorizzazioni di accesso
 Viste = unità di autorizzazione
     Consentono la gestione ottimale della privatezza




29                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Esempio: gestione dei conti correnti
      filiale 1         filiale 2                                  filiale 3



                                                                 rete
                        Banca

CONTO‐CORRENTE (NUM‐CONTO, FILIALE, 
  CLIENTE, COD‐FISC, DATA‐APERTURA, SALDO)

TRANSAZIONE (NUM‐CONTO, DATA, PROGR,   
    CAUSALE, AMMONTARE)

 30                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Requisiti di accesso 
                                conto-corrente

                                   NUM-  N.      …                         SALDO
              all previleges       CONTO FILIALE
funzionari1
                                   x     1
                                   y              1                          filiale1
                                   z              1

                                 transazione
cassieri1
                                 NUM-                                        …
                                 CONTO
                                 x
                                 x
                                                                             filiale1
cassieri2
cassieri2,3   select             y
                                 ...
  31                           Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Viste relative alla prima filiale
CREATE VIEW CONTO1 AS
 SELECT * 
 FROM CONTO‐CORRENTE 
 WHERE FILIALE = 1 

CREATE VIEW TRANSAZIONE1 AS
 SELECT * 
 FROM TRANSAZIONE 
 WHERE NUM‐CONTO IN
    ( SELECT NUM‐CONTO 
      FROM CONTO1 )  

 32                       Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Autorizzazioni relative ai dati della prima filiale 
GRANT ALL PRIVILEGES ON CONTO1 TO FUNZIONARI1
GRANT UPDATE(SALDO) ON CONTO1 TO CASSIERI1
GRANT SELECT ON CONTO1 TO CASSIERI1, CASSIERI2, 
 CASSIERI3
GRANT SELECT ON TRANSAZIONE1 TO FUNZIONARI1
GRANT ALL PRIVILEGES ON TRANSAZIONE1 TO CASSIERI1
GRANT SELECT ON TRANSAZIONE1 TO CASSIERI2, CASSIERI3




 33                      Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
Esercizi
  Riprendere le basi di dati per la gestione del personale ed 
  esprimere:
      i comandi per modificare la tabella IMPIEGATO aggiungendo il 
      campo COD‐FISC
      una vista complessa che contiene i nomi degli impiegati che 
      lavorano ai vari progetti
      la vista che seleziona gli IMPIEGATI che lavorano al progetto 
      “Wide”
      le istruzioni che consentono all’utente MGR‐WIDE il pieno 
      controllo sulla vista




 34                              Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi

Más contenido relacionado

Destacado

Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship Managementdimplenift
 
Copperfi
CopperfiCopperfi
Copperfi5045033
 
27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teamsMajong DevJfu
 
12 visualizing software_architectures_part_2
12 visualizing software_architectures_part_212 visualizing software_architectures_part_2
12 visualizing software_architectures_part_2Majong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 

Destacado (12)

Wildflowers
Wildflowers Wildflowers
Wildflowers
 
Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship Management
 
One Year Guarantee
One Year GuaranteeOne Year Guarantee
One Year Guarantee
 
7 Server Di Rete
7 Server Di Rete7 Server Di Rete
7 Server Di Rete
 
Processes and flows
Processes and flowsProcesses and flows
Processes and flows
 
Copperfi
CopperfiCopperfi
Copperfi
 
E3 Indici
E3 IndiciE3 Indici
E3 Indici
 
27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teams
 
T6 codice
T6 codiceT6 codice
T6 codice
 
12 visualizing software_architectures_part_2
12 visualizing software_architectures_part_212 visualizing software_architectures_part_2
12 visualizing software_architectures_part_2
 
arte Y Estilos
arte Y Estilosarte Y Estilos
arte Y Estilos
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 

Similar a C7 Ddl

noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]Andrea Maddalena
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Emanuele Zanchettin
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeft Association
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsSandro Rossetti
 
Drupal dashboard for dummies with d3
Drupal dashboard for dummies with d3Drupal dashboard for dummies with d3
Drupal dashboard for dummies with d3Eugenio Minardi
 
F1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerF1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerMajong DevJfu
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Fabio Armani
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiMajong DevJfu
 
Entity Framework 4 vs NHibernate 3
Entity Framework 4 vs NHibernate 3Entity Framework 4 vs NHibernate 3
Entity Framework 4 vs NHibernate 3Martino Bordin
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q Lguestbe916c
 
ACS, ECS [e Cardinality/Statistics feedback]
ACS, ECS [e Cardinality/Statistics feedback]ACS, ECS [e Cardinality/Statistics feedback]
ACS, ECS [e Cardinality/Statistics feedback]ICTeam S.p.A.
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
 
Basi di Dati - A1 - Introduzione alle basi di dati
Basi di Dati - A1 - Introduzione alle basi di datiBasi di Dati - A1 - Introduzione alle basi di dati
Basi di Dati - A1 - Introduzione alle basi di datiMajong DevJfu
 
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Tsuneo Kurihara
 

Similar a C7 Ddl (20)

noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite ForensicsDeftcon 2012 - Meo Bogliolo - SQLite Forensics
Deftcon 2012 - Meo Bogliolo - SQLite Forensics
 
Drupal dashboard for dummies with d3
Drupal dashboard for dummies with d3Drupal dashboard for dummies with d3
Drupal dashboard for dummies with d3
 
Basi Di Dati 05
Basi Di Dati 05Basi Di Dati 05
Basi Di Dati 05
 
F1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerF1 Vincoli Procedure Trigger
F1 Vincoli Procedure Trigger
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
 
Entity Framework 4 vs NHibernate 3
Entity Framework 4 vs NHibernate 3Entity Framework 4 vs NHibernate 3
Entity Framework 4 vs NHibernate 3
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
 
C6 Sql2
C6 Sql2C6 Sql2
C6 Sql2
 
Corsi Tableau 10 by Ecoh Media
Corsi Tableau 10 by Ecoh MediaCorsi Tableau 10 by Ecoh Media
Corsi Tableau 10 by Ecoh Media
 
ACS, ECS [e Cardinality/Statistics feedback]
ACS, ECS [e Cardinality/Statistics feedback]ACS, ECS [e Cardinality/Statistics feedback]
ACS, ECS [e Cardinality/Statistics feedback]
 
Design pattern architetturali Model View Controller, MVP e MVVM
Design pattern architetturali   Model View Controller, MVP e MVVMDesign pattern architetturali   Model View Controller, MVP e MVVM
Design pattern architetturali Model View Controller, MVP e MVVM
 
Basi di Dati - A1 - Introduzione alle basi di dati
Basi di Dati - A1 - Introduzione alle basi di datiBasi di Dati - A1 - Introduzione alle basi di dati
Basi di Dati - A1 - Introduzione alle basi di dati
 
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
Accelera lo sviluppo con il web framework! Componenti a supporto dello svilup...
 

Más de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Más de Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

C7 Ddl

  • 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 ‐ Aspetti avanzati nella definizione degli schemi
  • 3. Aspetti avanzati del DDL Creazione di indici Modifica degli schemi Gestione di viste  Autorizzazioni d'accesso 3 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 4. Creazione di indici  INDICI:  meccanismi di accesso efficiente ai dati CREATE INDEX   CREATE  INDEX DATA‐IX ON ORDINI (DATA) CREATE UNIQUE INDEX   CREATE  UNIQUE INDEX ORD‐KEY ON ORDINI (ORD‐COD) 4 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 5. Comandi di modifica degli schemi  Necessari per garantire l’evoluzione della base di dati a  fronte di nuove esigenze E’ possibile: CREARE NUOVI OGGETTI (CREATE) MODIFICARE OGGETTI PREESISTENTI (ALTER) CANCELLARE OGGETTI (DROP) 5 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 6. Cancellazione degli oggetti  DROP (domini, tabelle, indici, view, asserzioni, procedure,  trigger) Es: DROP TABLE ORDINI Es: DROP INDEX DATA‐IX OPZIONI RESTRICT e CASCADE RESTRICT: impedisce drop se gli oggetti comprendono istanze CASCADE: applica drop agli oggetti collegati 6 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 7. Modifica degli oggetti  ALTER (domini, tabelle) Es: ALTER TABLE ORDINI ADD COLUMN NUM‐FATT CHAR(6) Es: ALTER TABLE ORDINI ALTER COLUMN IMPORTO ADD  DEFAULT  0 Es: ALTER TABLE ORDINI DROP COLUMN DATA 7 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 8. Viste relazionali  Offrono la "visione" di tabelle virtuali (schemi esterni) Classificate in SEMPLICI (Selezione e proiezione su una sola tabella) COMPLESSE 8 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 9. Sintassi delle viste relazionali  CREATE VIEW <Nome> AS <QUERY> CREATE VIEW <Nome> ( <Nome‐attributi>) AS <QUERY> Le query possono includere al loro interno viste definite  in precedenza 9 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 10. Esempio di vista semplice  Ordini di importo superiore a 10.000 € CREATE VIEW ORDINI‐PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000 ordini VISTA : ordini principali 1 3 2003-06-01 50.000 4 1 2004-07-01 12.000 6 3 2004-09-03 27.000 10 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 11. Uso della vista per query Vista: CREATE VIEW ORDINI‐PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000 Query: SELECT NUM‐CLI FROM ORDINI‐PRINCIPALI Composizione della vista con la query: SELECT NUM‐CLI FROM ORDINI WHERE IMPORTO > 10.000 11 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 12. Modifiche tramite le viste Vista: CREATE VIEW ORDINI‐PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000 Modifica: UPDATE ORDINI‐PRINCIPALI SET IMPORTO = IMPORTO * 1.05 WHERE NUM‐CLI = 3 Composizione della vista con la modifica: UPDATE ORDINI SET IMPORTO = IMPORTO * 1.05 WHERE NUM‐CLI = 3  AND IMPORTO > 10.000 12 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 13. Esempio di vista complessa CREATE VIEW CLI‐PRO (CLIENTE,PRODOTTO)  AS SELECT COD‐CLI, COD‐PROD FROM ORDINE JOIN DETTAGLIO ON ORDINE.COD‐ORD = DETTAGLIO.COD‐ORD 13 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 14. Vista complessa (JOIN) CLIENTE PRODOTTO 12 45 JOIN COD-CLI COD-ORD ….. COD-ORD COD-PROD ….. 12 33 33 45 14 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 15. Interrogazione sulla vista complessa Query: SELECT CLIENTE FROM CLI‐PROD WHERE PRODOTTO = 45 Composizione della vista con la query: SELECT COD‐CLI FROM ORDINE JOIN DETTAGLIO  ON ORDINE.COD‐ORD = DETTAGLIO.COD‐ORD WHERE COD‐PROD = 45 15 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 16. Modifiche sulla vista complessa Non è possibile modificare le tabelle di base tramite la  vista perché l’interpretazione è ambigua Es:  UPDATE CLI‐PROD SET PRODOTTO=43 WHERE CLIENTE=12 il cliente ha cambiato l'ordine il codice del prodotto è cambiato 16 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 17. Vista complessa (JOIN) CLIENTE PRODOTTO 12 45 43 JOIN COD-CLI COD-ORD … COD-ORD COD-PROD … 12 33 48 33 45 43 48 43 17 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 18. Autorizzazioni d’accesso PRIVATEZZA: protezione selettiva della base di dati in  modo da garantire l’accesso   solo agli utenti autorizzati. Meccanismi per identificare l’utente (tramite PAROLA  CHIAVE o PASSWORD): Quando si collega al sistema informatico Quando accede al DBMS UTENTI individuali e GRUPPI di utenti 18 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 19. Autorizzazioni d’accesso Si attribuiscono agli UTENTI dei PRIVILEGI DI ACCESSO alle  RISORSE Utenti: identificati tramite password Risorse:  tabelle, view (e altre) GRANT <privilegi> ON <risorse> TO <utenti> 19 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 20. Principali privilegi di accesso SELECT [ATTRIBUTI] UPDATE [ATTRIBUTI] INSERT DELETE ALL PRIVILEGES ESEMPI: GRANT ALL PRIVILEGES ON ORDINE TO User1 GRANT UPDATE(IMPORTO) ON ORDINE TO User2 GRANT SELECT ON ORDINE TO User2, User3 20 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 21. Concessione dei privilegi Il creatore di una risorsa ha tutti i privilegi Spesso l'utente DATABASE ADMINISTRATOR crea l'intera  base di dati Chi detiene un privilegio può concederlo con GRANT  OPTION: GRANT ALL PRIVILEGES ON ORDINE TO User1 WITH GRANT  OPTION 21 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 22. Esempio di uso, grant option Database administrator: GRANT ALL PRIVILEGES ON ORDINE TO User1 WITH GRANT  OPTION User1 GRANT SELECT ON ORDINE TO User2 WITH GRANT OPTION User2 GRANT SELECT ON ORDINE TO User3 22 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 23. Revoca dei privilegi REVOKE <privilegi> ON <risorsa> FROM <utente> REVOKE UPDATE ON ORDINE FROM User1 REVOKE SELECT ON ORDINE FROM User3 Revoca dei privilegi con cascata REVOKE <privilegi> ON <risorsa> FROM <utente> CASCADE  23 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 24. Revoca di un privilegio con cascata Database administrator GRANT SELECT ON ORDINE TO User1 WITH GRANT OPTION User1 GRANT SELECT ON ORDINE TO User2 Database administrator REVOKE SELECT ON ORDINE FROM User1 CASCADE 24 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 25. Revoca di un privilegio con cascata A B C D A B C Non si revoca ciò che Z Z ha concesso a C 25 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 26. Algoritmo dei Time‐Stamp read, insert T=15 read, insert, delete A X Y T=20 T=25 read, delete B T=30 read, delete C Al tempo T=35 B revoca (con cascata) tutti i diritti a X 26 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 27. Algoritmo dei Time‐Stamp CATALOGO DEI GRANT User tabella grantor read insert delete X EMP A 15 15 - X EMP B 20 - 20 Y EMP X 25 25 25 X EMP C 30 - 30 Ad ogni GRANT si inserisce una tupla con il tempo della concessione in corrispondenza del privilegio 27 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 28. Algoritmo dei Time‐Stamp User tabella grantor read insert delete X EMP A 15 15 - X EMP B 20 - 20 Y EMP X 25 25 25 X EMP C 30 - 30 Se B revoca tutti i diritti a X si elimina la tupla (X,B) X può continuare a read, insert e delete perché li ha ricevuti anche da A e C Ad Y si revoca il delete perché al tempo 25 X poteva averlo ricevuto solo da B 28 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 29. Viste e autorizzazioni di accesso Viste = unità di autorizzazione Consentono la gestione ottimale della privatezza 29 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 30. Esempio: gestione dei conti correnti filiale 1 filiale 2 filiale 3 rete Banca CONTO‐CORRENTE (NUM‐CONTO, FILIALE,  CLIENTE, COD‐FISC, DATA‐APERTURA, SALDO) TRANSAZIONE (NUM‐CONTO, DATA, PROGR,    CAUSALE, AMMONTARE) 30 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 31. Requisiti di accesso  conto-corrente NUM- N. … SALDO all previleges CONTO FILIALE funzionari1 x 1 y 1 filiale1 z 1 transazione cassieri1 NUM- … CONTO x x filiale1 cassieri2 cassieri2,3 select y ... 31 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 32. Viste relative alla prima filiale CREATE VIEW CONTO1 AS SELECT *  FROM CONTO‐CORRENTE  WHERE FILIALE = 1  CREATE VIEW TRANSAZIONE1 AS SELECT *  FROM TRANSAZIONE  WHERE NUM‐CONTO IN ( SELECT NUM‐CONTO  FROM CONTO1 )   32 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 33. Autorizzazioni relative ai dati della prima filiale  GRANT ALL PRIVILEGES ON CONTO1 TO FUNZIONARI1 GRANT UPDATE(SALDO) ON CONTO1 TO CASSIERI1 GRANT SELECT ON CONTO1 TO CASSIERI1, CASSIERI2,  CASSIERI3 GRANT SELECT ON TRANSAZIONE1 TO FUNZIONARI1 GRANT ALL PRIVILEGES ON TRANSAZIONE1 TO CASSIERI1 GRANT SELECT ON TRANSAZIONE1 TO CASSIERI2, CASSIERI3 33 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi
  • 34. Esercizi Riprendere le basi di dati per la gestione del personale ed  esprimere: i comandi per modificare la tabella IMPIEGATO aggiungendo il  campo COD‐FISC una vista complessa che contiene i nomi degli impiegati che  lavorano ai vari progetti la vista che seleziona gli IMPIEGATI che lavorano al progetto  “Wide” le istruzioni che consentono all’utente MGR‐WIDE il pieno  controllo sulla vista 34 Basi di Dati ‐ Aspetti avanzati nella definizione degli schemi