Objektorientierte Datenbankvererbung. Objektorientiertes Datenbankmodell. Begrenzte Leistungs-Tuning-Optionen

Datenbanktechnologien, die auf den oben genannten MDs basieren, basieren auf einem statischen Konzept der Informationsspeicherung, das sich auf die Datenmodellierung konzentriert. Jedoch neue Anwendungsgebiete der Technologie mit komplexen, miteinander verbundenen Datenbankobjekten, wie z.B.:

Computergestütztes Design;

Automatisierte Produktion;

Automatisierte Softwareentwicklung;

Büro-Informationssysteme;

Multimedia-Systeme;

Geografisches Informationssystem;

Publishing-Systeme und andere – haben die begrenzten Fähigkeiten des statischen Konzepts in Bezug auf die Modellierung von Objekten in der realen Welt demonstriert.

Für neuartige komplexe spezialisierte Datenbankanwendungen greift ein dynamisches Konzept der Informationsspeicherung, das es ermöglicht, Daten und auf diese Daten einwirkende Prozesse parallel zu simulieren. Dadurch ist es möglich, die Semantik des Fachgebiets zu berücksichtigen und somit diese Anwendungen am besten zu beschreiben. Dieses Konzept basiert auf einem objektorientierten Ansatz, der in der Softwareentwicklung weit verbreitet ist. Die MD, die dieses Konzept implementiert und auf dem objektorientierten Paradigma (OOP) basiert, wird als objektorientiertes Datenmodell (OOMD) bezeichnet.

Die Konstruktion von OOMD basiert auf der Annahme, dass das Themengebiet durch eine Menge von Objekten beschrieben werden kann. Jedes Objekt ist eine eindeutig identifizierbare Entität, die Attribute enthält, die den Zustand von Objekten in der "realen Welt" und ihre zugehörigen Aktionen beschreiben. Der aktuelle Zustand eines Objekts wird durch ein oder mehrere Attribute beschrieben, die einfach oder komplex sein können. Ein einfaches Attribut kann einen primitiven Typ haben (z. B. Integer, String usw.) und einen Literalwert annehmen. Ein zusammengesetztes Attribut kann Sammlungen und/oder Links enthalten. Ein Referenzattribut repräsentiert eine Beziehung zwischen Objekten.

Die Schlüsseleigenschaft eines Objekts ist die Einzigartigkeit seiner Identifikation. Daher muss jedes Objekt in einem objektorientierten System seine eigene Kennung haben.

Ein Object Identifier (OID) ist eine datenbankinterne Möglichkeit, einzelne Objekte zu markieren. Benutzer, die mit dem Dialogprogramm zum Abfragen oder Anzeigen von Informationen arbeiten, sehen diese Kennungen in der Regel nicht. Sie werden vom DBMS selbst zugewiesen und verwendet. Die Semantik des Bezeichners in jedem DBMS ist unterschiedlich. Es kann entweder ein Zufallswert sein oder Informationen enthalten, die zum Auffinden eines Objekts in der Datenbankdatei erforderlich sind, beispielsweise die Seitennummer in der Datei und der Offset des Objekts von seinem Anfang. Es ist der Bezeichner, der verwendet werden sollte, um Verweise auf das Objekt zu organisieren.

Alle Objekte sind gekapselt, dh die Darstellung bzw. der innere Aufbau des Objekts bleibt dem Benutzer verborgen. Stattdessen weiß der Benutzer nur, dass dieses Objekt einige Funktionen ausführen kann. Für ein WAREHOUSE-Objekt können beispielsweise Methoden wie ACCEPT_PRODUCT, EXIT_TOBAP usw. angewendet werden Der Vorteil der Kapselung besteht darin, dass Sie die interne Darstellung von Objekten ändern können, ohne Anwendungen, die diese Objekte verwenden, überarbeiten zu müssen. Mit anderen Worten, Kapselung impliziert Datenunabhängigkeit.

Ein Objekt kapselt Daten und Funktionen (Methoden nach OOP). Methoden definieren das Verhalten eines Objekts. Sie können verwendet werden, um den Zustand eines Objekts zu ändern, indem die Werte seiner Attribute geändert werden, oder um die Werte ausgewählter Attribute abzufragen. Es gibt beispielsweise Methoden zum Hinzufügen von Informationen zu einem neuen Mietobjekt, zum Aktualisieren der Gehaltsinformationen eines Mitarbeiters oder zum Ausdrucken von Informationen zu einem bestimmten Objekt.

Objekte, die den gleichen Satz von Attributen haben und auf die gleichen Nachrichten reagieren, können gruppiert werden in Klasse(In der Literatur werden die Begriffe "Klasse" und "Typ" oft synonym verwendet). Jede solche Klasse hat ihren eigenen Vertreter - ein Objekt, das ein Datenelement ist. Objekte einer bestimmten Klasse werden es genannt Kopien.

In einigen objektorientierten Systemen ist eine Klasse auch ein Objekt und hat ihre eigenen Attribute und Methoden, die aufgerufen werden Klassenattribute und Klassenmethoden.

Wichtige OOP-Konzepte sind Klassenhierarchie und Containerhierarchie.

Klassenhierarchie impliziert die Möglichkeit, dass jede Klasse, in diesem Fall Superklasse genannt, ihre eigene Unterklasse hat. Als Beispiel kann die folgende Kette angeführt werden: Alle Programmierer eines Unternehmens sind seine Angestellten, daher ist jeder Programmierer, der ein Objekt der Klasse PROGRAMMERS innerhalb der OOMD ist, auch ein Angestellter, der wiederum ein Objekt des MITARBEITERS ist Klasse. Somit sind PROGRAMMERS eine Unterklasse, EMPLOYEES eine Oberklasse. Programmierer lassen sich aber auch in System und Anwendung unterteilen. Daher wird PROGRAMMERS die Oberklasse der Unterklassen SIS_PROGRAMMERS und APPLICATION_PROGRAMMERS sein. Setzen wir diese Kette weiter fort, erhalten wir eine Klassenhierarchie, in der jedes Objekt der Unterklasse die Instanzen von Variablen und Methoden der entsprechenden Oberklasse erbt.

Es gibt verschiedene Arten der Vererbung - einfach, mehrfach und selektiv. Einzelvererbung ist ein Fall, in dem Unterklassen von höchstens einer Oberklasse erben. Mehrfachvererbung - Vererbung von mehr als einer Oberklasse. Selektive Vererbung ermöglicht es einer Unterklasse, eine begrenzte Anzahl von Eigenschaften von ihrer Oberklasse zu erben.

Die Variableninstanzvererbung wird aufgerufen strukturelle Vererbung, Methodenvererbung - Verhaltensvererbung und die Fähigkeit, dieselbe Methode für verschiedene Klassen zu verwenden, bzw. verschiedene Methoden mit demselben Namen für verschiedene Klassen anzuwenden, heißt Polymorphismus.

Die objektorientierte Architektur hat auch eine andere Art von Hierarchie - Containerhierarchie... Sie besteht darin, dass einige Objekte konzeptionell in anderen enthalten sein können. Daher muss ein Objekt der Klasse DEPARTMENT die öffentliche Variable HEAD enthalten, die eine Verknüpfung zu dem dem Abteilungsleiter entsprechenden Objekt der Klasse MITARBEITER ist, und muss auch eine Verknüpfung zu einer Menge von Verweisen auf Objekte enthalten, die der Mitarbeiter, die in dieser Abteilung tätig sind.

In einigen objektorientierten Systemen ist eine Klasse auch ein Objekt und hat ihre eigenen Attribute und Methoden. Die allgemeinen Eigenschaften einer Klasse werden durch ihre Attribute beschrieben. Objektklassenmethoden sind den Eigenschaften von Objekten in der realen Welt ähnlich. Jedes Objekt einer bestimmten Klasse hat diese Eigenschaften. Daher müssen Sie beim Erstellen eines Objekts die Klasse deklarieren, zu der es gehört, um seine inhärenten Eigenschaften zu definieren.

Der Benutzer und das Objekt interagieren durch Nachrichten. Als Reaktion auf jede Nachricht führt das System die entsprechende Methode aus.

Alle Verknüpfungen im Objektmodell erfolgen über Referenzattribute, die in der Regel als OIDs implementiert sind.

Beziehungen in einer relationalen Datenbank werden durch eine Zuordnung von Primär- und Fremdschlüsseln dargestellt. In der Basis selbst gibt es keine Strukturen zur Bildung von Assoziationen zwischen Tabellen, Links werden nach Bedarf beim Joinen von Tabellen verwendet. Im Gegensatz dazu bilden Beziehungen das Rückgrat einer objektorientierten Datenbank, da jedes Objekt die Identifikatoren der Objekte enthält, denen es zugeordnet ist.

In OOMD können nicht nur traditionelle Links implementiert werden, sondern auch durch Vererbung bedingte Links.

Eins-zu-eins-Kommunikation (1: 1) zwischen den Objekten A und B wird implementiert, indem ein Referenzattribut zu Objekt B zu Objekt A hinzugefügt wird und (um die referenzielle Integrität zu erhalten) ein Referenzattribut zu Objekt A zu Objekt B hinzugefügt wird.

Eins-zu-viele-Beziehung (1: M) zwischen den Objekten A und B wird implementiert, indem zu Objekt A ein Referenzattribut zu Objekt B hinzugefügt wird und ein Attribut, das eine Menge von Referenzen zu Objekt A zu Objekt B enthält (zum Beispiel wird ein Referenzattribut B (OID2, OID3 ...) hinzugefügt zu Objekt A und zu Objektinstanzen B mit OID2, OID3, ... wird ein Referenzattribut A: OID1 hinzugefügt.

Viele-zu-Viele-Beziehung (M: N) zwischen den Objekten A und B wird implementiert, indem zu jedem Objekt ein Attribut hinzugefügt wird, das einen Satz von Links enthält.

In OOMD können Sie eine Ganz-zu-Teil-Beziehung verwenden, die beschreibt, dass ein Objekt einer Klasse Objekte anderer Klassen als Teile enthält. Im Fall einer Produktionsdatenbank würde eine Ganz-zu-Teil-Beziehung zwischen der PRODUCT-Klasse und den PART- und ASSEMBLY-Klassen bestehen. Diese Beziehung ist eine Variante einer Viele-zu-Viele-Beziehung mit spezieller Semantik. Eine Ganz-zu-Teil-Beziehung wird wie jede andere Viele-zu-Viele-Beziehung implementiert, wobei ein Satz zusammengehöriger Objektkennungen verwendet wird. Sie hat jedoch im Gegensatz zur üblichen Viele-zu-Viele-Beziehung eine andere semantische Bedeutung.

Da das objektorientierte Paradigma die Vererbung unterstützt, kann OOMD eine Beziehung vom Typ "is" und eine Beziehung vom Typ "extends" verwenden. Die is-Beziehung, auch Generalisierungs-Spezialisierungs-Beziehung genannt, erzeugt eine Vererbungshierarchie, in der Unterklassen Spezialfälle von Oberklassen sind. Dadurch entfällt die Notwendigkeit, wieder vererbte Merkmale zu beschreiben. Bei Verwendung der "extends"-Beziehung entwickelt die Unterklasse die Funktionalität der Oberklasse und ist nicht auf ihren speziellen Fall beschränkt.

Überlegen Sie, wie Komponenten wie Integritätseinschränkungen und Datenoperationen in OOMD implementiert werden.

Die Eigenschaften dieser Komponenten werden durch die Besonderheiten des Modells bestimmt. Diese Spezifität von OOMD wird hauptsächlich durch seine internen Konzepte wie die Kapselung von Objekten, dh die Geheimhaltung der internen Struktur, den Zugriff auf Daten nur durch vordefinierte Methoden, die Klassenhierarchie und die Hierarchie der Container bestimmt.

Die Spezifität der OOMD wird auch durch die Spezifität des Objekts bestimmt. Es manifestiert sich in der Notwendigkeit, Objekte in Klassen zu gruppieren. Jedes Objekt gehört je nach Aufgabenstellung zu einer oder einer anderen Klasse, und ein Objekt kann gleichzeitig mehreren Klassen angehören (zB den Familien PROGRAMMERS und HIGHLY PAID). Eine weitere Besonderheit eines Objekts besteht darin, dass es von einer Klasse (Unterklasse) zu einer anderen "überlaufen" kann. Somit kann sich ein SYSTEMPROGRAMMIERER im Laufe der Zeit ANWENDEN. Somit entspricht die Klassenhierarchie nicht dem hierarchischen Modell, wie es früher erscheinen mag, sondern erfordert, dass das System in der Lage ist, die Position jedes Objekts innerhalb der Klassenhierarchie zu ändern, z diese Hierarchie. Es ist aber auch ein komplexerer Prozess möglich – das System muss jederzeit sicherstellen, dass ein Objekt an einer beliebigen Spitze der Hierarchie angehängt (abgelöst) werden kann.

Integritätsbeschränkungen spielen bei OOMD eine wichtige Rolle. Damit Verknüpfungen in einem objektorientierten MD funktionieren, müssen die Objektkennungen auf beiden Seiten der Verknüpfung übereinstimmen. Wenn beispielsweise eine Beziehung zwischen MITARBEITERN und ihren KINDERN besteht, muss sichergestellt sein, dass beim Einfügen eines Objekts, das ein Kind beschreibt, in ein Objekt eingefügt wird, das einen Mitarbeiter repräsentiert, die Kennung des letzteren zum entsprechenden Objekt hinzugefügt wird. Diese Art von Verbindungsintegrität, die der referenziellen Integrität in einem relationalen Datenmodell etwas analog ist, wird unter Verwendung von Rückkopplungen hergestellt. Um die Integrität der Links sicherzustellen, wird dem Designer eine spezielle Syntax zur Verfügung gestellt, die erforderlich ist, um die Position des inversen Objektidentifizierers anzugeben. Es liegt in der Verantwortung des Designers, Einschränkungen für die Integrität von Links (sowie für die referenzielle Integrität in einer relationalen Datenbank) festzulegen.

In OOMD erfolgt sowohl die Beschreibung von Daten als auch deren Manipulation mit derselben objektorientierten Verfahrenssprache.

Die Gruppe ODMG (Object Database Management Groop) beschäftigt sich mit den Problemen der Standardisierung der Objektdatenbanktechnologie. Sie entwickelte ein Objektmodell (ODMG Version 2.0 wurde im September 1997 verabschiedet), das ein Standardmodell für die Semantik von Datenbankobjekten definiert. Dieses Modell ist von Bedeutung, da es eine eingebaute Semantik definiert, die ein objektorientiertes DBMS (OODBMS) versteht und implementieren kann. Die Struktur von Bibliotheken und Anwendungen, die diese Semantik verwenden, sollte zwischen den verschiedenen OODBMSs portierbar sein, die eine gegebene Objekt-MD unterstützen. Die Hauptkomponenten der ODMG-Architektur sind: Object Model (OM), Object Definition Language (ODL), Object Query Language (OQL) und die Möglichkeit zur Verknüpfung mit C++, Java und Smalltalk.

Das Objektdatenmodell nach dem ODMG 2.0-Standard zeichnet sich durch folgende Eigenschaften aus:

Die Grundbausteine ​​sind Objekte und Literale. Jedes Objekt hat eine eindeutige Kennung. Ein Literal hat keinen eigenen Bezeichner und kann nicht separat als Objekt existieren. Literale sind immer in Objekte eingebettet und können nicht einzeln referenziert werden;

Objekte und Literale unterscheiden sich im Typ. Jeder Typ hat seine eigene Domäne, die von allen Objekten und Literalen dieses Typs geteilt wird. Typen können auch Verhaltensweisen haben. Wenn ein Typ ein bestimmtes Verhalten aufweist, weisen alle Objekte dieses Typs dasselbe Verhalten auf. In der Praxis kann ein Typ eine Klasse sein, aus der ein Objekt erstellt wird, eine Schnittstelle oder ein einfacher Datentyp (z. B. eine ganze Zahl). Ein Objekt kann man sich als Instanz eines Typs vorstellen;

Der Zustand eines Objekts wird durch eine Reihe von aktuellen Werten bestimmt, die durch eine Reihe von Eigenschaften implementiert werden. Diese Eigenschaften können Attribute eines Objekts oder eine Beziehung zwischen einem Objekt und einem oder mehreren anderen Objekten sein;

Das Verhalten eines Objekts wird durch eine Reihe von Operationen bestimmt, die am Objekt oder am Objekt selbst ausgeführt werden können. Operationen können eine Liste von Eingabe- und Ausgabeparametern haben, von denen jeder einen streng definierten Typ hat. Jede Operation kann auch ein typisiertes Ergebnis zurückgeben;

Eine Datenbankdefinition wird in einem Schema gespeichert, das in der Object Definition Language (ODL) geschrieben ist. Die Datenbank speichert Objekte, damit sie von verschiedenen Benutzern und Anwendungen gemeinsam genutzt werden können.

Auf OOMD basierende DBMS werden als objektorientierte DBMS (OODBMS) bezeichnet. Diese DBMS werden als DBMS der dritten Generation bezeichnet * (* Die Geschichte der Entwicklung von Datenspeichermodellen wird oft in drei Phasen (Generationen) unterteilt: die erste Generation (Ende der 1960er - Anfang der 70er Jahre) - die hierarchischen und Netzwerkmodelle; die zweite Generation (ca. 1970-1980er Jahre) - die relationales Modell; die dritte Generation (1980er - Anfang 2000er) - Objektorientierte Modelle.).

Objektorientierte Datenbanken werden heute in verschiedenen Organisationen zur Lösung unterschiedlichster Aufgaben eingesetzt. Die Analyse und Verallgemeinerung der gesammelten Erfahrungen im Bereich der informationstechnischen Daten ermöglichte es, Anwendungen zu identifizieren, in denen der Einsatz objektorientierter Datenbanken gerechtfertigt ist:

Die Anwendung besteht aus einer Vielzahl von interagierenden Teilen. Jeder von ihnen hat sein eigenes Verhalten, das vom Verhalten anderer abhängt;

Das System muss große Mengen unstrukturierter oder komplexer Daten verarbeiten;

Die Anwendung bietet einen vorhersehbaren Zugriff auf Daten, sodass der Navigationscharakter objektorientierter Datenbanken kein wesentlicher Nachteil ist;

Der Bedarf an Ad-hoc-Anfragen ist begrenzt;

Die Struktur der gespeicherten Daten ist hierarchisch oder ähnlich.

Derzeit gibt es viele objektorientierte DBMS auf dem Softwaremarkt. Tisch 10.6 stellt einige der kommerziellen Systeme dieser Klasse vor.

Tabelle 10.6

Moderne kommerzielle OODBMS,

deren Fertigungsbetriebe und Anwendungsgebiete

Einer der grundlegenden Unterschiede zwischen Objektdatenbanken und relationalen Datenbanken ist die Möglichkeit, neue Datentypen zu erstellen und zu verwenden. Ein wichtiges Merkmal von OODBMS ist, dass die Erstellung eines neuen Typs keine Modifikation des Basiskerns erfordert und auf den Prinzipien der objektorientierten Programmierung basiert.

Der Kern des OODBMS ist für die Objektmanipulation optimiert. Natürliche Operationen dafür sind Objekt-Caching, Objektversionierung, Trennung von Zugriffsrechten auf bestimmte Objekte. OODBMSs zeichnen sich durch eine höhere Leistung bei Operationen aus, die den Zugriff und das Abrufen von in Objekte gepackten Daten erfordern, im Vergleich zu relationalen DBMSs, bei denen das Abrufen verbundener Daten zu zusätzlichen internen Operationen führt.

Von großer Bedeutung für OODBMS ist die Möglichkeit, Objekte von einer Datenbank in eine andere zu verschieben.

Bei der Erstellung verschiedener Anwendungen auf Basis von OODBMS ist die eingebaute Klassenstruktur eines bestimmten DBMS wichtig. Die Klassenbibliothek unterstützt in der Regel nicht nur alle Standarddatentypen, sondern auch einen erweiterten Satz multimedialer und anderer komplexer Datentypen wie Video, Ton, Sequenz von Animationsbildern. In einigen OODBMS wurden Klassenbibliotheken erstellt, die das Speichern und die Volltextsuche von dokumentarischen Informationen ermöglichen (zB Jasmine, ODB-Jupiter). Ein Beispiel für eine grundlegende Klassenstruktur ist in Abb. 10.17.

Die Hauptposition darin nimmt die Klasse TOdbObject ein, die alle notwendigen Eigenschaften und Methoden enthält, um den Zugriff auf die Datenbank zu steuern und die Indizierung durchzuführen. Alle anderen Klassen überschreiben ihre Methoden und fügen eine Validierungsprüfung für den von ihnen implementierten Typ und einen bestimmten Indexer hinzu.

Wie aus Abb. 10.17 gibt es verschiedene Klassen in der Struktur, die sich auf die Verarbeitung von Dokumentarinformationen konzentrieren - TOdbText, TOdbDocument, TODBTextDocument usw. Jedes Dokument wird durch ein separates Objekt repräsentiert. Somit ist die natürliche Aufbewahrung von Dokumenten gewährleistet. Eine der wichtigsten Operationen ist die Suche nach Dokumenten auf Anfrage. Für die meisten Klassen ist die Möglichkeit implementiert, Objekte anhand des Werts eines bestimmten Schlüssels zu suchen. Für die Klasse TOdbText wurde die Möglichkeit implementiert, eine Suchanfrage für eine in natürlicher Sprache geschriebene Phrase zu erstellen.

Die Klasse TOdbDocument ist speziell und kann Objekte unterschiedlichen Typs enthalten. Es besteht aus Feldern, von denen jedes einen Namen hat und einem Objekt eines bestimmten Typs zugeordnet ist. Das Vorhandensein dieser Klasse gibt dem Benutzer die Möglichkeit, den Satz von Typen zu erweitern. Durch Ändern des Containerobjekts (Dokument) können Sie einen bestimmten Satz von Feldern angeben und so einen neuen Dokumenttyp erhalten.

Auf der Basis von ODB-Jupiter haben die OODBMS-Entwickler ein voll funktionsfähiges Information-Retrieval-System ODB-Text geschaffen, das über eine universelle Struktur gespeicherter Daten und eine leistungsstarke Suchmaschine verfügt. Das ODB-Text-System ist ein Werkzeug für die gemeinsame Dokumentenverarbeitung und Unternehmensarchive. Als mögliche Anwendungen nennen wir die Automatisierung des Dokumentenmanagements in einem modernen Büro, den Aufbau von Referenz- und Informationssystemen (ähnlich den bekannten Rechtsdatenbanken), die Pflege von Netzwerkdatenbanken, Personalakten, Bibliographie etc.

41. Merkmale des Designs der angewandten IS. Phasen der IP-Entwicklung. (Thema 11, S. 100-103).

11.1.3. Merkmale des angewandten IC-Systemdesigns

Beim Aufbau (Auswahl, Anpassung) eines Informationssystems können Sie zwei Hauptkonzepte verwenden, zwei Hauptansätze (das dritte Konzept ist eine Kombination daraus):

1. Orientierung an den Problemen, die mit Hilfe dieses Informationssystems gelöst werden müssen, d.h. problemorientierter Ansatz (oder induktiver Ansatz);

2. Orientierung an Technologie, die in einem gegebenen System, Umgebung verfügbar (aktualisiert) ist, d.h. technologieorientierter Ansatz (oder deduktiver Ansatz).

Die Wahl des Konzepts hängt von strategischen (taktischen) und (oder) langfristigen (kurzfristigen) Kriterien, Problemen, Ressourcen ab.

Wenn zunächst die Möglichkeiten der verfügbaren Technologie untersucht und dann konkrete Probleme ermittelt werden, die mit ihrer Hilfe gelöst werden können, ist es notwendig, auf einen technologieorientierten Ansatz zu setzen.

Wenn zunächst konkrete Probleme identifiziert und dann Technologien eingeführt werden, die ausreichen, um diese Probleme zu lösen, muss auf einen problemorientierten Ansatz gesetzt werden.

Gleichzeitig hängen beide Konzepte des Aufbaus eines Informationssystems voneinander ab: Die Einführung neuer Technologien verändert die zu lösenden Probleme, und die Veränderung der zu lösenden Probleme führt zur Notwendigkeit, neue Technologien einzuführen; beides beeinflusst die getroffenen Entscheidungen.

Systemdesign (Entwicklung) und Nutzung jedes angewandten (Unternehmens-)Informationssystems müssen den folgenden Lebenszyklus des Informationssystems durchlaufen:

- Vorentwurfsanalyse (Erfahrung mit der Erstellung anderer ähnlicher Systeme, Prototypen, Unterschiede und Merkmale des zu entwickelnden Systems usw.), Analyse der äußeren Erscheinungsformen des Systems;

- Intrasystemanalyse, interne Analyse (Analyse von Systemsubsystemen);

- systemische (morphologische) Beschreibung (Präsentation) des Systems (Beschreibung des systemischen Ziels, der systemischen Beziehungen und Verbindungen mit der Umwelt, anderen Systemen und systemischen Ressourcen - materiell, energetisch, informationell, organisatorisch, menschlich, räumlich und zeitlich);

- Festlegung von Kriterien für Angemessenheit, Effizienz und Stabilität (Zuverlässigkeit);

- Funktionsbeschreibung von Teilsystemen des Systems (Beschreibung von Modellen, Algorithmen für die Funktionsweise von Teilsystemen);

- Prototyping (Layoutbeschreibung) des Systems, Bewertung des Zusammenspiels von Subsystemen des Systems (Entwicklung eines Layouts - Implementierung von Subsystemen mit vereinfachten Funktionsbeschreibungen, Vorgehensweisen und Approbation des Zusammenspiels dieser Layouts zur Erfüllung des Systems Ziel), während es möglich ist, "Layouts" von Kriterien für Angemessenheit, Stabilität, Effizienz zu verwenden;

- "Zusammenbau" und Testen des Systems - Implementierung von vollwertigen funktionalen Teilsystemen und Kriterien, Modellbewertung nach den formulierten Kriterien;

- die Funktionsweise des Systems;

- Festlegung von Zielen für die Weiterentwicklung des Systems und seiner Anwendungen;

- Systemwartung - Klärung, Änderung, Erweiterung der Fähigkeiten des Systems in seiner Funktionsweise (mit dem Ziel seiner Weiterentwicklung).

Diese Phasen sind grundlegend für das Reengineering von Informationssystemen.

Die Entwicklung eines Unternehmensinformationssystems wird in der Regel für ein ganz bestimmtes Unternehmen durchgeführt. Die Besonderheiten der Gegenstandstätigkeit des Unternehmens werden sich zweifellos auf die Struktur des Informationssystems auswirken. Gleichzeitig ähneln sich die Strukturen verschiedener Unternehmen aber in der Regel. Jede Organisation besteht unabhängig von der Art ihrer Tätigkeit aus einer Reihe von Abteilungen, die direkt die eine oder andere Art von Unternehmenstätigkeit ausführen. Und diese Situation gilt für fast alle Organisationen, unabhängig davon, welcher Art von Aktivität sie nachgehen.

Somit kann jede Organisation als eine Menge interagierender Elemente (Unterabteilungen) betrachtet werden, von denen jedes seine eigene, ziemlich komplexe Struktur haben kann. Auch die Beziehungen zwischen den Abteilungen sind recht komplex. Im Allgemeinen gibt es drei Arten von Verbindungen zwischen den Unternehmensbereichen:

Funktionale Verbindungen – jede Abteilung führt bestimmte Arten von Arbeiten innerhalb eines einzelnen Geschäftsprozesses aus;

Informationskommunikation - Abteilungen tauschen Informationen aus (Dokumente, Faxe, schriftliche und mündliche Bestellungen usw.);

Externe Beziehungen - Einige Einheiten interagieren mit externen Systemen, und ihre Interaktion kann auch sowohl informativ als auch funktional sein.

Die Allgemeinheit der Struktur verschiedener Unternehmen ermöglicht es uns, einige gemeinsame Prinzipien für den Aufbau von Unternehmensinformationssystemen zu formulieren.

Generell kann der Entwicklungsprozess eines Informationssystems unter zwei Gesichtspunkten betrachtet werden:

Nach Zeit oder Phasen des Lebenszyklus des zu entwickelnden Systems. Dabei wird die dynamische Organisation des Entwicklungsprozesses betrachtet, beschrieben in Zyklen, Stufen, Iterationen und Stufen.

Als eine Art Projekt wird ein Unternehmensinformationssystem entwickelt. Viele Merkmale des Projektmanagements und der Projektentwicklungsphasen (Lebenszyklusphasen) sind allgemein, nicht nur abhängig vom Fachgebiet, sondern auch von der Art des Projekts (egal ob Ingenieurprojekt oder Wirtschaftsprojekt) . Daher ist es sinnvoll, zunächst eine Reihe allgemeiner Fragen des Projektmanagements zu betrachten.

Ein Projekt ist ein zeitlich begrenzter, zielgerichteter Wechsel eines separaten Systems mit zunächst klar definierten Zielen, deren Erreichung den Abschluss des Projekts bestimmt, sowie mit festgelegten Anforderungen an Zeitpunkt, Ergebnis, Risiko, Umfang der Mittelverwendung und Ressourcen und Organisationsstruktur.

Normalerweise ist es für ein komplexes Konzept (insbesondere das Konzept eines Projekts) schwierig, eine eindeutige Formulierung zu geben, die alle Merkmale des eingeführten Konzepts vollständig abdeckt. Daher erhebt die angegebene Definition keinen Anspruch auf Eindeutigkeit und Vollständigkeit.

Folgende Hauptunterscheidungsmerkmale des Projekts als Verwaltungsobjekt lassen sich unterscheiden:

Variabilität ist die gezielte Übertragung eines Systems von einem bestehenden auf ein bestimmtes

der gewünschte Zustand, beschrieben in Bezug auf die Ziele des Projekts;

Die Begrenzung des Endziels;

Begrenzte Dauer;

Begrenztes Budget;

Begrenzte Ressourcen erforderlich;

Neuheit für das Unternehmen, für das das Projekt durchgeführt wird;

Komplexität - das Vorhandensein einer großen Anzahl von Faktoren, die den Fortschritt und die Ergebnisse des Projekts direkt oder indirekt beeinflussen;

Rechtliche und organisatorische Unterstützung - Schaffung einer spezifischen Organisationsstruktur für die Dauer des Projekts.

Die Arbeitseffizienz wird durch das Management des Projektdurchführungsprozesses erreicht, der die Zuweisung von Ressourcen, die Koordination des Arbeitsablaufs und den Ausgleich von internen und externen Störungen sicherstellt.

Aus steuerungstheoretischer Sicht muss das Projekt als Kontrollobjekt beobachtbar und kontrollierbar sein, d.h. es werden einige Merkmale unterschieden, durch die der Projektfortschritt ständig überwacht werden kann (Eigenschaft der Beobachtbarkeit) . Darüber hinaus sind Mechanismen zur zeitnahen Einflussnahme auf den Verlauf der Projektdurchführung erforderlich (Eigenschaft der Kontrollierbarkeit).

Die Eigenschaft der Kontrollierbarkeit ist besonders wichtig unter Bedingungen der Unsicherheit und Variabilität des Fachgebiets, die häufig Projekte zur Entwicklung von Informationssystemen begleiten.

Jedes Projekt, unabhängig von Komplexität und Arbeitsaufwand für seine Umsetzung, durchläuft in seiner Entwicklung bestimmte Stadien: vom Zustand, wenn „das Projekt noch nicht da ist“ bis zum Zustand, wenn „das Projekt nicht mehr da ist“. Die Reihe der Entwicklungsstufen von der Entstehung einer Idee bis zur vollständigen Fertigstellung des Projekts wird in der Regel in Phasen (Stufen, Stufen) unterteilt.

Bei der Festlegung der Anzahl der Phasen und ihres Inhalts gibt es einige Unterschiede, da diese Merkmale stark von den Bedingungen für die Durchführung eines bestimmten Projekts und der Erfahrung der Hauptbeteiligten abhängen. Dennoch sind die Logik und der Hauptinhalt des Entwicklungsprozesses von Informationssystemen in fast allen Fällen gleich.

Folgende Phasen der Informationssystementwicklung lassen sich unterscheiden:

Konzeptbildung;

Entwicklung von technischen Spezifikationen;

Entwurf;

Herstellung;

Inbetriebnahme des Systems.

Betrachten wir jeden von ihnen genauer. Die zweite und teilweise die dritte Phase werden normalerweise als Phasen des Systemdesigns bezeichnet und die letzten beiden (manchmal umfasst dies auch die Designphase) - die Phasen der Implementierung.

Konzeptionsphase

Ideenbildung, Zielsetzung;

Bildung eines Schlüsselprojektteams;

Untersuchung der Motivation und Anforderungen des Kunden und anderer Teilnehmer;

Erhebung von Basisdaten und Analyse des Ist-Zustandes;

Ermittlung von Grundvoraussetzungen und Restriktionen, benötigten materiellen, finanziellen und personellen Ressourcen;

Vergleichende Bewertung von Alternativen;

Einreichung von Vorschlägen, deren Prüfung und Genehmigung.

Entwicklung eines technischen Angebots

Entwicklung der Hauptinhalte des Projekts, der Grundstruktur des Projekts;

Entwicklung und Freigabe von technischen Spezifikationen;

Planung, Zerlegung des grundlegenden Strukturmodells des Projekts;

Schätzung und Budgetierung des Projekts, Ermittlung des Ressourcenbedarfs;

Entwicklung von Dienstplänen und erweiterten Arbeitsplänen;

Unterzeichnung eines Vertrags mit einem Kunden;

Inbetriebnahme der Kommunikationsmittel der Projektbeteiligten und Kontrolle über den Arbeitsfortschritt.

Entwurf

In dieser Phase werden Subsysteme, ihre Zusammenhänge bestimmt, die effektivsten Wege der Projektdurchführung und Ressourcennutzung ausgewählt. Typische Werke dieser Phase:

Grundlegende Designarbeiten;

Entwicklung privater technischer Spezifikationen;

Konzeptionelles Design;

Erstellen von technischen Spezifikationen und Anweisungen;

Designeinreichung, Expertise und Genehmigung.

Entwicklung von

In dieser Phase erfolgt die Koordination und operative Steuerung der Projektarbeit, Teilsysteme werden hergestellt, kombiniert und getestet. Hauptinhalt:

Durchführung von Softwareentwicklungsarbeiten;

Vorbereitung der Systemimplementierung;

Kontrolle und Regulierung der Hauptindikatoren des Projekts.

Inbetriebnahme des Systems

In dieser Phase werden Tests durchgeführt, der Probebetrieb des Systems unter Realbedingungen durchgeführt, Verhandlungen über die Ergebnisse des Projekts und über mögliche neue Verträge geführt. Hauptarten der Arbeit:

Komplexe Tests;

42. Das Konzept des Lebenszyklus von geistigem Eigentum. (Thema 11, S. 103-105).

Objektorientiertes Modell

Im objektorientierten Modell ist es bei der Datenpräsentation möglich, einzelne Datenbanksätze zu identifizieren. Beziehungen werden zwischen Datensätzen und ihren Verarbeitungsfunktionen unter Verwendung von Mechanismen hergestellt, die denen in objektorientierten Programmiersprachen ähnlich sind.

Das standardisierte objektorientierte Modell ist in den Empfehlungen des ODMG-93-Standards (Object Database Management Group) beschrieben.

Betrachten wir ein vereinfachtes Modell einer objektorientierten Datenbank. Die Struktur einer objektorientierten Datenbank wird grafisch in Form eines Baumes dargestellt, dessen Knoten Objekte sind. Objekteigenschaften werden durch einen Standard- oder benutzerdefinierten Typ (als Klasse definiert) beschrieben. Der Wert einer Eigenschaft vom Typ class ist ein Objekt, das eine Instanz der entsprechenden Klasse ist. Jede Instanz einer Klasse wird als Nachkomme des Objekts betrachtet, in dem sie als Eigenschaft definiert ist. Ein Instanzobjekt einer Klasse gehört zu seiner Klasse und hat einen einzigen Elternteil. Generische Beziehungen in der Datenbank bilden eine kohärente Hierarchie von Objekten. Ein Beispiel für den logischen Aufbau einer objektorientierten Bibliotheksdatenbank ist in Abb. 2.9. Dabei ist ein Objekt vom Typ Library das Parent für Instanzobjekte der Subscriber-, Directory- und Issuance-Klassen. Verschiedene Book-Objekte können dieselben oder unterschiedliche Eltern haben. Objekte vom Typ Book, die das gleiche Parent haben, müssen sich mindestens durch die Inventarnummer unterscheiden (eindeutig für jede Kopie des Books), aber die gleichen isbn-, udc-, title- und author-Eigenschaftswerte haben.

Die logische Struktur einer objektorientierten Datenbank ähnelt äußerlich der Struktur einer hierarchischen Datenbank. Der Hauptunterschied zwischen den beiden ist die Datenmanipulationsmethoden.

Um Aktionen auf Daten im betrachteten Datenbankmodell durchzuführen, werden logische Operationen verwendet, die durch objektorientierte Mechanismen der Kapselung, Vererbung und Polymorphie erweitert werden.

Die Kapselung begrenzt den Geltungsbereich eines Eigenschaftsnamens auf den Geltungsbereich des Objekts, in dem er definiert ist. Wenn wir also einem Objekt vom Typ Katalog eine Eigenschaft hinzufügen, die die Telefonnummer des Autors des Buches angibt und den Namen phone hat, erhalten wir die gleichnamigen Eigenschaften für die Abonnenten- und Katalogobjekte. Die Bedeutung einer solchen Eigenschaft wird durch das Objekt bestimmt, in das sie eingekapselt ist.

Vererbung hingegen erweitert den Geltungsbereich der Eigenschaft auf alle Nachkommen des Objekts. Somit können allen Objekten vom Typ Book, die Nachkommen eines Objekts vom Typ Catalog sind, die Eigenschaften des übergeordneten Objekts zugewiesen werden: isbn, udk, title und author. Wenn es notwendig ist, die Wirkung des Vererbungsmechanismus auf Objekte auszudehnen, die keine unmittelbaren Verwandten sind (zB zwischen zwei Nachkommen desselben Elternteils), dann wird eine abstrakte Eigenschaft vom Typ abs in ihrem gemeinsamen Vorfahren definiert. Die Definition der abstrakten Eigenschaften ticket und number im Library-Objekt führt also zur Vererbung dieser Eigenschaften durch alle untergeordneten Objekte Subscriber, Book und Issue. Daher ist es kein Zufall, dass die in Abb. 2.9 sind gleich - 00015.

Polymorphismus in objektorientierten Programmiersprachen bedeutet die Fähigkeit des gleichen Programmcodes, mit unterschiedlichen Datentypen zu arbeiten. Mit anderen Worten, es ist möglich, Methoden (Prozeduren oder Funktionen) mit gleichen Namen in Objekten unterschiedlichen Typs zu haben. Während der Ausführung eines Objektprogramms werden die gleichen Methoden je nach Typ des Arguments auf verschiedene Objekte angewendet. In diesem Beispiel bedeutet Polymorphismus, dass Objekte der Book-Klasse, die andere Eltern als die Catalog-Klasse haben, einen anderen Satz von Eigenschaften haben können. Daher können Programme zum Arbeiten mit Objekten der Klasse Book polymorphen Code enthalten.

Die Suche in einer objektorientierten Datenbank besteht darin, die Ähnlichkeit zwischen dem vom Benutzer angegebenen Objekt und den in der Datenbank gespeicherten Objekten herauszufinden.

Reis. 2.9 Die logische Struktur der Bibliotheksdatenbank

Der Hauptvorteil des objektorientierten Datenmodells gegenüber dem relationalen ist die Möglichkeit, Informationen über komplexe Beziehungen zwischen Objekten anzuzeigen. Das objektorientierte Datenmodell ermöglicht es Ihnen, einen einzelnen Datenbankeintrag zu identifizieren und die Funktionen seiner Verarbeitung zu definieren.

Die Nachteile des objektorientierten Modells sind hohe konzeptionelle Komplexität, Unannehmlichkeiten bei der Datenverarbeitung und geringe Abfragegeschwindigkeit.

Objektorientierte DBMS umfassen POET, Jasmine, Versant, O2, ODB-Jupiter, Iris, Orion, Postgres.

Datenbanken als Ganzes werden in der Regel nach wirtschaftlichen und rechtlichen Merkmalen klassifiziert.

Nach den Bedingungen der Leistungserbringung werden kostenlose und kostenpflichtige Banken unterschieden, die wiederum in gewerbliche und gemeinnützige (wissenschaftliche, bibliothekarische oder gesellschaftlich bedeutsame) unterteilt werden.

Entsprechend der Eigentumsform werden die BND in staatliche und nichtstaatliche unterteilt. Je nach Grad der Zugänglichkeit unterscheiden sie zwischen öffentlich und mit einer begrenzten Anzahl von Nutzern.

Andere Klassifizierungsarten sind mit einzelnen BnD-Komponenten verbunden.

1. Die Entwicklung von Datenbanken besteht aus 4 Phasen:

Stufe 1. Bildung und Analyse von Systemanforderungen:

Es wird eine Systemspezifikation erstellt, einschließlich einer Liste der vom BND zu lösenden Aufgaben;

Liste der Endbenutzer und ihrer Funktionen;

Liste der Anforderungen an die Datenbank;

Ein Dokumentenflussdiagramm in der Organisation wird erstellt.

Stufe 2. Konzeptionelles Design: ein Informationsmodell des Systems wird ohne Bezug auf die Art des Computers und die Art der Systemsoftware erstellt; Es wird ein infologisches Datenbankmodell aufgebaut, das das Themengebiet aus Sicht des Benutzers am umfassendsten beschreibt.

Stufe 3. Implementierungsdesign: ein Computersystem, Systemsoftware und ein DBMS werden ausgewählt; die Datenstruktur entworfen und ein datenlogisches Datenbankmodell (Datenbankschema) erstellt wird, das eine Beschreibung der logischen Struktur der Datenbank in der Sprache eines bestimmten ausgewählten Datenbankverwaltungssystems ist.

Stufe 4. Physische Implementierung, die das Erstellen und Laden von Daten in die Datenbank, das Entwickeln und Debuggen von Anwendungsprogrammen für die Arbeit mit der Datenbank, das Schreiben von Dokumentationen umfasst. In dieser Phase wird ein physisches Modell der Datenbank erstellt, das die verwendeten Speichergeräte und Methoden der physischen Organisation der Daten beschreibt. Die Beschreibung der physischen Struktur der Datenbank wird als Speicherschema bezeichnet. Derzeit besteht die Tendenz, diese Art von Arbeit zu reduzieren.

2. Die vom Personal der Datenbank gelösten Hauptaufgaben

Zu den Mitarbeitern des BND gehören verschiedene Spezialisten: BND-Administratoren, Systemanalysten, System- und Anwendungsprogrammierer, Operatoren, Spezialisten für technische Mittel, Marketing usw.

Lassen Sie uns die wichtigsten Funktionen und Aufgaben auflisten, die das Personal während der Entwicklung und des Betriebs der Datenbank gelöst hat:

1) Analyse des Themenbereichs (Bestimmung der Bedürfnisse der Endbenutzer, Aufbau eines Informationsmodells des Themenbereichs, Identifizierung von Integritätsbeschränkungen);

2) Entwerfen der Datenbankstruktur (Bestimmen der Zusammensetzung und Struktur der Datenbankdateien, Beschreiben ihres Schemas in der Datenbeschreibungssprache);

3) Festlegen der Datenbankintegritätsbeschränkungen;

4) Laden und Pflegen der Datenbank (Datenbankpflege umfasst das Ändern, Löschen und Hinzufügen von Datensätzen); Entwicklung von Lade- und Wartungstechnik; Entwicklung von Dateneingabeformularen; Dateneingabe und -kontrolle;

5) Datenschutz (Unterscheidung der Nutzer, Auswahl und Prüfung von Schutzmitteln, Aufzeichnung von unberechtigten Zugriffsversuchen);

6) Sicherstellung der Datenbankwiederherstellung;

7) Analyse der BnD-Effizienz und Systementwicklung;

8) mit Benutzern arbeiten (Antworten sammeln, Schulungen);

9) Wartung der Systemsoftware (Beschaffung, Installation und Entwicklung);

10) organisatorische und methodische Arbeit (Auswahl von Gestaltungs- und Modernisierungsmethoden, Planung der Entwicklung des BND, Entwicklung der Dokumentation).

3. Nutzer von Datenbanken

Wie jeder software-organisatorisch-technische Komplex existiert die Datenbank in Zeit und Raum. Es hat bestimmte Entwicklungsstufen:

Entwurf,

Implementierung,

Unterstützung,

Aktualisierung und Entwicklung,

Komplette Reorganisation.

In jeder Existenzphase sind verschiedene Kategorien von Verbrauchern mit der Datenbank verbunden.

Endnutzer

Dies ist die Hauptkategorie von Benutzern, deren Interessen sich auf die Datenbank beziehen. Je nach Spezifik der zu erstellenden Datenbank kann sich diese im Kreis ihrer Endnutzer wesentlich unterscheiden. Dies können zufällige Verbraucher sein, die die Datenbank von Zeit zu Zeit an die Datenbank adressieren, nachdem sie einige Informationen erhalten haben, und sie können normale Benutzer sein. Gelegenheitskunden können als potenzielle Kunden des Unternehmens angesehen werden, die einen Katalog von Leistungen oder Dienstleistungen mit einer verallgemeinerten oder detaillierten Beschreibung durchsuchen. Mitarbeiter, die mit speziell für sie entwickelten Programmen arbeiten, die ihre Aktionen bei der Ausführung von Funktionen automatisieren, können normale Benutzer sein. Ein Administrator, der beispielsweise die Arbeit einer Nebenabteilung eines Computerunternehmens plant, verfügt über ein Programm, das ihm hilft, laufende Bestellungen nach Anweisungen zu planen und zu arrangieren, den Fortschritt ihrer Produktivität zu überwachen und das erforderliche Zubehör für neue Bestellungen im Lager zu organisieren. Die wichtigsten Spezialkenntnisse, die von Endanwendern nicht verlangt werden sollten, im Bereich Sprache und Computertechnik.

Datenbankadministratoren

Dies ist eine Gruppe von Benutzern, die in der Anfangsphase der Entwicklung der Datenbank für deren optimale Gestaltung im Hinblick auf den gleichzeitigen Betrieb einer Reihe von Endbenutzern verantwortlich ist Betrieb dieses Informationsstapels im Mehrbenutzermodus. Während der Design- und Reorganisationsphase ist diese Gruppe dafür verantwortlich, den Stack korrekt zu reorganisieren, ohne seine laufende Wartung zu ändern oder abzuschließen.

Anwendungsentwickler und Administratoren

Dies ist eine Gruppe von Benutzern, die bei der Gestaltung, Erstellung und Reorganisation der Datenbank mitwirkt. Anwendungsadministratoren koordinieren die Arbeit der Entwickler, indem sie eine bestimmte Anwendung oder eine Gruppe von Anwendungen entwickeln, die in einem funktionalen Subsystem vereint sind. Entwickler für bestimmte Anwendungen arbeiten mit der Information aus der Datenbank, die für eine bestimmte Anwendung benötigt wird.

Nicht in jeder Datenbank ist jeder Benutzertyp ausgewählt. Es ist bekannt, dass bei der Entwicklung von Informationssystemen mit einem tabellarischen DBMS Datenbankadministrator, Anwendungsadministrator und Entwickler oft in einer Person bestanden. Bei der Erstellung moderner, komplexer Unternehmensdatenbanken, die zur Automatisierung aller oder großer Teile der Geschäftsprozesse in einer großen Firma oder einem Konzern verwendet werden, kann es jedoch Gruppen von Anwendungsadministratoren und Entwicklungsabteilungen geben. Die schwierigsten Betriebsarten werden der Gruppe der Datenbankadministratoren zugeordnet.

Betrachten wir sie genauer.

Teil der BnD-Administratorengruppe sollten sein:

Systemkommentatoren;

Entwickler von Datenstrukturen und Erscheinungsbild in Bezug auf die Informationsunterstützungsdatenbank;

Entwickler von technologischen Datenverarbeitungsprozessen;

System- und Anwendungsprogrammierer;

Betreiberfirmen und Experten im Reparaturservice.

Die Frage nach einer kommerziellen Datenbank spielt beim Expertenverkauf eine wichtige Rolle.

Hauptfunktionen der Gruppe der DB-Administratoren

1. Recherche des Datenbereichs: Beschreibung des Datenbereichs, Verpacken des Textes von Integritätsbeschränkungen, Ermittlung des Zustands (Verfügbarkeit, Vertraulichkeit) von Informationen, Ermittlung der Bedürfnisse der Verbraucher, Ermittlung der Korrespondenz von "Datenverbrauchern", Ermittlung der zeitlichen Umfang der Datenverarbeitungsmerkmale.

2. Aufbau der Datenbankstruktur: Definition der Zusammensetzung und Struktur der Datenbankdateien und Zwischenverbindungen, Auswahl von Methoden zur Optimierung von Daten und Zugriffsmethoden auf Informationen, Beschreibung der Datenbank in der Datenbeschreibungssprache (DL) .

3. Festlegen von Integritätsbeschränkungen in der Beschreibung der Datenbankstruktur und der Datenbankverarbeitungsverfahren:

Festlegen von deklarativen Integritätsbedingungen, die dem Datenbereich inhärent sind;

Bestimmung dynamischer Integritätsbeschränkungen, die dem Datenbereich inhärent sind, während der Änderung der in der Datenbank gespeicherten Informationen;

Die Definition von Integritätsbeschränkungen wird durch die Struktur der Datenbank verursacht;

Entwicklung von Verfahren zur Aufrechterhaltung der Integrität der Datenbank bei der Eingabe und Korrektur von Daten;

Ermittlung von Integritätsbeschränkungen durch Parallelbetrieb von Verbrauchern im Mehrbenutzermodus.

4. Starten Sie den Download und führen Sie die Datenbank

Entwicklung einer Technik zum Initiieren des Datenbankladens, die sich von der Prozedur zum Ändern und Hinzufügen von Daten bei regelmäßiger Nutzung der Datenbank unterscheidet;

Entwicklung einer Technik zur Überprüfung der eingegebenen Daten, des realen Zustands des Datenbereichs. Die realen Objekte der Datenbankmodelle eines Datenbereichs und die Korrelation sind dazwischen, und zum Zeitpunkt des Beginns der aktuellen Reparatur muss dieses Modell jetzt vollständig dem Zustand der Datenbereichsobjekte entsprechen;

Gemäß der entwickelten Technik zum Initiieren des Ladens des Entwurfs des Systems kann die Initiierung der Dateneingabe erforderlich sein.

5. Datenschutz

Definition eines Passwortsystems, Prinzipien der Verbraucheransprache, Bildung von Verbrauchergruppen mit identischen Datenzugriffsrechten;

Entwicklung von Grundsätzen zum Schutz bestimmter Daten und Entwicklungsobjekte; Entwicklung spezialisierter Methoden zur Kodierung von Informationen während ihrer Verbreitung in lokalen und globalen Informationsnetzen;

Entwicklung von Mitteln zur Festsetzung des Zugriffs auf Daten und Versuche, das Sicherheitssystem zu verletzen;

Testen des Schutzsystems;

Untersuchung von Verstößen gegen das Schutzsystem und Entwicklung dynamischer Methoden zum Schutz von Informationen in der Datenbank.

6. Unterstützung für die Datenbankwiederherstellung

Entwicklung von Grundsätzen zur Archivierung von Organisationsmitteln und zur Wiederherstellung von Datenbanken;

Entwicklung zusätzlicher Software und technologischer Verfahren zur Datenbankwiederherstellung nach Ausfällen.

7. Untersuchung von Aufrufen an Datenbankkonsumenten: eine Reihe von Statistiken über das Symbol der Anforderungen, die Zeit zum Einschalten ihrer Leistung gemäß den erforderlichen Ausgabedokumenten

8. Untersuchung der Effizienz der BnD-Funktion:

Untersuchung der Indizes der BnD-Funktionalität

Planung der Restrukturierung (Strukturwandel) der Datenbank und Reorganisation des BND.

9. Arbeiten mit Endbenutzern:

Sammeln von Informationen über das Ändern des Datenbereichs;

Sammlung von Informationen zur Bewertung der BnD-Arbeit;

Verbraucherschulung, Verbraucherberatung;

Entwicklung der notwendigen systematischen und lehrreichen Dokumentation über die Arbeit der Endbenutzer.

10. Vorbereitung und Wartung der Systemtools:

Recherche von am Markt vorhandener Software und Recherche der Möglichkeit und Notwendigkeit ihrer Nutzung im Rahmen des BND;

Entwicklung des erforderlichen organisatorischen und technischen Bewegungsprogramms für die Entwicklung des BND;

Überprüfung der Leistung der eingelösten Software vor dem Anschluss an den BND;

Kontrolle der Anbindung der neuen Software an den BND.

11. Organisatorische und systematische Arbeit beim Aufbau des BND:

Auswahl oder Erstellung einer Datenbankentwicklungsmethode;

Festlegung von Zielen und Entwicklungsrichtung des Gesamtsystems;

Planung der Phasen der BnD-Entwicklung;

Entwicklung von Nachschlagewerken für allgemeine Wörterbücher des BND-Projekts und eines konzeptionellen Modells;

Installation externer Modelle entwickelter Anwendungen;

Kontrolle der Anbindung der neuen Anwendung an die Arbeit des BnD;

Möglichkeit der komplexen Fehlerbehebung einer Reihe von Anwendungen, die von einer Datenbank aus interagieren.

Im objektorientierten Modell (OOM) ist es bei der Datenpräsentation möglich, einzelne Datenbanksätze zu identifizieren. Beziehungen werden zwischen Datenbankeinträgen und ihren Verarbeitungsfunktionen unter Verwendung von Mechanismen hergestellt, die denen in objektorientierten Programmiersprachen ähnlich sind.

