Saturday, November 19, 2011

Ce qui rend une base de données relationnelle ?

Il y a une calomnie se propage à travers l'Internet. Il est si profondément ancrée que beaucoup de gens intelligents pense qu'ils comprennent il. Il est parfaitement logique. Il est logique. Il est compréhensible. Mais il est mauvais, mauvais, mauvais.


Je m'explique...


Retour dans les années 1960 les ordinateurs étaient grands, bruyant et très, très cher. Information a été maintenue dans les lieux de plus ou moins aléatoires et consultée par les programmes qui ont été codés en main pour extraire et envoyer les données au bon endroit. C'est un peu comme écrire les noms de tous vos amis avec leurs numéros de téléphone au hasard sur un morceau de papier. Comment est-ce que vous connaissez qui téléphone numéro appartient à laquelle ami ? Dans ces premiers jours, programmeurs devaient sais disputées élément appartenait avec qui, lorsqu'ils ont écrit des programmes pour obtenir les données du système. Dans le système lui-même, il était pratiquement partout. Numéro de téléphone du client devait être lié au nom du client par le programmeur, chaque fois que les renseignements ont été utilisés.


Puis, en 1970, along came Ted Codd avec son article fondamental: « A relationnelle modèle de données pour grandes partagé banques de données "(http://www.acm.org/classics/nov95/toc.html).


Dr Edgar Codd est né en 1923 à Dorset en Angleterre, fit ses études à Oxford et a volé dans la Royal Air Force pendant la guerre. En 1949, il rejoint IBM aux USA, est devenu un Fellow d'IBM en 1976 et en 1981, il a été présenté avec le prix Turing, la plus haute récompense l'industrie possible. Pourtant peu de gens comprendre maintenant son « modèle relationnel ».


La plupart des gens savent que bases de données relationnelles stockent des informations dans les tables. Ce sont tout comme les tables ordinaires que nous utilisons tous les jours - annuaires téléphoniques, des listes de programme TV, horaires de train, Ligue des tables dans le sport, etc..


Beaucoup de gens pense qu'une base de données relationnelle si elle permet de relier des informations dans une seule table correspondants des informations dans un autre.


Considérons un système de commandes. Les clients sont dans une seule table, ensemble avec leurs coordonnées, limite de crédit, numéros de téléphone etc.. Les ordonnances sont dans une autre table, avec la première colonne étant le numéro de client, vous pouvez associer le client aux commandes de ce client, tenue à une autre table. Beaucoup de personnes pensent que cela s'appelle une « relation ». Effectivement, dans la structuré Query Language (SQL) qui est utilisé pour manipuler des bases de données relationnelles, ses appelés un « join ».


Ted Codd a montré que la table est la relation. Ce qu'il dit est que si vous mettez toutes ces données dans une table, vous pouvez voir comment un morceau de données (nom de client) se rapporte à tous les autres (numéro de téléphone de client) sans avoir à programmer chaque fois.


(En réalité, ce qu'il a dit quelque chose comme :


« La relation terme est utilisée ici dans son sens mathématique acceptées. Compte tenu des ensembles S1, S1, ···, Sn, (pas nécessairement distincte), R est une relation sur ces ensembles n si c'est un ensemble de n-uplets dont chacun a son premier élément de S1, son second élément de S1 et ainsi de suite. »


mais il était un génie et un mathématicien et je ne suis ni.)


Dans une table, par exemple un annuaire téléphonique, vous pouvez lire un nom dans une colonne, et vous connaissez que le numéro de téléphone dans la colonne suivante porte sur le nom de que vous lire et pas un autre nom sur une page différente. Dans les colonnes (vertical) toute l'information est du même type (nom ou numéro de téléphone mais pas les deux). Dans chaque ligne, tous les l'information est liée (le numéro de téléphone appartient le nom dans la colonne « nom » et pas un autre nom somewhere else).


Si une base de données relationnelle stocke ses données dans les tables. Comme simple que cela. Ces tables peuvent rejoindraient ou non aux autres tables pour des requêtes complexes, mais s'ils ne pas, il ne s'arrête pas qu'il soit relationnelle.


En 1985, Ted Codd définit les règles de bases de données relationnelles, 12 en tout, mais un seul d'entre eux (règle 7: haut niveau Insert, Update et Delete) parle, en passant, de rejoindre les tables. Certaines règles sont toujours pas pris en charge par les bases de données relationnelles à nos jours. Ted Codd est décédé en 2003, mais la technologie encore n'a pas pris avec toutes ses idées remarquables.

No comments:

Post a Comment