Datenbanken: welche, wann, warum und wie

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Mirulan
Beiträge: 136
Registriert: 18.02.2005 19:20:08
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Datenbanken: welche, wann, warum und wie

Beitrag von Mirulan » 28.12.2014 05:38:06

Hallo Leute,

Klein Mirulan hat mal eine Grundsatzfrage, da sie sich zwar im Netz nach
einem schönen Datenbankbuch umgesehen hat, aber nix sich finden lassen
wollte. Meist vergriffen und nicht wieder neu aufgelegt.

Ich habe eine Idee für eine Datenbankanwendung und würde mich da gerne
auch mal reinwühlen wollen. Die Doku, die ich dazu gefunden habe ist dürftig und
mein erstes Problem ist schon mal mariaDB oder PostGreSQL?
Wann ist welche sinnvoller, oder passt eine "LIste" :?: in beide Engines?

Ich habe irgendwo eine kleine Einführung in mySQL gefunden, mir bleiben da
aber noch Fragen offen. Kann mir jemand ein schönes Skript, Buch, Dokument
empfehlen, mkit dem ich mich da einlesen kann, vorallem, wenn ich mehrere Listen
möglichst intellgent verknüpfen und auswerten will? An ein paar Euros soll's nicht scheitern,
wenn' s den Preis Wert ist, IYHO.

Wie Plane ich meine Liste am sinnvollsten, gibt es bevorzugte Listenplätze in einer Zeile?
usw. usf. , oder ist das alles egal? Wie kriege ich eine Liste in eine Liste rein, vorallem, wenn
ich pro Zeile unterschiedlich lange "Unterlisten" habe? Fragen über Fragen.

Großes Dankeschön schon mal im voraus

Rutscht gut

Mirulan

schwedenmann
Beiträge: 5648
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Datenbanken: welche, wann, warum und wie

Beitrag von schwedenmann » 28.12.2014 09:20:58

Hallo

Ein gutes Buch zu Datenbnaken finde ich
http://www.amazon.de/gp/product/3826697 ... KQNY3X2EHS

Geisler Datenbanken, Grundlagen und Design.

Ansonsten, neben Postgresql, MySql reichen vllt. f+r deine Zwecke sqlite oder Firebird.



mfg
schwedenmann

DeletedUserReAsG

Re: Datenbanken: welche, wann, warum und wie

Beitrag von DeletedUserReAsG » 28.12.2014 09:26:45

Wenn es um Sachen, wie eine Liste geht, bieten beide Lösungen in etwa die gleiche Funktionalität. Die wirklichen Unterschiede fangen erst weit jenseits von Listen an. Wobei mich die Erwähnung von „Listen“ und „Datenbanken“ fragen lässt, ob du tatsächlich ein ausgewachsenes DBMS benötigst, oder ob nicht Debiansqlite3 die bessere Wahl wäre. Das ist auch ziemlich flexibel, was die Länge der einzelnen Felder angeht.

ctwx
Beiträge: 328
Registriert: 04.04.2010 23:06:55
Lizenz eigener Beiträge: MIT Lizenz

Re: Datenbanken: welche, wann, warum und wie

Beitrag von ctwx » 28.12.2014 11:04:35

niemand hat geschrieben:„Datenbanken“ fragen lässt, ob du tatsächlich ein ausgewachsenes DBMS benötigst, oder ob nicht Debiansqlite3 die bessere Wahl wäre. Das ist auch ziemlich flexibel, was die Länge der einzelnen Felder angeht.
Das halte ich für nicht gut. Bei richtigen RDMS bist du angewiesen die Typen von vorherein richtig zu machen. Ich würde ganz klar zu MySQL/MariaDB, PostgreSQL oder gar Oracle raten.

Zu Datenbanken gehört auch noch weitaus mehr, als SQL zu können, sondern auch zuvor die Datenbank vernünftig zu modellieren, entsprechende Normalisierungen und so weiter vorzunehmen.

Leider kenne ich kein Buch, dass das alles abdeckt. Ein guter Anfang könnte aber sein, "Fundamentals of Database Systems" von Ramez Elmasri, bzw. die deutsche Übersetzung "Grundlagen von Datenbanksystemen".

Benutzeravatar
Huck Fin
Beiträge: 1210
Registriert: 10.03.2008 17:10:30

Re: Datenbanken: welche, wann, warum und wie

Beitrag von Huck Fin » 28.12.2014 11:54:48

Also ich hatte angefangen mit Microsoft Access.
Da lernt man schnell, was relationale Datenbanken sind und wie die funktionieren bzw das Datenbank Prinzip generell...
Kleinere Datenbanken kann man schnell realisieren und hat ein Ergebniss.

Ich würde mich auch gerne einarbeiten in MySQL, aber momentan mangelt es mir an Zeit.
Bei MS Access kann man schöne Ein / Ausgabe Masken basteln.
Gibt es für MySQL auch ein Tool um Masken zu generieren ?
Eventuell in PHP / HTML ?

Benutzeravatar
hikaru
Moderator
Beiträge: 13958
Registriert: 09.04.2008 12:48:59

Re: Datenbanken: welche, wann, warum und wie

Beitrag von hikaru » 28.12.2014 12:40:39

Ich habe seinerzeit im Studium im Wesentlichen auf Basis von "Datenbanken Konzepte und Sprachen" von Heuer&Saake (ISBN: 3826606191) die Grundlagen gelernt. Eine aktuellere Ausgabe wäre vermutlich anzuraten.

Von Sqlite würde ich auch die Finger lassen. Es ist zwar einfach zu implementieren, läuft aber meiner Erfahrung nach eher instabil und die Typisierung lässt doch an einigen Stellen arg zu wünschen übrig. Ich denke wenn Sqlite deine Ansprüche erfüllen kann brauchst du entweder keine DB oder du musst dich so sehr verbiegen dass eine "ausgewachsene" DB vermutlich die bessere Wahl wäre.

Access war mir zu sehr "Excel". Da verstecken die Eingabemasken zu sehr den eigentlichen Charakter dessen was eine DB ausmacht. Zwischen den ganzen schicken automatisch erzeugten Tabellen geht ein sauberes und durchdachtes DB-Design zu sehr unter.
Die Präsentation der Daten gehört meiner Meinung nach nicht mehr zum Thema DB, so wie ein GUI nicht Teil des eigentlichen CLI-Tools sein sollte.

Benutzeravatar
TRex
Moderator
Beiträge: 8367
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Datenbanken: welche, wann, warum und wie

Beitrag von TRex » 28.12.2014 13:40:50

Nach den Fragen des TE steht der noch ganz am Anfang, und ob er sich da voll reingraben will, steht noch aus. Wenns um die Basics geht, find ich sqlite auch sehr passend. Dann kann man sich mit "richtigen" DMBS befassen und auch Konzepte wie Transaktionen, Normalisierung und so Sachen lernen.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

ctwx
Beiträge: 328
Registriert: 04.04.2010 23:06:55
Lizenz eigener Beiträge: MIT Lizenz

Re: Datenbanken: welche, wann, warum und wie

Beitrag von ctwx » 28.12.2014 14:08:29

Das sehe ich anders. sqlite hat keinerlei Datentypüberprüfung und ist meiner Meinung nach keine gute Wahl für den Anfang.

Code: Alles auswählen

CREATE TABLE test1(
    name TEXT
);

INSERT INTO test1 VALUES("foo");
INSERT INTO test1 VALUES(42);
Überhaupt kein Problem. Und es kommt noch besser:

Code: Alles auswählen

CREATE TABLE test2(
    num INTEGER
);

INSERT INTO test1 VALUES(42);
INSERT INTO test1 VALUES("bar");
Funktioniert ebenfalls. Ganz ehrlich? Ich glaube das ist ein schlechter Anfang. Es wäre besser, gleich mit einer richtigen Datenbank anzufangen und erweiterte Konzepte erst einmal weg zu lassen. Wenn man es erst einmal richtig gelernt hat, ist es denke ich einfacher, auf so Sachen wie Datentypen zu verzichten als von Anfang an.

Benutzeravatar
MarkusF
Beiträge: 361
Registriert: 04.06.2007 12:45:22

Re: Datenbanken: welche, wann, warum und wie

Beitrag von MarkusF » 28.12.2014 14:31:10

Huck Fin hat geschrieben: Bei MS Access kann man schöne Ein / Ausgabe Masken basteln.
Gibt es für MySQL auch ein Tool um Masken zu generieren ?
Wenn du willst, auch Access.http://dev.mysql.com/doc/connector-odbc ... ables.html
Ein/Ausgabemasken haben mit dem Thema DB im engeren Sinne eigentlich nichts zu tun, hikaru hatte ds schon erwähnt. MS selbst sieht die JET-Enginge eigentlich nur als 'Einstiegsdroge' für kleinere Projekte, dann zum hochskalieren den MS-SQL-Server, analog zu Outlook/Exchange, aber da geht MySQL/Maria-DB ntl. ebenso.

zwiebelchen
Beiträge: 138
Registriert: 31.03.2011 12:51:42

Re: Datenbanken: welche, wann, warum und wie

Beitrag von zwiebelchen » 29.12.2014 00:45:14

Ich würde auch lieber direkt richtig einsteigen, also PostgreSQL oder MySQL.

Für beide gibt es Frontends bzw. man kann sie auch mit LibreOffice Base anbinden, dann hast du was Richtung Access.

Wichtig ist aber auch, die Konzepte einer Datenbank zu verstehen, wie z.B. die Normalformen etc., um keine Fehler im Design zu machen...
Debian 7 Wheezy mit Gnome 3 auf Xeon 1230V2, Asus P8H77, 16 GB DDR3, 120 GB Samsung 830 SSD, Gigabyte GTX 660

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: Datenbanken: welche, wann, warum und wie

Beitrag von pferdefreund » 29.12.2014 09:35:43

Ich würde aus eigener Erfahrung zu Postgresql raten. Ist standardkonform, hat eine High-Level-Programmierschnittstelle zu C analog Oracle oder DB/2 usw (exec sql...) und auch richtig schön performant. Außerdem ist die nicht von irgendeiner Firma abhängig und absolut frei. Auch eine eingebaute Programmiersprache für Funktionen ist vorhanden und Transaktionen sowieso.

Benutzeravatar
Mirulan
Beiträge: 136
Registriert: 18.02.2005 19:20:08
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: Datenbanken: welche, wann, warum und wie

Beitrag von Mirulan » 30.12.2014 06:35:37

Hallo Leute

Erst mal großes Dankeschön für Euer Engagement.

Ich habe momentan noch keine Ahnung von Datenbanken noch SQL & Co.

Das heist ich fange von Null an. Und das ist auch gut so, gell.

Ich habe das Wort Liste nicht umsonst in Anführungszeichen gesetzt und
mit Fragezeichen versehen. Da ich aber gerne möglichst "vernünftig" an
Dinge herangehe sehe ich es am sinnvollsten mir schon ein DBMS anzusehen,
da ich überlege für mich ein EMS (ErnährungsManagementSystem) zu schreiben.
Unnötig, ich weiß, eine gute Hausfrau hat das alles so im Griff, sagt man mir
ständig und überall. Ich will eigentlich nur lernen, sowohl zum Thema Ernährung
als auch Computer.

Ich will also Nährwerttabelle, Einkaufen, Rezepte und Lagerhaltung, als
Tabellen darstellen und mir für die Rezepte anhand der Mengen
Kalorien/ Nährwerte und vorallem den Preis / Portion automatisiert "errechnen".
Vorallem will ich systematisch auch über die Zeit mir die Preise vergleichen, wo
ich wie an was am besten komme, bzw. was kostet es mich wenn ich zu Laden A
gehe, was bei Laden B, was ich aus der nachzukaufenden Bedarfslist meiner
Rezepte automatisch ermittleln will. Ich finde das spannend, jedem Tierchen sein
plessierchen, gell. Das ist intellektuell, denke ich, keine große Herausforderung,
aber Arbeit.

Gourmet ist nett, reicht mir aber nicht! Ich finde es teilweise auch nervig bei der Eingabe.
Ich ahne, daß eine großes DBMS sinnvoll wäre.
Ich denke ihr könnt jetzt besser abschätzen, was ich brauche. Vorallem die Zutatenliste
ist eine "Unter"-Liste mit unterschiedlicher Länge im einzelnen Rezept.
Vorallem will ich auch gleiche Produkte aus unterschiedlich Läden, bzw von
unterschiedlichen Herstellern verknüpfen, wie weiß ich noch nicht, kann auch sein, daß ich
hier (noch) falsche Vorstellungen habe.

Was ist eine Datenbank Normalisieren, wie modelliere ich "richtig", usw. usf.

Mit Postgresql habe ich auch schon geliebäugelt, rein subjektiv und is halt
bei Debian (und den anderen) standardmäßig dabei.

Ich habe keine Scheu vor dem Texteditor, aber gibt's vielleicht vielleicht eine
schöne Oberfläche dafür? Die Suche in aptitude war nicht wirklich zielführend.

Großes Dankeschön nochmals im voraus und rutscht gut, ohne hinzufallen.

Mirulan

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: Datenbanken: welche, wann, warum und wie

Beitrag von pferdefreund » 30.12.2014 09:25:13

pgadmin sollte da was bieten. Hat auch nen Query-Editor eingebaut usw...

ctwx
Beiträge: 328
Registriert: 04.04.2010 23:06:55
Lizenz eigener Beiträge: MIT Lizenz

Re: Datenbanken: welche, wann, warum und wie

Beitrag von ctwx » 30.12.2014 09:47:15

Das ist doch immerhin ein Ziel! :)

Modellieren habe ich mittels ER- und EER-Diagrammen gelernt. Das ist letzlich aber nur eine Visualisierung. Das muss dann noch entsprechend als SQL exportiert werden. Der Sinn hier ist es Dopplungen zu vermeiden, später unnötige JOINS (also das Zusammenführen von zwei verschiedenen Tabellen) vermeiden und sowas.
Normalisierung ist wichtig um Redundanz zu vermeiden. So sagt die 1NF (1. Normalform, siehe [1]), dass jedes Attribut atomar sein muss, also als Beispiel sollte es keine Spalte geben, die "name" heißt, in der sowol Vor- und Nachname sind. Die 2NF (eben falls [1]) besagt, dass die 1NF erfüllt sein mus und kein nicht-schlüssel Attribut von einem Teil des Primärschlüssels abhängt. Die 3NF ist erfüllt wenn die 2NF erfüllt ist und kein nicht-schlüssel Attribut transitiv von einem (Teil) des Primärschlüssels abhängt.

Hier wie du siehst kommen die ersten Fachwörter, weshalb ich hier dringend Fachliteratur empfehle, wenn du es wirklich richtig lernen willst. Es macht einen ziemlichen Unterschied, ob man sich mal eben selbst bei bringt durch herumprobieren und kleinere Internettutorials oder eben durch gute Fachliteratur -- da ich beides durch habe, kann ich das vermutlich bestätigen.

Ich empfehle nach wie vor Grundlagen von Datenbanksystemen[2], da es einfach alle diese Konzepte abdeckt. Hier ein Teil des Inhalts:
Datenmodellierung mit dem ER-Modell
EER-Modell und Objektmodellierung
Datenmodelle und Datenbanksprachen:
Das relationale Modell
SQL
Entwurfsfragen:
Funktionale Abhängigkeiten und Normalisierung
Beste Grüße
ctwx

[1] https://de.wikipedia.org/wiki/Normalisi ... _.281NF.29
[2] http://www.buch.de/shop/home/suchartike ... d=21552567

Benutzeravatar
Mirulan
Beiträge: 136
Registriert: 18.02.2005 19:20:08
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: Datenbanken: welche, wann, warum und wie

Beitrag von Mirulan » 30.12.2014 10:06:19

Hallo Leute,

erstmal Danke an alle

Werde mir jetzt die Buchvorschläge mal anschauen

Rutscht gut. Und großes Dankeschön an dieses
wunderbare Forum und seine Betreiber und Mitglieder.

Liebe Grüße
Mirulan

Antworten