Data storage and retrieval is a core element of most applications today. In the early days of software development, programmers wrote their own low-level code to accomplish this. However, they quickly realized that in each application they were essentially reinventing the wheel. Through the usual cycle of trial, error, and subsequent refinement a solution was developed: the data storage and retrieval engine was abstracted into a stand-alone database server with the clients connecting to it and sending requests in a custom language called SQL (Structured Query Language).
Today, developers can choose from many data storage and retrieval products that use SQL. These products are usually referred to as SQL database servers, or sometimes relational database management systems (RDBMSs). Strictly speaking, an RDBMS system must comply with a set of formal requirements. It does not necessarily implement the SQL language, and vice versa — an SQL server may comply only partially with a set of formal RDBMS requirements. However, for practical purposes, the terms are frequently used interchangeably; most RDBMS products implement the SQL standard, and an SQL server that complies only partially with the formal requirements of an RDMBS will still be regarded by many IT specialists to be in the RDBMS league.
Products such as Oracle, DB2, Informix, and Microsoft SQL Server implement the SQL standard and are widely used in the industry. Even if you know nothing about SQL and relational databases, you have no doubt heard of these products — they are the well-known giants in the world of SQL servers. This book, however, is not about the giants of the SQL world. It is about MySQL - a feisty, lightning-fast underdog of Scandinavian origin that has surprised many developers with its capability to outperform many of the giants.
Unlike most database servers, MySQL is an open source product (MariaDB now): its source code is freely available for download to anyone. Programmers can modify the source code to tailor MySQL to their needs. One of the values of open source products is that a wide range of professional developers and users contribute their experience to the software, making it better. As a prominent open source project, MySQL has a large community of loyal supporters. MySQL has benefited in many ways from the contributions of the community, making it more than just a piece of software.
Decision makers in the IT industry are sometimes wary of open source products. The most common concern is that open source products do not have a commercial entity behind them that will take responsibility for supporting the software. In this respect, MySQL is different from most open source products. MySQL AB is a full-fledged company that, at the time of this writing, employs some 50 people all over the world who are responsible for development, support, sales, consulting, training, documentation, and other business functions. It is not the purpose of this book to discuss MySQL AB’s business model, but if you are interested in knowing how a basically free open source product can be commercially viable, go to www.mysql.com for more information.