Zum Inhalt springen

DB Vgl


kingele

Empfohlene Beiträge

Hallo zusammen,

ich muss einige Datenbanktypen und -funktionen der gängigen DBMS' vergleichen.

Der Vergleich ist in tabellarischer Form bereits angestellt, aber irgendwie will es mir nicht in den Sinn, wie ich den ganzen Spaß jetzt formuliere.

Hat jemand Erfahrung im "nackten" Faktenvergleich? Soll ich mich evtl. auf 5 Typen und 5 Funktionen beschränken und die beschreiben/listen und den Rest als Tabelle anhängen (darf man sowas?)?

Und hat vielleicht noch jemand ein Typ für eine gute Begründung? Aus dem deutsch Unterricht habe ich gelernt, dass ich jedes Thema einleiten muss, auch wenn es mich noch so wenig interessiert. Allerdings sehe ich nicht den geringsten Grund, warum man Datentypen vergleich sollte. Ein reines "Gibts" oder "gibts nicht" und wieviel Platz der Typ verbraucht, sollte doch irgendwie begründbar sein, oder?

Danke für eure Hilfe.

ciao

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich würde das so machen:

In folgenden Bericht werden die Datenbanken

  • DB1 (Hersteller)
  • DB2 (Hersteller)
  • ...

hinsichtlich ihrer Verschiedenen Funktionen und Einsatzmöglichkeiten verglichen. Besonderer Wert wurde dabei auf nachfolgende Punkte gelegt:

  • Merkmal1
  • Merkmal2
  • ...

Am wenigsten geeignet für unsere Anforderung X hat sich dabei DB Y erwiesen. Sie hat vor allem Mängel in den Punkten abc, cde offenbart, welche auch von den geringeren Lizenzkosten nicht aufgewogen werden konnten. Weiter folgt Datenbank Y, welche ebenfalls Mängel in Punkt abc hat, aber im Bereich gfh überzeugen konnte. Von einem Einsatz wird aber mangels ... abgeraten, da dies ansonsten zu erheblichen Mehrkosten in der anschließenden Entwicklung führen würde. etc etc

Danach beschreibst noch die restlichen und gibst eine Empfehlung ab (wobei das ganze natürlich auch davon abhängt, warum diese Auflistung gemacht werden soll). Auf einem extra Blatt dann noch die tabellarische Auflistung.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für deinen Beitrag!

Also du meinst auch, dass ich mich auf ings. 5 Sachen beschraenken soll?

Problem ist hier halt, dass ich keinen wirklichen Grund für die Auflistung habe. Vielleicht einfach in Sachen handling und oder Sinn der DB.. (dass man bei einer normalen Homepage zB kein Oracle braucht..?!)

adieu

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also du meinst auch, dass ich mich auf ings. 5 Sachen beschraenken soll?

Das hab ich nicht gesagt - ich hab eigentlich nur einen Tipp gegeben wie man tabellarische Ergebnisse in Prosa formulieren könnte.

Vielleicht wär's besser, wenn Du mal die Datenbanken sowie die von Dir untersuchten Punkte postest und natürlich auch etwas Hintergrundinfo dazu (Thema der Abschlussarbeit etc).

Problem ist hier halt, dass ich keinen wirklichen Grund für die Auflistung habe.

Versteh ich nicht ganz. Musst Du die Auflistung nun machen oder nicht?

Dim

Bearbeitet von dr.dimitri
Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso, dass hörte sich so an!

Aufgabe und Ergebnis würde ich ungern posten, weil ich nicht weiß, in wie weit das dann doch evtl ergooglet wird.

Es geht im Allgemeinen um ein Vergleich 3er DBMS', wobei ich keine Vorgabe habe, auf welche Kriterien. Aus einem Gespräch mit dem Prof konnte ich heraushören, dass ich mich auf ein paar Standardtypen und -funktionen beschränken soll, da ich auch nicht unendlich viel Zeit und Schreibplatz habe.

Das wäre auch meine erste Begründung.. von wegen "da ich einen objekten Vergleich anstellen will, nehme ich nur Standardzeug, und lasse blobs,clobs etc weg..

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich würde folgende Punkte untersuchen, da sie m.M. nach sowohl für die Administration als auch für die Entwicklung die wichtigsten Kenndaten abdecken:

  • ACID Fähigkeit
  • Verhalten beim Locking (wird nur ein Datensatz gesperrt, gibt es Lockescalation, werden lesende Prozesse geblockt etc.)
  • Referentielle Integrität
  • ANSI SQL konformität
  • Lizenz(kosten)/Support
  • Backup bei laufendem Betrieb möglich
  • Clusterfähigkeit

Es gäb noch weitere wie z.B. die Fähigkeit Java Klassen zu laden, die Verfügbarkeit von Tiggern oder einer prozeduralen Sprache wie PL/SQL bzw. T-SQL, für welche Sprachen/Spezifikationen gibt es Treiber (ODBC, .NET, JDBC, Perl, PHP, Ruby,...), typische Einsatzgebiete.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey Danke.

Einige von deinen Punkten kann ich auf jeden Fall noch gebrauchen und werde sie integrieren. Aber auch hier gibt es das Problem, dass praktisch schon mit meinem Prof "besprochen" wurden, welche Kriterien berücksichtigt werden sollen.

Ganz simple, Integer-,Stringtypen, Datumsfunktionen etc.. :/

Deine Vorschläge sind aber natürlich sehr interessant!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, ich bin grad fleißig am schreiben und mache auch so meine Fortschritte ;)

Ich komme zu meiner ersten sachlichen Frage:

Wenn ich über den Speicherplatz von z.B mysql smallints lese, wird gesagt, dass sie einen Speicherplatz von 2 Bytes haben. In der Oracle Doku steht, dass für NUMBER 38 digits reserviert sind. Heißt das, dass diese 38d in jedem Fall "verbraucht" werden, oder, dass sich der Platz flexibel an den Wert anpasst und max. 38 Zeichen möglich sind?!

Konkret gefragt: Wie viel Speicherplatz wird verbraucht, wenn ich die Zahl "38,23" speichern will?

Wenn die Antwort : "flexibel" ist, stellt sich mir die Frage, warum u.a. mysql und postgres auf versch. numerische Datentypen setzen.

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heißt das, dass diese 38d in jedem Fall "verbraucht" werden, oder, dass sich der Platz flexibel an den Wert anpasst und max. 38 Zeichen möglich sind?!

Das ist die maximale Länge. NUMBER selbst ist dynamisch. Oracle speichert dort Mantisse und Exponent getrennt voneinander. Aber lange Rede kurzer Sinn, hier der direkte Link zum Conzeps Guid Dort sind dann auch die anderen nummerischen Typen BINARY_FLOAT und BINARY_DOUBLE beschrieben.

Wenn die Antwort : "flexibel" ist, stellt sich mir die Frage, warum u.a. mysql und postgres auf versch. numerische Datentypen setzen.

Sie die Erläuterung zu BINARY_FLOAT und BINARY_DOUBLE allerdings sind die Datentypen numeric und decimal in PostgresSql ebenfalls variabel.

Wie viel Speicherplatz wird verbraucht, wenn ich die Zahl "38,23" speichern will?

Mal schauen:

create table t (col1 number,col2 number(4,2));

insert into t values(38.23,38.23);

select * from t

union 

select vsize(col1),vsize(col2) from t;

1 rows selected


COL1                   COL2                   

---------------------- ---------------------- 

3                      3                      

38,23                  38,23  

Antwort: 3 Byte

Dim

Bearbeitet von dr.dimitri
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja das einzige Argument für mysql ist die Tatsache, dass es von vielen Hostern standardmäßig angeboten wird (wenn auch häufig in einer Uraltversion die nicht mal Subqueries kann) und viele PHP Projekte auf mysql laufen (gilt aber aber auch für pgsql). Das ist aber auch schon alles.

Ansonsten ist pgsql mysql praktisch in allen wichtigen Belangen überlegen.

Von einem Oracle-mysql vergleich wollen wir besser gar nicht sprechen, vor allem da mysql auf Oracle angewiesen ist um überhaupt eine transaktionsfähige Engine (InnoDB wurde von Oracle gekauft) anbieten zu können :rolleyes:.

Eigentlich kann man von mysql momentan nur eins: Abraten. Da bin ich übrigends nicht der einzige.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

und Oracle wegen der Lizenzkosten

Auch kein Argument. Oracle XE ist kostenlos (auch für kommerzielle Projekte). Eine Oracle Standard Edition One kostet Liste ca. 11Tsd Euro pro CPU bzw. wenn es nur eine begrenzte Anzahl User sind dann kann man auch pro User 225 Euro ausgeben (auf der Kiste kann man dann natürlich beliebig viele Instancen anlegen).

Rechnet man jetzt für einen durchschnittlichen Entwickler Personalkosten von 4000 Euro im Monat, dann kann man sich an den einer Hand Fingern ausrechnen, wieviel % der gesamten Projektkosten für die Oracle Installation drauf gehen.

Im übrigen sind alle Preise Verhandlungssache. Wir bekommen aktuell ca. 80% Rabatt auf unsere Oracle Installationen (ok sind auch ein paar ;) )

Wenn du Support für pgsql und mysql haben möchtest musst Du übrigends auch bezahlen.

und dem vergleichsweise hohe benötigten Knowhow nieder machen.

Ebenso kein Argument. Jeder Depp kann heute Oracle installieren (und wenn man sich die Fragen auf forums.oracle.com so ansieht, dann ist das auch der Fall) aber für die Administration und die Entwicklung braucht man natürlich Know How. Gilt aber auch für mysql und pgsql. Das Recovery einer 2 TB großen pgsql Datenbank zum Zeitpunkt xy macht man eben nicht mal einfach so. Ebenso schüttelt man keine multiuserfähige, performante 24/7 Webanwendung aus dem Ärmel.

Vom Funktionsumfang ist Oracle der klare Sieger, gefolgt von pgsql und wer leicht masochistisch veranlagt ist kann natürlich auch mit mysql entwickeln.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

arg du bist gemein ;)

okay, dann werd ich mich nochmal über meine Arbeit setzen und gucken, ob ich gut für Oracle argumentieren kann, um auch mein Prof zu überzeugen..

vielen Dank!

aber mal ne Frage am Rande, ist XE einsatzbereit? hab gehört, dass es noch erhebliche Mängel gibt, und man es durch die vielen Lizenzeinschränkungen kaum benutzen kann.

Ciao

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab gehört, dass es noch erhebliche Mängel gibt, und man es durch die vielen Lizenzeinschränkungen kaum benutzen kann.

Keine Ahnung wo du das gehört hast, aber als kaum benutzbar würd ich das nicht beschreiben.

Hier die wichtigsten Einschränkungen:

- Kein Support

- Es wird nur eine CPU (bzw. Kern) benutzt falls mehrere vorhanden sind

- Maximal 4GB an Benutzerdaten

- Es wird maximal 1GB Ram verwendet

Das ist doch etwas mehr als "kaum benutzbar". Die meisten Hoster bieten der mysql Installation nur einen Bruchteil dieser Ressourcen.

Die Codebasis der XE und der normalem Oracle ist identisch - es ist keine Eigenständige Datenbank wie z.B. die Oracle Lite Version (ist was komplett anderes als die XE), das ist/war was zugekauftes unter neuem Label mit z.T. großen Unterschieden zur richtigen Oracle Datenbank.

Wer Webanwendungen entwickelt, wird sich übrigends auch für die in der XE integrierten Application Express interessieren (kann natürlich auch für die grossen Oracles installiert werden). Auch ein Punkt, den weder pgsql noch mysql bietet.

Dim

Bearbeitet von dr.dimitri
Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, dein Argument, dass die meisten Hoster nicht mal das an Mysql Reqs bieten ist natürlich nicht zu toppen ;)

aber seien wir mal ganz objektiv und lassen beiseite, dass du scheinbar sehr an Oracle hängst (nicht böse gemeint!) und auch sonst Ahnung hast.

Du bist in deinem Freundeskreis der einzige, der ein bisschen Ahnung von HTML/CSS/PHP hat und ihr wollt nen Clan aufmachen. Also erklärst du dich bereit, dich um den Webauftritt zu kümmern. Du brauchst dann natürlich auch ne ordentlich DB. Suchst du also so lange einen Hoster, bist du Oracle oder Postgres gefunden hast, oder würdest du das erstbeste Mysql-Angebot "annehmen"?

Versteh mich nicht falsch, deine Argumente sind schon sehr überzeugend und ich fange langsam an, Oracle zu mögen, aber ich will einfach verstehen, warum so viele dann immer noch auf mysql setzen, vorallem auch im kommerziellen Bereich, wo man eh mind. einen Server im Rechenzentrum zu stehen hat.

Außerdem brauch ich auch noch ein paar Pluspunkte für OpenSource ;)

ciao

Link zu diesem Kommentar
Auf anderen Seiten teilen

dass du scheinbar sehr an Oracle hängst

Man beißt doch auch nicht die Hand die einen füttert ;)

Suchst du also so lange einen Hoster, bist du Oracle oder Postgres gefunden hast, oder würdest du das erstbeste Mysql-Angebot "annehmen"?

Also das "Erstbeste" würd ich auf keinen Fall nehmen. Oracle scheidet definitiv aus, da ein Oraclehosting meistens deutlich teuerer ist. Ich würde zu 1&1, evanzo wem auch immer gehen und schauen welche Angebote dort mit pgsql und PHP5 vorhanden sind. Mit der Lupe muss man die nämlich auch nicht suchen.

Außerdem brauch ich auch noch ein paar Pluspunkte für OpenSource

Ich hab nichts gegen OpenSource bzw. Du meinst wohl eher die GPL nur was gegen mysql. :D

Dir ist auch die duale Lizenz von mysql bekannt? Sobald Du nämlich Anwendungen entwickelst, die Du nicht ebenfalls unter die GPL stellst, musst Du eine Lizenz kaufen.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab nichts gegen OpenSource bzw. Du meinst wohl eher die GPL nur was gegen mysql. :D

Dir ist auch die duale Lizenz von mysql bekannt? Sobald Du nämlich Anwendungen entwickelst, die Du nicht ebenfalls unter die GPL stellst, musst Du eine Lizenz kaufen.

Jap, kenne ich. Aber gibt es denn nicht einen einzigen Punkt, in dem mysql/postgresql oracle schlägt? ;)

Aber ich glaube, dass das jetzt auch ausufert. Wenn du das Fragequiz gerne weiterspielen willst, ich bin dabei ;)

ciao

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber gibt es denn nicht einen einzigen Punkt, in dem mysql/postgresql oracle schlägt?

Was mir spontan einfallen würde, wäre die embedded Version von mysql, die sich dann ähnlich wie sqlite in ein Programm einbinden läßt. Außerdem haben pgsql und mysql einen geringeren (möglichen) Ressourcenverbrauch. Eine mysql oder pgsql mit 10 MB RAM zu fahren sollte kein großes Problem sein (wie das ganze dann läuft ist wieder was anderes). Unter 80 MB sollte man bei Oracle eigentlich nicht anfangen.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo und ein Frohes Fest!

Was mir spontan einfallen würde, wäre die embedded Version von mysql, die sich dann ähnlich wie sqlite in ein Programm einbinden läßt. Außerdem haben pgsql und mysql einen geringeren (möglichen) Ressourcenverbrauch. Eine mysql oder pgsql mit 10 MB RAM zu fahren sollte kein großes Problem sein (wie das ganze dann läuft ist wieder was anderes). Unter 80 MB sollte man bei Oracle eigentlich nicht anfangen.

gut, das bringt mich nur bedingt weiter. passt absolut null in mein Thema ;)

aber trotzdem danke!

wenn ich nochmal nerven darf: warum bietet Oracle nativ keine Randomfunktion an und welche Vorteile hat dbms_random gegenüber den beiden mysql/postgres Pendants?

Erholsame Tage wünsch ich dir trotzdem ;)

ciao

Bearbeitet von kingele
Link zu diesem Kommentar
Auf anderen Seiten teilen

warum bietet Oracle nativ keine Randomfunktion an

Tut es doch, dbms_random ist im Hintergrund genauso "nativ" wie eine normale SQL Funktion und kann auch genauso verwendet werden. Viele Packages sind auch nicht in PL/SQL geschrieben sondern in C.

DBMS_RANDOM bietet zum einen mehr an Funktionalität als eine normale RAND Funktion, zum anderen kann man damit sowohl in PL/SQL als auch in SQL arbeiten - man hat also einheitlich ein Package für alles und nicht diverse SQL Funktionen und zusätzlich noch ein Package.

Erholsame Tage wünsch ich dir trotzdem

Danke dir auch. Würd mich direkt mal interessieren, wie Deine Arbeit dann so aussieht.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...