Standard OOM ist in den Empfehlungen des Standards ODMG-93 (Object Database Management Group) beschrieben. Die Empfehlungen der ODMG-93 wurden noch nicht vollständig umgesetzt. Betrachten Sie zur Veranschaulichung der Schlüsselideen ein etwas vereinfachtes Modell einer objektorientierten Datenbank.

Die Struktur der OO-Datenbank wird grafisch in Form eines Baumes dargestellt, dessen Knoten Objekte sind. Objekteigenschaften werden durch einen Standardtyp (z. B. einen Zeichenfolgentyp) oder einen benutzerdefinierten Typ (als Klasse definiert) beschrieben.

Der Wert einer Eigenschaft vom Typ string ist eine Zeichenkette. Der Wert einer Eigenschaft vom Typ class ist ein Objekt, das eine Instanz der entsprechenden Klasse ist. Jede Instanz einer Klasse wird als Nachkomme des Objekts betrachtet, in dem sie als Eigenschaft definiert ist. Ein Instanzobjekt einer Klasse gehört zu seiner Klasse und hat einen einzigen Elternteil. Generische Beziehungen in der Datenbank bilden eine verwandte Hierarchie von Objekten.

Ein Beispiel für die logische Struktur der OO-DB des Bibliothekswesens ist in Abb. 3.14. Dabei ist ein Objekt vom Typ LIBRARY das Elternobjekt für Instanzobjekte der Klassen SUBSCRIBER, DIRECTORY und REFERENCE. Unterschiedliche BOOK-Objekte mit gleichem Elternteil müssen sich zumindest in der Inventarnummer (eindeutig für jedes Exemplar des Buches) unterscheiden, aber die gleichen Eigenschaftswerte haben isbn, udk, name und Autor.


Abbildung 3.14. Die logische Struktur der Bibliotheksdatenbank

Die logische Struktur der OO-Datenbank ähnelt äußerlich der Struktur einer hierarchischen Datenbank. Der Hauptunterschied zwischen ihnen liegt in den Methoden der Datenmanipulation. Um Aktionen an Daten in einer OOM-Datenbank durchzuführen, werden logische Operationen verwendet, die durch objektorientierte Mechanismen der Kapselung, Vererbung und Polymorphie verstärkt werden. SQL-Befehle ähnliche Operationen können in begrenztem Umfang verwendet werden (z. B. zum Erstellen einer Datenbank).

Die Erstellung und Änderung der Datenbank wird durch die automatische Bildung und anschließende Anpassung von Indizes (Indextabellen) mit Informationen zur schnellen Datenbeschaffung begleitet.

Betrachten wir kurz die Konzepte der Kapselung, Vererbung und Polymorphie in Bezug auf OOM-Datenbanken.

Verkapselung beschränkt den Gültigkeitsbereich des Eigenschaftsnamens auf die Grenzen des Objekts, in dem er definiert ist. Wenn Sie also einem Objekt vom Typ DIRECTORY eine Eigenschaft hinzufügen, die die Telefonnummer des Autors des Buches festlegt und den Namen hat Telefon, dann erhalten wir gleichnamige Eigenschaften für die Objekte SUBSCRIBER und DIRECTORY. Die Bedeutung einer solchen Eigenschaft wird durch das Objekt bestimmt, in das sie eingekapselt ist.

Nachlass, im Gegenteil, es erweitert den Geltungsbereich der Eigenschaft auf alle Nachkommen des Objekts. Somit können allen Objekten vom Typ BOOK, die Nachkommen eines Objekts vom Typ DIRECTORY sind, die Eigenschaften des übergeordneten Objekts zugewiesen werden: isbn, udk, name und Autor. Wenn es notwendig ist, die Wirkung des Vererbungsmechanismus auf Objekte auszudehnen, die keine unmittelbaren Verwandten sind (zB zwischen zwei Nachkommen desselben Elternteils), dann wird eine abstrakte Eigenschaft vom Typ abs in ihrem gemeinsamen Vorfahren definiert. Also, die Definition abstrakter Eigenschaften Fahrkarte und Zimmer im LIBRARY-Objekt bewirkt, dass diese Eigenschaften von allen untergeordneten Objekten SUBSCRIBER, BOOK und REFERENCE geerbt werden. Es ist kein Zufall, dass die Werte der Immobilie Fahrkarte der in der Abbildung gezeigten Klassen ABONNEMENT und LIEFERUNG gleich sein - 00015.

Polymorphismus in objektorientierten Programmiersprachen bedeutet es die Fähigkeit des gleichen Programmcodes, mit unterschiedlichen Datentypen zu arbeiten. Mit anderen Worten, es ist möglich, Methoden (Prozeduren oder Funktionen) mit gleichen Namen in Objekten unterschiedlichen Typs zu haben. Während der Ausführung eines Objektprogramms werden die gleichen Methoden je nach Typ des Arguments auf verschiedene Objekte angewendet. In Bezug auf unsere OO-DB bedeutet Polymorphismus, dass Objekte der Klasse BOOK, die andere Eltern als die Klasse DIRECTORY haben, einen anderen Satz von Eigenschaften haben können. Folglich können Programme zum Arbeiten mit Objekten der Klasse BOOK polymorphen Code enthalten.

Die Suche in der OO-Datenbank besteht darin, die Ähnlichkeit zwischen dem vom Benutzer angegebenen Objekt und den in der Datenbank gespeicherten Objekten herauszufinden. Ein benutzerdefiniertes Objekt, das als Zielobjekt bezeichnet wird (die Objekteigenschaft ist vom Typ Ziel), kann im allgemeinen Fall eine Teilmenge der gesamten Hierarchie von in der Datenbank gespeicherten Objekten darstellen. Das Zielobjekt sowie das Ergebnis der Abfrageausführung können in der Datenbank selbst gespeichert werden. Abb. 3.15.

Das Wichtigste Würde OOM im Vergleich zu relationalen Daten ist die Möglichkeit, Informationen über komplexe Objektbeziehungen anzuzeigen. Mit OOM-Daten können Sie einen einzelnen Datenbankeintrag identifizieren und die Funktionen seiner Verarbeitung definieren.

Nachteil OOM sind hohe konzeptionelle Komplexität, Unannehmlichkeiten bei der Datenverarbeitung und geringe Abfragegeschwindigkeit.


Abbildung 3.15. Fragment der Datenbank mit dem Zielobjekt

Wenden wir uns noch einmal der Auftragsaufgabe zu, die in Form eines relationalen Datenmodells in Abb. 3.8 und betrachten es im Sinne einer objektorientierten Datenbank. Es gibt insgesamt drei Klassen: „ Kunden», « Aufträge" und " Waren". Objekte der Klasse " Kunden»Sind bestimmte Kunden; Klasseneigenschaften - Kundennummer, Kundenname, Stadt, Status usw. Klassenmethoden - " Bestellung anlegen», « Rechnung bezahlen" usw. Eine Methode ist eine Art von Operation, die auf ein Objekt angewendet werden kann; Methode ist das, was das Objekt tun soll. Die der Tabelle entsprechende Klasse " Bestelldetails", nicht erforderlich. Tabellendaten können Teil der Klasse " Aufträge". Präsenz in der Klasse" Kunden"Methode" Bestellung anlegen"Führt zur Interaktion mit Objekten der Klassen" Aufträge" und " Waren". In diesem Fall muss der Benutzer von dieser Interaktion von Objekten nichts wissen. Der Benutzer verweist nur auf das Objekt " Aufträge"Und verwendet die Methode" Bestellung anlegen". Die Auswirkungen auf andere Datenbanken können dem Benutzer verborgen bleiben. Wenn die Methode " Bestellung anlegen", bezieht sich wiederum auf die Methode" Bonität des Kunden prüfen”, Diese Tatsache kann dem Benutzer auch verborgen bleiben. In relationalen Datenbanken erfordert das Ausführen derselben Funktionalität das Schreiben von Prozeduren in Visual Basic for Application (VBA).

In den 90er Jahren gab es experimentelle Prototypen von OO-Datenbankmanagementsystemen. Derzeit sind solche Systeme weit verbreitet. Hierzu zählen insbesondere die folgenden DBMS: POET (POET Software), Jasmine (Computer Associates), Versant (Versant Technologies), O2 (Ardent Software), ODB-Jupiter (Inteltek Plus Research and Production Center) sowie Iris , Orion and Postgres.

Grundlegendes Konzept

Definition 1

Objektorientiertes Modell Die Darstellung der Daten ermöglicht die Identifizierung einzelner Datensätze der Datenbank.

Datenbanksätze und ihre Verarbeitungsfunktionen sind durch Mechanismen verknüpft, die den entsprechenden Werkzeugen ähnlich sind, die in objektorientierten Programmiersprachen implementiert sind.

Definition 2

Grafische Darstellung eine objektorientierte Datenbankstruktur ist ein Baum, dessen Knoten Objekte darstellen.

Standardtyp (z. B. Zeichenfolge - Schnur) oder ein vom Benutzer erstellter Typ ( Klasse), beschreibt Objekteigenschaften.

In Abbildung 1 ist das LIBRARY-Objekt das Elternobjekt der Instanzobjekte DIRECT, SUBSCRIBER und REFERENCE. Verschiedene Objekte des Typs BOOK können gleiche oder unterschiedliche Eltern haben. Objekte vom Typ BOOK, die das gleiche Elternteil haben, müssen mindestens unterschiedliche Inventarnummern (eindeutig für jedes Exemplar des Buches), aber die gleichen Eigenschaftswerte haben Autor, Titel, udk und isbn.

