Esempi di Progettazione SQL-DDL/1

Documenti analoghi
SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

Basi di dati: appello 04/07/06

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m

Laboratorio di Basi di Dati Esercizio 8.4/9.1

A. Veneziani Analisi e soluzione esercizio 2 pagina 53

Informatica per le scienze umane ESERCIZI

Metodologie e modelli di progetto

GESTIONE ASSICURAZIONI AUTO

Corso di Basi di Dati

A. Veneziani Analisi problema DB Magazzino

Versione 1.0. (DB Visite Specialistiche)

Basi di dati: appello 14/07/06

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 1 OTTOBRE 2015 Tempo: 2h30m

Basi di Dati Corso di Laura in Informatica Umanistica

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

GESTIONE VIDEONOLEGGIO

GESTIONE ABBONAMENTI RIVISTE

Basi di dati: appello 09/03/07

Laboratorio Basi di Dati Laura Po

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale

GESTIONE ABBONAMENTI RIVISTE

Esercitazione di Gestione dei Dati e della Conoscenza (Modellazione ER) Diego De Cao a.a. 2008/2009

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

matricola Nome Cognome firma punti Basi di Dati Schema logico relazionale e tabelle SQL - 1 Esercitazione con valutazione del 24 Ottobre 2007 Conosce

Dichiarazione degli schemi in SQL DDL 1

Soluzione esercitazione 01

Versione 1.0. (DB Musei)

Analisi soluzione DB esercizio 1

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di dati: appello 28/02/06

SQL. Dott.ssa Elisa Quintarelli

Appunti dalle lezioni. Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale.

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Laboratorio di Basi di Dati

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

Basi di Dati Corso di Laura in Informatica Umanistica

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

ESERCITAZIONE: Fornitore-Fornisce-Articolo

Generazione diagrammi ER

Basi di Dati Corso di Laura in Informatica Umanistica

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Principi di Progettazione del Software a.a Il linguaggio SQL. Linguaggi per DBMS

Fondamenti di Informatica 2

SQL. DDL e vincoli. Basi di Dati 1 Esercitazione 4. Matteo Picozzi {picozzi@elet.polimi.it}

Basi di dati: appello 07/02/06

GESTIONE VIDEONOLEGGIO

Basi di Dati. Sistemi per Basi di Dati Relazionali: Modello Logico. Concetti Fondamentali. Concetti Fondamentali

Concettuale. Giuseppe Amato

PROGETTAZIONE LOGICA. Prof. Ing. Alfredo GARRO 1/6. Artista. Cantante. DataDiNascita. Codice. Nazionalità

Fondamenti di Informatica 2

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

GESTIONE MAGAZZINO 1

GESTIONE MAGAZZINO 1

Basi di dati: appello 08/03/06

Esercitazione ER e Algebra Relazionale

ESAME di INFORMATICA e ARCHIVIAZIONE

Mirco Nanni ISTI CNR, Pisa. CdL in Lettere A.A. 2007/2008

Fondamenti di Informatica 2

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

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola:

GESTIONE MAGAZZINO 2

Gestione NARRATIVA del 900

OBIETTIVI DELL'ESERCITAZIONE

GESTIONE TRASPORTI PROVINCIALI

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

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

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Laboratorio di Basi di Dati e Multimedia

Database per la gestione delle ferrovie dello stato. I treni gestiti sono identificati da un numero. Su ciascun treno sono specificate le classi per

GESTIONE MAGAZZINO 2

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

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

Lezione 4. Dallo schema ER al relazionale

GESTIONE VOTI SCOLASTICI

Viste come strumenti di programmazione

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

Laboratorio di Basi di Dati

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Il linguaggio SQL. Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL

Linguaggi e Traduttori

SCHEMA E/R DI UNA UNIVERSITA'

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m

Basi di dati: appello 11/07/07

Fondamenti di Informatica 2

A. Veneziani - Analisi DB Biblioteca

