Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist ein Datenbankschema?

In Datenbankbegriffen ein Schema (ausgesprochen „skee-muh“ oder „skee-mah“) ist die Organisation und Struktur einer Datenbank. Beide Schemata und Schemata können als Pluralformen verwendet werden.

Ein Schema enthält Schemaobjekte, bei denen es sich um Tabellen, Spalten, Datentypen, Ansichten, gespeicherte Prozeduren, Beziehungen, Primärschlüssel, Fremdschlüssel usw. handeln kann.

Ein Datenbankschema kann in einem visuellen Diagramm dargestellt werden, das die Datenbankobjekte und ihre Beziehung zueinander zeigt.

Oben sehen Sie ein einfaches Beispiel für ein Schemadiagramm. Es zeigt drei Tabellen zusammen mit ihren Datentypen, Beziehungen zwischen den Tabellen sowie ihren Primärschlüsseln und Fremdschlüsseln.

Hier ist ein komplexeres Beispiel eines Datenbankschemas:

In diesem Fall wurde das Schemadiagramm in vier Abschnitte unterteilt:

  • Kundendaten :Kundenbezogene Daten wie Name, Adresse usw.
  • Geschäft :Daten, die für den Geschäftsbetrieb erforderlich sind, wie z. B. Mitarbeiter, Filialstandorte, Zahlungsdetails usw.
  • Inventar :Details zu allen Produkten. In diesem Fall handelt es sich bei den Produkten um Filme, sie enthalten also Daten wie den Filmtitel, seine Kategorie, die Schauspieler usw.
  • Aufrufe :Spezieller Blick auf Daten, die für Bewertungen verwendet werden.

Wenn wir uns also diese Schemadiagramme ansehen, könnten wir fortfahren und eine Datenbank erstellen. Tatsächlich können Sie mit MySQL Workbench eine CREATE TABLE generieren Skript direkt aus dem Diagramm. Anschließend können Sie mit dem Skript eine Datenbank erstellen. Sie können sogar eine Datenbank in ein Diagramm zurückentwickeln.

Ist ein Schema und eine Datenbank dasselbe?

Es gibt viel Verwirrung über Schemata, wenn es um Datenbanken geht. Oft stellt sich die Frage, ob es einen Unterschied zwischen Schemas und Datenbanken gibt und wenn ja, was der Unterschied ist.

Hängt vom Anbieter ab

Ein Grund für die Verwirrung liegt zum Teil darin, dass Datenbanksysteme Schemas auf ihre eigene Weise angehen.

  • Die MySQL-Dokumentation besagt, dass physikalisch ein Schema gleichbedeutend mit einer Datenbank ist . Daher sind ein Schema und eine Datenbank dasselbe .
  • In der Oracle Database-Dokumentation heißt es jedoch, dass bestimmte Objekte in einer Datenbank, aber nicht in einem Schema gespeichert werden können. Daher sind ein Schema und eine Datenbank zwei verschiedene Dinge .
  • Und gemäß diesem technischen Artikel zu SQL Server ist ein Schema eine separate Entität innerhalb der Datenbank. Sie sind also zwei verschiedene Dinge .

Je nach verwendetem RDBMS können Schemas und Datenbanken dasselbe sein oder nicht.

Was ist mit dem SQL-Standard?

Der SQL-Standard ISO/IEC 9075-1 definiert ein Schema als eine persistente, benannte Sammlung von Deskriptoren .

Wenn Sie vorher verwirrt waren, hoffe ich, dass ich es nicht nur noch schlimmer gemacht habe…

Weite Bedeutung

Ein weiterer Grund für die Verwirrung liegt wahrscheinlich darin begründet, dass der Begriff Schema hat eine so weite Bedeutung. Es hat in verschiedenen Kontexten unterschiedliche Konnotationen.

Das Wort Schema stammt vom griechischen Wort skhēma , was Formular bedeutet , Abbildung , Form , oder planen .

Schemata werden in der Psychologie verwendet, um ein organisiertes Denk- oder Verhaltensmuster zu beschreiben, das Informationskategorien und die Beziehungen zwischen ihnen organisiert.

Bevor wir eine Datenbank entwerfen, müssen wir uns auch die Informationskategorien und die Beziehungen zwischen ihnen ansehen. Wir müssen ein Konzept erstellen Schema, bevor wir überhaupt mit dem physischen beginnen Schema innerhalb des DBMS.

