Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Progetto PHP Rivista Culinaria, Prove d'esame di Basi di Dati

Una redazione giornalistica di una rivista culinaria vuole creare un sistema di gestione delle ricette inviate dai lettori. Nella redazione lavorano da 1 a 5 redattori collaboratori e 1 caporedattore. Ogni settimana i redattori verificano le ricette inviate dai lettori e scartano quelle ritenute non idonee, le idonee vengono sottoposte, alla fine del mese, al caporedattore per l’approvazione ’approvazione definitiva che comporterà la pubblicazione sulla rivista. Ogni ricetta è contraddistinta...

Tipologia: Prove d'esame

2017/2018

In vendita dal 22/09/2022

wordpress-solutions
wordpress-solutions 🇮🇹

4 documenti

1 / 11

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Eugenio Mendicino
STA06445-L8
Prova pratica 2!
INDICE
PROGETTAZIONE CONCETTUALE……………………………………………………………………….PAGINA 3
PROGETTAZIONE LOGICA………………………………………………………………………..…….…PAGINA 4
PROGETTAZIONE FISICA..…………………………………………………………………………………PAGINA 8!
Pagina di 1 12
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Progetto PHP Rivista Culinaria e più Prove d'esame in PDF di Basi di Dati solo su Docsity!

INDICE

  • Prova pratica
  • PROGETTAZIONE CONCETTUALE……………………………………………………………………….PAGINA
  • PROGETTAZIONE LOGICA………………………………………………………………………..…….…PAGINA
  • PROGETTAZIONE FISICA..…………………………………………………………………………………PAGINA

Redazione rivista culinaria

DESCRIZIONE DELL’AZIENDA

Una redazione giornalistica di una rivista culinaria vuole creare un sistema di gestione delle ricette

inviate dai lettori. Nella redazione lavorano da 1 a 5 redattori collaboratori e 1 caporedattore. Ogni

settimana i redattori verificano le ricette inviate dai lettori e scartano quelle ritenute non idonee, le

idonee vengono sottoposte, alla fine del mese, al caporedattore per l’approvazione definitiva che

comporterà la pubblicazione sulla rivista. Ogni ricetta è contraddistinta da: autore, tipologia* lista

ingredienti, quantità per ogni ingrediente, tempo di cottura, modalità di preparazione, difficoltà (da

1 – facile a 5 - difficile), numero di porzioni, note. La redazione sta valutando la possibilità di

mettere su un sito Internet le ricette e di consentire ricerche di ricette per calorie per favorire

anche i visitatori che desiderano seguire un regime dietetico controllato. I visitatori / autori di

ricette dovranno essere registrati e dovrà essere tenuta traccia delle ricette pubblicate per ogni

visitatore / autore. Per ogni visitatore / autore si dovrà conoscere: nome, cognome, indirizzo,

telefono abitazione, telefono cellulare, indirizzo e-mail* e data di nascita. Ogni visitatore / autore

dovrà firmare una liberatoria per la legge sulla privacy e per garantire l’originalità della ricetta. I

redattori saranno caratterizzati da: nome, cognome, matricola. Il capo redattore sarà

caratterizzato da: nome, cognome, matricola e dovrà poter essere in grado di gestire i profili dei

collaboratori che potranno variare in numero nel tempo.

OPERATIVITÀ

1. Carico delle ricette con frequenza 100 operazioni a settimana.

2. Validazione delle ricette non ancora visionate e inoltro al caporedattore (100/sett).

3. Ricerca ricette per tipologia, ingredienti, tempo di cottura e difficoltà (500/gg).

4. Ricerca ricette per calorie (500/gg).

5. Calcolo delle calorie di più ricette combinate scelte attraverso precedenti ricerche (100/gg).

6. Calcolo delle ricette validate da un singolo redattore con possibilità di stampa selettiva

(solo di alcuni campi) o dell’intero record.

COSA SI DEVE REALIZZARE

A. Definire lo schema concettuale e formalizzare tutti i documenti allegati

B. Definire lo schema logico e formalizzare tutti i documenti allegati.

C. Fornire una spiegazione circa le scelte fatte in termini di ristrutturazione schema E-R.

D. Definire un possibile schema fisico.

E. Implementare con linguaggio php le funzioni descritte nelle slide: “operatività”

distinguendo gli ambienti operativi per i diversi livelli: visitatore/autore, redattore,

capo-redattore.

Progettazione logica

OPERAZIONI

FREQUENZA DELLE OPERAZIONI

VOLUMI DEGLI ACCESSI

(IPOTESI DEI VOLUMI)

N Operazione Frequenza

1 Caricamento delle ricette^ 100 a settimana

2 Validazione delle ricette non ancora visionate e inoltro al

caporedattore

100 a settimana

3 Ricerca ricette per tipologia, ingredienti, tempo di cottura e difficoltà^ 500 al giorno

4 ricerca ricette per calorie^ 500 al giorno

5 Calcolo delle calorie di più ricette combinate scelte attraverso

precedenti ricerche

100 al giorno

6 Calcolo delle ricette validate da un singolo redattore con possibilità

di stampa selettiva (solo di alcuni campi) o dell’intero record.

Ipotizzo 10 al giorno

Operazione Tipo Frequenza

1 Batch 100 a settimana

2 Interativa 100 a settimana

3 Interativa 500 al giorno

4 Interativa 500 al giorno

5 Interativa 100 al giorno

6 Interativa 10 al giorno

