Qu'est-ce qu'une database relationnelle?

Je suis principalement un administrateur système et je ne travaille pas directement avec des bases de données autres que l'installation, la configuration de counts, l'octroi de privilèges, etc. Je me suis rendu count que si The Boss s'approchait de moi et demanda: "Qu'est-ce qu'une database relationnelle?" Je ne pourrais probablement pas donner une réponse satisfaisante … J'aimerais peut-être murmurer quelque chose sur datatables stockées et organisées par des catégories que vous pouvez interroger avec une langue de programmation spéciale (c'est-à-dire SQL).

Alors, quelqu'un pourrait-il donner une bonne «Réponse de patron» pour savoir quelle est une database relationnelle? Et peut-être comment il est différent de simplement stocker des données sur un server de files? Points bonus pour des analogies intelligentes mais accessibles et des tables, des colonnes, des loggings et des champs d'explication. Je définirais une «réponse de patron» comme une explication rapide (peut-être deux) pour les non-techniciens … surtout votre patron, ces rares occasions leur requestnt en fait ce que vous faites toute la journée.

8 Solutions collect form web for “Qu'est-ce qu'une database relationnelle?”

Une database relationnelle ne stocke pas simplement les données : elle stocke les relations entre datatables et facilite (bien, plus facilement) l'utilisation de ces relations. Au début de la terminologie de la database relationnelle, les tables s'appelaient "relations" car elles stockaient des bits de données connexes (champs, maintenant colonnes), ainsi que les relations entre cette relation et d'autres relations.

La normalisation est l'acte de compliquer les relations: «Faites tout aussi simple que possible, mais pas plus simple». (Alan Perlis) Parfois, «… mais pas plus simple» signifie que nous ne stockons pas les choses entièrement normalisées, car «plus simple» finit par être plus complexe. (Vous pouvez dériver l'état du code postal, mais pourquoi vous ennuyer?)

Une database 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 des détails propres à l'entreprise en un seul endroit (table). Vous stockez des données uniques à John et Jane dans un autre endroit, et vous voudrez stocker à la fois la relation de John et Jane avec la société. Dans le monde idéal, cela signifie que je dois seulement modifier un seul champ / ligne si le numéro de fax de l'entreprise a changé.

Comprenez que toutes les bases de données hébergées dans un SGBDR ne sont pas correctement normalisées. Des compromis sont réalisés pour des performances et d'autres raisons.

Voir l'article sur la normalisation de la database. http://fr.wikipedia.org/wiki/Database_normalization

