Contacts

Terminologie et concepts de base des bases de données relationnelles. Les caractéristiques globales du modèle de données relationnelles. Introduction à la normalisation des données

Soutenir les langues de la base de données

Les langues spéciales sont utilisées pour travailler avec la base de données, en général, appelées langues de base de données.

Dans les premières bases de données, il y avait 2 langues:

1. Langue par défaut de diagramme de base SDL.

2. Langue de manipulation de données DML.

Le premier a servi à déterminer la structure logique de la base de données et la seconde contenait un ensemble d'opérateurs, qui permettait de manipuler les données, c'est-à-dire de mettre dans la base de données et de les supprimer. Dans les SGBD modernes, généralement, une langue contenant tout est prise en charge. fonds requis Travailler avec la base de données. Cette langue vous permet de créer une base de données et de fournir à un utilisateur une base de données.

À ce jour, la langue la plus courante est

S.truturé.

L.anguage.

Cette langue prend en charge et crée un schéma de base de données et permet à ces données de manipuler. Il contient tous les moyens nécessaires pour assurer l'intégrité de la base de données. Ces restrictions d'intégrité sont contenues dans des répertoires spéciaux, ce qui permet au niveau de la langue de contrôler l'ensemble de l'état de la base de données. Opérateurs spéciaux langue SQL Déterminer les soi-disant vues de base de données. Affichage - Les demandes stockées dans la base de données. Pour une vue utilisateur - ϶ᴛᴏ Table avec laquelle vous pouvez limiter ou développer la visibilité de la base de données pour un utilisateur de données spécifique. Le langage SQL contient des opérandes si spéciaux qui fournissent une autorisation d'accès aux objets de base de données. Étant donné que différents utilisateurs ont des pouvoirs différents pour travailler avec les données, ces pouvoirs sont décrits dans des tableaux spéciaux - des répertoires prises en charge dans le niveau de langue.

Les principaux concepts de bases de données relationnelles sont: type de données, domaine, attribut, tuple, clé primaire, attitude.

Sous le type de données dans le modèle relationnel, il est habituel de comprendre la même chose que le type de données dans les langages de programmation, c'est-à-dire que les données sont des chaînes de bits symboliques, numériques, des données numériques spéciales (argent), ainsi que des données temporelles spéciales. (temps, intervalle de temps).

Très général Le domaine est déterminé par la tâche d'un certain type de données de base auxquels les éléments de ce domaine incluent le concept de domaine se réfère à sa compréhension, en tant que base de données de valeur multiple admissible. Le domaine a une charge sémantique. Les données sont considérées comparables que dans le cas où elles se rapportent à un domaine.

Selon le tuple, il est de coutume de comprendre de nombreuses paires d'éléments de base de données contenant une entrée de chaque graine d'attribut dans le schéma de relations.

Régime de relation - ϶ᴛᴏ Nommé plusieurs éléments d'éléments. UN B.

corget \u003d nom de nom d'attribut, c'est-à-dire un tuple est un ensemble de valeurs nommées pour ce type.

Le rapport est un ensemble de tuples correspondant à un schéma unique, c'est-à-dire une base de données relationnelle - un ensemble de relations dont les noms coïncident avec les noms des relations dans la structure de la base de données.

Lecture 4.

· Concepts de base des bases de données relationnelles

Disposez les concepts de base suivants bases de données relationnelles: type de données, domaine, attribut, rechercher, attitude, clé primaire.

Pour commencer, nous montrerons la signification de ces concepts sur l'exemple rapports Employés contenant des informations sur les employés de certaines entreprises (Fig. 1).

Figure. 2.1.

· Type de données

Valeurs de données stockées dans base de données relationnellesont caractéristiques, c'est-à-dire qu'il est connu pour le type de chaque valeur stockée. Concept type de données dans modèle de données relationnelle Correspond pleinement au concept type de données Dans les langages de programmation. Rappeler que la définition traditionnelle (non-ARC) type de données Se compose de trois composants principaux: déterminer l'ensemble des valeurs de ce type; détermination d'un ensemble d'opérations applicables aux valeurs de type; Détermination de la méthode de représentation externe des valeurs de type (littéraux).

Généralement dans le moderne bases de données relationnelles Stockage de données symboliques et numériques (précises et approximatives), données numériques spécialisées (telles que «argent»), ainsi que des données spéciales «temporelles» (date, heure, intervalle de temps) sont autorisées. En outre, les systèmes relationnels maintiennent la capacité de déterminer les utilisateurs de leur propre type de données .

Dans l'exemple de la Fig. 1 Nous traitons avec des données trois les types: Cordes de personnages, d'entiers et de "argent".

· Domaine

Concept domaine Plus spécifique aux bases de données, bien qu'il existe des analogies avec des sous-types dans certaines langages de programmation. En général domaine déterminé en établissant un peu de base type de donnéesà quels éléments se rapportent domaineet une expression logique arbitraire appliquée à l'élément de cette type de données (restrictions de domaine ). L'élément de données est un élément domaine En cela et seulement si le calcul de cette expression logique donne le résultat vrai (Pour les valeurs logiques, nous utiliserons alternativement les désignations vrai et faux ou alors vrai. et faux). Avec chaque domaine Le nom est associé, unique parmi les noms de tous domaines base de données appropriée.

L'interprétation intuitive la plus correcte du concept domaine C'est sa perception d'un potentiel admissible, sous-ensemble limité des valeurs de ce type. Par example, domaine Des noms Dans notre exemple, il est défini sur le type de base de chaînes de caractères, mais l'une de ses valeurs peut inclure uniquement ces lignes pouvant représenter les noms (en particulier, pour la possibilité de représenter des noms russes, ces lignes ne peuvent pas commencer par un signe doux ou solide et ne peut pas être plus long, par exemple, 20 caractères). Si quelques attribut rapports Déterminé à certains domestique (comme, par exemple, à la Fig. 1 attribut Opinion Défini par domestique Des noms ) alors à l'avenir restriction de domaine agissant limitations de l'intégritéimposé au sens de cela attributa.

Il convient également de noter le fardeau sémantique du concept domaine: Les données sont considérées comme comparables que lorsqu'elles concernent une domaine. Dans notre exemple de valeur domaines Numéros de passage et départements Ce sont le type d'entiers, mais ne sont pas comparables (il ne serait pas certain de leur permettre de comparer).

· Éléments de la relation

Concept rapports est le plus fondamental dans approche relationnelle de l'organisation de bases de données, dans la mesure oùn. -Air attitude est la seule structure de données générique stockée dans base de données relationnelle. Ceci est reflété dans le nom général approcher - terme relationnel (relationnel) dérivé de relation. Cependant, le terme lui-même attitude est extrêmement inexact car, parlant de toutes les données sauvegardées, nous devons garder à l'esprit un type Ces données, valeurs de cela taper et variablesdans lequel les valeurs sont enregistrées. En conséquence, clarifier le terme attitude Concepts se démarquent relations de titre, valeurs de la relation et relation variable. De plus, nous aurons besoin de concept auxiliaire. corset.

