Qu'est-ce qu'un modèle de représentation de données relationnelles ? Travail de cours : Modèle de données relationnelles. Composants structurels de base du modèle de données relationnelles

Ministère de l'Éducation de la Fédération de Russie Ministère de l'Éducation de la République du Tadjikistan

Université russo-tadjike (slave)

Département « Je et EST »

Travaux de cours

par discipline : Base de données

sur le thème de : Modèle de données relationnel

Douchanbé – 2008


Plan

Introduction

1 Modèle de données

2 Concepts de base du modèle de données relationnelles

3 Compréhension générale du modèle de données

Conclusion

Bibliographie


Introduction

L’humanité entre rapidement dans une ère d’information fondamentalement nouvelle. Toutes les composantes du mode de vie des gens évoluent de manière significative. Dans la société moderne, le niveau d'informatisation caractérise le niveau de développement de l'État. Les experts appellent le début du 21e siècle le siècle de l’informatique. Leur impact révolutionnaire concerne les structures gouvernementales et les institutions de la société civile, les domaines économique et social, la science et l'éducation, la culture et le mode de vie des gens. De nombreux pays développés et en développement ont pleinement pris conscience des énormes avantages que leur apporte le développement et la diffusion des technologies de l’information et de la communication. Personne ne doute que le mouvement vers une société de l’information constitue la voie vers l’avenir de la civilisation humaine.

Conformément au modèle relationnel, la base de données est représentée comme un ensemble de tables sur lesquelles des opérations peuvent être effectuées, formulées en termes d'algèbre relationnelle et de calcul relationnel. Dans le modèle relationnel, les opérations sur les objets de base de données sont de nature ensembliste. Les concepts du modèle de données relationnel sont associés au nom du célèbre spécialiste dans le domaine des systèmes de bases de données, E. Codd. C'est pourquoi le modèle de données relationnelles est souvent appelé modèle de Codd.

Le cœur de toute base de données est le modèle de données. Un modèle de données est un ensemble de structures de données, de contraintes d'intégrité et d'opérations de manipulation de données. À l'aide d'un modèle de données, les objets de domaine et les relations entre eux peuvent être représentés.


1 Modèle de données

Modèle de données– un ensemble de structures de données et de traitements.

Les modèles de données sont définis :

a) les manières d'organiser les données.

b) limiter la valeur des données.

c) opérations sur les données.

Un SGBD repose sur l'utilisation d'un modèle hiérarchique, réseau ou relationnel, une combinaison de ces modèles, ou un sous-ensemble d'entre eux.

Examinons 3 principaux types de modèles de données : hiérarchique, réseau et relationnel.

Modèle de données hiérarchique

a) Une structure hiérarchique représente un ensemble d'éléments interconnectés selon certaines règles. Les objets reliés par des relations hiérarchiques forment un graphe orienté (arbre inversé) dont l'apparence est présentée sur la figure 1.

Un niveau 1

B1 B2 B3 B4 B5 Niveau 2

C1 C2 C3 C4 C5 C6 C7 C8 Niveau 3

Riz. 1

Les concepts de base d'une structure hiérarchique comprennent : le niveau, l'élément (nœud), la connexion.

Noeud est un ensemble d'attributs de données qui décrivent un objet. Dans un arbre hiérarchique, les nœuds sont représentés sous forme de sommets dans le graphique. Chaque nœud d'un niveau inférieur est connecté à un seul nœud d'un niveau supérieur. Un arbre hiérarchique n'a qu'un seul sommet (la racine de l'arbre), qui n'est subordonné à aucun autre sommet et est situé au niveau supérieur (premier). Les nœuds dépendants (esclaves) sont situés au deuxième, au troisième, etc. les niveaux. Le nombre d'arbres dans les bases de données est déterminé par le nombre d'enregistrements racines. Chacun est situé dans la deuxième, troisième dimension et situé au niveau le plus élevé. exactement le même. Pour les enregistrements de base de données, il n’existe qu’un seul chemin hiérarchique à partir de l’enregistrement racine. Par exemple, comme le montre la figure 1 pour l'enregistrement C4, le chemin passe par les enregistrements A et B3.

L'exemple présenté dans la figure 2 illustre l'utilisation d'un modèle de base de données hiérarchique. Pour l'exemple considéré, la structure hiérarchique est légitime, car Chaque étudiant étudie dans un certain (un seul) groupe, qui appartient à un certain (un seul) institut.

b) Contrainte d'intégrité- l'intégrité des liens entre ancêtre et descendant, en tenant compte de la règle de base : aucun descendant ne peut exister sans ancêtre.

Exemples : 1) OK 3) TOTAL

2) INES 4) IMS

c) Opérations sur les données :

Recherchez l'arbre spécifié.

Passez d'un arbre à l'autre.

Passez d'une entrée à une autre.

Passez d'un enregistrement à un autre dans l'ordre de parcourir la hiérarchie.

Suppression de l'entrée actuelle.


Institut (spécialité, nom, recteur)


Riz. 3 Structure du réseau d'une base de données sous forme de graphe

Étudiant ( numéro du registre, nom, groupe)



Emploi ( chiffrer ,

superviseur,

Riz. 4.

Un exemple de structure de réseau complexe est la structure d'une base de données contenant des informations sur les étudiants participant à des travaux de recherche scientifique (R&D). Il est possible qu'un étudiant participe à plusieurs projets de recherche, ainsi que plusieurs étudiants participent au développement d'un projet de recherche. Une représentation graphique de l'exemple de structure de réseau, composé de seulement deux types d'enregistrements, est présentée dans la figure 4. Une relation unique représente une relation complexe entre les enregistrements dans les deux sens.

c) Opérations sur les données du modèle de données réseau :

Rechercher un enregistrement spécifique dans un ensemble d'enregistrements du même type.

Passez d'un nœud de niveau supérieur au premier nœud de niveau inférieur le long d'une connexion.

Accédez au nœud suivant le long d'une connexion.

Créez une nouvelle entrée.

Détruisez l'enregistrement.

Modifier l'entrée.

Activer 1 connexion.

Retirer de la communication.

Passez à une autre connexion.

Caractéristique du modèle de données réseau : la possibilité de naviguer dans les connexions de données, c'est-à-dire transition de l'affichage des détails d'une instance d'un type d'enregistrement à l'affichage des détails d'une instance associée au type d'enregistrement. L'utilisateur a la possibilité d'effectuer une analyse multicritère de la base de données sans formaliser directement ses besoins d'information grâce à la formation de requêtes dans le langage intégré au SGBD.

Un autre point fort du modèle de données réseau réside dans l’utilisation de plusieurs types de données pour décrire les attributs d’information des objets. Cela vous permet de créer des structures d'information qui représentent une forme tabulaire de données. Malgré le développement du modèle de données de réseau, il n'a pas été possible de créer un logiciel de langage basé sur celles-ci qui permettrait aux systèmes d'information appliqués de décrire les données d'une organisation en réseau dans de la même façon.

Modèle de données relationnel.

Le concept de relationnel (relation anglaise) est associé aux développements du célèbre spécialiste américain dans le domaine des systèmes de bases de données E. Codd.

2 Concepts de base du modèle de données relationnelles

Le modèle de données relationnelles représente les informations sous la forme d'un ensemble de tables liées appelées relations.

Type de données– est équivalent à la notion de type de données dans les langages algorithmiques. Exister:

Types entiers ;

Types réels ;

Types de chaînes ;

Types de données pour les valeurs monétaires ;

Types de données pour les quantités temporaires ;

Types d'objets binaires (n'a pas d'analogues dans les langages de programmation et est désigné par Blob)

La plus petite unité de données dans un modèle relationnel est une seule valeur de données atomique (indécomposable) pour un modèle donné. Domaine est un ensemble de valeurs atomiques du même type. En d'autres termes, un domaine est un ensemble potentiel valide de valeurs d'un type donné. Le concept de domaine est plus spécifique aux bases de données, bien qu'il présente certaines analogies avec les types de plage et les ensembles trouvés dans un certain nombre de langages de programmation. Dans sa forme la plus générale, un domaine est défini en spécifiant un type de données de base auquel appartiennent les éléments du domaine et une expression logique arbitraire appliquée à l'élément du type de données. Si l'évaluation de cette expression booléenne renvoie vrai, alors l'élément de données est un élément de domaine.

