I am often asked about the database position, career planning, transition, and other related issues. For the frequently heard "DBA (database administrator), database development engineer, data mining engineer, database architect ..." These positions, I was also confused, and even confused these positions specific tasks and responsibilities, not to mention what career planning. Later, I asked some friends who work in the database, and also looked up some information, and added a little opinion. Take time to tidy up, write this article, hoping to help the people who want to go this way. Because I am not too professional, if there is a mistake, I hope to point out in time.
1. Generally speaking, there are two main types of database work: database management, database development. This is two different directions.
The so-called database management, is what we usually say DBA (database administrator). The main work is to do database installation, management, tuning, backup, disaster tolerance, clustering, security, etc. (take SQL Server DBA as an example, job responsibilities can refer to http://blog.csdn.net/dinglang_2009/article/details/ 7352850, the main technical point is in addition to the database itself more familiar with, but also to the hardware (host, storage, network), operating system, etc. have a better understanding, otherwise it is difficult to achieve a real master. For example, in database tuning, I/O is a more common performance bottleneck, and if you want to really maximize tuning, you must understand how disk (hardware) works, as well as the knowledge of the operating system (such as the characteristics of file systems under Windows). In the process of doing a database cluster, take SQL Server as an example, you must first implement the Windows operating system cluster, if you do not understand the Windows System management, how to do it. A good DBA is not necessarily a good system administrator, but it is at least a very data-operating system that is implemented and managed, no exaggeration.
The overall point, in this direction alone, to learn the knowledge and technology is indeed too much. As a result, DBAs typically only need to familiarize themselves with a database product, such as Oracle. A small number of domestic SQL Server DBAs can go a long way in a career. On the contrary, it is taboo to be more and not fine.
The so-called database development, I think there are several kinds. First, the general understanding refers to the development of database applications. For example, the use of php+mysql development of the Web site, the use of java+oracle development of the banking system, asp.net+mssqlserver development of enterprise-class ERP system ... These can be considered as database development. In some companies (usually large companies), there are also professionals engaged in the development of database-level engineers. Usually their systems are more dependent on the database level, such as the use of a lot of transaction control, stored procedures, high concurrency often cause database deadlock, and so on. In this way, the task will be very heavy, must have a separate "database development engineer." Another is the use of pure database system language development work, this kind of general refers to the pure database technology development personnel, such as data mining engineers (database extraction, transmission, loading, is a data Warehouse application part). This kind of entry threshold is higher, the salary is also very good, with the rise of business intelligence in the country, this kind of job demand also more and more.
Some large companies, the application of a more in-depth database, may set up a professional DBA to engage in development consultancy work, the main responsibility is with the project team to carry out the system database structure design, SQL related development optimization, build table operations, such as the DBA requirements for the system business has a certain understanding, Also familiar with database development and optimization, the name of each company may be different for this position, some companies are called DBA or database development engineer, and Alibaba is called Development DBA or Application DBA. For example, I have a friend. The Alipay DBA project group under Alibaba, he is mainly engaged in Oracle database management and tuning work. In short, large companies will be broken down, smaller companies generally hope that you are all-round type. It is well understood that big companies have the money and are more technically demanding, so they need a lot of "expertise" to collaborate. Small companies have limited financial resources, relatively low technical requirements (not necessarily), so more inclined to "generalists" (as for that too small companies or not specializing in the IT industry, generally do not set up a dedicated DBA.) For example, a shell company recruit a programmer, eager to immediately put the company's art also fired, can imagine the small boss of the desire and demand for talent. As for "generalists" or "professionals", or to see their own positioning.
2. Fresh students can choose to be DBA.
Graduates should be engaged in DBA work is relatively high, because the DBA position is a person who needs to have some practical experience, fresh graduates are very difficult to recruit, unless your expertise is exactly what the company needs: for example, you have a more in-depth database application in the projects or topics you are working on in your school, and you have a good understanding of the database theory. Or you have not done DBA, but the school has participated in the design of database systems, the principle of database implementation is very well understood. If you are 211 or have a high degree (master or above), others may be willing to nurture you. Otherwise, the chances of a successful entry are small. No way, in the celestial just like this.
On the surface DBA is engaged in database management, does not need software development skills, but with the development of individuals, you need to work with developers often, need to write code to simulate the developer access to the database case, but also need to do some new technology test learning, write some automation scripts. So the development of skills is essential in the process of DBA growth. In fact, most DBAs are engaged in a period of development work before they are transformed into DBA posts. For example, I just said that the friend, was also engaged in the development of Java EE, accumulated to a certain stage, the gradual transformation of the DBA.
So for fresh students, I do not recommend a direct challenge to the DBA post, it is best to engage in a period of time development work, if the work of the database management is more interested in the work process can continue to learn database knowledge, help the team solve the problem of the database, When a decision is made to be a DBA or to have a clear DBA requirement at work, choose from database Concepts, functions, management, development, and tuning step-by-Step System Learning database knowledge, do more testing and practice, in the professional forum to deal with more problems. Do not ignore the forum, Oracle Daniel Feng Dahui, Gai, they are in the forum and work accumulated.
3. About exams and certifications
In the early years, when I was still at school at that time, "certification" is very popular, recognition is also good. Database-related training prices should be not low (such as Oracle OCP OCM, etc.), the outside recognition is not good, because now the certification test is basically easy to pass. To participate in database training is not necessarily to learn how much, more importantly, personal interests and the environment. If you really want to improve yourself, and have the economic base, that can choose to participate in database training, but the premise is that you have to have a certain basis to go again, because the training time is generally very short, to be in the training time digestion is basically not likely, so it is best to take the certification test your own ability, If you don't even understand the meaning of the topic or the concepts inside it, take some time to learn.
4. Methods of database Learning
As far as I am concerned, there is no in-depth study of the database. It took a few years to make a lot of suggestions fraught. On the method of database learning, must be theoretical plus practice (otherwise it is an armchair), reading is useless, but it will make people feel less investment and lose interest in learning. Start more hands-on practice, master commonly used functions, in the work or the network to solve the actual problems, learning other people to solve the problem, for the understanding or unfamiliar knowledge points themselves to practice, solve more problems, naturally will feel the level of improvement. After one stage, it will be found that the level is increasing slowly, then in turn from the more basic level of the system to learn database knowledge, especially the study of the bottom and the original rational knowledge, and then practice. After this stage, basically is the entry. I am in the blog Park and Csdn and other sites, often have a lot of in-depth database on the bottom of the article and discussion, let me this rookie discouraged, this knowledge is very important and difficult to grasp, but does not mean that this knowledge is practical, because we learn the main purpose of knowledge is to solve problems, rather than express Because most of us still engage in application-level development. I have been confused about SQL Server indexing, transactions, locks, and want to make up for it. With some of the "SQL Server 2005 Technology Insider" gnawing, this series of books from the 2005 bottom of SQL Server began to reveal, is indeed written good, but not very suitable for my rookie. Just imagine, even a complex SQL statement can not write, you tell him the SQL Server engine internal execution principle, that has good effect. So, or the classic words: From the very, step-by-step, theory plus practice. It's easy to say, it's hard to do. There are no shortcuts. The accumulation of work, amateur still have to learn, and constantly accumulate for many years.
This article originates from blog.csdn.net/dinglang_2009, reprint please indicate the source.