Donc, relation de titre (ou de schéma) r (hr. ) appelé fini plusieurs paires de type commandées où un. appelé le nom attributa, maisT. dénote le nom de certains basiques taper ou précédemment défini domaine. Par définition nécessite tous les noms les attributs dans relation d'en-tête Était différent. Dans l'exemple de la Fig. 2.1 relation de titre Serviteurs est beaucoup de pair{<слу_номер, номера_пропусков>, <слу_имя, имена>, <слу_зарп, размеры_выплат>, <слу_отд_номер, номера_отделов>} .

Si tout le monde les attributs relations de titre Défini sur différents domaines, afin de ne pas produire de noms inutiles, une utilisation raisonnablement utilisée pour la dénomination les attributs Les noms sont pertinents domaines (Ne pas oublier, bien sûr, que ce n'est qu'une méthode pratique de nommage, ce qui n'élimine pas les différences entre les concepts domaine et attributa).

Tuple t correspondant entête Heure. , appelé de nombreux triplés de type commandés , un de ces triplet pour chaque attributa dansHeure. . Troisième élément -v - triplet doit être une valeur admissible type de données ou alors domaine T. . Relation de titre Serviteurs correspondent, par exemple, les suivants corsezzi: {<слу_номер, номера_пропусков, 2934>, <слу_имя, имена, Иванов>, <слу_зарп, размеры_выплат, 22.000>, <слу_отд_номер, номера_отделов, 310>} , {<слу_номер, номера_пропусков, 2940>, <слу_имя, имена, Кузнецов>, <слу_зарп, размеры_выплат, 35.000>, <слу_отд_номер, номера_отделов, 320>} .

Tél Fr. rapports R appelé un ensemble arbitraire tuple t . L'un des possibles relation de corps Serviteurs Montrant à la Fig. 2.1. Notez que dans le cas général, comme ils le démontrent, en particulier, la Fig. 2.1 et un exemple du paragraphe précédent peut exister telle corsezzi t qui correspondentHr, mais non inclus dans le fr.

Sens Vr. rapports R appelé quelques ensemblesHr et fr. . L'un des permis valeurs de la relation Serviteurs Montrant à la Fig. 2.1.

En changable base de données relationnelle Magasin rapports, valeurs qui change avec le temps. Variable VARR. appelé un conteneur nommé pouvant contenir n'importe quel permis admissible valeur Vr. . Naturellement, pour déterminer toutVARR. Il est nécessaire de spécifier le correspondant relation de titre HEURE.

Il convient de souligner que toute mise à jour adoptée dans la pratique base de données – Insérer. (insérer corset dans relation variable), Effacer. (Effacer corset de la valeur rapports relation variable) JE.Mettre à jour. (modification corset valeurs rapports relation variable) - d'un point de vue modèle est une opération d'affectation relation variable une nouvelle signification rapports. Cela ne signifie pas que les opérations énumérées doivent être effectuées de cette manière dans la SGBD: l'essentiel est que le résultat d'opérations correspondent à cette sémantique du modèle.

Notez qu'à l'avenir dans les cas où la signification exacte du terme est claire du contexte, nous utiliserons le terme attitude comme dans le sens la valeur de la relationet dans le sens relation variable.

Un prieuré, degré ou "aronym" , relations de titre, corsetcorrespondant à cela entête, relations corporelles, valeurs de la relation et relation variable est le pouvoir relations de titre. Par example, degré de relation Serviteurs égal à quatre, c'est-il 4 arraques ( quaternaire).

Avec les définitions des définitions sont raisonnablement considérées schéma de base de données relationnelle Ensemble de pair<имя_VARr, Hr> y compris les noms et les titres de tous relations variablesqui sont définis dans base de données. Base de données relationnelle - Ceci est un ensemble de couples (Bien sûr chaque relation variable à tout moment contient quelques attitude, en particulier, vide).

Notez qu'en classique bases de données relationnelles Après avoir déterminé circuits de base de données Seules les valeurs pourraient changer relations variables. Cependant, maintenant dans la plupart des implémentations est autorisée à changer circuits de base de données: Définition de nouveau et modification des titres de l'existant relations variables. On l'appelle Évolutioncircuits de base de données.

· Clé primaire

Un prieuré, clé primaire relation variable Ceci est un sous-ensemble S. Ensemble les attributs Son en-tête qui à tout moment de la valeur clé primaire (Composite, si la composition clé primaire Il comprend plus d'un attributa) dans tous corgeta relations corporelles diffère de la valeur clé primaire dans n'importe quel autre corgeta corps de cela rapportset pas de sous-ensemble S. Cette propriété ne possède pas. Dans la section suivante, nous montrerons cette existence clé primaire dans tous valeurs de la relation est une conséquence de l'une des propriétés fondamentales relation, à savoir cette propriété qui relations corporelles est un ensemble tuple.

Par l'idée quotidienne habituelle rapports est un tableau, gros titre Quel est le schéma rapports, mais cordescorsezzi rapports-Enexpiler; Dans ce cas, noms les attributs correspondre au nom colonne Cette table. Parfois, ils parlent parfois des "colonnes de la table", de sens " les attributs rapports».

Bien sûr, c'est une terminologie assez approximative car tables ordinaires et les lignes et les colonnes sont commandées pendant les attributs et corsezzi relation sont des éléments d'ensembles désordonnés. Néanmoins, quand nous nous tournons en contrepartie questions pratiques Organisations bases de données relationnelles et la gestion signifie que nous utiliserons cette terminologie "quotidienne". Une telle terminologie adhère à la plupart des SGBD relationnelles commerciales. Parfois, les termes sont également utilisés. déposer comme une table analogique, enregistrer comme une ligne analogique et domaine Comme une colonne analogique. Permettez-moi de vous rappeler que nous avons utilisé cette terminologie dans des conférences 1.

· Propriétés fondamentales des relations

Laissez-nous maintenant habiter sur certaines propriétés importantes. relationqui suivent les définitions précédemment définies.

Manque de tuples-duplicats,
Clés de relation primaire et possibles

Alors propriété qui corps personne rapports ne contient jamais tuple-Delikatov, découle de la définition relations corporelles autant tuple. Dans la théorie classique des ensembles, par définition, tout ensemble est constitué de divers éléments.

C'est de cette propriété que la présence de chacun valeurs de la relation clé primaire - ensemble minimal les attributsquels substance entête Cette rapports, Composé valeur qui détermine de manière unique rechercher rapports. Vraiment parce qu'à tout moment tout corsezzi corps personne rapports Différent, tout valeurs de la relation La propriété de l'unicité a au moins ensemble complet le sien les attributs. Cependant, dans la définition formelle clé primaire Nécessite son "minimalité", c'est-à-dire dans l'ensemble les attributs clé primaire ne devrait pas inclure de tels les attributsqui peut être jeté sans préjudice de la propriété principale - définition sans ambiguïté corset. Un peu plus tard, nous montrerons pourquoi la propriété minimale clé primaire C'est critique. Il est clair que si vous rapports Il y a un ensemble les attributsavoir une propriété d'unicité, alors il y a un ensemble minimum les attributsavoir une propriété d'unicité.

Bien sûr, peut exister valeurs de la relation Avec plusieurs ensembles minimaux incompatibles les attributsavoir les propriétés de l'unicité. Par exemple, si vous revenez aux hypothèses de la conférence 1 sur le caractère unique des valeurs les attributs Sidewayer et service rapports Serviteurs Puis pour tout le monde valeurs de cela rapports Nous avons deux ensembles les attributsaffirmant clé primaire(Service) et (s) . Dans ce cas, le concepteur base de données doit décider lequel des ensembles alternatifs les attributs appel clé primaireet le reste des ensembles minimaux les attributsAvoir la propriété de l'unicité est appelé clés possibles 1).

Concept clé primaire est extrêmement important dans le cadre du concept d'intégrité bases de données. Notez que bien que formellement existence clé primaire valeurs de la relation est une conséquence de quoi relations corporelles - C'est beaucoup, dans la pratique primaire (et possible) Clés relations variables apparaissent à la suite d'instructions explicites du concepteur rapports. Déterminé relation variable, le concepteur simule une partie du sujet, les données de qui contiendront base de données. Et bien sûr, le concepteur doit connaître la nature de ces données. Par exemple, il convient de savoir que pas deux employés à aucun moment ne peuvent avoir un certificat avec le même numéro. Donc il peut (et même devrait, comme on le montrera un peu plus tard) déclarer clairement(Cas) clé possible. Si la société a constaté que tous les employés devraient avoir des noms complets différents, le concepteur peut (et encore devrait déclarer clé possible et(CÔTÉ) . Alors le concepteur doit apprécier lequel de clés possibles est plus fiable (la propriété de son caractère unique ne sera jamais annulée) et choisissez le plus fiable clé possible comme primaire (Dans notre cas, la clé serait la clé(Cas) Parce que la décision sur le caractère unique des noms complets des employés est artificielle et peut être facilement annulée par la gestion de l'entreprise).