Il convient également de noter la charge sémantique de la notion de domaine : les données ne sont considérées comme comparables que si elles appartiennent au même domaine. Si les valeurs de deux attributs proviennent de domaines différents, alors les comparer n'a probablement aucun sens. La notion de domaine n'est pas utilisée dans tous les SGBD. Des exemples de bases de données relationnelles utilisant des domaines incluent Oxle et InterBase.

Attributs, schéma de relation, schéma de base de données

Les colonnes d'une relation sont appelées attributs et reçoivent des noms par lesquels on y accède ensuite.

Une liste de noms d'attributs de relation, suivis de noms de domaine (ou de types si les domaines ne sont pas pris en charge), est appelée schéma de relation.

Le degré d'une relation est le nombre de ses attributs. Une relation de degré un est appelée unaire, de degré deux - binaire, de degré trois - ternaire,... et de degré n - n-aire.

Un schéma de base de données est un ensemble de schémas de relations nommés.

Cortège

Un tuple correspondant à un schéma de relation donné est un ensemble de paires (nom d'attribut, valeur) qui contient une occurrence de chaque nom d'attribut appartenant au schéma de relation. « Valeur » est une valeur de domaine valide pour l'attribut (ou le type de données si le concept de domaine n'est pas pris en charge). Ainsi, le degré du tuple, c'est-à-dire le nombre d'éléments qu'il contient, coïncide avec le degré du schéma de relation correspondant. En d'autres termes, un tuple est une collection de valeurs nommées d'un type donné. Le schéma d'une relation est parfois également appelé tête de la relation, et la relation en tant qu'ensemble de tuples est parfois appelée corps de la relation. La notion de schéma de relation rappelle la notion de type de données structurel dans les langages de programmation (structure en C/C++, enregistrement en Pascal). Cependant, dans les bases de données relationnelles, le nom de schéma d'une relation est toujours le même que le nom de l'instance de relation correspondante. Dans les bases de données relationnelles classiques, une fois le schéma de la base de données défini, seules les relations entre instances sont modifiées. De nouveaux tuples peuvent y apparaître et les tuples existants peuvent être supprimés ou modifiés. Cependant, dans de nombreuses implémentations, il est également possible de modifier le schéma de la base de données : en définissant de nouveaux schémas de relation et en modifiant les schémas de relation existants. C'est ce qu'on appelle communément l'évolution du schéma de base de données.

Clés relationnelles

Puisqu'une relation est un ensemble d'un point de vue mathématique et que les ensembles, par définition, ne contiennent pas d'éléments correspondants, deux tuples d'une relation ne peuvent pas être des doublons l'un de l'autre à un moment arbitrairement donné. Ainsi, une relation doit toujours contenir un attribut (ou un ensemble d'attributs) qui identifie de manière unique chaque tuple de la relation et garantit l'unicité des lignes du tableau. Cet attribut (ou ensemble d'attributs) est appelé clé primaire de la relation.

Pour chaque relation, au moins l’ensemble complet de ses attributs possède la propriété d’unicité. Cependant, il faut également garantir la condition de minimalité. Par conséquent, en règle générale, il y a toujours un attribut dans une relation qui possède la propriété d'unicité et constitue la clé primaire.

Selon le nombre d'attributs inclus dans la clé, on distingue les clés simples et complexes (ou composites).

Une clé simple est une clé qui ne contient qu'un seul attribut. En général, les opérations de jointure sont plus rapides lorsque le type de données le plus court et le plus simple possible est utilisé comme clé. De ce point de vue, le meilleur type est un type entier, qui prend en charge matériellement l'exécution d'opérations logiques.

Une clé complexe ou composite est une clé composée de plusieurs attributs. Un ensemble d’attributs uniques mais non minimes est appelé super-clé. Une super-clé est une clé complexe (composite) avec plus de colonnes que nécessaire pour constituer un identifiant unique. De telles clés sont souvent utilisées en pratique, car la redondance peut être utile à l'utilisateur.

Selon que l'attribut qui est la clé primaire contient ou non des informations, on distingue les clés artificielles et naturelles.

Une clé artificielle ou de substitution est une clé créée par le SGBD lui-même ou par l'utilisateur à l'aide d'une procédure qui elle-même ne contient aucune information. Une clé artificielle est utilisée pour créer des identifiants de ligne uniques lorsqu'une entité doit être décrite dans son intégralité pour identifier de manière unique un élément spécifique. Une clé artificielle est souvent utilisée à la place d’une clé complexe significative, trop lourde pour être utilisée dans une base de données réelle. Le système conserve une clé artificielle, mais elle n'est jamais montrée à l'utilisateur.

Une clé naturelle est une clé qui inclut des attributs significatifs et contient donc des informations.

Chaque type de clé primaire a ses propres avantages et inconvénients ; Un grand nombre de publications sont consacrées à leur discussion. Nous ne les comparerons pas en détail, mais noterons seulement les principaux avantages et inconvénients de chaque type de clé.

Les principaux avantages des clés naturelles sont qu'elles transportent des informations très spécifiques et que leur utilisation n'entraîne pas la nécessité d'ajouter des attributs à des tables dont les valeurs n'ont aucune signification et ne servent qu'à communiquer entre les relations. En d'autres termes, l'utilisation de clés naturelles permet d'obtenir une forme de tableaux plus compacte (dans laquelle il n'y aura pas de données redondantes et non informatives) et des relations plus naturelles entre elles.

Le principal inconvénient des clés naturelles est que leur utilisation est très difficile en cas de variabilité du domaine. Il faut comprendre que les valeurs des attributs de clé primaire ne doivent pas changer. Autrement dit, une fois qu'une valeur de clé primaire pour un tuple est définie, elle ne peut pas être modifiée ultérieurement. Cette exigence vise principalement à maintenir l’intégrité de la base de données. Le lien entre les relations est généralement établi précisément par la clé primaire, et sa modification entraînera la perturbation de ces relations ou la nécessité de modifier les enregistrements de plusieurs tables. Même dans des bases de données relativement simples, cela peut entraîner un certain nombre de problèmes insolubles. Certains SGBD relationnels permettent de modifier la clé primaire. Parfois, cela peut être très utile. Cependant, il ne faut y recourir qu'en cas d'extrême nécessité.

Un exemple typique de domaine volatile dans lequel il est impossible de définir une clé naturelle immuable pour une entité est tout domaine dans lequel une personne est l'entité. En effet, il est impossible de définir pour une personne un ensemble d'attributs qui seraient uniques et inchangés tout au long de sa vie.

Le deuxième inconvénient assez important des clés naturelles est que, en règle générale, les clés naturelles uniques sont composites et contiennent des attributs de chaîne. Comme indiqué ci-dessus, la vitesse maximale d'exécution des opérations sur les données est obtenue lors de l'utilisation de simples clés entières. Ainsi, du point de vue des performances du système, les clés naturelles sont souvent sous-optimales.

Les deux inconvénients des clés naturelles peuvent être surmontés en définissant des clés de substitution dans les relations, qui sont un attribut universel, généralement de type entier, qui ne dépend ni du domaine ni, de plus, de la structure de la relation qu'il identifie. . De cette manière, l'unicité et l'immuabilité de la clé peuvent être assurées (puisqu'elle ne dépend en aucun cas du domaine, il ne sera jamais nécessaire de la modifier). Cependant, cela se fait au prix de la redondance des données dans les tableaux. Il convient de noter que de nombreuses implémentations pratiques de SGBD relationnels permettent de violer la propriété d'unicité des tuples pour les relations intermédiaires générées implicitement lors de l'exécution de requêtes. De telles relations ne sont pas des ensembles, mais des multiensembles, ce qui permet dans certains cas d'obtenir certains avantages, mais conduit parfois à de sérieux problèmes.

N'importe quelle table peut avoir plusieurs ensembles d'attributs qui peuvent être sélectionnés comme clé. De tels ensembles sont appelés clés candidates ou alternatives.

Souvent, les clés dites secondaires sont définies dans les relations. Une clé secondaire est une combinaison d'attributs différente de la combinaison qui constitue la clé primaire. De plus, les clés secondaires n’ont pas nécessairement la propriété d’unicité. Lors de leur définition, les restrictions suivantes peuvent être définies :

UNIQUE - contrainte d'unicité ; les valeurs des clés secondaires sous cette contrainte ne peuvent pas être dupliquées ;

NOTNULL - avec cette contrainte, aucun des attributs inclus dans la clé secondaire ne peut avoir la valeur NULL.

Les clés qui se chevauchent sont des clés complexes qui ont une ou plusieurs colonnes en commun.

Relations connexes

Dans le modèle relationnel, les données sont présentées comme une collection de tables interconnectées. Cette relation entre les tables est appelée relation. Ainsi, un autre concept important du modèle relationnel est le lien entre les relations.

Lors de l'examen des tables associées, le concept de clé étrangère est important. Regardons cela plus en détail.

Relations de clé étrangère

Dans les bases de données, les mêmes noms d’attributs sont souvent utilisés de différentes manières. Une clé étrangère est un attribut (ou un ensemble d'attributs) d'une relation qui est la clé d'une autre (ou de la même) relation.

Les clés étrangères sont utilisées pour établir des connexions logiques entre les relations. Une relation entre deux tables s'établit en affectant les valeurs de clé étrangère d'une table aux valeurs de clé de l'autre.

Comme toutes les autres clés, les clés étrangères peuvent être simples ou composées.

Souvent, la relation entre les relations est établie par une clé primaire, c'est-à-dire que les valeurs de la clé étrangère d'une relation se voient attribuer les valeurs de la clé primaire d'une autre relation. Cependant, cela n'est pas obligatoire : en général, la connexion peut également être établie à l'aide de clés secondaires. De plus, lors de l'établissement de relations entre tables, il n'est pas nécessaire d'exiger l'unicité de la clé utilisée pour établir la relation. Les attributs de clé étrangère ne doivent pas nécessairement avoir les mêmes noms que les attributs de clé auxquels ils correspondent. Une clé étrangère peut également référencer la même table à laquelle elle appartient. Dans ce cas, la clé étrangère est dite récursive.

Conditions d'intégrité des données

Pour garantir que les informations stockées dans la base de données sont univoques et cohérentes, le modèle relationnel établit certaines conditions restrictives. Les contraintes sont des règles qui définissent les valeurs possibles des données. Ils fournissent une base logique pour maintenir des valeurs de données correctes dans la base de données. Les contraintes d'intégrité aident à minimiser les erreurs qui se produisent lors de la mise à jour et du traitement des données.

· Les contraintes d'intégrité des données les plus importantes sont : l'intégrité catégorielle et l'intégrité référentielle.

La limitation de l’intégrité des catégories est la suivante. Les tuples de relations représentent des éléments de certains objets du monde réel ou, dans la terminologie des SGBD relationnels, des catégories de la base de données. La clé primaire de la table identifie de manière unique chaque tuple et donc chaque élément de catégorie. Ainsi, afin de récupérer ou de manipuler les données contenues dans une ligne de tableau, vous devez connaître la valeur de la clé de cette ligne. Par conséquent, une ligne ne peut pas être saisie dans la base de données tant que tous ses attributs de clé primaire n'ont pas été définis. Cette règle est appelée règle d'intégrité catégorielle et est brièvement énoncée comme suit : aucun attribut de clé primaire d'une ligne ne peut être vide.

La deuxième condition impose des restrictions sur les clés étrangères pour garantir l'intégrité des données, appelée intégrité référentielle.

Si deux tables sont liées, alors la clé étrangère de la table ne doit contenir que les valeurs qui font déjà partie des valeurs de la clé par laquelle la relation est établie. Si l'exactitude des valeurs des clés étrangères n'est pas contrôlée par le SGBD, alors l'intégrité référentielle des données peut être violée. Les contraintes d'intégrité catégorielle et référentielle doivent être prises en charge par le SGBD. Pour maintenir l'intégrité d'une entité, il suffit de s'assurer qu'il n'y a aucun tuple dans une relation avec la même valeur de clé primaire. Quant à l’intégrité référentielle, garantir l’intégrité ici est un peu plus compliqué. Lors de la mise à jour d'une relation de référencement (en insérant de nouveaux tuples ou en modifiant une valeur de clé étrangère dans des tuples existants), il suffit de s'assurer que des valeurs de clé étrangère incorrectes n'apparaissent pas. Mais lors de la suppression d'un tuple d'une relation référencée, il est possible d'utiliser l'une des trois approches suivantes, chacune préservant l'intégrité référentielle :

· la première approche est qu'il est interdit de supprimer un tuple auquel des références existent (c'est-à-dire que vous devez d'abord soit supprimer les tuples référencés, soit modifier leurs valeurs de clé étrangère en conséquence) ;

· dans la deuxième approche, lors de la suppression d'un tuple référencé, la valeur de la clé étrangère dans tous les tuples référençants devient automatiquement indéfinie ;

· La troisième approche (également appelée suppression en cascade) est que lorsqu'un tuple est supprimé d'une relation référencée, tous les tuples de référence sont automatiquement supprimés de la relation de référence.

Dans les SGBD relationnels matures, il est généralement possible de choisir comment maintenir l’intégrité référentielle pour chaque situation de définition de clé étrangère individuelle. Bien entendu, pour prendre une telle décision, il est nécessaire d’analyser les exigences d’un domaine d’application spécifique. Bien que la plupart des SGBD modernes appliquent l’intégrité référentielle, il ne faut pas oublier qu’il existe des SGBD relationnels qui n’appliquent pas de contraintes d’intégrité référentielle.

Types de relations entre les tables

Lors de l'établissement d'une relation entre deux tables, l'une d'elles sera la table principale (maître) et la seconde sera la table subordonnée (détail). La différence entre eux peut être quelque peu simplifiée comme suit. Dans la table principale, tous les enregistrements qu'elle contient sont toujours disponibles. Dans la table subordonnée, seuls les enregistrements pour lesquels la valeur des attributs de clé étrangère correspond à la valeur des attributs correspondants de l'enregistrement courant de la table principale sont disponibles. De plus, la modification de l'enregistrement actuel de la table principale entraînera des modifications dans l'ensemble des enregistrements disponibles de la table subordonnée, et la modification de l'enregistrement actuel dans la table subordonnée n'entraînera aucune modification dans aucune des tables. En pratique, plus de deux tables sont souvent liées. La même table peut être une table maître par rapport à une table et une table enfant par rapport à une autre. Ou encore, une table principale peut avoir non pas une mais plusieurs tables subordonnées. Cependant, une sous-table ne peut pas être contrôlée par deux tables. Ainsi, une table maître peut avoir plusieurs subordonnées, mais une table subordonnée ne peut avoir qu’une seule table primaire.

Il existe quatre types de relations entre les tables dans une base de données relationnelle :

· un à un - chaque enregistrement d'une table correspond à un seul enregistrement d'une autre table ;

· un à plusieurs - un enregistrement de la table principale peut correspondre à plusieurs enregistrements de la table subordonnée ;

· plusieurs à un ou plusieurs enregistrements de la table principale peuvent correspondre au même enregistrement de la table subordonnée ;

· plusieurs à plusieurs - un enregistrement de la table principale est associé à plusieurs enregistrements de la table subordonnée, et un enregistrement de la table subordonnée est associé à plusieurs enregistrements de la table principale.

La différence entre les types de relation un-à-plusieurs et plusieurs-à-un dépend de la table sélectionnée comme table maître et de la table sélectionnée comme table esclave.

Propriétés de base des relations

Considérons maintenant certaines des propriétés les plus importantes des relations dans le modèle de données relationnel.

3 Compréhension générale du modèle de données

Le concept de modèle de données peut être caractérisé de différentes manières. D'une part, un modèle de données est une manière de structurer les données, qui est considérée comme une sorte d'abstraction isolée du domaine. D'autre part, un modèle de données est un outil permettant de représenter le modèle conceptuel d'un domaine et la dynamique de son évolution sous la forme d'une base de données.

En tenant compte des deux aspects ci-dessus, nous définirons les principales structures des modèles de données utilisés pour représenter le modèle conceptuel du domaine (entités, attributs, relations).

Élément de données(champ) – la plus petite unité de données nommée. Utilisé pour représenter la valeur d'un attribut.

Enregistrer– une collection nommée de champs. Utilisé pour représenter une collection d'attributs d'une entité (enregistrement d'entité).

Instance d'enregistrement– un enregistrement avec des valeurs de champs spécifiques.

Agrégat– une collection nommée d’éléments de données au sein d’un enregistrement qui peut être considéré comme un tout unique.

Déposer– une collection nommée d'instances d'enregistrement du même type. Utilisé pour représenter un ensemble homogène d’entités.

Ensemble de fichiers– une collection nommée de fichiers traités dans le système. Utilisé pour représenter plusieurs ensembles d'entités.

Introduisons la notion de « groupe », qui généralise les notions d'« agrégat » et d'« enregistrement ».

Groupe est une collection nommée d'éléments de données ou d'éléments de données et d'autres groupes.

Le concept le plus important du modèle conceptuel est le concept de relations entre entités (ensembles d'entités). Dans les modèles de données, le concept correspondant se reflète dans le concept de « relation de groupe ».

Attitude de groupe– une relation binaire nommée définie sur deux ensembles d'instances des groupes considérés. En fonction de la nature des relations binaires, on distingue les relations de groupe de type 1:1, 1:M, M:1, M:N. Les paires de nombres sont appelées coefficients de rapport de groupe. Dans une relation de groupe, un membre du groupe est désigné comme propriétaire de la relation et l'autre comme membre.

Base de données– une collection nommée d’instances de groupes et de relations de groupe.

Deux formes sont utilisées pour représenter une relation de groupe :

UN) Graphovaya. Les groupes sont représentés par les sommets du graphique, les connexions entre les groupes sont représentées par des arcs dirigés du groupe propriétaire vers le groupe membre, indiquant le nom de la relation et le coefficient.

Par type de graphiques il y a :

---------------- modèle hiérarchique (graphe sans cycles - arbre) ;

---------------- modèle de réseau (graphe orienté général).

b) Tabulaire. La relation entre les groupes est représentée par un tableau dont les colonnes représentent les clés des groupes correspondants. Pour décrire formellement un tableau, le concept mathématique (théorique des ensembles) de relation est utilisé. Le modèle de données correspondant est appelé modèle relationnel.

Le modèle de données est décrit comme suit :

---------------- les types et les caractéristiques des structures de données logiques sont déterminés

(champs, enregistrements, fichiers) ;

---------------- les règles de composition de structures d'un type plus général à partir de structures de types plus simples sont décrites ;

​Les actions possibles sur les structures et leurs règles sont décrites

exécutions, notamment :

− opérations élémentaires de base sur les données ;

− opérations généralisées (procédures) ;

− des moyens de contrôler des conditions relativement simples pour l'exactitude de la saisie des données (restrictions) ;

− des moyens de surveillance, aussi complexes soient-elles, des conditions pour la bonne exécution de certaines actions (règles). Sont habituellement considérées comme opérations élémentaires de base : la recherche d'un enregistrement avec une valeur de clé donnée, la lecture de l'enregistrement souhaité, l'ajout d'un enregistrement, la mise à jour, la suppression. Les modèles de données fournissent également des opérations spéciales pour établir des relations de groupe.

Les opérations ou procédures généralisées sont une séquence d'opérations qui mettent en œuvre un algorithme de traitement de données spécifique. Les procédures peuvent être initiées automatiquement par le SGBD ou peuvent également être lancées par l'utilisateur. Des exemples de procédures sont les procédures de copie d'une base de données, de restauration d'une base de données, les procédures qui calculent les valeurs de certains attributs de la base de données à partir des valeurs d'autres attributs, etc.

Les contrôles sont utilisés pour appliquer les contraintes d'intégrité du modèle conceptuel. Les contrôles de contraintes les plus simples sont utilisés pour implémenter à la fois les contraintes externes du modèle conceptuel et les contraintes internes du modèle de données. Comme dernières restrictions, notamment, des restrictions ont été mises en place sur la saisie de données de type inapproprié, de caractéristiques inappropriées (par le nombre de bits, par le nombre de champs, par le nombre d'enregistrements, etc.). Des outils de contrôle plus complexes (règles) vous permettent de déclencher l'exécution d'une certaine séquence d'opérations (aussi complexe soit-elle) lors de la modification ou de l'ajout de données à la base de données et ainsi de mettre en œuvre des contraintes d'intégrité décrites à l'aide de constructions spéciales.


Conclusion

Lorsque nous avons parlé des concepts de base des bases de données relationnelles dans les sections précédentes, nous ne nous sommes appuyés sur aucune implémentation spécifique. Ces considérations s’appliquaient également à tout système dans la construction duquel une approche relationnelle était utilisée. En d’autres termes, nous avons utilisé les concepts du modèle de données dit relationnel. Le modèle de données décrit un certain ensemble de concepts et de caractéristiques génériques que tous les SGBD spécifiques et les bases de données qu'ils gèrent doivent avoir s'ils sont basés sur ce modèle. Disposer d'un modèle de données vous permet de comparer des implémentations spécifiques à l'aide d'un langage commun. Bien que le concept de modèle de données soit général, et on peut parler de hiérarchie, de réseau, de sémantique, etc. modèles de données, il convient de noter que ce concept a été introduit en relation avec les systèmes relationnels et est utilisé le plus efficacement dans ce contexte. Les tentatives d'appliquer directement des modèles similaires aux organisations pré-relationnelles montrent que le modèle relationnel est trop « grand » pour elles, et pour les organisations post-relationnelles, il s'avère « petit ».


Bibliographie

1. Ordinateurs au bureau et à la maison : Bases de données relationnelles : 2004. 228 p.

2. Michie D., Jonathon R. SGBD relationnel. 2004 N° 8, page 4

3. www.libbooks.ru (2006 à 2008. Section : Base de données).

4. www.bankreferatov.ru (2004 à 2008. Section : Base de données).

5. Jones E., Sutton D. utilisateur d'Office 97. / K. : Dialectique, 1999.

6. Petrov V.N. Systèmes d'information : un manuel pour les étudiants des établissements d'enseignement supérieur, 2003. 2e éd. page 139

Modèle relationnel Les données (RMD) d'un certain domaine sont un ensemble de relations qui changent au fil du temps. Lors de la création d'un système d'information, un ensemble de relations permet de stocker des données sur les objets du domaine et de modéliser les connexions entre eux. Les éléments du RMD et les formes de leur présentation sont donnés dans le tableau. 3.1.

Tableau 3.1 Éléments du modèle relationnel

Attitude est un concept essentiel et est un tableau bidimensionnel contenant des données.

Essence Il existe un objet de toute nature dont les données sont stockées dans une base de données. Les données d'entité sont stockées dans une relation.

Les attributs représentent les propriétés qui caractérisent une entité. Dans la structure du tableau, chaque attribut est nommé et correspond à l'en-tête d'une certaine colonne du tableau.
Mathématiquement, la relation peut être décrite comme suit. Soit n ensembles Dl, D2, D3,..., Dn, alors la relation R est l'ensemble des éléments ordonnés tuples, où est nsp ? Nsp, nsp- attribut, un Dk - domaine Relations R.

En général, l'ordre des tuples dans une relation, comme dans tout ensemble, n'est pas défini. Cependant, dans les SGBD relationnels, les tuples sont toujours ordonnés pour des raisons de commodité. Le plus souvent, à cet effet, un attribut est sélectionné, par lequel le système trie automatiquement les tuples par ordre croissant ou décroissant. Si l'utilisateur n'attribue pas d'attribut de classement, le système attribue automatiquement un numéro aux tuples dans l'ordre dans lequel ils sont saisis. Formellement, si vous réorganisez les attributs dans une relation, vous obtenez une nouvelle relation. Cependant, dans les bases de données relationnelles, la réorganisation des attributs ne conduit pas à la formation d’une nouvelle relation.

Domaine représente l'ensemble de toutes les valeurs possibles d'un attribut particulier d'une relation. La relation EMPLOYÉ comprend 4 domaines. Domaine 1 contient les noms de tous les employés, domaine 2- les numéros de tous les départements de l'entreprise, domaine 3- les noms de tous les postes, domaine 4- les dates de naissance de tous les salariés. Chaque domaine produit des valeurs d'un type de données, tel que numérique ou caractère.

La relation EMPLOYEE contient 3 tuples. Le tuple de la relation considérée est constitué de 4 éléments, chacun étant sélectionné dans le domaine correspondant. Chaque tuple correspond à une ligne du tableau.

Schéma de relation (en-tête de relation) est une liste de noms d'attributs. Par exemple, pour l'exemple donné, le diagramme de relations a la forme EMPLOYÉ (Nom, Département, Poste, D_Birth). L'ensemble des tuples propres d'une relation est souvent appelé contenu (corps) de la relation.

Clé primaire (clé de relation, clé d'attribut) est un attribut d'une relation qui identifie de manière unique chacun de ses tuples. Par exemple, par rapport à EMPLOYÉ (nom complet, service, poste, date de naissance), l'attribut clé est « nom complet ». Clé Peut être composé (complexe), c'est-à-dire composé de plusieurs attributs.

Chaque relation possède nécessairement une combinaison d’attributs qui peuvent servir de clé. Son existence est garantie par le fait qu'une relation est un ensemble qui ne contient pas d'éléments identiques - les tuples. Autrement dit, il n'y a pas de tuples répétitifs dans la relation, ce qui signifie qu'au moins l'ensemble des attributs a la propriété d'identifier de manière unique les tuples dans la relation. De nombreux SGBD vous permettent de créer des relations sans définir de clés.

Il peut y avoir des cas où une relation possède plusieurs combinaisons d'attributs, chacune identifiant de manière unique tous les tuples de la relation. Toutes ces combinaisons d'attributs sont clés possibles relation. N'importe laquelle des clés possibles peut être choisie comme primaire.

Si la clé primaire choisie comprend l’ensemble minimum d’attributs requis, on dit qu’elle est pas redondant.

Les clés sont généralement utilisées pour atteindre les objectifs suivants :

1) éliminer la duplication des valeurs dans les attributs clés (les autres attributs ne sont pas pris en compte) ;

2) commander des tuples. Il est possible de trier par valeurs ascendantes ou décroissantes de tous les attributs clés, ainsi que par ordre mixte (pour certains - croissant et pour d'autres - décroissant) ;

3) accélération du travail avec les tuples de relations (sous-section 3.2) ;

4) organiser l'enchaînement des tableaux (sous-section 3.3).

Soit la relation R1 pas de clé attribut A dont les valeurs sont les valeurs clé attribut B d'une autre relation R2. Alors ils disent que l’attribut A de la relation R1 est clé externe.

Les clés étrangères sont utilisées pour établir des connexions entre les relations. Par exemple, il existe deux relations ÉTUDIANT (Nom, Groupe, Spécialité) et SUJET (Nom du Pr., Heures), qui sont reliées par la relation ETUDIANT_SUBJET (Nom, . Nom du Pr. Grade) (Fig. 3.2). Dans une relation de connexion, les attributs Nom complet et Nom du Pr. forment une clé composite. Ces attributs représentent des clés étrangères, qui sont les clés primaires d'autres relations.

Le modèle relationnel impose une contrainte sur les clés étrangères pour garantir l'intégrité des données, appelée intégrité référentielle. Cela signifie que chaque valeur de clé étrangère doit avoir des lignes correspondantes dans les relations associées.

Puisque toutes les tables ne peuvent pas être associées à une relation, nous présentons les conditions dont la réalisation permet à la table d'être considérée comme une relation.

1. Toutes les lignes de la table doivent être uniques, c'est-à-dire qu'il ne peut pas y avoir de lignes avec les mêmes clés primaires.

2. Les noms des colonnes du tableau doivent être différents et leurs valeurs doivent être simples, c'est-à-dire qu'un groupe de valeurs​​dans une colonne d'une ligne n'est pas autorisé.

3. Toutes les lignes d'un tableau doivent avoir la même structure, correspondant aux noms et types des colonnes.

4. L’ordre des lignes du tableau peut être arbitraire.

Le plus souvent, un tableau avec une relation est placé dans un fichier séparé. Dans certains SGBD, une seule table (relation) est considérée comme une base de données. Dans d'autres SGBD, la base de données peut contenir plusieurs tables.

En général, on peut considérer qu'une base de données comprend une ou plusieurs tables, unies par un contenu sémantique, ainsi que des procédures de contrôle de l'intégrité et du traitement des informations dans le but de résoudre certains problèmes d'application. Par exemple, lors de l'utilisation du SGBD Microsoft Access, le fichier de base de données, ainsi que les tables, stocke également d'autres objets de base de données : requêtes, rapports, formulaires, macros et modules.

Le tableau de données est généralement stocké sur un disque magnétique dans un fichier distinct du système d'exploitation. Il peut donc y avoir des restrictions quant à son nom. Les noms de champs sont stockés dans des tables. Les règles de leur formation sont déterminées par le SGBD, qui, en règle générale, n'impose pas de restrictions sérieuses sur la longueur des champs et l'alphabet utilisé.

Si la relation spécifiée par la table a une clé, alors la table est considérée comme ayant également une clé et est appelée clé ou table avec champs clés.

Pour la plupart des SGBD, le fichier table comprend une partie contrôle (description des types de champs, noms de champs et autres informations) et une zone de stockage des enregistrements.

Un système d’opérations peut être appliqué aux relations, permettant de dériver l’une d’une autre. Par exemple, le résultat d'une requête adressée à une base de données relationnelle peut être une nouvelle relation calculée sur la base de relations existantes. Par conséquent, il est possible de diviser les données traitées en parties stockées et calculées. L'unité principale de traitement des données dans les bases de données relationnelles est la relation, et non ses tuples individuels (enregistrements).

Indexage

Comme indiqué ci-dessus, définir une clé pour une table signifie trier automatiquement les enregistrements, garantir que les champs clés des enregistrements ne sont pas dupliqués et augmenter la vitesse de recherche dans la table. Pour implémenter ces fonctions dans le SGBD qu'ils utilisent indexage. Le terme « index » est étroitement lié au concept de « clé », bien qu'il existe quelques différences entre eux.

Sous indice comprendre le remède accélération les opérations de recherche d'enregistrements dans une table, et donc d'autres opérations faisant appel à la recherche : récupération, modification, tri, etc. Une table pour laquelle un index est utilisé est appelée indexé.

L'indice joue un rôle table des matières table, dont la visualisation précède l'accès aux enregistrements de la table. Certains systèmes, tels que Paradox, stockent les index dans des fichiers d'index stockés séparément des fichiers de table.

Les options pour résoudre le problème de l'organisation de l'accès physique à l'information dépendent principalement des facteurs suivants :

Le type de contenu dans le champ clé des enregistrements du fichier d'index ;

Le type de liens (pointeurs) utilisés vers l'enregistrement de la table principale ;

Une méthode pour trouver les enregistrements requis.

Sur le terrain clé du fichier d'index vous pouvez stocker les valeurs des champs clés de la table indexée ou une convolution de la clé (ce qu'on appelle le code de hachage). L'avantage de stocker un code de hachage au lieu d'une valeur est que la longueur de la convolution, quelle que soit la longueur de la valeur originale du champ clé, a toujours une valeur constante et assez petite (par exemple, 4 octets), ce qui est significatif. réduit le temps des opérations de recherche. L'inconvénient du hachage est la nécessité d'effectuer une opération de convolution (nécessite un certain temps), ainsi que la lutte contre les collisions (une convolution de valeurs différentes peut donner le même code de hachage).

Absolu (réel)

Relatif

Symbolique (identifiant).

En pratique, on utilise le plus souvent deux méthodes de recherche:

Cohérent

