Commit d88b481a authored by damien.raemy's avatar damien.raemy
Browse files

Adapting title and making first chapter

parent 63874096
# Final output PDF
rapport-construction-transition
\ No newline at end of file
\subsection{Estimation de la taille des données}
Cf. chapitre organisation physique
Estimation moyenne:
\begin{table}[H]
\centering
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\textbf{Table} & \textbf{NbTuples} & \textbf{Nbchamps} & \textbf{Formule Calcul} & Taille tuple & Taille Table \\ \hline
& & & 1*1+2*20 & & \\ \hline
& & & & & \\ \hline
\end{tabular}
\end{table}
Taille des champs utilisés :
\begin{table}[H]
\centering
\begin{tabular}{|c|c|}
\hline
\textbf{Type} & \textbf{Taille} \\ \hline
int & 4 bytes \\ \hline
& \\ \hline
\end{tabular}
\end{table}
Justifiez alors de la taille de la BD (n’oubliez pas les index) que devez réserver à sa création en tenant compte de l’évolution de la taille de ces données suivant votre application.
\subsection{Comptes sur votre SGBD}
Choix pour implémenter la sécurité (revoke et grant) : Lien entre vos vues externes (rapport analyse) et les comptes crées.
\ No newline at end of file
\section{Vos choix pour l'optimisation}
\subsection{Choix d'index pour chaque relation }
\begin{itemize}
\item Commencer par présenter les choix que vous avez fait pour l'implémentation des relations et des index à leur associer.
\item Prenez une de vos relations et montrer l'apport de l'ajout d'un index en étudiant les temps d'exécution d'une requête que vous aurez choisi.
\end{itemize}
\subsection{Argumentation sur la dénormalisation}
Étude des performances et choix de dénormalisation (duplication de l'information, fusion de tables...), choix relatifs aux données dérivées ajout de clés numériques, clustérisation...
\subsection{Les procédures stockées et vues}
Les procédures stockées et vues mises en places pour optimiser les jointures etc. et géré la sécurité
\ No newline at end of file
\section{Etude d'un plan d'exécution}
Isoler une requête compliquée de votre application, ou créez-en une à la main.
\begin{enumerate}
\item Présenter la requête (SQL),
\item Votre plan d'exécution en AR
\item Le plan d'exécution généré par le SGBD
\item Commentez clairement ce qui se passe.
\end{enumerate}
\ No newline at end of file
\section{Code SQL dans cet ordre}
Attention aux CIs indiquées dans le modèle relationnel : il doit y avoir un commentaire qui indique l'endroit où elles ont été implémentées. \textbf{Utiliser leur nom.}
\subsection{Code de l'implémentation des tables}
\subsection{Code des triggers}
\subsection{Code des procédures stockées et des fonctions implémentés}
\subsection{Code de création des utilisateurs avec leurs privilèges}
\subsection{Remarques}
Mettre ici toute astuce qui a dû être utilisée parce que le SGBD utilisé ne permet pas une gestion de quelque chose que vous pensiez utiliser : gestion des exceptions etc.
\ No newline at end of file
\section{Caractéristiques SGBD}
Complétez les sections suivantes qui permettent de comprendre le SGBD utilisé et ses caractéristiques.
\begin{itemize}
\item NOM du SGBD :
\item Version :
\item Références d’où proviennent vos commentaires :
\end{itemize}
\subsection{Explicitez les triggers et leur caractéristiques}
\subsection{Explicitez les niveaux d’isolations de votre SGBD et le protocole qu'il utilise}
\subsection{Le support de XML et XSD}
\subsection{Les types d'index disponibles}
\ No newline at end of file
% 1. DMS implementation
% ======================
\section{Vos choix en tant qu’administrateur de votre SGBD}
\input{chapters/01-dms_implementation/01-dms_admin_choices}
\input{chapters/01-dms_implementation/02-optimization_choices}
\input{chapters/01-dms_implementation/03-implementation_plan_study}
\input{chapters/01-dms_implementation/04-sql_code}
\input{chapters/01-dms_implementation/05-dms_characteristics}
\ No newline at end of file
% 2. Présentation des composants utilisés
% =======================================
Pour chacun des composants que vous pensez utiliser, vous devez en faire :
\begin{itemize}
\item une présentation globale,
\item son utilité par rapport à votre projet
\item une présentation détaillée des contraintes que cela vous impose :
\begin{itemize}
\item Au niveau de la modélisation de votre base de données
\item Au niveau des accès à la base
\item Au niveau du transactionnel
\end{itemize}
\end{itemize}
% Scenario 01
% ===========
Remarque: Au moins un diagramme de séquence et de communication par cas d'utilisation. Indiquez à quel cas d'utilisation les diagrammes se rapportent (en indiquant le No. et le nom du cas). Utilisez la même numérotation (même ordre) que pour le diagramme de cas d'utilisation et les fiches descriptives de votre rapport d'analyse (en prenant en compte les éventuelles modifications indiquées dans le chapitre précédent). Commencez chaque nouveau cas d'utilisation au haut d'une nouvelle page.
Vous devez fournir des diagrammes de séquence/communication de conception. C'est à dire qu'ils doivent contenir tous les objets potentiels dont vous aurez besoin.
De plus sur les diagrammes de séquence vous devez indiquer chaque transaction avec la BD. Nommer vos transactions et indiquer clairement où commence et où fini la transaction ainsi que le genre d'opération faite sur la BD comme indiqué sur l'exemple de diagramme de séquence ci-dessous.
\section{Cas 1: Nom du cas d'utilisation}
Résumé du cas.
\subsection{Diagramme(s) de séquence}
\includegraphics[width=\textwidth]{img/uml_sequence.png}
\subsection{Diagramme(s) de communication}
\includegraphics[width=\textwidth]{img/uml_communication.png}
\subsection{Transaction(s)}
Pour chaque transaction présente dans ce diagramme, indiquer les informations suivantes:
\begin{description}
\item[Nom de la transaction :]
XXXXXXX
\item[Description :]
Brève description si nécessaire
\item[Type de la transaction : ]
Lecture / écriture ou les deux à la fois.
\item[Isolation :]
Niveau d’isolation qui lui est nécessaire
\item[Isolation justificatif :]
(lecture sale ? Lecture non renouvelable ? Fantôme ? Pourquoi ?)
\item[Table(s) touchée(s) :]
XXXXXXXX
\item[Fréquence :]
Élevé / moyenne / rare
\item[Période(s) :]
Si active qu’à une certaine période de temps
\end{description}
Le prochain cas d'utilisation commence sur une nouvelle page.
\ No newline at end of file
% 4. Liste des objets et composants
% =================================
Dans ce chapitre indiquez la liste de tous les objets et composants (au format de la table ci-dessous) que vous utilisez dans vos diagrammes de séquence et de communication. Pour chaque objet indiquez dans quel(s) cas d'utilisation(s) il est utilisé et de quelle classe il est une instance.
\begin{table}[H]
\resizebox{\textwidth}{!}{%
\begin{tabular}{|l|l|l|l|}
\hline
\textbf{No} & \textbf{Nom de l'objet ou du composant} & \textbf{Nom de la classe} & \textbf{No. Des Use Case} \\ \hline
1 & ObjetA & Classe B & 1,3,6 \\ \hline
2 & ComposantX & & 2 \\ \hline
... & ... & ... & ... \\ \hline
\end{tabular}
}
\end{table}
\ No newline at end of file
% Modèle Relationnel normalisé
% ============================
\includegraphics[width=\textwidth]{img/uml_class.png}
Commentez le diagramme et en particulier l’utilisation des patterns (si vous en avez utilisé). C'est un diagramme de classe de conception, vous devez y indiquer la multiplicité (par défaut =1) et les noms des rôles. Il ne devrait y avoir plus que des agrégations (simple ou composition), des généralisations (ou implémentation), éventuellement des classe associations des<<use>> ou des <<create>>. Si vous pensez que vous avez besoin d'autres relations, discutez-en avec votre professeur. Faites usage de la notions de «stéréotype» si vous pensez que certaines classes ne seront pas vraiment implémentées comme des classes (au sens habituel du terme). Si vous utilisez des composants proposez des solutions à votre professeur de GL pour les faire apparaître dans votre diagramme de classe.
\textbf{ATTENTION:} Les diagrammes de classe doivent être lisibles. Si nécessaire utilisé un format A3 ou éclatez votre diagramme en plusieurs parties.
% 6. Concurrence
% ==============
\section{Récapitulatif sur les transactions}
Avoir une vue synthétique de toutes les transactions votre application. Les transactions pouvant attaquer la base de données pendant des périodes différentes de temps période, ceci apparaitra dans le tableau. Pour chaque transaction, définir quelles tables sont utilisées ainsi que le mode d’accès, lecture(R) ou écriture (W).
Si vous avez des périodes temporelles dans votre application, qui font qu’elle a des comportements différenciés suivant ces périodes, alors faire un tableau par période.
\textbf{Période1 - avant inscription}
\begin{table}[H]
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\begin{sideways}
\begin{tabular}[c]{@{}l@{}}
Nom\\ Transactions
\end{tabular}
\end{sideways}
& \begin{sideways}Table1\end{sideways}
& \begin{sideways}...\end{sideways}
& \begin{sideways} ... \end{sideways}
& \begin{sideways} ...\end{sideways}
& \begin{sideways}Table n \end{sideways}
& \begin{sideways}Niveau Isolation \end{sideways} \\ \hline
... & R & R & R & & & 1 \\ \hline
... & & & & & & 0 \\ \hline
... & & & & & & 3 \\ \hline
... & & R & & & & \\ \hline
\end{tabular}
\end{table}
\textbf{Période2 - pendant inscription}
\begin{table}[H]
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\begin{sideways}
\begin{tabular}[c]{@{}l@{}}
Nom\\ Transactions
\end{tabular}
\end{sideways}
& \begin{sideways}Table1\end{sideways}
& \begin{sideways}...\end{sideways}
& \begin{sideways} ... \end{sideways}
& \begin{sideways} ...\end{sideways}
& \begin{sideways}Table n \end{sideways}
& \begin{sideways}Niveau Isolation \end{sideways} \\ \hline
... & R & R & R & & & 1 \\ \hline
... & & & & & & 0 \\ \hline
... & & & & & & 3 \\ \hline
... & & R & & & & \\ \hline
\end{tabular}
\end{table}
\section{Approche conceptuelle}
\subsection{Version sans composants pour la BD}
Expliquez votre philosophie pour la gestion de la concurrence qui assure le sérialisable (Utilisation d’une colonne timestamp, mémorisation du contenu des tuples etc.).
\subsection{Version avec composants pour la BD}
Si vous avez choisi d’utiliser un composant pour la communication avec votre base de données, vous devez expliciter la philosophie préconisée par ce composant pour la gestion des transactions et des niveaux d’isolations.
\section{Présentation d’un scénario concurrentiel}
Indiquez un scénario clair avec un problème de concurrence dans votre application. Indiquez clairement :
\begin{enumerate}
\item les noms des transactions en jeu
\item les problèmes qui risquent d’arriver
\item expliquez alors clairement comment s’applique la philosophie de la gestion de concurrence que vous avez choisie sur ce cas et avec laquelle vous évitez les problèmes
\end{enumerate}
% 7. Diagramme de composants
% ==========================
Il s’agit de représenter les composants et les dépendances explicites entre interfaces.
\textbf{ATTENTION :} Les interfaces doivent être détaillées et, pour les composants que vous avez développés, il faut indiquer la liste des classes que contient le composant.
\includegraphics[width=\textwidth]{img/uml_components.png}
\ No newline at end of file
% Actors
% ======
Fribourg, le \today
\begin{table}[H]
\begin{tabular}{p{0.3\textwidth} p{0.3\textwidth} p{0.3\textwidth}}
\AuthorA & \AuthorB & \AuthorC \\[2cm]
\SupervisorA & \SupervisorB & \SupervisorC \\[2cm]
\end{tabular}
\end{table}
\ No newline at end of file
% Config - Formatting
% ===================
% Default font
\renewcommand*{\familydefault}{\sfdefault}
% Paragraph indent
\parindent=0em
% Figures: Change text under pictures
\renewcommand{\captionfont}{\it \small}
\renewcommand{\captionlabelfont}{\it \bf \small}
\renewcommand{\thesection}{\arabic{section}}
% Spacing before chapter
\titlespacing{\chapter}{0pt}{*-4}{*3}
% Remove "Chapter N" in document
\titleformat{\chapter}[hang]{\bf\huge}{\thechapter}{1pc}{}
% Section numbering
\renewcommand\thesection{\arabic{chapter}.\arabic{section}}
% Config - Metadata
% =================
% School
\newcommand{\Faculty}{Informatique}
% Project
\newcommand{\ProjectName}{<Nom du projet>}
\newcommand{\DocumentTitle}{Rapport de construction et de transition}
\newcommand{\Client}{<Client>}
\newcommand{\GroupNo}{<NoGroupe>}
\newcommand{\Technologies}{<Technologies>}
% Supervisors
\newcommand{\SupervisorA}{Prof. Houda Chabbi Drissi}
\newcommand{\SupervisorB}{Prof. Pierre Kuonen}
\newcommand{\SupervisorC}{Prof. Omar Abou Khaled}
\newcommand{\Supervisors}{\SupervisorA \\ \SupervisorB \\ \SupervisorC}
% Authors
\newcommand{\AuthorA}{<AuteurA>}
\newcommand{\AuthorB}{<AuteurB>}
\newcommand{\AuthorC}{<AuteurC>}
\newcommand{\Authors}{\AuthorA \\ \AuthorB \\ \AuthorC}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment