Genau genommen gibt es in MySql keinen Unterschied zwischen Datenbank und Schema .
Dies ist jedoch bei anderen Datenbankmodulen wie SQL Server nicht der Fall. In SQL Server:,
Jede Tabelle gehört zu einer Gruppe von Objekten in der Datenbank, die als Datenbankschema bezeichnet wird . Es ist ein Container oder Namespace ( Abfragen von Microsoft SQL Server 2012 )
Standardmäßig gehören alle Tabellen in SQL Server zu einem Standardschema namens dbo . Wenn Sie eine Tabelle abfragen, die keinem bestimmten Schema zugeordnet wurde, können Sie Folgendes tun:
SELECT *
FROM your_table
was äquivalent ist zu:
SELECT *
FROM dbo.your_table
Jetzt ermöglicht SQL Server die Erstellung verschiedener Schemata, sodass Sie Tabellen gruppieren können, die einen ähnlichen Zweck haben. Das hilft, die Datenbank zu organisieren.
Sie können beispielsweise ein Schema namens " Verkauf" mit Tabellen wie Rechnungen , Gläubigern (und anderen mit Verkäufen verbundenen) und ein anderes Schema namens " Suche" mit Tabellen wie Ländern , Währungen , Abonnementtypen (und jeder anderen Tabelle, die als Look verwendet wird) erstellen Tisch).
Die Tabellen, die einer bestimmten Domäne zugeordnet sind, werden in SQL Server Studio Manager mit dem Schemanamen vor dem Tabellennamen angezeigt (genau wie die Tabellen, die zum Standard- Dbo- Schema gehören).
In SQL Server gibt es spezielle Schemas. Um dasselbe Buch zu zitieren:
Es gibt mehrere integrierte Datenbankschemata, die nicht gelöscht oder geändert werden können:
1) dbo , das Standardschema.
2) Gast enthält Objekte, die einem Gastbenutzer zur Verfügung stehen ("Gastbenutzer" ist eine spezielle Rolle in der SQL Server-Umgangssprache mit einigen Standard- und stark eingeschränkten Berechtigungen). Kaum benutzt.
3) INFORMATION_SCHEMA , das von den Informationsschemaansichten verwendet wird
4) sys , ausschließlich für den internen Gebrauch von SQL Server reserviert
Schemata dienen nicht nur der Gruppierung. Es ist tatsächlich möglich, verschiedenen Benutzern unterschiedliche Berechtigungen für jedes Schema zu erteilen, wie in MSDN beschrieben .
Auf diese Weise könnte die oben erwähnte Schemasuche jedem Standardbenutzer in der Datenbank zur Verfügung gestellt werden (z. B. SELECT
nur Berechtigungen), während eine Tabelle mit dem Namen " Lieferantenbankkontodetails" in einem anderen Schema namens " Finanziell" zugewiesen werden kann , um nur den Benutzern in "Zugriff" zu gewähren die Gruppe accounts
(nur ein Beispiel, Sie bekommen die Idee).
Zum Schluss noch einmal das gleiche Buch zitieren:
Es ist nicht dasselbe Datenbankschema und Tabellenschema . Ersteres ist der Namespace einer Tabelle, während letzteres auf die Tabellendefinition verweist