Maintenant, nous expliquerons pourquoi le concepteur doit expliquer explicitement les clés primaires et possibles des relations variables 2). Le fait est que, à la suite de cela, le SGBD déclare les informations qui seront utilisées comme limitations d'intégrité 3). Les SGBD ne permettront jamais l'apparition dans relation variable valeurs rapportscontenant deux corset Avec la même signification attributa Sidmer (définition clé primaire Pour une donnée relation variable Annuler ne peut pas être annulé). L'apparence de deux tuple Avec la même signification attributa Opinion Il sera également impossible tant que la définition reste(CÔTÉ) comme clé possible. Ainsi, des annonces primaire et clés possibles Donner à la SGBM la possibilité de maintenir l'intégrité base de données Même en cas de tentative d'apporter des données incorrectes.

Enfin, retour à la propriété minimale primaire et clés possibles. Comme indiqué ci-dessus, cette propriété est essentielle et l'importance se manifeste dans l'interprétation. primaire et clés possibles comme restrictions d'interQualité. Dans notre exemple avec relation Serviteurs Non seulement beaucoup seront possédant la propriété de l'unicité. les attributs (Cas) , mais aussi, par exemple, beaucoup(Sidmer, sid_otd_nomer). Mais si nous étions mis en place comme limitations de l'intégrité Exigence d'unicité(Sidmer, sid_otd_nomer)alors le SGBD garantirait l'absence tuple Avec la même signification attributa Sidmer pas de la même manière rapports Serviteurs , mais seulement en groupe tuple avec la même signification attributa Sail_tener . Il est clair que cela ne correspond pas au sens de la matière simulée.

Courir devant, notez que dans de nombreux implémations pratiques Les SGBD relationnels ont permis une violation de la propriété de l'unicité tuple Pour intermédiaire relationgénéré implicitement lors de la exécution de requêtes. Tel rapports ne sont pas des ensembles, mais des multisets, ce qui permet à certains cas d'atteindre certains avantages, mais conduit souvent à de graves problèmes. Nous nous concentrerons sur cela plus en détail lorsque vous discutez de la langue SQL.

Manque de commande de tuples

Bien sûr, officiellement la propriété du manque de commande tuple dans valeur de la relation est également une conséquence de la détermination relations corporelles autant tuple. Cependant, cette propriété peut également regarder de l'autre côté. Oui, le fait que relations corporelles est un ensemble tuple, facilite la construction d'un mécanisme complet modèle de données relationnelle, y compris les moyens de base de manipulation de données - algèbre relationnelle et calcul. Mais, à mon avis, la raison principale n'est pas dans cela.

Souvent suffisamment d'utilisateurs de SGBD et de développeurs relationnels systèmes d'information provoque une irritation du fait qu'ils ne peuvent pas stocker corsezzi relation Au niveau physique de l'ordre souhaité. Et les liens vers les exigences de la théorie relationnelle ne sont pas très appropriées ici. Il serait possible de développer une autre théorie dans laquelle ordonna " rapports" Cependant, gardez les listes commandées tuple Dans des conditions de mise à jour intensivement base de données Il est beaucoup plus compliqué techniquement et le soutien de la commande entraîne des frais généraux importants.

Aucune obligation de maintenir l'ordre sur l'ensemble tuple rapports Donne la flexibilité supplémentaire du SGBM pendant le stockage bases de données dans mémoire externe et quand effectuer des demandes à base de données. Cela ne contredit pas le fait que lors de la formulation d'une demande de base de données, par exemple, dans SQL, vous pouvez avoir besoin de trier la table résultante en fonction des valeurs de certaines colonnes. Ce résultat, en général, n'est pas relationet une liste ordonnée tupleEt cela ne peut être qu'un résultat final que les demandes peuvent déjà être traitées.

Manque d'attributs de commande

Les attributs relation non commandé parce que par définition relation de titre Il y a beaucoup de par<имя атрибута, имя домена> . Pour référence à la valeur attributa dans corgeta rapports Toujours utilisé Nom attributa. Facile de noter une analogie explicite entre titres de relations et types de structure dans les langages de programmation. Même dans le langage de programmation C avec ses possibilités pratiquement illimitées de travailler avec des pointeurs, il est constamment recommandé de contacter les domaines des structures que par leurs noms. Si, par exemple, la variable structurelle est définie dans la langue c

struct (int a; char b; int c) d;

