Estratto del documento

Base dati catena multisala

Facoltà di Ingegneria Informatica, Federico II Anno accademico 2016-2107 Corso di Basi di Dati tenuto dal prof. Vincenzo Moscato. Studenti: Carmine Cesarano, Michele De Sena, Enza D’Angelo.

Questo lavoro si basa sulla traccia assegnata al corso di Basi di Dati I dell’attuale anno accademico, riguardante la creazione di un database per la gestione di una serie di servizi web forniti da una catena di cinema multisala. Dapprima verrà introdotta la traccia, poi si passerà all'analisi del problema e alla strutturazione della soluzione, andando dalla descrizione in ER alla implementazione SQL. In seguito sarà analizzata la costruzione della GUI in PHP/HTML.

Traccia

Una multinazionale di informatica ha recentemente acquisito una serie di società che gestiscono una serie di servizi web per la prenotazione di biglietti a cinema collocati sul territorio svizzero (in particolare ogni società gestisce la prenotazione per i cinema di un singolo cantone). Come parte della nuova strategia gestionale, la suddetta società intende fornire ai propri utenti un servizio centralizzato per:

  • La consultazione della programmazione delle proiezioni di film presso i vari cinema;
  • La prenotazione ed acquisto on-line di biglietti.

La società prevede che i servizi sopraelencati siano accessibili dai propri utenti mediante interfacce web. Ovviamente le informazioni riguardo i cinema di un dato cantone, la relativa programmazione, gli orari, i prezzi sono di competenza delle singole società locali, ciascuna delle quali ha nel tempo sviluppato un proprio sistema informativo. Mentre le informazioni sui film devono essere recuperate da siti specializzati gestiti da terze parti (e.g. IMDb). Infine, il pagamento con carta di credito deve essere effettuato in modalità sicura sfruttando web service offerti da istituti di credito certificati.

Descrizione del problema

Il database è incentrato sugli elementi che appartengono alla realtà di interesse “consultazione, prenotazione e gestione del calendario”, quali Cinema, Sale, Film, Programmazione, Prenotazioni, Utenti e Biglietti. Pertanto sono considerate solo quelle classi in stretta correlazione con la traccia, ovvero non sono implementate altre funzionalità standard che potrebbero essere implementate in un sistema gestionale (amministrazione personale ad esempio).

Progettazione concettuale

In fase di progettazione è stata scelta e adottata una strategia top-down. Questo perché le specifiche utente sono chiare fin dall’inizio. Sono stati quindi individuati i macro concetti e a partire da questi si è proceduto con raffinamenti successivi, esplicitando di volta in volta nuovi dettagli. Analizzando le specifiche del paragrafo 1 possiamo stilare il seguente glossario.

Glossario

Termine Descrizione Collegamenti
Cinema Luogo dove sono presenti sale cinematografiche Sala
Sala La sala dove si proietta un film Cinema, Poltrona
Posto La poltrona fisica del cinema Sala, Prenotazione
Film La pellicola proiettata Programmazione, Sala
Utenti L'utente che prenota un film Prenotazione
Programmazione Lo svolgersi di una proiezione di un film Film, Sala
Prenotazioni Effettuate dagli utenti per riservare un posto per una programmazione Sala, Programmazione

Diagramma E/R

Figura 1: diagramma E/R del sistema cinema

Dizionario dati

Entità

Classe Descrizione Attributi Identificatori
Utente Utenti registrati alla piattaforma Cod_utente, Cognome, Nome, Username, Pwd, Email Cod_utente
Film Tutti i film mandati in programmazione fino ad ora Cod, titolo, anno, Produttore, Genere, durata, data_uscita Cod
Recensione Contiene le recensioni dei soli film in programmazione Cod, testo Cod
Cast Gruppo persone che lavora nella produzione (generalizza le entità attore e regista) Cod, nome, cognome, data_nascita Cod
Calendario Comprende tutte le istanze di proiezione, identificate da un codice univoco Cod, Data, Ora, posti_occ, posti_disp Cod
Cinema Insieme dei cinema multisala Cod, Nome, Numero_Sale, Città, indirizzo, Civico, Recapito Cod
Sala Insieme delle sale Numero, Capienza, Superficie Numero
Posto Contiene tutti i posti, di tutte le sale, di tutti i cinema Numero, Fila Numero, Fila
Prenotazione Contiene tutte le istanze di prenotazione utente Cod, data_prenotazione, pagato Cod

Associazioni

