Database
 sql >> Base de données >  >> RDS >> Database

Bases de données relationnelles vs non relationnelles - Partie 1

Au cours des dernières années, les outils de base de données NoSQL ou non relationnels ont gagné en popularité en termes de stockage d'énormes quantités de données et de leur mise à l'échelle facilement. Il y a des débats sur la question de savoir si les bases de données non relationnelles remplaceront les bases de données relationnelles à l'avenir. Avec le nombre croissant de données sociales et d'autres données non structurées, voici quelques-unes des questions soulevées sur les bases de données relationnelles.
Les bases de données relationnelles sont-elles capables de gérer le Big Data ?
Les bases de données relationnelles sont-elles capables d'évoluer à grande échelle quantité de données ?
Les bases de données relationnelles sont-elles adaptées aux données de l'ère moderne ?
Avant de répondre à ces questions, donnez-nous quelques notions de base sur les bases de données relationnelles et non relationnelles.

Principes de base des bases de données relationnelles et non relationnelles

Bases de données relationnelles : Le concept de base de données relationnelle a été développé dans les années 1970. La caractéristique la plus importante de toutes les bases de données relationnelles est la prise en charge des propriétés ACID (Automicité, Cohérence, Isolation et Durabilité) qui garantissent que toutes les transactions sont traitées de manière fiable.
Automaticité : Chaque transaction est unique et garantit que si une partie logique d'une transaction échoue, tout est annulé afin que les données restent inchangées.
Cohérence : Toutes les données écrites dans la base de données sont soumises aux règles définies (contraintes, déclencheurs, etc.)
Isolement : Les modifications apportées à une transaction ne sont pas visibles pour les autres transactions tant qu'elles ne sont pas validées.
Durabilité : Les modifications validées dans une transaction sont stockées et disponibles dans la base de données même en cas de panne de courant ou de mise hors ligne soudaine de la base de données.
Strictement structuré : Les objets des bases de données relationnelles sont strictement structurés. Toutes les données du tableau sont stockées dans des lignes et des colonnes. Chaque colonne a un type de données. Il est majoritairement normalisé. Le langage de requête structuré (SQL) convient aux bases de données relationnelles pour stocker et récupérer des données de manière structurée. Les requêtes sont des commandes en anglais simple. Il y a toujours un nombre fixe de colonnes bien que des colonnes supplémentaires puissent être ajoutées ultérieurement. La plupart des tables sont liées les unes aux autres avec des clés primaires et étrangères, fournissant ainsi "l'intégrité référentielle" entre les objets. Les principaux fournisseurs sont ORACLE, SQL Server, MySQL, PostgreSQL, etc.
Bases de données non relationnelles : Le concept de bases de données non relationnelles est apparu pour gérer la croissance rapide des données non structurées et les faire évoluer facilement. Cela fournit un schéma flexible, de sorte qu'il n'y a pas une telle chose appelée "intégrité référentielle" comme nous le voyons dans les bases de données relationnelles. Les données sont hautement dénormalisées et ne nécessitent pas de JOIN entre les objets. Cela assouplit la propriété ACID des bases de données relationnelles et prend en charge CAP (cohérence, disponibilité et partitionnement). Mais sur ces trois, seuls deux sont garantis à tout moment. Ainsi, contrairement à ACID, il ne prendra en charge que BASE (état logiciel essentiellement disponible, cohérence éventuelle). Les bases de données initiales créées sur la base de ces concepts sont BigTable de Google, HBase de Yahoo, Cassandra de Facebook, etc.
Catégories de bases de données non relationnelles : Les bases de données non relationnelles peuvent être classées en quatre grandes catégories telles que la base de données de valeurs-clés, la base de données de colonnes, la base de données de documents et la base de données de graphiques.
Base de données de valeurs-clés : Il s'agit de la forme la plus simple de base de données NoSQL où chaque valeur est associée à la clé unique.(ex Redis)
Base de données en colonnes : Cette base de données est capable de stocker et de traiter une grande quantité de données à l'aide d'un pointeur qui pointe vers de nombreuses colonnes réparties sur un cluster. (ex HBase)
Base documentaire : Cette base de données peut contenir de nombreux documents de valeurs-clés avec de nombreux niveaux imbriqués. Une interrogation efficace est possible avec cette base de données. Les documents sont stockés au format JSON.(ex MongoDB)
Base de données Graph : Au lieu des lignes et des colonnes traditionnelles, ces bases de données utilisent des nœuds et des arêtes pour représenter les structures de graphes et stocker les données. (ex Neo4J)