diff --git a/compitino/main.tex b/compitino/main.tex index 06e1768..4ca9dd3 100644 --- a/compitino/main.tex +++ b/compitino/main.tex @@ -29,8 +29,8 @@ top=30mm, \selectlanguage{italian} \setcounter{section}{-1} -\newcommand{\folder}{primo_compitino} -%\newcommand{\folder}{secondo_compitino} +%\newcommand{\folder}{primo_compitino} +\newcommand{\folder}{secondo_compitino} % First page information diff --git a/compitino/secondo_compitino/dominio.tex b/compitino/secondo_compitino/dominio.tex new file mode 100644 index 0000000..17aef8d --- /dev/null +++ b/compitino/secondo_compitino/dominio.tex @@ -0,0 +1,5 @@ +% !TEX root = ../main.tex + +Descrizione del dominio. + +Nominare le classi di interesse, specificarne gli attributi e indicarne le relazioni con le altre classi. \ No newline at end of file diff --git a/compitino/secondo_compitino/piani_di_accesso.tex b/compitino/secondo_compitino/piani_di_accesso.tex new file mode 100644 index 0000000..3ae00b9 --- /dev/null +++ b/compitino/secondo_compitino/piani_di_accesso.tex @@ -0,0 +1,51 @@ +% !TEX root = ../main.tex +\subsection{Query a} + +\paragraph{Piano di accesso logico della query a} +\begin{center} + \begin{forest} + [{$\pi^{b}$ R.C, S.D} + [{$\bowtie$ R.E = S.F} + [{$\sigma$ C $>=$ 10} + [Tabella1 R] + ] + [Tabella2 S] + ] + ] + \end{forest} +\end{center} + +\paragraph{Piano di accesso fisico della query a senza indici} +\begin{center} + \begin{forest} + [{Project(\{C, D\})} + [{SortMerge(R.E = S.F)} + [{Sort(\{E\})} + [{Project(\{E, C\})} + [{Filter(C $>=$ 10)} + [{TableScan(Tabella R)}] + ] + ] + ] + [{Sort(\{F\})} + [{Project(\{C, F\})} + [{TableScan(Tabella S)}] + ] + ] + ] + ] + \end{forest} +\end{center} + +\paragraph{Piano di accesso fisico della query a con due indici} +\begin{center} + \begin{forest}, baseline, qtree + [{Project(\{C, D\})} + [{IndexNestedLoop(R.E = S.F)} + [{IndexFilter(Tabella R,\\ IndRC, C $>=$ 10)}] + [{IndexFilter(Tabella S,\\IndSF, S.F = R.E)}] + ] + ] + \end{forest} +\end{center} +Indici necessari: \texttt{IndRC} (indice della tabella R sull’attributo C) e \texttt{IndSF} (indice della tabella S sull'attributo F). \ No newline at end of file diff --git a/compitino/secondo_compitino/queries.tex b/compitino/secondo_compitino/queries.tex new file mode 100644 index 0000000..6a98470 --- /dev/null +++ b/compitino/secondo_compitino/queries.tex @@ -0,0 +1,14 @@ +% !TEX root = ../main.tex + +\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] +SELECT R.C, S.D +FROM Tabella1 R +JOIN Tabella2 S ON R.E = S.F +WHERE R.C >= 10 +\end{lstlisting} +\end{enumerate} +\clearpage \ No newline at end of file diff --git a/compitino/secondo_compitino/schema_concettuale.pdf b/compitino/secondo_compitino/schema_concettuale.pdf new file mode 100644 index 0000000..9ddd060 Binary files /dev/null and b/compitino/secondo_compitino/schema_concettuale.pdf differ diff --git a/compitino/secondo_compitino/schema_concettuale.tex b/compitino/secondo_compitino/schema_concettuale.tex new file mode 100644 index 0000000..d4ee4dc --- /dev/null +++ b/compitino/secondo_compitino/schema_concettuale.tex @@ -0,0 +1,3 @@ +% !TEX root = ../main.tex + +Vincoli non catturato graficamente: \textellipsis \ No newline at end of file diff --git a/compitino/secondo_compitino/schema_logico.pdf b/compitino/secondo_compitino/schema_logico.pdf new file mode 100644 index 0000000..8a0b33d Binary files /dev/null and b/compitino/secondo_compitino/schema_logico.pdf differ diff --git a/compitino/secondo_compitino/schema_logico.tex b/compitino/secondo_compitino/schema_logico.tex new file mode 100644 index 0000000..2325a36 --- /dev/null +++ b/compitino/secondo_compitino/schema_logico.tex @@ -0,0 +1,21 @@ +% !TEX root = ../main.tex + +\textbf{Schema logico relazionale in formato testuale} +\begin{lstlisting}[style=SQLu,escapechar=@] +Tabella(@\underline{ChiavePrimaria}@, B, C, D) +AltraTabella(@\underline{ChiavePrimariaEdEsterna*}@, E) +@\textellipsis@ +\end{lstlisting} + +\paragraph{Dipendenze funzionali} +\begin{itemize} +\item Per ogni tabella la chiave primaria (sottolineata) determina ciascuno degli attributi della tabella +\item Altre eventuali dipendenze +\end{itemize} + + +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. diff --git a/compitino/secondo_compitino/testo.tex b/compitino/secondo_compitino/testo.tex new file mode 100644 index 0000000..d1fbd69 --- /dev/null +++ b/compitino/secondo_compitino/testo.tex @@ -0,0 +1,3 @@ +% !TEX root = ../main.tex + +Il testo viene assegnato dal Professore. \ No newline at end of file