Daten werden normalerweise mit Programmierung in Verbindung gebracht und in der modernen Informationswelt in drei logisch äquivalenten Versionen dargestellt: Daten, die in einem Programm in einer Programmiersprache beschrieben und verwendet werden; Daten in Datenbanksystemen; Daten in verteilten Informationssystemen. Die moderne Programmierung hat nur der ersten Variante der Informationsformalisierung relative Freiheit eingeräumt. Die zweiten beiden Optionen sind mehr oder weniger zuverlässige Formen der Bereitstellung von Informationen und Beziehungen zwischen ihren Komponenten.
Vergangene und aktuelle Daten
Die Grundstellung von Programmiersprachen ist die exakte Beschreibung von Daten und Algorithmen. Computer „präsentieren“keinerlei Unsicherheit: Es gibt etwas, auf das reagiert werden muss, und es gibt einen Befehl, der diese Aktion ausführt.
Der moderne Begriff basiert auf einem viel höheren Fundament: Es gibt eine Gegebenheit, und was genau sie sein wird, wird am Ort ihrer Verwendung bestimmt. In jedem Fall werden die Daten zum Zeitpunkt der Nutzung automatisch überprüft und in den richtigen Typ konvertiert. Ein moderner Programmierer ist nicht verpflichtet, sich um deren Vorbeschreibung und Beachtung der Typkompatibilität im Algorithmus zu kümmern.
Übergangsprozess:
- aus eingegebenen Daten und ihrer obligatorischen Beschreibung vor der Verwendung;
- nicht typisierte Daten und Freiheit von jeglicher Beschreibungs- und Verwendungspflicht.
Tatsächlich können wir die relative Lockerung der Formalisierungsanforderungen erkennen - sie ist nur im Umfeld moderner Programmierwerkzeuge verfügbar. Zur Laufzeit ist der Typ jedes Datums festgelegt und die Befehlsfolge ist genau definiert.
Typen und Modellierung
Mathematik und Physik, Handel und Produktion, Wirtschaft und andere Bereiche, in denen Zahlen verwendet werden, haben schon immer mit Daten gearbeitet und dem Begriff der Schrift keine Bedeutung beigemessen. Die Tatsache, dass Zahlen ganze oder gebrochene Zahlen sein konnten, spielte keine Rolle.
Jede spezifische Formel oder spezifische Aktion könnte eine ganze Zahl, einen unendlichen Bruch, eine reelle oder komplexe Zahl ergeben. Bis jetzt gibt es solche Wunder des Geistes wie unendlich klein und unendlich groß. Außerdem haben diese Wunder sogar Eigenschaften.
In der Programmierung gibt es noch keine Freiheit. Alles muss streng formalisiert werden. Das Konzept der Daten ist zunächst einmal ein Typ:
- integer;
- boolean;
- char;
- string und so weiter.
Namen von Typen können sich in verschiedenen Programmiersprachen unterscheiden, aber es gibt immer eine Ganzzahl oder reelle Zahl, einen booleschen Wert, ein Symbol,Linie. Es gibt immer noch Relikte und spezifische Ideen: Ganzzahl ohne Vorzeichen, Code, Byte, Wort, Doppelwort, Zeichenfolge mit fester Länge.
Das Konzept der Daten in einem Datensystem kennt keine Freiheit. Die SQL-Sprache - "international" (für jede moderne Datenbank gibt es einen Dialekt) - duldet keine Ungenauigkeiten nicht nur bei Daten, sondern auch bei SQL-Abfragen. Ein Fehler in der Anfrage ist eine Garantie für das Fehlen eines Ergebnisses. Über Verstöße gegen Beschreibungen muss überhaupt nicht gesprochen werden.
Die Modellierung von Informationsprozessen und Datendarstellungen ist der einzig sichere Weg, um eine Struktur aufzubauen, die sich weiterentwickeln und an sich ändernde Bedingungen anpassen kann.
Dynamik des Originals
Natürliche Information ist ständige Veränderung. Eine formale Beschreibung und ein Konzept eines Datenmodells in einem bestimmten Fachgebiet zu geben bedeutet, drei Probleme zu lösen:
- definiere, welche Daten hier sind;
- die Beziehung zwischen ihnen formalisieren;
- Prozesse zum Ändern von Daten und Beziehungen beschreiben.
Ein Beispiel eines Datensatzes eines einfachen Algorithmus in JavaScript - eine reduzierte Kopie des Modells selbst des solidesten Datenbankverw altungssystems.
Es ist nur so, dass im zweiten Fall Experten und Spezialisten beim Entwerfen von Datenstrukturen, Tabellen und Beziehungen normalerweise nicht das Wesentliche der Dinge sehen (es ist wirklich schwierig, eine große Menge natürlicher Informationen abzudecken), und es entsteht ein umständlicher, unausgereifter Satz von Datenhaufen, während im Fachbereich Quelleninformationen frei und leicht zirkulieren.
Statischmöglich
Es ist eine übliche JavaScript-Praxis, an eine Seite angehängten Code und Funktionen einzufügen, die Ereignissen in Seiten-Tags zugewiesen sind. In beiden Fällen definieren Seiten-Tags die Daten, die eine bestimmte Webressource akzeptiert, ändert oder erstellt.
Wenn Sie Ihren Handler-Code sehr sorgfältig auf Elementereignisse und nicht auf den Seitencode als Ganzes konzentrieren, ist dies der beste Ausweg. Idealerweise, wenn der Code keine neuen Daten einführt oder die verfügbaren Daten nicht festlegt, sondern sich darauf konzentriert, was genau er zu einem bestimmten Zeitpunkt enthält.
In der Tat, wenn Sie den Begriff "Daten" als minimal statische Beschreibung der Quellinformationen definieren und sich daran h alten, dann haben Sie eine Chance auf Erfolg.
Bei Datenbanken ist die Sache viel komplizierter. Jeder JavaScript-Code "versieht" die Seite mit Funktionalität. Jede Datenbank ist eine Sammlung von Tabellen, Beziehungen zwischen ihnen, gespeicherten Prozeduren, Abfragen und Funktionen, die von außen verfügbar sind.
Static ist das Problem jedes Algorithmus. Das moderne Datenkonzept ist statisch: eine Zahl, eine Zeichenkette, ein Zeichen und so weiter. Bei der Verarbeitung oder beim Schreiben in eine Datenbanktabelle klappt alles reibungslos. Aber wann bekommt das Original eine andere Dimension oder Bedeutung? Option eins: Vorzeichen ändern, aber Verbindungen und Anfragen können sofort hineinfallen.
Statik und Objekte
Die Definition des Begriffs "Daten" als Objekt ändert die Situation dramatisch. Das Objekt hat eine eigene Struktur. Hier können Sie beliebige Beschreibungen beliebiger Variablen verwenden. Rolle wird nicht spielen. Ein Objekt hat Methoden, durch die Daten verfügbar sind. Da allesverwendet im Bereich der Programmierung, dh drei grundlegende Methoden: Lesen, Schreiben, Ändern. Sie können weitere hinzufügen, um sie zu vergleichen, zu suchen, zu klonen usw.
Der Themenbereich erlegt den einzelnen Daten eine Reihe von Eigenschaften auf. Es stellt sich also heraus, dass der Begriff der Daten in eine Art Beschreibung umgewandelt wird, die dynamisch geändert werden kann. Statik innerhalb eines Objekts ergibt Dynamik außerhalb davon.
Wenn Sie die Kombination statischer Deskriptoren innerhalb eines Objekts ändern, müssen Sie sich keine Gedanken über die Dynamik seiner Beziehungen zu anderen Objekten machen.
Programmierung und Darstellung von Daten
Was sind Daten? Das öffentliche Bewusstsein ist bereits an Informationstechnologie gewöhnt, arbeitet in den Wolken und hat Container in virtuellen Räumen. Nun sind nicht nur professionelle Programmierer und Anwender, sondern auch einfache Menschen kompetent in Sachen Informationen und deren Nutzung.
Aber was ist Programmieren? Bis heute gibt die öffentliche Meinung diesem Begriff und seinen Begriffen folgende Definition:
- Informationen und Daten sind die Grundbegriffe der Informatik.
- Daten sind auf bestimmte Weise erh altene und aufgezeichnete Beobachtungen relativ zur umgebenden Realität.
- Sie sind einfach und komplex (Strukturen), primär und sekundär.
- Eine Datenbank ist eine Sammlung unabhängiger Materialien, die systematisch präsentiert werden, damit sie gefunden, modifiziert und verwendet werden können.
Wie objektiv ist das? Maßgebliche Autorendenke schon. In der Praxis wird in der Regel sichergestellt, dass jeder Fachbereich sein richtiges Datensystem bestimmt und jede Möglichkeit bietet, ein gutes dynamisches Modell zu erstellen.
Es ist nicht ungewöhnlich, dass ein Kunde (Verbraucher) einem Programmierer (Datenbankdesigner) seine eigene Meinung dazu aufzwingt, wie und was zu tun ist. Aus programmtechnischer Sicht kann jeder Wunsch des Kunden mit höchster Präzision erfüllt werden.
Brauche Oracle, um das Problem der Budgetierung für die Aufrechterh altung der ländlichen Wasserversorgung (Gebäude 21 im Dorf) zu lösen - gut. MySQL wird benötigt, um ein Sendungsverfolgungssystem für alle Postämter in Russland zu organisieren - alles wird auch funktionieren.
Sie können innerhalb der Definition des Datenkonzepts, das vom Entwickler des Datenbankverw altungssystems oder der Programmiersprache festgelegt wird, jederzeit einen beliebigen Algorithmus erstellen und Zugriff auf jede Informationsdarstellung gewähren. Die Frage ist eine andere: wie geht das mit minimalen Kosten bei maximaler Dynamik?
Datenbanken, Beispiele
Eine einfache Basis wird ohne Modell erstellt. Die Grundkonzepte von Daten und Kommunikation sind klein, die Funktionalität sehr einfach. Für eine Hochschule benötigen Sie beispielsweise:
- Lehrertabelle;
- Gruppentabelle (Schlüssel und Gruppennummer);
- allgemeine Schülertabelle (es werden Gruppenschlüssel verwendet).
Der Dekan möchte den Fortschritt der Lehrer wissen. Die Lehrertabelle hat folgende Felder:
- Nachname;
- name;
- patronymisch;
- Nummer der überwachten Gruppe.
Die Schülertabelle hat Felder:
- Nachname;
- name;
- patronymisch;
- Geburtsdatum;
- GPA (für alle Fächer);
- Gruppennummer.
Es gibt mindestens zwei Auswahlmöglichkeiten: Mit dem Namen des Lehrers können Sie zur Gruppennummer gehen und alle Schüler und ihre Durchschnittsergebnisse sehen, oder nach dem Nachnamen des Lehrers und dem letzten Name des Schülers, können Sie die durchschnittliche Punktzahl des letzten Schülers sehen.
Auch bei einer so einfachen Version sind Probleme garantiert und es muss etwas geändert werden. Situation: Der Lehrer ist krank, ein weiterer Monat ersetzt ihn, das heißt er betreut zwei Gruppen. In der Lehrertabelle gibt es nur ein Feld unter einer Gruppennummer.
Um das Problem zu lösen, müssen Sie ein doppeltes Feld hinzufügen. Und wenn zwei krank werden, dann füge drei Felder hinzu. Der Lehrertisch beginnt also von Grund auf zu wachsen.
Es gibt noch eine andere Möglichkeit: Ersetzen Sie das numerische Feld des Gruppenschlüssels durch ein symbolisches. Dann müssen Sie bei jeder Auswahl die Zeichenfolge in eine Folge von Schlüsseln umwandeln, und aus einer SQL-Abfrage werden mehrere.
Ein viel versprechenderes Beispiel ist nicht das Erstellen von Tabellen, sondern das Erstellen von Objekten. Dann ist der Lehrer ein Objekt, und er kann mehrere betreute Gruppen haben. Aber es ist immer ein Objekt. Das Lehrerobjekt hat einen eindeutigen Schlüssel, kann aber mehrere betreute Gruppen haben. Die Gruppe hat auch einen eindeutigen Schlüssel. Auch ein Student.
Alle drei Positionen stehen nicht nur innerhalb der Aufgabe zur Verfügung, sondern können weiterentwickelt werden.
Objektorientierte Grundlagen
Führer der Informationsbranchebieten klassische relationale Datenbanken an. Sie werden vom Leben getestet, sie funktionieren, sie sind sicher, zuverlässig und ermöglichen es Ihnen, Informationen im Falle von Problemen wiederherzustellen.
Objektorientierte Datenbanken (OODB) begannen Mitte der 1980er Jahre mit der Entwicklung und sind laut maßgeblichen Autoren bis heute vielversprechend. Aber abgesehen von grundlegenden Theorien und konzeptionellen Bestimmungen gibt es bisher keine OODB, die die gleiche Bewertung und Verbreitung wie MySQL, MS SQL Server oder Oracle in all ihren verschiedenen Inkarnationen erreicht hat.
Aber was ist, wenn die Definition, das Konzept von Daten, Typen, Attributen, Klassen, Hierarchien von einem Entwickler vorgeschlagen wird, dessen Bewertung nicht ausreicht, um eine Gemeinschaft von Programmierern zu schaffen, die sich zur Mentalität dieser OODB bekennen? Wir müssen uns auf unsere eigene Stärke verlassen.
Mehr als dreißig Varianten von OODB wurden in der Linux-Umgebung erstellt. Aber wo ist die Garantie, dass die erstellte Datenbank nicht mehr Funktionalität benötigt? Die Windows-Umgebung bietet in diesem Bereich nicht viele Garantien.
Objektorientierte Lösung
Es gibt jedoch eine Lösung. Am Beispiel von MySQL können Sie zeigen, wie relationale Standardtabellen in ein objektorientiertes Modell des zu lösenden Problems umgewandelt werden.
Hier gibt es keine Datenbank, aber es gibt eine Umgebung, in der Sie Ihr eigenes System von Objekten bilden können. Die Leistungsfähigkeit von MySQL wird nur als relationaler Speicher für Tabellen aus Infozeilen verwendet. Die Nutzungslogik wird vom Entwickler selbst bestimmt. Insbesondere gibt es eine is_cache-Tabelle. Es hat allesmehrere Grundfelder:
- owner_code;
- session_code;
- h_code;
- a_surprise;
- a_contents.
Die restlichen Felder tragen Servicefunktionen. Diese Tabelle steht am Eingang jeder Anfrage und protokolliert deren Eingang. Was das Datenbankmodell ausführt, wird von seinem Entwickler bestimmt. Was in das Inh altsfeld (a_contents) passt, wird durch die Objekte des vom Entwickler erstellten Modells bestimmt.
Diese Idee besteht aus vier Dingen: Treffer, Treffersitzung, Trefferverlaufscode und spezifischer Inh alt. Was ein Aufruf ist, welches System von Objekten gebaut werden soll – wird vom Entwickler bestimmt. Was unter einer Session (Arbeitsprozess) zu verstehen ist, bestimmt der Entwickler. Der Verlaufscode ist die Möglichkeit, Anfragen rückgängig zu machen.
Die Tabellen hier haben nichts mit dem Fachgebiet zu tun. Es gibt einen Anruf-Controller (is_cache), es gibt Protokollierung (is_customs), es gibt eine Anrufhistorie (is_histories). Die restlichen Tabellen werden durch die zu lösende Aufgabe bestimmt.
In der Tat schlägt diese Lösung vor, Ihre eigene OODB basierend auf dem erstellten Domänendatenbankmodell und dem zu lösenden Problem zu erstellen. Hier gibt es ein großes Plus - dies ist Ihr eigenes Konzept von Daten, Ihr eigenes Modell ihrer Präsentation und der Beziehung zwischen ihnen. Hier gibt es eine Grundlage – eine großartige relationale Datenbank. Es wird keine Probleme geben, etwas zu suchen und etwas falsch zu verstehen.
Modell: Objektsystem + DBMS
In der Informationstechnologie ist es fast unmöglich, etwas zu verändern. Die wahre Informationsrevolution ist noch weit entfernt. professionelles BewusstseinSoftwareentwickler werden die klassischen Traditionen nicht ändern. Aber es gibt noch einen Ausweg aus der Situation.
Mit zuverlässigen modernen Datenbankverw altungssystemen als Grundlage für die Schaffung einer Umgebung für die Existenz Ihres eigenen Modells können Sie spürbare Erfolge erzielen.
In jedem Fall müssen Sie eine Ansicht oder ein Datenmodell erstellen, um die Aufgabe zu lösen, aber Sie müssen es richtig machen: Lassen Sie es ein System von Objekten sein und ein gutes DBMS seine Umgebung.