Anteprima
Vedrai una selezione di 8 pagine su 32
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 1 Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 2
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 6
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 11
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 16
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 21
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 26
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Esercizi di appelli svolti di Basi di dati e Laboratorio web Pag. 31
1 su 32
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

ESERCIZIO OPERAZIONI

FOR EACH ROW WHEN NEW.nome = "viti" AND NEW.scorta < 50 INSERT INTO Ordini (mat, forn, numero) SELECT G.codp, F.codf, 500 FROM Grezzo AS G, Qualità AS Q, Fornitore AS F, Produce AS P WHERE Q.forn = F.codf AND P.forn = F.codf AND P.parte = G.codp AND G.nome ="viti" AND Q.giudizio = (SELECT MAX (Q1.giudizio) FROM Qualita as Q1, Produce AS P1, Grezzo AS G1 WHERE Q1.forn = P1.forn AND P1.parte = G1.codp AND G1.nome = "viti") LIMIT 11. il costo di una scrittura è di 2 volte quello di una lettura, 2. vi sono 10000 libri e 30 editori, 3. per ogni editore vi sono 10 ordini in media

Le operazioni di interesse sono

op1: costo globale degli ordini per un certo editore, eseguita 40 volte al giorno

op2: inserire ordine ad un certo editore, eseguita 1 volta all'ora

op3: cancellare ordine ad un certo editore eseguita 8 volte al giorno

Indicare se la ridondanza è conveniente dati i volumi e le operazioni descritte

Tavola dei

Lettura CostoOp = (frequenza operazione) * peso operazione (interattiva o batch) * (α * numero di accessi in scrittura + numero accessi in lettura) α è il costo della scrittura che costa 2. Il peso dell'operazione invece ha valore 1 sempre di solito Costo Op2 senza Rid = 1 * 1 * (2 * 1 + 2) = 1 * 1 * 4 = 4 OP 3 – cancellare ordine ad un certo editore, eseguita 1 volta al giorno Tavola Accessi Accedo alla tabella Ordine in scrittura una volta per cancellare un ordine Ordine -> 1 accesso in Scrittura Costo Op3 senza Rid = 1 * 1 * (2 * 1 + 0) = 1 * 1 * 2 = 2 OP 4 – modificare ordine ad un certo editore, eseguita 10 volte al giorno Tavola Accessi Accedo alla tabella Ordine in lettura una volta per leggere l'ordine, poi accedo a Ordine in scrittura una volta per modificare l'ordine Ordine -> 1 accesso in Lettura Ordine -> 1 accesso in Scrittura Costo Op4 senza Rid = 10 * 1 * (2 * 1 + 1) = 10 * 1 * 3 = 30 OP 5 – visualizzare tutti gli ordini di un certo editore, eseguita 5 volte al giorno Tavola Accessi Accedo alla tabella Ordine in lettura 5 volte per leggere gli ordini Ordine -> 5 accessi in Lettura Costo Op5 senza Rid = 5 * 1 * (2 * 0 + 5) = 5 * 1 * 5 = 25

scritturaCostoOp = (frequenza operazione) * peso operazione (interattiva o batch) * (α * numero di accessi in scrittura + numero accessi in lettura)

Costo Op2 senza Rid = 24 * 1 * (2 * 1 + 1) = 24 * 3 = 72

OP 3 –cancellare ordine ad un certo editore eseguita 8 volte al giorno

Tavola Accessi

Accedo alla tabella Editore in lettura una volta per leggere il codice editore, accedo alla tabella Ordine in lettura una volta per trovare il record che voglio cancellare e in scrittura una volta per cancellare un ordine

Editore -> 1 accesso in lettura

Ordine -> 1 accesso in lettura

Ordine -> 1 accesso in scrittura

CostoOp = (frequenza operazione) * peso operazione (interattiva o batch) * (α * numero di accessi in scrittura + numero accessi in lettura)