cette norme de langue n'est pas recommandée à utiliser pour accéder au champ de symboles.b Conception * (& D + Tailleof (int)) (Prenez l'adresse de la variable structurellerÉ. , ajoutez-y le nombre d'octets dans un certain nombre de chiffres et prenez la valeur de l'octet à l'adresse reçue). Ceci est expliqué par le fait qu'avec un emplacement réel dans la mémoire des champs une variable structurelle de l'ordre tel que défini, dans de nombreux ordinateurs, il sera nécessaire d'aligner le champ.c. Par octet avec une adresse pair. Par conséquent, un octet disparaît juste. Lorsque la variable structurelle est située dans la mémoire, le compilateur économique (ou plutôt l'optimiseur) réorganisera le champb et C. et la conception ci-dessus ne fournira pas accès au champb. . Pour une manipulation correcte du champb Variable D. Vous devez utiliser des constructionsd.b ou & d-\u003e b , c'est-à-dire spécifier explicitement le nom de champ.

Des considérations pratiques similaires justifient le manque de commande les attributs dans relation d'en-tête. Dans ce cas, le SGBD décide de savoir quel ordre physique devrait être stocké les attributs tuple (Bien que le même ordre physique soit généralement pris en charge pour tous tuple TOUS rapports). En outre, cette propriété facilite le fonctionnement de la modification des régimes d'existants relation non seulement en ajoutant de nouveaux les attributsMais aussi en supprimant ceux existants.

À nouveau en cours, nous notons que dans SQL dans certains cas, une indication d'index est autorisée. les attributset comme ordre implicite les attributs Il utilise leur ordre de la forme linéaire de déterminer le schéma rapports (C'est l'une des caractéristiques condamnées de la langue SQL).

Atomicité des valeurs d'attribut
Première forme normale

Valeurs de tous les attributs sont atomiques (ou plutôt scalaires). Cela découle de la définition domaine comme un ensemble potentiel de valeurs scalaires type de données, c'est-à-dire parmi les valeurs domaine Il ne peut y avoir aucune valeur avec la structure visible, y compris l'ensemble des valeurs ( rapports). Notez que cela ne contredit pas ce qui a été dit dans la section "Les concepts de base des bases de données relationnelles" sur l'utilisation potentielle de l'utilisation de la spécification les attributs type de donnéesdéfini par les utilisateurs. Par exemple, il serait possible d'ajouter au schéma rapports Serviteurs attribut SIDEWO Défini par domestique (ou alors type de données) PHOTOS . La principale chose dans l'atomicité des valeurs les attributs C'est que le SGBD relationnel ne doit pas fournir aux utilisateurs une visibilité explicite de la structure interne de la valeur. Avec toutes les valeurs ne peuvent être appliquées qu'avec des opérations définies dans le type de données.

Il est de coutume de dire que dans bases de données relationnelles Seulement normalisé sont autorisés rapports, ou alors rapportsreprésenté par B. première forme normale.

Un exemple est anormalisé rapports montré à la Fig. 2.2. On peut dire qu'ici nous avons binaire attitudedans quelles valeurs attributa Départements sont rapports. Notez que l'original attitude Serviteurs C'est une option normalisée rapports Services servir . La variante normalisée est représentée à la Fig. 2.3.

Normalisé rapports Constituer la base de classique approche relationnelle de l'organisation de bases de données. Ils ont des limitations 1) (toutes les informations ne sont pas pratiques de représenter sous forme de tables plates), mais simplifient considérablement la manipulation des données. Considérez, par exemple, deux opérateurs d'applications identiques corset:

n. employé d'inscription Kuznetsov (numéro 3000, salaire 25000.00) au numéro 320;

n. inscrivez-vous à l'employé Kuznetsov (Skip Number 3000, Salaire 25000.00) au numéro 310.


Figure. 2.


Figure. 3. Service de relations: option normalisée
Services de relations

Si des informations sur les employés sont présentées comme rapports Serviteurs , les deux opérateurs seront effectués de manière égale (insérer rechercher dans attitude Serviteurs ). Si vous travaillez avec anormalisé relation Services servir Ensuite, le premier opérateur conduira à une simple insertion corsetet la seconde à ajouter corset en valeur attitude attributa LE DÉPARTEMENT corset de clé primaire 310 .

Lorsque vous travaillez avec anormalisé des relations Des difficultés similaires se produisent lors de l'exécution des opérations de retrait et de modification tuple.

· Modèle de données relationnelle

Quand dans les sections précédentes, nous avons parlé des concepts de base bases de données relationnellesNous n'avons éventuellement soulagé de mise en œuvre spécifique. Ces arguments font également référence à tout système, lorsque la construction a été utilisée approche relationnelle.

En d'autres termes, nous avons utilisé les concepts de la soi-disant modèle de données relationnelle. Modèle de données (dans le contexte de la région bases de données) décrit un certain ensemble de concepts génériques et de signes que tous les DBMS spécifiques et eux base de donnéesS'ils sont basés sur ce modèle. La présence d'un modèle de données vous permet de comparer des implémentations spécifiques en utilisant une langue commune.

Bien que le concept du modèle de données soit général et que nous puissions parler de modèles hiérarchiques, réseau, sémantiques et autres, il convient de noter que dans la zone bases de données Ce concept a été introduit par Edgar Coddo en ce qui concerne les systèmes relationnels et est utilisé le plus efficacement dans ce contexte. Tentatives d'utilisation rectiligne de modèles similaires aux organisations duulants montrent que modèle relationnel Trop "super", et pour les organisations de tir, il s'avère "petit".

caractéristiques générales

Bien que le concept modèle de données relationnelle Le premier introduit le fondateur approche relationnelle Edgar Dodd, interprétation la plus courante modèle de données relationnelleApparemment, appartient à un vulgarisateur bien connu des idées de la Codda cristofour, qui la reproduit (avec diverses clarifications) dans presque tous ses livres (voir, par exemple, K. Date. Introduction au système de base de données. 6ème éd., M.; Saint-Pétersbourg: Williams.- 2000). Selon l'interprétation de la date, modèle relationnel se compose de trois parties décrivant différents aspects approche relationnelle: partie structurelle, partie de manipulation et partie holistique.

Dans la partie structurelle des modèles Il est fixé que la seule structure générique des données utilisées dans la base de données relationnelle est normalisée.n. -Air attitude. Concepts définis domaines, les attributs, tuple, entête, corps et relation variable. En substance, dans les deux sections précédentes de cette conférence, nous avons considéré les concepts et les propriétés de la composante structurelle modèle relationnel.

En manipulation des modèles Les deux mécanismes fondamentaux de la manipulation de bases de données relationnelles sont déterminés: l'algèbre relationnelle et le calcul relationnel. Le premier mécanisme repose principalement sur la théorie classique des ensembles (avec des clarifications et des ajouts) et la seconde est sur l'appareil logique classique du calcul des prédicats de premier ordre. Nous examinerons ces mécanismes plus en détail dans les conférences suivantes, mais nous notons uniquement que la fonction principale de la partie de manipulation modèle relationnel est de garantir la relation entre la relation de toute langue particulière des bases de données relationnelles: la langue est appelée relation relationnelle, si elle n'a pas moins d'expressivité et de pouvoir que l'algèbre relationnelle ou le calcul relationnel.

Intégrité de l'entité et des liens

Enfin, dans une partie holistique modèle de données relationnelle Deux exigences d'intégrité de base sont enregistrées qui doivent être appuyées dans tout SGBD relationnel. La première condition est appelée l'obligation d'intégrité de l'essence (intégrité de l'entité). L'objet ou l'essence du monde réel dans des bases de données relationnelles correspondent corsezzi relation. Plus précisément, l'exigence est que tout rechercher tout sens rapports quelconque relation variable devrait être distingué de tout autre corset de cela valeurs de la relation Selon les valeurs constitutives d'un ensemble prédéterminé les attributs relation variable, c'est-à-dire, en d'autres termes, tout relation variable doit avoir clé primaire. Comme nous l'avons vu dans la section précédente, cette exigence est automatiquement satisfaite si les propriétés de base ne sont pas violées dans le système. relation.

En fait, l'exigence intégrité de l'essence Sonne parfaitement comme suit: relation variable doit exister clé primaireet aucune importance clé primaire dans cortech valeurs rapports relation variable ne devrait pas contenir valeurs incertaines. De sorte que ce libellé est complètement compris, nous devons au moins discuter brièvement du concept signification incertaine (NUL).

Bien sûr, théoriquement tout recherchertimbré attitudedoit contenir toutes les caractéristiques de l'essence du monde réel que nous voulons garder base de données. Cependant, dans la pratique, toutes ces caractéristiques ne peuvent pas être connues au moment où il est nécessaire de réparer l'essence dans base de données. Exemple simple Il peut y avoir une procédure pour prendre une personne à travailler, dont les salaires ne sont pas encore définis. Dans ce cas, l'employé du département du personnel, qui entre attitude Serviteurs rechercherdécrivant que le nouvel employé ne peut tout simplement pas fournir de valeur attributa Sidmarp (De n'importe quelle valeur domaine Dimensions_text Il sera incorrect de caractériser le salaire du nouvel employé).

Edgar Codd a proposé d'utiliser dans de tels cas valeurs incertaines. Valeur incertaine N'appartient à aucun type de données et peut être présent parmi les valeurs de tout attributadéfini sur n'importe quel type de données (Si cela n'est clairement pas interdit lors de la détermination attributa). Si unuNE. - Ça me ressemble tellement type de données ou alorsNull, op. - toute opération "arithmétique" bidimensionnelle de cette type de données (par exemple,+), et lop - opération de comparer les valeurs de cette taper (par exemple,= ), alors par définition:

