DBMS'en (DataBase ManagementSystemen) slaan gegevens georganiseerd en flexibel op. Relationele DBMS'en zijn vandaag de meest gebruikte. Op zijn beurt is SQL de meest gebruikte query-taal voor RDBMS'en. Hier geven we een overzicht van de RDBMS-producten van de belangrijkste spelers in deze markt: Oracle, IBM en Microsoft. Verder behandelen we nog MySQL.
De instructies die nodig zijn voor het ondervragen en beheren van een relationele DBMS (RDBMS) zijn erg talrijk. Allemaal kennen ze een indeling en structuur die erg doen denken aan een programmeer- of scripttaal. Het lag dan ook voor de hand om een standaard query-taal te ontwikkelen. Dat is SQL (Structured Query Language) geworden, oorspronkelijk door IBM voor eigen gebruik ontwikkeld. Sinds 1987 is SQL een ISO-standaard. Sinds 1996 bestaat er zelfcertificatie. De laatst echt vrij beschikbare standaard is SQL:1999. Van alle moderne RDBMS'en wordt verwacht dat ze tenminste die versie van SQL ondersteunen. Zelfcertificatie zorgde er helaas voor dat er verschillen geslopen zijn in de SQL-implementaties van fabrikanten. Zo hebben alle in dit artikel besproken RDMBS'en producentspecifieke constructies en syntaxis.
In dit artikel overlopen we de mogelijkheden van de populairste DBMS'en: Microsoft SQL Server 2008, Oracle Database 11g, IBM Informix en DB2 en MySQL Enterprise / Community.
IBM Informix en DB2
IBM heeft meerdere DBMS'en of ‘data servers'. Informix is vooral geschikt voor online transactieverwerking (OLTP: Online Transaction Processing). DB2 is de meer algemeen inzetbare dataserver van IBM. DB2 en Informix blijven naast elkaar bestaan en worden ook beide verder ontwikkeld. Daarbij worden interessante en bruikbare technieken tussen de beide dataservers naar behoefte uitgewisseld. Hierna behandelen we alleen de meer algemeen inzetbare IBM DB2.
Niet alleen voor mainframes
Volgens IBM bestaan er veel misverstanden over DB2. Zo schijnen heel wat mensen te denken dat dit DBMS een minicomputer of zelfs een mainframe vereist. DB2 bestaat echter ook voor pc's onder Windows, Linux of Unix en zelfs voor pda's. De huidige DB2-versie is 9.5 en kreeg de bijnaam ‘Viper'.
IBM gebruikt voor DB2 een ‘shared nothing'-model. Iedere dataserver heeft dus zijn eigen opslagruimte en beheert die ook zelf. Servers kunnen uiteraard wel toegang krijgen tot elkaars data, maar dat moet keurig in onderaanneming uitgevoerd worden door de eigenaarserver. IBM maakt zich sterk dat deze oplossing veel schaalbaarder is dan de ‘shared everything'-samenstelling die Oracle gebruikt.
DB2 maakt voor de ‘high availability' gebruik van HADR (High Availability Disaster Recovery), een technologie die afkomstig is van Informix. Volgens IBM werkt HADR zo goed, dat het volwaardig door SAP ondersteund wordt, terwijl dat niet het geval is voor het RAC (Real Application Cluster)-systeem van Oracle.
Het tweeledig aspect van DB2 komt tot uiting in de ondersteuning voor zowel de traditionele relationele SQL als de hiërarchische XML via XQuery. Om de in- en uitvoerprestatie te verbeteren hanteert DB2 verder een transparante compressie. Dit verschilt met MS SQL Server, waar de gebruiker zelf moet opgeven of een variabele gecomprimeerd moet worden of niet.
SAP-slaafje?
Omdat IBM besefte dat DB2 een serieuze achterstand had op vooral Oracle inzake marktpenetratie, heeft het bedrijf gezocht naar een mogelijkheid om DB2 een betere kans te geven en extra in de verf te zetten. Die mogelijkheid diende zich aan via SAP. IBM vroeg gewoon aan SAP om hen te vertellen wat ze goed en niet goed vonden aan DB2. SAP zag dat wel zitten en bezorgde IBM een lijst van mogelijke verbeteringen in DB2. IBM heeft naar eigen zeggen al die wensen keurig geïmplementeerd. Vandaar dat IBM ook graag uitpakt met de vele punten inzake functionaliteit die ‘volledig door SAP ondersteund worden'. Uiteraard laat het bedrijf niet na erop te wijzen dat diezelfde functionaliteit bij Oracle ontbreekt of niet of slechts gedeeltelijk ondersteund wordt door SAP. Feit is dat als je de Windows-versie van SAP installeert via sapinst en je geen andere keuze maakt in de installatiewizard, DB2 geïnstalleerd wordt als standaard DBMS.
Productinfo
Product: DB2 v9.5
Producent: IBM, http://www.ibm.com/
Leverancier: IBM Nederland, http://www.ibm.nl/
Microsoft SQL Server 2008
Microsoft begon zijn intrede in de DBMS-markt op een manier die het bedrijf al vaak toepaste: het maakte SQL Server op basis van de DBMS van Sybase. De huidige versie van SQL Server is natuurlijk al een heel eind verwijderd van het origineel, maar zo hebt je een idee waar Microsoft de mosterd vandaan haalde.
Als onderliggend besturingssysteem is alleen Windows Server 2008 mogelijk. Je krijgt dus geen flexibiliteit inzake platformkeuze. Daar hangen tevens, zeker in vergelijking met de concurrentie, enorm hoge hardwarevereisten aan vast.
Vier verbeteringen
Omdat we er vanuit gaan dat SQL Server geen onbekende is, beperken we ons hier tot de nieuwigheden in de versie 2008, die in het derde kwartaal van dat jaar werd uitgebracht. Microsoft beroept zich op verbeteringen in vier kerngebieden.
Allereerst zijn er verbeteringen voor bedrijfskritisch gebruik. De nieuwe DBMS is veel schaalbaarder. Je kunt, als de hardware dat ondersteunt, zelfs extra processoren bijsteken terwijl de server blijft draaien. De nieuwe versie presteert volgens Microsoft ook beter en zou veiliger zijn. Met veiliger wordt niet alleen bedoeld inzake malware en hackers, maar ook de veiligheid inzake het afwerken van transacties. Microsoft bouwde compressie in, zodat de wildgroei van databases en hun inhoud wat ingedamd wordt. Ook werd voorzien in een betere auditing. Verder heeft de nieuwe versie een uitgebreider beheerkaderwerk met policies om meerdere databases in één keer mee te beheren en te configureren.
Ten tweede zijn er verbeteringen aan het soort data dat je kunt opslaan. SQL 2008 voegt multimedia- en geografische datasoorten toe. De multimediadatatypes maken koppelingen naar multimediadatastromen op een NAS of SAN mogelijk. De geografische datatypes zijn gekoppeld aan Microsoft Virtual Earth.
Ten derde zijn er verbeteringen voor ontwikkelaars van SQL Server-applicaties. Zij kunnen voortaan SQL-instructies in de door hen gewenste programmeertaal gebruiken alsof het eigen instructies van die programmeertaal zijn. Microsoft creëerde die mogelijkheid via LINQ (.NET Language INtegrated Query).
Ten vierde brengt MS SQL Server 2008 verbeteringen op het vlak van business intelligence. Je kunt nu aan data-ondervraging doen met zogenaamde ‘Business Entities' (zakelijke entiteiten). Zo kun je een entiteit ‘klanten' verwerken zonder de details van tabellen en rijen daarvan te hoeven kennen. Dit moet het eenvoudiger maken om aan datamining te doen.
Beperkingen
De voornaamste beperking van SQL Server 2008 heeft te maken met zijn platformafhankelijkheid. Microsoft ondersteunt alleen maar Windows Server 2008. Alles wat niet mogelijk is met dat platform, is dus ook niet mogelijk met SQL Server 2008. Veel van de verbeteringen in verband met bedrijfskritische processen zijn te danken aan verbeteringen in Windows Server 2008. Ze hebben als dusdanig niets te maken met de SQL Server 2008. Als je expliciet Windows-centrisch werkt en het grootste vertrouwen hebt in Microsoft, is SQL Server 2008 wellicht de meest logische keuze.
Productinfo
Product: SQL Server 2008
Producent: Microsoft, http://www.microsoft.com/
Leverancier: Microsoft Nederland, http://www.microsoft.nl/
Adviesprijs (excl. btw): niet meegedeeld
MySQL Enterprise & MySQL Community
MySQL is de meest gebruikte open source DBMS. Het Zweedse bedrijf MySQL dat de gelijknamige DMBS ontwierp, is overgenomen door het Amerikaanse Sun, dat daarmee een erg populaire database binnenhaalde. De overgrote meerderheid van alle dynamische websites wereldwijd draait immers onder LAMP (Linux, Apache, MySQL en PHP).
Qua code is er geen verschil tussen de Community- en de Enterprise-editie van MySQL. De Community editie is volledig gratis, terwijl je voor de Enterprise editie moet betalen. Voor die versie sluit je een onderhoudscontract af, dat recht geeft op ondersteuning en snellere bugfixes. MySQL zegt dat de Community-editie daarom eigenlijk niet geschikt is voor bedrijfskritische en productieomgevingen. Dat verhindert nochtans niet dat heel wat bedrijfswebsites toch van die Community-editie gebruik maken.
Bij beide edities kun je dezelfde gratis of betaalde beheerinstrumenten gebruiken. Voor de Enterprise-editie kun je van MySQL zelf een centraal beheerprogramma krijgen waarmee je een heel park van MySQL DMBS'en centraal kunt beheren. Dat is het MySQL Enterprise Dashboard en is beslist zijn geld waard. Gratis en voor niets kun je gebruik maken van een aantal GUI-beheertools voor MySQL die voor Windows, Linux en MacOS bestaan. Er zijn natuurlijk ook beheertools die via een webinterface werken, zoals het bekende PhpMyAdmin.
Platformen
Omdat MySQL open source is, werd deze DBMS gecompileerd voor bijna elk platform waarvoor er geïnteresseerde programmeurs bestaan. Dat zijn er ondertussen meer dan twintig. Voor nogal wat organisaties kan het een voordeel zijn een DBMS te gebruiken die op vrijwel alles draait, niet alleen Linux, Windows of MacOS, maar bijvoorbeeld ook OS/2 of NetWare. Vanuit applicaties kun je ook gemakkelijk met MySQL werken. Met het gratis MyODBC kun je elke Windows-applicatie die met ODBC-sturingen werkt, koppelen aan MySQL. MySQL heeft geen eigen ingebouwde scripttaal. Je hebt daarvoor de keuze tussen PHP, Perl en Python en andere, minder populaire scripttalen. Ook hier weer biedt MySQL een flexibiliteit die bij de concurrentie ontbreekt.
Nadelen zijn er ook. Zo zullen moderne functies als partitioning en rijgebaseerde replicatie, die in andere databasesystemen al jaren beschikbaar zijn, pas in de volgende versie (5.1) van MySQL beschikbaar komen.
Qua formaat van alles wat er rond geleverd wordt is dit beslist de kleinste DBMS. Maar hij is ontegensprekelijk betrouwbaar, razendsnel en dus zeker een overweging waard. Is het niet als hoofd-DBMS, dan toch zeker in randtaken.
Productinfo
Product: MySQL Enterprise & MySQL Community Edition
Producent: MySQL AB, S; http://www.mysql.com/
Gratis MySQL-beheertools
Gratis MySQL ODBC-sturing voor Windows
Oracle Database 11g
Oracle is de marktleider inzake DBMS'en. De Oracle Database is gesloten source, maar Oracle stelt het wel ter beschikking op een indrukwekkend aantal platformen: meer dan negentig!
Achterwaartse compatibiliteit is iets waar Oracle sterk de nadruk op legt. Het bedrijf garandeert het zelfs. Oracle ondersteunt oudere versies vier jaar lang. Als je applicaties of scripts geschreven voor Oracle 7 loslaat op een 11g, zullen die werken. Oracle hanteert het principe dat heel het DBMS, ongeacht het gebruikte platform, moet werken met één enkele DBMS-kernel die alle functionaliteit omvat. De clientsoftware kan daardoor erg beperkt en compact blijven. Er bestaat tegenwoordig overigens ook een kleine en in functionaliteit beperkte gratis versie van de Oracle-database.
Oracle heeft vanaf het begin SQL ondersteund. Het bedrijf wil dat zijn DBMS alle standaarden ondersteunt. Inwendig gebruikt Oracle DBMS PL/SQL als werktaal, maar er zit ook een Java VM in. Als je ontwikkelt in Java kun je dus rechtstreeks Java-applets op de DBMS uitvoeren. Vanuit Windows kun je uiteraard via ODBC bij Oracle databases.
Drop-in
Bijna in alle gevallen kan Oracle 11g als drop-invervanging gebruikt worden voor heel wat concurrerende databases. Als een belangrijke applicatie echt een specifieke DBMS vereist en je toch per se Oracle wil draaien, dan kan zelfs dat. Desnoods voorziet Oracle dan een zogenaamde ‘transparant gateway' waarbij ze het vereiste DBMS met de applicatie laten praten, maar deze DBMS dan al zijn data laten uitwisselen met de Oracle DBMS.
Oracle 11g ondersteunt uiteraard ook multimedia en XML, maar gaat daarin net wat verder dan de concurrenten. Zo haalt de DBMS XML uit elkaar en verwerkt die als kolommen. (Als je XML als tekst of binair wil opslaan kan dat natuurlijk ook.) Daardoor kan XML zeer efficiënt opgeslagen worden en wordt er gebruik gemaakt van de volledige verwerkingskracht van de Oracle DBMS. Applicaties of XML-specifieke ondervragingen (zoals XQuery) krijgen wel degelijk XML terug, maar die wordt bij een query weer samengesteld aan de hand van de opgeslagen kolommen. Omdat de database bij ondervragingen niet hoeft te zoeken in inefficiënte tekststrings, resulteert dit in een veel hogere verwerkingssnelheid van XML.
‘Hot’ datablokken
De ruimte ontbreekt ons om de volledige functionaliteit van de Oracle databasekernel te beschrijven. Om echter een idee te geven van hoe ver Oracle gaat in het voorzien van prestatieverhogende functionaliteit, geven we één voorbeeld. Telkens als de Oracle Database data in blokken wegschrijft naar een opslagvolume, houdt hij statistieken bij hoe snel elk blok gelezen en geschreven kan worden. In de achtergrond verschuift hij dan de blokken zodat de meest gevraagde of ‘hot' datablokken op de snelste posities zitten.
Omdat Oracle met vrijwel elk soort opslagsysteem kan werken en dus geen veronderstellingen kan maken over de functionaliteit daarvan, wordt alle benodigde functionaliteit gewoon in de databasekernel ingebouwd. Daarvan is encryptie een voorbeeld. Oracle experimenteert uiteraard wel met bestandssystemen om de allerbeste prestaties uit de database te krijgen. Het bedrijf heeft er zelf een ontwikkeld: OCFS (Oracle Cluster File System), dat tegenwoordig standaard deel uitmaakt van de Linux-kernel.
Het is goed te begrijpen waarom Oracle de marktleider is, al zouden we graag zien dat de schaalbaarheid zou worden verzekerd zonder dat er nauwkeurige partitionering bij de clients voorzien hoeft te worden.
Productinfo
Product: Database 11g
Producent: Oracle, Inc.; USA; http://www.oracle.com/
Leverancier: Oracle Nederland; http://www.oracle.nl/
Conclusie
Een DBMS kiezen is geen sinecure. Behalve de functionaliteit speelt natuurlijk ook het vertrouwen in een producent mee. Dat heeft vaak weer te maken met diens reputatie. Oracle is de marktleider en de rest moet daar tegenop boksen. Microsoft doet dat als enige met een expliciet Windows-specifieke oplossing. IBM lijkt vooral te mikken op de aanzienlijke SAP-markt, maar werkt vlijtig verder om van DB2 de DMBS-marktleider te maken. MySQL komt in vergelijking met de anderen pas kijken. Klein maar fijn heeft echter ook zo zijn charmes.
De Kern
- Een DBMS helpt data georganiseerd te bewaren en gestructureerd weer op te zoeken.
- Er zijn heel veel DMBS'en op de markt en voor bijna alle platformen, maar de marktleiders zijn momenteel Oracle, IBM en Microsoft.
Op het eerste gezicht een interessant artikel. Maar als ik, als SQL Server gebruiker, moet constateren dat er in elk geval op het gebied van SQL Server diverse onjuistheden in het artikel staan, dan vraag ik me af of de rest wel correct is?
Zo staat in de beschrijving van DB2 dat bij SQL Server de gebruiker zelf moet opgeven of een variabele gecomprimeerd moet worden. Onjuist. In SQL Server 2008 kunnen tabellen en indexen gecomprimeerd worden, maar variabelen niet. Dit wordt per tabel of index opgegeven, op het moment dat de tabel of index gemaakt wordt (of achteraf via ALTER TABLE / ALTER INDEX). Zie
http://technet.microsoft.com/en-us/library/cc280449.aspx
In de beschrijving van SQL Server staat dat Windows Server het enige ondersteunde platform is. Ook onjuist. Inderdaad wordt alleen Windows ondersteund, maar veel meer edities: XP, Vista, Server 2003, Server 2008 en Small Business Server 2008. Zie http://msdn.microsoft.com/en-us/library/ms143506.aspx.
Verder is het opmerkelijk dat in de stukken over DB2 en Oracle de XML en XQuery mogelijkheden uitgebreid worden besproken, terwijl dit bij SQL Server niet genoemd wordt. SQL Server heeft al sinds de vorige versie (SQL Server 2005) uitgebreide ondersteuning voor XML en XQuery, en in SQL Server 2008 is dat nog verder uitgebreid.
Toevallig ken ik SQL Server vrij goed. Daardoor vallen mij dus dit soort fouten op. Helaas heeft dat wel tot gevolg dat ik ook bij de rest van het artikel mijn vraagtekens plaats. Als de auteur kennelijk zo weinig research heeft gedaan voor het stuk over SQL Server, hoe kan ik er dan nog op vertrouwen dat de stukken over DB2, MySQL en Oracle wel juist en volledig zijn?
Met vriendelijke groeten,
Hugo Kornelis, SQL Server MVP
Dag Hugo,
Er staat duidelijk bij dat we veronderstellen dat SQL Server genoegzaam bekend is en het dus alleen zullen hebben over de NIEUWIGHEDEN in SQL Server 2008. Vandaar dat uitgebreide besprekingen van de functionaliteit ontbreken. De fout over de compressie van variabelen is tot stand gekomen via de eindredactie. Een zin die dat verduidelijkte is namelijk gesneuveld. Oorspronkelijk ging dat stuk tekst over wat IBM zelf beschouwt als voordelen van DB2. En dat over die compressie was dus een uitspraak van mensen van IBM! Door de eindredigie is dat gesneuveld en daardoor wordt nu dus de verkeerde indruk gewekt.
Vriendelijke groeten,
Johan Zwiekhorst