the Internet Windows Android

Object-oriented model. Object-oriented data model

Basic concepts

Definition 1.

Object-oriented modeldata presentations makes it possible to identify individual database entries.

Database records and processing functions are related to mechanisms similar to the appropriate means that are implemented in object-oriented programming languages.

Definition 2.

Graphic representation The structures of an object-oriented database is a tree whose nodes represent objects.

Standard type (for example, string - string) or the type created by the user ( class), describes properties of objects.

In Figure 1, the Library object is a parent for class instance objects directory, subscriber and issuance. Different objects such as a book can be one or different parents. In objects such as a book that have the same parent, there must be at least different inventory numbers (unique for each copy of the book), but same values Properties author, name, uDC and iSBN..

The logical structures of an object-oriented and hierarchical database are similar. They differ in the main methods of manipulation data.

When performing action on data in an object-oriented model, logic operations are used, which are enhanced by encapsulation, inheritance and polymorphism. With some restriction, you can apply operations that are similar to SQL commands (for example, when creating a database).

When creating and modifying the database, automatic formation and subsequent adjustment of indexes (index tables) are performed, which contain information to quickly search for data.

Definition 3.

purpose encapsulation - Restriction of the scope of the property name of the boundaries of the object in which it is defined.

For example, if the property is added to the object, which sets the phone of the author and has a name telephoneThe properties of the same name will have the catalog and subscriber objects. The meaning of the property is determined by the object in which it is encapsulated.

Definition 4.

Inheritance, back encapsulation, is responsible for the distribution of the field of visibility of the property relative to all descendants of the object.

For example, all objects book, which are the descendants of the object directory, can be attributed to the properties of the parent object: author, name, uDC and iSBN..

If it is necessary to expand the action of the mechanism of inheritance to objects that are not direct relatives (for example, two descendants of one parent) in their overall ancestor determine the abstract property of the type aBS.

Thus, properties number and ticket In the object of the library are inherited by all subsidiaries issuing, book and subscriber. That is why the values \u200b\u200bof this property of classes subscriber and issuance are the same - 00015 (Figure 1).

Definition 5.

Polymorphism Allows the same programcode to work with multi-way data.

In other words, he admits in objects different types Have methods (functions or procedures) with the same names.

Search The object-oriented database is to determine the similarity between the object that the user specifies and the objects that are stored in the database.

Advantages and disadvantages of an object-oriented model

Basic advantage An object-oriented data model, in contrast to the relational model, is the possibility of displaying information about the complex relationships of objects. The data model under consideration allows you to determine the separate entry of the database and the functions of its processing.

TO disadvantages An object-oriented model belongs to high conceptual difficulty, inconvenient data processing and low queries.

To date, such systems are quite widespread. These include DBMS:

  • Postgres,
  • Orion
  • Iris
  • ODBJUPITER,
  • Versant
  • Objectivity / DB,
  • ObjectStore
  • Statice
  • Gemstone
  • G-Base.

Object-oriented database (OBS) - a database in which data is modeled in the form of objects, their attributes, methods and classes.

Object-oriented databases are usually recommended for cases when high-performance data processing with a complex structure is required.

In Manifesto, OBS offers mandatory characteristics to which any OBD must be responsible. Their choice is based on 2 criteria: the system must be object-oriented and represent a database.

Mandatory characteristics

1. Support for complex objects. The system should provide for the possibility of creating composite objects by applying designer objects. It is necessary that object designers are orthogonal, that is, any designer could be applied to any object.

2. Support for individual objects. All objects must have a unique identifier that does not depend on the values \u200b\u200bof their attributes.

3. Support for encapsulation. Correct encapsulation is achieved due to the fact that programmers have the right to access only the methods of the methods, and the data and implementation of methods are hidden inside the objects.

4. Support types and classes. It is required that at least one concept difference between types and classes is maintained in OBD. (The term "type" more corresponds to the concept of an abstract data type. In programming languages, the variable is declared with its type. The compiler can use this information to check the operations performed from variable compatibility with its type, which allows you to guarantee correctness software. On the other hand, the class is a kind of template for creating objects and provides methods that can be applied to these objects. Thus, the concept of "class" to a greater extent refers to the time of execution than by the compilation time.)

5. Support for the inheritance of types and classes from their ancestors. Subtype, or subclass, must inherit attributes and methods from its supertype, or superclass, respectively.

6. Overload in combination with complete binding. Methods should be applied to objects of different types. The implementation of the method should depend on the type of objects to which this method is applied. To ensure this functionality, the binding of the methods of methods in the system should not be performed until the program execution time.

7. Computational fullness. Data manipulation language must be programming language general purpose.



8. A set of data types must be expandable. The user must have means to create new data types based on a set of predefined system types. Moreover, there should be no differences between the methods of using system and user data types.

OO DBMS

Object-oriented databases - Databases in which information is presented as objects as in object-oriented programming languages.

Apply or not to apply object-oriented database management systems (Oosubd) in real projects today? In what cases to apply them, and in what no?

Here advantages Usubd use:

· There is no problem of the inconsistency of the data model in the application and the BD (Impedance Mismatch). All data are stored in the database in the same form as in the application model.

· It is not required to separately support the data model on the side of the DBMS.

· All objects at the data source level are strictly typed. There are no longer column names! The refactoring object-oriented database and the code that works with it is now automated, and not a monotonous and boring process.

Standard ODMG.

First manifestformally, was just an article presented on Conference on object-oriented and deductive databasesgroup of individuals. As you could see in the previous subsection, the requirements of the manifest were rather emotional than clearly specified. In 1991, the ODMG consortium was formed (then this abbreviation was revealed as Object Database Management Groupbut subsequently acquired a wider interpretation - Object Data Management GROUP). The ODMG consortium is closely connected with a much more numerous OMG consortium ( Object Management GROUP.), which was formed by two years earlier. The main source goal of ODMG was the development of an industrial standard of object-oriented databases (general model). As a basis was adopted by the basic object model OMG COM ( Core Object Model). For more than a decade of existence ODMG published three basic versions Standard, the last of which is called ODMG 3.0. sixteen



