Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Związek między katalogiem, schematem, użytkownikiem i instancją bazy danych

W Oracle:

  • instancja serwera ==baza danych ==katalog ==wszystkie dane zarządzane przez ten sam silnik wykonawczy
  • schema ==przestrzeń nazw w bazie danych, identyczna z kontem użytkownika
  • użytkownik ==właściciel schematu ==nazwane konto, identyczne ze schematem, które może łączyć się z bazą danych, kto jest właścicielem schematu i może używać obiektów ewentualnie w innych schematach
  • aby zidentyfikować dowolny obiekt na uruchomionym serwerze, potrzebujesz (nazwa schematu + nazwa obiektu)

W PostgreSQL:

  • instancja serwera ==klaster db ==wszystkie dane zarządzane przez ten sam silnik wykonawczy
  • baza danych ==katalog ==pojedyncza baza danych w klastrze db, odizolowana od innych baz danych w tym samym klastrze db
  • schema ==przestrzeń nazw w bazie danych
  • użytkownik ==nazwane konto, które może łączyć się z bazą danych, posiadać i używać obiektów w każdej dozwolonej bazie danych oddzielnie
  • aby zidentyfikować dowolny obiekt na uruchomionym serwerze, potrzebujesz (nazwa bazy danych + nazwa schematu + nazwa obiektu)

W MySQL:

  • Instancja serwera ==niezidentyfikowana z katalogiem, tylko zestaw baz danych
  • baza danych ==schemat ==katalog ==przestrzeń nazw na serwerze.
  • użytkownik ==nazwane konto, które może łączyć się z serwerem i używać (ale nie może być właścicielem - brak koncepcji własności) obiektów w jednej lub kilku bazach danych
  • aby zidentyfikować dowolny obiekt na uruchomionym serwerze, potrzebujesz (nazwa bazy danych + nazwa obiektu)

W Microsoft SQL Server:

  • instancja serwera ==zestaw zarządzanych baz danych
  • baza danych ==kwalifikator przestrzeni nazw na serwerze, rzadko określany jako katalog
  • schema ==właściciel ==przestrzeń nazw w bazie danych, powiązana z rolami bazy danych, domyślnie tylko dbo jest używany
  • użytkownik ==nazwane konto, które może łączyć się z serwerem i używać (ale nie może być właścicielem - schemat działa jako właściciel) obiektów w jednej lub kilku bazach danych
  • aby zidentyfikować dowolny obiekt na uruchomionym serwerze, potrzebujesz (nazwa bazy danych + właściciel + nazwa obiektu)

Myślę więc, że odpowiedź na Twoje pytania brzmi:

  1. Od implementacji zależy, czy do identyfikacji obiektów potrzebna jest nazwa katalogowa. Znaczenie „katalogu”, „schematu” i „bazy danych” różni się w zależności od implementacji.

  2. Tak, katalog jest abstrakcją przechowywania danych. Myślę, że należy to również zdefiniować jako samodzielną izolowaną przestrzeń nazw, ale nie wszystkie silniki SQL to robią.

  3. Baza danych i schemat są dość dobrze zdefiniowane przez wszystkich dostawców. Katalog czasami jest synonimem „bazy danych” (przynajmniej w Oracle i Postgres), czasami jest synonimem „schematu”, a czasami jest synonimem obu. Termin katalog często oznacza również zbieranie metadanych (tzw. tabele systemowe).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj dane MySQL do Excela w PHP

  2. CONV() – Konwertuj liczby między różnymi bazami w MySQL

  3. Jak mogę połączyć wiele tabel SQL przy użyciu identyfikatorów?

  4. MySQL utf8mb4, Błędy podczas zapisywania emotikonów

  5. Konfigurowanie zdalnego połączenia z bazą danych MySQL