Die logischen Strukturen einer objektorientierten Datenbank und einer hierarchischen Datenbank sind oberflächlich ähnlich. Sie unterscheiden sich hauptsächlich in Datenmanipulationsmethoden.

Beim Ausführen von Aktionen an Daten im objektorientierten Modell werden logische Operationen verwendet, die durch Kapselung, Vererbung und Polymorphismus verstärkt werden. Mit einigen Einschränkungen können Sie Operationen verwenden, die SQL-Befehlen ähneln (z. B. beim Erstellen einer Datenbank).

Beim Anlegen und Ändern einer Datenbank erfolgt die automatische Bildung und anschließende Anpassung von Indizes (Indextabellen), die Informationen zur schnellen Datenbeschaffung enthalten.

Definition 3

Ziel Verkapselungen- Begrenzung des Geltungsbereichs des Eigenschaftsnamens auf die Grenzen des Objekts, in dem er definiert ist.

Wenn beispielsweise dem DIRECTORY-Objekt eine Eigenschaft hinzugefügt wird, die die Telefonnummer des Autors festlegt und den Namen trägt Telefon, dann werden die gleichnamigen Eigenschaften für die Objekte DIRECTORY und SUBSCRIBER abgerufen. Die Bedeutung einer Eigenschaft wird durch das Objekt bestimmt, in das sie eingekapselt ist.

Definition 4

Nachlass, umgekehrt kapselnd, ist dafür verantwortlich, den Geltungsbereich der Eigenschaft relativ zu allen Nachkommen des Objekts zu erweitern.

Beispielsweise können allen BOOK-Objekten, die Nachkommen des DIRECTORY-Objekts sind, die Eigenschaften des Elternobjekts zugewiesen werden: Autor, Titel, udk und isbn.

Wenn es notwendig ist, die Wirkung des Vererbungsmechanismus auf Objekte auszudehnen, die keine unmittelbaren Verwandten sind (z. B. zwei Nachkommen desselben Elternteils), wird eine Eigenschaft vom abstrakten Typ in ihrem gemeinsamen Vorfahren definiert Abs.

Also die Eigenschaften Zimmer und Fahrkarte im LIBRARY-Objekt werden von allen Kindobjekten REFERENCE, BOOK und SUBSCRIBER geerbt. Aus diesem Grund sind die Werte dieser Eigenschaft der Klassen SUBSCRIBER und OUTPUT gleich - 00015 (Abbildung 1).

Definition 5

Polymorphismus ermöglicht, dass derselbe Programmcode mit unterschiedlichen Datentypen arbeitet.

Mit anderen Worten, es erlaubt Objekten unterschiedlichen Typs, Methoden (Funktionen oder Prozeduren) mit gleichen Namen zu haben.

Suche in einer objektorientierten Datenbank ist es die Ähnlichkeit zwischen dem Objekt, das der Benutzer spezifiziert, und den Objekten, die in der Datenbank gespeichert sind, zu bestimmen.

Vor- und Nachteile des objektorientierten Modells

Das Wichtigste Vorteil Das objektorientierte Datenmodell besteht im Gegensatz zum relationalen Modell in der Fähigkeit, Informationen über komplexe Beziehungen von Objekten darzustellen. Das betrachtete Datenmodell ermöglicht es Ihnen, einen eigenen Datenbanksatz und die Funktionen seiner Verarbeitung zu definieren.

ZU Nachteile Das objektorientierte Modell zeichnet sich durch hohe konzeptionelle Komplexität, umständliche Datenverarbeitung und geringe Abfragegeschwindigkeit aus.

Heute sind solche Systeme recht weit verbreitet. Dazu gehören DBMS:

  • Postgres,
  • Orion,
  • Iris,
  • ODBJupiter,
  • Versiert,
  • Objektivität / DB,
  • Objektspeicher,
  • Statik,
  • Edelstein
  • G-Basis.

Einführung

Die Entstehung der Richtung objektorientierter Datenbanken (OODB) wurde in erster Linie durch die Bedürfnisse der Praxis bestimmt: die Notwendigkeit, komplexe Informationsanwendungssysteme zu entwickeln, für die die Technologie bisheriger Datenbanksysteme nicht ganz zufriedenstellend war. Natürlich tauchte OODB nicht von Grund auf auf. Die entsprechende Grundlage lieferten sowohl bisherige Arbeiten im Bereich Datenbanken, als auch die seit langem entwickelten Gebiete der Programmiersprachen mit abstrakten Datentypen und objektorientierten Programmiersprachen.

Im Hinblick auf die Beziehung zu den bisherigen Arbeiten im Bereich Datenbanken war der stärkste Einfluss auf die Arbeiten im Bereich OODB die Entwicklung des DBMS und der nächsten chronologischen Datenbankfamilie, in der die Verwaltung komplexer Objekte unterstützt wurde. Diese Aktivitäten bildeten die strukturelle Grundlage für die OOBD-Organisation. In dieser Zusammenfassung werden OOMD und OODBMS betrachtet.

Objektorientiertes Datenmodell

Betrachten Sie einen der Ansätze zum Aufbau einer Datenbank – unter Verwendung eines objektorientierten Datenmodells (OOMD). Die Datenmodellierung in OOMD basiert auf dem Konzept eines Objekts. ODM wird meist in komplexen Themengebieten eingesetzt, denen die Funktionalität des relationalen Modells zur Modellierung fehlt (z. B. für Design-Automatisierungssysteme (CAD), Publishing-Systeme etc.).

Das objektorientierte Datenmodell ODMG unterscheidet sich von anderen Modellen vor allem in einem grundlegenden Aspekt. Im SQL-Datenmodell und im wahren relationalen Datenmodell ist eine Datenbank eine Sammlung benannter Datencontainer desselben generischen Typs: Tabellen bzw. Beziehungen. Im objektorientierten Datenmodell ist eine Datenbank eine Sammlung von Objekten (Datencontainern) beliebigen Typs.

Bei der Erstellung eines objektorientierten DBMS (OODBMS) kommen verschiedene Methoden zum Einsatz, nämlich:

Einbetten von Werkzeugen, die für die Arbeit mit der Datenbank entwickelt wurden, in die objektorientierte Sprache;

Erweiterung der bestehenden Sprache zum Arbeiten mit Datenbanken mit objektorientierten Funktionen;

Erstellung objektorientierter Funktionsbibliotheken für die Arbeit mit einer Datenbank;

Schaffung einer neuen Sprache und eines neuen objektorientierten Datenmodells.

Zu den Vorteilen von OOMD zählen zahlreiche Möglichkeiten zur Modellierung der Domäne, eine ausdrucksstarke Abfragesprache und eine hohe Performance. Jedes Objekt in der OOMD hat eine eindeutige Kennung (OID - Objektkennung). Das Abrufen von OIDs ist deutlich schneller als das Suchen in relationalen Tabellen.

Zu den Nachteilen von OOMD sind das Fehlen eines allgemein anerkannten Modells, mangelnde Erfahrung in der Erstellung und dem Betrieb von OODB, die Komplexität der Nutzung und unzureichende Datenschutzmaßnahmen zu nennen.

Sehen wir uns nun an, wie die Datenmodellunterstützung in realen Datenbankverwaltungssystemen implementiert wird.

Im objektorientierten Modell (OOM) ist es bei der Datenpräsentation möglich, einzelne Datenbanksätze zu identifizieren. Beziehungen werden zwischen Datenbankeinträgen und ihren Verarbeitungsfunktionen unter Verwendung von Mechanismen hergestellt, die denen in objektorientierten Programmiersprachen ähnlich sind.

Standard OOM ist in den Empfehlungen des Standards ODMG-93 (Object Database Management Group) beschrieben. Die Empfehlungen der ODMG-93 wurden noch nicht vollständig umgesetzt. Betrachten Sie zur Veranschaulichung der Schlüsselideen ein etwas vereinfachtes Modell einer objektorientierten Datenbank.

Die Struktur der OO-Datenbank wird grafisch in Form eines Baumes dargestellt, dessen Knoten Objekte sind. Objekteigenschaften werden durch einen Standardtyp (z. B. einen Zeichenfolgentyp) oder einen benutzerdefinierten Typ (als Klasse definiert) beschrieben.

Der Wert einer Eigenschaft vom Typ string ist eine Zeichenkette. Der Wert einer Eigenschaft vom Typ class ist ein Objekt, das eine Instanz der entsprechenden Klasse ist. Jede Instanz einer Klasse wird als Nachkomme des Objekts betrachtet, in dem sie als Eigenschaft definiert ist. Ein Instanzobjekt einer Klasse gehört zu seiner Klasse und hat einen einzigen Elternteil. Generische Beziehungen in der Datenbank bilden eine verwandte Hierarchie von Objekten.

Fortsetzung des Themas:
Betriebssystem

Die Besitzer der meisten modernen Smartphones sind mit der Betriebszeit eines elektronischen Geräts ohne Aufladen nicht zufrieden, daher denken viele darüber nach, den Betrieb zu optimieren. Nicht...