soluzioni_quiz_basi (5).pdf

Document Details

FastHaiku

Uploaded by FastHaiku

Tags

database management computer science software engineering

Full Transcript

DBMS 1) Le basi di dati sono condivise e per questo  Permettono di ridurre ridondanze e inconsistenze  Danno maggiori garanzie sulla sicurezza dei dati  Rendono inutile la gestione della privatezza e delle autorizzazioni  Favoriscono l’efficienza dei programmi che le usan...

DBMS 1) Le basi di dati sono condivise e per questo  Permettono di ridurre ridondanze e inconsistenze  Danno maggiori garanzie sulla sicurezza dei dati  Rendono inutile la gestione della privatezza e delle autorizzazioni  Favoriscono l’efficienza dei programmi che le usano 2) Quali affermazioni sono vere?  L’indipendenza dei dati permette di scrivere programmi senza conoscere le strutture fisiche dei dati  L’indipendenza dei dati permette di formulare interrogazioni senza conoscere le strutture fisiche  L’indipendenza dei dati permette di modificare le strutture fisiche dei dati senza dover modificare i programmi che accedono alla base dei dati  L’indipendenza dei dati permette di scrivere programmi conoscendo solo lo schema concettuale della Base di Dati 3) Quali affermazioni sono vere?  La distinzione tra DDL e DML corrisponde alla distinzione tra schema e istanza  Le istruzioni DDL permettono permette di specificare la struttura della base di dati ma non di modificarla  Le istruzioni DML permettono di interrogare una base di dati ma non di modificarla  SQL include istruzioni DDL e DML  Le istruzioni DML permettono di interrogare la base di dati e di modificarla  Non esistono linguaggi che includono sia istruzioni DDL che DML 4) Quale delle seguenti informazioni sono vere?  Il DDL opera su schemi e il DML su istanze  Il DML opera su schemi e il DDL su istanze  Il DDL permette di creare la struttura del DB ma non di modificarla  Il DML permette di interrogare un DB ma non di modificare i dati 5) Quali affermazioni sono vere?  Il fatto che le basi di dati siano condivise rende necessaria la gestione della privatezza e delle autorizzazioni  Il fatto che le basi di dati siano condivise favorisce l’efficienza dei programmi che le usano  Il fatto che le basi di dati siano condivise permette di ridurre le ridondanze e inconsistenze  Il fatto che le basi di dati siano persistenti favorisce l’efficienza dei programmi che le usano  Il fatto che le basi di dati siano persistenti garantisce l’affidabilità 6) Quali sono le principali differenze tra un DBMS e un File System?  I FS prevedono forme più rudimentali di condivisione: “tutto o niente”  I FS permettono di gestire molti più dati dei DBMS  I DBMS estendono le funzionalità dei file System, fornendo più servizi ed in maniera integrata  I FS permettono di gestire la concorrenza meglio dei DBMS 7) Quale linguaggio si usa per definire lo schema e inserire i dati in un Data Base relazionale?  SQL è lo standard sia per definire lo schema che per inserire i dati  Si usa un qualsiasi linguaggio di programmazione per lo schema e SQL per i dati  Si usa un linguaggio specifico del DBMS per lo schema e SQL per i dati  SI usa SQL per lo schema e un linguaggio specifico del DBMS per i dati 8) Cosa NON si può fare se è garantita l’indipendenza fisica dei dati?  Scrivere programmi senza conoscere lo schema fisico  Modificare lo schema fisico senza modificare i programmi  Formulare interrogazioni senza conoscere lo schema fisico  Scrivere programmi conoscendo solo lo schema concettuale WEB 1) Architettura più comune per l’accesso ad un DBMS:  Stand-alone  Peer – to – peer con query in linguaggio di programmazione  Client – Server con query in linguaggio di programmazione  Client – Server con query da terminale 2) Chi esegue solitamente il codice nel quale sono immerse le query in un accesso a DBMS via web?  Il browser web  Il modulo principale del server web  Un motore di scripting integrato o richiamato dal web server  Il DBMS 3) Un web server eroga una web app che accede a un DBMS. Cosa restituisce solitamente il browser?  Oggetti java  Json, html, script  SQL  Binario 4) Quali tra queste affermazioni è vera?  I DBMS funzionano tutti solo in modalità client – server  JDBC permette di interfacciarsi a un DBMS da ogni linguaggio  Le mobile app hanno possibilità di interrogare un DBMS locale sullo smartphone  Tutti i linguaggi usano le stesse interfacce a DBMS 5) Qual è l’architettura più comune per l’accesso a un DBMS?  Client – server con query in linguaggio di programmazione  Client – server con query da terminale  Peer – to – peer con query in linguaggio di programmazione  Stand – alone MODELLO RELAZIONALE 1) Il modello relazionale è basato su  Valori  Liste  Puntatori  Grafi 2) Quale valore si inserisce per un attributo di una tupla se non lo conosciamo?  Nessuno  Il simbolo speciale “NULL”  Un valore non utilizzato del dominio dell’attributo  Il valore “0” 3) Sono ammessi valori nulli per gli attributi di una chiave?  No, per nessun tipo di chiave  No, se è una chiave primaria  Si, ma solo per la chiave primaria  Si per tutti i tipi di chiave 4) Quali tra queste è una relazione avendo D1(1, 7, 9) e D2(a, c)  {(7, c), (1, c)}  {(a, 7), (1, c)}  {(7, c), (7, c)}  {(1, b), (9, c)} 5) Quale affermazione è vera?  La relazione matematica ha struttura posizionale  La relazione matematica ha struttura non posizionale  La relazione può contenere due tuple uguali  L’ordine delle tuple in una relazione è importante (NO perché sono un insieme) MODELLO COCETTUALE 1) Che cardinalità avrà la partecipazione ad un’associazione usata per identificare un’entità?  [0, 1]  [1, 1]  Qualsiasi  [1, 1] oppure [1, N] 2) Se non indichiamo nulla quale cardinalità ha un attributo?  [0, 1]  [1, 1]  [0, N]  [1, N] 3) È possibile che una generalizzazione sia parziale e anche sovrapposta?  Si  No, se è parziale è sicuramente esclusiva  Si, tutte le parziali sono necessariamente sovrapposte  No, se è sovrapposta è sicuramente totale 4) Una occorrenza di un’associazione ternaria è:  Le associazioni non hanno occorrenze  Una tripla di occorrenze di entità, una per entità coinvolta  Un valore che rappresenta una particolare associazione  Una coppia di occorrenze per ciascuna coppia di entità 5) Come si distingue una associazione binaria uno – a – molti  Ha 1 e N come cardinalità massime per le due entità  Ha 1 e N come cardinalità minime per le due entità  Ha 1 come minimo e N come massimo in entrambe le cardinalità  Associa una entità con al più 1 occorrenza con una con tante PROGETTAZIONE LOGICA 1) È sempre possibile eliminare una generalizzazione parziale?  Sì, ma non accorpando entità genitore nelle figlie  No, solo se totale  Sì, ma solo se sovrapposta  Sì, accorpando entità genitore nelle figlie 2) Quando può essere opportuno partizionare un’entità?  Quando le operazioni accedono a diversi gruppi di attributi  Quando ha molti attributi  Quando è associata a troppe altre entità  Quando ha più di un identificatore 3) Cosa è opportuno fare in uno schema ER se scopriamo che una associazione è ridondante?  Va sempre eliminata se di tipo [1, 1]  Va eliminata  Va tenuta se conviene in base alle operazioni frequenti  Sempre meglio tenerla 4) Come si traduce un’associazione [1, 1] con una partecipazione opzionale ([0, 1])?  L’associazione viene fusa con entrambe le entità  L’associazione viene fusa con l’entità partecipazione [1, 1]  Si traduce con una sua corrispondente relazione  L’associazione viene fusa con l’entità partecipazione [0, 1] 5) Come si traduce da ER a relazione un attributo multi valore?  Si traduce come un normale attributo  Va prima eliminato trasformandolo in attributi separati  Si traduce con una relazione  Va prima eliminato trasformandolo in entità ALGEBRA RELAZIONALE 1) Quante tuple può avere il risultato di R1 JOIN_Cond R2? Scegli un'alternativa:  Tra 0 e Max(|R1|, |R2|)  Tra 0 e |R1| x |R2|  Esattamente |R1| x |R2|  Esattamente Max(|R1|, |R2|) 2) Quante tuple può avere il risultato di PROJ_C(R) se C è una chiave? Scegli un'alternativa:  Le stesse di R  Un numero minore o uguale a quelle di R  Un numero maggiore o uguale a quelle di R  Dipende dalle specifiche tuple 3) E' possibile usare solo SEL e PROJ per confrontare valori tra tuple della stessa tabella?  No, ma possiamo farlo usando anche UNION  No, e non si può fare con nessun operatore  No, ma possiamo farlo usando anche JOIN e REN  Sì, componendo opportunamente i due operatori 4) Che cosa è un equi-join?  E' sinonimo di "join esterno completo"  E' sinonimo di "join naturale"  Un JOIN in cui la condizione utilizza solo operatore '='  Un JOIN in cui la condizione utilizza operatori di confronto 5) Abbiamo due relazioni con schemi diversi. Quali operatori insiemistici possiamo applicare? Scegli un'alternativa:  Solo l'intersezione  Tutti  Nessuno, a meno di non rinominare gli attributi  Solo la differenza CALCOLO RELAZIONALE E DATALOG 1) E' possibile utilizzare quantificatori di variabili nella formula di una espressione del calcolo relazionale su tuple?  Sì, ma solo il quantificatore universale (FORALL)  No  Sì, ma solo il quantificatore esistenziale (EXISTS)  Sì, sia quantificatori esistenziali (EXISTS) che universali (FORALL) 2) E' possibile con algebra, calcolo o Datalog fare una interrogazione che calcoli la chiusura transitiva?  Sì, ma solo con calcolo senza restrizioni e con Datalog  Sì, ma solo con Datalog  Sì, con tutti questi linguaggi  No, non hanno abbastanza potere espressivo 3) Che cosa restituisce in output l'espressione del calcolo su tuple che inizia così { i.(Nome,Età) | Impiegati(i)... }  Due valori per Eta' e Nome  Una relazione con lo stesso schema di impiegati  Una relazione con due degli attributi della relazione Impiegati  Due relazioni di cui una è Impiegati e l'altra ha i soli attributi nome ed età SQL 1) In CREATE TABLE come indico che la coppia di attributi (A1 A2) è chiave primaria?  Aggiungendo PRIMARY KEY(A1,A2)  Aggiungendo PRIMARY KEY alla dichiarazione di A1 e di A2  Aggiungendo UNIQUE alla dichiarazione di A1 e di A2  Aggiungendo UNIQUE(A1,A2) 2) Vengono eliminati i duplicati nell'esecuzione di una SELECT in SQL?  Sì, tranne quando viene specificato SELECT DISTINCT  Sì, sempre  No, mai  Solo se viene specificato SELECT DISTINCT 3) Quale di queste query corrisponde all'espressione algebrica PROJ_(A1,A4)(R1 JOIN_(A1=A2) R2)?  SELECT A1, A4 FROM R1 JOIN R2 ON A1=A2  SELECT * FROM R1, R2 WHERE A1=A2 GROUP BY A1,A4  SELECT A1, A4 FROM R1 NATURAL JOIN R2  SELECT * FROM R1 JOIN R2 ON A1=A2 WHERE A1=A4 4) Quante colonne ha la tabella risultante da SELECT * FROM R1, R2 WHERE A1=A2  12 se R1 ne ha 3 e R2 ne ha 4?  7  4  2 5) Data la tabella R(A1,A2), genera errore la seguente query? SELECT A1, SUM(A2) FROM R WHERE A1C è tra le dipendenze funzionali?  No, perché la decomposizione ha perdita  Sì, visto che le due relazioni sono in 3NF  No, perchè la FD citata non è conservata  Si, perchè quella FD non si applica a R1 e R2 4) Per ogni coppia di tuple t1 e t2 con t1[VW]=t2[VW] osserviamo t1[AB]=t2[AB]. Cosa possiamo dire?  In quella relazione valgono le dipendenze funzionali VW --> AB e AB --> VW  In quella relazione vale la dipendenza funzionale AB --> VW  In quella relazione VW è una chiave  In quella relazione vale la dipendenza funzionale VW --> AB 5) Quali svantaggi ha un DB non normalizzato?  Le operazioni di JOIN potrebbero creare dati scorretti  Soltanto maggiore inefficienza  Impedisce alcuni tipi di interrogazioni  Presenta ridondanza nei dati e anomalie di aggiornamento

Use Quizgecko on...
Browser
Browser