Concetto Tipo Volume Note Autore Entita 1000 1000 visitatori con profilo di autore ricette Lettore Entita 5000 5000 visitatori con profilo di lettore ricette Condivisione Relazione 500 500 ricette originali idonee alla pubblicazione Caporedattore Entita 1 1 caporedattore Pubblicazione Relazione 100 100 ricette pubblicate (ipotesi 1 ogni 5) Lettura Relazione 500 500 Verifica delle ricette originali inserite da autori Collaboratore Entita 5 5 redattori (non il capo) Ingrediente Entita 100 ingredienti diversi tra di loro Lista Relazione 5000 10 ingredienti che formano 500 ricette Ricetta Entita 1000 ipotesi di 1000 ricette già pubblicate

ACCESSI PER OPERAZIONE 1

CARICO DELLE RICETTE CON FREQUENZA (100/SETT)

(SUPPONGO CHE SIA L’UTENTE AUTORE A CARICARE UNA NUOVA RICETTA PERCHÉ NON

CHIARO NEL TESTO)

ACCESSI PER OPERAZIONE 2

VALIDAZIONE DELLE RICETTE NON ANCORA VISIONATE E INOLTRO AL CAPOREDATTORE (100/

SETT).

ACCESSO PER OPERAZIONE 3

RICERCA RICETTE PER TIPOLOGIA, INGREDIENTI, TEMPO DI COTTURA E DIFFICOLTÀ (500/GG).

Concetto Tipo Accessi Tipo Autore Entità 1 Lettura Ricetta Entità 1 Scrittura Ingrediente Entità 10 Scrittura Lista Relazione 1 Scrittura Condivisione Relazione 1 Scrittura Concetto Tipo Accessi Tipo Collaboratore Entità 1 Lettura Lettura Relazione 1 Scrittura Ricetta Entità 1 Lettura Ingrediente Entità 10 Lettura Lista Relazione 1 Lettura Concetto Tipo Accessi Tipo Ricetta Entità 1 Lettura Lettore Entità 1 Lettura Ingrediente (^) Entità 10 Lettura Autore Entità 1 Lettura Lista Relazione 1 Lettura Condivisione Relazione 1 Lettura

ACCESSO PER OPERAZIONE 6

CALCOLO DELLE RICETTE VALIDATE DA UN SINGOLO REDATTORE CON POSSIBILITÀ DI STAMPA

SELETTIVA (SOLO DI

ALCUNI CAMPI) O DELL’INTERO RECORD.

Concetto Tipo Accessi Tipo Caporedattore Entità 1 Lettura Ricetta Entità 1 Lettura Ingrediente Entità 10 Lettura Lista Relazione 1 Lettura Pubblicazione Relazione 1 Lettura

RISTRUTTURAZIONE DELLO SCHEMA E/R

SCHEMA LOGICO

Collaboratore (Matricola, Nome, Cognome)

Caporedattore (Matricola, Nome, Cognome)

Ricetta (ID Ricetta, Nome, Preparazione, Tipologia, Tempo Cottura, Note, Porzioni, Difficoltà)

ingrediente (ID Ingrediente, Nome, Descrizione, Calorie)

Lettore (ID Utente, Nome, Cognome, Email, Privacy, Indirizzo Data Nascita, Tel fisso, Tel Mobile)

Autore (ID Utente, Nome, Cognome, Email, Privacy, Indirizzo Data Nascita, Tel fisso, Tel Mobile)

Lettura (Collaboratore, Ricetta, Idonea)

Pubblicazione (Caporedattore, Ricetta)

Lista (Ingrediente, Ricetta, Quantità)

Fruizione (Utente, Ricetta,)

Condivisione (Autore, Ricetta, Originale)

-- Struttura della tabella ricetta

CREATE TABLE ricetta (

docID int(11) NOT NULL,

titolo varchar(40) NOT NULL,

autore int(4) NOT NULL,

validate tinyint(1) NOT NULL,

calorie int(3) NOT NULL,

preparazione longtext NOT NULL,

cottura int(3) NOT NULL,

tipologia varchar(10) NOT NULL,

difficolta int(1) NOT NULL,

porzioni int(2) NOT NULL,

note longtext NOT NULL,

approvatore int(1) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- Struttura della tabella utente

CREATE TABLE utente (

userID int(11) NOT NULL,

login varchar(30) NOT NULL,

password char(64) NOT NULL,

session_key char(32) DEFAULT NULL,

name varchar(30) DEFAULT NULL,

mail varchar(30) DEFAULT NULL,

cognome varchar(40) NOT NULL,

tel varchar(10) NOT NULL,

cell varchar(10) NOT NULL,

indirizzo varchar(40) NOT NULL,

nascita date NOT NULL,

privacy tinyint(1) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Indici per le tabelle scaricate

-- Indici per le tabelle ingrediente

ALTER TABLE ingrediente

ADD PRIMARY KEY (id_ingrediente);

-- Indici per le tabelle redattore

ALTER TABLE redattore

ADD PRIMARY KEY (userID);

-- Indici per le tabelle ricetta

ALTER TABLE ricetta

ADD PRIMARY KEY (docID);

-- Indici per le tabelle utente

ALTER TABLE utente

ADD PRIMARY KEY (userID);

-- AUTO_INCREMENT per le tabelle scaricate

-- AUTO_INCREMENT per la tabella ingrediente

ALTER TABLE ingrediente

MODIFY id_ingrediente int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

-- AUTO_INCREMENT per la tabella redattore

ALTER TABLE redattore

MODIFY userID int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

-- AUTO_INCREMENT per la tabella ricetta

ALTER TABLE ricetta

MODIFY docID int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;

-- AUTO_INCREMENT per la tabella utente

ALTER TABLE utente

MODIFY userID int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;