For friends who want to work in databases



People often ask me about the position, career planning, transformation and other related questions of the database. For the positions that I often hear about "DBA (database administrator), database development engineer, data mining engineer, database architect...", I was confused before, and even did not know the specific tasks of these positions. And responsibilities, not to mention career planning. Later, I asked some friends who specialize in database work, also checked some information, and added a little bit of my own insights. I took the time to sort it out and wrote this article, hoping to help friends who want to take this path. Since I am not very professional, please point out any mistakes in time.


1. Generally speaking, there are two main types of database work: database management and database development. These are two different directions.


The so-called database management is what we usually call DBA (database administrator). The main work is to do database installation, management, tuning, backup, disaster recovery, clustering, security, etc. (take sqlserver DBA as an example, job responsibilities can refer to http://blog.csdn.net/dinglang_2009/article/details/7352850) The main technical point is that in addition to being familiar with the database itself, it is also necessary to have a good understanding of hardware (host, storage, network), operating system, etc., otherwise it is difficult to be a real master. For example, in database tuning, I/O is a relatively common performance bottleneck. If you want to tune to the fullest extent, you must understand the working principle of the disk (hardware) and the operating system (such as windows). The characteristics of the file system under). In the process of doing database clustering, taking sqlserver as an example, you must first implement the windows operating system cluster. If you don't understand the management of windows system, how can you be competent? A good DBA is not necessarily a good system administrator, but at least it is also a very data operating system implementation and management, which is no exaggeration.

In general, in this direction alone, there is indeed too much knowledge and technology to learn. Therefore, usually a DBA only needs to be familiar with a database product (such as Oracle. There are very few domestic sqlserver DBAs) and can go a long way in their career. On the contrary, it is taboo to have too much but not fine.


I think there are several kinds of so-called database development. First of all, ordinary people understand that it involves the development of database applications. For example, using php+mysql to develop websites, using Java+Oracle to develop banking systems, asp.net+mssqlserver to develop enterprise-level ERP systems...These can all be considered database development. In some companies (generally large companies), there are also engineers who specialize in database-level development. Usually their systems are more dependent on the database level, such as using a lot of transaction control, stored procedures, high concurrency often causes database deadlocks and so on. In this way, the task will be very heavy, and there must be a separate "database development engineer". Another is to use the language on a pure database system for development work. This category generally refers to personnel who focus on the development of pure database technology, such as data mining engineers (database extraction, transmission, and loading are part of the data warehouse application) . Such entry barriers are high, and the salary package is also very good. With the rise of business intelligence in China, the demand for such positions is increasing.


Some large companies, who are more in-depth in database applications, may set up professional DBAs to engage in development consulting work. The main responsibility is to work with the project team to conduct systematic database structure design, SQL-related development optimization, database building and table building operations, etc. DBA requires a certain understanding of system business, and is also familiar with database development and optimization. The name of each company for this position may be different. Some companies are still called DBA or database development engineer, and Alibaba is called development DBA or Apply DBA. For example, a friend of mine is in the Alipay DBA project team under Alibaba. He is mainly engaged in Oracle database management and tuning. All in all, large companies will be subdivided, and smaller companies generally want you to be versatile. This is easy to understand. Large companies have money and have higher technical requirements, so they need a lot of "experts" to collaborate. However, small companies have limited financial resources and relatively low technical requirements (not necessarily), so they are more inclined to "generalists" (as for companies that are too small or are not specialized in the IT industry, they generally do not have a dedicated DBA . For example, a leather bag company hires a programmer and can’t wait to fire up the art in the company right away. One can imagine the little boss’s desire and requirements for talent). As for "generalist" or "professional", it still depends on one's own positioning.


2. Can fresh graduates choose to be DBA?
Fresh graduates have a relatively high threshold to engage in DBA work, because DBA positions require personnel with certain practical experience, and it is difficult to hire fresh graduates unless your specialty happens to be what the company needs: for example, you are engaged in a project or topic in the school There are more in-depth database-related applications, and you have a good understanding of database theory. Or you have never done a DBA, but you have participated in the design of a database system in your school, and you have a good understanding of the principles of database implementation. If you are 211 or have a high degree (a master's degree or above), others may be willing to train you. Otherwise, the probability of successful entry is very small. No way, that's it in the Celestial Dynasty.


      On the surface, DBA is engaged in database management and does not require software development skills, but with personal development, you need to deal with developers frequently, you need to write code to simulate the case of developers accessing the database, and you need to do some new technology tests Learn, write some automated scripts, etc. So in the process of DBA growth, development skills are also essential. In fact, most DBAs are converted to DBA positions after a period of development work. For example, the friend I mentioned earlier was also engaged in J2EE development. After accumulating to a certain stage, he gradually transformed into DBA.


      Therefore, for fresh graduates, I do not recommend directly challenging the DBA position. It is best to engage in development work for a period of time. If you are interested in database management, you can continue to learn database knowledge during the work process to help the team solve database problems. After deciding to transform to a DBA or having a clear DBA requirement at work, choose to gradually and systematically learn database knowledge from database concepts, functions, management, development, and tuning, do more testing and practice, and deal with more in professional forums The problem. Don't neglect the forum, Oracle big cows Feng Dahui and Gai Guoqiang, they have accumulated in the forum and work.


3. About examination and certification
A few years earlier, when I was still in school, "certification" was very popular and the recognition was good. The price of database-related training should not be low (such as Oracle OCP OCM, etc.), and the external recognition is not as good as before, because now the certification exam is basically easy to pass. Participating in database training may not necessarily learn much, but more importantly, personal interests and environment. If you really want to improve yourself and have an economic foundation, you can choose to participate in database training, but the premise is that you have a certain foundation before you go, because the training time is generally very short, if you want to digest it during the training time, basically It's very possible, so it's best to test your abilities with the certification questions first. If you don't even understand the meaning of the questions or you haven't heard the concepts in it, take some time to learn by yourself.


4. Methods of database learning

Personally, there is no in-depth research on databases. I spent a few years in a daze and didn't dare to make too many suggestions to mislead my children. Regarding the method of database learning, you must add theory and practice (otherwise it will be a matter of paper). It is useless to read books, and it will make people feel that more investment and less profit will lose interest in learning. At the beginning, practice more hands-on, master commonly used functions, solve practical problems at work or on the Internet, learn how other people solve problems, and practice knowledge points that you don’t understand or are not familiar with yourself. There are more problems to solve naturally. You will feel your level improved. After reaching a stage, then you will find that the level is increasing more and more slowly. At this time, in turn, learn database knowledge from a more basic level, especially the low-level and principle knowledge, and then put it into practice. After this stage, you are basically in the industry. I often have many articles and discussions related to the bottom of the database on the blog garden and CSDN and other websites, which discourages me as a rookie. This knowledge is very important and difficult to master, but it does not mean that this knowledge is very practical, because we learn knowledge The main purpose is to solve the problem, not to express yourself. Because most of us are still engaged in application layer development. I have been confused about sqlserver indexes, transactions, and locks, and want to make up for it. Holding a few "Technical Insider of sqlserver 2005", this series of books is revealed from the bottom of sqlserver 2005. They are really well written, but unfortunately they are not suitable for me as a rookie. Just imagine, even if you can't write a complex SQL statement, you can tell him about the internal execution principle of the sqlserver engine. Will it have good results? Therefore, it is still the classic saying: from the shallower to the deeper, step by step, theory plus practice. Simple to say but difficult to do! There are no shortcuts. Accumulate in the work, but also have to study in the spare time.


This article is from blog.csdn.net/dinglang_2009 , please indicate the source for reprinting.



 

Guess you like

Origin blog.csdn.net/dinglang_2009/article/details/7453310