Was ist das Schema einer DB?

14/03/2009 - 19:53 von Harald Bacik | Report spam
Hey - ich schon wieder

Der Umstieg von mySQL nach MSSQL ist ja doch nicht so einfach, wie es am
Anfang erschien.

Also, in mySQL gibt es verschiedene Datenbanken & jede dieser Datenbank
enthàlt x-beliebige Tabellen.
Soweit, so einfach.
Was sind aber in MSSQL Schemen?
Ich probierte 2 Tools zum konvertieren meiner mySQL Datenbank aus & auf
einmal fand ich ein Schema dbo & in diesem Schema sàmtliche Tabellen & beim 2
Konvertieren bekam ich ein Schema, dass den selben Namen hat, wie die DB
selbst. -> darunter wieder alle Tabellen...

Was hat es damit auf sich?

DANKE
 

Lesen sie die antworten

#1 Olaf Pietsch
14/03/2009 - 21:29 | Warnen spam
Hallo Harald,
"Harald Bacik" schrieb im
Newsbeitrag news:
Hey - ich schon wieder


jo

Der Umstieg von mySQL nach MSSQL ist ja doch nicht so einfach, wie es am
Anfang erschien.


Wenn man mehr als eine Plattform kennt, dann kann man die Vorteile
jeweiligen schàtzen.

Was sind aber in MSSQL Schemen?


ich möchte es mit meinen Worten sagen. Jedes Objekt der Datenbank gehört
jemanden, nennen wir diesen mal Owner. Also in der Form owner.objekt. Damit
werden Namensgleichheiten in den Objektnamen nicht zu einem Problem, denn
man gibt immer den Eigentümer an, Willi.Pers, Hugo.Pers, das sind jeweils
unterschiedliche Tabellen, obwohl die Objekte der unterschiedlichen User
gleich benannt sind.

So nun verlàsst der Owner das Unternehmen und damit die Datenbank. Nun hat
man ein Problem, denn den zugehörigen User gibt es nicht mehr.

Das Schema abstrahiert das Problem. Eine Datenbankobjekt wird nicht mehr
einem "echtem" User zugeordnet sondern einem Eigentümer=Schema (Namensraum).
Im o.g. Beispiel könnte man somit sagen: Personalstelle.Pers,
Buchhaltung.Pers. In einem Schema können beliebige User arbeiten, z. B. eine
bestimmte Entwicklergruppe erstellt Tabellen für den Buchhaltungsbereich.

Ich probierte 2 Tools zum konvertieren meiner mySQL Datenbank aus & auf
einmal fand ich ein Schema dbo & in diesem Schema sàmtliche Tabellen &
beim 2
Konvertieren bekam ich ein Schema, dass den selben Namen hat, wie die DB
selbst. -> darunter wieder alle Tabellen...



dbo ist das default Schema im SQL Server. Füher hatte der SQL Server nur
ein Schema= dbo (das ist hier von mir vereinfacht dargestellt). Wenn man
Objekte = Tabellen beim SQL Server anspricht, sollte man Owner.Objekt
angeben.

Wir haben Datenbanken seit langem im Einsatz und arbeiten immer nur bei den
Objekten mit einem Schema=dbo.

Ich möchte Dir BOL mal wieder empfehlen:
Trennung von Benutzer und Schema
http://msdn.microsoft.com/de-de/lib...90387.aspx

BOL ist _die_ Hilfe=Online Dokumentation zum SQL Server!

PS: Ansonsten schau doch mal bei den Treffen PASS Deutschland e.V. vorbei,
s. u.
Gruß Olaf
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Blog (http://www.sqlpass.de/PASSUserBlogs...x?BlogID=3)
Regionalgruppe Köln/Bonn/Düsseldorf
(http://www.sqlpass.de/Regionalgrupp...fault.aspx)

Ähnliche fragen