Règles de base pour l'identification des clés primaires dans une base de données relationnelle Bases de données comprennent des tables faites de lignes de données . Le terme se rattache autant à des caractéristiques techniques qu'à une génération historique de … Dans une base de données relationnelle, chaque enregistrement d'une table contient un groupe d'informations relatives à un sujet et les différents sujets sont connexes. J'ai travaillé avec des bases de données relationnelles pour peu de temps, mais c'est seulement récemment eu lieu pour moi qu'il doit y avoir d'autres types de bases de données Une certes obscur mais alternative intéressante pour les types de bases de données mentionné ici est le Une phrase peut être le sujet ou l'objet d'une autre phrase:Un non-relationnelle base de données orientée document, nous avons recherché est Apache CouchDB est un système distribué, à tolérance de pannes, de schéma-gratuit orientée document base de données accessible via un HTTP RESTful/JSON API. Au lieu de cela, les bases de données non relationnelles utilisent un modèle de stockage qui est optimisé pour les exigences spécifiques du type des données stockées.Instead, non-relational databases use a storage model that is optimized for the specific requirements of the type of data being stored.Par exemple, les données peuvent être stockées sous forme de paires clé/valeur simples, de documents JSON ou de graphe comprenant des arêtes et des sommets.For example, data may be stored as simple key/value pairs, as JSON documents, or as a graph consisting of edges and vertices.Tous ces magasins de données ont en commun quâils nâutilisent pas un What all of these data stores have in common is that they don't use a En outre, ils ont tendance à être plus précis dans le type de données pris en charge et la façon dont les données peuvent être interrogées.Also, they tend to be more specific in the type of data they support and how data can be queried.Par exemple, les magasins de données de séries chronologiques sont optimisés pour les requêtes sur des séquences de données temporelles, tandis que les magasins de données de graphes sont optimisés pour explorer les relations pondérées entre des entités.For example, time series data stores are optimized for queries over time-based sequences of data, while graph data stores are optimized for exploring weighted relationships between entities.Aucun des deux formats nâest adapté à la tâche de gestion des données transactionnelles.Neither format would generalize well to the task of managing transactional data.Dans la pratique, « NoSQL » signifie « base de données non relationnelle », même si la plupart de ces bases de données prennent en charge les requêtes SQL compatibles.In practice, "NoSQL" means "non-relational database," even though many of these databases do support SQL-compatible queries.Toutefois, la stratégie dâexécution de requête sous-jacente est généralement très différente de la façon dont un SGBDR traditionnel exécute la même requête SQL.However, the underlying query execution strategy is usually very different from the way a traditional RDBMS would execute the same SQL query.Les sections suivantes décrivent les principales catégories dâune base de données non relationnelle ou NoSQL.The following sections describe the major categories of non-relational or NoSQL database.Un magasin de données de documents gère un ensemble de champs de type chaîne nommés et de valeurs de données dâobjet dans une entité appelée un A document data store manages a set of named string fields and object data values in an entity referred to as a En règle générale, ces magasins de données stockent des données sous la forme de documents JSON.These data stores typically store data in the form of JSON documents.Chaque valeur de champ peut être un élément scalaire, comme un nombre, ou un élément composé, comme une liste ou une collection parent-enfant.Each field value could be a scalar item, such as a number, or a compound element, such as a list or a parent-child collection.Les données dans les champs dâun document peuvent être encodées de différentes façons, notamment XML, YAML, JSON, BSON ou même stockées comme du texte brut.The data in the fields of a document can be encoded in a variety of ways, including XML, YAML, JSON, BSON, or even stored as plain text.Les champs dans les documents sont exposés au système de gestion de stockage, permettant à une application dâinterroger et de filtrer des données en utilisant les valeurs de ces champs.The fields within documents are exposed to the storage management system, enabling an application to query and filter data by using the values in these fields.En règle générale, un document contient la totalité des données pour une entité.Typically, a document contains the entire data for an entity.Les éléments qui constituent une entité sont spécifiques à lâapplication.What items constitute an entity are application-specific.Par exemple, une entité peut contenir les détails dâun client, dâune commande ou une combinaison des deux.For example, an entity could contain the details of a customer, an order, or a combination of both.Un seul document peut contenir des informations réparties sur plusieurs tables relationnelles dans un système de gestion de base de données relationnelle (SGBDR).A single document might contain information that would be spread across several relational tables in a relational database management system (RDBMS).Un magasin de documents ne demande pas que tous les documents possèdent la même structure.A document store does not require that all documents have the same structure.Cette approche de forme libre offre une grande flexibilité.This free-form approach provides a great deal of flexibility.Par exemple, les applications peuvent stocker des données différentes dans des documents selon les changements dâexigence de lâentreprise.For example, applications can store different data in documents in response to a change in business requirements.Lâapplication peut récupérer des documents à lâaide de la clé de document.The application can retrieve documents by using the document key.Il sâagit dâun identificateur unique pour le document, souvent haché, pour aider à répartir les données uniformément.This is a unique identifier for the document, which is often hashed, to help distribute data evenly.Certaines bases de données de documents créent automatiquement la clé de document.Some document databases create the document key automatically.Dâautres permettent de spécifier un attribut du document pour lâutiliser comme clé.Others enable you to specify an attribute of the document to use as the key.Lâapplication peut également interroger des documents en fonction de la valeur dâun ou plusieurs champs.The application can also query documents based on the value of one or more fields.Certaines bases de données de documents prennent en charge lâindexation pour faciliter la recherche rapide de documents basée sur un ou plusieurs champs indexés.Some document databases support indexing to facilitate fast lookup of documents based on one or more indexed fields.Plusieurs bases de données de documents prennent en charge les mises à jour sur place, permettant à une application de modifier les valeurs des champs spécifiques dans un document sans réécrire la totalité du document.Many document databases support in-place updates, enabling an application to modify the values of specific fields in a document without rewriting the entire document.Lire et écrire des opérations sur plusieurs champs dans un seul document sont généralement atomiques.Read and write operations over multiple fields in a single document are typically atomic.Un magasin de données de colonnes ou de familles de colonnes organise les données en lignes et colonnes.A columnar or column-family data store organizes data into columns and rows.Dans sa forme la plus simple, un magasin de données de familles de colonnes peut sembler, au moins sur le plan conceptuel, très similaire à une base de données relationnelle.In its simplest form, a column-family data store can appear very similar to a relational database, at least conceptually.La puissance dâune base de données de familles de colonnes se trouve dans son approche dénormalisée pour la structuration des données éparses, qui découle de lâapproche en colonnes pour stocker les données.The real power of a column-family database lies in its denormalized approach to structuring sparse data, which stems from the column-oriented approach to storing data.Vous pouvez considérer un magasin de données de familles de colonnes comme contenant des données tabulaires avec des lignes et des colonnes, mais les colonnes sont divisées en groupes nommés familles de colonnes.You can think of a column-family data store as holding tabular data with rows and columns, but the columns are divided into groups known as column families.Chaque famille de colonnes conserve un ensemble de colonnes logiquement liées entre elles et généralement récupérées ou manipulées en tant quâunité.Each column family holds a set of columns that are logically related and are typically retrieved or manipulated as a unit.Les autres données accessibles séparément peuvent être stockées dans des familles de colonnes distinctes.Other data that is accessed separately can be stored in separate column families.Dans une famille de colonnes, de nouvelles colonnes peuvent être ajoutées dynamiquement, et des lignes peuvent être incomplètes (autrement dit, une ligne nâa pas besoin dâavoir une valeur pour chaque colonne).Within a column family, new columns can be added dynamically, and rows can be sparse (that is, a row doesn't need to have a value for every column).Le diagramme suivant montre un exemple avec deux familles de colonnes, The following diagram shows an example with two column families, Les données dâune même entité ont la même clé de ligne dans chaque famille de colonnes.The data for a single entity has the same row key in each column family.Cette structure, où les lignes pour un objet donné dans une famille de colonnes peuvent être modifiées dynamiquement, constitue un avantage important de lâapproche par famille de colonnes, rendant cette forme de magasin de données hautement adaptée pour le stockage des données avec des schémas différents.This structure, where the rows for any given object in a column family can vary dynamically, is an important benefit of the column-family approach, making this form of data store highly suited for storing data with varying schemas.Contrairement à un magasin de clés/valeurs ou une base de données de documents, la plupart des bases de données de familles de colonnes stockent physiquement les données dans lâordre des clés, plutôt quâen calculant un hachage.Unlike a key/value store or a document database, most column-family databases physically store data in key order, rather than by computing a hash.La clé de ligne est considérée comme lâindex primaire et permet un accès basé sur clé via une clé spécifique ou une plage de clés.The row key is considered the primary index and enables key-based access via a specific key or a range of keys.Certaines nombreuses implémentations permettent de créer des index secondaires sur des colonnes spécifiques dans une famille de colonnes.Some implementations allow you to create secondary indexes over specific columns in a column family.Les index secondaires vous permettent de récupérer des données à partir de la valeur des colonnes, au lieu dâutiliser la clé de ligne.Secondary indexes let you retrieve data by columns value, rather than row key.Sur le disque, toutes les colonnes dâune famille de colonnes sont stockées dans le même fichier, avec un certain nombre de lignes dans chaque fichier.On disk, all of the columns within a column family are stored together in the same file, with a certain number of rows in each file.Pour les jeux de données volumineux, cette approche crée un gain de performances en réduisant la quantité de données qui doivent être lues à partir du disque lorsque seules quelques colonnes sont interrogées conjointement à la fois.With large data sets, this approach creates a performance benefit by reducing the amount of data that needs to be read from disk when only a few columns are queried together at a time.Lire et écrire des opérations pour une rangée sont généralement atomiques au sein dâune seule famille de colonnes, bien que certaines implémentations fournissent lâatome dans toute la rangée, couvrant plusieurs familles de colonnes.Read and write operations for a row are typically atomic within a single column family, although some implementations provide atomicity across the entire row, spanning multiple column families.Un magasin de clés/valeurs est essentiellement une table de hachage volumineuse.A key/value store is essentially a large hash table.Vous associez chaque valeur de données à une clé unique, le magasin de clés/valeurs utilise cette clé pour stocker les données à lâaide dâune fonction de hachage appropriée.You associate each data value with a unique key, and the key/value store uses this key to store the data by using an appropriate hashing function.La fonction de hachage est sélectionnée pour offrir une répartition des clés hachées sur le stockage de données.The hashing function is selected to provide an even distribution of hashed keys across the data storage.La plupart des magasins de clés/valeurs prennent uniquement en charge les opérations simples de requête, dâinsertion et de suppression.Most key/value stores only support simple query, insert, and delete operations.Pour modifier une valeur (partiellement ou entièrement), une application doit remplacer les données existantes pour la valeur entière.To modify a value (either partially or completely), an application must overwrite the existing data for the entire value.Dans la plupart des implémentations, la lecture ou écriture dâune valeur unique est une opération atomique.In most implementations, reading or writing a single value is an atomic operation.Si la valeur est grande, lâécriture peut prendre un certain temps.Une application peut stocker des données arbitraires en tant quâensemble de valeurs, bien que certains magasins de clés/valeurs imposent des limites sur la taille maximale des valeurs.An application can store arbitrary data as a set of values, although some key/value stores impose limits on the maximum size of values.Les valeurs stockées sont opaques pour le logiciel de système de stockage.The stored values are opaque to the storage system software.Toutes les informations de schéma doivent être fournies et interprétées par lâapplication.Any schema information must be provided and interpreted by the application.Fondamentalement, les valeurs sont des objets BLOB et le magasin de clés/valeurs récupère ou stocke simplement la valeur par clé.Essentially, values are blobs and the key/value store simply retrieves or stores the value by key.Les magasins de clés/valeurs sont optimisés pour les applications effectuant des recherches simples à lâaide de la valeur de la clé, ou dâune plage de clés, mais sont moins adaptés aux systèmes qui doivent interroger des données entre différentes tables de clés/valeurs, comme la jointure de données entre plusieurs tables.Key/value stores are highly optimized for applications performing simple lookups using the value of the key, or by a range of keys, but are less suitable for systems that need to query data across different tables of keys/values, such as joining data across multiple tables.Les magasins de clés/valeurs ne sont pas optimisés pour les scénarios où la requête ou le filtrage par des valeurs autres que la clé est plus importante que les recherches basées uniquement sur les clés.Key/value stores are also not optimized for scenarios where querying or filtering by non-key values is important, rather than performing lookups based only on keys.Par exemple, avec une base de données relationnelle, vous pouvez trouver un enregistrement en utilisant une clause WHERE pour filtrer les colonnes non clés, mais les magasins de clés/valeurs nâont généralement pas ce type de capacité de recherche pour les valeurs, ou si elles le font, il nécessite une analyse lente de toutes les valeurs.For example, with a relational database, you can find a record by using a WHERE clause to filter the non-key columns, but key/values stores usually do not have this type of lookup capability for values, or if they do, it requires a slow scan of all values.Un magasin de clés/valeurs unique peut être extrêmement évolutif, étant donné quâil peut facilement distribuer des données entre plusieurs nÅuds sur des machines distinctes.A single key/value store can be extremely scalable, as the data store can easily distribute data across multiple nodes on separate machines.Un magasin de données de graphes gère deux types dâinformations, les nÅuds et les bords.A graph data store manages two types of information, nodes and edges.Les nÅuds représentent des entités et les bords définissent les relations entre ces entités.Nodes represent entities, and edges specify the relationships between these entities.Les nÅuds et les bords peuvent avoir des propriétés fournissant des informations sur ce nÅud ou ce bord, semblables aux colonnes dans une table.Both nodes and edges can have properties that provide information about that node or edge, similar to columns in a table.Les bords peuvent également avoir un sens indiquant la nature de la relation.Edges can also have a direction indicating the nature of the relationship.Un magasin de données de graphes vise à permettre à une application dâeffectuer efficacement des requêtes parcourant le réseau de nÅuds de bords et dâanalyser les relations entre des entités.The purpose of a graph data store is to allow an application to efficiently perform queries that traverse the network of nodes and edges, and to analyze the relationships between entities.Le diagramme suivant montre la structure de données du personnel dâune entreprise sous forme de graphe.The following diagram shows an organization's personnel data structured as a graph.Les entités sont les employés et les services, les bords indiquent les relations hiérarchiques et le service de chaque employé.The entities are employees and departments, and the edges indicate reporting relationships and the department in which employees work.Dans ce graphique, les flèches sur les bords indiquent le sens des relations.In this graph, the arrows on the edges show the direction of the relationships.Cette structure simplifie lâexécution de requêtes telles que « Trouver tous les employés qui rendent compte directement ou indirectement à Sarah » ou « Qui travaille dans le même service que John ?
Quelle est la différence entre ces deux types de bases de données et à quels moments sont-elles utilisées ? Les données sont simples à interroger, mais ne sont pas toujours classées en lignes et en colonnes comme dans une base de données relationnelle. Les SGBD relationnels peuvent être exploités à partir d'autres logiciels par l'intermédiaire d'Cette section est vide, insuffisamment détaillée ou incomplète. Une base de données non relationnelle est une base de données qui n'utilise pas le schéma tabulaire sous forme de lignes et de colonnes présent dans la plupart des systèmes de base de données plus traditionnels. scientfic documents from more than 5000 content providers. On peut considérer trois grandes classes de modèles : navigationnels, déclaratifs/relationnels, et post-relationnels.