Oracle and Open Source Databases KC Server Development Donderdag 7 oktober 2004 KC Server Development – Oracle and Open Source Databases 1 De markt-positie van Oracle Positie op basis van functionaliteit, betrouwbaarheid, schaalbaarheid niet langer onomstreden bij de “enterprises” Kosten steeds meer een struikelblok Functionaliteit is prachtig, maar als je het niet gebruikt is het extra kosten niet waard; bijvoorbeeld RAC J2EE stelt rol Database ter discussie Oracle heeft het imago van een grote, proprietary vendor Oracle is niet hip Open source is serieuze concurrent Dilemma: Onderscheiden maar wel Standaarden volgen KC Server Development – Oracle and Open Source Databases 2 Form 10-K Annual Report Oracle Corporation For Stockholder’s Meeting on October 29th: “We may also face competition in the open source software initiatives, in which companies such as JBoss and MySQL provide software and intellectual property free over the internet.” KC Server Development – Oracle and Open Source Databases 3 Wat doet Oracle aan Kostenreductie Kosten voor klant zitten in: Hardware + Operating System Real Application Clusters Linux Licenties Nieuwe licentie-modellen (Personal Edition, MKB focus, abonnement-model,…) Beheer Meer taken automatiseren (DBA in 10g wordt dba) Overige taken vereenvoudigen Inspanning Ontwikkelaar Productiviteit en Leercurve Productiviteit van de Eindgebruiker/Productiesystemen Performance, Schaalbaarheid, Beschikbaarheid, Beveiliging KC Server Development – Oracle and Open Source Databases 4 Open Source Lage licentiekosten (meestal geen) Van ontwikkelaars voor ontwikkelaars Praktisch, to the point; geen ‘marketing features’ Minder toegankelijk dan commerciële tools Implementeren en/of definiëren standaarden Ondersteund door veel resources op internet en in boeken Sources beschikbaar (vaak) Breed gedragen – niet afhankelijk van de grillen van een bedrijf Maar soms ook hele kleine clubjes ontwikkelaars KC Server Development – Oracle and Open Source Databases 5 Open Source (2) Vaak van zeer hoge kwaliteit Door al die ogen die meekijken en de directe zichtbaarheid van de ontwikkelaars Weinig (of juist heel veel?) invloed op ontwikkelproces Soms financieel ondersteund bijvoorbeeld Oracle en IBM: Eclipse Geen officiële support Maar via Internet Discussie Forums erg veel ondersteuning; soms ook ondersteuning van vendors Soms moeilijk kiezen (CMS) KC Server Development – Oracle and Open Source Databases 6 Selectie criteria bij de keuze van een database Functionaliteit Performance Schaalbaarheid Robuustheid Security Beheer Kosten Complexiteit Productiviteit bij ontwikkelen Ondersteuning standaarden Linux, UNIX, Windows, etc. Positie in de markt Betrouwbaarheid “leverancier” Historie binnen de eigen organisatie (‘legacy’) KC Server Development – Oracle and Open Source Databases Prijs/Licentievoorwaarden Footprint & Systeemeisen Ondersteuning platformen 7 Geavanceerde Functionaliteit al wel beschikbaar in MySQL RowLevel Locking (InnoDB tables) Text search Spatial data (vanaf 4.1) Replication (single master, multi-slave) Clustering – andere licentie-condities Embedded Database library (vergelijk Oracle Lite) KC Server Development – Oracle and Open Source Databases 8 Functionaliteit (nog) niet beschikbaar in de meest recente MySQL Productie release Views (4.1) Triggers (5.0) Stored Procedures (5.0) Declarative Constraints Foreign Key constraints (wel in InnoDB) Check Constraints Automatic defaults – to prevent errors! Nested Sub-queries (5.0) Transactions (wel in InnoDB) Replication with multi-master setup Unicode support (4.1) KC Server Development – Oracle and Open Source Databases 9 Functionaliteit (nog) niet beschikbaar in de meest recente MySQL Productie release Cursors Connect By syntax for hierarchical queries MINUS, INTERSECT, and FULL OUTER JOIN. Autonomous Transations DELETE and REPLACE options to the UPDATE statement a DATE/DATETIME type that handles time zone information properly, to make dealing with dates in different time zones easier. Automatic output from mysql to a Web browser. Fix so that when columns are referenced in an UPDATE clause, they contain the old values from before the update started. Online backup with very low performance penalty. KC Server Development – Oracle and Open Source Databases 10 Meer Geavanceerde Functionaliteit in Oracle Databases Alles wat op PL/SQL gebaseerd is Maar ja, als je geen transacties kent… Analytische Functions External Tables Index-types Rollen VPD/FGAC, FGA Partitioning Advanced Queuing Materialized Views en Query Rewrite OLAP en DataMining Support KC Server Development – Oracle and Open Source Databases 11 Benaderen van MySQL MySQL heeft als primaire API een C-API Vergelijkbaar met de Oracle OCI (Oracle Call Interface) MySQL heeft JDBC 3.0 drivers En kan dus vanuit ieder Java programma als database worden benaderd Oracle BC4J functioneert tegen MySQL Andere drivers: C++, ODBC, PHP, Perl, Python, TCL, Eiffel Database Link Vanuit MySQL: volgens mij niet mogelijk Vanuit Oracle: met Heterogenous Services Client tools Run-time tools als Oracle Forms en Reports werken niet tegen MySQL Development Tools als TOAD en PL/SQL Developer werken niet op MySQL – maar er zijn wel alternatieven Er zijn (data)migratie-tools in beide richtingen Van Oracle naar MySQL Van MySQL naar Oracle KC Server Development – Oracle and Open Source Databases 12 Wanneer zou je MySQL kunnen overwegen? Database is alleen een query engine Data wordt geladen vanuit bijvoorbeeld een OLTP database en hoeft alleen bevraagd te worden Zie benchmark Database is alternatief voor flat-file structuur – zeer eenvoudige transacties Text-files lezen, sorteren, filteren, persistent maken Voorbewerking van vuile data voorafgaand aan load in de ‘echte’ database Web front-end database Eventueel gevoed door en terugmeldend aan een back-end database Licentie-kosten voor Oracle zijn domweg te hoog En de applicatie eisen zijn te overzien AMIS projecten die MySQL hadden kunnen overwegen: Dyslexpert Europeesche Van Dijk Studieboeken KC Server Development – Oracle and Open Source Databases 13 Wat is er tegen MySQL? Functionaliteit blijft achter Toekomst is in handen van een niet waanzinnig betrouwbare onderneming Licentiebeleid is wat zwalkend Ontwikkeling van product gaat niet heel snel Als je de applicatie gaat verkopen/distribueren moet dat onder de GNU GPL license Of je moet de Professional License voor MySQL gebruiken Stabiliteit lijkt minder dan andere databases Maar is daarmee misschien nog helemaal niet te klein in veel omstandigheden Beheer-faciliteiten – zeker voor complexe, grootschalige systemen – lijken nog beperkt Er is beduidend minder kennis en ervaring in de markt (en bij AMIS) met MySQL dan met Oracle Maar dat zou een tijdelijk probleem kunnen zijn KC Server Development – Oracle and Open Source Databases 14 Discussie KC Server Development – Oracle and Open Source Databases 15