Was sind die Hauptunterschiede zwischen Datenbankadministratoren und Softwareingenieuren? Inwieweit sollte ein Software Engineer die Details der zugrunde liegenden Datenbank kennen? Wo liegt die Grenze zwischen diesen beiden Berufen?
quelle
Was sind die Hauptunterschiede zwischen Datenbankadministratoren und Softwareingenieuren? Inwieweit sollte ein Software Engineer die Details der zugrunde liegenden Datenbank kennen? Wo liegt die Grenze zwischen diesen beiden Berufen?
Mathematik. Ich bin versucht, es dabei zu belassen, aber ich weiß ohne Erklärung, dass ich geflammt werde, also geht es los.
Nach meiner Erfahrung unterscheidet sich DBA-Mathematik von Ingenieurmathematik.
DBA-Mathematik beinhaltet die Auswirkungen auf die Kapazität einer Bereitstellung. Zum Beispiel untersuchen wir als Datenbankadministratoren die Bereitstellung einer Tabelle anhand des Speicherplatzes pro Million Zeilen auf der Festplatte, der optimalen Abfragen, der Indizierungsstrategien usw.
Die Mathematik des Ingenieurs wird auf der Big-O-Notation basieren. Ein Ingenieur wird sich mit Algorithmen befassen und wie man sie optimiert. Die nachgelagerten Auswirkungen (Kapazitätsplanung) sind ein zweitrangiges Anliegen für die Effizienz der Anwendung. Wenn jedoch im Voraus Kapazitätsanforderungen gestellt werden, wird diese ordnungsgemäß geprüft.
Einige von uns spielen beide Rollen und haben daher eine Nische als dba-Entwickler für Unternehmensanwendungen herausgearbeitet.
Übrigens: Bitte nehmen Sie dies mit einem Körnchen Salz, weil es nur meine Meinung ist.
Es hängt ganz von der Aufteilung der Arbeit in einer Organisation ab und davon, wofür jede Person verantwortlich ist. Aber sie sind nur Etiketten; Jemand mit dem Titel "Softwareentwickler" in einem Unternehmen ist möglicherweise "Programmierer / Analyst" in einem anderen Unternehmen oder sogar "Systemprogrammierer" usw. Es gibt keine harte Grenze zwischen beiden.
Wo ich arbeite, ist der "Software-Ingenieur" in der Regel die Person, die sowohl das Design als auch die eigentliche Implementierung übernimmt, und wir haben niemanden mit dem Titel "DBA". Die Wartungsaufgaben, bei denen es sich normalerweise um einen DBA handelt, fallen auf die allgemeinen "Systemadministratoren" zurück, basierend auf den Anweisungen, die der "Softwareentwickler" ihnen gegeben hat.
In einem meiner Meinung nach besten Szenario würden Sie das Design in mehrere Teile aufteilen:
Und dann die Wartungsaufgaben:
Für die meisten von ihnen müssen sie nicht von einem DBA durchgeführt werden. Dies kann von einem Softwareentwickler oder bei einigen Wartungsaufgaben von einem Systemadministrator durchgeführt werden.
Wenn Sie Mitarbeiter in beiden Rollen haben, können Sie diese über das Design und die Optimierung beraten und zusammenarbeiten lassen (was sie in der Konstruktion als "Design-Build" bezeichnen würden), oder wenn es sich um einen Eiljob handelt, können Sie die verschiedenen Aufgaben zwischen den beiden zuweisen zwei. Möglicherweise sind auch andere Personen beteiligt: ein "Softwarearchitekt", ein "Datenarchitekt", ein Archivar, verschiedene Programmierer, Systemadministratoren, Netzwerkadministratoren, Sicherheitsbehörden usw.
"Software Engineers" oder "DBA" sind Titel. Anstatt zu fragen: Wen werde ich "SE" oder "DBA"? Fragen Sie einfach: "Soll ich C # oder Java oder Oracle oder SQL Server lernen, um meine Ziele zu erreichen". Haben Sie jemals gesehen "wir brauchen nur DBA"? Nein :) (außer einigen seltsamen Fällen von HR). Sie können sehen: "Wir wollten XX, der diese Technologien kennt und kennt."