Dateiverwaltung mit mySQL ( mySQL Anfänger )

Status
Nicht offen für weitere Antworten.

Happyman0815

Mitglied
Hallo Leute!

Als Schulprojekt möchten ich eine Dateiverwaltung im Client/Server Modell erstellen.

Erklärung:

Es gibt einen mySQL Server, der alle Daten/Eigenschaften von Dateien in einem bestimmten Ordner kennt. Diese Datenbank wird immer aktuell gehalten, sprich: Wenn eine Datei verändert/gelöscht/hinzugefügt wird, dann wird auch die Datenbank aktualisiert.

Mehrere Clienten sollen sich via Ethernet zum Server verbinden und damit ein Netzwerk bilden. Alle Clienten sollen über die Datenbank abfragen ob Dateien verändert/gelöscht oder hinzugefügt worden sind. Ist dies der Fall, werden die lokalen Ordner auf Seiten des Clienten aktualisiert. Sprich: Es werden die neue Dateien vom Server heruntergeladen.

Das ganze soll ähnlich wie SVN funktionieren, nur das von Seiten des Clienten die Dateien regelmäßig aktualisiert werden bzw. geguckt wird, ob alle Dateien noch aktuell sind (z.B. 30 sek Takt).

Soweit die Idee.

Jetzt habe ich ein paar Fragen zur Umsetzung. Da ich mit mySQL das erste mal arbeiten werde, kenne ich noch nicht den vollen Funktionsumfang.

Wie kann man z.B. eine Dateiverwaltung hinbekommen... Dazu die Frage:
1. Kann mySQL Dateien beliebeiger Art speichern und diese entsprechend selber verwalten, oder muss eine externe Serveranwendung geschrieben werden, die über mySQL das senden und empfangen von Dateien verwaltet?

Es gab hier schon Vorschläge von Mitstudenten alle Dateien in Tabellen zu speichern. Sprich: Dieses gekrakel, wenn man eine exe Datei mit Texeditor öffnet abzuspeichern. Ohne mich mit Datenbanken auszukennen, halte ich das nicht für vorteilhaft, da eine Blue Ray Disk als Textform in einer DB doch recht aufwendig zu handhaben ist (vor allem für den Rechner selbst). Hierzu würde ich gerne noch eine Meinung haben.


Ansonsten würde ich gerne ein paar kleine Anregungen von euch hören, wie man so etwas machen könnte. Pflicht ist aber das irgendwie mySQL eingesetzt wird ( Aufgabenstellung für das Fach "Datenbanken" :) ).

Gruß
Happyman0815
 
Zuletzt bearbeitet:

peez

Bekanntes Mitglied
Mysql kann wie jede relationale Datenbank nur Daten in Tabellenform speichern.
Dateien ausliefern oder verwalten in dem Sinne wie du es willst, geht nicht.
Man kann die Dateien innerhalb der Tabellen als BLOB ("Binary Long Object") speichern.
Allerdings wenn es um Blu-ray discs (btw. <- So schreibt man das richtig) geht, gebe ich dir recht wäre das nicht so sinnvoll.
Was du machen kannst ist Pfade, Prüfsummen, Dateigrößen, Dateidatum etc. in der Datenbank zu speichern.
Der Client könnte dann entweder direkt per Windows Dateifreigabe / Samba oder z.B. einen Webservice oder ein eigenes Protokoll die Dateien abholen, deren Pfad aus der Datenbank stammt.
 

Happyman0815

Mitglied
Blu-ray discs (werde ich mir merken :) ) waren jetzt ein überzogenes Beispiel, warum ich mir gedacht habe, das es nicht(bzw. nur schlecht) funktionieren kann.

BLOBs interessieren mich jetzt aber schon. Wie groß dürfte eine Datei denn maximal sein um zu sagen, dass der Einsatz von BLOBs noch sinnvoll ist?

Ich würde das Ergebnis des Projekts später gerne weiter benutzen für die Verwaltung von Dateien in weiterer Projekte mit mehreren Teilnehmern. In der Informatik kommen ja max. Dateien vonn 100 MB zusammen (wenn mal etwas gezippt wird :) ).

Quelldateien sind ja meist < 1 MB groß.

Gruß
Happyman0815

EDIT:

MySQL
bis 256 Byte TINYBLOB, bis 64 KiB BLOB, bis 16 MiB MEDIUMBLOB oder bis 4 GiB LONGBLOB.
(Quelle: Wikipedia BLOB)

Dateien von 4 GiB wären absolut ausreichend für das Projekt. Lässt sich diese Funktion effizient nutzen oder nicht? Bzw. die Frage ist:
Ist es ok BLOBs einzusetzen (einfach) bei einer Durchschnittlichen Dateigröße von ~5 MB oder wäre es sinnvoller eine externe Dateiverwaltung zu programmieren? Sprich: Eine Anwendung die Verbindung zu allen Clienten hat, diese verwaltet und als einziger die Verbindung zur Datenbank hat (das wäre dann die Geschichte mit der Prüfsumme und damit wohl schwieriger).
 
Zuletzt bearbeitet:

Happyman0815

Mitglied
Keiner der sich schon mal mit Dateiverwaltung von Projekten mit DB, sprich Programmen mit Funktionalitäten wie SVN auseinander gesetzt hat?
 
Zuletzt bearbeitet:

peez

Bekanntes Mitglied
svn ist ja in erster Linie dazu da, verschiedene Versionen von Code bzw. Dateien zu verwalten. Das kam jetzt bei deiner Beschreibung gar nicht raus, dass bzw. ob du sowas machen willst.
Ich denke mit der "Funktionalität" von svn hat sich deshalb noch keiner auseinandergesetzt, weil svn eben schon super ist und kaum Verbesserung braucht ;-)
Grundsätzlich denke ich spricht nichts bzw. wenig dagegen, seine Daten als BLOB zu speichern.
In dem Fall musst du eben schlaue Indizes und die richtigen Abfragen setzen, damit die Performance gut bleibt.
Dateien übers Dateisystem zu managen wird allerdings immer schneller sein als über BLOBs mit mysql.
Ich habe vor einigen Jahren auch schon PHP Projekte gemacht, wo ich Dateien per BLOB gespeichert habe (um die nervigen Einschränkungen des Safe-Modes zu umgehen). Nach einiger Zeit bin allerdings da wo es möglich war, wieder dazu übergegangen, Dateien im Dateisystem statt direkt in der Datenbank zu speichern, einfach weil man im Wartungsfall besseren Überblick hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3

Ähnliche Java Themen


Oben