Ich habe gerade eine gute Idee für eine Anwendung bekommen, aber es würde etwas Datenbankarbeit und einen zentralen Server erfordern.
Ich habe noch nie zuvor mit Datenbanken oder Servern gearbeitet. Was sind einige empfohlene Datenbankabfragesprachen für Anfänger? Die Sprachen, mit denen ich arbeite, sind C #, C ++, Perl und Python, aber es ist mir egal, ob ich eine andere Sprache lernen muss (das macht immer Spaß).
Lerne SQL.
Laden Sie SQLite als Ihren Lernserver herunter.
Damit wirst du anfangen.
Sobald Sie SQL gelernt haben, können Sie mit den anderen Fragen fortfahren.
Wie würde ich mit einem Server arbeiten? MySQL oder Postgres wären gute, preiswerte Alternativen. Oracle, MS SQL / Server und DB2 sind gute, teure Alternativen.
Wenn ich mein Programm vertreibe und einen Computer in meinem Netzwerk als Server verwende, öffnet sich eine Sicherheitslücke?
Das ist ein großes Thema. Beginnen Sie mit einer der weitverbreiteten Schwachstellenlisten. Hier sind einige Hinweise: Ссылка
Die meisten kommerziellen Datenbanken verwenden SQL als Sprache, obwohl es andere gibt. Ich würde vorschlagen, dass Sie sich an die bewährten Pakete halten. Wenn Sie sich dem Open Source Camp zuwenden, schlage ich vor, MySQL alternativ zu verwenden, wenn Sie Microsoft-Mietverträge haben dann sollten Sie SQL Server Express (dh die kostenlose Version) verwenden.
Ich bin mir nicht sicher, was Sie fragen, wie Sie mit dem Server arbeiten würden, aber wenn Sie fragen, wie Sie die Datenbanken entwickeln / erstellen, verfügt SQL Server über ein Client-Programm zur Verwaltung der Datenbank, während MySQL dort ist ist ein Open-Source-PHP-Tool für das Management.
Aus Sicherheitsgründen sind Datenbanken sehr sicher, wenn sie richtig konfiguriert sind. Ich empfehle, Konfigurationsartikel für die Datenbankplattform zu lesen, die Sie am Ende auswählen.
Beginnen Sie mit ER-Modellierung und dann können Sie mit dem Erlernen von SQL für eine SQL-Lernressource beginnen Ich empfehle Ihnen wirklich SQLZoo: Eine sanfte Einführung in SQL , es ist ein sehr gutes interaktives Tutorial.
Ich empfehle Ihnen, mit C # im .NET Framework zu beginnen und MS SQL Server zu verwenden.
Zuerst müssen Sie mit den Datenbanken beginnen .
Hier ist ein großartiger Ort, um mit MS SQL zu beginnen: Ссылка
MS SQL Express ist eine kostenlose Ausgabe für Leute wie Sie, während Sie lernen oder auszuwerten.
Visual Studio verfügt außerdem über eine Express-Edition zum Lernen.
Dies erfordert, dass Sie Transact SQL lernen, was eine Erweiterung von SQL ist.
Wenn Sie Bedenken hinsichtlich der SQL-Sicherheit haben, gibt es einige gute Artikel .
Es spielt wirklich keine Rolle, welche Programmiersprache Sie wählen. Die gebräuchlichste Art der Anbindung an eine Datenbank erfolgt über SQL, eine einfache Sprache, die eine gemeinsame Schnittstelle zu einer großen Anzahl verschiedener Datenbanken bietet. Sobald Sie SQL kennen, können Sie problemlos eine Datenbank aus einer beliebigen Programmiersprache verwenden.
Am besten starten Sie eine Datenbank namens SQLite, die eine SQL-Schnittstelle für Daten bereitstellt, die in einer einfachen Datei auf Ihrer Festplatte gespeichert sind. Dies bedeutet, dass Sie eine Datenbank erstellen und damit beginnen können, SQL zu spielen und zu lernen, ohne dass Sie einen echten Datenbankserver einrichten müssen. Abhängig von Ihrer Anwendung kann es sogar alles sein, was Sie brauchen.
Der letzte Teil Ihrer Frage ist unmöglich zu beantworten. Jede Anwendung, die in einem Netzwerk gehostet wird, öffnet verschiedene Sicherheitsbedenken. Viel mehr Informationen wären notwendig, und hoffentlich, indem Sie etwas über Datenbanken lernen, können Sie einige davon für sich selbst beantworten.
Ich empfehle zuerst SQL . Der einfachste Weg, dies zu tun, ist Access, wenn Sie es haben. Auf diese Weise können Sie sich ausschließlich auf das Erlernen der SQL-Syntax und des SQL-Codes konzentrieren. Das Beste von allem gibt es Beispieldatenbanken und Abfragen, die Sie betrachten können. Außerdem können Sie Abfragen mithilfe einer GUI zusammenstellen und dann den resultierenden SQL-Code betrachten.
Wenn Sie mit SQL gut umgehen können, dann können Sie sich anschauen, welche Datenbank Sie verwenden möchten. Wenn Sie ein Entwickler sind, der nach einer kostenlosen Software sucht, dann sollten Sie sich MySQL anschauen. Ansonsten würde ich Microsoft SQL Server empfehlen.
Wenn Sie MySQL verwenden, ist Perl eine einfache Sprache. Wenn Sie eine nette GUI möchten, möchten Sie vielleicht C # oder VB.NET.
Learning SQL, O'Reilly fast jede Datenbank funktioniert, SQL Server, MySQL, Postgree alle von ihnen sind eine nette Möglichkeit, zu starten. Sie sollten wahrscheinlich mit Python beginnen. C # lässt dich denken: "Also klicke ich hier, hier und hier, als nächstes, fertig, fertig und ich bin mit der Datenbank verbunden" und wenn du versuchst, etwas ein wenig anders als das Skript von Microsoft zu machen, wirst du es schwer haben heraus, dass die Wizzards von Microsoft mit deinem Code fertig sind. Auf der anderen Seite könnte die Arbeit mit C # die Arbeit erledigen (schlecht, aber fertig), was die erste Regel für die Programmierung ist, also tu alles was du willst (aber ich empfehle Python und MySQL).
Über die zweite Frage werden Sie immer mit einem Server arbeiten, wenn Sie Ihre Anwendung online stellen müssen (es ist nur eine Frage des Wie).
Über die dritte Frage, Sie werden immer Sicherheitslücken öffnen, wenn Sie online arbeiten Sie damit umgehen, zuerst, machen Sie Ihr Programm und dann Ihre Sicherheitsmängel zu stopfen.
Sie sollten etwas über Datenbankmodellierung lernen, insbesondere das Entity-Relation-Modell. SQL ist nur die Technologie, um mit relationalen Datenbanken zu kommunizieren, und das ist einfach, aber wenn Sie wissen, wie Sie Ihre Tabellen so gestalten, dass sie die Datenanforderungen Ihrer Anwendung erfüllen, und auf praktische Art und Weise (zumindest in der zweiten Normalform) sparen Sie viel Ärger.
Ich stimme zu, dass Sie die SQL-Sprache kennen müssen, wenn Sie mit Datenbanken arbeiten. Ein gutes Buch zum Erlernen von SQL ist O'Reillys Learning SQL, zweite Ausgabe .
Sie sollten die Verwendung eines Servers (der das im obigen Buch verwendete MySQL-System vermeidet) aufschieben, während Sie die Grundlagen der Arbeit mit einer relationalen Datenbank erlernen. Ich stimme zu, dass SQLite zu Beginn ein viel besseres Werkzeug sein wird, da Sie sich über relationale Datenbanken ohne informieren können die administrativen Schwierigkeiten eines Servers.
Was das Problem "Wie würde ich mit einem Server arbeiten?" Das könnte eine Menge Dinge bedeuten. . .
Haben Sie schon von dem "LAMP" -Paket (Linux-Apache-MySQL-PHP (Perl, Python)) gehört?
Es ist eine ziemlich weit verbreitete Art, einen Server (Apache), eine Datenbank (mysql) und Ihre bevorzugte Programmiersprache auszuführen.
Ich betreibe Apache und mysql auf einem Windows-Rechner und bevorzuge Python für Datenbank-Dinge. Es ist sehr einfach, Python zu verwenden, um mit MySql zu interagieren und eine GUI zum Laufen zu bringen, die als Ihr Frontend dient.
Apache ist schön zu wissen, ob Sie überhaupt in Web-Programmierung einsteigen. Sie können es als Webserver, Datenbankserver, Quellcodeverwaltungsserver usw. verwenden.
Hochverfügbarkeit und Brozar sind die Schlüsselwörter, die mir meine Mitarbeiter gesagt haben. Hohe Haltbarkeit ist eine andere.
Sicherheit = Sicherstellen, dass die erste Person mit einer Gruppe von Krediten dieselbe Person ist, die diese Kreditgruppe verwendet + sicherstellt, dass andere nicht autorisierte Personen nicht hinein können. Denken Sie über Ihre Zugangspunkte nach.
Da ist der Computer selbst (Login-Credits). Dann ist es im Internet (Firewall / Ports / Dienste laufen). Dann gibt es die Server selbst (iis / SQL Server), die auch Kredits hat. Und vielleicht eine Schnittstelle über eine API, die Kredits (REST-Token) oder keine Kredits verwendet.
Auch wenn Sie Creds verwenden, stellen Sie sicher, dass Ihre API-Funktionen solide sind. EG: Lassen Sie keine Lücken wie Massen-Erlaubnis-Einstellung, mit der Github getroffen wurde, nur sicherstellen, dass Ihre Funktionen nicht offen sind.
Sie können die Hardware auch sichern, indem Sie einen Computer als API-Schnittstelle und einen anderen als die eigentliche Datenbank verwenden, und nur dieser Gateway kann mit dem Datenbankcomputer kommunizieren. Auf diese Weise, wenn Ihr öffentlicher Computer (API-Server) getroffen wird, sind Ihre Daten noch woanders.
Dann gibt es Verschlüsselung, Salzen ... Ich bin kein Experte. Ich bin nur Wochen damit beschäftigt, die gleiche Frage zu stellen wie du. Die anderen Antworten, die ich als nützlich empfand, aber wie Sie sehen können, habe ich diese Detailgenauigkeit nicht gesehen, also werfe das hier raus, obwohl Frage '09-Ära
istWenn Sie an einer Web-App arbeiten, sollten Sie Ruby on Rails-Tutorials ausprobieren. Die Datenbank ist so abstrahiert und so gut an das Modell gebunden, dass SQL fast vollständig ausgeklammert ist und Sie nur in Bezug auf Ihr Geschäftsmodell denken.
Wenn Sie an einer App arbeiten, lernen Sie entweder ein bindendes System oder SQL Ich verstehe, dass C # ein System (LINQ?) hat, das Ihnen das Leben erleichtern könnte ...
Welche Sprache soll ich verwenden?
Common Lisp wenn Sie eine aufschlussreiche Erfahrung machen möchten möchte nicht nur mit relationalen Datenbanken (SQL) arbeiten, sondern auch mit objektorientierten.
Andere Sprachen tendieren dazu, nur RDBMS gut zu unterstützen.
Wie würde ich mit einem Server arbeiten?
Mein Rat: Mieten Sie einen billigen virtuellen GNU / Linux-Server und lernen Sie, mit SSH daran zu arbeiten.
Wenn ich mein Programm vertreibe und einen Computer in meinem Netzwerk als Server verwende, öffnet sich ein Sicherheitsloch?
Vielleicht, vielleicht nicht. Es hängt von Ihrem Programm ab.
Die Frage, die Sie gestellt haben, war ungefähr analog zu "Wenn ich an meinem Haus arbeite, mache ich es einfacher für Einbrecher hineinzukommen?".
Wenn ja, wie soll ich damit umgehen?
Lesen Sie mehr über sichere Programmierung und über Firewalls.
Verwenden Sie eine vernünftige Programmiersprache mit Garbage Collection und gehen Sie vorsichtig mit allen Benutzereingaben um.
Und wie würde ich den Server einrichten, einfach das Installationsprogramm herunterladen und ausführen?
Es ist ein bisschen komplizierter als das. Das hängt vom Betriebssystem und der Serversoftware ab, die Sie verwenden werden.
Und welcher Server? Ein Datenbankserver (wenn Sie einen verwenden), einen Webserver, Ihren Anwendungsserver, etwas anderes?
Tags und Links database