2010-05-19 5 views
12

Abbiamo avuto un colloquio con i colleghi sulle banche dati ieri perché avremo una formazione DB2 in poche settimane. Mi chiedo, quali sono le differenze tra DB2 e Oracle come due principali soluzioni aziendali? Ci sono dei limiti rispetto all'un l'altro? Ci sono attività più adatte per DB2 o Oracle?Differenze tra DB2 e Oracle

(ho trovato this articolo, ma ho qualche dubbio che copre tutto)

+1

Mi piace questa domanda! Sarebbe bello se potessimo usarlo per costruire un insieme di chiare * differenze tecniche * tra di loro. (Ho sentito che ci sono state differenze nella granularità del blocco, ma è stato tanto tempo fa e potrei averlo confuso.) –

+0

Potrebbe essere meglio fare questa domanda da qualche altra parte (es. OracleOverflow o ServerFault), poiché non è programmazione-correlate. –

+0

L'articolo di Alexander Chigrik a cui si fa riferimento in questa domanda è molto obsoleto, anche quando questa domanda è stata originariamente pubblicata oltre 18 mesi fa. I produttori di DBMS sembrano rilasciare importanti modifiche al proprio software di database ogni 12-18 mesi, quindi confrontare le differenze tra le versioni precedenti non ti darà risultati molto accurati o utili. –

risposta

17

La principale differenza nei miei occhi è che DB2 può dire la differenza tra un NULL e una stringa vuota :-)

+1

E Oracle non può ???? –

+1

No, non può: http://forums.thedailywtf.com/forums/t/1225.aspx – paxdiablo

+1

È una questione di punto di vista. Avere un pezzo di dati vuoto non è diverso da quello che ha un pezzo di dati nullo. Non confonderlo con Char (0), l'ASCII di Null. – borjab

3

Oracle i nomi di tabelle, schemi e colonne sono ancora limitati a 30 caratteri, il che può risultare fastidioso.

+1

DB2 (su AIX) è limitato a 8 caratteri. E il nome utente è limitato a 8 caratteri, anche se il sistema operativo (AIX nel nostro caso) non ha questo limite. –

5

IMMSMW, una differenza estremamente importante tra i due è il modo in cui ottengono l'isolamento della transazione. Oracle utilizza MVCC, DB2 utilizza il blocco tradizionale a due fasi.

Ma questo potrebbe essere cambiato nelle recenti versioni di DB2, ovviamente.

+0

IMMSMW? Se la mia memoria mi serve _wrong_? Penso che DB2 9.7 abbia implementato MVVC, almeno sul lato LUW, non sono sicuro del DB2 "reale" su System z :-) – paxdiablo

+0

Probabilmente non troverete alcuna menzione di MVCC nella documentazione DB2, ma dalla versione 9.7, DB2 per Linux, UNIX e Windows offre l'isolamento attualmente impegnato, che si comporta in modo molto simile a Oracle. http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0053760.html –

2

Da quale punto di vista?

Per gli sviluppatori che rispettano alcuni standard, le differenze non dovrebbero essere notevoli. Per gli amministratori, sì, questa è un'altra storia.

4

Con il rilascio di db2 9.7 l'anno scorso ci sono meno differenze che c'erano tutte DB2 che ha concesso in licenza Postgress plus e questo è in DB2 9.7. Viene utilizzato essenzialmente un set di funzionalità di compatibilità Oracle. Una di queste funzionalità è il controllo della concorrenza. Gli altri principali sono SQL dialect, PL/SQL, pacchetti PL/SQL Pacchetti integrati, client JDBC con estensioni, applicazioni client OCI, script SQL * Plus. Maggiori dettagli qui http://www.ibm.com/developerworks/data/library/techarticle/dm-0907oracleappsondb2/

Devo rivelare che lavoro per IBM ora uno specialista di migrazione.