Je suis principalement un administrateur système et je ne travaille pas directement avec des bases de données autres que leur installation, la configuration de comptes, l'octroi de privilèges, etc. J'ai réalisé que si The Boss s'approchait de moi et me demandait: "Qu'est-ce qu'une base de données relationnelle?" Je ne pourrais probablement pas donner une réponse satisfaisante ... Je marmonnerais peut-être quelque chose sur les données stockées et organisées par catégories que vous pouvez interroger avec un langage de programmation spécial (c'est-à-dire SQL).
Alors, quelqu'un pourrait-il donner une bonne "réponse de patron" pour ce qu'est une base de données relationnelle? Et peut-être en quoi est-ce différent de simplement stocker des données sur un serveur de fichiers? Points bonus pour des analogies intelligentes mais accessibles et expliquant les tableaux, colonnes, enregistrements et champs. Je définirais une «réponse de patron» comme une explication rapide (peut-être deux) de paragraphe pour les gens non techniques ... surtout votre patron, en de rares occasions, ils vous demandent en fait ce que vous faites toute la journée.
Réponses:
Une base de données relationnelle ne se contente pas de stocker des données : elle stocke les relations entre les données et facilite (enfin, plus facilement) l'utilisation de ces relations. Dans les premiers jours de la terminologie de la base de données relationnelle, les tables étaient appelées "relations" car elles stockaient des bits de données associés (champs, maintenant colonnes), ainsi que les relations entre cette relation et d'autres relations.
La normalisation est l'acte de relations sans complication: "Rendez tout aussi simple que possible, mais pas plus simple." (Alan Perlis) Parfois "... mais pas plus simple" signifie que nous ne stockons pas les choses complètement normalisées, parce que "plus simple" finit par être plus complexe. (Vous pouvez dériver l'état du code postal, mais pourquoi s'embêter?)
la source
Une base de données relationnelle est une méthode de structuration des données afin qu'un seul fait soit stocké en un seul endroit. Donc, si John et Jane Doe travaillent tous les deux pour la même entreprise, vous ne stockerez que les détails propres à l'entreprise en un seul endroit (tableau). Vous stockeriez des données propres à John et Jane dans un autre endroit, et vous stockeriez les relations de John et Jane avec l'entreprise dans un troisième endroit. Dans le monde idéal, cela devrait signifier que je ne dois modifier qu'un seul champ / ligne si le numéro de fax de l'entreprise a changé.
Veuillez comprendre que toutes les bases de données hébergées dans un SGBDR ne sont pas correctement normalisées. Les compromis sont faits pour des raisons de performances et autres.
Voir l'article sur la normalisation de la base de données. http://en.wikipedia.org/wiki/Database_normalization
la source
Il existe deux concepts principaux pour distinguer les systèmes de bases de données de relations. Le premier est que les relations entre les éléments sont stockées. C'est le modèle de tableau des données, expliqué via l'analogie du tableur. Les SGBDR deviennent plus complexes que les feuilles de calcul, car il est plus facile et courant d'avoir de nombreuses références entre les tables ou les feuilles de calcul (selon le côté de l'analogie que vous utilisez).
La seconde est que les SGBDR mettent en œuvre l’idée d’une transaction, les propriétés ACID de
Le modèle relationnel permet d'inclure, de rechercher, de trier, de regrouper, etc., de nombreuses relations complexes. Le modèle transactionnel s'assure que les transactions se produisent complètement ou pas du tout, en maintenant le modèle de relation cohérent et précis. Eh bien, au moins, il est possible pour une programmation correcte de le garder.
la source
Une base de données relationnelle est comme un classeur Excel avec de nombreuses feuilles de calcul et un environnement logiciel environnant pour effectuer des optimisations de performances telles que l'indexation et la mise en cache, imposer un accès sécurisé par de nombreux utilisateurs en même temps et vous permettre d'afficher efficacement les données qui peuvent être réparties sur de nombreuses feuilles de calcul différentes.
la source
Une base de données relationnelle est un outil de stockage et de récupération de données stockées dans un modèle relationnel.
Un modèle relationnel de données est construit selon un petit nombre (selon le livre que vous lisez, 4 ou 5 règles) qui garantissent que les données sont accessibles de manière cohérente, ce qui permet de prouver l'exactitude de la conception et qui permet le système de gestion de base de données (SGBD) pour effectuer la plupart du travail de récupération rapide des données. Il fournit également des outils pour documenter formellement la structure des données - la mise en œuvre d'une base de données implémente intrinsèquement la plupart de la documentation.
La plupart des gens ne comprennent pas pourquoi l'exactitude est importante - cela signifie que les bogues sont moins susceptibles d'être introduits dans le développement d'une solution - et que (par exemple) 2 programmeurs différents travaillant dans des domaines similaires sont moins susceptibles de dupliquer l'effort.
En tant qu'entité distincte du front-end de l'application et avec une vue cohérente de la structure des données, l'utilisation d'un système de gestion de base de données permet d'utiliser différents outils au front-end à des fins différentes - vous pouvez donc en faire beaucoup plus d'utilisation de composants standard lors de la création d'une solution.
Il existe d'autres modèles que le relationnel pour le stockage des données - mais aucun (selon mon expérience) ne se rapproche à la fois par sa simplicité, sa flexibilité et sa disponibilité d'outils pour développer et gérer vos données.
la source
Une réponse 100% non technique:
Une base de données relationnelle est un endroit pour stocker des données de manière à minimiser la redondance et à vous permettre de la rechercher facilement.
Supposons une base de données pour une animalerie. Le magasin a des articles, des clients et des ventes. Si nous devions mettre cela dans Excel, vous pourriez avoir ceci pour les colonnes:
La première cliente, Mme Smith, achète de la nourriture pour chats:
Et puis Mme Smith voudrait aussi un jouet pour chat:
Et elle revient essentiellement toutes les 2 semaines environ et achète les mêmes choses. Avec cette méthode, vous dupliquez beaucoup d'informations, ce qui peut entraîner des erreurs. Vous ne pouvez pas non plus y stocker un inventaire, il doit s'agir d'une autre feuille Excel et celle-ci devra être mise à jour à chaque vente.
Avec une base de données, nous pourrions avoir trois entités distinctes: les clients (avec leurs informations), les articles (avec une description et un prix) et la vente (un lien entre les clients et les articles, avec une date et une quantité).
la source
Quelques bonnes réponses techniques ici. Mais mon patron ne comprendrait aucun d'eux!
Je commencerais par une explication extrêmement simple: «Si vous enregistrez vos données dans un fichier, elles apparaissent comme une longue liste. Une base de données relationnelle enregistre les données plus comme une carte ou un graphique, donc différentes parties de la carte se lient les unes aux autres ...
Et un exemple - '.... par exemple, votre nom est lié à votre adresse, qui à son tour pourrait être liée à votre ville.'
Suivi par les avantages commerciaux dont il se soucie - «L'avantage de cela est qu'il est beaucoup moins cher d'écrire du code pour extraire des données compliquées, par exemple« Trouvez-moi toutes les personnes qui vivent à Seattle dont le nom de famille est Smith ». Les bases de données relationnelles sont également très fiables et rapides. »
Et terminer avec une déclaration de crédibilité - «Les bases de données relationnelles existent depuis de nombreuses années, sont des technologies très matures. Notre produit particulier est [nom du produit ici] ».
la source
Mon patron est le DBA, mais en termes simples:
Pensez à deux tableaux dans Excel et à la fonction LOOKUP pour référencer des éléments d'un tableau à un autre. Maintenant, augmentez cela d'au moins un facteur 10.
Cela concerne le niveau informatique de certaines personnes et du travail.
la source