Forum: PC-Programmierung Datenbank, Organisation, Bilder, Dateien


von Martin (Gast)


Lesenswert?

Hallo Leute,
ich habe keine professionelle Erfahrung mit Datenbanken, privat habe ich 
mal was mit Mysql getestet.

Jetzt muss ich für unsere kleine Firma eine Datenbank aufbauen für: 
Infos, Bilder, Pdf, Produktionsdateien,...

Gibt es ein gutes Buch, Link, Pdf,.. die sowas erklären?
Wie man am besten die Datenbank organisiert?

Vielen Dank

von Tipp-Geber (Gast)


Lesenswert?

Chef: "Müller, sofort in mein Büro!"

Chef: "Warum haben sie das Dokument von vor drei Jahren gelöscht?"

Müller: "Hab ich nicht, liegt im Verzeichnis -superlangerpfad-"

Chef: "Müller, Sie sind verantwortlich für den Saustall!"

Müller: "Wir haben keine Datenbank!"

Chef: "Sie sind entlassen!"

Chef: "Martin, sofort in mein Büro!"

Chef: "Wir müssen Digitalisieren und in's Web 4.0!"

Chef: "Wir brauchen eine Datenbank. Sie haben bis Montag Zeit!"

von Martin (Gast)


Lesenswert?

Chef: "Tipp-Geber, warum das Gelaber?, haben Sie nichts anders zu tun?, 
Sie sind entlassen!"

von Günter M. (redround)


Lesenswert?

ganz ehrlich: das wird nix! Ich entwickle seit mehr als 20 Jahren 
Datenbankanwendungen im Hauptberuf, deshalb maße ich mir an, das zu 
beurteilen. Für einen Anfänger viel zu komplex. Mit der reinen Datenbank 
ist es ja nicht getan ... Du brauchst auch noch ein Frontend, um das 
Zeugs rein und wieder raus zu bekommen / wieder zu finden. Und gerade 
Inhalt wie Du ihn aufzählst, wird meist überhaupt nicht in der Datenbank 
selbst gespeichert sondern auf einem Netzwerklaufwerk und nur der Pfad 
dorthin kommt in die Datenbank.

Such lieber nach einem fertigen Content- oder Wissens-Management-System 
(gibt's auch reihenweise auch als durchaus brauchbare Freeware), das für 
Eure Bedürfnisse passt.

Falls Du es aber dennoch versuchen möchtest, google mal nach Begriffen 
wie:
- Normalisierung (z. B. 
https://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29)
- Objekt-Orientierte-Analyse
- ER Modelle

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Martin schrieb:
> Jetzt muss ich für unsere kleine Firma eine Datenbank aufbauen für:
> Infos, Bilder, Pdf, Produktionsdateien,...

Nun ja, die Dateien sind ja schon da (in Verzeichnissen) aber nach was 
willst du suchen ?

Bild ob hübsche Mädels drauf sind, PDF ob sie an einen bestimmten Kunden 
versendet wurden, Produktionsdaten ob sie auch wirklich eingehalten 
wurden ?

Das Problem ist die Suche, für die die Schlüsselwerte vorhanden sein 
müssen, nicht die Daten.

Man kann nach Codd'scher Vorstellung die megabyte-Dateien als BLOB in 
die Datenbank stopfen, oder bloss den Pfadnamen und die Datei in einem 
externen Verzeichnis speichern.

Überlege also für welche Suche du speichern willst.

von Martin (Gast)


Lesenswert?

Günter M. schrieb:
> Falls Du es aber dennoch versuchen möchtest, google mal nach Begriffen
> wie:
> - Normalisierung (z. B.
> https://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29)
> - Objekt-Orientierte-Analyse
> - ER Modelle

> Codd'scher Vorstellung

Das fängt schon mal gut an! also macht ihr euch keine Sorgen ob ich das 
kann oder nicht, war auch nicht die Frage.
Aber wenn Ihr Tips /Bücher /Links habt, dann bin sehr dankbar.

Nachher muss nur eine Tabelle (html) mit Produktnamen dargestellt 
werden, und wenn man auf einem Bildnamen, pdf,.. klickt muss das Bild 
oder pdf geöffnet werden, sonst nichts.
Ich werde es eh nachher so einfach wie möglich halten.

von Günter M. (redround)


Lesenswert?

ich denke immer noch, dass Du mit einer fertigen Lösung besser fährst. 
Installier ein Wiki und gut is.

Ansonsten folge der Anleitung aus dem von mir verlinken Wikipedia 
Beitrag und bring Deine Daten in die sog. 3. Normalform ... das reicht.

Dann musst Du Dich entscheiden, mit welcher Technologie Du das umsetzen 
willst. Da Du mit MySQL schon angefangen hat, bietet sich das als 
Datenbank an. Üblicherweise nimmt man dann PHP als Sprache für das 
Frontend. Dazu brauchst Du also auch noch einen Webserver (üblicherweise 
einen Apache) und PHP5. Tutorials für PHP gibt es zuhauf im Netz. 
Alternativ kannst Du das Frontend z. B. auch in einer .NET Sprache oder 
per VBA basteln.

Aber unterschätz das alles nicht. Selbst wenn das am Ende des Tages 
wirklich nur eine Tabelle sein sollte (was ich nicht glaube), bleibt das 
noch komplex genug. Und wenn der Datenbank und/oder der Webserver bei 
einem Provider im Internet steht, bekommt auch der Sicherheits-Aspekt 
eine ganz andere Bedeutung.

Wie sollen die Daten denn in die Datenbank rein kommen?

: Bearbeitet durch User
von Maximilian Pecher (Gast)


Lesenswert?

kennst Du phpmyadmin? Damit kann man schon mal eine Datenbank erstellen, 
wenn ein mySQL-Server im Hintergrund läuft.

Kannst Du ein bißchen PHP programmieren oder hast schon mal Webseiten 
gemacht? Da findest Du Befehle, mit denen Du dann auf die Datenbank 
zugreifen kannst, ist nicht so kompliziert, wie es aussieht.

Günter M. schrieb:
> Wie sollen die Daten denn in die Datenbank rein kommen?

Ich würde mal sagen, jemand tippt die Daten in ein Eingabefeld. Das 
Eingabefeld muss natürlich vorhanden sein.

MySQL ist manchmal etwas verzwickt, wenn man kompliziertere Abfragen 
erstellen muss und z.B. mehrere Joins miteinander zu kombinieren hat. Es 
könnte sein, dass eine andere Datenbanksystemanwendung da vlt. besser 
ist, schau doch einfach mal auf der Homepage von IBM und such nach DB2.

Die Idee mit dem Wiki ist auch cool. Wir haben bei uns in der Firma ein 
Wissenswiki auf einem Server laufen, da kann jeder sein eigenes Wiki 
erstellen und auch mit anderen Kollegen teilen. Dazu laufen im 
Hintergrund manchmal auch Datenbanksysteme, aber nicht immer.

von Maximilian Pecher (Gast)


Lesenswert?

Günter M. schrieb:
> Und wenn der Datenbank und/oder der Webserver bei
> einem Provider im Internet steht, bekommt auch der Sicherheits-Aspekt
> eine ganz andere Bedeutung.

Genau, und schau z.B. mal nach SQL-Injection, wenn Du Datenbankabragen 
z.B. mit Python, C oder PHP erstellst.

von Nonick (Gast)


Lesenswert?

Z.B Standardwerk von Kemper:

http://www.amazon.de/Datenbanksysteme-Eine-Einf%C3%BChrung-Alfons-Kemper/dp/3486576909%3FSubscriptionId%3DAKIAILSHYYTFIVPWUY6Q%26tag%3Dduckduckgo-ffsb-de-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D3486576909

Für deine Anforderungen reicht allerdings eine google/youtube Recherche.

Für eine einfach Zuordnung von Dokument -> Ablageort braucht es nicht 
mal 3. Normalform etc. Das würde zwar Redundanz und Ahnliches vermeiden, 
dafür aber eine Abstraktionsebene einbringen, die es nicht unbedingt 
braucht.
 - solange dein Chef später nicht auf die Idee kommt und mehr 
Anforderungen stellt. Die sollten vorher klar und deutlich festgehalten 
werden.

Das Problem sehe ich hier weniger im Datenbankdesign, sondern auf 
Server- und Applikationsseite. Stichworte dazu wude schon genannt: Unter 
anderen die Sicherheitsaspekte und Zugriffrechtemanagement.

Viel Erfolg!

von Günter M. (redround)


Lesenswert?

Das wäre das erste Mal, dass einem Chef später nicht noch was einfällt 
:-)

Ein versautes Datenmodell macht die Arbeit später um so aufwendiger. 
Deshalb von Anfang an ein richtig normalisiertes Design erstellen.

von PittyJ (Gast)


Lesenswert?

Ich habe beim Studium auch Datenbankvorlesungen gehört, hätte also die 
Grundlagen. Trotzdem würde ich das nicht machen. Der Grund liegt in der 
Dynamik der Sache.

Sobald irgendwas funktioniert, kommen neue Wünsche und Anforderungen. 
Dann ist man dabei, das Modell zu ändern, noch ein paar Scripts dazu zu 
packen, dort noch mal was umzuschreiben. Und dieser Przoess hört nie 
auf, weil immer wieder was dazu kommt. Also wirst du bis spät in die 
Nacht sitzen, deine existierenden Datenbankmodelle verfluchen, Wrapper 
und Konverterprogramme schreiben.

Kauf was fertiges. Dann bist du nicht für jeden Fehler verantworlich. 
Die Kauf-Software ist auch getestet. Und der Wunsch, noch viele andere 
Dinge damit zu machen, entfällt auch.

von db-admin (Gast)


Lesenswert?

Günter M. schrieb:
> Üblicherweise nimmt man dann PHP als Sprache für das
> Frontend.
...ich suche verzweifelt die Stelle im Eingangspost, in der der Wunsch 
nach einem Web-Frontend formuliert ist...

Es gibt sicherlich auch noch andere Möglichkeiten DB-Clients zu 
programmieren, oder?

von Eric B. (beric)


Lesenswert?

Martin schrieb:

> Jetzt muss ich für unsere kleine Firma eine Datenbank aufbauen für:
> Infos, Bilder, Pdf, Produktionsdateien,...

Mit welchem Ziel? Welche(s) Problem(e) soll(en) mit dem Datenbank gelöst 
werden? Was soll dann besser/schneller/einfacher gehen als wenn die 
Daten einfach auf einem (Netz)Laufwerk liegen?

von Günter M. (redround)


Lesenswert?

db-admin schrieb:
> Günter M. schrieb:
>> Üblicherweise nimmt man dann PHP als Sprache für das
>> Frontend.
> ...ich suche verzweifelt die Stelle im Eingangspost, in der der Wunsch
> nach einem Web-Frontend formuliert ist...
>
> Es gibt sicherlich auch noch andere Möglichkeiten DB-Clients zu
> programmieren, oder?

deshalb habe ich ja auch auf andere Möglichkeiten hingewiesen wie zum 
Beispiel einem Frontend in einer .NET Sprache. "Richtige" 
Datenbankmanagementsysteme (wie MSSQL, Oracle oder von mir aus auch 
MySQL) bringen keine eigene Möglichkeit für ein Frontend mit (und das 
ist auch gut so). Es gibt zwar Zwittter-Systeme wie MS-Access oder 
Filemaker, die versuchen, beides zu vereinen ... allerdings immer mit 
Abstrichen (meist auf beiden Seiten).

Deshalb: wenn das Backend eine MySQL Datenbank sein soll, braucht es 
noch eine weitere Technologie für die Erstellung des Frontends. 
PHPMyAdmin halte ich da für gänzlich ungeeignet. Datenbank-Anwendungen 
sollen benutzerfreundlich sein und den ganzen komplexen Kram vor dem 
Benutzer verbergen. PHPMyAdmin ist deshalb kein Tool für ein produktives 
Frontend. Es ist, wie der Name schon sagt, ein Tool für den DB Admin 
(und nebei gesagt noch ein schlechtes). Rund 30% aller Hack-Attacken auf 
unser eigenes System versuchen beispielsweise genau dieses Tool 
anzugreifen. Das wäre nicht so, wenn PHPMyAdmin nicht leichte Beute 
wäre. Alleine vor diesem Hintergrund kann ich nur jedem davon abraten, 
der nicht wirklich genau weiß, was er tut.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.