diff --git a/compitino/modello_compitino/piani_di_accesso.tex b/compitino/modello_compitino/piani_di_accesso.tex index 3ae00b9..41b9066 100644 --- a/compitino/modello_compitino/piani_di_accesso.tex +++ b/compitino/modello_compitino/piani_di_accesso.tex @@ -3,7 +3,7 @@ \paragraph{Piano di accesso logico della query a} \begin{center} - \begin{forest} + \begin{forest}, baseline, qtree [{$\pi^{b}$ R.C, S.D} [{$\bowtie$ R.E = S.F} [{$\sigma$ C $>=$ 10} @@ -17,7 +17,7 @@ \paragraph{Piano di accesso fisico della query a senza indici} \begin{center} - \begin{forest} + \begin{forest}, baseline, qtree [{Project(\{C, D\})} [{SortMerge(R.E = S.F)} [{Sort(\{E\})} diff --git a/compitino/modello_compitino/queries.tex b/compitino/modello_compitino/queries.tex index 6a98470..9023f43 100644 --- a/compitino/modello_compitino/queries.tex +++ b/compitino/modello_compitino/queries.tex @@ -3,8 +3,9 @@ \begin{enumerate}[label=\alph*.] \item Uso di proiezione, join e restrizione - Per ogni record di R con valore di C maggiore o uguale a 10 e che ha un valore di E uguale a un valore di F nella tabella S, riportare R.C e S.D. -\begin{lstlisting}[style=SQLu] + Per ogni record di R con valore di C maggiore o uguale a 10 e che ha un + valore di E uguale a un valore di F nella tabella S, riportare R.C e S.D. +\begin{lstlisting}[style=SQLu,escapechar=@] SELECT R.C, S.D FROM Tabella1 R JOIN Tabella2 S ON R.E = S.F diff --git a/compitino/modello_compitino/schema_logico.tex b/compitino/modello_compitino/schema_logico.tex index 2325a36..73a4876 100644 --- a/compitino/modello_compitino/schema_logico.tex +++ b/compitino/modello_compitino/schema_logico.tex @@ -2,8 +2,8 @@ \textbf{Schema logico relazionale in formato testuale} \begin{lstlisting}[style=SQLu,escapechar=@] -Tabella(@\underline{ChiavePrimaria}@, B, C, D) -AltraTabella(@\underline{ChiavePrimariaEdEsterna*}@, E) +Tabella(_ChiavePrimaria_, B, C, D) +AltraTabella(_ChiavePrimariaEdEsterna*_, E) @\textellipsis@ \end{lstlisting} @@ -14,8 +14,14 @@ AltraTabella(@\underline{ChiavePrimariaEdEsterna*}@, E) \end{itemize} -Uno schema R, avente insieme di attributi T e insieme di dipendenze funzionali F, (\lstinline{R}) è +Uno schema R, avente insieme di attributi T e insieme di dipendenze funzionali F, \lstinline{R}, è in forma normale di Boyce-Codd (BCNF) se ogni dipendenza funzionale della chiusura di F o è banale o ha come determinante una superchiave di T. Esiste un teorema che semplifica il calcolo, asserendo che se la condizione di cui sopra vale per una qualsiasi copertura di F allora vale per l’intera chiusura di F. + +Nella copertura di F che ho descritto sopra (che peraltro è canonica: ogni dipendenza ha un +solo attributo come determinato, nessuna dipendenza è ridondante e non sono presenti +attributi estranei, in quanto ogni determinante è chiave), ogni dipendenza funzionale ha +come determinante o la chiave primaria o una chiave naturale che non è stata scelta come +primaria, in ogni caso una superchiave. \underline{La BCNF è pertanto rispettata}. diff --git a/compitino/modello_compitino/source_code.tex b/compitino/modello_compitino/source_code.tex new file mode 100644 index 0000000..c5be7d9 --- /dev/null +++ b/compitino/modello_compitino/source_code.tex @@ -0,0 +1,5 @@ +% !TEX root = ../main.tex + +\begin{center} + Codice sorgente e test: \href{https://gogs.davte.it/Davte/basi_di_dati}{https://gogs.davte.it/Davte/basi\_di\_dati} +\end{center}