it-swarm.com.de

Was ist der Unterschied zwischen einem Schema und einer Tabelle und einer Datenbank?

Dies ist wahrscheinlich eine n00blike (oder schlimmere) Frage. Aber ich habe ein Schema immer als Tabellendefinition in einer Datenbank angesehen. Das ist falsch oder nicht ganz richtig. Ich erinnere mich nicht sehr an meine Datenbankkurse.

136
anbanm

schema : Datenbank : Tabelle :: Grundriss : Haus : Raum

219
MusiGenesis

Ein Beziehungsschema ist die logische Definition einer Tabelle - es definiert den Namen der Tabelle und den Namen und Typ jeder Spalte. Es ist wie ein Plan oder eine Blaupause. Ein Datenbankschema ist die Sammlung von Beziehungsschemata für eine gesamte Datenbank.

Ein Tabelle ist eine Struktur mit einer Reihe von Zeilen (auch "Tupel" genannt), von denen jede die durch das Schema definierten Attribute hat. Tabellen können auch Indizes enthalten, um die Suche nach Werten in bestimmten Spalten zu erleichtern.

Ein Datenbank ist formal jede Sammlung von Daten. In diesem Zusammenhang wäre die Datenbank eine Sammlung von Tabellen. Ein DBMS (Datenbankverwaltungssystem) ist die Software (wie MySQL, SQL Server, Oracle usw.), die eine Datenbank verwaltet und ausführt.

111
Ian Varley

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.

16
Graeme Perrow

Es wurde gezeigt, dass sich diese bestimmte Buchung nur auf Oracle bezieht und sich die Definition des Schemas ändert, wenn sie sich im Kontext einer anderen Datenbank befindet.

Wahrscheinlich ist es etwas Besonderes, nur zu googeln, aber zu Ihrer Information: Die Definitionen der Begriffe scheinen zu variieren, was am ärgerlichsten ist :)

In Oracle ist eine Datenbank eine Datenbank. Stellen Sie sich dies in Ihrem Kopf als die Datendateien und die Redo-Protokolle sowie die tatsächliche physische Präsenz auf der Festplatte der Datenbank selbst (d. H. Nicht der Instanz) vor.

Ein Schema ist effektiv ein Benutzer. Genauer gesagt handelt es sich um eine Reihe von Tabellen/Prozessen/Indizes usw., die einem Benutzer gehören. Ein anderer Benutzer hat ein anderes Schema (Tabellen, deren Eigentümer er ist). Der Benutzer kann jedoch auch alle Schemata anzeigen, für die er Berechtigungen ausgewählt hat. Eine Datenbank kann also aus Hunderten von Schemas und für jedes Schema aus Hunderten von Tabellen bestehen. Sie können Tabellen mit demselben Namen in verschiedenen Schemata haben, die sich in derselben Datenbank befinden.

Eine Tabelle ist eine Tabelle, eine Reihe von Zeilen und Spalten, die Daten enthalten und in Schemata enthalten sind.

Beispielsweise können die Definitionen in SQL Server unterschiedlich sein. Mir ist das nicht bewusst.

11
Robert

Das Schema verhält sich wie ein übergeordnetes Objekt, wie es in der Welt OOP) zu sehen ist. Es ist also keine Datenbank selbst. Vielleicht ist dieser Link nützlich.

In MySQL sind die beiden jedoch gleichwertig. Das Schlüsselwort DATABASE oder DATABASES kann nach Bedarf durch SCHEMA oder SCHEMAS ersetzt werden. Beispiele:

  • CREATE DATABASE <=> CREATE SCHEMA
  • DATENBANKEN ANZEIGEN <=> ZEIGEN

Dokumentation von MySQL

SCHEMA- & DATABASE-Begriffe sind DBMS-abhängig.

Eine Tabelle ist ein Satz von Datenelementen (Werten), die anhand eines Modells aus vertikalen Spalten (die durch ihren Namen gekennzeichnet sind) und horizontalen Zeilen organisiert werden. Eine Datenbank enthält eine oder mehrere (normalerweise) Tabellen . Und Sie speichern Ihre Daten in diesen Tabellen. Die Tabellen können miteinander in Beziehung gesetzt werden ( siehe hier ).

10
earthdan

Weitere Informationen 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. Leute können dieses Objekt besitzen. Sie können Rechte für das Schema erteilen.

Im Jahr 2000 entsprach ein Schema einem Benutzer. Jetzt hat es sich gelöst und ist recht nützlich. Sie könnten alle Ihre Benutzer-Procs in ein bestimmtes Schema und Ihre Administrator-Procs in ein anderes werfen. Gewähren Sie EXECUTE für den entsprechenden Benutzer/die entsprechende Rolle, und Sie sind damit fertig, EXECUTE für bestimmte Verfahren zu gewähren. Nett.

Die Punktnotation würde so aussehen:

Server.Database.Schema.Object

oder

myserver01.Adventureworks.Accounting.Beans

2
Sam

Ein Schema ist eine Sammlung von Datenbankobjekten, die auch logische Strukturen enthält. Es hat den Namen des Benutzers, dem es gehört. Ein database kann eine beliebige Anzahl von Schemas haben. Eine Tabelle aus einer Datenbank kann in zwei verschiedenen Schemata mit demselben Namen angezeigt werden. Ein Benutzer kann jedes Schema anzeigen, für das ihm Auswahlrechte zugewiesen wurden.

2
Iswarya

Im Gegensatz zu einigen der obigen Antworten basiert mein Verständnis auf der Erfahrung mit jedem von ihnen:

  • MySQL: database/schema :: table
  • SQL Server: database :: (schema/namespace ::) table
  • Oracle: database/schema/user :: (tablespace ::) table

Bitte korrigieren Sie mich, ob Tablespace bei Oracle optional ist oder nicht. Es ist lange her, dass ich mich daran erinnere, sie verwendet zu haben.

1

Wie MusiGenesis in den meisten Datenbanken so schön ausgedrückt hat:

schema: Datenbank: Tabelle :: Grundriss: Haus: Raum

In Oracle ist es jedoch möglicherweise einfacher, an Folgendes zu denken:

schema: Datenbank: Tabelle :: Besitzer: Haus: Raum

1
cmrust

In Oracle Schema ist ein Benutzer unter einer Datenbank. Beispielsweise ist scott ein Schema in database orcl. In einer Datenbank haben wir möglicherweise viele Schemas wie Scott

1
prasadj

Eine Datenbank Schema ist eine Möglichkeit, Objekte wie Tabellen, Ansichten, gespeicherte Prozeduren usw. logisch zu gruppieren. Stellen Sie sich ein Schema als einen Container mit Objekten vor. Und Tabellen sind Sammlungen von Zeilen und Spalten. Kombination aller Tabellen ergibt eine db.

0
vivek chandel

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 notwendigerweise unter dieselbe Funktionskategorie fallen. So können Sie sie unter verschiedenen Schemata 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 ein Dropdown-Menü zum Zuweisen eines Schemas zu einer Tabelle, sodass nur ein Schema ausgewählt werden kann. Ich denke, wenn Sie es mit TSQL tun, kann es 2 (oder mehrere) verschiedene Objekte mit verschiedenen Objekt-IDs erstellen.

0
Gadam

Schemata enthalten Datenbanken.

Datenbanken sind Teil eines Schemas.

Also, Schemata> Datenbanken.

Schemas enthalten Ansichten, gespeicherte Prozeduren, Datenbanken, Auslöser usw.

0
Rafael Lopes