[SIS-INF] (04 DI 05) [LM-39] SISTEMI ELAB. INFO.
![]() |
![]() |
![]() |
Title of test:![]() [SIS-INF] (04 DI 05) [LM-39] SISTEMI ELAB. INFO. Description: [SIS-INF] (04 DI 05) [LM-39] SISTEMI ELAB. INFO. |




New Comment |
---|
NO RECORDS |
Con riferimento ai linguaggi di interrogazione associati al modello relazionale, il data definition language (DDL): agisce sullo schema della base di dati. permette di modificare direttamente i dati. non riguarda lo schema della base di dati. e' un linguaggio di programmazione ad oggetti. Con riferimento ai linguaggi di interrogazione associati al modello relazionale, il data manipulation language (DML): agisce sullo schema della base di dati. permette di modificare direttamente i dati. non riguarda la modifica e l'inserimento dei dati. e' un linguaggio di programmazione ad oggetti. I linguaggi di interrogazione per basi di dati relazionali possono essere classificati in dichiarativi e procedurali. In particolare i linguaggi dichiarativi: specificano le modalita di generazione del risultato (indicano come). indicano tutti i passi da fare per raggiungere il risultato. dichiarano le proprieta del risultato senza fare riferimento alle procedure da eseguire per generare il risultato stesso (indicano che cosa). specificano come e stato raggiunto il risultato. L'algebra relazionale e un linguaggio formale di tipo algebrico i cui operandi sono relazioni. In particolare: e' un linguaggio dichiarativo. e' un linguaggio per i calcoli con numeri reali. e' un linguaggio misto, procedurale e dichiarativo. e' un linguaggio procedurale, in cui cioe le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione. Consideriamo l'operatore unione tra due istanze di relazione R e S. Affinche l'unione possa essere eseguita R e S devono avere: lo stesso numero di tuple. gli stessi nomi degli attributi. lo stesso numero di attributi. un numero di attributi diverso. Consideriamo l'operatore intersezione tra due istanze di relazione R e S. Il risultato contiene: tutte le tuple presenti in R oppure in S. la concatenazione delle tuple r che appartengono a R e s appartenenti a S. tutte le tuple presenti in R, ma non in S. tutte le tuple (prese una sola volta) presenti contemporaneamente in R e S. La differenza tra due relazioni R e S e indicata con R - S e contiene tutte le tuple che sono presenti in R ma che non esistono in S. Inoltre: R e S devono essere compatibili rispetto all'unione. R e S non devono essere compatibili rispetto all'unione. R - S contiene la concatenazione delle tuple r che appartengono a R e s appartenenti a S. la differenza e un operatore unario. Si consideri il prodotto cartesiano. Se due relazioni hanno degli attributi con nomi identici, allora: tali attributi sono individuabili dal numero di riga della tupla. per prassi, i nomi degli attributi possono essere indicati tra parentesi: possiamo riferirci a loro per mezzo della posizione. non e possibile eseguire il prodotto cartesiano. la soluzione ottimale e lasciare i nomi originali. Consideriamo l'operatore di ridenominazione. Esso: e' un operatore binario. varia i valori delle tuple. non cambia lo schema. E un operatore unario. L'operatore di ridenominazione indicato con la lettera greca ρ ("ro"): cambia lo schema del risultato, lasciando invariati i valori delle tuple. varia i valori delle tuple. non cambia lo schema. E un operatore binario. L'operatore di selezione σ consente di selezionare un sottoinsieme delle tuple di una relazione r, applicando a ciascuna di esse una data condizione. L'istanza di relazione risultante dalla selezione: contiene le colonne di r che rendono vera tale condizione. contiene le tuple di r che rendono falsa tale condizione. contiene le colonne di r che rendono falsa tale condizione. contiene le tuple di r che rendono vera tale condizione. Si consideri l'operatore di selezione. Esso e: un operatore che permette di manipolare i dati di due relazioni. un operatore unario che permette di manipolare i dati di una singola relazione. un operatore binario che permette di manipolare i dati di due colonne. un operatore binario che permette di manipolare i dati di una singola colonna. La condizione di selezione si applica a ciascuna tupla dell'istanza di relazione: singolarmente, quindi non puo coinvolgere piu di una tupla. coinvolgendo piu di una tupla. coinvolgendo tutte le tuple dell'istanza di relazione. coinvolgendo due colonne. L'operatore di proiezione "proietta" le colonne di una relazione. Il simbolo è π al cui pedice viene indicata la lista degli attributi che costituiscono la nuova relazione. Tale lista: E' un sottoinsieme dei valori degli attributi della relazione originale. identifica le tuple. E' un sottoinsieme degli attributi della relazione originale. contiene tutti gli attributi dell'istanza di partenza. Si consideri l'operatore proiezione. I campi di interesse: contengono sempre la chiave primaria. sono indicati nella lista degli attributi, mentre gli altri campi sono "proiettati fuori". coinvolgono due relazioni diverse. non sono presenti nella istanza risultante. Il risultato dell'operazione di proiezione: contiene al piu tante ennuple quante ne ha l'operando. contiene sempre lo stesso numero di ennuple. contiene un numero di tuple maggiore dell'operando. ha cardinalita maggiore dell'operando. Si consideri l'operatore proiezione. Se la lista di attributi e una superchiave della relazione r, allora, la relazione risultante: ha un numero di tuple maggiore di r. ha un numero di tuple minore di r. ha lo stesso numero di colonne presenti in r. ha lo stesso numero di tuple presenti in r. Si consideri una lista di attributi dell'operatore proiezione che sia una superchiave di una relazione r, allora, la relazione risultante: ha la stessa cardinalita di r. ha sempre lo stesso grado di r. ha sempre lo stesso numero di colonne presenti in r. ha un numero di righe minore di r. Se si combinano selezione e proiezione possono essere estratte interessanti informazioni: da due istanze di relazione. da due tabelle. da una relazione, applicando sempre prima la proiezione e poi la selezione. da una sola relazione. La selezione e la proiezione: combinate, correlano informazioni presenti in relazioni diverse. sono operatori binari. permettono di ottenere informazioni importanti da una sola relazione. permettono di ottenere informazioni importanti da piu relazioni. Si consideri l'operatore join naturale dell'algebra relazionale tra due istanze di relazione R1 e R2, il risultato R e una relazione che: ha sempre lo stesso numero di attributi di R1. ha sempre lo stesso grado di R1. esegue anche un filtraggio, perche le tuple che non hanno un dato legame semantico con l'altra relazione non vengono considerate. e un risultato poco significativo rispetto a gli operatori di base. Si applichi l'operatore join naturale dell'algebra relazionale a due relazioni R1 e R2. Il risultato contiene: solo gli attributi di R1 che sono anche in R2. tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con nome diverso il valore e uguale. tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con stesso nome, il valore e diverso. tutte le coppie formate da una tupla di R1 e da una tupla di R2 per cui, per gli attributi con stesso nome, il valore e uguale. Il join naturale gode delle seguenti proprieta: e monadico. e commutativo, ma non associativo. e associativo, ma non commutativo. e un operatore binario, commutativo eassociativo. Si consideri l'operatore join naturale dell'algebra relazionale applicato a due relazioni R1 e R2 non vuote. Se R1 e R2 hanno attributi con lo stesso nome, ma i valori sono tutti diversi, il risultato del join naturale: è vuoto. ha cardinalita pari a R1. ha cardinalita pari a R2. ha lo stesso numero di ennuple del prodotto cartesiano tra R1 e R2. La condizione nel theta-join deve essere soddisfatta: tra attributi di relazioni diverse che non hanno lo stesso nome. tra attributi della stessa relazione che non hanno lo stesso nome. tra attributi di relazioni diverse di tipo (string, real, boolean) diverso. tra attributi della stessa relazione di tipo (string, real, boolean) diverso. Il theta-join genera le coppie di una tupla di R1 e di una tupla di R2 che soddisfano una certa condizione. Esso e un operatore: monadico. binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema lo schema di R2. binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema lo schema di R1. binario, date due relazioni R1 e R2 genera una nuova relazione R3 che ha come schema tutti gli attributi di R1 e tutti quelli di R2. Si consideri il theta-join. Esiste un caso particolare dove l'operatore di confronto 'theta' e: l'operatore diverso. l'operatore uguale = e si chiama equi-join. un operatore che opera su domini diversi. confronta domini della stessa istanza di relazione. L'operazione (R1'semi-join' R2) crea un legame tra le tuple della relazione R1 e della relazione R2 e: restituisce nel risultato lo schema di R2. restituisce nel risultato le tuple di R2. restituisce nel risultato lo schema di R1. restituisce nel risultato lo schema di R1 e di R2. L'operazione (R1 'semi-join' R2) restituisce l'informazione rilevante della prima relazione del join. In particolare: sullo schema del join viene fatta una proiezione su tutti gli attributi dello schema di R2. sullo schema del join viene fatta una proiezione su tutti gli attributi dello schema di R1. nel caso ci siano duplicati, questi si mantengono. il risultato contiene tutte le tuple di R2 per cui e vera una condizione cndizione. Il semi-join tra due istanze di relazione R1 e R2 (R1 'semi-join' R2): non gode della proprieta commutativa. gode della proprieta commutativa. è un operatore monadico. genera una relazione con lo stesso stesso schema di R2. L'operazione "R1 left outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui e vera una data condizione c e inoltre: una tupla di R2 che non e correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1. una tupla di R1 che non e correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R2. nessuna altra tupla. le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi. L'operazione "R1 right outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui e vera una data condizione c e inoltre: una tupla di R2 che non e correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1. una tupla di R1 che non e correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R2. nessuna altra tupla. le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi. L'operazione "R1 full outer-join R2" genera le coppie di tuple formate da una tupla di R1 e una di R2 per cui e vera una data condizione c e inoltre: una tupla di R2 che non e correlata mediante la condizione c a tuple di R1 completata mediante valori NULL per tutti gli attributi di R1. una tupla di R1 che non e correlata mediante la condizione c a tuple di R2 completata mediante valori NULL per tutti gli attributi di R1. nessuna altra tupla. le tuple di R1 e R2 che non sono correlate mediante la condizione c riempite con valori NULL per i rispettivi attributi. Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso seleziona: le tuple di R1 e R2 legate semanticamente da una condizione c. gli attributi di R2. le tuple di R1 semanticamente non legate da una condizione c alle tuple di R2. le tuple di R1 e R2 che contengono valori NULL. Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, il suo simbolo e: un bow-tie negato aperto a destra. un bow-tie. un bow-tie aperto a destra. un bow-tie aperto a sinistra. Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso: gode della proprieta commutativa. gode della proprieta associativa. gode delle proprieta commutativa e associativa. non gode ne della proprieta commutativa ne della proprieta associativa. Si consideri l'operatore anti-join tra due istanze di relazione R1 e R2, esso: seleziona le tuple di R1 e di R2 che contengono valori NULL. gode delle proprietà commutativa e associativa. gode della proprietà commutativa. semplifica alcune operazioni, che richiederebbero altrimenti più operatori (es. differenza, proiezione, join naturale). Si supponga di voler trovare i giocatori presenti nella istanza di relazione R1 di Giocatori Presenti, che hanno giocato in tutte le gare del campionato, riportate nella istanza di relazione R2 delle Gare Giocate. Il problema si risolve facilmente ricorrendo a: l'operatore di divisione. l'operatore anti-join. l'operatore full outer-join. l'operatore proiezione. Si consideri l'operatore divisione tra due istanze di relazione R1 e R2, esso: gode della proprieta commutativa. gode della proprieta associativa. non gode delle proprieta commutativa e associativa. gode delle proprieta commutativa e associativa. Si consideri l'operatore divisione tra due istanze di relazione R1 e R2, esso e un operatore derivato cioe: si basa sul concetto di derivata di funzione. E esprimibile tramite gli altri operatori dell'algebra relazionale. E un operatore di base dell'algebra relazionale. E un operatore unario. Lo Structured Query Language (SQL) e un linguaggio strutturato di interrogazione: interamente orientato agli oggetti. interamente imperativo. completamente procedurale. dichiarativo. La modalita di invio dei dati al DBMS tramite SQL puo essere: esclusivamente interattiva. esclusivamente compilata. sia interattiva che compilata. esclusivamente batch. Il linguaggio SQL viene addottato come standard per la prima volta: nel 1974 dai laboratori IBM Research. nel 1986 dall'ANSI. nel 1975 con il nome SEQUEL-XRM. nel 1977 con il nome SEQUEL/2. Il Data Definition Language (DDL) e una parte del linguaggio SQL che permette di: creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB. leggere e modificare i valori delle tabelle di una base di dati. dare a un utente la possibilita o il privilegio di vedere alcune parti delle tabelle. definire le strutture dati accessorie per recuperare efficientemente i dati. Il Data Manipulation Language (DML) e il linguaggio di manipolazione dei dati, esso consente: di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB. di leggere e modificare i valori delle tabelle di una base di dati. di dare a un utente la possibilita o il privilegio di vedere alcune parti delle tabelle. di definire le strutture dati accessorie per recuperare efficientemente i dati. Il Data Control Language (DCL) consente: di creare, modificare o eliminare gli oggetti in un database ovvero agire sullo schema del DB. di leggere e modificare i valori delle tabelle di una base di dati. di dare a un utente la possibilita o il privilegio di vedere alcune parti delle tabelle. di definire le strutture dati accessorie per recuperare efficientemente i dati. Le viste sono tabelle derivate da altre tabelle della base di dati. La creazione di una vista avviene con l'istruzione: ALTER VIEW. DROP VIEW. CREATE VIEW. COMMIT. Si consideri la forma base di una interrogazione SQL. Essa deve contenere necessariamente: la clausola DISTINCT. la clausola WHERE. la clausola FROM, anche da sola. una istruzione SELECT e una clausola FROM. L'istruzione SELECT corrisponde all'operatore dell'algebra relazionale: join. selezione. proiezione, ma non elimina eventuali duplicati. divisione. L'istruzione SELECT DISTINCT corrisponde all'operatore dell'algebra relazionale: join. proiezione. selezione. divisione. |