Andreas H: mySQL etwa nur für Homepageunterstützung geeignet?

Hallo zusammen!

Bei uns am Lehrstuhl planen wir evtl. ne Datenbank einzuführen. Momentan befinden sich alle Überlegungen quasi noch in der absoluten Vorphase. :)

Um meine spätere Frage vorweg zu nehmen: Welche Datenbank ist für unsere Zwecke geeignet?

Die Überlegungen bei uns am Lehrstuhl gehen dahin, in die geplante DB alles mögliche wie z.B. Daten über die Mitarbeiter, Vorlesungen, Studenten, Publikationen, etc. aufzunehmen und nicht *nur* die eigene Homepage betreffende Dinge.

Ursprünglich wollte ich mySQL zum Einsatz bringen, aber meine Recherchen ergaben, daß diese DB noch auf längere Zeit wohl keine Fremdschlüssel unterstützen wird (erst ab v4.1 oder so). Gerade aber für ein solides konzeptuelles DB-Schema meine ich, sind Fremdschlüssel unverzichtbar.
Zudem habe ich bei meinen Recherchen den Eindruck gewonnen, daß mySQL v.a. i.V.m. Internet zum Einsatz kommt und man dabei oft gar nicht so sehr auf ein - sagen wir mal - durchdachtes und nachhaltiges Datenschema (Stichwörter Redundanz, Anomalien, etc.) achtet, was mySQL ja auch nicht wg. fehlender Fremdschlüssel-Unterstützung und verschachtelter Select-Abfragen ermöglichen würde.

Daher zurück zu meiner Anfangsfrage: Liege ich richtig, wenn ich behaupte, daß mySQL für unsere Zwecke eher ungeeignet ist und welche DB wäre dann zu empfehlen? Es bleibt zu erwähnen, daß wir nachwievor auch unsere Internetseite z.T. mit Hilfe der DB pflegen wollen (dafür wäre mySQL ja toll), aber eben auch andere nicht WWW-verwandte Dinge mit ihr anstellen möchten (mySQL als Hindernis?!?!).

Ich bedanke mich für Antworten und wünsche noch ne angenehme Zeit allseits!!

Grüßle,
Andreas

  1. Zudem habe ich bei meinen Recherchen den Eindruck gewonnen, daß mySQL v.a. i.V.m. Internet zum Einsatz kommt und man dabei oft gar nicht so sehr auf ein - sagen wir mal - durchdachtes und nachhaltiges Datenschema (Stichwörter Redundanz, Anomalien, etc.) achtet, was mySQL ja auch nicht wg. fehlender Fremdschlüssel-Unterstützung und verschachtelter Select-Abfragen ermöglichen würde.

    Eine Datenbankempfehlung kann ich Dir nicht geben, aber daß MySQL eine Homepagedatenbank sein soll, ist wohl eine eklatante Fehleinschätzung :)
    Den Apache würdest Du doch sicher auch nicht als Spielzeug bezeichnen, nur weil er im Netz weit verbreitet ist. Und auch einen Dienst wie Audiogalaxy, der (wie man zumindest unter http://www.kuro5hin.org/story/2002/6/21/171321/675 lesen kann) auf Apache/PHP/MySQL basierte und "80-90 million page loads a day" hatte, ist doch ein klein wenig etwas anderes, als eine popelige Homepage ;)

    Der Grund für die weite MySQL-Verbreitung ist einfach nur, daß diese Datenbank kostenlos ist.

    Gruß,
      soenk.e

  2. Hallo Andreas,

    wenn ich mir so unsere Lehrstühle anschaue, dann würden sich die Daten doch eher gering halten. Es ist daher fragwürdig, ob die Investition in Datenbanken wie Oracle oder MSSQL wirklich lohnen, oder ob es nicht ein kostenloses Mysql auch tut.

    Wie soll die Datenverwaltung denn innerhalb des Lehrstuhl erfolgen? Schätzungsweise ja auch irgendwie auf HTTP-Basis, womit wir dem Argument, dass mysql für Homepage da ist wieder näher kommen.
    Verschachtelte Selects sind (zumindest teilweise) schon möglich, nur setzen sich die meisten Anwender von mysql nicht so sehr damit auseinander und umgehen diese Schwierigkeiten lieber irgendwie.
    Auch kann ich nicht ganz nachvollziehen, warum unter mysql nicht auch ein durchdachtes System mit Berücksichtigung von Redundanz möglich sein soll. Meiner Meinung nach machen sich hier nur auch wieder viele der (oft Hobby-)Anwender nicht genug Gedanken.

    Grüße aus Würzburg
    Julian

  3. Hallo Andreas,

    Ursprünglich wollte ich mySQL zum Einsatz bringen, aber meine Recherchen ergaben, daß diese DB noch auf längere Zeit wohl keine Fremdschlüssel unterstützen wird (erst ab v4.1 oder so). Gerade aber für ein solides konzeptuelles DB-Schema meine ich, sind Fremdschlüssel unverzichtbar.

    Jein - für eine vernünftige Datenbankapplikation ist unverzichtbar, daß man die referentielle Integrität sicherstellt. Fremdschlüssel sind da sehr praktisch, aber insofern nicht unverzichtbar, als man das ganze auch in php (oder einer sonstigen Sprache) emulieren kann. Das heißt nicht, daß man bei z.B. bei jedem delete auch die entsprechenden Detaildatensätze von verknüpften Tabellen löscht, das geht zwar theoretisch auch, aber praktisch funktioniert das eher weniger, weil man immer alle queries im code überprüfen muß, wenn man das Datenbankschema ein bißchen ändert.
    Sinnvollerweise sollte man besser eine "Zwischenlayer" als Funktionsbibliotek oder Klasse einziehen, den man für Datenbankzugriffe statt der normalen Funktionen benützt, und der eine "Triggerfunktion" emuliert, indem man das Datenbankschema inklusive Triggern in php definiert, und der Funktion dann eben das Verhalten bei Fremdschlüsseln beibringt. Das macht beim ersten Mal etwas Mühe, aber wenn Du die Funktionen geschrieben hast, mußt Du Dir dafür über die ref. Integrität keine Gedanken mehr machen.

    Ansonsten kannst Du ja auch PostgreSQL(http://www.postgresql.org) verwenden, das beherrscht z.B. Fremdschlüssel, Views und Subselects.

    Trotzdem würde ich nicht sagen, daß MySQL "ungeeignet" ist, so ein bißchen Mitarbeiterverwaltung usw. ist nun wirklich nicht so kompliziert, daß man das mit MySQL nicht sauber hinbekommen könnte.

    Viele Grüße
    Stephan

  4. Hallo Andreas,

    ich würde Dir empfehlen, DIr mal Informix anzusehen. Das ist die älteste auf Linux laufende kommerzielle Datenbanklösung. Es gibrt auch ein PHP-Interface für Informix.

    Informix hat alles, was eine Datenbank braucht:
    referenzielle Integrität,
    Trigger,
    Stored Procedures
    Transaction Tracking System
    Möglichkeit zur verteilten Datenbank
    verschiedene SQL DDL und DML Schnittstellen
    ODBC
    Läuft auf vielen Plattformen (am billigsten eben auf Linux)

    tbc...

    Außerdem hat Informix viele eigene Tools auch für das Internet.

    Und soweit ich weiß, gibt es für Hochschulen eine kostenlose Campusversion.

    Für lommerzielle Zwecke kosten diese Datenbank und ihre Tools außerdem weniger als ein Zehntel einer M$-Lösung.

    Wir werden von IBM in Sachen Informix noch so einiges hören. Es ist also auch vom Ausbildungsgedanken her nicht falsch, sich damit zu beschäftigen - denke ich.

    Liebe Grüße

    Tom

  5. Hallo an alles poster! :)

    Vielen lieben Dank für Eure Antworten. Ich werde sie natürlich berücksichtigen und in die Diskussion bei uns miteinbringen.

    Noch ein schönes Restwochenende und auf das Deutschland bei der WM siege! :))

    Andreas
    aus Augsburg

  6. Ursprünglich wollte ich mySQL zum Einsatz bringen, aber meine
    Recherchen ergaben, daß diese DB noch auf längere Zeit wohl
    keine Fremdschlüssel unterstützen wird (erst ab v4.1 oder so).

    http://www.mysql.com/doc/S/E/SEC446.html