Database design is a consistent process of adapting available knowledge and tools for presenting and processing information.
The real field of application, a specific task, a description of the incoming information flow and general ideas about the information processing process are gradually developing into a certain conceptual idea of what a database is in a particular case and how to work with it.
Modern database
Relational relationships are at the core of any information model. Oracle solutions are equivalent to MySQL in essence, but they are fundamentally different in many aspects. Database design is also a matter of security, the amount of information and measures of responsibility for data reliability, but they are secondary in the context of designing an effective, reliable and user-friendly database.
Excel tables - no different from Oracle and MySQL in the context of rectangular (relational) constructions: columns and rows = one cell at the intersection of the column name (field) and the selection index (row). If you do not take into account the measure and amount of manual labor, then, thanks to the developed means of combining cells vertically and horizontally, Excel is ahead of even Oracle!
Excel, in its main idea, never "shines" the dynamics, the functionality of Oracle, and he can not transfer something from one sheet to another "in the balance". Oracle is more promising here, but its considerations regarding the migration of large amounts of information and the integration of formalized positions from various sources leave much to be desired. Here MySQL is more promising: it does not set itself global tasks, but it does its job perfectly.
Relational relations are convenient, practical, and proven tools, from private Excel-level solutions to global Oracle volumes, are used everywhere, are in demand, and they have a guaranteed future.
A modern database is tables, rows, columns and indexes surrounded by full functionality, developed additional tools that take into account multiple operations, heavy loads and huge volumes.
The knowledge and experience of modern database management systems (DBMS) take into account not only the issues of operational reliability, data reliability, access control and security issues, but also make it possible to monitor negative external influences, analyze possible attacks and attempts to intentionally cause harm.
A modern database is a reliable foundation for any web resource and local application, the ability to migrate information, transform and transfer data, intersection and integration of various representations.
The only essential condition: a highly qualified developer. Effective design of relational databases is available to a specialist, and more often to a team of specialists and experts in the field of application of the problem being solved.
Scope, possible solution and obstacles
Information circulates everywhere. Many projects are directly connected to the Internet, but the factor of having a formal presentation of data here is no better than the uncertainty factor when creating a web resource for a steel mill.
The development and widespread interest in online stores does not give reason and opportunity to transfer the experience of creating one store to create another. The factor of trade secrets creates many obstacles to the transfer of knowledge, although, in fact, the store itself should be separated from the software tools created for this store.
Of course, the customer paid and the site code is his property. A characteristic feature of modernity: the transfer of knowledge and best practices between similar tasks and related fields of application is impossible and this is a problem.
Parsing is an extensive range of applications for database management systems. First of all, it is scanning information from the Internet. It is equally important to compare the information accumulated in the database and the requests of visitors to web pages.
Keyword analysis also involves the need to create the optimal solution, but designing databases on Access may be more promising than on MS SQL Server or Oracle.
The list of information sources can be dynamic. Dynamics may be peculiar to source database tables, table field names, and access (query) rules. The design of relational databases for a variety of sources uniquely compels us to develop from the source data, and not from the optimal organization of the information collected.
There are two points that are inherent in any database:
- focus on filling, the algorithm for the dynamic formation of the database in priority;
- orientation to use, the structure of the database is more important and an algorithm for using information is built on its basis.
In any field of application, there is a formal model of the incoming information flow, the information storage model is the database design itself and the data use model (algorithm).
Various procedures and design steps
The basics of database design usually fall into three stages. Various specialists have different names for the stages of work, but, in fact, there are three positions:
- conceptual planning;
- logical design;
- technical performance.
Practice contributes to established traditions. No matter how complicated the scope and the problem to be solved. Choosing the right tools is always required. For example, you need to collect information from visitors to a web resource, but it is required to correlate it with data from MS SQL Server. The web resource is hosted on the basis of FreeBSD (Internet, Apache server), and MS SQL Server in another city is available on the company's distributed network.
In this solution, it requires first to solve a particular problem: to establish data exchange with an internal server.
The technical execution of the general task will necessarily have an impact on the initial stage: it is rare when database design can be performed from scratch. Even with the proven technology of solving problems, the field of application is developing, it is always required to do something different than originally intended.
Recently, many theorists and practitioners have been using entities as special data. These are abstractions that allow us to describe a model of information at the input, during processing, and in the final result, a database.
Data and Entity Views
Database design through abstractions and entities: the ability to create an information picture, determine the types of data and the relationships between them.
Typically, such a design of the database model ends with a graphical model, the use of MS Visio, or the visual tools of a selected DBMS. Access has its own version of forming an informational picture, MySQL has its own, and some site management systems completely hide the database, imposing a data model on the developer through their own entities - objects of the problem being solved.
A characteristic feature of many site management systems (CMS) is that they make an “application” to the level of greater abstraction when describing the information area of the problem being solved. The real database is hidden, CMS offers the developer his own idea of the information picture of the world.
As a result, the stages of database design are reduced to compliance with the fundamental requirements and the implementation of the steps proposed by the creators of a specific CMS. There is nothing wrong with using database ideas and designing them from Symfony or Bitrix, Zend or Yii, but for the developer, this is a "burden."
Ideally, database design tools should be selected and applied individually, without taking into account outside opinions, but using accumulated experience and knowledge.
It is ideal when the developer is certified by Oracle, but it is acceptable when the developer’s qualifications include ideas about Oracle’s information ideas and practical knowledge of MySQL.
In complex projects and distributed information processing, not only the database is important, but also the sources of information, ideas about the needs of consumers.
Stages or team: balance of priorities
The requirement of consistency is of the most immediate importance. The basics of database design also include the stages of work, monitoring of intermediate results, rethinking of each completed stage based on the execution of the following type of work:
- consistency;
- staging;
- feedback from any point in time to the very initial position.
These provisions are abstract, but are present in any theoretical and practical technology for creating an effective database.
No technology develops on its own; people move it forward. Qualification of the development team is important. The database information model is not only a framework, but also information flows.
What is more important: beautiful graphics in representing the database structure or an accurate description of information flows in dynamics is a question not only of the task and scope, but also the opinion of the development team in dynamics.
Cadres decide everything, but in context: the conceptual design of the database solves all the qualifications. All people are unique, and in the field of information systems, specific people's ideas exist and develop.
It is important to form a team of developers, and not the mythical stages of database design proposed by an authoritative expert. The authority of this specialist was formed on the basis of specific works, at a specific time. It is necessary to complete the work today, a new task, modern equipment, fresh technology, ...
The reverse is possible. There is Excel and Access and "plentiful" data in these formats since ancient times, when Windows for Workgoups was still alive and well. Partially left data dBase and Quattro. Today these words have already been forgotten, but the information has remained, it is in demand and needs to be extracted and the formation of new ideas.
Old and new: balance of knowledge
Cloud technology is not a match for the databases Ashton-Tate did. What Oracle once bought is in no way comparable to what it does today. But in programming since those early 80s, variables, algorithms, functions, loops and conditions remained. Unless the concept of procedure has sunk into oblivion, and as it was in ancient times, it remains.
Even the modern ideas of object-oriented programming are clothed in the classic syntactic and semantic "fetters" of the last century.
What to do is inertia programming, and formalizing information and designing information databases is more a process than a result. Staged work is a prerequisite for achieving results. But who considered the number of iterations from the intermediate stages almost before the start of work?
Information is always dynamic, nothing stands still: especially the subject area of the task and user requirements. Each completed stage of work allows us to evaluate at a new level what has already been done and what remains to be done.
To consider designing the database structure as a task and get the final result is futile. As soon as the database is put into operation, a new idea will certainly appear, even if the database creation tool was a “simple” Excel, and not a fantastically powerful and multifaceted product from Oracle, which manipulates millions of transactions, hundreds of thousands of simultaneously working users and terabytes of information.
The priority is not the structure of the database, but the formation of a qualified team of specialists plus the mandatory requirements for a more dynamic result, so that upon completion of the work it would not be necessary to contact the developers, at least a couple of months.
Successive development and / or high jumps
Windows is not a database, but it has a relic - a registry. The hosts file is simply an identification of the IP addresses of the local computer and symbolic names. But through this file, information flows from various domains or to various DBMSs are formed.
It is possible to understand many-sided Windows as a working computer or server, but substantiation of the logic of versions of this product will fail. PHP is also not a database, but the arguments of developers why version 7 immediately follows version 7 are not consistent. PHP is a MySQL access tool; its syntax defines how to form queries and receive responses from a database using the SQL dialect.
Examples of the incompatibility of modern programming tools and database operation in recent years have become the norm of things, but this is not the most original. What will be the version of Windows 10? What are the prospects for Oracle Database 12c?
Information of the author-developer: “Oracle Database 11g Express Edition (Oracle Database XE) is an entry-level DBMS based on the software code of the Oracle Database 11g Release 2. This DBMS is free for development, deployment and sale, quickly downloads and is easy to administer” .
User-developer opinion: “In 2013, Oracle released version of Oracle Database 12c (version 12.1.0.1), the main advantages of which were reduced storage costs, high data availability, ease of database consolidation, and data access protection.”
Real practice: objective, effective and efficient logical database design is available only to a team of qualified developers. It is not difficult to get a working result, it is difficult to formalize the incoming information flows and determine the optimal foundation.
Into the world of flowing shapes from exact rectangles
With the advent of object-oriented programming, data serialization has gained a second wind. Indeed, everything around is just lines, preferably of indefinite length. Numbers and dates are also character strings.
The power and objectivity of relational relationships is undeniable, but does the dynamics of columns and rows harm their reputation? A table is simply data that may have a header (list of columns) or may not have rows. Let a table be just a collection of data, not necessarily named.
The data set may be heterogeneous and data of various structures can be found in it. Fundamentally, the homogeneity of the data indicates the study of the scope. The distribution of data by type and type is a sign of a systematic and objective approach, but it is still advisable to allow the likelihood of structural dynamics.
If you take the design and creation of the database beyond the boundaries of rigid structures and assume that the table is a collection of rows that are not necessarily the same and similar in semantics to each other, then database design will change dramatically.
The subject of the work will not be a description of the structure of the database, but the dynamics of the movement of information. The stages of work will be divided into three centers of gravity:
- input information stream;
- transformations and movement of information within the database;
- fetching data to use.
The concept of table structure is missing. There are no rows or columns. There is an abstraction - a given, of a certain structure, satisfying a specific point in the algorithm. More specifically, the information processing function requires certain information in a specific scope.
The obligatory requirement of recursiveness of all information processing functions and orientation to functions, but not to data, allows you to design a database in the dynamics of the accumulated information and the incoming data stream, which are used at the initiative of a user, process, or other function.
In fact: a signal came to use, a request for selection was received, the trigger in the application worked, and the incoming information, through what was already available, provided the necessary solution.
Fundamental knowledge and rigid construction
Knowledge is the prerogative of man, programs are the burden of computers. The developer is free to apply knowledge as he sees fit in a particular situation. The average person uses a lot of databases, without attaching importance to this. Nobody knows how the databases are organized in the head of an ordinary person, but everyone knows how he conducts his business, where he writes down, how he finds, and when he needs to use it.
The result of the programmer’s work is at the BASIC level of the program, which through ODBC retrieves data from the website of the online store, is equivalent to the titled Oracle developer, who makes a request for data sampling of the MAKS aerospace salon. «» . , , .
. . , Oracle, MySQL Access. Excel .
, , .
, . , .
, , «» , , , .