The database can affect the overall software architecture design - of course!

Database DBA In the process of forming the overall software, most units position this position as an operation and maintenance position. Of course, the established reality is reasonable, and this is also irrefutable, but in fact, DBA should also be a position for operation and maintenance, it is in 2021, and we are starting to discuss it.

Let’s first list what most people think DBAs should do

1 Install the database, install the database high-availability architecture

2 The SQL given by the execution development contains DDL DML

3 Optimize SQL statements that have been launched, including adding appropriate indexes, and modifying the structure of some non-logical SQL statements

4 Monitor the overall performance of the database

5 Solve the intractable diseases arising from the operation of various databases

6 To solve the problem of some knowledge related to the database in the development for the development

7 Do database backup and recovery, and disaster recovery issues

Of course, there are some other tasks, such as writing some complex SQL for the business department, or installing and operating database middleware, and programming to automate some tasks.

But is the current database the same as the database of the last century, or is it the age of ORACLE?

NO NO NO

According to Mr. Gai (the originator of DBA), the famous saying, "This is the era of a hundred flowers blooming in the database". Since it is the era of a hundred flowers blooming, choose a database, understand the characteristics of the database, and integrate these characteristics with the architecture design of software development. Increase the speed of software programming, reduce the cost of software construction, and improve the resistance of the overall software structure. These are all tasks that require "DBA" to enter.

Then let's see what DBAs in the new era should be able to do

Actually choose a database to participate in the business, you can ask the following questions

1 In the expectation of this application software, the amount of data that the business expects to store

(This question is actually more important. If the amount of data is large, the database used will store the data in that form, such as partitioned tables, sub-databases and sub-tables, logical sub-tables, sharding, distributed databases, etc. These options are all compatible with)

2 How many concurrent users of this system, how many users will log in to the system during peak business periods, and how many

3 The importance of the business, the consistency and security of the data in the business, etc., require the availability of the database, such as how to ensure the business after the core business encounters a problem, which determines the high availability method and formation of the database

4 What are the characteristics of the business, for example, is it a business that mainly calculates geographic location information, a traditional financial business, or a business that mainly stores external business exchange information, or is a data collection information that mainly stores customer behavior information, or It is real-time calculation information based on risk control and so on. The original information mode of the data, what is the mode of the data? Whether the business is based on OLAP or OLTP, etc.

5 What are the characteristics of data supply, such as whether your data is read more and write less, or write less and read more, and whether the hot and cold data of the data is obvious.

6 What is the language for application development? JAVA, GO, .NET, PYTHON, etc. The language for program development, these languages ​​themselves have a tendency to use which database.

7 The problem of budget, this is of course a problem. The current overall environment is to remove commercial databases such as ORACLE SQL SERVER, so budget is also a problem. At present, open source and free databases are popular. How can you explain to your boss? The cost of purchasing millions and tens of millions of databases, right?

8 Solutions to subsequent problems, for example, if you choose MYSQL, the subsequent data aggregation and data calculation analysis is a cost that needs to be considered, or POSTGRESQL, MONGODB subsequent data analysis and processing methods and costs , The so-called can’t ignore the past

9 The problem of data governance, this is of course a problem that needs to be worried about, such as the structure design of the table, which fields are necessary, such as the time when the record must be inserted, etc., or the naming rule of the field, the value of the field Naming rules and so on. This is also related to subsequent data interaction and subsequent data processing.

So can a database in an application system design influence the overall business logic architecture design? How many people still have questions at this time?

At this time, I still think that DBA is an operation and maintenance position, hehe, TOO Young TOO simple. With more and more types of databases, the rational use of appropriate databases to solve business problems and system architecture problems should have been on the agenda for a long time. Of course, if you say that we don’t need it, it’s very possible, because there is still another one. The heap unit is still proud of using a database, but I think that this should be the structure of this unit and the shame of the DBA group.

So I believe that this is an era of "a hundred flowers blooming in databases". DBs should improve themselves, cope with the changing environment, and new job demands. I don't think it will be too bad for companies with such job demands.