un op null \u003d null

Null op a \u003d null

un lop null \u003d inconnu

Null lop a \u003d inconnu

Ici inconnu - Il s'agit de la troisième valeur de logique ou booléenne, telle que les propriétés suivantes:

Pas inconnu \u003d inconnu

vrai et inconnu \u003d inconnu

vrai ou inconnu \u003d vrai

faux et inconnu \u003d faux

faux ou inconnu \u003d inconnu

(Rappelez-vous que les opérations et ou sont commutatives) 2). Dans cette conférence, nous avons assez de brève introduction à valeurs incertainesMais dans les conférences suivantes, nous reviendrons à plusieurs reprises sur ce sujet.

Donc, la première des exigences est l'exigence intégrité de l'essence - signifie que clé primaire doit identifier pleinement toutes les entités et donc dans la composition de toute valeur clé primaire Aucune présence n'est autorisée valeurs incertaines. (En classique modèle relationnel Cette exigence s'applique à clés possibles; Comme on le montrera dans les conférences suivantes, dans le SGBD axé sur SQL si nécessaire pour clés possibles Non supporté.)

Deuxième exigence appelée intégrité référentielle (Intégrité référentielle), est plus complexe. Évidemment, lors de la conformité à la normalisation relation Les essences complexes du monde réel sont présentées dans la base de données relationnelle sous la forme de plusieurs tuple plusieurs relation. Par exemple, imaginez ce qui est nécessaire pour soumettre base de données relationnelle EssenceLE DÉPARTEMENT de les attributs Reminner (numéro de département), ministère (nombre d'employés) etDépart (De nombreux employés du ministère). Pour chaque employé doit stockerSidmer (numéro d'employé),Opinion (nom de l'employé) etSidmarp (salaire employé). Comme nous le verrons dans la conférence 7, la bonne conception de la base de données correspondante en elle apparaîtra deux rapports: Départements (départ, département) (clé primaire(Départ)) et Employés (Sidmer, Sids, Sidmarp, Sids) (clé primaire(SidSer)).

Comme vu, attribut Sid_otd_na introduit B. attitude Serviteurs non pas parce que le numéro de département est sa propre propriété de l'employé, et seulement pour pouvoir restaurer toute l'essence si nécessaireLE DÉPARTEMENT . Valeur attributa Sid_otd_na dans tous corgeta rapports Serviteurs Doit correspondre à la valeur attributa REM dans certaines corgeta rapports Départements . Attribut Ce genre (peut-être composite) est appelé touche étrangère (clé étrangère) Parce que ses valeurs caractérisent sans ambiguïté les entités présentées cortays Un autre rapports (c'est-à-dire définir leurs valeurs clé primaire). Sûr, clé externe peut être composite, c'est-à-dire en plusieurs les attributs. Ils disent ça attitudedans lequel il est déterminé clé externe, fait référence au approprié attitudedans lequel la même chose attribut est un clé primaire.

Demande intégrité de liaison ou exigence d'intégrité clé externe, est-ce pour chaque valeur clé externeémergeant corgeta valeurs rapports référant relation variableou en valeur attitude relation variablesur lequel le lien indique, devrait être trouvé rechercher avec la même signification clé primaireOu la valeur de la clé externe doit être complètement non définie (c'est-à-dire qu'elle n'indique rien) 3). Pour notre exemple, cela signifie que si le numéro de service est spécifié, ce département doit exister.

Notez que, comme clé primaire, clé externe doit être spécifié dans la détermination relation variable et est une limitation des valeurs autorisées rapports Cette variable. En d'autres termes, définition clé externe est une définition limitations de l'intégrité base de données.

Restrictions intégrité de l'essence et selon les liens Doit être soutenu par le SGBD. Pour la conformité intégrité de l'essence Assez pour garantir l'absence de tout relation variable valeurs relationcontenant corsezzi avec la même signification clé primaire (et interdire l'entrée en valeur clé primaire valeurs incertaines). DE intégrité de liaison La situation est quelque peu plus compliquée.

