211 Stimmen

Unterschied zwischen Datenbank und Schema

Was ist der Unterschied zwischen einer Datenbank und einem Schema in SQL Server? Beide sind Container für Tabellen und Daten.

Wenn ein Schema gelöscht wird, werden dann alle Tabellen, die in diesem Schema enthalten sind, automatisch gelöscht oder erst, wenn die Datenbank gelöscht wird?

212voto

RichardTheKiwi Punkte 102469

Eine Datenbank ist der Hauptcontainer, der die Daten- und Protokolldateien sowie alle Schemata darin enthält. Sie sichern immer eine Datenbank, da sie eine eigenständige Einheit darstellt.

Schemata sind wie Ordner innerhalb einer Datenbank und werden hauptsächlich verwendet, um logische Objekte zusammenzufassen, was die Festlegung von Berechtigungen nach Schema vereinfacht.

EDIT für zusätzliche Frage

drop schema test1

Msg 3729, Level 16, State 1, Line 1
Schema 'test1' kann nicht gelöscht werden, da es von Objekt 'copyme' referenziert wird.

Sie können ein Schema nicht löschen, wenn es verwendet wird. Sie müssen zuerst alle Objekte aus dem Schema entfernen.

Weiterführende Lektüre:

  1. Wozu sind SQL Server Schemata gut?
  2. MSDN: Benutzer-Schema-Trennung

6 Stimmen

Im sql server 2005 und höheren Versionen, wird standardmäßig alles im DBO-Schema erstellt, wenn wir keinen Schemanamen während der Erstellung von Datenbankobjekten angeben?

0 Stimmen

@sqlchild ja, das stimmt. Ein Schema ist erforderlich, jedes Objekt wird in einem Schema gehalten, daher ist das Standard-Schema dbo.

0 Stimmen

Würden Sie es in Betracht ziehen, Tabellen in derselben Datenbank zu replizieren und sie gemäß unterschiedlicher Kunden in Schemata zu gruppieren, anstatt für jeden Kunden eine separate Datenbank zu erstellen, eine gute Praxis?

30voto

ceth Punkte 42172

Schema ist eine Möglichkeit, die Objekte in einer Datenbank zu kategorisieren. Es kann nützlich sein, wenn mehrere Anwendungen eine einzige Datenbank teilen und es einen gemeinsamen Satz von Daten gibt, auf den alle Anwendungen zugreifen.

13voto

Saghir A. Khatri Punkte 3429

Datenbank ist wie ein Container für Daten mit einem Schema, und das Schema ist das Layout der Tabellen mit Datentypen, Beziehungen und anderen Dingen

5 Stimmen

Dies ist spezifisch für SQL Server nicht korrekt; Tabellen haben in allgemeinen Datenbanken Schemas, ja, aber Schemas (aus welchem Grund auch immer) in SQL Server sind auch effektiv Namensräume, die Tabellen enthalten (und diese Tabellen haben auch Schemata im traditionellen Sinn). Unglücklicher Name, den Microsoft für sie gewählt hat - namespace ist weitaus angemessener.

8voto

Robert Punkte 3218

Das Schema gibt an, welche Tabellen in der Datenbank sind, welche Spalten sie haben und wie sie miteinander in Beziehung stehen. Jede Datenbank hat ihr eigenes Schema.

0 Stimmen

Aber wenn ich kein Schema explizit erstelle und Tabellen erstelle, ohne einen Schemanamen zu erwähnen, wo werden die Tabellen erstellt? Standardmäßig müssen sie doch im dbo-Schema landen. Oder?

0 Stimmen

Ja, aber normalerweise arbeitet man nicht manuell mit dem Schema, man erstellt Tabellen entweder mit einem Verwaltungstool oder verwendet die Code-First-Funktion eines ORM-Tools

0 Stimmen

Ich verwende SQL Server Management Studio und erwähne keinen Schemanamen.

6voto

Hardik Mishra Punkte 14459

Schema in SQL Server ist ein Objekt, das konzeptionell Definitionen für andere Datenbankobjekte wie Tabellen, Ansichten, gespeicherte Prozeduren usw. enthält.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X