sql >> Base de Datos >  >> RDS >> Mysql

Relación entre catálogo, esquema, usuario e instancia de base de datos

En Oracle:

  • instancia del servidor ==base de datos ==catálogo ==todos los datos administrados por el mismo motor de ejecución
  • esquema ==espacio de nombres dentro de la base de datos, idéntico a la cuenta de usuario
  • usuario ==propietario del esquema ==cuenta con nombre, idéntica al esquema, quién puede conectarse a la base de datos, quién es el propietario del esquema y utiliza objetos posiblemente en otros esquemas
  • para identificar cualquier objeto en el servidor en ejecución, necesita (nombre de esquema + nombre de objeto)

En PostgreSQL:

  • instancia del servidor ==db cluster ==todos los datos administrados por el mismo motor de ejecución
  • base de datos ==catálogo ==base de datos única dentro del clúster de base de datos, aislada de otras bases de datos en el mismo clúster de base de datos
  • esquema ==espacio de nombres dentro de la base de datos
  • usuario ==cuenta con nombre, que puede conectarse a la base de datos, poseer y usar objetos en cada base de datos permitida por separado
  • para identificar cualquier objeto en el servidor en ejecución, necesita (nombre de la base de datos + nombre del esquema + nombre del objeto)

En MySQL:

  • instancia del servidor ==no identificada con el catálogo, solo un conjunto de bases de datos
  • base de datos ==esquema ==catálogo ==un espacio de nombres dentro del servidor.
  • usuario ==cuenta con nombre, que puede conectarse al servidor y usar (pero no puede poseer - sin concepto de propiedad) objetos en una o más bases de datos
  • para identificar cualquier objeto en el servidor en ejecución, necesita (nombre de la base de datos + nombre del objeto)

En Microsoft SQL Server:

  • instancia de servidor ==conjunto de bases de datos administradas
  • base de datos ==calificador de espacio de nombres dentro del servidor, rara vez denominado catálogo
  • esquema ==propietario ==espacio de nombres dentro de la base de datos, vinculado a los roles de la base de datos, por defecto solo dbo se usa
  • usuario ==cuenta con nombre, que puede conectarse al servidor y usar (pero no puede poseer - el esquema funciona como propietario) objetos en una o más bases de datos
  • para identificar cualquier objeto en el servidor en ejecución, necesita (nombre de la base de datos + propietario + nombre del objeto)

Así que creo que la respuesta a tus preguntas es:

  1. Depende de la implementación, si se necesita el nombre del catálogo para identificar objetos. El significado de "catálogo", "esquema" y "base de datos" varía de una implementación a otra.

  2. Sí, un catálogo es una abstracción del almacenamiento de datos. Creo que también debería definirse como un espacio de nombres aislado e independiente, pero no todos los motores SQL lo hacen.

  3. Base de datos y esquema están bastante bien definidos por todos los proveedores. Catálogo a veces es sinónimo de "base de datos" (al menos en Oracle y Postgres), a veces sinónimo de "esquema" y, a veces, sinónimo de ambos. El término catálogo a menudo también significa recopilación de metadatos (también conocido como tablas del sistema).