Il est clair que lors de la mise à jour de la référence rapports (INSET DE NOUVEAU tuple Ou modifications de valeur clé externe dans l'existant cortech) Il suffit de garantir que des valeurs incorrectes n'apparaissaient pas. clé externe. Mais comment être quand enlever corset de rapportsQuel est le plomb de lien?

Il y a trois approches ici, chacune des personnes soutient intégrité de liaison. La première approche est qu'il est interdit de supprimer corsetpour lequel il y a des liens (c'est-à-dire que vous avez d'abord besoin de supprimer les références corsezziou pour changer leurs valeurs en conséquence clé externe). Avec la deuxième approche lors de l'élimination corsetsur lequel il y a des liens dans tous les références cortech valeur clé externe devient automatiquement complètement incertain. Enfin, la troisième approche (en cascade) est que lors de l'enlèvement corset de rapportsqui est référencé de référencer rapports Toutes les références sont automatiquement supprimées. corsezzi.

Dans les SGBD relationnels développés, vous pouvez généralement choisir comment entretenir intégrité de liaison Pour chaque cas de définition clé externe. Bien sûr, pour faire une telle décision, il est nécessaire d'analyser les exigences d'une zone appliquée spécifique.

· Conclusion

Très probablement, les lecteurs potentiels de ce cours fonctionnent ou travailleront avec n'importe quel SGBD orienté SQL. Toute entreprise produisant des SGBD similaires appelle des systèmes relationnels. Il est très important de comprendre clairement quelles propriétés de tels systèmes sont vraiment relationnelles et qu'elles ne correspondent pas tout à fait avec les idées source, claire et stricte approche relationnelle Et même les contredites. Cela aidera plus correctement organiser base de données et construire des applications dans un environnement DBMS axé sur SQL.

Dans plusieurs conférences de ce cours, les possibilités des langues de SQL actuelles sont suffisamment discutées en détail: SQL: 1999 et SQL: 2003. Mais les premiers lecteurs ont offert un matériau qui représente approche relationnelle sous forme pure. Dans cette conférence, la base conceptuelle est introduite approche relationnelle; Les termes principaux sont déterminés; Les enquêtes fondamentales sont étudiées définitions basiques. Pris en considération modèle de données relationnelle Il est principalement destiné à évaluer la conformité de diverses implémentations du total des DBMS approche relationnelle.

introduction

Le début du XXIe siècle, des experts se réfèrent au siècle la technologie informatique. L'humanité entre une ère de l'information fondamentalement nouvelle. Tous les composants du mode de vie des personnes changent. Le niveau d'information devient l'une des caractéristiques du niveau de développement de l'État.

De nombreux pays en développement ont réalisé au niveau approprié les avantages qui ne sont pas couverts par la diffusion et le développement des technologies de l'information et de la communication. Et il ne fait aucun doute que le fait que le mouvement de la société de l'information est une sorte de chemin, qui vise à l'avenir de la civilisation humaine.

Sur la base du modèle relationnel, la base de données est un ensemble spécifique de tables sur lesquelles des opérations sont effectuées formulées en termes d'algèbre relationnelle et de calcul relationnel.

Dans le modèle relationnel de l'opération par rapport aux objets de base de données, il existe un caractère théorique étant le noyau de toute base de données. Le modèle représente une variété de données structurelles, de contraintes d'intégrité et d'opérations de manipulation de données.

Concepts de base du modèle de données relationnelle

Les principaux concepts propres aux données relationnels sont considérés comme le type de données, le domaine, l'attribut, le tuple, la relation clé principale. Initialement, nous noterons le sens de ces concepts sur l'exemple de la relation entre «employés», contenant des informations sur les employés d'une organisation

Le concept du type de données est à la mesure dans un modèle de données relationnel avec le concept de type de données dans les langages de programmation. Dans des bases de données relationnelles modernes, le stockage de données numériques symboliques, des cordes de bits, ainsi que des données «temporelles» spéciales, qui développent de manière très activement en train de développer les possibilités de systèmes relationnels.

Le concept d'un domaine a une certaine spécificité pour les bases de données, bien qu'ils aient une anthologie avec des chances en ce qui concerne certaines langages de programmation. En général, le domaine est déterminé par la tâche d'un type de base à laquelle l'élément de domaine et une expression logique arbitraire est liée à l'application dans l'élément de type de données. Dans le cas où le calcul de cette expression logique représente le résultat "vérité", l'élément est un élément du domaine.

Une interprétation plus correcte du concept de domaine est considérée comme une compréhension du domaine, comme l'un des ensembles de potentiels admissibles des valeurs de ce type.

Par exemple, un domaine "noms" dans notre cas, sur le type de symbole de base, il est défini, mais le nombre de ses valeurs comprendra uniquement ces délais capables de décrire le nom) de telles dates ne peuvent pas commencer par un signe doux). Il est également nécessaire de noter la charge sémantique du concept du domaine: uniquement dans le cas où les données seront comparables quand elles seront pertinentes pour le domaine, mais un seul

Dans notre cas, les valeurs des domaines des «numéros de passe» et des «numéros de groupe», qui sont liés au type d'entier, ne peuvent pas être comparables. Notez que dans certains cas, le concept du domaine lui-même ne trouve pas l'application elle-même, car Déjà pris en charge dans Oracle V.7.

Le schéma de la relation est une paires multiples personnelles: qui comprend: le nom d'attribut, le type, mais uniquement si le concept du domaine n'est pas pris en charge. Le degré d'art de «artït» est un programme de relations - cela un certain pouvoir Ce sont des ensembles.

Dans le même temps, les relations «employés» seront égales à quatre et compteront avec 4-arras. Et si tous les attributs d'une relation sont définis sur des domaines relativement différents, il est intelligemment de nommer des noms d'attributs des domaines respectifs, sans oublier que cela n'est considéré comme une seule méthode de dénomination pratique et ne permet pas d'éliminer les différences de la concept d'un domaine et d'un attribut. Le diagramme de la base de données est un ensemble spécifique de circuits de relation.

Un tuple qui correspond à ce schéma de la relation est un ensemble de paires, qui se reflète dans l'entrée de chaque nom d'attribut appartenant au schéma de relations.

La "valeur" est considérée comme la valeur admissible du domaine de cet attribut, dans le cas où le concept du domaine n'est pas pris en charge. En conséquence, le degré de la conicité, c'est-à-dire Le nombre de certains éléments coïncide avec le degré de régime de relations pertinent

Le tuple est un ensemble de valeurs nominales d'un type spécifié.

L'attitude est un grand nombre de tuples qui correspondent à un schéma de relations. En fait, le concept du régime de relations est plus proche du concept de type structural de données dans les langages de programmation. L'attitude d'une série de tuples était une relation corporelle. Par conséquent, il serait logique de résoudre le système de relations séparément, puis une ou plusieurs relations avec ce système, mais les bases de données relationnelles ne sont pas acceptées.

Le nom du circuit de relation par rapport à ces bases de données est dans la plupart des cas coïncidant avec le nom du spécimen correspondant. Dans des bases de données relationnelles classiques, après un schéma de base de données spécifique, seules les relations d'instance changent. Ils peuvent paraître nouvelles et des touffes existantes. Mais dans le même temps, dans de nombreuses implémentations, une modification du schéma de base de données se trouve: déterminer le nouveau et modifier les circuits de relation déjà existants, qui est habituel appelé l'évolution du schéma de base de données.

La vision habituelle de la relation est considérée comme une table, dont le titre est considéré comme un système de relations et des chaînes - le cortex de l'instance de l'instance, dans ce cas, les noms d'attributs sont appelés les colonnes de ce tableau. À cet égard, ils disent parfois la "colonne de la table", impliquant "attribut de la relation". Comme on peut le voir, les principaux concepts structurels du modèle de données relationnel (à l'exception du concept de domaine) ont une interprétation intuitive très simple, bien que dans la théorie de la base de données relationnelle, elles soient toutes déterminées de manière absolue et précise.

Comme mentionné, les modèles de données relationnels sont les plus populaires. Conformément au modèle de données relationnelles, les données sont soumises sous la forme d'un ensemble de tables sur lesquelles des opérations peuvent être effectuées formulées en termes d'algèbre relationnelle ou de calcul relationnel.

Contrairement aux modèles hiérarchiques et réseau de données dans le modèle relationnel d'opérations sur les objets sont théoriques et multiples. Cela permet aux utilisateurs de formuler leurs demandes plus compactes, en termes d'unités de données plus grandes.

Considérez la terminologie utilisée lorsque vous travaillez avec des bases de données relationnelles.

Clé primaire.La clé principale est un champ ou un ensemble de champs, identifiant sans ambiguïté l'enregistrement.

Il existe souvent plusieurs options pour choisir la clé primaire. Par exemple, dans une petite organisation des clés primaires de l'entité de l'employé, à la fois un numéro de table et une combinaison du nom de famille, nom et numéro patronymique (avec certitude qu'il n'y a pas de thèse complète dans l'organisation), ou le nombre et la série du passeport (s'il y a des passeports pour tous les employés). Dans de tels cas, lors du choix d'une clé primaire, la préférence est donnée aux touches les plus simples (dans cet exemple - le numéro de table). Les autres candidats pour le rôle de la clé principale sont appelés clés alternatives.

Conditions requises pour la clé primaire:

    unicité - c'est-à-dire que la table ne doit pas exister deux enregistrements ou plus avec la même valeur de la clé primaire;

    la clé principale ne doit pas contenir de valeurs vides.

Lors du choix d'une clé primaire, il est recommandé de choisir un attribut, dont la valeur ne change pas pendant toute la période de l'instance de l'existence (dans ce cas, le numéro de table est préférable au nom de famille, car il peut être modifié. , l'améliorant).

