Als het over relationele databases gaat, is Oracle RDBMS de onbetwiste nummer één en Microsoft SQL Server nummer twee. Maar MySQL staat stevig op de derde plaats. MySQL is bovendien de meest gebruikte databaseserver bij dynamische websites. MySQL, van oorsprong een vrijwilligersproject uit de open source wereld, werd in 2008 overgenomen door Sun. Op zijn beurt is Sun ondertussen eigendom van Oracle. Wat betekent dat voor de toekomst van openbrondatabases in het algemeen en MySQL in het bijzonder?
De overname van Sun door Oracle was groot nieuws, en wel omdat er weer een discrepantie opduikt tussen de VS. en Europa. De overname is wat de Amerikanen betreft immers geen enkel probleem en Oracle kreeg dan ook al vlug de goedkeuring. Neelie Kroes, Europees Commissaris met de portefeuille mededinging, dacht daar anders over. Zij maakte zich meer zorgen over de invloed op de markt van de overname en vroeg dus om bijkomende informatie en garanties. Die heeft ze gekregen en dus gaf ze Oracle het groen licht. De overname is dus een feit en Oracle is al begonnen met enkele herstructureringen en verschuivingen binnen Sun.
Markt
Op basis van de marktverdelingcijfers is er wat te zeggen voor het standpunt van mevrouw Kroes. MySQL is zoals we in de inleiding al vertelden nummer drie op de databasemarkt, achter nummer twee MS SQL Server en nummer één Oracle RDBMS. Een kind ziet dat Oracle na de overname een nog veel groter overwicht krijgt in de RDBMS-markt. De Europese Commissie vreest onder meer dat Oracle MySQL gewoon zou stopzetten. Dat zou een belangrijke concurrent van de markt halen en Oracle een quasi monopolie bezorgen. Hoewel SQL Server op de tweede plaats staat in de RDBMS-markt, is het percentage bedrijven dat van plan is naar SQL Server over te stappen veel minder dan het percentage dat naar Oracle of naar MySQL wil overstappen. Op de vierde plaats vinden we in die markt overigens IBM terug met DB2.
Oracle-baas Larry Ellison heeft vorig jaar al verklaard dat hij vast van plan is om MySQL verder te laten bestaan en ook verder zal ontwikkelen. Volgens Ellison boort MySQL een heel andere databasemarkt aan dan waar Oracle RDBMS zich normaal op richt. Dat is zeker waar voor de openbronversie van MySQL. Die zogenaamde ‘Community Server’-editie vindt gretig aftrek bij bouwers van dynamische websites. MySQL wordt bij websites meestal samen gebruikt met de eveneens open-source producten Apache (webserver) en PHP (scripttaal voor die webserver). De meest voorkomende combinatie is die van Linux, Apache, MySQL en PHP. Die combinatie kort men dan af tot LAMP. Verschillende Linux serverdistributies stellen u daarom bij de installatie wel eens de vraag of u een LAMP-installatie wenst. Daar ja op antwoorden maakt alles in orde voor een webserverinstallatie die geschikt is om dynamische websites te draaien. Van alle open source databases is MySQL ontegensprekelijk de populairste. Wist u dat MySQL letterlijk op elk continent gebruikt wordt, zelfs Antarctica? Zelfs grotere ondernemingen geven vaak de voorkeur aan MySQL. Op de website noemt men Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, en Zappos.com als gebruikers. Ook de meer dan twintig computerplatformen waarop MySQL draait, verklaren die grote popularteit.
InnoDB
Oracle heeft geen product dat deze niche kan vullen, tenzij het zelf een soort compacte gratis SQL-taalversie zou willen maken die samenwerkt met InnoDB, de popu-lairste transactionele opslagmachine voor MySQL. Want om de zaken nog wat ingewikkelder te maken is dat InnoDB nu al eigendom van Oracle. InnoDB werd immers indertijd als openbronsoftware ontwikkeld door Innobase Oy en dat bedrijf werd al in 2005 door Oracle gekocht. De andere populaire transactionele opslagmachine voor MySQL is overigens het oudere MyISAM. Echter het snellere en stabielere InnoDB wordt al enige tijd als standaard meegeleverd in alle binaries die gedistribueerd worden door Sun.
Voor Oracle heeft het zakelijk gezien geen zin om een gratis SQL-versie te ontwikkelen voor InnoDB. Oracle kan perfect MySQL deze niche in beslag laten nemen. Het is overigens niet uitgesloten dat Oracle beslist MySQL een andere naam te geven. MyOracle lijkt me nogal voor de hand te liggen als ze dat zouden willen. Maar er zijn ook Enterprise edities van MySQL. Daar liggen de zaken moeilijker. Die concurreren immers recht-streeks met de RDBMS-producten van Oracle. Maar ook daarover zegt Oracle dat de twee naast elkaar zullen blijven bestaan en verder ontwikkeld worden.
Versies en licenties
MySQL is het meest bekend als de compacte open-source databaseserver die zo populair is in LAMP-installaties. Dat is echter lang niet de enige versie. Voordat het overgenomen werd door Sun, was MySQL A.B. een Zweeds bedrijf dat hun enige product, de databaseserver, had onderverdeeld in een aantal productsuites. De MySQL Community Server is de open-sourcevariant met een GPL-licentie die iedereen vrij mag gebruiken. Daarnaast bestaat er een MySQL Enterprise Server die veel performanter is en die functionaliteit aan boord heeft die over het algemeen pas later uitkomt in de Community Server. Binnen die Enterprise-groep van MySQL-producten bestaat ook nog een Cluster editie en een Data Warehouse editie. MySQL biedt ook beheer- en bewakingstools voor die bedrijfsedities.
Commerciële concurrentie
Oracle is zoals reeds aangehaald de nummer één op de markt en uiteraard de grootste commerciële concurrent voor MySQL. Het is de meest gebruikte databaseserver, de rijkste in functionaliteit, de krachtigste en snelste, de meest schaalbare, noem maar op. Voor een prijs, weliswaar. Oracle is niet zo eenvoudig om te installeren, te configureren, te beheren en te onderhouden. Daarvoor hebben bedrijven normaal een speciaal opgeleide Oracle databasebeheerder in dienst en uiteraard ook enterprise-niveau contracten met bijhorende ondersteuning. De database is beschikbaar voor heel wat verschillende platformen.
Microsoft SQL Server is zoals ook eerder aangehaald nummer twee op de markt, maar met zorgwekkende planningscijfers voor verdere uitrol door bedrijven. Microsoft is niet van nul begonnen maar ging indertijd shoppen bij Sybase. Het is een typisch voorbeeld van de Microsoft ’embrace and extend’-filosofie. Je begint met een product dat de standaarden ondersteunt en dan ga je die standaarden “uitbreiden” met eigen uitvindsels, waarmee je dan ook vendor lock-in bewerkstelligt. Deze databaseserver draait bovendien alleen op Windows Server, wat dus voor elke databaseserver bijkomende besturingssysteemlicenties vereist. Bovenop dit alles komen dan ook nog eens de vele beveiligingslekken en daaruit voortvloeiende bedreigingen. Bovendien moet u voor prestaties verplicht zeer krachtige hardware gebruiken. Dit alles verklaart de terugloop in de markt van de plannen om nog Microsoft SQL Server uit te rollen. Microsoft hoopt dat SQL Server 2010 de verkoopscijfers nieuw leven zal inblazen.
IBM DB2 is ook een echt enterprise-product bedoeld voor de grotere behoeften. En ook met een enterprise-prijs. DB2 heeft wel enkele interessante aspecten en voordelen, zeker nu ook de Informix databasetechnologie aan de ontwikkeling van DB2 bijdraagt. DB2 is beschikbaar voor veel platformen, inclusief een paar legacy-systemen van IBM zelf, zoals OS/2, VM en AS/400-mini’s. Ze staan nummer vier in de markt en daar zien we niet echt veel verbetering in komen.
Embarcadero Interbase SMP is een databasesysteem dat oorspronkelijk van Borland was. Gebruikers waren er over het algemeen dolenthousiast over, omdat het op zeer bescheiden hardware kan draaien maar toch naar grote systemen schaalbaar is, en omdat het zowat zichzelf beheert zonder veel menselijke tussenkomst. Het bestaat voor Windows, Linux en Solaris. Het is geen belangrijke speler op de markt.
Sybase is het neefje van de Microsoft SQL Server. Als naam is het nog erg bekend, al laat het marktaandeel die bekendheid niet echt vermoeden. In vergelijking met SQL Server draait Sybase wel op andere systemen dan Windows. Een oudere versie van Sybase is zelfs gratis voor Linux beschikbaar. En Sybase houdt zich beter aan de SQL-standaarden dan Microsoft.
Pervasive.SQL is de wat eigenaardige naam van een databaseserver die afkomstig is van de mensen die oorspronkelijk Btrieve ontwikkelden. Als u ooit met NetWare gewerkt hebt, zal u de naam Btrieve vast niet onbekend zijn. Pervasive.SQL ondersteunt zowel relationele SQL-toegang als Btrieve. Het eerste omwille van de compatibiliteit en veelzijdigheid, het tweede als u rauwe prestaties wenst. Ook dit systeem heeft een reputatie van nauwelijks beheer te vereisten. Er zijn versies beschikbaar voor NetWare, Unix-achtigen en Windows.
Gratis alternatieven
Op de MySQL Community Server die u gratis kunt gebruiken met een GPL-licentie, komen we zo dadelijk uitgebreider terug. Maar welke andere gratis databaseservers bestaan er nog? We behandelen uiteraard alleen de bekendste.
PostgreSQL is naast de gratis MySQL waarschijnlijk de populairste gratis databaseserver. Het is ook vrije software en gekend voor zowel zijn functionaliteit als zijn prestaties. Since 1995 ondersteunt het rigoureus de gevestigde SQL-standaarden. De huidige versie ondersteunt SQL2003. MySQL ondersteunt SQL1992 met enkele uitbreidingen van SQL1999. Als u dus behoefte heeft aan een sterke en recente SQL-standaardisatie, is PostgreSQL de betere keuze. Net als bij MySQL bestaat PostgreSQL voor een hele verzameling platformen.
Firebird doet uiteraard aan de Mozilla Foundation denken, maar dat is hier niet het geval. Deze databaseserver wordt uitgegeven door de Firebird Foundation en is gebaseerd op de publieke source code van Interbase die negen jaar geleden door Borland vrijgegeven werd. De ontwikkelaars houden Firebird nauwkeurig compatibel met Interbase van Embarcadero. Omdat het open source is, bestaat het uiteraard voor veel meer platforms dan Interbase. Onder meer ook voor Mac OS X.
Uit Australië komt MiniSQL of kortweg mSQL. De bedoeling was een zeer compacte database af te leveren die de meest essentiële onderdelen van de SQL-specificatie zou bevatten. Zo zou de database een minimum aan systeembronnen in beslag nemen. Ondertussen is mSQL over de jaren heen gegroeid en uitgebreid. Momenteel vragen we ons ook hiervan af, welk voordeel het biedt boven MySQL terwijl dat laatste veel breder ondersteund wordt. Kennelijk zijn we niet de enigen, vermits na 2006 niets meer gebeurd lijkt te zijn qua ontwikkeling.
Drop-in vervanging
En last maar zeker niet least hebben we nog MariaDB, een afgeleide van MySQL die een drop-in-replacement moet zijn. Toen Sun MySQL overnam, zijn heel wat van de originele ontwikkelaars van MySQL snel afgedropen, omdat ze het niet eens waren met de aanpak van Sun of om andere redenen. Bij die groep bevond zich ook de originele hoofdontwikkelaar van MySQL, Michael “Monty” Widenius. Die besloot al vlug MySQL gewoon opnieuw te starten, maar vermits de naam nu eigendom was van Sun koos Monty de naam van zijn jongste dochter Maria en werd het dus MariaDB. De ‘My’ in MySQL slaat trouwens ook op Monty’s oudste dochter My en niet op het Engelse woord voor ‘mijn’ zoals de meeste mensen denken. Vermits MariaDB dezelfde bevelen, API’s en zelfs versienummers gebruikt als MySQL, zou het in principe naadloos bruikbaar moeten zijn in omgevingen waar php-scripts MySQL verwachten. Waarom zou u dat overwegen? Als u bijvoorbeeld meer vertrouwen hebt in Monty Widenius en zijn ploeg dan in wat Sun en Oracle van plan zijn met MySQL. Alles wat we hieronder nog schrijven over de MySQL Community Server, geldt dus ook voor MariaDB en alle beheertools werken er ook mee. Vermits de oorspronkelijke hoofdontwikkelaar van MySQL en heel wat van de andere ontwikkelaars nu bij Sun weg zijn en allemaal achter MariaDB staan, zou dat wel eens de nieuwe standaard voor MySQL kunnen worden. De hamvraag is immers wie er nu nog bij Sun aan MySQL ontwikkelt? En wie zal dat bij Oracle gaan doen?
MariaDB geeft ons de keuze. Als wat Sun en Oracle met MySQL doen ons niet aanstaat, kunnen we op minder dan geen tijd overschakelen naar MariaDB zonder dat daarvoor code aangepast moet worden. Dus moet u het belang van MariaDB zeker niet onderschatten. Momenteel gebruikt zowat iedereen nog standaard MySQL, maar als daar geen schot in meer blijkt te zitten, kan dat heel snel veranderen. Dit werpt misschien ook een ander licht op de bezwaren die de Europese Commissie heeft geuit tegen de overname van MySQL. Er is een volwaardig alternatief, dus je kunt je afvragen of het überhaupt iets zou uitmaken mocht Oracle, ondanks gemaakte beloften, op termijn toch de stekker uit MySQL trekken.
MySQL Community Server
De MySQL open source versie of ‘Community Server’ (letterlijk: gemeenschapsserver) is al heel wat jaren in omloop en heeft zich vrijwel onmisbaar gemaakt dankzij zijn partnerschap met Apache en PHP om dynamische websites te kunnen uitbouwen. De databaseserver bleek vooral snel bij het verwerken van grote aantallen gelijktijdige verbindingen. Vroege versies waren slecht in puur transactionele prestaties, maar dat zit er tegenwoordig ook allemaal in. De ontwikkeling van MySQL gebeurt zowel door het grote publiek, dat immers de beschikking heeft over de broncode, als door professionele ontwikkelaars van MySQL. In feite dient die professionele code en bijbehorende functionaliteit eerst voor de gesloten Enterprise-editie van MySQL. Pas als die zich bewezen heeft, verfijnd is en de investeringen terugverdiend heeft, komt de code in de open source variant terecht. Het gevolg is – en dat kunnen we MySQL/Sun echt niet kwalijk nemen – dat de functionaliteitsontwikkeling van de MySQL Community Server enige jaren kan achterlopen op die van de MySQL Enterprise Server. Maar uiteindelijk komt al die functionaliteit wel in de vrije versie terecht. Als u altijd de nieuwste functionaliteit wenst en onderhoudscontracten wil kunnen afsluiten, hebt u de Enterprise Editie van MySQL nodig. Hebt u voldoende aan wat de Commutity Server nu biedt, dan volstaat die uiteraard.
Doelpubliek
Dan volgt meteen dat MySQL Community Server geschikt is voor iedereen die gebruik wil maken van een snelle en spotgoedkope relationele databaseserver. In sommige gevallen kunt u ook voor deze Community Server ondersteuning krijgen via een 24/7-onderhoudscontract, maar meestal is dat niet eens nodig. De overgrote meerderheid van de open source MySQL’s draait tegenwoordig als databaseserver in een LAMP-configuratie voor het uitbaten van dynamische websites. Maar niets houdt u tegen om zelf ook MySQL Community Server te gebruiken als uw eigen databaseserver. Zeker voor het MKB is dit eigenlijk zeer geschikt en alleszins flink wat goedkoper en performanter dan SQL Server. Er bestaat een MySQL ODBC-sturing voor Windows, zodat u de database makkelijk kunt doen samenwerken met vrijwel elk soort applicatie. U zou zelfs Microsoft Excel kunnen gebruiken om de database aan te maken in de vorm van een spreadsheet en die dan te bewaren via ODBC in een MySQL database en tabellen.
Ophef
Oorspronkelijk werd alle ontwikkeling van MySQL gedaan voor de open source versie. Nieuwe functionaliteit kon zo uitgebreid getest worden en pas als alle foutjes en bugs eruit gehaald waren, kwam een geperfectioneerde versie van de code in de Enterprise editie terecht. Sun heeft voor het eerst vorig jaar een bres in die redenering geslagen. Ze kondigden online-back-upfunctionaliteit aan die voorbehouden zou blijven voor de Enterprise-editie en dus niet beschikbaar zou komen in de Community-editie. Dat veroorzaakte heel wat ophef. Voor de ontwikkelaar (Sun) heeft zoiets trouwens ook als nadeel, dat dergelijke nieuwe functionaliteit dan noodzakelijkerwijze puur binnenshuis ontwikkeld en getest moet worden. Uit ervaring weten we, dat zulks lang zo goed niet is als de publieke ontwikkeling en test. En het grote probleem voor een ontwikkelaar is, dat zoiets een parallelle ontwikkeling tot stand kan doen komen waardoor de ontwikkelaar naderhand weer extra kosten moet maken om de publieke broncode in zijn gesloten Enterprise-editie te integreren.
Functionaliteit
Momenteel is de courante versie van MySQL 5.1 en versie 5.4 is reeds downloadbaar als bèta. Qua werksnelheid blijkt deze bèta al zo’n 40% sneller, zoals ook aangetoond wordt met publiek beschikbare benchmarks. Inzake functionaliteit hoort MySQL beslist niet bij de kleine jongens. Vanaf versie 5 zit alles erin wat u mag verwachten van een enterprise-niveau databaseserver. Dat geldt ook voor de Community-editie.
Uiteraard kent MySQL de gebruikelijke bevelen voor datadefinitie, datamanipulatie, hulp en status, transacties en vergrendeling, beheer, replicatie, plus voorbereide en samengestelde bevelen. Opslagen procedures en functies zijn mogelijk en ook views (opgeslagen query’s met virtuele tabellen). MySQL kent spatiale extensies: het aanmaken, opslaan en analyseren van geografische kenmerken. Die spatiale extensies zijn overigens gebaseerd op de OpenGIS specificatie, maar MySQL wijkt op sommige punten daarvan af. Dat is echter wel allemaal goed gedocumenteerd. MySQL ondersteunt verder nog precisiewiskundige functies voor het betere rekenwerk. Dezelfde resultaten worden gegarandeerd ongeacht het onderliggende platform van de databaseserver.
Voor versie 5.4 zijn heel wat verbeteringen beloofd. Zoals eerder aangehaald zou er een snelheidswinst van maar liefst 40% zijn, wordt het opslagsysteem in maximumcapaciteit meer dan verdubbeld (zo kan opgewaardeerd worden naar 16 x86-cpu’s of 64 CMT-cpu’s); is de uitvoering van subquery’s geoptimaliseerd, maken nieuwe query-algoritmes meer gebruik van het werkgeheugen in plaats van tijdelijke schijfruimte zodat vooral meerweg-joins sneller verlopen; verbeterde opgeslagen procedures met een robuuster foutenbeheer; verbeterde voorbereide bevelen met uitvoerparametrisering; een verbeterd informatieschema met meer metadatatoegang tot parameters en datareturntypes en dat zorgt dan voor meer informatie via toegang met connectoren zoals ODBC en JDBC; en verbeterde diagnose en troubleshooting (maar voorlopig alleen op het Solaris platform). De schaalbaarheid werd fors verbeterd. Voor deze 5.4-versie lag de nadruk dan ook op prestaties en schaalbaarheid. Er werden trouwens belangrijke bijdragen geleverd door Google voor deze versie 5.4. Sun belooft ten slotte snellere incorporatie van patches en een snellere uitgavecyclus.
Conclusie
MySQL is een waar manusje van alles. Met de gratis en open source Community Server kunt u dynamische websites bouwen en kmo-databasebehoeften invullen. De eveneens gratis beheertools helpen u daarbij. Zelfs al mocht Oracle tegen alle beloftes in uiteindelijk de stekker trekken uit MySQL, blijft de toekomst verzekerd dankzij de drop-in vervanging MariaDB. Die wordt immers ontwikkeld onder leiding van een groot deel van de oorspronkelijke ploeg die MySQL tot een van de grote succesverhalen uit de wereld van vrije software maakte.
Johan Zwiekhorst/Jozef Schildermans
Oracle is niet zo eenvoudig om te installeren, te configureren, te beheren en te onderhouden.
Fout opgemerkt of meer nieuws? Meld het hier