150 likes | 270 Views
Oracle and Open Source Databases KC Server Development Donderdag 7 oktober 2004. De markt-positie van Oracle. Positie op basis van functionaliteit, betrouwbaarheid, schaalbaarheid niet langer onomstreden bij de “enterprises” Kosten steeds meer een struikelblok
E N D
Oracle and Open Source DatabasesKC Server DevelopmentDonderdag 7 oktober 2004
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
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.”
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
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
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)
Functionaliteit Performance Schaalbaarheid Robuustheid Security Beheer Kosten Complexiteit Productiviteit bij ontwikkelen Ondersteuning standaarden Prijs/Licentie-voorwaarden Footprint & Systeem-eisen Ondersteuning platformen Linux, UNIX, Windows, etc. Positie in de markt Betrouwbaarheid “leverancier” Historie binnen de eigen organisatie (‘legacy’) Selectie criteria bij de keuze van een database Voldoende is goed genoeg
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)
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)
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.
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
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
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
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