Dies ist wahrscheinlich eine n00blike (oder schlimmer) Frage. Aber ich habe ein Schema immer als Tabellendefinition in einer Datenbank angesehen. Das ist falsch oder nicht ganz richtig. Ich erinnere mich nicht viel an meine Datenbankkurse.
Dies ist wahrscheinlich eine n00blike (oder schlimmer) Frage. Aber ich habe ein Schema immer als Tabellendefinition in einer Datenbank angesehen. Das ist falsch oder nicht ganz richtig. Ich erinnere mich nicht viel an meine Datenbankkurse.
Antworten:
Schema : Datenbank : Tabelle :: Grundriss : Haus : Raum
Ein Beziehungsschema ist die logische Definition einer Tabelle. Es definiert den Namen der Tabelle sowie den Namen und den Typ jeder Spalte. Es ist wie ein Plan oder eine Blaupause. Ein Datenbankschema ist die Sammlung von Beziehungsschemata für eine gesamte Datenbank.
Eine Tabelle ist eine Struktur mit einer Reihe von Zeilen (auch als "Tupel" bezeichnet), von denen jede die vom Schema definierten Attribute aufweist. Tabellen können auch Indizes enthalten, um das Nachschlagen von Werten in bestimmten Spalten zu erleichtern.
Eine Datenbank ist formal jede Sammlung von Daten. In diesem Zusammenhang wäre die Datenbank eine Sammlung von Tabellen. Ein DBMS (Database Management System) ist die Software (wie MySQL, SQL Server, Oracle usw.), die eine Datenbank verwaltet und ausführt.
Kurz gesagt, ein Schema ist die Definition für die gesamte Datenbank. Es enthält also Tabellen, Ansichten, gespeicherte Prozeduren, Indizes, Primär- und Fremdschlüssel usw.
Es wurde gezeigt, dass sich diese bestimmte Veröffentlichung nur auf Oracle bezieht, und die Definition des Schemas ändert sich im Kontext einer anderen Datenbank.
Wahrscheinlich die Art, einfach zu googeln, aber zu Ihrer Information scheinen die Begriffe in ihren Definitionen zu variieren, was die nervigste Sache ist :)
In Oracle ist eine Datenbank eine Datenbank. Stellen Sie sich dies in Ihrem Kopf als die Datendateien und die Redo-Protokolle und die tatsächliche physische Präsenz auf der Festplatte der Datenbank selbst vor (dh nicht die Instanz).
Ein Schema ist effektiv ein Benutzer. Insbesondere handelt es sich um eine Reihe von Tabellen / Prozessen / Indizes usw., die einem Benutzer gehören. Ein anderer Benutzer hat ein anderes Schema (Tabellen, die er / sie besitzt). Der Benutzer kann jedoch auch alle Schemas anzeigen, für die er Berechtigungen ausgewählt hat. Eine Datenbank kann also aus Hunderten von Schemas und jedem Schema aus Hunderten von Tabellen bestehen. Sie können Tabellen mit demselben Namen in verschiedenen Schemas haben, die sich in derselben Datenbank befinden.
Eine Tabelle ist eine Tabelle, eine Reihe von Zeilen und Spalten, die Daten enthalten und in Schemas enthalten sind.
Die Definitionen können beispielsweise in SQL Server unterschiedlich sein. Mir ist das nicht bewusst.
Das Verhalten eines Schemas scheint in der OOP-Welt wie ein übergeordnetes Objekt zu sein. Es ist also keine Datenbank. Vielleicht ist dieser Link nützlich.
In MySQL sind die beiden jedoch gleichwertig. Das Schlüsselwort DATABASE oder DATABASES kann überall dort durch SCHEMA oder SCHEMAS ersetzt werden. Beispiele:
SCHEMA & DATABASE-Begriffe sind DBMS-abhängig.
Eine Tabelle ist eine Reihe von Datenelementen (Werten), die mithilfe eines Modells aus vertikalen Spalten (die durch ihren Namen gekennzeichnet sind) und horizontalen Zeilen organisiert sind. Eine Datenbank enthält eine oder mehrere (normalerweise) Tabellen . Und Sie speichern Ihre Daten in diesen Tabellen. Die Tabellen können miteinander verknüpft sein ( siehe hier ).
Mehr zu Schemata:
In SQL 2005 ist ein Schema eine Möglichkeit, Objekte zu gruppieren. Es ist ein Container, in den Sie Objekte legen können. Menschen können dieses Objekt besitzen. Sie können Rechte für das Schema gewähren.
Im Jahr 2000 entsprach ein Schema einem Benutzer. Jetzt hat es sich gelöst und ist sehr nützlich. Sie können alle Ihre Benutzerprozesse in ein bestimmtes Schema und Ihre Administratorprozesse in ein anderes Schema werfen. Wenn Sie dem entsprechenden Benutzer / der entsprechenden Rolle EXECUTE gewähren, können Sie EXECUTE für bestimmte Verfahren gewähren. Nett.
Die Punktnotation würde so lauten:
Server.Database.Schema.Object
oder
myserver01.Adventureworks.Accounting.Beans
A Schema
ist eine Sammlung von Datenbankobjekten, die auch logische Strukturen enthält. Es hat den Namen des Benutzers, dem es gehört. A database
kann eine beliebige Anzahl von Schemas haben. Eine Tabelle aus einer Datenbank kann in zwei verschiedenen Schemas mit demselben Namen angezeigt werden. Ein Benutzer kann jedes Schema anzeigen, für das ihm ein Auswahlrecht zugewiesen wurde.
Im Gegensatz zu einigen der oben genannten Antworten basiert mein Verständnis auf der Erfahrung mit jedem von ihnen:
database/schema :: table
database :: (schema/namespace ::) table
database/schema/user :: (tablespace ::) table
Bitte korrigieren Sie mich, ob der Tablespace bei Oracle optional ist oder nicht. Es ist lange her, seit ich mich daran erinnere, sie verwendet zu haben.
Eine Datenbank enthält ein oder mehrere benannte Schemas, die wiederum Tabellen enthalten. Schemata enthalten auch andere Arten von benannten Objekten, einschließlich Datentypen, Funktionen und Operatoren. Der gleiche 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 jedem der Schemas in der Datenbank zugreifen, mit der er verbunden ist, sofern er dazu berechtigt ist.
Es gibt mehrere Gründe, warum man Schemata verwenden möchte:
Damit viele Benutzer eine Datenbank verwenden können, ohne sich gegenseitig zu stören.
So organisieren Sie Datenbankobjekte in logischen Gruppen, um sie übersichtlicher zu gestalten.
Anwendungen von Drittanbietern können in separate Schemas eingefügt werden, damit sie nicht mit den Namen anderer Objekte kollidieren.
Schemas sind analog zu Verzeichnissen auf Betriebssystemebene, außer dass Schemas nicht verschachtelt werden können.
Offizielle Unterlagen finden Sie unter https://www.postgresql.org/docs/9.1/ddl-schemas.html
Schemata enthalten Datenbanken.
Datenbanken sind Teil eines Schemas.
Also, Schemata> Datenbanken.
Schemas enthalten Ansichten, gespeicherte Prozeduren, Datenbanken, Trigger usw.
Ein Schema ist kein Plan für die gesamte Datenbank. Es ist ein Plan / Container für eine Teilmenge von Objekten (ex.tables) in einer Datenbank.
Dies bedeutet, dass Sie mehrere Objekte (z. B. Tabellen) in einer Datenbank haben können, die nicht unbedingt unter dieselbe Funktionskategorie fallen. Sie können sie also unter verschiedenen Schemas gruppieren und ihnen unterschiedliche Benutzerzugriffsberechtigungen erteilen.
Trotzdem bin ich mir nicht sicher, ob Sie eine Tabelle unter mehreren Schemata haben können. Die Management Studio-Benutzeroberfläche bietet eine Dropdown-Liste zum Zuweisen eines Schemas zu einer Tabelle, sodass nur ein Schema ausgewählt werden kann. Ich denke, wenn Sie es mit TSQL tun, können 2 (oder mehrere) verschiedene Objekte mit unterschiedlichen Objekt-IDs erstellt werden.
Ein Datenbank - Schema ist ein Weg , um logisch Gruppenobjekte wie Tabellen, Views, Stored Procedures usw. Denken Sie an einem Schema als Container von Objekten. Und Tabellen sind Sammlungen von Zeilen und Spalten. Kombination aller Tabellen ergibt eine Datenbank.