In der Softwareentwicklung könnte man bei der Diskussion von Schemata konzeptionell diskutieren Schemata, physisch Schemas, intern Schemas, extern Schemata, logisch Schemata usw. Jede davon hat ihre eigene spezifische Bedeutung.

Schemadefinitionen von DBMS

Hier ist eine kurze Schemadefinition der drei führenden Datenbanksysteme:

MySQL

Konzeptionell ist ein Schema eine Menge zusammenhängender Datenbankobjekte wie Tabellen, Tabellenspalten, Datentypen der Spalten, Indizes, Fremdschlüssel usw.

….

In MySQL physisch ein Schema ist gleichbedeutend mit einer Datenbank . Sie können das Schlüsselwort SCHEMA ersetzen statt DATABASE in MySQL SQL-Syntax, zum Beispiel mit CREATE SCHEMA statt CREATE DATABASE .

Quelle:"MySQL-Glossar". MySQL 5.7 Referenzhandbuch. MySQL. Abgerufen am 6. Juni 2016.

SQL-Server

Die Namen von Tabellen, Feldern, Datentypen sowie Primär- und Fremdschlüsseln einer Datenbank.

"Glossar". Technische Dokumentation zu SQL Server 2016. Microsoft-Entwicklernetzwerk. Abgerufen am 6. Juni 2016.

 Oracle-Datenbank

Das Schemasystem von Oracle Database unterscheidet sich deutlich von den anderen Systemen. Das Schema von Oracle ist stark an den Datenbankbenutzer gebunden.

Ein Schema ist eine Sammlung logischer Datenstrukturen oder Schemaobjekte. Ein Schema gehört einem Datenbankbenutzer und hat denselben Namen wie dieser Benutzer. Jeder Benutzer besitzt ein einzelnes Schema.

Quelle:"Datenbankobjekte". Oracle Database Online-Dokumentation 12c Release 1 (12.1). Oracle-Hilfezentrum. Abgerufen am 6. Juni 2016.

Dieser Artikel über Schemadefinitionen durch DBMS enthält weitere Einzelheiten.

Schemas erstellen

Trotz ihrer Unterschiede bei der Definition von Schemas unterstützt jedes der drei oben genannten DBMSs das CREATE SCHEMA Aussage.

Und hier endet die Ähnlichkeit.

MySQL

In MySQL CREATE SCHEMA erstellt eine Datenbank.

Das liegt daran, dass CREATE SCHEMA ist ein Synonym für CREATE DATABASE . Mit anderen Worten, Sie können CREATE SCHEMA verwenden oder CREATE DATABASE dasselbe zu tun.

Oracle-Datenbank

In Oracle Database das CREATE SCHEMA -Anweisung erstellt nicht wirklich ein Schema. Dies liegt daran, dass mit jedem Datenbankbenutzer bereits ein Schema erstellt wird.

In Oracle der CREATE USER -Anweisung erstellt das Schema.

In Oracle CREATE SCHEMA -Anweisung können Sie Ihr Schema mit Tabellen und Ansichten füllen und Berechtigungen für diese Objekte erteilen, ohne mehrere SQL-Anweisungen in mehreren Transaktionen ausgeben zu müssen.

SQL-Server

In SQL Server CREATE SCHEMA erstellt ein Schema mit dem Namen, den Sie ihm geben.

Im Gegensatz zu MySQL ist das CREATE SCHEMA -Anweisung erstellt ein Schema, das separat von der Datenbank definiert wird.

Im Gegensatz zu Oracle ist das CREATE SCHEMA -Anweisung erstellt das Schema tatsächlich.

Sobald Sie das Schema in SQL Server erstellt haben, können Sie ihm Benutzer und Objekte hinzufügen.

Schlussfolgerung

Der Begriff Schema kann in vielen verschiedenen Kontexten verwendet werden. Im Zusammenhang mit der Erstellung von Schemas innerhalb eines bestimmten Datenbankverwaltungssystems müssen Sie damit arbeiten, dass DBMS Schemas definiert.

Und wenn Sie zu einem neuen DBMS wechseln, sehen Sie unbedingt nach, wie dieses System Schemas definiert.