Dans les champs souvent utilisés lors de la recherche et des données de tri sont définis clés secondaires: Ils aideront le système à trouver les données nécessaires beaucoup plus rapidement. Contrairement aux champs principaux des champs des index (clés secondaires) peuvent contenir des valeurs non uniques.

Les touches principales sont utilisées pour établir des liens entre les tableaux dans la base de données relationnelle. Dans ce cas, la clé primaire d'un tableau (parental) correspond à clé externeune autre table (filiale). La clé externe contient les valeurs du champ associé, qui est la clé principale. Les valeurs de l'homme extérieur peuvent être déraisonnables, mais ne doivent pas être vides. Les clés primaires et externes doivent être le même type.

Liens entre les tables. Les entrées du tableau peuvent dépendre d'un ou plusieurs enregistrements d'une autre table. Ces relations entre les tables sont appelées connexions.La communication est définie comme suit: champ ou plusieurs champs d'une table, appelé clé externefait référence à la clé primaire d'une autre table. Considérer un exemple. Étant donné que chaque commande doit provenir d'un client spécifique, chaque entrée de table Ordres.(Les commandes) doivent se référer à l'entrée de table appropriée Les clients.(Les clients). Ceci est la connexion entre les tables Ordres.et Les clients.. Tableau Ordres.il doit y avoir un champ où les liens vers ces entrées ou d'autres entrées de table sont stockés. Les clients..

Types de connexions. Il existe trois types de connexions entre les tables.

Un par un -chaque enregistrement de la table des parents est connecté uniquement avec l'enregistrement d'un enfant. Une telle connexion se trouve dans la pratique beaucoup moins fréquemment un à plusieurset mis en œuvre en déterminant une clé étrangère unique. la communication Un par unutilisez s'ils ne veulent pas que la table «retournée» d'un grand nombre de champs. Les bases de données comprennent des tables avec une telle liaison ne peuvent pas être considérées comme complètement normalisées.

Un à plusieurs -chaque enregistrement de la table des parents est associé à une ou plusieurs entrées filiales. Par exemple, un client peut effectuer plusieurs commandes, mais plusieurs clients ne peuvent pas faire une commande. Communication O. dean à beaucoupc'est le plus courant pour les bases de données relationnelles.

Plusieurs à plusieurs -plusieurs enregistrements d'une table sont associés à plusieurs entrées. Par exemple, un auteur peut écrire quelques livres et quelques auteurs - un livre. En cas d'une telle connexion, en général, il est impossible de déterminer quelle entrée d'un tableau correspond à l'enregistrement sélectionné d'une autre table, ce qui rend l'impossible physique (au niveau des index et des déclencheurs) la mise en œuvre d'une telle relation entre les tables pertinentes. Par conséquent, avant de passer au modèle physique, tous les liens "beaucoup à beaucoup" doivent être redéfinis (certains fonds de cas, si ceux-ci sont utilisés lors de la conception de données, le font automatiquement). Une relation similaire entre les deux tables est mise en œuvre en créant une troisième table et la mise en œuvre du type "un à plusieurs" de chacune des tables disponibles avec une table intermédiaire.

Base de données (base de données) -il s'agit de l'ensemble nommé de données structurées relatives à une certaine zone et destiné à être stocké, accumulation et traitement à l'aide d'ordinateurs.

Base de données relationnelle (RBD) - Il s'agit d'un ensemble de relations dont les noms coïncident avec les noms des régimes du schéma DB.

Concepts de basebases de données relationnelles:

· Type de données - Type de valeurs de colonne spécifiques.

· Domaine (Domaine) - L'ensemble de toutes les valeurs d'attribut valides.

· Attribut (Attribut) - Titre de la colonne de table, caractérisant la propriété d'objet nommée, telle que le nom de famille étudiant, la date de commande, le lieu d'employé, etc.

· Rechercher - une chaîne d'une table, qui est un ensemble de valeurs d'attributs logiquement liés.

· Attitude (Relation) - Un tableau reflétant des informations sur les objets du monde réel, par exemple sur les étudiants, les commandes, les employés, les résidents, etc.

· Clé primaire (Clé primaire) - le champ (ou le jeu de champs) du tableau, identifie sans ambiguïté chacun de ses enregistrements.

· Touche alternative - Ceci est un champ (ou un ensemble de champs), incompatible avec la clé principale et une instance d'enregistrement identifiable unique.

· Clé externe - Ceci est un champ (ou un ensemble de champs) dont les valeurs coïncident avec les valeurs existantes de la clé primaire d'une autre table. Lors de la frappe deux tables avec la clé primaire de la première table, la clé externe de la deuxième table est associée.

· Modèle de données relationnelle (RMD)- Organisation de données sous forme de tables bidimensionnelles.

Chaque table relationnelle doit avoir les propriétés suivantes:

1. Chaque entrée de table est unique, c'est-à-dire L'ensemble de valeurs dans les champs n'est pas répété.

2. Chaque valeur est enregistrée à l'intersection de la chaîne et de la colonne - est atomique (inséparable).

3. Les valeurs de chaque champ doivent être un type.

4. Chaque champ a un nom unique.

5. La procédure de localisation des enregistrements est insignifiante.

Éléments de base BD:

Domaine - unité élémentaire organisation logique Les données. Les caractéristiques suivantes sont utilisées pour décrire le champ:

· Nom, tel que le nom de famille, le prénom, le patronymique, la date de naissance;

· Tapez, par exemple, chaîne, symbole, numérique, date;

· Longueur, par exemple, en octets;

· Précision des données numériques, par exemple, deux signes décimaux pour afficher la partie fractionnée du nombre.

Enregistrer - un ensemble de valeurs de champs logiquement liés.

Indice - Accélère le fonctionnement de la recherche d'enregistrements utilisés pour installer des connexions entre les tables. La table pour laquelle l'indice est utilisé est appelé indexé. Lorsque vous travaillez avec des index, il est nécessaire de faire attention à l'organisation des indices, qui constitue la base de la classification. L'index simple est représenté par un champ ou une expression logique Traitement un champ. L'indice composite est représenté par plusieurs champs avec la possibilité d'utiliser diverses fonctions. Les index de table sont stockés dans le fichier d'index.


Intégrité des données - Il s'agit d'un outil de protection des données dans les champs de communication, permettant de soutenir les tableaux dans un état cohérent (cohérent) (c'est-à-dire ne permettant pas l'existence de la table subordonnée des entrées ne disposant pas d'enregistrements appropriés dans la table des parents).

Enquête - une question formulée à une ou plusieurs tables interdépendantes contenant des critères d'échantillonnage de données. La demande est effectuée en utilisant une langue structurée. requêtes SQL Langue de requête SRRUCRED). À la suite d'échantillons de données à partir d'une ou de plusieurs tables, une variété d'enregistrements peut être obtenue, appelée vue.

Présentation des données - La base de données est stockée dans la base de données d'une sélection de données (à partir d'une ou plusieurs tables).

La présentation est essentiellement une table temporaire formée à la suite de l'exécution de la demande. La demande elle-même peut être envoyée à fichier séparé, rapport, table temporaire, table sur disque, etc.

Signaler- Composant du système, dont l'objectif principal est une description et une sortie pour imprimer des documents en fonction des informations de la base de données.

