<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog SQL d&#039;un développeur Microsoft. &#187; algèbreRelationnelle</title>
	<atom:link href="https://blog.developpez.com/ylarvor/pcategory/modelisation/algebrerelationnelle/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/ylarvor</link>
	<description>SQL or No-SQL !</description>
	<lastBuildDate>Sat, 04 Jun 2016 19:39:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>conception d&#8217;un schéma relationnel.</title>
		<link>https://blog.developpez.com/ylarvor/p4902/modelisation/algebrerelationnelle/conception_dun_schma_relationnel</link>
		<comments>https://blog.developpez.com/ylarvor/p4902/modelisation/algebrerelationnelle/conception_dun_schma_relationnel#comments</comments>
		<pubDate>Fri, 09 Nov 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[algèbreRelationnelle]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Les dépendances fonctionnelles. Je viens de suivre un cours trés intéressant de michel freville du cnam sur la conception d&#8217;un schéma relationnel, j&#8217;y ai appris la méthode &#171;&#160;ancienne&#160;&#187; pour décomposer les relations ( autrement dit les tables ). Il existe tout un processus en commençant par déterminer les dépendances fonctionnelles. Il s&#8217;agit de déterminer les [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Les dépendances fonctionnelles.</p>
<p>Je viens de suivre un cours trés intéressant de michel freville du cnam sur la conception d&rsquo;un schéma relationnel, j&rsquo;y ai appris la méthode &laquo;&nbsp;ancienne&nbsp;&raquo; pour décomposer les relations ( autrement dit les tables ). Il existe tout un processus en commençant par déterminer les dépendances fonctionnelles. Il s&rsquo;agit de déterminer les liens sémantiques entre les attributs ou les sous ensemble d&rsquo;attributs d&rsquo;une relation. Par exemple : La puissance d&rsquo;une voiture est dépendante de l&rsquo;immatriculation du véhicule. Si je connais l&rsquo;immatriculation, je peux déduire la puissance. <strong>c&rsquo;est une dépendance fonctionnelle</strong>. On doit déterminer la <strong>couverture minimale</strong> des dépendances fonctionnelles. c&rsquo;est à dire, les seules dépendances qui restent quand on a supprimé toute celle qui se déduise logiquement. Par exemple, l&rsquo;immatriculation définit la marque, la marque définit le pays. Une relation inutile à supprimer est donc l&rsquo;immatriculation définit le pays&#8230; On est capable de retrouver cette dépendance fonctionnelle par transitivité. A partir de la couverture minimale, on est capable de déterminer la clé primaire de la relation en produisant un graphe des dépendances fonctionnelles. c&rsquo;est assez génial! Je ne détaille pas. Il existe aussi un algorithme de BERNSTEIN qui permet de passer d&rsquo;un graphe des dépendances fonctionnelles à un schéma relationnelle compatible avec la 3 eme forme normale.</p>
<p>Les formes normales.</p>
<p>Les formes normales ne sont que des règles qui permettent de déterminer le niveau de redondance et d&rsquo;intégrité d&rsquo;un schéma relationnelle. Un diagramme de classe conçu par l&rsquo;analyse UML ( objet du monde réel distincts ) si il est conçu intelligemment avec une analyse poussée supprimant toute redondance d&rsquo;information conduit à un schéma relationnel qui respecte la quatrième forme normale. Si l&rsquo;analyse n&rsquo;est pas poussée assez loin, on peut se retrouver à ne pas respecter la 4 eme, la 3 eme, la seconde ou la première forme normale.</p>
<p>Première forme normale :</p>
<p>Une relation R est en 1ière forme normale, si tout attribut<br />de R contient une valeur atomique.</p>
<p>exemple :<br />Membre du projet(NumeroMembre,Nom,Ville,NumerosDesProjets) est dénormalisée car NumérosDesProjets contient plusieurs Numéros de Projets pour un seul membre.<br />(&lsquo;1&prime;,&rsquo;Jean&rsquo;,&rsquo;Lyon&rsquo;,&rsquo;1,2,7&prime;) (&lsquo;2&prime;,&rsquo;corinne&rsquo;,&rsquo;Marseille&rsquo;,&rsquo;1,2,9&prime;)&#8230;</p>
<p>Pour passer en premiere forme normale:<br />MembreDuProjet(NumeroMembre,Nom,Ville,NumeroProjet)<br />(&lsquo;1&prime;,&rsquo;jean&rsquo;,&rsquo;Lyon&rsquo;,&rsquo;1&prime;) (&lsquo;1&prime;,&rsquo;jean&rsquo;,&rsquo;Lyon&rsquo;,&rsquo;2&prime;) (&lsquo;1&prime;,&rsquo;jean&rsquo;,&rsquo;Lyon&rsquo;,&rsquo;7&prime;) (&lsquo;2&prime;,&rsquo;corinne&rsquo;,&rsquo;Marseille&rsquo;,&rsquo;1&prime;)&#8230;</p>
<p>remarque : en premiere forme normale, on est oblige de changer de cle primaire : NumeroMembre ne suffit plus, on doit ajouter NumeroProjet.</p>
<p>Deuxième forme normale :</p>
<p>- Une relation R est en 2ième forme normale si et<br />seulement si :<br />1) Elle est en 1ière forme normale.<br />2) s&rsquo;il existe une dépendance fonctionnelle totale reliant la clé à chaque attribut non clé.</p>
<p>remarque : la dependance fonctionnelle totale indique que pour une cle primaire compose, l&rsquo;attribut doit etre dépendant de toute la cle composée, pas seulement d&rsquo;une partie.</p>
<p>Pour passer MembreduProjet en 2 eme forme normale ( en fait on passe directement en 3 eme forme normale )<br />Employe(NumeroEmploye,Nom,ville)<br />Appartenance(NumeroEmploye,NumeroProjet)</p>
<p>Troisième forme normale :</p>
<p>- Une relation R est en 3ième forme normale si et<br />seulement si :<br />1) Elle est en 2ième forme normale.<br />2) Aucun Attribut non clé ne dépend d&rsquo;une clé quelconque par transitivité.</p>
<p>exemple :EmployeDuDepartement(NumeroEmploye,Nom,prenom,age,NumeroDepartement,DescriptionDepartement ) est en deuxieme forme normale.<br />En troisième forme normale, cela donne :<br />Employe(NumeroEmploye,Nom,prenom,age)<br />Departement(NumeroDepartement,DescriptionDepartement)</p>
<p>Pour un complément d&rsquo;information sur les formes normales, je vous renvoie vers le livre de Andreas Meier &#8211; introduction pratique aux bases de données relationnelles.</p>
<p>A bientôt.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