Costo Op3 senza Rid = 8 * 1 * (2 * 1 + 2) = 8 * 4 = 32

Tot costo schema senza rid = 440 + 72 + 32 = 544

Adesso vediamo quanta memoria mi occupa lo schema senza ridondanze. Supponiamo quanti caratteri e quindi bit può contenere ogni

attributo dell'entità Libro: Cod. inventario: sarà un integer, quindi 4 bytes Tipo: sarà un varchar, lungo sui 25 o 30 caratteri, sarà 30 bytes Autore: sarà un varchar, lungo sui 50 caratteri, sarà 50 bytes Scaffale: sarà un integer, quindi 4 bytes Adesso sommo questi valori e moltiplico il risultato per il numero di record contenuti in Libro, ovvero 50000. Libro = (4+30+50+4) * 50000 = 4.400.000 bytes Supponiamo quanti caratteri e quindi bit può contenere ogni campo attributo dell'entità Editore: Codice: sarà un integer, quindi 4 bytes Paese: sarà un varchar, lungo sui 25 o 30 caratteri, sarà 30 bytes Indirizzo: sarà un varchar, lungo sui 50 caratteri, sarà 50 bytes Adesso sommo questi valori e moltiplico il risultato per il numero di record contenuti in Editore, ovvero 100. Editore = (4+30+50) * 100 = 8400 bytes Supponiamo quanti caratteri e quindi bit può contenere ogni campoL'attributo della relazione OrdineData sarà un datetime, quindi 8 bytes. Il costo sarà uno smallint (arriva max a 32000), quindi 2 bytes. Adesso sommo questi valori e moltiplico il risultato per il numero di record contenuti in Ordine, ovvero 2000. Ordine = (8+2) * 2000 = 20000 bytes La memoria totale occupata dallo schema senza ridondanze è quindi 4.400.000 + 8400 + 20000 = 4.428.400 bytes Schema CON ridondanza OP 1 – costo globale degli ordini per un certo editore, eseguita 40 volte al giorno Editore -> 1 accesso in Lettura Costo Op1 CON Rid = 40 * 1 * (2 * 0 + 1) = 40 *1 * 1 = 40 OP 2 – inserire ordine ad un certo editore, eseguita 1 volta l’ora Tavola Accessi Accedo alla tabella Editore in lettura una volta per leggere il codice editore e il costo complessivo, poi accedo a Ordine in scrittura una volta per inserire un ordine e in Editore una volta in scrittura per aggiornare il costo complessivo. Editore -> 1 accesso in Lettura Editore -> 1 accesso in

ScritturaOrdine -> 1 accesso in ScritturaCosto Op2 CON Rid = 24 * 1 * (2 * 2 + 1) = 24 * 5 = 120OP 3 – cancellare ordine ad un certo editore eseguita 8 volte al giorno

Tavola Accessi

Accedo alla tabella Editore in lettura una volta per leggere il codice editore e il costo complessivo, accedo alla tabella Ordine in lettura una volta per trovare il record che voglio cancellare e in scrittura una volta per cancellare un ordine. Infine accedo una volta in scrittura in Editore per modificare il costo complessivo.

Editore -> 1 accesso in lettura

Editore -> 1 accesso in scrittura

Ordine -> 1 accesso in lettura

Ordine -> 1 accesso in scrittura

Costo Op3 CON Rid = 8 * 1 * (2 * 2 + 2) = 8 * 6 = 48

Tot costo schema CON rid = 40 + 120 + 48 = 208

Adesso vediamo quanta memoria mi occupa lo schema CON ridondanze.

Supponiamo quanti caratteri e quindi bit può contenere ogni campo attributo dell'entità Libro.

Non avendo attributi in più rispetto all'altro schema,

