What is MySQL?

• MySQL is an SQL based relational database management system that runs on more than 20 platforms including Windows, Linux, OS/X, HP-UX and many more. • The owner and producer of MySQL is a Swedish company called MySQL AB. They provide services and training programs for MySQL users. The software’s official website http://www.mysql.com gives the latest information about the company and MySQL. • MySQL is declared the world’s most popular open source database by its founders: “It's used in more than 6 million installations ranging from large corporations to specialized embedded applications on every continent in the world. (Yes, even Antarctica!).” www.mysql.com • The reasons for its popularity are: 􀂃It is free and open source! Users can download the code for free and modify it according to their needs. 􀂃Its consistent fast performance. Speed is crucial in database driven applications since the time it takes for the user to see the result of a query is the main performance measure for the application. 􀂃High reliability. Every release of MySQL is heavily tested by users and developers all over the world since it is free of charge and open source. 􀂃Ease of use. The main interaction with the MySQL server is through SQL commands which are easy to master! 􀂃It is supported by PHP (more on this later). • A brief history of the software, its name and its logo from its founders at http://dev.mysql.com: “We started out with the intention of using mSQL to connect to our tables using our own fast low-level (ISAM) routines. However, after some testing, we came to the conclusion that mSQL was not fast enough or flexible enough for our needs. This resulted in a new SQL interface to our database but with almost the same API interface as mSQL. This API was designed to allow third-party code that was written for use with mSQL to be ported easily for use with MySQL. The derivation of the name MySQL is not clear. Our base directory and a large number of our libraries and tools have had the prefix “my” for well over 10 years. However, co-founder Monty Widenius's daughter is also named My. Which of the two gave its name to MySQL is still a mystery, even for us. The name of the MySQL Dolphin (our logo) is “Sakila,” which was chosen by the founders of MySQL AB from a huge list of names suggested by users in our “Name the Dolphin” contest. The winning name was submitted by Ambrose Twebaze, an Open Source software developer from Swaziland, Africa. According to Ambrose, the feminine name Sakila has its roots in SiSwati, the local language of Swaziland. Sakila is also the name of a town in Arusha, Tanzania, near Ambrose's country of origin, Uganda.” • Useful Links and References: 􀂃http://www.mysql.com The official MySQL website. Latest news, manuals, downloads. 􀂃Manuals: http://dev.mysql.com/doc/ 􀂃Downloads: http://dev.mysql.com/downloads/ 􀂃http://forums.mysql.com/ You can search for and read about MySQL related topics or ask your own questions here. In particular, you can find the topics related to PHP & MySQL at http://forums.mysql.com/list.php?52 . 􀂃http://forums.devshed.com/f4/s.html Another popular forum on MySQL. 􀂃http://www.analysisandsolutions.com/code/mybasic An online tutorial on MySQL basics. 􀂃Books: 􀂃Beginning Databases with MySQL Author(s): Neil Matthew, Richard Stones

Components of the DBMS environment

We can identify five major components in the DBMS environment: hardware, software, data, procedures, and people:
(1) Hardware: The computer system(s) that the DBMS and the application programs run on. This can range from a single PC, to a single mainframe, to a network of computers.
(2) Software: The DBMS software and the application programs, together with the operating system, including network software if the DBMS is being used over a network.
(3) Data: The data acts as a bridge between the hardware and software components and the human components. As we’ve already said, the database contains both the operational data and the meta-data (the ‘data about data’).
(4) Procedures: The instructions and rules that govern the design and use of the database. This may include instructions on how to log on to the DBMS, make backup copies of the database, and how to handle hardware or software failures.
(5) People :This includes the database designers, database administrators (DBAs), application programmers, and the end-users.

(Database) application programs

Application program
A computer program that interacts with the database by issuing an appropriate request (typically an SQL statement) to the DBMS.

Users interact with the database through a number of application programs that are used to create and maintain the database and to generate information.These programs can be conventional batch applications or, more typically nowadays, they will be online applications. The application programs may be written in some programming language or in some higher-level fourth-generation language. .

The Database Management System (DBMS)

DBMS
A software system that enables users to define, create, and maintain the database andalso provides controlled access to this database.

The DBMS is the software that interacts with the users, application programs,and the database. Among other things, the DBMS allows users to insert, update,delete, and retrieve data from the database. Having a central repository for alldata and data descriptions allows the DBMS to provide a general inquiry facilityto this data, called a query language. The provision of a query language (such as SQL) alleviates the problems with earlier systems where the user has to work with a fixed set of queries or where there is a proliferation of programs, giving major software management problems. We’ll discuss the typical functions and services of a DBMS in the next section The Structured Query Language (SQL – pronounced ‘S-Q-L’ or sometimes ‘See-Quel’) is the main query language for relational DBMSs, like Microsoft Access, Microsoft SQL Server, and Oracle.

The database

Database
A shared collection of logically related data (and a description of this data), designed
to meet the information needs of an organization
Let’s examine the definition of a database in detail to understand this concept
fully. The database is a single, possibly large repository of data, which can be
used simultaneously by many departments and users. All data that is required
by these users is integrated with a minimum amount of duplication. And
importantly, the database is normally not owned by any one department or
user but is a shared corporate resource.
As well as holding the organization’s operational data, the database also
holds a description of this data. For this reason, a database is also defined as a
self-describing collection of integrated records. The description of the data, that is
the meta-data – the ‘data about data’ – is known as the system catalog or data
dictionary. It is the self-describing nature of a database that provides what’s
known as data independence. This means that if new data structures are added
to the database or existing structures in the database are modified then the
application programs that use the database are unaffected, provided they don’t
directly depend upon what has been modified. For example, if we add a new
column to a record or create a new table, existing applications are unaffected.
However, if we remove a column from a table that an application program uses,
then that application program is affected by this change and must be modified
accordingly.
The final term in the definition of a database that we should explain is ‘logically
related’. When we analyze the organization’s information needs, we
attempt to identify the important objects that need to be represented in the
database and the logical relationships between these objects. The methodology
we’ll present for database design will give you guidelines for identifying these
important objects and their logical relationships.