Oracle and Open Source Databases KC Server Development

advertisement

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
Download