Caractéristiques générales du travail avec RBD:

L'interprétation la plus courante du modèle de données relationnelles apparaît apparemment à la date, qui la reproduit (avec diverses clarifications) dans presque tous ses livres. Selon la date, le modèle relationnel se compose de trois parties décrivant différents aspects de l'approche relationnelle: la partie structurelle, la partie de manipulation et la partie holistique.

Dans la partie structurelle du modèle, il est fixé que la seule structure des données utilisées dans la base de données relationnelle est normalisée d'attitude N-arous.

Dans la manipulation du modèle, deux mécanismes fondamentaux de manipulation de la base de données relatinulées sont approuvés - l'algèbre relationnelle et le calcul relationnel. Le premier mécanisme repose principalement sur la théorie classique des ensembles (avec quelques clarifications) et la seconde est sur l'appareil logique classique du calcul des prédicats de premier ordre. Notez que la fonction principale de la partie de manipulation du modèle relationnel est de garantir la relation entre tout langage particulier des bases de données relationnelles: la langue est appelée relationnelle, si elle n'a pas moins d'expressivité et de pouvoir qu'une algèbre relationnelle ou un calcul relationnel.


28. Langues algorithmiques. Traducteurs (interprètes et compilateurs). Langue algorithmique Baysik. Structure du programme. Identifiants. Variables. Les opérateurs. Traiter des tableaux unidimensionnels et bidimensionnels. Fonction utilisateur. Sous-routines. Travailler avec des fichiers de données.

Langue haut niveau - Langage de programmation, concepts et structure qui conviennent à la perception par l'homme.

Langage algorithmique (Langue algorithmique) - Langage de programmation - Langue artificielle (formelle) conçue pour enregistrer des algorithmes. Le langage de programmation est donné par sa description et est mis en œuvre comme programme spécial: compilateur ou interprète. Exemples en langues algorithmiques Servir - Borland Pascal, C ++, Basic, etc.

Concepts de base langage algorithmique:

Composition de la langue:

Une langue parlée ordinaire consiste en quatre éléments principaux: symboles, mots, expressions et suggestions. Le langage algorithmique contient des éléments similaires, seuls les mots sont appelés structures élémentaires, phrases - expressions, offres - opérateurs.

SymbolesLes structures élémentaires, les expressions et les opérateurs sont une structure hiérarchique, car les structures élémentaires sont formées à partir d'une séquence de caractères.

Expressions - Ceci est une séquence de structures et de symboles élémentaires,

Opérateur - Séquence des expressions, des structures élémentaires et des symboles.

Description de la langue:

La description des caractères consiste à énumérer les caractères autorisés de la langue. Sous la description des structures élémentaires, les règles de leur éducation sont comprises. Une description d'expression est la règle de formation de toutes les expressions qui ont un sens dans cette langue. La description des opérateurs consiste en une prise en compte de tous les types d'opérateurs admissibles dans la langue. Une description de chaque élément de langue est définie sur sa syntaxe et sa sémantique.

Syntaxe Les définitions établissent des règles pour la construction d'éléments linguistiques.

Sémantique Détermine le sens et les règles d'utilisation de ces éléments de la langue pour lesquels des définitions syntaxiques ont été données.

Symboles de langue - Ce sont des signes indivisibles de base, dont tous les textes de la langue sont écrits.

Structures élémentaires - Ce sont des unités de langage minimes avec une signification indépendante. Ils sont formés à partir des caractères de base de la langue.

Expression La langue algorithmique consiste en des structures et des symboles élémentaires, spécifie la règle de calcul de la valeur.

Opérateur Spécifie description complète Une action qui doit être effectuée. Pour la description action compliquée Un groupe d'opérateurs peut être nécessaire.

Dans ce cas, les opérateurs sont combinés dans Opérateur composite ou alors Bloquer. Actions, demandé par les opérateurssont effectués sur les données. Les suggestions de la langue algorithmique, qui fournissent des informations sur les types de données, sont appelées descriptions ou opérateurs non observés. L'algorithme combiné combiné des descriptions et des opérateurs constitue un programme sur la langue algorithmique. Dans le processus d'étude de la langue algorithmique, il est nécessaire de distinguer une langue algorithmique de la langue par laquelle la langue algorithmique décrite est décrite. Le langage habituellement étudié s'appelle simplement par la langue et la langue, dont la langue est décrite - Correspondant à.

Traducteur - (Traducteur anglais - Traducteur) est un programme de traducteur. Il convertit un programme écrit dans l'une des langues de haut niveau en un programme composé de commandes de la machine.

Un programme écrit sur une langue algorithmique de haut niveau ne peut pas être effectué directement sur un ordinateur. EUM comprenne uniquement la langue des équipes de la machine. Par conséquent, le programme sur la langue algorithmique doit être traduit (traduit) dans la langue de la commande EUM spécifique. Une telle traduction est effectuée par des programmes de traducteurs spéciaux automatiquement créés pour chaque langue algorithmique et pour chaque type d'ordinateurs.

Il y a deux façons principales de diffuser - compilation et interprétation.

1. Achèvement: Compilateur (Anglais. Compiler - Compilateur, Collector) lit tout le programme entièrement, en fait une traduction et crée une version complète du programme dans la machine, qui est ensuite exécutée.

Pour compilation L'ensemble du programme source se transforme immédiatement en une séquence de commandes de la machine. Après cela, le programme résultant résultant est effectué par ordinateur avec les données source existantes. L'avantage de cette méthode est que la diffusion est effectuée une fois, et (multiple) effectuant le programme résultant peut être effectuée à grande vitesse. Dans le même temps, le programme résultant peut prendre beaucoup d'espace dans la mémoire de l'ordinateur, puisqu'un opérateur de langue est remplacé par des centaines ou même des milliers de commandes. De plus, le débogage et les modifications du programme traduit sont très difficiles.

2. Interprétation: Interprète (Interprète anglais - un interprète, un interpréteur) traduit et exécute le programme de chaînes de programme.

Pour interprétations Le programme source est stocké dans la mémoire de l'ordinateur presque inchangé. Le programme d'interprète décode les opérateurs programme source Un par un et assure immédiatement leur mise en œuvre avec les données disponibles. Le programme interprétable occupe peu de place dans la mémoire de l'ordinateur, il est facile de déboguer et de modifier. Mais l'exécution du programme se produit assez lentement, car chaque fois que chaque exécution, tous les opérateurs sont acceptés.

Les programmes compilés fonctionnent plus rapidement, mais interprétés plus facilement de corriger et de changer

Chaque langage spécifique est orienté soit sur la compilation, soit à l'interprétation - en fonction de la fin à laquelle il a été créé. Par exemple, Pascal est généralement utilisé pour résoudre des tâches assez complexes dans lesquelles la vitesse des programmes est importante. donc cette langue Généralement mis en œuvre à l'aide du compilateur.

D'autre part, Beysik a été créé comme une langue pour les programmeurs novices pour lesquels la construction du programme présente des avantages indéniables.

Parfois, il y a un compilateur pour une langue et l'interprète. Dans ce cas, pour développer et tester le programme, vous pouvez utiliser l'interprète, puis compiler le programme débogué pour augmenter la vitesse de son exécution.



Avez-vous aimé l'article? Partagez-le