A database is a systematic and organized collection of data. Database Management System (DBMS) is a collection of programs which enables its users to access, manipulate and report/represent data. Database Management Systems can be of various types –
1. Navigational Database Management Systems
Eg. Integrated Data Store (IDS), Information Management System (IMS)
2. Relational Database Management Systems
Eg. IBM Peterlee Relational Test Vehicle (PRTV), MySQL
3. Integrated Database Management Systems
Eg. Oracle ExaData
4. Desktop-Based Database Management Systems
Eg. Lotus 1-2-3, dBase
5. Object-Oriented Database Management Systems
6. NoSQL-Based Database Management Systems
Eg. MongoDB, Couchbase, Apache Cassandra
7. NewSQL-Based Database Management Systems
Eg. CockroachDB, VoltDB
MySQL is a Relational Database Management System (RDBMS). It is one of the most widely used RDBMS in the world. MySQL was created in 1995, by a Swedish software company named MySQL AB. The company was later acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle Corporation in 2010. Though it is an open-source software (MySQL Community Server), several paid editions (MySQL Enterprise Server) that offer additional functionality are available for proprietary use.
Many applications like TYPO3, MODx, Joomla, WordPress, MyBB, etc. use MySQL and its proprietary versions. It is also used by various large-scale websites like Google, Facebook, Youtube, Flickr, Twitter, etc.
The name “MySQL” is a combination of the word “My” and “SQL”. “My” is the name of its co-creator Michael Widenius’s eldest daughter, whereas “SQL” stands for Structured Query Language.
MySQL is written in C and C++, which is the reason for it being fast and efficient. Its SQL parser is written in YACC (Yet Another Compiler – Compiler). SQL parsing is one stage in the processing of a SQL statement that checks the statement for syntactic and semantic validity, determines whether the process issuing the statement has the privileges to run it, and allocates a private SQL area for the statement.
MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64.
Although it can be used in a wide range of applications, MySQL is most often associated with web-based applications and online publishing and is an important component of an open source enterprise stack called LAMP. LAMP is a Web development platform that uses Linux as the operating system, Apache as the Web server, MySQL as the Relational Database management system and PHP as the object-oriented scripting language (Sometimes Perl or Python is used instead of PHP).
Advantages of MySQL –
1. It is very easy to use. It is the primary choice for first time Database users.
2. It is open-sourced. That means that the source code is available for anyone to view.
3. Since it is open-sourced, there’s a large and thriving community of developers and enthusiasts to which one can turn for help.
4. The Enterprise edition is highly inexpensive. It is significantly less expensive than most other database options on the market.
5. MySQL supports large databases, up to 50 million rows or more in a table. The default file size limit for a table is 4GB, but you can increase this (if your operating system can handle it) to a theoretical limit of 8 million terabytes (TB).
6. MySQL is customizable. The open-source GPL license allows programmers to modify the MySQL software to fit their own specific environments.
Disadvantages of MySQL –
1. MySQL is somewhat less stable than its peers like MariaDB, PostgreSQL, SQLite, etc.
2. It does not scale well. Although RDBMS generally perform relatively poorer than their NoSQL counterparts on large volume of data, MySQL again lacks behind when compared with other RDBMS such as MariaDB.
3. Its functionality depends heavily on the add-ons. MySQL contains less out of-the-box functionality and most of its key features are dependent not on the core engine but on applications and add-ons.
There are many free and proprietary front-end Graphical User Interfaces (GUIs) that integrate with MySQL and enable users to work with database visually. Some popular front ends are – SQLyog, MySQl Workbench, HeidiSQL, Adminer, Database Workbench, DBEdit, LibreOffice Base, phpMyAdmin, Navicat, OpenOffice.org, SQLBuddy, etc.