Estrictamente hablando, la diferencia entre Database y Schema no existe en MySql.
Sin embargo, este no es el caso en otros motores de bases de datos como SQL Server. En el servidor SQL :,
Cada tabla pertenece a una agrupación de objetos en la base de datos llamada esquema de base de datos . Es un contenedor o espacio de nombres ( Consultando Microsoft SQL Server 2012 )
De forma predeterminada, todas las tablas de SQL Server pertenecen a un esquema predeterminado llamado dbo . Cuando consulta una tabla que no se ha asignado a ningún esquema en particular, puede hacer algo como:
SELECT *
FROM your_table
que es equivalente a:
SELECT *
FROM dbo.your_table
Ahora, SQL Server permite la creación de diferentes esquemas, lo que te da la posibilidad de agrupar tablas que comparten un propósito similar. Eso ayuda a organizar la base de datos.
Por ejemplo, puede crear un esquema llamado ventas , con tablas como facturas , acreedores (y cualquier otro relacionado con ventas), y otro esquema llamado lookup , con tablas como países , monedas , tipos de suscripción (y cualquier otra tabla utilizada como lookup) . mesa arriba).
Las tablas que se asignan a un dominio específico se muestran en SQL Server Studio Manager con el nombre de esquema antepuesto al nombre de la tabla (exactamente igual que las tablas que pertenecen al esquema dbo predeterminado ).
Hay esquemas especiales en SQL Server. Para citar el mismo libro:
Hay varios esquemas de base de datos integrados y no se pueden eliminar ni modificar:
1) dbo , el esquema predeterminado.
2) invitado contiene objetos disponibles para un usuario invitado ("usuario invitado" es un rol especial en la jerga de SQL Server, con algunos permisos predeterminados y altamente restringidos). Raramente usado.
3) INFORMATION_SCHEMA , utilizado por las vistas del esquema de información
4) sys , reservado exclusivamente para uso interno de SQL Server
Los esquemas no son solo para agrupar. De hecho, es posible otorgar diferentes permisos para cada esquema a diferentes usuarios, como describe MSDN .
De esta manera, la búsqueda de esquema mencionada anteriormente podría estar disponible para cualquier usuario estándar en la base de datos (por ejemplo, SELECT
solo permisos), mientras que una tabla llamada Supplierbankaccountdetails puede asignarse en un esquema diferente llamado Financial , y para dar solo acceso a los usuarios en el grupo accounts
(solo un ejemplo, entiendes).
Finalmente, y citando el mismo libro nuevamente:
No es el mismo esquema de base de datos y esquema de tabla . El primero es el espacio de nombres de una tabla, mientras que el segundo se refiere a la definición de la tabla.