sql >> Databáze >  >> RDS >> Mysql

Vztah mezi katalogem, schématem, uživatelem a instancí databáze

V Oracle:

  • instance serveru ==databáze ==katalog ==všechna data spravovaná stejným prováděcím modulem
  • schéma ==jmenný prostor v databázi, identický s uživatelským účtem
  • uživatel ==vlastník schématu ==pojmenovaný účet, identický se schématem, který se může připojit k databázi, který vlastní schéma a případně používat objekty v jiných schématech
  • k identifikaci jakéhokoli objektu na běžícím serveru potřebujete (název schématu + název objektu)

V PostgreSQL:

  • instance serveru ==db cluster ==všechna data spravovaná stejným prováděcím modulem
  • databáze ==katalog ==jedna databáze v clusteru db, izolovaná od ostatních databází ve stejném clusteru db
  • schéma ==jmenný prostor v databázi
  • uživatel ==pojmenovaný účet, který se může připojit k databázi, vlastnit a používat objekty v každé povolené databázi samostatně
  • k identifikaci jakéhokoli objektu na běžícím serveru potřebujete (název databáze + název schématu + název objektu)

V MySQL:

  • instance serveru ==není identifikována s katalogem, jde pouze o sadu databází
  • databáze ==schéma ==katalog ==jmenný prostor na serveru.
  • uživatel ==pojmenovaný účet, který se může připojit k serveru a používat (ale nemůže vlastnit - žádná koncepce vlastnictví) objektů v jedné nebo více databázích
  • k identifikaci jakéhokoli objektu na běžícím serveru potřebujete (název databáze + název objektu)

V Microsoft SQL Server:

  • instance serveru ==sada spravovaných databází
  • databáze ==kvalifikátor jmenného prostoru na serveru, zřídka označovaný jako katalog
  • schéma ==vlastník ==jmenný prostor v databázi, spojený s databázovými rolemi, ve výchozím nastavení pouze dbo se používá
  • uživatel ==pojmenovaný účet, který se může připojit k serveru a používat (ale nemůže vlastnit - schéma funguje jako vlastník) objektů v jedné nebo více databázích
  • k identifikaci jakéhokoli objektu na běžícím serveru potřebujete (název databáze + vlastník + název objektu)

Takže myslím, že odpověď na vaše otázky je:

  1. Záleží na implementaci, zda je k identifikaci objektů potřeba katalogový název. Význam „katalog“, „schéma“ a „databáze“ se liší od jedné implementace k druhé.

  2. Ano, katalog je abstrakce úložiště dat. Myslím, že by měl být také definován jako samostatný izolovaný jmenný prostor, ale ne všechny SQL motory to dělají.

  3. Databáze a schéma jsou docela dobře definovány všemi prodejci. Katalog je někdy synonymem pro „databáze“ (alespoň v Oracle a Postgres), někdy synonymem pro „schéma“ a někdy synonymem pro obojí. Termín katalog také často znamená sběr metadat (aka systémové tabulky).



  1. Jak zobrazím úplný obsah textového nebo varchar(MAX) sloupce v SQL Server 2008 Management Studio?

  2. seznam schémat s velikostmi (relativní a absolutní) v databázi PostgreSQL

  3. Jak mohu provést dávkové vložení do databáze Oracle pomocí Pythonu?

  4. Jak hledat řetězec v databázích SQL Serveru