Associazione Descrizione Classi coinvolte
AFFERENZA_REC Mette in relazione i film con un'unica recensione FILM (0,1), RECENSIONE (1,1)
PARTECIPAZIONE Mette in relazione i film con il relativo cast, specificando il RUOLO (opzionale) degli attori FILM (1,N), CAST (1,N)
PROIEZIONE Relaziona i film in programmazione con un calendario di tutte le proiezioni FILM (1,N), CALENDARIO (1,1)
AFFERENZA_CIN Associa un'istanza del calendario ad un cinema CALENDARIO (1,1), CINEMA (1,N)
LISTA_SALE Mette in relazione ogni cinema con le relative sale CINEMA (1,N), SALA (1,1)
LISTA_POSTI Mette in relazione ogni sala con i relativi posti SALA (1,N), POSTO (1,1)
AFFERENZA_SALA Associa una proiezione (istanza di calendario) ad una sala CALENDARIO (0,1), SALA (0,N)
AFFERENZA_POSTO Mette in relazione le prenotazioni con i posti, specificando il prezzo per ogni afferenza PRENOTAZIONE (1,N), POSTO (0,N)
ORDINE Associa un’istanza di prenotazione con l’utente che l’ha effettuata UTENTE (0,N), PRENOTAZIONE (1,1)
AFFERENZA_PREN Mette in relazione le prenotazioni con le relative istanze di calendario CALENDARIO (0,N), PRENOTAZIONE (1,1)

NOTE: CALENDARIO AFFERENZA_SALA La cardinalità di partecipazione all’associazione è opzionale perché un cinema può o meno decidere di introdurre, al momento della pubblicazione, il numero della sala nel calendario.

Progettazione logico-relazionale

Prima ancora di tradurre lo schema concettuale in quello logico è opportuno analizzare lo schema ER, al fine di apportare delle modifiche che rendano più efficiente l’implementazione finale.

Attributi multivalore

Cinema, È stato rimosso l’attributo “recapito”, presente per essere sostituito dall’entità “RECAPITO_CINEMA” opportunamente associata al cinema da una relazione 1-N, effettuando di fatto un partizionamento verticale.

Analisi delle ridondanze

posti_occ, posti_disp, L’unica ridondanza è dovuta agli attributi calcolabili, data una occorrenza p di contare le occorrenze in cui è presente p nel primo caso e sottraendo al numero di posti della sala, il numero di posti occupati, nel secondo caso.

Eliminazione delle generalizzazioni

CAST: ATTORE, REGISTA La specializzazione in e è del tipo totale e disgiunta. Questa può essere tradotte accorpando le entità sottoclassi nella superclasse ed includendo nella superclasse l’attributo “tipo” che indica la sottoclasse a cui appartiene ciascuna tupla. Questa soluzione è attuabile solo per le spec. totali/disgiunte. Il fatto che le sottoclassi non specificano con alcun attributo la superclasse garantisce la non CAST presenza di valori nulli in e quindi il massimo grado di efficienza per questa soluzione.

Eliminazione attributi composti

Era stato pensato, in una fase iniziale della progettazione, di implementare nello schema ER gli indirizzi come attributi composti. Questa funzionalità non è resa però disponibile dal tool utilizzato (JDER), dunque questa fase non è necessaria.

Scelta identificatori codice

Quasi per tutte le entità è stato preferibile introdurre l’attributo come identificatore. Osserviamo infatti che quasi tutte le entità referenziano chiavi esterne, quindi il codice, rispetto alle altre possibili alternative, garantisce un risparmio sia in termini di byte che di tempo durante i join tra le tabelle. Solo per l’entità POSTO si è deciso di identificare le tuple con gli attributi numero e fila.

Diagramma E/R ristrutturato

Figura 2: Diagramma E/R ristrutturato

Approcci di conversione da E/R a relazionale

Per rendere più comprensibile il significato dello schema è stato opportuno rinominare gli identificatori delle entità coinvolte assegnando loro un nome più comprensibile rispetto a “codice”. Le entità sono state tradotte con una tabella che ha il nome dell’entità stessa, ma al plurale. Le associazioni 1-N possono essere tradotte con la “soluzione 2”. Questa risulta essere la più efficiente perché permette di ridurre notevolmente il numero di tabelle (quindi la dimensione fisica della base) e la ridondanza dati. Secondo questa soluzione l’associazione non compare nella traduzione e i suoi attributi insieme all’identificatore lato N vengono inclusi come attributi nella tabella lato 1. L’unico inconveniente di questa soluzione, è la presenza di molti valori null in corrispondenza di partecipazione opzionale dell’entità lato 1. Si preferisce in questi casi considerare una terza tabellache traduc

Anteprima
Vedrai una selezione di 7 pagine su 30
Tesina Basi di Dati Catena Cinema Multisala Pag. 1 Tesina Basi di Dati Catena Cinema Multisala Pag. 2
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Tesina Basi di Dati Catena Cinema Multisala Pag. 6
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Tesina Basi di Dati Catena Cinema Multisala Pag. 11
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Tesina Basi di Dati Catena Cinema Multisala Pag. 16
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Tesina Basi di Dati Catena Cinema Multisala Pag. 21
Anteprima di 7 pagg. su 30.
Scarica il documento per vederlo tutto.
Tesina Basi di Dati Catena Cinema Multisala Pag. 26
1 su 30
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher c.cesarano di informazioni apprese con la frequenza delle lezioni di Basi di Dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Moscato Vincenzo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community