=== [[Korean War]] ===
<!-- {{wikibookspar||Using MySQL}} -->
I have been editing this article for a few days. I ran down through the article and fixed any grammer mistakes I could find. I would appreciate any suggestions on what to do and how I can really improve it further. Thanks a lot. [[User:Mr. Killigan|Mr. Killigan]] 06:17, 12 July 2007 (UTC)
[[Image:MySQL.png|250px|thumb|[http://dev.mysql.com/downloads/logos.html MySQL logo]]]
==== Kirill Lokshin ====
'''MySQL''' is a [[Thread (computer science)|multithread]]ed, [[multi-user]], [[SQL]] (Structured Query Language) Database Management System ([[DBMS]]) with an estimated six million installations. MySQL is [[open source]] software available either under the [[GNU General Public License]] (GPL) or under other licenses when the GPL is inapplicable to the intended use.
There are a number of areas to work on, at this point; keep in mind, though, that this is a very high-profile article, so you should be careful to move slowly and carefully to avoid getting entangled in any editorial conflicts here.
Unlike projects such as [[Apache HTTP Server|Apache]], where the software is developed by a public community, and is essentially not owned by anyone, MySQL is owned and sponsored by a single for-profit firm, the [[Sweden|Swedish]] company [[MySQL AB]]. The company develops and [[Software maintenance|maintains]] the system, selling support and [[service]] [[contract]]s, as well as [[commerce|commercially]]-licensed copies of MySQL, and employing people all over the world who work together via the [[Internet]]. Two Swedes and a [[Finland|Finn]] founded MySQL AB: [[David Axmark]], [[Allan Larsson]] and [[Michael (Monty) Widenius|Michael "Monty" Widenius]].
* <s>The article is, in my opinion, simply too long; we're looking at 72K (~12,000 words) of prose. The "Legacy" section, in particular, is ripe for splitting out into a separate [[Legacy of the Korean War]] article, with a much shorter summary left in the main one.</s>
* <s>"Korean War (1950 – 1953)" should really be something like "Course of the war"; you probably don't want to repeat the article title as a section heading.</s>
* The citations need cleanup; at a minimum, all of the embedded external links should be converted to footnotes. There are also a number of "citation needed" tags floating around. Beyond that, more thorough citation would be appropriate throughout the article; see [[WP:MILHIST#CITE]] for some guidelines.
* <s>The "Depictions" section should be turned into prose, rather than a laundry list of films; see also [[WP:MILHIST#POP]].</s>
* <s>The "Names" section, as it's presently constituted, would work much better as a narrow sidebar; it's of some interest, but I doubt there's enough material to sustain a separate section.</s>
* <s>The "See also" section should be eliminated. If something isn't worth linking from the text, it's generally not worth linking at all. </s>
* <s>The rump "Bibliography" section should be removed as well.</s>
* The "External links" section could use trimming.
Hope that helps! [[User:Kirill Lokshin|Kirill]] 04:08, 13 July 2007 (UTC)<s>cool</s>
::Thank you very much for offering your opinion! [[User:Mr. Killigan|Mr. Killigan]] 00:57, 14 July 2007 (UTC)
==Programming languages==
There are APIs available that allow applications written in numerous [[programming language|Programming languages]] to access MySQL databases, including: [[C programming language|C]], [[C Plus Plus|C++]], [[C Sharp|C#]], [[Eiffel programming language|Eiffel]], [[Smalltalk programming language|Smalltalk]], [[Java programming language|Java]] (with a native Java driver implementation), [[Lisp programming language|Lisp]], [[Perl]], [[PHP]], [[Python programming language|Python]], [[Ruby programming language|Ruby]], [[REALbasic]] and [[Tcl]]; each of these uses a specific [[API]]. An [[ODBC]] interface called [[MyODBC]] allows additional programming languages that support the [[ODBC]] interface to communicate with a MySQL database. MySQL is mostly implemented in [[ANSI]] C, and, that being a common "lingua franca" for system libraries, tends to use that as its "native" language.
==Uses==
MySQL is popular for [[web application|web applications]] like [[Wikipedia]] and [[PHP-Nuke]] and acts as the database component of [[LAMP (software bundle)|LAMP]]. The popularity as a web application is closely tied to the popularity of [[PHP]], which is often combined with MySQL and nicknamed the ''Dynamic Duo''. It is easy to find many references that combine the two from books (''PHP and MySQL for Dummies'', ''PHP and MySQL Bible'', ''Beginning PHP and MySQL'', etc.) to websites. The claim made in many books is that MySQL is easier to learn and use than many other database applications. An example from the ''Dummies'' book is that you can quit MySQL with an obvious command of either ''exit'' or ''quit''.
==Administration==
To administer MySQL databases you can use the included command-line tool (commands: mysql and mysqladmin). Also downloadable from the MySQL site are [[Graphical user interface|GUI]] administration tools: [http://mysql.com/products/tools/administrator MySQL Administrator] and [http://mysql.com/products/tools/query-browser MySQL Query Browser].
A widespread and popular alternative, written in PHP, is the open source web application [[phpMyAdmin]].
[[phpMyBackupPro]], also written in PHP, can create and manage backups. It can create pseudo-[[cronjob]]s, which can be used (optionally combined with emails) to backup the MySQL database at fixed intervals.
==Program specifications==
===Platforms===
MySQL works on many different [[system platform|platforms]]—including [[AIX operating system|AIX]], [[BSDi]], [[FreeBSD]], [[HP-UX]], [[Linux]], [[Mac OS X]], [[NetBSD]], [[Netware]], [[OpenBSD]], [[OS/2]] Warp, [[QNX]], [[Silicon Graphics|SGI]] [[IRIX]], [[Solaris Operating Environment|Solaris]], [[SunOS]], SCO OpenServer, SCO UnixWare, [[Tru64]], [[Windows 95]], [[Windows 98]], [[Windows NT]], [[Windows 2000]], [[Windows XP]] and more recent versions of [[Microsoft Windows|Windows]]. A port of MySQL to [[OpenVMS]] is available [http://www.pi-net.dyndns.org/anonymous/kits/ here].
===The latest production version===
As of [[2005]], MySQL offers production version 4.1.14. 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, including savepoints
*[[Secure Sockets Layer|SSL]] support
*Query [[caching]]
*Sub-[[Select (SQL)|SELECT]]s (or nested SELECTs)
*Replication with one master per slave, many slaves per master
*Full-text [[indexing]] and searching using MyISAM engine
*Embedded database library
*Full [[Unicode]] support
*[[ACID]] compliance using InnoDB engine
*Shared-nothing clustering through [[MySQL Cluster]]
It does not include the following features:
*[[Stored procedure]]s
*[[Database trigger|Trigger]]s
*[[Cursor (databases)|Cursor]]s
*[[View_(database)|View]]s
*Multi-master replication
===Future releases===
MySQL 5.0, which is currently in a late beta release, contains support for the following features:
*[[Stored procedure]]s
*[[View (database)|Views]]
*Cursors
*True VARCHAR support
*Triggers
*INFORMATION_SCHEMA
*Strict mode
*Better optimizer
*X/Open XA distributed transaction processing (DTP) support with two phase commit
MySQL 5.1 will most likely contain support for:
*[[partition_(database)|Partitioning]]
*Online [[backup]] for all storage engines
*[[Foreign key]] support for all storage engines
*Fail-safe replication
*Column-level constraints
===Distinguishing features===
The following features are implemented by MySQL but not by some other [[RDBMS]]es:
*Multiple storage engines ([[MyISAM]], [[InnoDB]], [[BDB]], memory/heap, cluster in 4.x), letting you choose the one which is most effective for each table in the application.
*Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.
===Source Code Specifics===
MySQL is written in a mixture of [[C]] and [[C Plus Plus|C++]]. The SQL parser is [[Lex programming tool | lex]]/[[yacc]]. A document describing some of the internal structures of the code and the coding guidelines is available from the MySQL web site.
==Support==
Via MySQL Network MySQL AB offers support itself, including 24/7 30 minute response time, with the support team having direct access to the developers as necessary to handle problems. In addition it hosts forums and mailing lists and employees and other users are often available in several IRC channels providing assistance.
==Licensing==
Both the MySQL server software itself and the client libraries are distributed under a dual-licensing format. Users may choose the [[GNU]] [[General Public License]] [http://www.mysql.com/products/licensing/opensource-license.html], or they may choose a commercial license.
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]]. [http://packages.debian.org/testing/libs/libmysqlclient10]
==Pronunciation==
"MySQL" is officially pronounced as "My Ess Que Ell" {{IPA|[maɪ ɛs kjuː ɛl]}}, not "My sequel" {{IPA|[maɪ siːkwəl]}} [http://dev.mysql.com/doc/mysql/en/What-is.html#IDX25]. However, the company doesn't mind if others use either the "My sequel" form or other local variations if they are preferred by the speaker.
The "My" portion of the name comes from the name of Monty's child, spelt "My" but pronounced in the local language as "Me".
The "SQL" portion uses the fully spelled-out pronunciation of the acronym, S-Q-L, not the "sequel" pronunciation, which conflicts with the earlier IBM database of that name.[http://www.faqs.org/docs/ppbook/c1164.htm]
The Swedish (MySQL AB is a Swedish company) word "Myskväll" (cozy evening, or even My's evening, "Mys kväll") is pronounced in a similar way but this might be a coincidence. Nevertheless this pronouncation is quite usual in Sweden.
==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 [[Christopher J. Date|Chris Date]] and [[Fabian Pascal]], to criticize MySQL as falling short of being an RDBMS.
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|ACID properties]]" for relational databases, which allow the DBMS to ensure that client applications cannot interfere with one another or insert inconsistent values. [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 allows storing a date with a day beyond the last day of a month with less than 31 days, and arithmetic operations are vulnerable to either integer overflow or floating point truncation ([http://sql-info.de/mysql/gotchas.html]). These values are treated according to the SQL standards in MySQL version 5 through the use of special [http://dev.mysql.com/doc/mysql/en/server-sql-mode.html SQL Modes].
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. [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. [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. Regardless of whether they were right or not, these claims are omitted in more recent versions of the manual. MySQL today allows some support for previously-dismissed features of relational integrity checking and transactions.
When the beta version of MySQL 5.0 was released in [[March 2005]], David Axmark, a co-founder of MySQL, said that "People have been criticising MySQL since we started for not having stored procedures, triggers and views," and "We're fixing 10 years of criticism in one release." [http://news.zdnet.co.uk/software/applications/0,39020384,39192964,00.htm]
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. Another, perhaps simpler, explanation for MySQL's popularity is that it is often included as a default component in low-end commercial web hosting plans, so that for application developers (mostly using PHP and Perl) MySQL is the only DBMS choice unless they want to operate their own web hosts.
Some users have also criticized MySQL AB's position on the licensing of the software. A few open source projects, such as [[Asterisk PBX]], have reduced support for MySQL because of licensing difficulties. Further, there was some controversy generated regarding the distribution of GPL'd MySQL library files with other open source applications (the biggest controversy arising with PHP, which has a license incompatible with the GPL). This was later resolved when MySQL made an exception for inclusion in open source projects.
In September 2005, MySQL AB and the highly controversial company [[SCO_Group|SCO]] joined forces for "joint certification, marketing, sales, training and business development work for a version of the database for SCO's new OpenServer 6 version of Unix". Various MySQL employees gave what appeared to be the company's position, that it was committed to serving end users of the database, regardless of their operating system choice, that the company would leave it to the courts to resolve the SCO licensing controversy and that other common open source databases have also been ported to and support OpenServer users.
==Trivia==
*The dolphin symbol in the MySQL [[logo]] was given the [[Swati language|Swazi]] name ''Sakila'' in [[October 2002]] after a naming contest. [http://www.mysql.com/news-and-events/news/article_116.html]
*MySQL was first released internally on May 23rd, 1995
==Prominent users==
*[[Sabre (computer system)|Sabre]], and its travel reservation system [[Travelocity]]
*[[LiveJournal]]
*[[Slashdot]]
*2005 MySQL Application of the Year winners:
**[[CNET|CNET Networks]]
**[[Friendster]], more than 85 million dynamic page views per day, able to support more than 1.5 billion MySQL queries per day
**[[Wikipedia]], more than 200 million queries and 1.2 million updates per day with peak loads of 11,000 queries per second
==See also==
*[[List of relational database management systems]]
*[[Comparison of relational database management systems]]
*[[MySQL Cluster]]
*[[ODBC]]
==External links==
*[http://www.mysql.com MySQL Website]
*Documentation:
**[http://dev.mysql.com/doc/mysql/en/index.html MySQL Manual] English and in other languages: [http://dev.mysql.com/doc/mysql/de/index.html MySQL-Referenzhandbuch], [http://dev.mysql.com/doc/mysql/fr/index.html MySQL Reference Manual] (fr), [http://dev.mysql.com/doc/mysql/ja/index.html MySQL リファレンスマニュアル], [http://dev.mysql.com/doc/mysql/pt/index.html Manual de Referência do MySQL] (pt), [http://dev.mysql.com/doc/mysql/ru/index.html Справочное руководство по MySQL]
**[http://dev.mysql.com/doc/mysql/en/roadmap.html MySQL Roadmap]
**[http://hashmysql.org/index.php?title=Main_Page #mysql channel] documentation wiki
**[http://sql-info.de/mysql/gotchas.html MySQL Gotchas] description of many features in MySQL, which work as advertised, but not as those used to other databases may expect
*Third party tools
**[http://www.phpMyAdmin.net phpMyAdmin] administration tool
**[http://jeremy.zawodny.com/mysql/mytop/ mytop] monitoring tool for unix-like operating systems
**[http://www.fabforce.net/dbdesigner4 fabFORCE.net DBDesigner 4]
**[http://www.pi-net.dyndns.org/anonymous/kits/#mysql MySQL for OpenVMS]
**[http://www.ems-hitech.com/mymanager MySQL Manager]
**[http://www.phpMyBackupPro.net phpMyBackupPro] database backup tool
*Press
**[http://www.databasejournal.com/features/mysql/article.php/2210771 2003 Database Journal roadmap] of MySQL's expected feature development
**[http://www.databasejournal.com/features/mysql/ Database Journal articles on MySQL]
*Guides
**[http://magooswisewords.com/MagoosBook/MySQL/mysql_01.htm Magoo's MySQL Quickstart Guide]
[[ca:MySQL]] [[cs:MySQL]] [[da:MySQL]] [[de:MySQL]] [[es:MySQL]] [[eo:MySQL]] [[fi:MySQL]] [[fr:MySQL]]
[[he:MySQL]]
[[hu:MySQL]]
[[it:MySQL]]
[[ja:MySQL]]
[[ko:MySQL]] [[ku:MySQL]]
[[lt:MySQL]]
[[nl:MySQL]] [[no:MySQL]]
[[pl:MySQL]] [[pt:MySQL]]
[[ru:MySQL]]
[[sk:MySQL]] [[sv:MySQL]]
[[tr:MySQL]]
[[uk:MySQL]]
[[th:MySQL]]
[[vi:MySQL]]
[[zh:MySQL]]
[[Category:Database management systems]] [[Category:Free software]]
|