Les données sont généralement associées à la programmation et, dans le monde de l'information moderne, sont présentées en trois versions logiquement équivalentes: les données décrites et utilisées dans un programme dans un langage de programmation; données dans des systèmes de bases de données; données dans les systèmes d'information distribués. La programmation moderne n'a accordé une liberté relative qu'à la première variante de formalisation de l'information. Les deux dernières options sont des formes plus ou moins fiables de fourniture d'informations et de relations entre ses composants.
Données passées et présentes
La position fondamentale des langages de programmation est la description exacte des données et des algorithmes. Les ordinateurs ne "présentent" aucune chance d'incertitude: il y a quelque chose sur lequel agir, et il y a une commande qui exécute cette action.
Le concept moderne est basé sur une base beaucoup plus élevée: il y a une donnée, et ce qu'elle sera exactement est déterminée à l'endroit de son utilisation. Dans tous les cas, au moment de l'utilisation, les données sont automatiquement vérifiées et converties dans le bon type. Un programmeur moderne n'est pas obligé de prendre soin de leur description préliminaire et du respect de la compatibilité des types dans l'algorithme.
Processus de transition:
- à partir des données saisies et de leur description obligatoire avant utilisation;
- aux données non typées et libres de toute obligation de les décrire et de les utiliser.
En fait, on peut reconnaître l'assouplissement relatif des exigences de formalisation - il n'est disponible que dans l'environnement des outils de programmation modernes. Lors de l'exécution, le type de chaque donnée est fixe et la séquence de commandes est bien définie.
Types et modélisation
Les mathématiques et la physique, le commerce et la production, l'économie et d'autres domaines où les nombres sont utilisés, ont toujours fonctionné avec des données et n'ont attaché aucune importance au concept de type. Le fait que les nombres puissent être entiers ou fractionnaires n'avait pas vraiment d'importance.
Chaque formule spécifique ou action spécifique peut donner un entier, une fraction infinie, un nombre réel ou complexe. Jusqu'à présent, il existe des merveilles de l'esprit comme infiniment petites et infiniment grandes. De plus, ces miracles ont même des propriétés.
Il n'y a toujours pas de liberté dans la programmation. Tout doit être strictement formalisé. Le concept de données est avant tout un type:
- entier;
- booléen;
- char;
- chaîne et ainsi de suite.
Les noms des types peuvent différer selon les langages de programmation, mais il y a toujours un entier ou un nombre réel, une valeur booléenne, un symbole,doubler. Il reste encore des reliques et des idées spécifiques: entier non signé, code, octet, mot, double mot, chaîne de longueur fixe.
Le concept de données dans un système de données n'a pas de liberté. Le langage SQL - "international" (il existe un dialecte pour chaque base de données moderne) - ne tolère aucune inexactitude non seulement dans les données, mais également dans les requêtes sql. Une erreur dans la requête est une garantie d'absence de résultat. Il n'est pas du tout nécessaire de parler de violations des descriptions.
La modélisation des processus d'information et des représentations de données est le seul moyen sûr de construire une structure capable d'évoluer et de s'adapter aux conditions changeantes.
Dynamique de l'original
L'information naturelle est un changement continu. Donner une description formelle et un concept d'un modèle de données dans un domaine spécifique signifie résoudre trois problèmes:
- définir quelles données sont ici;
- officialiser la relation entre eux;
- décrire les processus de modification des données et des relations.
Un exemple d'ensemble de données d'un algorithme simple en JavaScript - une copie réduite du modèle du système de gestion de base de données le plus solide.
C'est juste que dans le second cas, les experts et les spécialistes, lors de la conception de structures de données, de tables et de relations, ne voient généralement pas (il est vraiment difficile de couvrir une grande quantité d'informations naturelles) l'essence des choses, et un ensemble encombrant et non développé de tas de données est obtenu, tandis que dans le domaine, les informations sources circulent librement et facilement.
Statiquepossible
C'est une pratique courante en JavaScript d'inclure du code attaché à une page et des fonctions affectées aux événements sur les balises de page. Dans les deux cas, les balises de page définissent les données qu'une ressource Web donnée accepte, modifie ou crée.
Si vous concentrez très soigneusement votre code de gestionnaire sur les événements d'élément, et non sur le code de la page dans son ensemble, c'est la meilleure solution. Idéalement, lorsque le code n'introduit pas de nouvelles données ou ne corrige pas les données disponibles, mais se concentre sur ce qu'il a exactement à un moment donné.
En fait, si vous définissez le concept de "données" comme une description minimalement statique de l'information source et que vous la suivez, cela signifie que vous avez une chance de réussir.
En ce qui concerne les bases de données, les choses sont beaucoup plus compliquées. Tout code JavaScript "fournit" la page avec des fonctionnalités. Toute base de données est une collection de tables, de relations entre elles, de procédures stockées, de requêtes et de fonctionnalités disponibles de l'extérieur.
Static est le problème de tout algorithme. Le concept moderne de données est statique: un nombre, une chaîne, un caractère, etc. Lors du traitement ou lors de l'écriture dans une table de base de données, tout se passe bien. Mais quand l'original acquiert-il une dimension ou un sens différent ? Première option: changez le signe, mais les connexions et les demandes peuvent tomber immédiatement.
Statique et objets
Définir le concept de "données" comme un objet change radicalement la situation. L'objet a sa propre structure. Ici, vous pouvez utiliser n'importe quelle description de n'importe quelle variable. Le rôle ne jouera pas. Un objet a des méthodes par lesquelles les données sont disponibles. Depuis toututilisé dans le domaine de la programmation, c'est-à-dire trois méthodes de base: lire, écrire, modifier. Vous pouvez en ajouter d'autres pour comparer, rechercher, cloner, etc.
Le domaine impose une gamme de propriétés à chaque donnée. Ainsi, il s'avère que le concept de données se transforme en une sorte de description qui peut être modifiée dynamiquement. La statique à l'intérieur d'un objet donne une dynamique à l'extérieur de celui-ci.
En changeant la combinaison de descripteurs statiques à l'intérieur d'un objet, vous n'avez pas à vous soucier de la dynamique de ses relations avec d'autres objets.
Programmation et présentation des données
Qu'est-ce que les données ? La conscience publique est déjà habituée aux technologies de l'information, travaille dans les nuages et possède des conteneurs dans des espaces virtuels. Maintenant, non seulement les programmeurs et les utilisateurs professionnels, mais aussi les gens ordinaires sont compétents en matière d'information et de son utilisation.
Mais qu'est-ce que la programmation ? A ce jour, l'opinion publique donne la définition suivante à ce concept et à ses concepts:
- L'information et les données sont les concepts de base utilisés en informatique.
- Les données sont en quelque sorte des observations reçues et enregistrées par rapport à la réalité environnante.
- Elles sont simples et complexes (structures), primaires et secondaires.
- Une base de données est une collection de documents indépendants présentés de manière systématique afin qu'ils puissent être trouvés, modifiés et utilisés.
Est-ce objectif ? Auteurs faisant autoritéje le pense. La pratique réelle tend à garantir que chaque domaine détermine son système de données correct et donne toutes les chances de construire un bon modèle dynamique.
Il n'est pas rare qu'un client (consommateur) impose sa propre opinion à un programmeur (concepteur de base de données) sur comment et quoi faire. Du point de vue de la programmation, tout désir du client peut être satisfait avec la plus grande précision.
Besoin d'Oracle pour résoudre le problème de budgétisation pour l'entretien de l'approvisionnement en eau en milieu rural (bâtiment 21 dans le village) - bien. MySQL est nécessaire pour organiser un système de suivi des envois de courrier pour tous les bureaux de poste en Russie - tout fonctionnera également.
Vous pouvez toujours composer n'importe quel algorithme et donner accès à n'importe quelle représentation d'informations dans le cadre de la définition du concept de données, qui est établie par le développeur du système de gestion de base de données ou du langage de programmation. La question est différente: comment le faire avec des coûts minimaux dans une dynamique maximale ?
Bases de données, exemples
Une base simple est créée sans modèle. Les concepts de base des données et de la communication sont petits, la fonctionnalité est très simple. Par exemple, pour un établissement d'enseignement supérieur, vous avez besoin de:
- table des professeurs;
- table de groupe (clé et numéro de groupe);
- tableau général des élèves (les touches de groupe sont utilisées).
Le doyen veut connaître les progrès des enseignants. La table des enseignants contient des champs:
- nom;
- nom;
- patronyme;
- numéro de groupe supervisé.
La table des étudiants contient des champs:
- nom;
- nom;
- patronyme;
- date de naissance;
- GPA (pour toutes les matières);
- numéro de groupe.
Il peut y avoir au moins deux options pour l'échantillonnage: en utilisant le nom de l'enseignant, vous pouvez accéder au numéro de groupe et voir tous les élèves et leurs notes moyennes, ou par le nom de famille de l'enseignant et le dernier nom de l'étudiant, vous pouvez voir le score moyen du dernier.
Même dans une version aussi simple, les problèmes sont garantis et il faudra changer quelque chose. Situation: le professeur est tombé malade, un autre mois le remplace, ce qui signifie qu'il encadre deux groupes. Il n'y a qu'un seul champ sous un numéro de groupe dans la table des enseignants.
Pour résoudre le problème, vous devez ajouter un champ en double. Et si deux tombent malades, ajoutez trois champs. Ainsi, la table des enseignants commence à se développer à partir de zéro.
Il existe une autre option: remplacer le champ numérique de la clé de groupe par un champ symbolique. Ensuite, chaque fois que vous sélectionnerez, vous devrez convertir la chaîne en une séquence de clés, et une requête sql se transformera en plusieurs.
Un exemple plus prometteur n'est pas de faire des tables, mais de faire des objets. Alors le professeur est un objet, et il peut avoir plusieurs groupes supervisés. Mais c'est toujours un objet. L'objet enseignant a une clé unique, mais peut avoir plusieurs groupes supervisés. Le groupe possède également une clé unique. Un étudiant aussi.
Les trois positions ne sont pas seulement disponibles dans la tâche, mais peuvent être développées plus avant.
Bases orientées objet
Les leaders de l'industrie de l'informationproposent des bases de données relationnelles classiques. Ils sont testés par la vie, ils fonctionnent, ils sont sûrs, fiables et, en cas de problème, ils vous permettent de restaurer des informations.
Les bases de données orientées objet (OODB) ont commencé à être développées au milieu des années 1980 et, selon des auteurs faisant autorité, sont prometteuses à ce jour. Mais jusqu'à présent, en dehors des théories fondamentales et des dispositions conceptuelles, aucun OODB n'a atteint le même classement et la même distribution que MySQL, MS SQL Server ou Oracle dans toutes ses diverses incarnations.
Mais et si la définition, le concept de données, de types, d'attributs, de classes, de hiérarchies était proposé par un développeur dont la notation est insuffisante pour créer une communauté de programmeurs qui professent la mentalité de cet OODB ? Nous devrons compter sur nos propres forces.
Plus de trente variantes d'OODB ont été créées dans l'environnement Linux. Mais où est la garantie que la base de données créée ne nécessitera pas plus de fonctionnalités ? L'environnement Windows n'offre pas beaucoup de garanties dans ce domaine.
Solution orientée objet
Cependant, il existe une solution. En utilisant MySQL comme exemple, vous pouvez montrer comment les tables relationnelles standard se transforment en un modèle orienté objet du problème à résoudre.
Il n'y a pas de base de données ici, mais il y a un environnement pour former votre propre système d'objets. La puissance de MySQL est utilisée uniquement comme mémoire relationnelle pour les tables des lignes d'informations. La logique d'utilisation est déterminée par le développeur lui-même. En particulier, il existe une table is_cache. Il a toutplusieurs champs de base:
- code_propriétaire;
- session_code;
- h_code;
- a_surprise;
- a_contents.
Le reste des champs contient des fonctions de service. Cette table se place à l'entrée de toute requête et enregistre son arrivée. Ce que le modèle de base de données fonctionnera est déterminé par son développeur. Ce qui ira dans le champ de contenu (a_contents) est déterminé par les objets du modèle créé par le développeur.
Il y a quatre éléments dans cette idée: hit, session de hit, code d'historique des hits et contenu spécifique. Qu'est-ce qu'un appel, quel système d'objets doit être construit - est déterminé par le développeur. Ce que l'on entend par session (processus de travail) est déterminé par le développeur. Le code d'historique est la possibilité de revenir en arrière sur les demandes.
Les tableaux ici n'ont rien à voir avec le domaine. Il y a un contrôleur d'appels (is_cache), il y a une journalisation (is_customs), il y a un historique des appels (is_histories). Les tables restantes sont déterminées par la tâche en cours de résolution.
En fait, cette solution suggère de créer votre propre OODB en fonction du modèle de base de données de domaine construit et du problème à résoudre. Il y a un énorme avantage ici - c'est votre propre concept de données, votre propre modèle de leur présentation et la relation entre elles. Il y a une fondation ici - une grande base de données relationnelle. Il n'y aura aucun problème à chercher quelque chose et à mal comprendre quelque chose.
Modèle: système objet + SGBD
Il est presque impossible de changer quoi que ce soit dans les technologies de l'information. La véritable révolution de l'information est encore loin. conscience professionnelleles développeurs de logiciels ne vont pas changer les traditions classiques. Mais il y a encore un moyen de sortir de la situation.
En utilisant des systèmes de gestion de base de données modernes et fiables comme base pour créer un environnement pour l'existence de votre propre modèle, vous pouvez obtenir un succès notable.
Dans tous les cas, vous devrez construire une vue ou un modèle de données pour résoudre la tâche, mais vous devez le faire correctement: que ce soit un système d'objets et qu'un bon SGBD soit son environnement.