it-swarm.com.de

Unterschied zwischen Schema / Datenbank in MySQL

Gibt es einen Unterschied zwischen einem Schema und einer Datenbank in MySQL? In SQL Server ist eine Datenbank ein Container höherer Ebene in Bezug auf ein Schema.

Ich habe das gelesen Create Schema und Create Database mache im Wesentlichen dasselbe in MySQL, was mich glauben lässt, dass Schemata und Datenbanken unterschiedliche Wörter für dieselben Objekte sind.

247
Lloyd Banks

Wie im MySQL-Glossar definiert:

In MySQL ist physikalisch ein Schema gleichbedeutend mit einem Datenbank. Sie können das Schlüsselwort SCHEMA anstelle von DATABASE in der MySQL SQL-Syntax ersetzen, z. B. mit CREATE SCHEMA anstatt CREATE DATABASE.

Einige andere Datenbankprodukte zeichnen sich durch eine Unterscheidung aus. Im Oracle Database-Produkt repräsentiert beispielsweise ein Schema nur einen Teil einer Datenbank: die Tabellen und andere Objekte, die einem einzelnen Benutzer gehören.

290
eggyal

Hängt vom Datenbankserver ab. MySQL kümmert sich nicht darum, es ist im Grunde dasselbe.

Oracle, DB2 und andere Datenbanklösungen auf Unternehmensebene unterscheiden sich. Normalerweise ist ein Schema ist eine Auflistung von Tabellen und ein Datenbank ist eine Auflistung von Schemata.

54
user2631022

Unter Bezugnahme auf MySQL-Dokumentation ,

CREATE DATABASE erstellt eine Datenbank mit dem angegebenen Namen. Um diese Anweisung verwenden zu können, benötigen Sie das Zugriffsrecht CREATE für die Datenbank. CREATE SCHEMA ist ein Synonym für CREATE DATABASE ab MySQL 5.0.2.

16
Akash KC

PostgreSQL unterstützt Schemata, eine Teilmenge einer Datenbank: https://www.postgresql.org/docs/current/static/ddl-schemas.html

Eine Datenbank enthält ein oder mehrere benannte Schemata, die wiederum Tabellen enthalten. Schemas enthalten auch andere Arten von benannten Objekten, einschließlich Datentypen, Funktionen und Operatoren. Derselbe Objektname kann ohne Konflikte in verschiedenen Schemas verwendet werden. Beispielsweise können sowohl schema1 als auch myschema Tabellen mit dem Namen mytable enthalten. Im Gegensatz zu Datenbanken sind Schemas nicht starr voneinander getrennt: Ein Benutzer kann auf Objekte in allen Schemas in der Datenbank zugreifen, mit denen er verbunden ist, sofern er über die entsprechenden Berechtigungen verfügt.

Schemas sind mit Verzeichnissen auf Betriebssystemebene vergleichbar, mit der Ausnahme, dass Schemas nicht verschachtelt werden können.

Meiner bescheidenen Meinung nach ist MySQL keine Referenzdatenbank. Sie sollten niemals MySQL für eine Erklärung zitieren. MySQL implementiert nicht-standardmäßiges SQL und behauptet manchmal, dass Features nicht unterstützt werden. In MySQL erstellt CREATE beispielsweise nur eine DATABASE. Es ist wirklich irreführend Benutzer.

Diese Art von Vokabeln wird von DBAs "MySQLism" genannt.

6
Jean-Michel P.

Ja, diese Begriffe werden in Bezug auf MySQL synonym verwendet. Häufig wird jedoch der gesamte Datenbankserver fälschlicherweise als Datenbank bezeichnet.

3
Mike Brant

in MySQL Schema ist Synonym für Datenbank . Es ist ziemlich verwirrend für Anfänger, die auf MySQL umsteigen und am ersten Tag das Word -Schema finden, also keine Sorge, da beide gleich sind.

Wenn Sie MySQL zum ersten Mal starten, müssen Sie eine Datenbank erstellen (wie jedes andere Datenbanksystem auch), damit Sie CREATE SCHEMA verwenden können. Dies ist nichts anderes als CREATE DATABASE

In einigen anderen Datenbanksystemen stellt das Schema einen Teil der Datenbank oder eine Auflistung von Tabellen dar, und die Auflistung des Schemas ist eine Datenbank.

2
Riz

Beispielsweise beziehen sich Microsoft SQL Server-Schemas auf einen einzelnen Benutzer und sind eine weitere Ebene eines Containers in der Reihenfolge, in der Server, Datenbank, Schema, Tabellen und Objekte angegeben werden.

Wenn Sie beispielsweise dbo.table_a aktualisieren möchten und die Syntax nicht voll qualifiziert ist, wie z. B. UPDATE table.a, kann das DBMS nicht entscheiden, die vorgesehene Tabelle zu verwenden. Grundsätzlich verwendet das DBMS standardmäßig myuser.table_a

0
EliD