<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://methylbro.titaxium.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Méthylbro Développeur Web PHP - Tag - Agrégation</title>
  <link>http://methylbro.titaxium.org/</link>
  <atom:link href="http://methylbro.titaxium.org/feed/tag/Agr%C3%A9gation/rss2" rel="self" type="application/rss+xml"/>
  <description>Développeur Web PHP</description>
  <language>fr</language>
  <pubDate>Wed, 08 Sep 2010 20:21:12 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Bases de Données Relationnelles - Partie 2</title>
    <link>http://methylbro.titaxium.org/post/2008/10/13/Bases-de-Donnees-Relationnelles/Relations-Agregation</link>
    <guid isPermaLink="false">urn:md5:676eb145d905755386588770a0ca9727</guid>
    <pubDate>Mon, 13 Oct 2008 00:40:00 +0200</pubDate>
    <dc:creator>Méthylbro</dc:creator>
        <category>Tutoriels</category>
        <category>Agrégation</category><category>Base de Données</category><category>BDD</category><category>MySQL</category><category>propriété</category><category>Relation</category><category>relations</category><category>tables</category>    
    <description>&lt;p&gt;Deuxième billet dédié à la conception de &lt;a href=&quot;http://methylbro.titaxium.org/post/2008/10/12/Bases-de-Donnees-Relationnelles&quot;&gt;Base de Données Relationnelle&lt;/a&gt; avec MySQL.&lt;/p&gt;
&lt;p&gt;Dans ce billet nous aborderons le sujet très intéressant des différentes relations que peuvent avoir vos entités (vos tables) entre elles.&lt;/p&gt;    &lt;h1&gt;Bases de Données Relationnelles (suite)&lt;/h1&gt;
&lt;h2&gt;Relations&lt;/h2&gt;
&lt;p&gt;Le simple fait de stocker l’identifiant d'une &lt;strong&gt;occurrence&lt;/strong&gt; de &lt;strong&gt;table&lt;/strong&gt; comme &lt;strong&gt;propriété&lt;/strong&gt; d'une occurrence d’une autre table n’est pas suffisant en soit pour décrire une &lt;strong&gt;relation&lt;/strong&gt; entre les tables concernées. C’est une erreur ; une erreur extrêmement commune et répandue.&lt;/p&gt;
&lt;p&gt;Vous devez décrire correctement à votre &lt;em&gt;Système de Gestion de Base de Données&lt;/em&gt; le comportement naturel de vos entités et de leurs relations.&lt;/p&gt;
&lt;p&gt;Comme vous le savez, il est impératif que les données contenues dans vos bases soient les plus cohérentes possibles. Vous devrais alors prendre soin dés le début à ce que votre &lt;strong&gt;base de données&lt;/strong&gt; dans sa structure même n’accepte pas les incohérences les plus évidentes. &lt;/p&gt;
&lt;p&gt;Pour ce faire il faut d’abord être à l’aise avec les &lt;strong&gt;relations&lt;/strong&gt; que vous allez pouvoir rencontrer. &lt;/p&gt;
&lt;p&gt;Nous distinguerons deux types de relations : des relations « &lt;em&gt;d’appartenance&lt;/em&gt; », que nous appellerons &lt;strong&gt;Agrégations&lt;/strong&gt; ainsi que des relations de « &lt;em&gt;constitution&lt;/em&gt; », que nous appellerons &lt;strong&gt;Compositions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;L’&lt;strong&gt;agrégation&lt;/strong&gt; et la &lt;strong&gt;composition&lt;/strong&gt; sont des concepts récurrents du génie logiciel. Vous les retrouverez à chaque fois que vous manipulerez des &lt;strong&gt;entités&lt;/strong&gt;. Qu’ils s’agissent de tables comme ici, mais aussi d’objets !&lt;/p&gt;
&lt;h3&gt;Agrégation&lt;/h3&gt;
&lt;p&gt;Sous ce nom un peut étrange se cache en fait le type de &lt;strong&gt;relation&lt;/strong&gt; le plus courant ; le plus simple à comprendre et donc, à utiliser.&lt;/p&gt;
&lt;p&gt;Une &lt;strong&gt;agrégation&lt;/strong&gt; décris un lien d’affiliation entre une entité A et une entité B. Il s’agit d’une &lt;strong&gt;relation&lt;/strong&gt; unilatérale, car elle n’est décrite que dans l’entité affiliée.&lt;/p&gt;
&lt;p&gt;Prenons par exemple des Catégories et des Articles. On peut naturellement dire qu’un article est affilié à une catégorie, car ce dernier sera contenu dans une catégorie. La catégorie quand à elle ne sait pas qu’elle contient cet article. Du moins pas directement car dans notre base de données, le lien entre l’article et sa catégorie est enregistré du coté de l’article.&lt;/p&gt;
&lt;p&gt;Reprenons notre exemple sur nos constructions en LEGO. Nous avons dit auparavant qu’un thème contenait des constructions. A fortiori une construction est affiliée à un thème.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://methylbro.titaxium.org/portfolio/methylbro/public/images/mcd_exemple_agregation.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ici vous devez lire ce schéma de la façon suivante : &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;« Une Construction est forcément affiliée à un Thème.&lt;br /&gt;
A un Thème est affilié 0 ou plusieurs Constructions. »&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le plus simple, et le plus évident sera alors de stocker au sein de notre table CONSTRUCTION le numéro d’identifiant du thème à laquelle la construction est affiliée. Nous appellerons donc ce nouveau champ à stocker : une &lt;strong&gt;clé étrangère&lt;/strong&gt; (&lt;strong&gt;Foreign Key&lt;/strong&gt; en anglais).  &lt;br /&gt;&lt;strong&gt;
Clé étrangère&lt;/strong&gt; car faisant référence à la &lt;strong&gt;clé primaire&lt;/strong&gt; d’une &lt;strong&gt;occurrence&lt;/strong&gt; de la table THEME.&lt;/p&gt;
&lt;p&gt;Nous verrons plus loin comment décrire cette &lt;strong&gt;clé étrangère&lt;/strong&gt; lors de la création des tables de notre exemple. &lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;a href=&quot;http://methylbro.titaxium.org/post/2008/11/09/Bases-de-Donnees-Relationnelles/Relations-Composition&quot; title=&quot;Base de données Relationnelle - Composition&quot;&gt;Lire la suite&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://methylbro.titaxium.org/post/2008/10/13/Bases-de-Donnees-Relationnelles/Relations-Agregation#comment-form</comments>
      <wfw:comment>http://methylbro.titaxium.org/post/2008/10/13/Bases-de-Donnees-Relationnelles/Relations-Agregation#comment-form</wfw:comment>
      <wfw:commentRss>http://methylbro.titaxium.org/feed/atom/comments/203</wfw:commentRss>
      </item>
    
</channel>
</rss>