IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Mysql une base de donnée relationnelle ?


Sujet :

MySQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 121
    Points
    121
    Par défaut Mysql une base de donnée relationnelle ?
    Juste pour avoir une confirmation suite à la lecture de ceci :

    http://sqlpro.developpez.com/cours/s...partie2#L7.1.7

    je peux lire à la fin du 7.1.7 :

    REMARQUE : Comme on le voit, le mécanisme d'intégrité référentielle est un élément indispensable au maintient des relations entre tables. Un SGBD qui en est dépourvu ne peut pas prétendre à gérer le relationnel. En particulier MySQL ne peut en aucun cas prétendre être une base de données relationnelle !
    Bon la doc date de 2003.. .. Désormais MySQL est-elle bien une base de données relationnelle ?

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    On peut considérer que MySQL est un SGBDR a partir du moment où on utilise le moteur InnoDB mais le moteur par défaut de MySQL est MyISAM qui ignore superbement les contraintes de clés étrangères.

    A noter que quel que soit le moteur, MySQL ignore également les contraintes CHECK.

    Pour un SGBD plus près de la norme SQL : voir Postgresql ou (avec des sous) Oracle, MS SQL Server, IBM DB2...

  3. #3
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    J'interviens ici pour apporter quelques précisions.

    Un SGBDR (Système de gestion de base de données relationnelle) est un SGBD qui implémente la théorie relationnelle.
    Une base de données relationnelle peut être vue comme une simple collection de variables relationnelles. On y manipule des relations.

    Actuellement, tous les SGBD utilisant SQL (Oracle, MySQL, etc) ne peuvent pas être considérés comme étant (complètement) relationnels.

    Le langage SQL ne peut pas être considéré comme relationnel à cause de ses nombreuses dérives. Par exemple, SQL autorise les sacs (possibilité de manipuler des tables sans clé primaires, ce ne sont pas des ensembles) ainsi que NULL (par définition une table contenant NULL ne peut pas être une relation) et la 3VL.
    Voir à ce sujet: SQL and Relational Theory: How to Write Accurate SQL Code, Chapitre 4 No Duplicates, No Nulls par Chris Date.

    Les futurs TRDBMS (Truly Relational Database Management System) devront très certainement abandonner SQL et se baser par exemple sur Tutorial D à l'instar de Rel.


    REMARQUE : Comme on le voit, le mécanisme d'intégrité référentielle est un élément indispensable au maintient des relations entre tables. Un SGBD qui en est dépourvu ne peut pas prétendre à gérer le relationnel. En particulier MySQL ne peut en aucun cas prétendre être une base de données relationnelle !
    Ce paragraphe donne l'impression que "mécanisme d'intégrité référentielle" et "relations entre tables" sont une seule est même chose et qu'un SGBD n'ayant pas de "relations entre tables" ne serait pas relationnel.
    C'est une erreur, cf. plus haut.
    Le mot relationnel dans "Bases de données relationnelles" n'a vraiment rien à voir avec la notion de "relations" entre les tables.
    D'ailleurs SQLPro le dit lui-même ici: Terminologie : le terme RELATION ne désigne pas un lien entre deux tables.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    On voit que la seule réponse possible est de répondre par deux questions :

    1. Qu'est-ce qu'une base de données relationnelle ?
    2. Qu'est-ce que MySQL ?


    1/ Comme cela a été dit, aucun SGBD du marché n'est 100% conforme aux préconisations de Codd, qui a dénoncé le langage SQL comme une implémentation erronée du modèle relationnel ; donc ce n'est pas une question de oui ou non mais plutôt de plus ou moins...

    Personnellement, il me semble plus important de dire sur quel modèle un SGBD est fondé (et MySQL est clairement fondé sur le modèle relationnel, même s'il l'implémente imparfaitement), que de prendre une position d'ayatollah (salut Fred ) pour dire qu'il n'est pas assez conforme pour mériter le terme de relationnel.

    2/ Phil l'a souligné, MySQL est assez multiforme et offre des fonctionnalités différentes selon le moteur de stockage choisi ; quand on sait qu'une même base de données MySQL peut mélanger des tables gérées par des moteurs différents, on voit que la question n'est pas simple...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Conception d'une base de données relationnelle
    Par desideria dans le forum Modélisation
    Réponses: 12
    Dernier message: 08/05/2010, 10h24
  2. Réponses: 0
    Dernier message: 10/08/2009, 07h35
  3. Réponses: 7
    Dernier message: 05/06/2009, 14h25
  4. [XML] XML en natif dans une base de données relationnelle
    Par evlad dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/04/2007, 09h31
  5. Réponses: 3
    Dernier message: 22/12/2005, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo