Relationale Datenbanken, Normalisierung und SQL

Eine Datenbank ist eine Anwendung, die Daten sehr schnell speichern und abrufen kann. Das relationale Bit bezieht sich darauf, wie die Daten in der Datenbank gespeichert und wie sie organisiert sind. Wenn wir über eine Datenbank sprechen, meinen wir eine relationale Datenbank, in der Tat ein RDBMS: Relational Database Management System.

In einer relationalen Datenbank werden alle Daten in Tabellen gespeichert. Diese haben dieselbe Struktur, die in jeder Zeile wiederholt wird (wie eine Tabelle), und es sind die Beziehungen zwischen den Tabellen, die sie zu einer "relationalen" Tabelle machen.

Bevor relationale Datenbanken erfunden wurden (in den 1970er Jahren), wurden andere Datenbanktypen wie hierarchische Datenbanken verwendet. Relationale Datenbanken waren jedoch für Unternehmen wie Oracle, IBM und Microsoft sehr erfolgreich. Die Open Source-Welt hat auch RDBMS.

Kommerzielle Datenbanken

  • Orakel
  • IBM DB 2
  • Microsoft SQL Server
  • Ingres. Das erste kommerzielle RDBMS.

Freie / Open Source Datenbanken

instagram viewer
  • MySQL
  • PostgresSQL
  • SQLite

Streng genommen handelt es sich nicht um relationale Datenbanken, sondern um RDBMS. Sie bieten Sicherheit, Verschlüsselung und Benutzerzugriff und können SQL-Abfragen verarbeiten.

Wer war Ted Codd?

Codd war ein Informatiker, der 1970 die Gesetze der Normalisierung entwickelte. Dies war eine mathematische Methode zur Beschreibung der Eigenschaften einer relationalen Datenbank mit Tabellen. Er entwickelte 12 Gesetze, die beschreiben, was eine relationale Datenbank und ein RDBMS tun, sowie mehrere Normalisierungsgesetze, die die Eigenschaften relationaler Daten beschreiben. Nur normalisierte Daten können als relational betrachtet werden.

Was ist Normalisierung?

Stellen Sie sich eine Tabelle mit Client-Datensätzen vor, die in eine relationale Datenbank gestellt werden soll. Einige Kunden haben die gleichen Informationen, beispielsweise verschiedene Niederlassungen desselben Unternehmens mit derselben Rechnungsadresse. In einer Tabelle befindet sich diese Adresse in mehreren Zeilen.

Wenn Sie die Tabelle in eine Tabelle umwandeln, müssen alle Textadressen des Kunden in eine andere Tabelle verschoben und jeweils mit a versehen werden Eindeutige ID- Sagen Sie die Werte 0,1,2. Diese Werte werden in der Hauptclienttabelle gespeichert, sodass alle Zeilen die ID und nicht den Text verwenden. Eine SQL-Anweisung kann den Text für eine bestimmte ID extrahieren.

Was ist ein Tisch?

Stellen Sie sich das wie eine rechteckige Tabelle vor, die aus Zeilen und Spalten besteht. Jede Spalte gibt die Art der Daten gespeichert (Zahlen, Zeichenfolgen oder Binärdaten - wie Bilder).

Im Gegensatz zu einer Tabelle, in der der Benutzer unterschiedliche Daten in jeder Zeile haben kann, kann in einer Datenbanktabelle jede Zeile nur die angegebenen Datentypen enthalten.

In C und C ++ ist dies wie ein Array von Strukturen, wobei eine Struktur die Daten für eine Zeile enthält.

  • Weitere Informationen finden Sie unter Normalisieren einer Datenbank im Teil "Datenbankdesign" von database.about.com.

Was sind die verschiedenen Möglichkeiten zum Speichern von Daten in einer Datenbank?

Es gibt zwei Möglichkeiten:

  • Über einen Datenbankserver.
  • Über eine Datenbankdatei.

Die Verwendung einer Datenbankdatei ist die ältere Methode, die eher für Desktopanwendungen geeignet ist. Z.B. Microsoft Access wird jedoch zugunsten von Microsoft SQL Server eingestellt. SQLite ist eine hervorragende in C geschriebene Public Domain-Datenbank, die Daten in einer Datei enthält. Es gibt Wrapper für C, C ++, C # und andere Sprachen.

Eine Datenbank Server ist eine Serveranwendung, die lokal oder auf einem Netzwerk-PC ausgeführt wird. Die meisten großen Datenbanken sind serverbasiert. Diese erfordern mehr Verwaltung, sind jedoch normalerweise schneller und robuster.

Wie kommuniziert eine Anwendung mit Datenbankservern?

Im Allgemeinen erfordern diese die folgenden Details.

  • IP- oder Domainname des Servers. Wenn es sich auf demselben PC wie Sie befindet, verwenden Sie 127.0.0.1 oder localhost als DNS-Name.
  • Server Port Für MySQL ist dies normalerweise 3306, 1433 für Microsoft SQL Server.
  • Benutzername und Passwort
  • Name der Datenbank

Es gibt viele Clientanwendungen, die mit einem Datenbankserver kommunizieren können. Microsoft SQL Server verfügt über Enterprise Manager, um Datenbanken zu erstellen, Sicherheit festzulegen, Wartungsjobs und Abfragen auszuführen und natürlich Datenbanktabellen zu entwerfen und zu ändern.

Was ist SQL?:

SQL ist die Abkürzung für Structured Query Language und eine einfache Sprache, die Anweisungen zum Erstellen und Ändern der Struktur von Datenbanken und zum Ändern der in den Tabellen gespeicherten Daten enthält. Die wichtigsten Befehle zum Ändern und Abrufen von Daten sind:

  • Wählen - Ruft Daten ab.
  • Einfügen - Fügt eine oder mehrere Datenzeilen ein.
  • Aktualisieren - Ändert vorhandene Datenzeilen
  • Löschen - Löscht Datenzeilen.

Es gibt mehrere ANSI / ISO-Standards wie ANSI 92, einen der beliebtesten. Dies definiert eine minimale Teilmenge der unterstützten Anweisungen. Die meisten Compiler-Anbieter unterstützen diese Standards.

Fazit

Jede nicht triviale Anwendung kann eine Datenbank verwenden, und eine SQL-basierte Datenbank ist ein guter Ausgangspunkt. Sobald Sie die Konfiguration und Verwaltung der Datenbank beherrschen, müssen Sie SQL lernen, damit sie gut funktioniert.

Die Geschwindigkeit, mit der eine Datenbank Daten abrufen kann, ist erstaunlich und moderne RDBMS sind komplexe und hochoptimierte Anwendungen.

Open-Source-Datenbanken wie MySQL nähern sich schnell der Leistungsfähigkeit und Benutzerfreundlichkeit der kommerziellen Konkurrenten und steuern viele Datenbanken auf Websites.

Herstellen einer Verbindung zu einer Datenbank in Windows mithilfe von ADO

Programmatisch gibt es verschiedene APIs, die den Zugriff auf Datenbankserver ermöglichen. Unter Windows gehören dazu ODBC und Microsoft ADO. [h3 [Verwenden von ADO Solange es eine Provider-Software gibt, die eine Datenbank mit ADO verbindet, kann auf die Datenbank zugegriffen werden. Windows ab 2000 hat dies eingebaut.

Versuche Folgendes. Es sollte unter Windows XP und unter Windows 2000 funktionieren, wenn Sie jemals MDAC installiert haben. Wenn Sie dies nicht haben und versuchen möchten, besuchen Sie Microsoft.com, suchen Sie nach "MDAC Download" und laden Sie eine beliebige Version 2.6 oder höher herunter.

Erstellen Sie eine leere Datei mit dem Namen test.udl. Klicken Sie im Windows Explorer mit der rechten Maustaste auf die Datei und klicken Sie auf "Öffnen mit" Microsoft Data Access - OLE DB-Kerndienste ". In diesem Dialogfeld können Sie eine Verbindung zu einer beliebigen Datenbank mit einem installierten Anbieter herstellen, sogar zu Excel-Tabellen!

Wählen Sie die erste Registerkarte (Provider) aus, die standardmäßig auf der Registerkarte Verbindung geöffnet wird. Wählen Sie einen Anbieter aus und klicken Sie auf Weiter. Der Datenquellenname zeigt die verschiedenen verfügbaren Gerätetypen an. Klicken Sie nach Eingabe des Benutzernamens und des Passworts auf die Schaltfläche "Verbindung testen". Nachdem Sie auf die Schaltfläche OK geklickt haben, können Sie die Datei test.udl mit der Datei mit Wordpad öffnen. Es sollte solchen Text enthalten.

 [oledb]
; Alles nach dieser Zeile ist ein OLE DB-Initstring
Provider = SQLOLEDB.1; Persist Security Info = False; Benutzer-ID = sa; Anfangskatalog = dhbtest; Datenquelle = 127.0.0.1

Die dritte Zeile ist wichtig und enthält die Konfigurationsdetails. Wenn Ihre Datenbank ein Passwort hat, wird es hier angezeigt, dies ist also keine sichere Methode! Diese Zeichenfolge kann in Anwendungen integriert werden, die ADO verwenden, und ermöglicht eine Verbindung mit der angegebenen Datenbank.

ODBC verwenden

ODBC (Open Database Connectivity) bietet eine API-basierte Schnittstelle zu Datenbanken. Für nahezu jede vorhandene Datenbank stehen ODBC-Treiber zur Verfügung. ODBC bietet jedoch eine weitere Kommunikationsebene zwischen einer Anwendung und der Datenbank. Dies kann zu Leistungseinbußen führen.