2020-05-20 12:33:44 +02:00

39 lines
2.7 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

% !TEX root = ../main.tex
\textbf{Schema logico relazionale in formato testuale}
\begin{lstlisting}[style=SQLu,escapechar=@]
Giornali(@\underline{IdEdizione*}@, ComuneStampa)
SitiWeb(@\underline{IdEdizione*}@, Url)
Edizioni(@\underline{IdEdizione}@, Titolo, Direttore, AnnoFondazione)
Articoli(@\underline{IdArticolo}@, IdEdizione*, Titolo, Sottotitolo,
DataPubblicazione, Premium)
Visite(@\underline{IdVisita}@, IdArticolo*, TempoLettura, IdUtente*)
Utenti(@\underline{IdUtente}@, Nome, Cognome, Indirizzo)
Abbonamenti(@\underline{IdUtente*, IdEdizione*, DataSottoscrizione}@, DataScadenza)
ArticoliGiornalisti(@\underline{IdArticolo*, IdGiornalista*}@)
Giornalisti(@\underline{IdGiornalista}@, NumeroAlbo, Cognome, Nome)
GiornalistiDipendenti(@\underline{IdGiornalista*}@, CodiceInps)
GiornalistiFreeLance(@\underline{IdGiornalista*}@, PartitaIva)
\end{lstlisting}
\paragraph{Dipendenze funzionali}
\begin{itemize}
\item Per ogni tabella la chiave primaria (sottolineata) determina ciascuno degli attributi della tabella ($\{IdEdizione \to Titolo, IdEdizione \to Direttore, \textellipsis\}$)
\item Nella tabella Giornalisti, vale inoltre che $\{NumeroAlbo \to Nome;$ $NumeroAlbo \to Cognome;$ $NumeroAlbo \to IdGiornalista\}$: NumeroAlbo è una chiave naturale (lOrdine dei Giornalisti si cura di non attribuire lo stesso numero di iscrizione allalbo a due giornalisti diversi), ho scelto di aggiungere la chiave artificiale IdGiornalista prevedendo possibili errori di inserimento da parte della segreteria della catena editoriale: in queto modo, il NumeroAlbo può essere modificato senza problemi in caso di errori. Discorso analogo per CodiceInps e PartitaIva.
\end{itemize}
Uno schema R, avente insieme di attributi T e insieme di dipendenze funzionali F, (\lstinline{R<T, F>}) è
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 lintera 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 i determinanti sono tutti 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}.
NOTA: assumo che la stringa “Indirizzo” e simili siano attributi atomici, anche se forse nella
realtà sarebbero meglio rappresentati in altro modo.