Heim >Datenbank >Oracle >Was ist ein Schema in Oracle?

Was ist ein Schema in Oracle?

WBOY
WBOYOriginal
2022-05-09 10:34:1810650Durchsuche

In Oracle ist ein Schema eine Sammlung von Datenbankobjekten. Ein Oracle-Benutzer entspricht einem Schema, und ein Schema kann nur durch Erstellen eines Benutzers erstellt werden. Das Schema kann als Alias ​​​​des Benutzers bezeichnet werden Der Name entspricht dem Benutzernamen und ist mit diesem identisch.

Was ist ein Schema in Oracle?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Was ist ein Schema in Oracle? Werfen wir zunächst einen Blick auf ihre Definitionen:

Ein Schema ist eine Sammlung von Datenbankobjekten (die von einem Benutzer verwendet werden).

Schemaobjekte sind die logischen Strukturen, die sich direkt auf die beziehen Datenbankdaten.

Ein Benutzer ist ein in der Datenbank definierter Name, der eine Verbindung zu Objekten herstellen und auf diese zugreifen kann.

Schemas und Benutzer helfen Datenbankadministratoren bei der Verwaltung der Datenbanksicherheit.

Aus der Definition können wir erkennen, dass es sich bei einem Schema um eine Sammlung von Objekten handelt Um jede Sammlung zu unterscheiden, müssen wir dieser Sammlung einen Namen geben. Diese Namen sind die vielen benutzernamenähnlichen Knoten, die wir unter der Enterprise Manager-Lösung sehen, und das Schema enthält verschiedene Objekte wie Tabellen, Ansichten, Sequenzen, gespeicherte Prozeduren, Synonyme, Indizes, Cluster und Datenbankverknüpfungen.

Ein Benutzer entspricht im Allgemeinen einem Schema. Der Schemaname des Benutzers entspricht dem Benutzernamen und dient als Standardschema des Benutzers. Aus diesem Grund sehen wir, dass es sich bei den Schemanamen ausschließlich um Datenbankbenutzernamen im Rahmen des Enterprise Manager-Schemas handelt. In der Oracle-Datenbank kann kein neues Schema erstellt werden. Dies kann nur durch die Erstellung eines Benutzers gelöst werden (obwohl es in Oracle eine Anweisung zum Erstellen eines Schemas gibt, wird diese nicht zum Erstellen eines Schemas verwendet). Gleichzeitig wird für diesen Benutzer ein Schema mit demselben Namen wie der Benutzername erstellt und als Standardschema des Benutzers verwendet. Das heißt, die Anzahl der Schemata entspricht der Anzahl der Benutzer, und der Schemaname entspricht eins zu eins dem Benutzernamen, sodass wir das Schema als Alias ​​​​des Benutzers bezeichnen können nicht genau, es ist einfacher zu verstehen.

Ein Benutzer hat ein Standardschema und sein Schemaname entspricht dem Benutzernamen. Natürlich kann ein Benutzer auch andere Schemata verwenden. Wenn wir auf eine Tabelle zugreifen, ohne anzugeben, zu welchem ​​Schema die Tabelle gehört, fügt das System der Tabelle automatisch den Standard-Sheman-Namen hinzu. Wenn wir beispielsweise auf die Datenbank zugreifen, greifen wir über „select * from emp“ auf die Tabelle „emp“ unter dem Benutzer „scott“ zu. Tatsächlich lautet die vollständige Schreibweise dieser SQL-Anweisung „select * from scott.emp“. Der vollständige Name eines Objekts in der Datenbank lautet schema.object, nicht user.object. Ähnlich wie wenn wir beim Erstellen eines Objekts das Schema des Objekts nicht angeben, ist das Schema des Objekts das Standardschema des Benutzers. Dies ist so, als hätte ein Benutzer einen Standardtabellenbereich, aber der Benutzer kann auch andere Tabellenbereiche verwenden, wenn wir beim Erstellen eines Objekts keinen Tabellenbereich angeben gespeichert werden In anderen Tabellenbereichen müssen wir beim Erstellen des Objekts den Tabellenbereich des Objekts angeben.

Ähm, nachdem ich so viel gesagt habe, lass mich dir ein Beispiel geben, sonst wird alles langweilig!

SQL> Gruant dba to scott
SQL> create table test(name char(10));
Table created.
SQL> create table system.test(name char(10));
Table created.
SQL> insert into test values('scott'); 
1 row created.
SQL> insert into system.test values('system');
1 row created.
SQL> commit;
Commit complete.
SQL> conn system/manager
Connected.
SQL> select * from test;
NAME
----------
system
SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名
Session altered.
SQL> select * from test;
NAME
----------
scott
SQL> select owner ,table_name from dba_tables where table_name=upper('test');
OWNER TABLE_NAME
------------------------------ ------------------------------
SCOTT TEST
SYSTEM TEST

--Die obige Abfrage ist für mich die Grundlage, Schema als Alias ​​des Benutzers zu verwenden. Tatsächlich ist shcema in Bezug auf die Verwendung genau dasselbe wie user. Es gibt keinen Unterschied. Der Benutzername kann auch dort erscheinen, wo der Schemaname erscheint.

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas ist ein Schema in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet g in Oracle 11g?Nächster Artikel:Was bedeutet g in Oracle 11g?