MySQL

   

MySQL is a multithreaded, multi-user, SQL (Structured Query Language) relational database server (RDBS). MySQL is available either under the GNU General Public License (GPL) or under other licenses when the GPL is inapplicable to the intended use.

Unlike projects such as Apache, MySQL is owned and sponsored by a single for-profit firm, MySQL AB. The MySQL trademark and copyright are owned by the Swedish company MySQL AB. The company develops and maintains the system, selling support and service contracts, as well as commercially-licensed copies of MySQL, and employing people all over the world who communicate over the internet. Two Swedes and a Finn founded MySQL AB: David Axmark, Allan Larsson and Michael "Monty" Widenius.

Despite the widespread pronunciation of "SQL" as "sequel", professionals generally pronounce "MySQL" as "my ess-que-ell", not "my-sequel".

Platforms

MySQL works on many different platforms—including AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, and more recent versions of Windows. A port of MySQL to OpenVMS is also available.

Programming languages

Programming languages which can access MySQL databases include: C, C++, Eiffel, Smalltalk, Java (with a native Java driver implementation), Lisp, Perl, PHP, Python, Ruby, and Tcl; each of these using a specific API. An ODBC interface called MyODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database. MySQL uses ANSI C as its "native" language.

Uses

MySQL is popular for web applications like Wikipedia and PHP-Nuke and acts as the database component of LAMP.

The latest production version

As of 2004, MySQL offers production version 4.0.21. It includes the following features:

  • A broad subset of ANSI SQL 99, as well as extensions
  • Cross-platform support
  • Independent storage engines (MyISAM for read speed, InnoDB for transactions and referential integrity)
  • Transactions
  • SSL support
  • Query caching
  • Replication with one master per slave, many slaves per master
  • Full-text indexing and searching using MyISAM engine
  • Embedded database library
  • Unicode using UTF-8
  • ACID compliance using InnoDB engine

It does not include the following features:

The development version

The development version, 4.1, includes support for the following additional features and was released on October 27, 2004:

  • Sub-queries (sub-selects)
  • Support for geographical data (OpenGIS)
  • Derived tables
  • Multi-statement queries
  • Full unicode support (as well as many other character sets and collations)
  • Clustering in the form of MySQL Cluster

Future releases

MySQL 5.0 contains support for the following features:

  • Stored procedures
  • Views
  • Cursors
  • True VARCHAR support
  • Easier GIS access
  • Triggers

MySQL 5.1 will contain support for:

  • Online backup for all storage engines
  • Foreign key support for all storage engines
  • Fail-safe replication
  • Column-level constraints

Criticisms of MySQL

Early versions of MySQL included few standard RDBMS features, and the current production version still lacks many properties found in other SQL RDBMSs. This has led some database experts, such as Chris Date and Fabian Pascal, to criticize MySQL as falling short of being an RDBMS. [1] (http://www.dbdebunk.com/)

Many of the early criticisms have been remedied in later versions of the software, including the lack of transactions and relational integrity constraints. These are features necessary to support the "ACID properties" for relational databases, which allow the DBMS to ensure that client applications cannot interfere with one another or insert inconsistent values. [2] (http://www.service-architecture.com/database/articles/acid_properties.html) Other criticisms include MySQL's divergence from the SQL standard on the subject of treatment of NULL values and default values. Its handling of dates allowed invalid dates to be stored, and arithmetic operations are vulnerable to either integer overflow or floating point truncation. [3] (http://sql-info.de/mysql/gotchas.html)

Earlier versions of the MySQL manual included claims that certain essential missing features were useless or even harmful, and that users were better off without them. One section, entitled "Reasons NOT to use Foreign Keys constraints" (sic) advised users that relational-integrity checking was difficult to use and complicated a database application, and that its only useful purpose was to allow client software to diagram the relationships between database tables. [4] (http://sunsite.univie.ac.at/textbooks/mysql/manual.html#Broken_Foreign_KEY) Another section claimed that a DBMS lacking transactions can provide as reliable of data-integrity assurances as one supporting them -- conflating the issue of transactional integrity with that of saving data when the database server loses power. [5] (http://sunsite.univie.ac.at/textbooks/mysql/manual.html#IDX340) Since these claims contradicted basic principles of relational database design, they caused MySQL to be ridiculed by some database experts. Right or wrong, these claims have since been removed in more recent versions of the manual. MySQL today supports the previously-dismissed features of relational integrity checking and transactions in an effort to meet the broadest needs, and facilitate migration efforts.

Critics find MySQL's popularity surprising in the light of the existence of other open-source database projects with comparable performance and in closer compliance to the SQL standards. MySQL advocates reply that the program serves its purpose for its users, who are willing to accept the program's limitations (which decrease with every major revision) in exchange for speed, simplicity, and rapid development.

Some users have also criticized MySQL AB's position on the licensing of the software.

Licensing

Both the MySQL server software itself and the client libraries are distributed under the GNU General Public License [6] (http://www.mysql.com/products/licensing/opensource-license.html), the client libraries also with a broad FOSS exception [7] (http://www.mysql.com/products/licensing/foss-exception.html).

Some users have independently continued to develop an earlier version of the client libraries, which was distributed under the less-restrictive Lesser General Public License. [8] (http://packages.debian.org/testing/libs/libmysqlclient10)

See also

External links


de:MySQL es:MySQL eo:MySQL fr:MySQL ko:MySQL it:MySQL he:MySQL ku:MySQL nl:MySQL ja:MySQL pl:MySQL ru:MySQL fi:MySQL sv:MySQL tr:MySQL uk:MySQL zh-cn:MySQL

Retrieved from "http://www.centipedia.com/articles/MySQL"

This page has been accessed 1598 times. This page was last modified 21:26, 23 Nov 2004. All text is available under the terms of the GNU Free Documentation License (see Copyrights for details).