It's funny that although ODMG (according to the author) came out of OMG, in recent years some OMG standards are based on the ODMG object model. In particular, the OCL language specification is based on the ODMG model ( Object Constraint Language.), which is part of the overall specification of the UML 1.4 language (and UML 2.0). In this article, we do not put the goal to carry out a detailed comparison of OMG and ODMG approaches and send interested readers to Encyclopedia Kogalovsky and materials of these consortia sites. We are limited to a brief presentation of the main ideas contained in the ODMG -3 standard.

Architecture ODMG.

The proposed ODMG architecture is shown in Fig. 2.1. This architecture defines the data storage method and different types of user access to this "data warehouse" 17. A single data warehouse is available from the data definition language, query language and a number of data manipulation languages. 18 in fig. 2.1 ODL means Object Definition Language (object definition language), OQL - Object Query Language (Language Query Language)and OML - Object Manipulation Language (object manipulation language).

Fig. 2.1. Architecture ODMG.

Central in architecture is data modelrepresenting the organizational structure in which all data managed by Oosubd remains. Object definition language, query language and manipulation languages \u200b\u200bare designed in such a way that all of their capabilities are based on the data model. The architecture makes the existence of a variety of implementing structures to store simulated data, but an important requirement is that all software libraries and all supporting tools are provided in an object-oriented framework and should be maintained in coordination with the data.

The main components of the architecture are the following.

  • Object model of data.All data persisted by Oosubd are structured in terms of data model designs. In the data model, the exact semantics of all concepts is determined (see below).
  • Data definition language (ODL).Database circuits are described in terms of the ODL language, in which the data model designs are specified in the form of a definition language. ODL allows you to describe the scheme as a set of object type interfaces, which includes the description of the properties of the types and interrelations between them, as well as the names of operations and their parameters. ODL is not a complete programming language; Types must be implemented in one of the languages \u200b\u200bof the OML category. In addition, ODL is virtualthe language in the sense that the ODMG standard does not require its implementation in the Software products of the Oosubd, which are considered to be relevant to the standard. Support for these products of equivalent definition languages, including all ODL capabilities, but adapted to the specific system features. However, the presence of the ODL language specification in the ODMG standard is important because the properties of the data model are specified in the language.
  • Language of object requests (ODL). Language has syntax similar to syntax sQL LanguageBut relies on the semantics of the ODMG object model. The standard allows direct use of OQL and embedding it into one of the languages \u200b\u200bof the OML category.

Relational data model

Almost all modern systems based on relational(Relational) Database Management Models. Name relationalit is due to the fact that each entry in such a database contains information relating only to one specific object.

IN relationalDBMS All processed data are represented as flat tables. Information about objects of a specific form is presented in a tabular form: various object attributes are concentrated in the table columns, and the strings are designed to include descriptions of all attributes to individual instances of objects.

The model created at the stage of infographic modeling is mostly satisfying the principles of relational. However, to bring this model to the relational must be performed by the procedure called normalization.

Normalization theory operates with five normal forms. These forms are designed to reduce information redundancy, therefore, each subsequent normal form must meet the requirements of the previous and some additional conditions. With the practical design of databases, the fourth and fifth forms are usually not used. We limited to the consideration of the first four normal forms.

We introduce the concepts necessary to understand the process of bringing the model to the relational scheme.

Attitude- Abstraction of the described object as a totality of its properties. Conducting the infographic stage of the design, we talked about the abstraction of objects and attributed to them some properties. Now, conducting conceptual design, we move to the next level of abstraction. At this stage of objects, as such, no longer exists. We operate with a set of properties that define an object.

Instance of the relationship- The set of values \u200b\u200bof the properties of a particular object.

Primary key- identifying the set of attributes, i.e. The value of these attributes is unique in this respect. There are no two instances of the relationship containing the same values \u200b\u200bin the primary key.

Simple attribute- Attribute, whose meanings are indivisible.

Complex attribute- Attribute, whose value is a set of values \u200b\u200bof several different object properties or several values \u200b\u200bof one property.

The concept of essence ..

Domain

The concept of domain is more specific to databases, although it has some analogies with subtypes in some programming languages. In the most general form, the domain is determined by the task of a certain basic type of data to which the elements of the domain and an arbitrary logical expression applied to the data type item. If the calculation of this logical expression gives the result of "truth", the data element is an element of the domain.

The most correct intuitive interpretation of the concept of the domain is the understanding of the domain as a permissible potential set of values this type. For example, the domain "Names" in our example is defined on the basic type of strings of characters, but the number of values \u200b\u200bcan include only those lines that can portray the name (in particular, such lines cannot begin with a soft sign).

It should also be noted the semantic burden of the concept of the domain: the data is considered comparable only when they relate to one domain. In our example, the domains of the domains "pass numbers" and "group number" refer to the type of integers, but are not comparable. Note that in most relational DBMS, the concept of a domain is not used, although it is already supported in Oracle v.7.

The basis of database technologies based on the MD described above, lies a static information storage concept concentrated on data modeling. However, new areas of application of technology with complex, interrelated bd objects, such as:

Automated design;

Automated production;

Automated development software;

Office information systems;

Multimedia system;

Geographic information systems;

Publishing systems and others, - demonstrated limited capabilities of a static concept in terms of modeling real world objects.

For new types of complex specialized database applications, a dynamic concept of storing information is effective, which allows you to simulate data and processes in force in parallel to these data. This allows you to take into account the semantics of the subject area and therefore the most adequately describe these applications. Such a concept is based on an object-oriented approach, widely used when creating software. MD, implementing this concept and based on an object-oriented paradigm (OOP), received the name of an object-oriented data model (OUD).

The construction of OCD proceeds from the assumption that the subject area can be described by the set of objects. Each object is a unique identifiable entity that contains attributes that describe the state of the real world objects, and associated actions. The current state of the object is described by one or more attributes that may be simple or complex. A simple attribute may have primitive type (for example, an integer, string, etc.) and accept the literal meaning. The composite attribute may contain collections and / or links. The reference attribute is a link between objects.

The key property of the object is the uniqueness of its identification. Therefore, each object in an object-oriented system must have its own identifier.

Object ID (OID - Object Identifier) \u200b\u200bis an internal method for marking individual objects for the database. Users working with a dialogue program of requests for requests or viewing information, as a rule, do not see these identifiers. They are assigned and used the DBMS itself. The semantics of the identifier in each DBMS is their own. It can be both a random value and contain the information necessary to search for an object in the database file, for example, the page number in the file and the object offset from its start. It is the identifier that should be used to organize references to the object.

All objects are encapsulated, i.e., the presentation or internal structure of the object remains hidden from the user. Instead, the user knows only that this object can perform some functions. So, for the facility, the warehouse can use such methods to accept_dovar, to issue_tobap, etc. The advantage of encapsulation is that it allows you to change the internal representation of objects without reworking applications in which these objects are used. In other words, encapsulation implies data independence.

The object encapsulates data and functions (methods according to OOP). Methods determine the behavior of the object. They can be used to change the status of an object by changing the values \u200b\u200bof its attributes or to create queries to the values \u200b\u200bof the favorite attributes. For example, there may be methods for adding information about a new real estate object for renting, to update the information about the employee's salary or for printing information about a particular product.

Objects that have the same set of attributes and respond to the same messages can be grouped into class (In the literature, the term "class" and "type" are often used as synonyms). Each such class has its own representative - an object that is a data element. Objects of some class are called it copies.

In some object-oriented systems, the class is also an object and has its own attributes and methods called class attributes and class methods.

Important concepts of OOP serve hierarchy of classes and hierarchy of containers.

Hierarchy classes It implies the possibility of having the presence of each class, in this case, the superclass, its subclass. As an example, you can bring the following chain: all programmers of any enterprise are its employees, therefore, each programmer who within the framework of the OCD is a class of programmers, it is also an employee who, in turn, is an object of class employees. Thus, programmers will be a subclass, employees - a superclass. But programmers can also share on system and applied. Consequently, the programmers will be a superclass to the subclamps of the SIS_PRograms and the global_programmers. Continuing this chain further, we get a hierarchy of classes, in which each subclass object inherits copies of variables and methods of the appropriate superclass.

There are several types of inheritance - single, multiple and selective. Single inheritance is a case when subclasses inherit no more than one superclass. Multiple inheritance - inheritance more than one superclass. The selective inheritance allows the subclass to inherit a limited number of properties of its superclass.

Inheritance of copies of variables is called structural inheritance, Inheritance methods - behavioral inheritance, and the ability to use the same method for different classes or, rather, apply miscellaneous methods with the same name for different classes is called polymorphism.

Object-oriented architecture also has another type of hierarchy - hierarchy containers. It is that some objects can be constructive inside others. Thus, the class object should contain a publicly available variable, which is a reference to the Class Employees, corresponding to the head of the department, and must also contain a link to the set of references to objects that are suitable for employees in this department.

In some object-oriented systems, the class is also an object and has its own attributes and methods. General characteristics The class is described by its attributes. Methods of object class are a kind of analogue of the properties of real world objects. Each object relating to any particular class has these properties. Consequently, when creating an object, it is necessary to declare the class to which it refers to thus determine the properties inherent in it.

The user and object interact through messages. In response to each message, the system performs the appropriate method.

All communication in the object model is carried out using reference attributes that are usually implemented as OID identifiers.

Communication in relational databases are represented by comparison of primary and external keys. In the database itself, there are no structures for the formation of associations between tables, communication is used as needed when connecting tables. On the contrary, communication make up the basis of an object-oriented database, since the identifiers of the objects with which it is connected with each object.

Not only traditional ties can be implemented in OUMD, but also due to inheritance.

Communication type one-to-one (1: 1)between objects A and B is implemented by adding a reference attribute to an object in an object A and (to maintain reference integrity) of the reference attribute to the object A in the object V.

Communication type one-to-many (1: m) Between objects A and B is implemented by adding a reference attribute to an object A and an attribute containing a set of references to an object A, to an object in (for example, a reference attribute B (OID2, OID3 ...) is added, and in Instances of an object in with OID2, OID3, ... A reference attribute A: OID1 is added.

Communication like many-co-many (M: N) Between objects A and B is implemented by adding an attribute to each object containing a set of links.

In OUD, you can use the connection of the "integer" view describing that the object of the same class contains objects of other classes as its parts. In the case of a production database between the class, the product and classes, the part and the assembly would have existed the "integer". This communication - This is the option of the "Many-ko-many" communication, which has a special semantics. Communication "The integer" is implemented as any other communication "many-to-many" using a variety of identifiers of related objects. However, it, in contrast to the usual communication "Many-Ko-many", has a different meaningful meaning.

Since the object-oriented paradigm supports inheritance, then in OUD, it is possible to use the type "is" and the connection of the "expands". Communication "is", which is also called the relation of generalization-specialization, generates a hierarchy of inheritance, in which subclasses are provided by special cases of superclass. This allows not to describe re-inherited features. When using communication "expands" the subclass develops the functionality of the superclass, and not limited to its private case.

Consider how such components are implemented in OUD as limiting integrity and data operations.

The features of these components are determined by the specifics of the model. This specificity in the OMD is dictated primarily by its internal concepts as encapsulation of objects, i.e. the safety of the internal structure, data access only through certain in advance methods, hierarchy of classes and container hierarchy.

The specifics of the OCOM is dictated by the specifics of the object. It manifests itself in the need to group objects in classes. Each object is included in a particular class depending on the task, with one object can belong at once to several classes (for example, the family of programmers and high-payable). Another specific object is that it can "go off" from one class (subclass) to another. So, the system programmer can become applied with time. Thus, the hierarchy of classes is not an analogue of the hierarchical model, as it could seem earlier, but requires a system of ability to change the location of each object within the classes hierarchy, for example, to navigate "up" or "down" within this hierarchy. But a more complex process is possible - the system should provide an object of object to be attached (disconnected) to an arbitrary vertex of the hierarchy at any time.

An important role in OUD plays restrictions on the integrity of relations. In order for communication in object-oriented MD to work, object identifiers on both sides of the communication must comply with each other. For example, if there is a link between employees and their children, then there must be some kind of warranty that when inserting an object describing the child into an object that displays the employee, the latter identifier is added to the appropriate object. This type of connection integrity, in something similar reference integrity in the relational data model, is set using inverse ties. To guarantee the integrity of the links, the designer is provided with a special syntax design required to specify the location of the reverse identifier of the object. The obligation to set restrictions on the integrity of relations (as well as reference integrity in the relational database) lies on the designer.

In OMD and Data Description, and manipulate them occur with the same object-oriented procedural language.

OBJECT DATABASE Management GROOP (Object Database Management Groop). She developed the object model (version of ODMG 2.0 was adopted in September 1997), which defines the standard model for the semantics of bd objects. This model is of great importance because it determines the built-in semantics, which is also understood and can implement object-oriented DBMS (OOSUBD). The structure of libraries and applications using this semantics must be transferred to various Oosubds that support this object MD. The main components of the ODMG architecture are: object model (OM), object definition language (ODL), Object Query Language (OQL), and C ++, Java and Smalltalk binding ability.

The object model of the data in accordance with the ODMG 2.0 standard is characterized by the following properties:

Basic structural elements are objects and literals. Each object has a unique identifier. The literal does not have its own identifier and cannot exist separately as an object. Literals are always built into objects, and they cannot be referred to individually;

Objects and literals differ in type. Each type has its own domain separated by all objects and literals of this type. Types may also have behavior. If the type has some behavior, then all objects of this type have the same behavior. In practice, the type can be a class from which an object, an interface or a simple type of data (for example, an integer) is created. The object can be represented as an instance of the type;

The state of the object is determined by a set of current values \u200b\u200bimplemented by a variety of properties. These properties may be attributes of an object or communication between an object and one or more other objects;

The behavior of the object is determined by a set of operations that can be performed above the object or the object itself. Operations may have a list of input and output parameters, each of them strictly defined type. Each operation may also return a typed result;

The database definition is stored in a scheme recorded in the Object Definition Language (ODL) object definition language. The database stores objects, allowing them to share them to share various users and applications.

The DBMS based on OUD is called object-oriented DBMS (OOSUBD). These DBMS refer to the DBMS of the Third Generation * (* The history of the development of storage models is often broken into three stages (generations): the first generation (the end of 1960 is the beginning of the 70s) - hierarchical and network models; second generation (approximately 1970-1980s) - relational model; third Generation (1980s - early 2000s) - object-oriented models.).

Today, object-oriented databases are applied in various organizations to solve broad Circle Tasks. Analysis and generalization of the accumulated experience in the field of information technology data made it possible to identify applications in which the use of object-oriented databases is justified:

The application consists of big number interacting parts. Each of them has its behavior, which depends on the behavior of others;

The system should process large volumes of unstructured or having a complex data structure;

The application will carry out predictable data access, so the navigation nature of object-oriented database will not be a significant disadvantage;

The need for unplanned requests is limited;

The structure of stored data has a hierarchical or similar nature.

IN currently There are many object-oriented DBMS on the software market. In tab. 10.6 Some of the commercial systems of this class are presented.

Table 10.6.

Modern commercial Oosubd,

their manufacturers and scope

One of the fundamental differences of object databases from relational is the ability to create and use new data types. An important feature of the Oosubd is that the creation of a new type does not require a database core modification and is based on the principles of object-oriented programming.

The core of the Oosubd is optimized for operations with objects. Natural operations for it are caching objects, conducting versions of objects, separation of access rights to specific objects. Oosubd has a higher speed on operations requiring access and receiving data packed in objects, compared with relational DBMSs, for which the need to sampling connected data leads to additional internal operations.

A considerable value for the Oosubd has the ability to move objects from one base to another.

When creating various applications based on Oosubd based, the built-in structure of class of one or another DBMS is built. The class library supports usually not only all the standard data types, but also an extended set of multimedia and other complex data types, such as video, sound, sequence of animation frames. In some Oosubd, class libraries are created, allowing storage and full-text search for documentary information (for example, Jasmine, ODB-Jupiter). An example of the basic structure of classes is shown in Fig. 10.17.

The main position in it occupies the Todbobject class, which contains all the necessary properties and methods for controlling access to the database and indexing. All other classes override its methods by adding the correctness of the correctness of the type implemented by them and the specific indexer.

As can be seen from fig. 10.17, in the structure there are various classes focused on processing documentary information - TODBTEXT, TODBDocument, TODBTEXTDocument, etc. Each document is represented by a separate object. This ensures the natural storage of documents. One of the most important operations is to search for documents on request. For most classes, the ability to search for objects by the value of a specific key is implemented. For the TodbText class, the possibility of forming is implemented search query The phrase written in a natural language.

The Todbdocument class is a special, capable of accommodating the differential objects. It consists of fields, each of which has a name and associated with the object of a certain type. The presence of this class gives the user the ability to expand the type set. Modifying the container object (document), you can set a certain set of fields and get a new document type.

On the basis of ODB-Jupiter, the developers of the Oosubd created a full-featured ODB-Text information source system, possessing universal structure stored data and powerful search mechanism. The ODB-Text system is a collective processing of documents and the maintenance of a corporate archive. Among the possible applications will call the automation of accounting of document management of the modern office, building reference information systems (similar to the well-known legal databases), maintaining network databases, records of personnel, bibliography, etc.

41. Features of designing applied IP. IP development phases. (Topic 11, p. 100-103).

11.1.3. Features of the system design of applied

When building (selection, adaptation) of the information system, you can use two basic concepts, two main approaches (third concept - their combination):

1. Orientation to the problems that need to be solved with the help of this information system, i.e. problem-oriented approach (or inductive approach);

2. Orientation on technology that is available (updated) in this system, medium, i.e. Technologically-oriented approach (or deductive approach).

The choice of concept depends on strategic (tactical) and (or) long-term (short-term) criteria, problems, resources.

If the possibilities of the existing technology are first studied, and after are determined actual problemswhich can be solved with their help, then it is necessary to rely on a technologically oriented approach.

If first the current problems are determined, and then technology is being implemented sufficient to solve these problems, it is necessary to rely on a problem-oriented approach.

At the same time, both concepts of building an information system depend on each other: the introduction of new technologies changes solvable problems, and changing the problems being solved - leads to the need to introduce new technologies; Both are affected by decisions.

System Design (Development) and the use of any application (corporate) information system must pass the following life cycle of the information system:

- Pre-project analysis (experience in creating other similar systems, prototypes, differences and features of the system being developed, etc.), analysis of external manifestations of the system;

- intrasystem analysis, internal analysis (analysis of system subsystems);

- systemic (morphological) description (presentation) of the system (description of the system target, systemic relations and environmental relations, other systems and system resources - material, energy, information, organizational, human, spatial and temporary);

- determination of the criteria for adequacy, efficiency and sustainability (reliability);

- functional description of the subsystems of the system (description of models, functioning algorithms subsystems);

- Maketling (Makeup Description) of the system, assessment of the interaction of the system subsystems (Development of the layout - the implementation of subsystems with simplified functional descriptions, procedures, and testing of the interaction of these layouts in order to meet the system goal), it is possible to use "layouts" of adequacy, sustainability, efficiency ;

- "Assembly" and testing of the system - the implementation of full functional subsystems and criteria, assessment of the model according to the formulated criteria;

- system functioning;

- defining the goals of the further development of the system and its applications;

- Support of the system - clarification, modification, expanding the capabilities of the system in its functioning mode (in order to evolve it).

These stages are basic systems for information reengineering systems.

Development of a corporate information system, as a rule, is performed for a completely defined enterprise. The features of the subject activity of the enterprise will certainly influence the structure of the information system. But at the same time, the structures of different enterprises are generally similar to each other. Each organization, regardless of its activities, consists of a number of divisions directly carrying out one or another type of activity of the company. And this situation is valid for almost all organizations, no matter what kind of activity they do.

Thus, any organization can be considered as a set of interacting elements (units), each of which can have its own, quite complicated, structure. The relationship between divisions is also quite complex. In the general case, three types of links can be distinguished between enterprise divisions:

Functional relations - each unit performs certain types of work as part of a single business process;

Information connections - divisions exchange information (documents, faxes, written and oral orders, etc.);

External communications, some divisions interact with external systemsMoreover, their interaction can also be both informational and functional.

The general structure of different enterprises makes it possible to formulate some uniform principles for building corporate information systems.

In general, the process of developing an information system can be considered from two points of view:

In time, or in stages life cycle Developed system. In this case, the dynamic organization of the development process described in terms of cycles, stages, iterations and stages is considered.

The information system of the enterprise is developed as some project. Many features of project management and phases of the project development (life cycle phases) are general, independent not only from the subject area, but also on the nature of the project (no matter, engineering is a project or economic). Therefore, it makes sense at the beginning to consider a number general issues Project management.

The project is a target-limited change in a separate system with initially well-defined targets, the achievement of which determines the completion of the project, as well as established requirements To date, results, risk, framework for funds and resources and the organizational structure.

Usually for a complex concept (which, in particular, the concept of the project) is difficult to give an unambiguous formulation that fully covers all the signs of the idea of \u200b\u200bthe concept. Therefore, the above definition does not claim uniqueness and completeness.

The following main distinguishing features of the project as an object of management can be distinguished:

Variability - targeted translation of the system from existing in some

the desired state described in terms of the project's goals;

Limited ultimate goal;

Limited duration;

Budget limitations;

Limited resources required;

Novelty for the enterprise for which the project is implemented;

The complexity is the presence of a large number of factors, directly or indirectly affect the progress and results of the project;

Legal and organizational provision is the creation of a specific organizational structure at the time of project implementation.

The effectiveness of the work is achieved by managing the project implementation process, which ensures the distribution of resources, coordinate the sequence of work and compensation for internal and external disturbing effects.

From the point of view of the theory of control systems, the project as an object of management must be observed and manageable, that is, some characteristics are allocated to constantly monitor the progress of the project (observability property). In addition, it is necessary for the mechanisms of timely WHO action on the progress of the project (property of manageability).

The manageability property is particularly relevant in the face of uncertainty and variability of the subject area, which often accompany projects to develop information systems.

Each project, regardless of the complexity and scope of work necessary for its implementation, takes place in its development of certain states: from the state when the project is not yet, "to the state when the project is no longer. The combination of development steps from the emergence of the idea to the complete completion of the project is made to divide on the phases (stages, stages).

In determining the number of phases and their content there are some differences, since these characteristics are largely dependent on the conditions for the implementation of a specific project and the experience of the main participants. Nevertheless, the logic and the main content of the information system development process in almost all cases are common.

The following phases of information system development can be distinguished:

Formation of the concept;

Development of technical specifications;

Design;

Manufacture;

Entering the system into operation.

Consider each of them in more detail. The second and partially third phases are made to call the system design phases, and the last two (sometimes include the design phase) - implementation phases.

Conceptual phase

Formation of ideas, setting goals;

Formation of the key project command;

Study of the motivation and requirements of the customer and other participants;

Collecting source data and analysis of an existing state;

Identifying the basic requirements and restrictions required by material, financial and labor resources;

Comparative assessment of alternatives;

Representation, their expertise and approval.

Technical Development Development

Development of the main content of the project, the basic structure of the project;

Development and approval of the technical task;

Planning, decomposition of the basic structural model of the project;

Drawing up the estimates and budget of the project, determining the need for resources;

Development of calendar plans and enlarged work schedules;

Signing a contract with the customer;

Commissioning tools for communications of project participants and monitoring home work.

Design

At this phase, subsystems are determined, their relationships are chosen. effective methods Project and resource use. Characteristic works of this phase:

Performing basic design work;

Development of private technical assignments;

Implementation of conceptual design;

Drawing up technical specifications and instructions;

Representation of project development, examination and approval.

Development

At this phase, coordination and operational control of work on the project are manufactured, manufacturing subsystems, their association and testing. Main content:

Execution of software development work;

Implementation of preparation for the implementation of the system;

Control and regulation of the main indicators of the project.

Commissioning

In this phase, tests, pilot operation of the system in real conditions, are underway negotiations on the results of the project and on possible new contracts. Main types of work:

Complex tests;

42. IP life cycle concept. (Theme 11, pp. 103-105).

Object-oriented model

In an object-oriented model, the data presentation is possible to identify individual database records. Between recordings and functions of their processing are established with the help of mechanisms similar to the appropriate means in object-oriented programming languages.

A standardized object-oriented model is described in the ODMG-93 Standard Recommendations (OBJECT Database Management Group - a group of managing object-oriented databases).

Consider a simplified model of an object-oriented database. The structure of an object-oriented database graphically represents in the form of a tree whose nodes are objects. Properties of objects are described by some standard type or type, designed by the user (defined as Class). The value of the Class type property is an object that is an instance of the corresponding class. Each class instance object is considered a descendant of an object in which it is defined as a property. An object-instance object belongs to its class and has one parent. Generic relations in the database form a coherent hierarchy of objects. An example of the logical structure of an object-oriented library database is shown in Fig. 2.9. Here, the Library Type object is a parental for object instance objects. Subscriber, directory and issuance. Various objects such as a book can have one or different parents. Objects such as a book that have the same parent should differ at least inventory number (unique for each copy of the book), but have the same ISBN, UDC properties, name and author.

The logical structure of an object-oriented database externally is similar to the structure of the hierarchical database. The main difference between them consists in data manipulation methods.

To perform action on data in the Database model under consideration, logic operations are used, enhanced by object-oriented mechanisms of encapsulation, inheritance and polymorphism.

Encapsulation limits the scope of the name of the properties within the object in which it is defined. So, if an object type is a catalog object, asks the author's phone of the book and having a phone name, then we will receive the properties of the same name from the subscriber and the catalog. The meaning of this property will be determined by the object in which it is encapsulated.

Inheritance, on the contrary, distributes the scope of the property on all descendants of the object. So, all objects such as the book, which is the descendants of the object type object, can be attributed to the properties of the parent object: ISBN, UDC, name and author. If it is necessary to expand the effect of the mechanism of inheritance to objects that are not direct relatives (for example, between two descendants of one parent), then in their overall ancestor the abstract type of ABS type is determined. So, the definition of the abstract properties of the ticket and the number in the object of the library leads to inheritance of these properties by all the subscribers, the subscriber, the book and issuance. It is not by chance that the values \u200b\u200bof the property of the class ticket subscriber and the issuance shown in Fig. 2.9, are the same - 00015.

Polymorphism in object-oriented programming languages \u200b\u200bmeans the ability of the same program code to work with multi-way data. In other words, it means the permissibility in the objects of different types to have methods (procedures or functions) with the same names. During the execution of the object program, the same methods are operated with different objects depending on the type of argument. With regard to the example under consideration, polymorphism means that class objects with different parents from the class catalog may have a different set of properties. Consequently, the work programs with class objects may contain a polymorphic code.

The search for an object-oriented database is to determine the similarity between the user asked, and the objects stored in the database.

Fig. 2.9 Logic Library Database Structure

The main advantage of an object-oriented data model in comparison with the relational is the ability to display information about the complex relationships of objects. Object-oriented data model allows you to identify a separate database entry and determine the functions of their processing.

The disadvantages of an object-oriented model are high conceptual complexity, the inconvenience of data processing and the low speed of queries.

Object-oriented DBMS includes Poet, Jasmine, Versant, O2, ODB-Jupiter, Iris, Orion, Postgres.

Data banks, as an integer, are usually classified by economic and legal grounds.

Under the terms of the provision of services, free and paid banks are distinguished, which, in turn, are divided into commercial and non-profit (scientific, library or socially significant).

At the form of ownership BNDs are divided into state and non-state. According to the degree of accessibility, there is publicly available and limited ranges.

Other types of classification are associated with separate BND components.

1. Developing data banks consists of 4 stages:

Stage 1. Formation and analysis of system requirements:

A system specification is compiled, which includes a list of tasks that the BND must solve;

List of end users and their functions;

List of database requirements;

Document flow circuit in the organization is drawn up.

Stage 2. Conceptual design: The system information model is created without binding to the type of computer and the type of system software; An infological model of the database is being built, which most fully describes the subject area in the terms of the user.

3 stage. Implementation design: The computing system is selected, system software and DBMS; The data structure is designed and the datalog model of the database (DB scheme) is built, which is a description of the logical structure of the database in the language of the specific selected DBMS.

4 stage. The physical implementation that includes the creation and download of data in the database, development and debugging of application programs for working with the database, writing documentation. At this stage, the physical model of the BD is built, which describes the used storage devices, methods of physical organization of data. A description of the physical structure of the database is called the storage scheme. Currently, there is a tendency to reduce this type of work.

2. The main tasks solved by the data bank staff

The staff of the BND personnel includes different specialists: Administrators BND, system analysts, system and application programmers, operators, specialists in technical means, Marketing, etc.

We list the main functions and tasks solved by staff when developing and operating a database:

1) Analysis of the subject area (determining the needs of end users, building an information model of the subject area, identifying integrity limitations);

