Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Datenbank-Baukasten

Datenbank-Baukasten

killerspots30.11.2214:22
Moin,

ich habe Ideen für eine Datenbank, die ich gerne auf meinem privaten NAS hosten würde.
Problem ist, dass ich von Datenbank-Programmierung absolut null Schimmer habe. Gibt es vielleicht irgend eine Baukasten-ähnliche Software, mit der ich anfangen kann und die mich dabei in den Anfängen unterstützen kann und man im zweiten Schritt durch Programmierkenntnisse noch weiter ausreizen kann? So etwas wie diese von Apple damals angebotene Webseiten-App, für die man null Programmierkenntnisse brauchte?

Danke für eure Tipps.
0

Kommentare

marm30.11.2214:28
NocoDB ist eine no code Datenbank wie Airtable, hier die Bastelanleitung:
oder Baserow
0
Schibulski
Schibulski30.11.2214:35
Filemaker ist hier das Tool deiner Wahl. Ist ja auch irgendwie ein "Apple-Programm"
„Mit 'nem AMIGA wäre das NICHT passiert!“
+2
almdudi
almdudi30.11.2215:34
Die Open- bzw. LibreOffice-Suite hat doch auch ein DB-Modul.
0
gfhfkgfhfk30.11.2216:18
killerspots
Moin,

ich habe Ideen für eine Datenbank, die ich gerne auf meinem privaten NAS hosten würde.
Problem ist, dass ich von Datenbank-Programmierung absolut null Schimmer habe. Gibt es vielleicht irgend eine Baukasten-ähnliche Software, mit der ich anfangen kann und die mich dabei in den Anfängen unterstützen kann und man im zweiten Schritt durch Programmierkenntnisse noch weiter ausreizen kann?
Es wurde hier bereits auf FileMaker verwiesen. Ein weiteres Tool dieser Art wäre 4D. Aber sowohl 4D wie auch FileMaker haben eine grundlegende Schwäche, sie werden definitiv nicht auf einem NAS laufen, da diese i.d.R. auf Linux basieren. Wenn überhaupt kann man die Windows Versionen dieser beiden Tools auf einen NAS betreiben.

Für Linux wären PostgreSQL oder MySQL RDBMS Engines der Wahl (beides FOSS und somit kostenfrei). Das Problem hierbei ist, dass PostgreSQL nur mit PGAdmin III kommt. Das ist nicht auf demselben Niveau, wie die GUI-RDBMS-Designer von 4D oder FileMaker. Es gibt einige weitere GUI-Designer, die man alternative mit PostgreSQL oder MySQL nutzen kann. Einige sind frei andere kosten richtig Geld. Der große Vorteil von FileMaker ist, dass man sehr leicht Abfragemasken bauen kann, und somit sich wenig mit den eigentlichen RDBMS auseinandersetzen muss. Allerdings wird die Sache komplizierter wenn man etwa einen Webserver auf dem NAS betreiben will, und die DB Masken Webseiten sein sollen. Da wäre dann etwa Django eine Möglichkeit. Aber da gibt es so vieles was man machen könnte.
0
Another MacUser30.11.2217:19
Hi killerspots,

was genau meinst Du mit »NAS hosten«??

Für den DB-Einstieg ( lernen und testen ) finde ich Ninox ganz gut, auch wenn lokal – naja, teilweise. Schau einfach mal.

Greetings, CS.
+1
killerspots30.11.2218:56
Danke für die ersten Tipps bis hierhin.
Filemaker hatte ich auch schon überlegt, aber das war mir immer etwas zu viel des Guten, vor allem für meine Anforderungen.

Another MacUser
Hi killerspots,

was genau meinst Du mit »NAS hosten«??

Für den DB-Einstieg ( lernen und testen ) finde ich Ninox ganz gut, auch wenn lokal – naja, teilweise. Schau einfach mal.

Greetings, CS.
Nun ja, meine Idee war ja, dass ich mir in einem externen Baukasten eine webbasierte Datenbank zusammenbastle und diese dann über den WebServer auf dem NAS laufen und ausführen lassen könnte. Mir ging es also quasi wirklich um einen externen JavaScript/MySQL/PHP etc Creator, der meine Arbeit in Code umwandelt. Hat nicht früher Dreamweaver von Adobe sowas quasi gemacht? Da konnte man doch seine Webseite bauen ohne HTML Erfahrungen zu haben.
0
loishulot130.11.2220:51
Früher gab's tatsächlich mal "Queries" in Dreamweaver. Mit pdo war das vorbei. (2015?)
Für sehr faule Leute gibts aber sqlite-Datenbanken, ein Flatfile, das man über Firefox oder "DB Browser for SQLite.app" (opensource), auch direkt bearbeiten kann. Da lernt man auch mal sql-Befehle. Mit der Zeit kann man dann ja noch mit php oder phyton oder swift ran... Nur Mut!
0
pitch
pitch30.11.2222:23
Zur Modellierung für Anfänger gab es bzw. gibt es noch immer unter Windows eine geeignete Software
Die habe ich vor 12, 13 Jahren mal beruflich zwar nicht für Modellierung sondern DB-Administration genutzt, habe jedoch gehört, dass die auch für Einsteiger echt gute Ergebnisse liefern soll.
Vielleicht auch heute noch, müsstest Du Dir mal anschauen.

Wenn es dann an Query & Co und Administration geht, ist Datagrip von Jetbrains eine ziemlich gute Software, die ich selber gerne häufig verwende
„Don't drink and root“
0
xcomma30.11.2222:47
killerspots, der gewählte Titel und die initiale Beschreibung scheinen zunächst den Fokus auf "Datenbank" zu legen. Ok, darüberhinaus noch "NAS" irgendwie. Einer späteren Beschreibung wiederum könnte man entnehmen, dass es generell um eine Web-basierte Applikation handeln soll, die letztendlich drunter eine Datenbank benutzen soll. Beide "Grob-Ausgangsstellungen" würden zu unterschiedlichen Ratschlägen führen. Daher auch die ersten, die - wie auch ich mir zunächst Gedanken gemacht hatte - den Fokus Datenbank haben.

Neben deiner Info, dass du keine Datenbankprogrammierung-Erfahrung (belassen wir es mal bei dieser verkürzten Darstellung), hätte ich 2 Fragen:
  • wie sieht es generell mit Programmiererfahrung aus bzw. Software Entwicklung (insbesondere Web-basierten Anwendungen?
  • falls es kein Betriebsgeheimnis ist und keine "Unicorn"-Idee darstellt, könntest du beschreiben, um was es letztendlich bei der anvisierten Lösung gehen soll?

Das könnte helfen das Verständnis zu erhöhen, welches zu verbesserten "Tool Empfehlungen/Vorgehensweisen/Ansätzen" führen kann.
+3
mateteetasse
mateteetasse30.11.2223:19
schau mal nach „budibase“ (als docker-installation im eigen-hosting möglich).
ein tool für datenbankbasierte webapplikationen, im browser zusammenklickbar.
hier noch eine anleitung von navigio bei youtube:
0
momirv30.11.2223:25
Wie oben schon erwähnt, kann man bis jetzt nur raten was du suchst.

Meine Vermutung, du suchst eine Software mit der man ohne Programmierkenntnisse eine Webanwendung, die ihre Daten aus einer auf deinem NAS gehosteter DB zieht, zusammenklicken kann.

Mein Tipp wäre selbst ein bisschen HTML/php/SQL zu lernen. Man kommt überraschend schnell zu ersten Erfolgen. Zum lernen und als Spielwiese kann man MAMP verwenden.

Oder, um mal was ganz verrücktes in den Raum zu werfen, man probiert so etwas wie die Service Cloud von Salesforce.
+1
papito01.12.2208:11
Auch wenn die Anforderungen nicht ganz klar sind, werfe ich mal Appsmith in den Raum:
0
mateteetasse
mateteetasse01.12.2208:38
appsmith und budibase sehen sich sehr ähnlich.
@papito, danke für den link, kannte ich noch nicht.
0
killerspots01.12.2221:53
xcomma
killerspots, der gewählte Titel und die initiale Beschreibung scheinen zunächst den Fokus auf "Datenbank" zu legen. Ok, darüberhinaus noch "NAS" irgendwie. Einer späteren Beschreibung wiederum könnte man entnehmen, dass es generell um eine Web-basierte Applikation handeln soll, die letztendlich drunter eine Datenbank benutzen soll. Beide "Grob-Ausgangsstellungen" würden zu unterschiedlichen Ratschlägen führen. Daher auch die ersten, die - wie auch ich mir zunächst Gedanken gemacht hatte - den Fokus Datenbank haben.

Neben deiner Info, dass du keine Datenbankprogrammierung-Erfahrung (belassen wir es mal bei dieser verkürzten Darstellung), hätte ich 2 Fragen:
  • wie sieht es generell mit Programmiererfahrung aus bzw. Software Entwicklung (insbesondere Web-basierten Anwendungen?
  • falls es kein Betriebsgeheimnis ist und keine "Unicorn"-Idee darstellt, könntest du beschreiben, um was es letztendlich bei der anvisierten Lösung gehen soll?

Das könnte helfen das Verständnis zu erhöhen, welches zu verbesserten "Tool Empfehlungen/Vorgehensweisen/Ansätzen" führen kann.

Moin,
ja, vielleicht ging das etwas durcheinander.
Eine web-basierte Anwendung habe ich zwar auch im Kopf, ist aber vom Umfang und Aufwand mit meinen (bisherigen) mitteln und Wissen eher schwer umsetzbar und vorerst nicht vorgesehen.

Ich möchte mir eine Datenbank zusammenstellen, die meine finanziellen Transaktionen für mich aufführt.n Diese DB wollte ich auf meinem NAS hosten, nicht irgendwo extern. Ich weiß es gibt Unmengen an Finanzsoftware da draussen. Mir hat bisher keine so zugesagt wie ich es mir gern wünschen würde von allen features her und zweitens hätte ich es als Projekt genommen mich peu a peu an das Thema Programmierung heranzuarbeiten. Deshalb war ja der Gedanke, dass man eine Art Baukasten benutzt (wie damals Dreamweaver), der mir bei dem ganzen Zeug unter die Arme greifen kann und man anhand dessen dann direkt sieht, was für Code hinten raus fällt und warum. Ist vielleicht ein unorthodoxer Weg aber ich fand es ganz spannend ihn mal zu beschreiten oder zumindest mal nach Möglichkeiten in Form von No-Code-Software zu suchen
0
ssb
ssb02.12.2209:37
Also eine DB aufzubauen, die ohne bisherige Programmierkenntnisse ein Web-Interface zusammenklicken kann - aber mit zunehmenden Programmierkenntnissen frei erweiterbar ist. Das sind schon große Wünsche.

Vielleicht solltest du die Vorgehensweise umdrehen. Erst nach und nach Programmierkenntnisse aneignen, einschließlich Kenntnisse über Datenbank-Design, und dann eine DB nach und nach aufbauen, wobei auch Programmierkenntnisse vertieft werden.

Wenn du den Ansatz verfolgen magst, dich nicht scheust dich mit Terminal und Python zu beschäftigen, dann schaue dir mal Django an. Als Default wird SQLite als Backend verwendet, aber man kann für größere Datenmengen und mehrere User auf andere DB-Backends wechseln.

Ein wenig Kenntnisse von Python sollte man sich vorher schon aneignen. Aber man kommt dann relativ schnell, wenn man die Tutorials durcharbeitet, zu einem Kenntnisstand, bei dem man eigene Projekte umsetzen kann. Der Webserver ist in Django bereits integriert, man muss sich also nicht erst groß nginx etc. konfigurieren.

Mir gefällt dabei, dass der größte Teil des Codes Python ist und man sich nur sehr wenig mit HTML etc. rumärgern muss. Aber das ist ja eine individuelle Vorliebe. Andere mögen es mehr PHP in HTML einzukapseln.
0
killerspots03.12.2211:17
Moin zusammen,
ich danke euch für eure Vielzahl von Ideen und Anmerkungen.
Ich finde es durchaus sinnvoll und spannend mich mehr und mehr in die Programmierung einzuarbeiten, auf Online-Tutorials wie Udemy oder den örtlichen Volkshochschulen oder ähnliche Möglichkeiten.
Aber daraus ergibt sich für mich die Frage nach der Priorität, womit fange ich denn nun am besten an? Beginne ich mich in MySQL, mit PHP, mit HTML/CSS, JavaScript einzuarbeiten oder wie würdet ihr anfangen? Wie wäge ich das sinnvoll ab?
0
ssb
ssb03.12.2212:06
killerspots
(…)Aber daraus ergibt sich für mich die Frage nach der Priorität, womit fange ich denn nun am besten an? Beginne ich mich in MySQL, mit PHP, mit HTML/CSS, JavaScript einzuarbeiten oder wie würdet ihr anfangen? Wie wäge ich das sinnvoll ab?
Wie gesagt - bei Django kannst du erst einmal SQLite verwenden und einfach mal mit Programmieren loslegen. Die Datenbank-Tabellen werden bei der Initialisierung passend zu deinem Python-Code generiert. Das geht gerade zum lernen erst einmal lokal auf deinem Rechner. Auch 1:1 und 1:many Relationen lassen sich so erstellen (da werden DBs ja erst richtig sinnvoll), aber bis dahin muss man sich schon ein wenig eingearbeitet haben.
Wenn dir dann später SQLite nicht genügt (eher wegen der Datenmenge, nicht wegen DB-Features), dann kanst du dir noch einen anderen DB-Server (mySQL, Mango-DB oder ähnliches) einrichten und den Django-Server damit verbinden - was auch nicht unbedingt trivial ist. Datenmigration ist da dann ein anderes Thema - geht, aber gerade am Anfang wirst du mehr basteln als Daten sammeln.

Für meinen Geschmack kommt man bei Django bereits mit relativ wenig Installationsaufwand und wenig Code zu einem bereits funktionierendem Cloud-DB Server, den man dann im Browser bedient. Schön ist der nicht - aber das kann man dann ja ändern (Templates erstellen mit gelinktem CSS). Die ersten Schritte gehen recht schnell und man kommt auch recht schnell durch das Tutorial. An einem Tag kann man da schon viel lernen und erreichen.
Wenn es dann in Details geht und deine Ansprüche steigen, dann werden auch deine Programmierkünste mitwachsen.

Vorher vielleicht noch einen Basiskurs zu Python, damit man auch die Nutzung des Terminals übt. Neben Udemy etc. gibt es auch relativ gute und kostenfreie Python-Kurse für RasPi. Der war ja auch für den Education-Sektor gedacht, daher gibt es Kurse auch für Schüler.

Schau es dir einfach mal an - Django ist ja einfach, schnell und rückstandlos zu entfernen. Python 3 ist bereits auf macOS installiert (merkt nur kaum einer, wenn er nicht das Terminal benutzt).

Zum Editieren des Source-Codes in einem Django-Projekt nutze ich dann immer BBEdit (in der kostenlosen Version). Mit der Zeit werden deine Source-Dateien komplexer werden und dann solltest du eventuell über ein Git-Repository nachdenken (Versionsverwaltung und minimaler Backup) - aber danach kannst du dann fragen (gerne per PM), wenn es soweit ist.

Django ist übrigens auch Open-Source und kostenlos.
+1
gfhfkgfhfk03.12.2214:34
killerspots
Aber daraus ergibt sich für mich die Frage nach der Priorität, womit fange ich denn nun am besten an? Beginne ich mich in MySQL, mit PHP, mit HTML/CSS, JavaScript einzuarbeiten oder wie würdet ihr anfangen? Wie wäge ich das sinnvoll ab?
Der wichtigste Punkt ist, dass Du Dich nicht irgendwann frustriert abwendest. Daher hängt es davon ab, ob Du relativ schnell sichtbare Ergebnisse brauchst, oder ob Du zu den Menschen gehörst, die lange auf ein Ziel hinarbeiten können, ohne gleich Bestätigung zu erhalten.

Das Problem bei einer Webapplikation ist, dass man aus verschiedenen Bereichen Wissen benötigt, und das macht den Hügel sehr steil, den man erklimmen muss. Du brauchst eine Programmiersprache für den Server (PHP, Python, …), die Programmiersprache für Clients (JavaScript hier gibt es keine Wahlmöglichkeit), Wissen über die Nutzung von RDBMS (MySQL, PostgreSQL, SQLite, …) und dann noch Wissen wie man die Texte korrekt der Sprache HTML mit CSS formatiert.

Du wirst programmieren lernen müssen. Das kannst Du alleine machen, z.B. in den Du mit Python anfängst. Eine Interpretersprache wie Python ist für Anfänger leichter, weil man sich nicht noch zusätzlich mit der Toolchain des Compilers (Programm was Quellcode in Maschinencode übersetzt) herumschlagen musst. PHP wird zwar auch interpretiert, aber ich halte Python für die bessere Wahl. Du hast dann auch die Wahl direkt GUIs mit Python zu programmieren. Es gibt Bindings für GTK, Qt, wxWidgets, … unter Linux würde ich wegen der Lizenz und der verfügbaren Tutorials klar zu GTK raten. Unter macOS läuft ein GTK GUI auch, aber es ist eben nicht zu 100% Mac like.

Bei den RDBMS ist von den freien RDBMS PostgreSQL die meiner Meinung nach beste Wahl. Es ist sehr komfortabel benutzbar, hat die meisten Features und macht nicht so einen Ärger wie MySQL/MariaSQL. SQLite ist eine sehr simple einfache Dateibasierte Lösung, die es erlaubt aus einem Programm heraus mit SQL Befehlen zu arbeiten.

MySQL war einmal OpenSource, wurde dann von Oracle gekauft. Oracle wichtigstes Produkt ist das RDBMS gleichen Namens. Danach wurde MySQL von Oracle mehr oder minder stiefmütterlich behandelt. Oracles Ziel ist Oracle zu verkaufen, denn damit machen sie viel Geld. Der Schöpfer von MySQL hat wegen der fehlenden Weiterentwicklung MariaDB als Abspaltung von MySQL geschaffen. Allerdings hat MySQL/MariaDB so einige Macken, wenn es um das Thema Transaktionsverarbeitung geht. Transaktionen dienen dazu eine Änderung die mehrere Einzelbefehle umfasst entweder komplett oder gar nicht auszuführen. Wenn man keine Transaktionen hat, kann es passieren, dass die DB in einem kaputten Zustand zurückbleibt, wenn das Client-Programm crasht – nicht gut, wenn es um wichtige Dinge geht. Bei MySQ/MariaDB gehen Transaktionen nur mit bestimmten Tabellentypen, die dann aber andere Fähigkeiten nicht haben Dazu kommt, dass die Programmierschnittstelle für Clients nicht sehr gut entworfen ist, so dass insbesondere in Webapplikationen Prepared Statements benötigt werden: Stichwort SQL Injection xkcd 327. MySQL/MariaDB kennt keine Sequenzen, ein ganz wichtiges Features von SQL.

PostgreSQL hat diese Probleme nicht. Da gibt es nur einen Tabellentypen, und der kann alle Features – so auch Transaktionen und Sequenzen, und die Schnittstelle erlaubt es Befehle gleich sauber zu übermitteln. Die Fähigkeiten von PostgreSQL werden nur noch von den großen kommerziellen RDBMS-Klassikern übertroffen: Oracle (Oracle), DB2 (IBM), MS SQL (Microsoft). Sprich für eine private Lösung wirst Du wohl nicht gegen eine Beschränkung laufen, die ein Problem ist. Bei MySQL/MariaDB kann das schon eher passieren.

Wenn es unbedingt Web sein muss, dann ist von mir und @@ssb beschrieben Django eine gute Wahl. Python ist die Programmiersprache von Django. D.h. wenn Du Python lernst kannst Du das Wissen für Django sehr gut verwenden.

Was das Thema Editor betrifft. Es reicht jeder beliebige Sourcecodeeditor aus. Allerdings sind so Tools wie VisualStudioCode (bitte nicht mit VisualStudio verwechseln) sehr beliebt und für jeden, der etwas Erfahrung hat, eine große Hilfe. Selbstredend gibt es für VSCode Unterstützung für Python.
+2
gevaugeh03.12.2220:32
Ich stand vor einiger Zeit vor einer ähnlichen Herausforderung wie Du. Ich wollte eine webbasierte Datenbankanwendung entwickeln, hatte wenig Ahnung von HTML und nur latente Programmierkenntnisse. Durch den ganzen Dschungel an Frameworks und Applikationen bin ich nicht durchgestiegen.
Dann ist mir von einem Kollegen das Buch von Thomas Theis empfohlen worden.
Ich dachte mit PHP und MySQL kann man nicht viel falsch machen und Grundlagenwissen hilft immer gute Entscheidungen zu treffen. Ich habe dann PHP und MariaDB auf meinem NAS eingerichtet und angefangen, meine Rezeptdatenbank zu bauen. Durch das Programmieren und Entwerfen der Tabellen habe ich sehr viel gelernt. Resultat: Nach 6 Monaten war die Lösung fertig und ist auf einen Hosting-Server portiert worden. Dort läuft sie nun seit geraumer Zeit und wird vom Kindergarten erfolgreich genutzt. Vielleicht ist das ja eine Idee für Dich zu starten.
+2
Cornelius Fischer
Cornelius Fischer03.12.2220:54
Einfach und sehr funktional

TapForms for Mac (quasi ne Art „lite“ Version von FileMaker

TapForms lässt sich mittels der CouchDB betreiben. CouchDB gibts als Docker Container und lässt sich recht simpel auf Synology NAS installieren.

Ich nutze das seit ein paar Jahren für mein eigenes CRM, welches ich mit TapForms erstellt habe. Sync konfiguriert in TapForms (Mac und iPhone) über mein Synology NAS. Läuft absolut zuverlässig und schneller als vorher mit der IBM Cloudant DB.
+1
marm03.12.2221:20
marm
NocoDB ist eine no code Datenbank wie Airtable, hier die Bastelanleitung:
oder Baserow
Also Eure Alternativen erscheinen mir komplizierter als zB Baserow
Es basiert auf den hier genannten Technologien wie Django und PostgreSQL - ahmt aber die no-code database Airtable nach.
Für mich selbst nutze ich allerdings Ninox.
0
gbkom04.12.2208:15
Auf welchem NAS soll die Datenbank laufen?

Bei der Diskstation kannst Du mit wenigen Klicks den Webserver, PHP und MariaDB zum Laufen bringen.

PHP bietet viele Funktionen für Datenbanken und den Code schreibst Du einfach direkt in die HTML-Dateien. Dafür gibt es im Netz viele Tutorials, aus denen Du die Grundfunktionen (DB anlegen, öffnen, abfragen) in Deine Testprogramme übernehmen kannst. So kommst Du binnen kurzer Zeit zu ersten Ergebnissen. Da alles lokal läuft, ist das ganze auch sicher und kann eine Menge Spaß machen
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.