Il existe deux grands concepts pour distinguer les systèmes de database de relation. La première est que les relations entre les éléments sont stockées. C'est le model de table des données, expliqué par l'analogie de la feuille de calcul. Les SGBDR sont plus complexes que les tableurs, car leur pratique plus simple et courante consiste à avoir de nombreuses references entre les arrays ou les feuilles de calcul (selon le côté de l'analogie que vous utilisez).

Le second est que les SGBDR implémentent l'idée d'une transaction, les propriétés ACID de

  • atomicité
  • cohérence,
  • l'isolement et
  • durabilité

Le model relationnel permet d'inclure de nombreuses relations complexes, recherchées, sortingées, groupées par, etc. Le model transactionnel assure que les transactions se produisent complètement ou pas du tout, en gardant le model de relation cohérent et précis. Eh bien, au less pour permettre une programmation correcte pour le garder ainsi.

Une database relationnelle est comme un classur Excel avec de nombreuses feuilles de travail et un environnement logiciel environnant pour optimiser les performances telles que l'indexing et la caching, assurer l'access sécurisé de plusieurs users en même time et vous permettre de visualiser efficacement datatables susceptibles d'être diffusées sur plusieurs des différentes feuilles de travail.

Une database relationnelle est un outil pour stocker et récupérer des données stockées dans un model relationnel.

Un model relationnel de données est construit selon un petit nombre (selon le livre que vous lisez, 4 ou 5 règles) qui garantissent que datatables peuvent être consultées de manière cohérente, ce qui permet de prouver l'exactitude de la design et ce qui permet le système de gestion de database (SGBD) pour effectuer la plupart des travaux dans la récupération des données rapidement. Il fournit également des outils pour documenter formellement la structure des données. La mise en œuvre d'une database implique insortingnsèquement la majeure partie de la documentation.

La plupart des gens ne include pas pourquoi l'exactitude est importante – cela signifie que les bugs sont less susceptibles d'être introduits dans le développement d'une solution – et que (e.hg) 2 programmeurs différents travaillant dans des domaines similaires sont less susceptibles de doubler l'effort.

En tant qu'entité séparée de l'extrémité avant de l'application, et avec une vue cohérente de la structure des données, l'utilisation d'un système de gestion de database permet d'utiliser différents outils à l'extrémité avant à des fins différentes – afin que vous puissiez utiliser beaucoup plus. des composants hors magasin lors de la construction d'une solution.

Il existe d'autres templates que le relationnel pour le stockage des données – mais aucun autre (dans mon expérience) ne se rapproche à la fois de sa simplicité, de sa souplesse et de sa disponibilité d'outils pour développer et gérer vos données.

Une réponse 100% non technique:

Une database relationnelle est un endroit pour stocker datatables de manière à minimiser la redondance et vous permet de la searchr facilement.

Supposons une database pour un magasin pour animaux de compagnie. Le magasin a des objects, il a des clients, et il a des ventes. Si nous devions mettre cela dans Excel, vous pourriez avoir ceci pour les colonnes:

  Nom du client |  Numéro de téléphone client |  Adresse du client |  Article acheté |  Prix ​​|  Rendez-vous amoureux 

Le premier client, Mme Smith, achète de la nourriture pour chat:

 Nom du client |  Numéro de téléphone client |  Adresse du client |  Article acheté |  Prix ​​|  Rendez-vous amoureux
 Mrs Smith |  123-555-1234 |  10 Main St |  Aliments pour chats |  15 $ |  2011-03-11

Et puis, Mme Smith aimerait aussi un jouet de chat:

 Nom du client |  Numéro de téléphone client |  Adresse du client |  Article acheté |  Prix ​​|  Rendez-vous amoureux
 Mrs Smith |  123-555-1234 |  10 Main St |  Aliments pour chats |  15 $ |  2011-03-11
 Mrs Smith |  123-555-1234 |  10 Main St |  Jouet de chat |  $ 1 |  2011-03-11

Et elle revient essentiellement toutes les 2 semaines environ et achète les mêmes choses. Avec cette méthode, vous doublez l'information, ce qui peut entraîner des erreurs. Vous ne pouvez pas non plus stocker un inventaire, il doit s'agir d'une toute autre feuille Excel, et celle-ci devra être mise à jour à chaque vente.

Avec une database, nous pourrions avoir trois entités distinctes: les clients (avec leurs informations), les éléments (avec une description et un prix) et une vente (un lien entre clients et articles, avec une date et une quantité).

Quelques bonnes réponses techniques ici. Mais mon patron ne comprendrait aucun d'entre eux!

Je commencerais par une explication extrêmement simple: «Si vous enregistrez vos données dans un file, cela apparaît comme une longue list. Une database relationnelle enregistre datatables plus comme une carte ou un graphique, de sorte que différentes parties de la carte se lient entre elles … '

Et un exemple – '… par exemple, votre nom relie votre adresse, qui pourrait être reliée à votre ville.'

Suivi par les avantages commerciaux dont il se préoccupe – «L'avantage de cela est qu'il est beaucoup less coûteux d'écrire du code pour get des données compliquées, par exemple« find 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 finissez-le avec une déclaration de crédibilité – «Les bases de données relationnelles existent depuis de nombreuses années, sont des technologies très avancées. Notre produit particulier est [nom de produit ici] '.

Mon patron est le DBA, mais en termes laïques:

Pensez à deux tables dans Excel, et la fonction LOOKUP pour referencer les éléments d'une table à l'autre. Maintenant, augmentez d'au less un facteur de 10.

Il s'agit du niveau informatique de certaines personnes et du travail.

  • Sécurité: Où les passwords MySQL sont-ils stockés?
  • La table de session est remplie de centaines de sessions par seconde
  • Quel est le meilleur système de files Linux pour MySQL (InnoDB)?
  • Comment accorder des permissions complètes à un user avec mysql?
  • Impossible de configurer MySQL SSL: impossible de lire un certificate
  • DRBD ne se synchronise pas entre mes nœuds
  • Quels sont quelques conseils généraux pour que InnoDB pour MySQL soit performant?
  • Quelles sont les menaces probables pour une instance de DB publique?
  • mysqldump des 1000 derniers loggings
  • Comment puis-je configurer la protection de la database contre l'injection sql lorsque tous les scripts php sont viciés?
  • Comptez de gros téléchargements de files à partir des loggings d'apache dans mysql
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.