Binaire (basé sur la division de l'intervalle de recherche en deux).

Illustrons l'organisation de l'indexation des tables avec deux schémas : à un seul niveau et à deux niveaux. Dans le même temps, nous accepterons un certain nombre d'hypothèses qui sont généralement faites dans les systèmes informatiques... Laissez le système d'exploitation prendre en charge l'organisation directe des données sur des disques magnétiques, les tables principales et les fichiers d'index sont stockés dans des fichiers séparés. Les informations sur les fichiers sont stockées sous la forme d'un ensemble de blocs de taille fixe, par exemple un nombre entier de clusters.

À schéma à un seul niveau Le fichier d'index stocke les enregistrements courts qui comportent deux champs : le champ de contenu de la clé haute (code de hachage de clé) du bloc adressé et le champ d'adresse du début de ce bloc. Dans chaque bloc, les enregistrements sont classés par ordre croissant de valeur clé ou de cumul. La clé la plus significative de chaque bloc est la clé de son dernier enregistrement.

Si le fichier d'index stocke les codes de hachage des champs clés de la table indexée, alors l'algorithme permettant de trouver l'enregistrement souhaité (avec la clé spécifiée) dans la table comprend les trois étapes suivantes.

1. Formation d'une convolution de la valeur du champ clé de l'enregistrement recherché.

2. Rechercher dans le fichier d'index un enregistrement sur un bloc dont la valeur du premier champ est supérieure à la convolution résultante (cela garantit que la convolution souhaitée est trouvée dans ce bloc).

3. Visualisation séquentielle des enregistrements de bloc jusqu'à ce que les convolutions de l'enregistrement souhaité et de l'enregistrement de bloc de fichier correspondent. Dans le cas de collisions, un enregistrement est recherché dont la valeur de clé correspond à la valeur de clé de l'enregistrement recherché.

Principal désavantage La conception à un seul niveau est que les clés (convolutions) des enregistrements sont stockées avec les enregistrements. Cela entraîne une augmentation du temps de recherche des enregistrements en raison de la grande longueur de la recherche (les valeurs des données dans les enregistrements doivent être ignorées).

Schéma à deux niveaux dans certains cas, cela s'avère plus rationnel, dans lequel les clés (convolutions) des enregistrements sont séparées du contenu des enregistrements (Fig. 3.4). Dans cette conception, l'index de la table principale est réparti sur une collection de fichiers : un fichier d'index principal et plusieurs fichiers de blocs clés.

En pratique, pour créer un index pour une certaine table de base de données, l'utilisateur spécifie un champ de table qui nécessite une indexation. Les champs clés d'une table dans de nombreux SGBD sont généralement indexés automatiquement. Les fichiers d'index créés sur les champs clés d'une table sont souvent appelés fichiers d'index primaires.

Les index créés par l'utilisateur sur des champs non clés sont parfois appelés index secondaires (personnalisés). L'introduction de tels index ne modifie pas la disposition physique des enregistrements de table, mais affecte l'ordre dans lequel les enregistrements sont visualisés. Les fichiers d'index créés pour conserver les index secondaires sur une table sont communément appelés fichiers d'index secondaires.

Un index secondaire peut être associé aux éléments de données de base de données de différentes manières. La première consiste à utiliser un index secondaire comme entrée pour obtenir une clé primaire, qui est ensuite recherchée pour les enregistrements requis à l'aide de l'index primaire.

Certains SGBD, par exemple Access, ne divisent pas les index en primaire et secondaire. Dans ce cas, des index créés automatiquement et des index définis par l'utilisateur sur l'un des champs non clés sont utilisés.

La principale raison de l'augmentation de la vitesse des diverses opérations sur les tables indexées est que la plupart du travail est effectué sur de petits fichiers d'index plutôt que sur les tables elles-mêmes. Le plus grand effet d'augmentation des performances de travail avec les tables indexées est obtenu pour les tables de taille significative. L'indexation nécessite peu d'espace disque supplémentaire et peu de surcharge du processeur pour modifier les index au cours de son exécution. Dans le cas général, les index peuvent être modifiés avant d'exécuter des requêtes de base de données, après l'exécution de requêtes de base de données, par des commandes utilisateur spéciales ou des appels de programme d'application.

Lier des tables

Lors de la conception de bases de données réelles, les informations sont généralement placées dans plusieurs tableaux. Les tables sont liées par la sémantique de l'information. Dans les SGBD relationnels, pour indiquer les relations entre les tables, ils effectuent l'opération obligatoire.

Indiquons le gain apporté par l'enchaînement des tables. De nombreux SGBD, lors de la liaison des tables, surveillent automatiquement l'intégrité de celles saisies dans la base de données conformément aux liens établis. En fin de compte, ceci augmente la crédibilité informations stockées dans la base de données. De plus, établir une relation entre les tables facilite l'accès aux données. La liaison de tables lors de l'exécution d'opérations telles que la recherche, l'affichage, la modification, la récupération et la création de rapports offre généralement la possibilité d'accéder à des champs arbitraires d'enregistrements associés. Cela réduit le nombre d'appels explicites aux tables de données et le nombre de manipulations dans chacune d'elles.

Cette série d'articles décrit un modèle d'ondes cérébrales très différent des modèles traditionnels. Je recommande fortement à ceux qui viennent de nous rejoindre de commencer à lire dès la première partie.

En 1970, Edgar Codd publie un article (Codd, 1970) dans lequel il décrit les bases du modèle de stockage de données relationnelles. Toutes les bases de données relationnelles modernes sont devenues la mise en œuvre pratique de ce modèle. La formalisation du modèle a conduit à la création du calcul relationnel et de l'algèbre relationnelle.

L'élément principal du modèle relationnel est le tuple. Un tuple est un ensemble ordonné d’éléments dont chacun appartient à un ensemble spécifique ou, en d’autres termes, possède son propre type. Une collection de tuples de structure similaire forme une relation.

Tout cela apparaît un peu plus clairement dans les termes utilisés dans les bases de données (figure ci-dessous). Une relation est une table avec des données. Un tuple est une ligne de tableau. Le type de tuples contenus dans une relation, ou de manière équivalente, le format des lignes dans un tableau, est déterminé par l'en-tête de la relation ou du tableau. Chacune des colonnes du tableau forme un domaine. Les valeurs que peuvent prendre les éléments du domaine sont appelées attributs. Les lignes du tableau sont une collection d'attributs correspondant aux domaines.


Exemple de relation (Zaborov)

Les lignes du tableau peuvent être identifiées par leurs attributs, c'est-à-dire par les valeurs que prennent les éléments du tuple. Le contenu même du tuple le rend différent des autres. Mais il se peut que certaines chaînes correspondent dans leurs attributs. La coïncidence en elle-même n'est pas terrible, mais elle ne permet plus d'utiliser un tel ensemble d'attributs pour identifier de manière unique les tuples dans une relation. Pour garantir une identification sans ambiguïté, saisissez un champ clé qui prend une valeur unique pour chaque ligne. Une telle clé peut porter une charge sémantique ou simplement être un nombre généré artificiellement.

La collection de toutes les relations définit la base de données. Chaque relation stocke sa propre partie logique de l'information. Pour obtenir certaines informations, il peut être nécessaire de comparer les informations provenant de différentes relations. Codd a décrit huit opérations de base de l'algèbre relationnelle qui permettent la manipulation de tuples :

  • Une association;
  • Intersection;
  • Soustraction;
  • Produit cartésien;
  • Échantillon;
  • Projection;
  • Composé;
  • Division.
Une propriété remarquable de l’algèbre relationnelle est son caractère fermé, c’est-à-dire que les opérations sur les relations sont spécifiées de telle manière que le résultat lui-même est une relation. Autrement dit, en ayant plusieurs tables et en effectuant les opérations appropriées sur elles, nous obtiendrons également une table.

La signification de nombreuses opérations coïncide avec les opérations correspondantes de la théorie des ensembles. Une idée générale de leur essence est donnée par la figure ci-dessous.


Exemple d'opérations sur des tuples (Fences)

Il est important que différentes relations puissent contenir des domaines du même type. Cela signifie que si deux tuples contiennent les mêmes domaines et les mêmes attributs à l'intérieur, alors nous pouvons parler d'une certaine connexion entre les tuples contenant ces attributs. En d'autres termes, si différentes lignes d'un tableau dans l'une des colonnes ont les mêmes valeurs, alors nous pouvons parler d'un certain lien entre ces lignes. Ou si différentes tables ont des colonnes (domaines) ayant la même signification, alors les lignes avec les mêmes valeurs dans ces colonnes sont liées les unes aux autres.

L'opération de projection permet d'obtenir des relations constituées d'une partie des éléments des relations d'origine, limitant l'ensemble des domaines utilisés. L'échantillonnage ou la sélection permet d'obtenir des relations contenant uniquement les tuples dont les champs satisfont aux conditions de sélection. Par exemple, vous pouvez sélectionner uniquement les tuples dont les domaines spécifiés ont des valeurs d'attribut spécifiées.

L'ensemble de toutes les opérations sur les relations permet d'extraire toute information intéressante de la base de données et de la former sous la forme d'une relation (table) avec des propriétés prédéfinies (en-tête).

Le modèle de données relationnelles n’est pas né par hasard, mais est une conséquence de la nécessité de fonctionner avec de grands volumes de données diverses. Il s'est avéré qu'une telle structure de stockage de données et les opérations définies dans cette structure sont pratiques pour résoudre un large éventail de problèmes appliqués. On peut supposer que la nature aurait pu trouver une solution similaire grâce à la sélection naturelle.

Le système d’identifiants, de concepts et de mémoire d’événements que nous décrivons est à bien des égards très similaire au modèle relationnel. Plusieurs analogies peuvent être données :

  • Un neurone fonctionne avec des informations provenant de plusieurs segments dendritiques, chacun étant adapté à un type de données spécifique. Les segments dendritiques du même type peuvent être cartographiés sur un domaine spécifique ;
  • Les combinaisons de concepts décrivant des informations spécifiques à un segment dendritique correspondent à des attributs trouvés dans le domaine ;
  • Les concepts utilisés par la zone corticale et les identifiants qui définissent la structure des paquets propres à cette zone déterminent la structure des domaines (en-tête) ;
  • L'utilisation de concepts communs dans la projection d'informations entre zones correspond à l'utilisation de domaines communs à différents égards ;
  • L’ensemble des aires corticales qui constituent le cerveau correspond à l’ensemble des relations qui constituent la base de données ;
  • L'associativité, entre mémoires, correspond à la parenté à travers les attributs communs de différents tuples ;
  • La distribution des souvenirs à travers les aires corticales correspond à la façon dont un événement peut générer plusieurs tuples dans des relations différentes, unis par une seule clé unique ;
  • Une onde décrivant l’état actuel du cerveau peut agir comme une requête adressée à une base de données. Tout comme le résultat d’une opération sur les relations est une relation, la réponse du cerveau peut être un ensemble de descriptions associativement liées, combinées en un seul modèle d’onde.
Bien entendu, il n’existe pas de correspondance exacte entre notre modèle cérébral et les systèmes relationnels. L'architecture du cerveau est beaucoup plus riche, car elle résout non seulement les problèmes de stockage et de récupération des données, mais également de nombreuses autres fonctions combinées à celles-ci. Cependant, même les similitudes existantes nous permettent de mieux comprendre l'essence des processus d'information se déroulant dans le cortex.

La structure de données principale du modèle relationnel (RMD) est attitude, Le modèle est donc dit relationnel.

En RMD données organisées en tableaux, qui doit satisfaire à certaines restrictions, et peut être considéré comme relation.

La représentation tabulaire a été proposée par un mathématicien américain E.F. morue au début des années 70 et mis en œuvre par IBM au début des années 80. Un tableau bidimensionnel est l'un des moyens les plus simples de présenter des données à un utilisateur ou à un programmeur.

Représentation tabulaire de la relation "Employés" est donné dans le tableau 1.

Tableau 1. Relation "Employés" - table "Employés"

RMD utilise des termes relationnels formels qui peuvent être remplacés par des termes informels. La correspondance entre les termes formels et informels est présentée dans le tableau 2.

Tableau 2. Correspondance entre les termes RMD informels et formels

Le modèle repose sur une base théorique sérieuse - théorie des ensembles et logique mathématique.

Concepts de base du modèle relationnel :

- type de données, valeur ;

- domaine;

- attribut;

- cortège de voitures;

- clé;

- attitude.

Concept Type de données est équivalent au concept de type de données dans les langages algorithmiques. Valeur atomique les données sont la plus petite unité de données indivisible du RMD.

Domaine est un ensemble potentiel de valeurs atomiques valides du même type. Les données sont considérées comme comparables uniquement lorsqu'elles se réfèrent au même domaine. Par exemple, le numéro de groupe et le numéro d'identification d'étudiant ont le même type - entier, mais appartiennent à des domaines différents, leur comparaison n'a donc aucun sens.

Attribut est une colonne de relation nommée, les valeurs des éléments de la colonne doivent provenir du même domaine.

Soit un ensemble de domaines D 1 , D 2 ,…,D N (pas nécessairement différents).

Cortège les relations sont un ensemble de N valeurs disposées dans un ordre strictement défini (d 1, d 2,...,d N), tel que d 1 appartient à D 1, d 2 appartient à D 2 et d N appartient à D N. Le nombre d’éléments dans un tuple est appelé arité.



Produit cartésien complet domaines D 1 x D 2 x…x D N est un ensemble de tous les tuples différents possibles d'arité N, où chaque élément du tuple est extrait de son propre domaine (exemple : D1(Nogr), D2(Fam_stud), D3(Type )).

Rapport, défini sur ces N domaines, est un sous-ensemble du produit cartésien complet des domaines d'origine.

Diagramme de relation nommer une liste de noms d’attributs de relation indiquant des domaines ou des types d’attributs. Lorsque le nombre d’attributs est égal à N, on parle de relation N-aire. Schéma de relation – ligne d’en-tête du tableau.

Un tuple correspondant à un schéma de relation donné est un ensemble de paires (nom d'attribut, valeur) qui contient une occurrence de chaque nom d'attribut appartenant au schéma de relation.

La clé première de la relation est est un attribut ou un ensemble d'attributs qui identifie de manière unique chaque tuple dans une relation et garantit que les lignes sont uniques. La clé peut être simple (à partir d'un attribut) ou complexe (composée de plusieurs attributs).

Les propriétés d'une clé sont l'unicité et la minimalité. Pour chaque relation, au moins l’ensemble complet de ses attributs possède la propriété d’unicité. La clé doit être minimale, c'est-à-dire aucun champ n'est redondant pour identifier de manière unique une ligne dans une table ; la suppression d'un champ d'une clé rompt l'identification.

De nombreux objets ont des identifiants, on peut alors parler d'une clé naturelle contenant des informations sur l'objet, par exemple des données de passeport personnel. Une clé artificielle ou de substitution est générée par le système et ne contient généralement pas d'informations significatives, telles que le numéro d'école de l'élève, c'est-à-dire en dehors du système, cela n’a aucun sens.

Limites du modèle relationnel(propriétés du tableau) :

1. Chaque table porte un nom unique, représente un objet réel ou définit une relation entre des objets, et se compose de lignes du même type correspondant aux tuples de la relation et de colonnes correspondant aux attributs de la relation.

2. Chaque élément du tableau doit être atomique, c'est à dire. indivisible.

3. Toutes les lignes ont la même structure avec un nombre fixe de champs et de valeurs. Il ne peut pas y avoir deux lignes identiques dans un tableau (découle de la définition de la relation). Les lignes diffèrent les unes des autres par au moins une valeur.

4. Chaque colonne reçoit un nom unique. Les éléments d'une même colonne doivent être homogène, extrait d'un domaine.

5. Dans les opérations sur les tableaux, les lignes et les colonnes peuvent être visualisées dans n'importe quel ordre. Il n'y a pas d'ordre des tuples, mais les domaines sont ordonnés au sein d'une relation. Mais l’ordre dans lequel les colonnes nommées sont accessibles n’a plus d’importance non plus.

6. Chaque table doit avoir clé primaire. La clé permet de retrouver une seule ligne dans le tableau. Les tuples sont indexés par clé, ce qui accélère le traitement des données. Les clés sont utilisées pour relier logiquement les tables.

Une forme plus courte de l'entrée du tableau « Employés » ou diagramme de relation« Employés » (la clé primaire de la relation est soulignée) :

Employés( Numéro_onglet, Nom, Département, Date de naissance, Poste, Salaire)

En général, le diagramme de relation s'écrit

R(a 1 , a 2 , ..., a N), où a i est le nom du i-ème attribut de la relation R.

RBD est un ensemble de relations interconnectées. Circuit RDB faire référence à l'ensemble des schémas de relations nommés utilisés pour représenter les informations et les valeurs actuelles des relations sous forme de base de données. Dans la représentation physique, chaque relation correspond à un fichier de base de données, une instance d'une relation correspond à un enregistrement de fichier de base de données et des attributs de relation correspondent à des champs d'un enregistrement de fichier de base de données.

Un sous-schéma, étant une projection du schéma de base de données, contient uniquement les relations et uniquement les attributs de ces relations qui sont utilisés par le programmeur d'application pour résoudre une tâche spécifique (requête).

Lors de la description d'un sous-schéma de base de données, toutes les restrictions nécessaires peuvent être spécifiées, par exemple : un mot de passe d'accès à une relation ou à ses attributs, un mode de traitement d'une relation ou de ses attributs - « lecture seule » ou « lecture et écriture » et autres.

Le sous-schéma de la base de données peut également contenir des attributs virtuels - ce ne sont pas des attributs de relation stockés dans la base de données, mais calculés algorithmiquement pour une tâche spécifique (requête). Également dans le sous-schéma de la base de données, les méthodes de classement des données peuvent être modifiées (c'est-à-dire que d'autres clés sont attribuées), les types de données (numériques - remplacés par des clés symboliques et vice versa). Parallèlement, le SGBD assure l'exécution automatique de tous ces processus.

La particularité de RMD est que les deux objets et les relations entre eux sont présentés sous une seule forme, sous forme de tableaux.

Contrairement aux modèles hiérarchiques et en réseau communications entre les relations sont maintenues implicitement. Le RMD prend en charge les connexions binaires telles que « 1:1 », « 1:M », « M:1 ». Dans chaque connexion, une relation agit comme la relation principale (du côté 1) et l'autre comme subordonnée (du côté M). Cela signifie qu'un tuple d'une relation principale peut être associé à plusieurs tuples d'une relation subordonnée.

La relation est maintenue par un ensemble d'attributs de connexion, dans la relation principale il s'agit de la clé primaire (clé primaire), qui doit être présente dans la relation subordonnée comme clé secondaire. Cet ensemble d'attributs dans une relation subordonnée est appelé clé étrangère. (clé étrangère).

Les clés étrangères sont utilisées pour établir des connexions logiques entre les relations. La clé primaire identifie un tuple unique dans la relation primaire et la clé secondaire identifie l'ensemble de tuples dans la relation subordonnée qui sont liés à un seul tuple dans la relation primaire.

Prenons un exemple de maintien d'une connexion de type « 1:M » entre les relations « Groupe » et « Étudiants ». La relation principale est la relation « Groupe », la clé primaire de la relation est l'attribut « Group_Number ». La relation subordonnée est la relation « Étudiants », la clé primaire de la relation est « Credit_book_number ». La relation « Étudiants » doit avoir l'attribut « Group_Number » comme clé étrangère pour établir un lien avec la relation principale. C'est cet attribut qui permet de déterminer des informations sur le groupe dans lequel l'étudiant étudie.

Schéma de la relation principale « Groupe » :

Groupe ( Numéro de groupe, Spécialité)

Schéma de relation de subordination « Étudiants » :

Étudiants ( N°_classebook, Nom, Date de naissance, Numéro de groupe)

(Dans les diagrammes de relations, les clés primaires sont soulignées et les clés secondaires sont en italique).

Exemples de SGBD RMD : DBase, FoxPro, Clipper, Paradox, MS Access, Informix, Oracle, etc.

Toute structure de données peut être réduite à des tableaux bidimensionnels. Considérons un exemple de conversion d'un MD hiérarchique, illustré sur la Fig., en une base de données relationnelle, c'est-à-dire dans un ensemble de relations interconnectées.

Pour chaque nœud de la structure arborescente, une relation distincte est créée, c'est-à-dire des relations « Départements », « Employés », « Activités_travail », « Enfants », « Travaux » sont créées. Chaque relation correspondant à un nœud enfant est complétée par l'identifiant du nœud source. En conséquence, nous obtenons une base de données relationnelle composée des relations suivantes :

Départements ( Numéro_departement, Nom)

Employés ( Numéro_onglet, Nom, Salaire, Numéro_departement)

Activité_travail ( Numéro de commande, Contenu_de la commande, Numéro_onglet)

Enfants ( Nom_enfant, Numéro_onglet , Date de naissance)

Travaux ( Code du travail, Nom, Date d'achèvement, Numéro_departement)

Avantages modèle relationnel :

– simplicité et clarté du modèle ;

– homogénéité des structures de représentation des objets et des connexions ;

– la capacité de manipuler des données sans avoir besoin de connaître l’organisation physique spécifique de la base de données en mémoire externe ;

– la possibilité d’utiliser des langages de requête non procéduraux par des utilisateurs de bases de données non formés.

Les modèles logiques de données considérés diffèrent dans la manière dont ils permettent à l'utilisateur de représenter et de traiter les relations.

Dans le modèle de communication hiérarchique et réseau, les données physiques sont interconnectées par des pointeurs physiques. C'est un avantage et un inconvénient. Les connexions physiques envisagées sont bien réalisées, mais d’autres relations sont difficiles à extraire. Dans le modèle relationnel, les connexions sont logiques.

Dans l'approche relationnelle, les connexions entre objets sont représentées de la même manière que les objets eux-mêmes, par des tuples dans les relations. L'uniformité de la présentation des données simplifie le logiciel et le langage du SGBD.

La grande majorité des systèmes d’information modernes reposent sur des données présentées sous la forme d’un modèle relationnel. Les principaux concepts du modèle de données relationnelles sont :

Domaine- il s'agit d'une partie du monde réel (une classe ou un ensemble de classes d'objets réels), considérée d'un certain point de vue, soumise à une réflexion sur un modèle en vue de son automatisation. Le domaine est infini et contient aussi bien des concepts et des données indispensables au développement d'un système d'information que des données insignifiantes ou non. En général, un modèle de domaine décrit les processus d'information se produisant dans un domaine et les données utilisées par ces processus. Le domaine est représenté par de nombreuses unités structurelles (par exemple, une entreprise - ateliers, administration, comptabilité, etc.). Chaque unité structurelle d'un domaine est caractérisée par une multitude d'objets et de processus qui utilisent des objets, ainsi que par une multitude d'utilisateurs, caractérisés par des vues différentes sur le domaine. Le résultat du développement de l'application et le succès du système d'information dépendent de la précision de la modélisation du domaine.

Par exemple, comme domaine, vous pouvez choisir le service comptable d'une entreprise, le service des ressources humaines, une banque, un magasin, etc. Ainsi, si vous choisissez la comptabilité des marchandises dans un entrepôt comme domaine, alors les concepts « facture » et « facture » sont des concepts essentiellement importants, et le fait que l'employé qui accepte les factures ait deux enfants n'est pas important pour la comptabilité des marchandises. Cependant, du point de vue du service RH, les données sur la présence des enfants sont essentielles. Ainsi, l’importance des données dépend du choix du domaine.

Modèle de données - c'est un ensemble de structures de données et de leurs traitements.

Modèle relationnel– un modèle de représentation des données pour le domaine, construit sur des relations relationnelles. Selon K. J. Date, le modèle de données relationnelles décrit trois aspects : la manipulation structurelle et holistique :

· Structurel - les données du modèle sont un ensemble de relations.

· Holistique - les relations répondent à certaines conditions d'intégrité. (contraintes d'intégrité déclarative au niveau du domaine (type de données), au niveau de la relation et au niveau de la base de données).

· Manipulation (traitement) - le modèle prend en charge les opérateurs de manipulation de relations (algèbre relationnelle, calcul relationnel).

Attitude– un ensemble d'objets de domaine décrits par des caractéristiques et des propriétés (générales) communes. Une relation est un concept fondamental dans le modèle de données relationnelles. Une relation est un concept abstrait ; un tableau peut servir de représentation visuelle d’une relation en théorie relationnelle sur papier ou sur écran.

Attribut– un affichage d'informations (caractéristique, propriété) d'un objet de domaine, utilisé pour le décrire, en prenant une valeur spécifique parmi un ensemble de valeurs valides. Chaque attribut a un nom utilisé pour faire référence aux données. Les noms d'attribut sont uniques au sein d'une relation. Que. une relation représente un ensemble d'attributs. D'un point de vue pratique, un attribut est un champ de table.

Diagramme de relation – une liste complète des noms d'attributs de relation.

Tuple – est un élément de relation contenant une représentation sans ambiguïté d'un objet du monde réel, conformément à Souligné les attributs. D'un point de vue pratique, un tuple est un enregistrement dans une table.

Clé de relation– un attribut ou un ensemble d'attributs de relation qui identifie de manière unique chaque cortège. Si une clé de relation satisfait aux conditions d'unicité et de minimalité, alors une telle clé est appelée primaire. Un attribut de relation utilisé pour stocker les valeurs de clé primaire d'une autre relation dans le but de créer une relation entre ces relations est appelé externe .

Dans un modèle relationnel d'un domaine, en règle générale, les données nécessaires au fonctionnement d'un système d'information sont présentées sous la forme ensemble de relations interconnectées . Les clés étrangères sont utilisées pour établir des connexions logiques entre les relations. Pour que les données du système d'information soient univoques et cohérentes, des conditions restrictives doivent être établies dans le modèle relationnel - contraintes d'intégrité , qui permettent de minimiser les erreurs pendant le fonctionnement du système. Les contraintes d’intégrité les plus importantes sont : intégrité catégorielle et référentielle.

Lors de l'établissement de liens logiques entre les relations, nous utilisons quatre types de connexions :

· Un par un– établi entre clés primaires de relations. Dans ce cas, chaque tuple d’une relation correspondra à un seul tuple d’une autre relation.

· Un à plusieurs- établi entre la clé primaire d'une relation et la clé étrangère d'une autre relation. Dans ce cas, un tuple d’une relation correspondra à plusieurs tuples d’une autre relation.

· Plusieurs contre un- établi entre la clé étrangère d'une relation et la clé primaire d'une autre relation. Dans ce cas, plusieurs tuples d’une relation correspondront à un seul tuple d’une autre relation.

· Plusieurs à plusieurs - établis entre des relations de clé étrangère. De plus, n'importe quel tuple d'une relation peut correspondre à plusieurs tuples d'une autre relation.