2) Designing a database structure (determining the composition and structure of database files, a description of its schema in the data description language);

3) Setting the limitations of the integrity of the database;

4) loading and maintenance of the database (the database is referred to, deleting and adding entries); development of download and maintenance technology; development of data entry forms; input and control of data;

5) Data protection (delimitation of users, choosing and checking the means of protection, fixation of attempts of unauthorized access);

6) ensuring the restoration of the database;

7) analysis of the effectiveness of BND and the development of the system;

8) work with users (collection of responses, training);

9) support of system software (acquisition, installation and development);

10) Organizational and methodological work (the choice of methods of design and modernization, planning the development of the BND, documentation development).

3. Users of data banks

Like any program and organizational and technical complex, the data bank exists in time and in space. It has certain stages of development:

Design,

Implementation,

Support,

Update and development,

Full reorganization.

At each stage of existence, various categories of consumers are connected to the data bank.

End users

This is the main category of users who have interests associated with the data bank. Depending on the features of the data created, the data can essentially differ around its end users. These may be random consumers addressed to the database from time to time to the database after receiving some information, and there may be ordinary users. Casual consumers can be considered as possible customers of the firm viewing the catalog of setting or services with generalized or detailed description. Employees working with programs specifically designed for them, who provides automation of their action in the performance of functions, can be ordinary users. For example, at the administrator who is planning a subsidiary unit computer company, There is a program that helps him plan and place current orders according to the instructions, control the course of their performance, streamline in the warehouse the necessary accessories for new orders. The main, special knowledge that from end users should not be required in the field of means of language and computing technology.

Data bank administrators

This is a group of users who, in the initial stage of data bank development, is responsible for its optimal device from the point of view of simultaneous operation of a set of end users, in support, the stage is responsible for the proper operation of this information stack of information in multiplayer mode. In the development and stage of reorganization, this group is responsible for the possibility of the correct reorganization of the stack without changing or completing its current service.

Developers and Application Administrators

This user group that functions during the design, creation and reorganization of the data bank. Application administrators coordinate developers to develop a specific application or group of applications united in the functional subsystem. Developers of certain applications work with the part of the information from the database, which is required for a specific application.

Not in each data bank, any type of users can be selected. It is known that the development of information systems using the Table DBMS administrator of the Data Bank, the application administrator and the developer often existed in one person. However, when creating modern difficult corporate databases, which are used for automation of all or large parts of business processes in a large company or corporation, there may be groups of application administrators and developers departments. The most difficult modes of work are assigned to a group of database administrators.

Consider them in more detail.

Part of the GND admin group must be:

System commentators;

Developers of data structures and appearance regarding the information support bank;

Developers of processing data processing processes;

System and applied programmers;

Existing companies and experts in the repair service.

The issue of a commercial data bank, plays an important role, selling experts.

The main functions of the DB admin group

1. Data area study: Data Area Description, Laying text of integrity restrictions, definition of status (availability, confidentiality) Information, definition of consumer needs, definition of "data consumers", determination of temporal data processing characteristics.

2. Development of the BD structure: Definition of the composition and structure of database files and communication intermediate, selection of data optimization methods and access methods for information, database descriptions in the data description language (Jaode).

3. Setting integrity restrictions in the description of the structure of database and database processing procedures:

Setting declarative integrity restrictions inherent in the data area;

Determination of dynamic constraints of integrity inherent in the data area during a change in the information stored in the database;

The determination of integrity restrictions is caused by the structure of the database;

Development of procedures for supporting the integrity of the database when entering and adjusting data;

Determining the restrictions of the integrity of parallel operation of consumers in multiplayer mode.

4. Initiation of download and manual database

Development of the DB loading technique, which will differ from the procedure for changing and adding a database with the data with regular use;

Development of techniques for verification entered data, the real state of the data area. Real objects of database models of some data area and intermediate correlation, and at the time of the beginning current repairs This model must match the status of the data area objects now by time;

According to the developed technique of initiating the design of the data entry system, it may be necessary.

5. Data protection

Determination of the password system, the principles of consumers shooting, the creation of groups of consumers who have identical data access rights;

Development of principles for prevention of certain data and development objects; Development of specialized methods of encoding information during its circulation in local and global information networks;

Development of means of fixing access to data and attempts to violate the protection system;

Testing protection system;

Study of cases of violation of the protection system and develop dynamic methods for preventing information in the database.

6. Support for the restoration of the database

Development of organizational means archiving and principles for the restoration of the database;

Development of additional matures and technological processes of recovery of the database after failures.

7. Study of Customer Calls Database: A set of statistics on the symbol of requests, the time of inclusion of their performance, in accordance with the required output documents

8. Study of the effectiveness of the BND functioning:

Study of the BND functioning indexes

The planning restructuring of the structure (structural change) of the database and the reorganization of the BND.

9. Work with end users:

Collecting information about changing the data area;

Collection of information on the assessment of the works of the BND;

Consumer training, consulting consumers;