Linguaggi Formali. Π nome (Π nome,c.f. (correttore c.f=c.f._correttore σ n_capitolo=5 bozza

Tipi numerici esatti Valori interi o con parte decimale di lunghezza prefissata

Fondamenti di Informatica 2

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

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

GESTIONE VOTI SCOLASTICI

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio 2004

Stringhe di caratteri

Transcript:

Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Esempi di Progettazione SQL-DDL/1

Specifiche della base di dati Si progetti lo schema Entità-Relazione di una base di dati per il supporto alle attività di noleggio di una videoteca. La base di dati memorizza informazioni su tutti i film rappresentati: un film è identificato da un codice, ha un titolo, un anno di produzione, una durata e un regista. Nella videoteca possono esistere diverse copie di ciascun film su diversi supporti (VHS, DVD, ogni copia è un video identificato da un codice ed associato ad una precisa posizione negli scaffali del locale. Tutti gli utenti che noleggiano un video vengono registrati nel sistema, specificandone nome, cognome, indirizzo e numero di telefono. Per ogni noleggio in corso il sistema mantiene informazioni su data e ora di acquisizione del video, sulla data prevista di riconsegna, sul video noleggiato e sull utente responsabile del noleggio. Al fine di fissare i prezzi di noleggio i film sono suddivisi in fasce; ogni

fascia è identificata da un numero e ha una descrizione ( nuovi arrivi, film d epoca, film cult, ). Ad ogni fascia corrisponde un diverso prezzo di noleggio per ciascun supporto di rappresentazione (così i nuovi arrivi su DVD avranno un prezzo diverso dai nuovi arrivi su VHS, dai film d epoca su DVD, ecc ). Un utente della videoteca può diventare socio acquistando una tessera. Esistono varie tipologie di tessera, ciascuna identificata dalla durata e caratterizzata da un prezzo e da una piano di sconto. Un piano di sconto consiste nell applicazione di una diversa percentuale di sconto a ciascuna fascia di film da noleggiare (la stessa percentuale di sconto viene applicata a tutti i prezzi di noleggio previsti dalla fascia, quindi è indipendente dal supporto di rappresentazione).

data_acq ora_acq data_ric codice posizione codice titolo anno durata regista codice cognome nome indirizzo tel nome data_inizio prezzo Noleggio Utente Tipo Tessera Prezzo Noleggio prezzo durata perc Socio ( 0:1 ) ( 1:1 ) ( 0:n ) Video Copia_di Su ( 0:n ) Supporto #fascia descr ( 0:n ) ( 0:1 ) ( 0:n ) Film ( 1:1 ) ( 0:n ) ( 1:n ) 1:n 0:n Sconto ( ) ( ) ( 0:n ) ( 1:1 ) Fascia Appartiene

Schema Logico/1 Video(Codice,Posizione,CodiceFilm,CodiceUtente, DataAcquisto,OraAcquisto,DataRiconsegna, NomeSupporto) Film(Codice,Titolo,Anno,Durata,Regista, NumeroFascia) Utente(Codice,Cognome,Nome,Indirizzo,Telefono, DurataTessera,DataInizio) Supporto(Nome) Fascia(#Fascia,Descrizione) PrezzoNoleggio(NomeSupporto,NumeroFascia,Prezzo) TipoTessera(Durata,Prezzo) Sconto(NumeroFascia,DurataTipoTessera, Percentuale)

Schema Logico/2 con i seguenti vincoli di integrità referenziale: CodiceFilm nella relazione Video e Codice nella relazione Film CodiceUtente nella relazione Video e Codice nella relazione Utente NomeSupporto nella relazione Video e Nome nella relazione Supporto NumeroFascia nella relazione Film e #Fascia nella relazione Fascia DurataTessera nella relazione Utente e Durata nella relazione TipoTessera NomeSupporto nella relazione PrezzoNoleggio e Nome nella relazione Supporto NumeroFascia nella relazione PrezzoNoleggio e #Fascia nella relazione Fascia NumeroFascia nella relazione Sconto e #Fascia nella relazione Fascia DurataTipoTessera nella relazione Sconto e Durata nella relazione TipoTessera

SQL-DDL/1 CREATE TABLE Video( Codice VARCHAR(8), Posizione VARCHAR(8) NOT NULL UNIQUE, CodiceFilm VARCHAR(8) NOT NULL UNIQUE, CodiceUtente VARCHAR(8) NOT NULL UNIQUE, DataAcquisto DATE NOT NULL, OraAcquisto DATETIME NOT NULL, DataRiconsegna DATE NOT NULL, NomeSupporto VARCHAR(10), CHECK (DataAcquisto >= #01/01/2000# AND DataAcquisto <= DATE.CURRENTDATE), CHECK (OraAcquisto >= #08:00:00# AND OraAcquisto <= #20:00:00#), CHECK (DataRiconsegna >= DataAcquisto), PRIMARY KEY (Codice), FOREIGN KEY (CodiceFilm) REFERENCES Film(Codice), FOREIGN KEY (CodiceUtente) REFERENCES Utente(Codice), FOREIGN KEY (NomeSupporto) REFERENCES Supporto(Nome)

SQL-DDL/2 CREATE TABLE Film( Codice VARCHAR(8), Titolo VARCHAR(40) NOT NULL, Anno SMALLINT(4) NOT NULL, Durata SMALLINT(3) NOT NULL, Regista VARCHAR(15) NOT NULL, NumeroFascia SMALLINT(1) NOT NULL, CHECK (Anno >= 2000 AND Anno <= 2050), CHECK (Durata > 0 AND Durata <= 250), PRIMARY KEY (Codice), FOREIGN KEY (NumeroFascia) REFERENCES Fascia(#Fascia)

SQL-DDL/3 CREATE TABLE Utente( Codice VARCHAR(8), Cognome VARCHAR(15) NOT NULL, Nome VARCHAR(15) NOT NULL, Indirizzo VARCHAR(100) NOT NULL, Telefono VARCHAR(15) NOT NULL, DurataTessera SMALLINT(1) NOT NULL, DataInizio DATE NOT NULL, CHECK (DataInizio >= #01/01/2000# AND DataInizio <= DATE.CURRENTDATE) PRIMARY KEY (Codice), FOREIGN KEY (DurataTessera) REFERENCES TipoTessera(Durata) CREATE TABLE Supporto( Nome VARCHAR(15), PRIMARY KEY (Nome)

SQL-DDL/4 CREATE TABLE Fascia( #Fascia SMALLINT(1), Descrizione VARCHAR(40) NOT NULL, CHECK (#Fascia > 0 AND #Fascia <= 10), PRIMARY KEY (#Fascia) CREATE TABLE PrezzoNoleggio( NomeSupporto VARCHAR(15), NumeroFascia SMALLINT(1), Prezzo FLOAT(2,2) NOT NULL, CHECK (Prezzo > 00.00 AND Prezzo <= 30.00), PRIMARY KEY (NomeSupporto,NumeroFascia), FOREIGN KEY (NomeSupporto) REFERENCES Supporto(Nome), FOREIGN KEY (NumeroFascia) REFERENCES Fascia(#Fascia)

SQL-DDL/5 CREATE TABLE TipoTessera( Durata SMALLINT(1), Prezzo FLOAT(2,2) NOT NULL, CHECK (Durata > 0 AND Durata <= 3), CHECK (Prezzo > 00.00 AND Prezzo <= 15.00), PRIMARY KEY (Durata) CREATE TABLE Sconto( NumeroFascia SMALLINT(1), DurataTipoTessera SMALLINT(1), Percentuale FLOAT(2,2) NOT NULL, CHECK (Percentuale >= 00.00 AND Prezzo <= 22.00), PRIMARY KEY (NumeroFascia,DurataTipoTessera), FOREIGN KEY (NumeroFascia) REFERENCES Fascia(#Fascia), FOREIGN KEY (DurataTipoTessera) REFERENCES TipoTessera(Durata)