ovvero 1000. Editore = (4+30+50+2) * 1000 = 86.000 bytes Quindi, la dimensione totale occupata dai record di Libro e Editore sarà: Dimensione totale = Libro + Editore = 4.400.000 + 86.000 = 4.486.000 bytesconviene solo dello 0,1% in termini di memoria occupata. Quindi, considerando sia i costi delle operazioni che la memoria occupata, lo schema senza ridondanze risulta essere più conveniente.Il testo formattato con i tag HTML è il seguente:

Costa lo 0,1% in meno rispetto a quello con, in termini di memoria. Concludiamo che lo schema CON ridondanza è il più conveniente, perché in termini di memoria rimane pressoché uguale, mentre in termini di operazioni fa risparmiare molto.

Si consideri lo schema:

  • Volo(data partenza, data arrivo, codiceaeroportopar, codiceaeroportoarr, codcomandante, orevolo)
  • Piloti(codpilota, nome, età, nazione)
  • Nazioni(codiceaereoporto, nazione)

Sapendo che le ore di volo dipendono unicamente dagli aereoporti di partenza e di arrivo, evidenziare le dipendenze funzionali presenti nello schema e trasformarlo in terza forma normale.

Si hanno le seguenti dipendenze funzionali:

  • codice viaggio -> autista
  • autista -> nome_autista

Dire se la relazione è in terza forma normale ed eventualmente decomporla in modo da soddisfarla.

ESERCIZIO DIPENDENZE questo es prendilo così, un po' con le pinze, non mi torna granché.

perché il prof dà questi tre attributi codice viaggio, autista e nome_autista che nelle tabelle fornite non ci sono. Possiamo solo intuire che nomeautista sia il nome del pilota e autista sia il codicepilota, ma codiceviaggio, che potrebbe essere codicevolo, non esiste da nessuna parte. Per cui l'ho inserito io. Anche le tabelle nuove che escono alla fine non mi convincono molto.

Sapendo che le ore di volo dipendono unicamente dagli aeroporti di partenza e di arrivo, per cui:

Codiceaeroportopar, codiceaeroportoarr -> orevolo

Codicevolo -> codpilota (corrisponde a codice viaggio -> autista)

Mentre la dip funz autista -> nomeautista la troviamo già nella tab Piloti, per cui non la ripetiamo.

Tab Volo

Datapartenza, codiceaeroportopar, codcomandante -> dataarrivo, codiceaeroportoarr, orevolo

Tab Piloti

Codpilota -> nome, età, nazione

Tab Nazioni

Codiceaeroporto -> nazione

STEP 1A - semplifico parte dx

Codiceaeroportopar, codiceaeroportoarr

  • orevoloCodicevolo -> codpilotaTab VoloDatapartenza, codiceaeroportopar, codcomandante -> dataarrivoDatapartenza, codiceaeroportopar, codcomandante -> CodiceaeroportoarrDatapartenza, codiceaeroportopar, codcomandante -> orevoloTab PilotiCodpilota -> nomeCodpilota -> etàCodpilota -> nazioneTab NazioniCodiceaeroporto -> nazione
  • Step 1B – semplifico parte sx (ok resta uguale a prima)
  • STEP 1C – resta uguale
  • Step 2F1= { Codiceaeroportopar, codiceaeroportoarr -> orevolo }
  • Step 2F2 = { Codicevolo -> codpilota}
  • Step 2F3 = { Datapartenza, codiceaeroportopar, codcomandante -> dataarrivo,Datapartenza, codiceaeroportopar, codcomandante -> Codiceaeroportoarr,Datapartenza, codiceaeroportopar, codcomandante -> orevolo }
  • Step 2F4 = { Codpilota -> nome, Codpilota -> età, Codpilota -> nazione}
  • Tab NazioniCodiceaeroporto -> nazione
Dettagli
A.A. 2021-2022
32 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher mariateresa200127 di informazioni apprese con la frequenza delle lezioni di Basi di dati e Laboratorio web 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 Pisa o del prof Baiardi Fabrizio.