Development of the necessary systematic and educational documentation regarding the work of end users.

10. Cooking and supporting system equipment:

Study of matures existing on the market and research capabilities and the need to use them within the framework of the BND;

Development of the required organizational and technical program of movements for the development of the BND;

Checking the performance of redeemed matures in front of their connection with the BND;

Control of the connection of new matures to the BND.

11. Organizational and systematic work when developing BND:

Selection or creation of a database development method;

Determining the goals and the direction of the development of the system as a whole;

Planning the stages of the development of the BND;

Development of reference books of general dictionaries of the BND project and conceptual model;

Installation of external models of developed applications;

Control of the connection of the new application to the BND operation;

The possibility of integrated troubleshooting set of applications that interact from one database.

In an object-oriented model (OU), when data is submitted, it is possible to identify individual base entries. Between the database records and the functions of their processing establish relationships using mechanisms similar to the appropriate means in object-oriented programming languages.

Standard OU Described in the ODMG-93 Standard Recommendations (Object Database Management Group - a group of object-oriented databases management group). In full, the ODMG-93 recommendation is not yet possible. To illustrate key ideas, consider a slightly simplified model of an object-oriented database.

The structure of the OO DB graphically represents in the form of a tree whose nodes are objects. Object properties are described by some standard type (for example, string - string) or a type by the constructed by the user (defined as Class).

The values \u200b\u200bof the string type is a string of characters. The value of the Class type property is an object that is an instance of the corresponding class. Each class instance object is considered a descendant of an object in which it is defined as a property. An object-instance object belongs to its class and has one parent. Generic relationships in the database form a bound hierarchy of objects.

An example of a logical structure of the OO DB library case is shown in Fig. 3.14. Here, the Library Type object is a parental for object instance objects. Subscriber, directory and issuance. Various objects such as a book having the same parent should differ in at least an inventory number (unique for each copy of the book), but have the same properties values iSBN, UDC, nameand author.


Fig.3.14.Logic Structural Data Care

The logical structure of the OO DB is externally similar to the structure of the hierarchical database. The main difference between them consists in data manipulation methods. To perform actions on data in the database, logic operations are used, reinforced by object-oriented mechanisms of encapsulation, inheritance and polymorphism. Operations such as SQL commands can be limited (for example, to create a database).

Creating and modifying the database is accompanied by automatic formation and subsequent index adjustment (index tables) containing information to quickly search for data.

Consider briefly the concept of encapsulation, inheritance and polymorphism in relation to the database.

Encapsulationlimits the scope of the name of the property within the object in which it is defined. So, if an object is a catalog object add property asks the author's phone book and having a name telephone,then we will receive the properties of the same name from the subscriber and the catalog. The meaning of this property will be determined by the object in which it is encapsulated.

Inheritance, On the contrary, distributes the area of \u200b\u200bvisibility of the property on all the descendants of the object. So, all objects such as a book, which are the descendants of the object type of the catalog, can be attributed to the properties of the parent object: iSBN, UDC, nameand author.If it is necessary to expand the effect of the mechanism of inheritance to objects that are not direct relatives (for example, between two descendants of one parent), then in their overall ancestor the abstract type of ABS type is determined. So, the definition of abstract properties ticket and numberin the object, the library leads to inheritance of these properties by all the subscribers, the subscriber, the book and issuance. Not by chance therefore the values \u200b\u200bof the property ticketclasses The subscriber and the issuance shown in the figure will be the same - 00015.

Polymorphismin object-oriented programming languages, it means the ability of the same program code to work with multi-way data. In other words, it means the permissibility in the objects of different types to have methods (procedures or functions) with the same names. During the execution of the object program, the same methods are operated with different objects depending on the type of argument. With regard to our OO database, polymorphism means that class objects book having different parents from class directory can have a different set of properties. Consequently, the work programs with class objects may contain a polymorphic code.

The search in the OO BD is to find out the similarity between the object specified by the user, and the objects stored in the database. The user-defined object, called the object-purpose (the property of the object is type GOAL), in the general case may be a subset of the entire hierarchy of objects in the database. The object object, as well as the result of the execution of the query can be stored in the database itself. An example of a request for reader tickets and subscriber names that received at least one book by the library is shown in Fig. 3.15.

Basic dignityThis data in comparison with the relational is the ability to display information on the complex interconnections of objects. This allows you to identify a separate database entry and determine the functions of their processing.

DisadvantageOy are high conceptual complexity, inconvenience of data processing and low speed of queries.


Fig.3.15.Fragment of the database with object-purpose

Re-turn to the task of orders represented as a relational data model in Fig. 3.8, and consider it in terms of an object-oriented database. In total, in the example of three classes: " Customers», « Orders"And" Products" Class " Customers»Are concrete clients; Class properties - customer number, customer name City, status, etc. Class methods - " Create an order», « Pay bill" etc. The method is some operation that can be applied to the object; The method is what the object should do. Class corresponding to the table " Order information", not required. Table data may be part of the class " Orders" Availability in the class " Customers»Method" Create an order"Leads to interaction with classes of classes" Orders"And" Products" At the same time, the user does not need to know about this interaction of objects. The user only appeals to the object " Orders"And uses the method" Create an order" The fact of exposure to other databases can be hidden from the user. If the method " Create an order", In turn, refers to the method" Check the creditworthiness of the client"This fact may also be hidden from the user. IN relational bases Data To perform the same functions, you need to write procedures in Visual Basic for Application (VBA).

In the 90s, experimental prototypes of OO database management systems existed. Currently, such systems have been widespread. In particular, they include the following DBMS: POET (Poet Software), Jasmine (Computer Associates), Versant (Versant Technologies), O2 (Ardent Software), ODB-Jupiter (Inteltek Plus Scientific and Production Center), as well as IRIS , Orion and Postgres.