Diferencia entre esquema / base de datos en MySQL

¿Hay alguna diferencia entre un esquema y una base de datos en MySQL? En SQL Server, una base de datos es un contenedor de nivel superior en relación con un esquema.

Leí que Create Schema y Create Database hacen básicamente lo mismo en MySQL, lo que me lleva a pensar que los esquemas y las bases de datos son palabras diferentes para los mismos objetos.

Como se define en el Glosario de MySQL :

En MySQL, físicamente, un esquema es sinónimo de una base de datos . Puede sustituir la palabra clave SCHEMA lugar de DATABASE en la syntax SQL de MySQL, por ejemplo, utilizando CREATE SCHEMA lugar de CREATE DATABASE .

Algunos otros productos de bases de datos hacen una distinción. Por ejemplo, en el producto Oracle Database, un esquema representa solo una parte de una base de datos: las tablas y otros objetos propiedad de un solo usuario.

Depende del servidor de la base de datos. MySQL no le importa, básicamente es lo mismo.

Oracle , DB2 y otras soluciones de base de datos de nivel empresarial hacen una distinción. Por lo general, un esquema es una colección de tablas y una Base de datos es una colección de esquemas.

Refiriéndose a la documentación de MySql,

CREATE DATABASE crea una base de datos con el nombre dado. Para usar esta statement, necesita el privilegio CREATE para la base de datos. CREATE SCHEMA es sinónimo de CREATE DATABASE desde MySQL 5.0.2.

PostgreSQL admite esquemas, que es un subconjunto de una base de datos: https://www.postgresql.org/docs/current/static/ddl-schemas.html

Una base de datos contiene uno o más esquemas con nombre, que a su vez contienen tablas. Los esquemas también contienen otros tipos de objetos nombrados, incluidos tipos de datos, funciones y operadores. El mismo nombre de objeto se puede usar en diferentes esquemas sin conflicto; por ejemplo, tanto schema1 como myschema pueden contener tablas llamadas mytable. A diferencia de las bases de datos, los esquemas no están separados rígidamente: un usuario puede acceder a los objetos en cualquiera de los esquemas en la base de datos a la que están conectados, si tienen privilegios para hacerlo.

Los esquemas son análogos a los directorios en el nivel del sistema operativo, excepto que los esquemas no se pueden anidar.

En mi humilde opinión, MySQL no es una base de datos de referencia. Nunca debe citar a MySQL para obtener una explicación. MySQL implementa SQL no estándar y, a veces, reclama características que no admite. Por ejemplo, en MySQL, el esquema CREAR solo creará una BASE DE DATOS. Es realmente engañoso para los usuarios.

Este tipo de vocabulario se llama “MySQLism” por los DBA.

Sí, la gente usa estos términos indistintamente con respecto a MySQL. Aunque muchas veces oirás que las personas se refieren de manera inapropiada a todo el servidor de la base de datos como la base de datos.

Microsoft SQL Server por ejemplo, los esquemas se refieren a un único usuario y es otro nivel de un contenedor en el orden de indicar el servidor, la base de datos, el esquema, las tablas y los objetos.

Por ejemplo, cuando tiene la intención de actualizar dbo.table_a y la syntax no es completa, como UPDATE table.a, el DBMS no puede decidir usar la tabla deseada. Esencialmente, de manera predeterminada, el DBMS utilizará myuser.table_a

en MySQL schema es sinónimo de base de datos . Es bastante confuso para las personas principiantes que saltan a MySQL y el primer día encuentran la palabra esquema , así que chicos, nada de qué preocuparse, ya que ambos son lo mismo.

Cuando está iniciando MySQL por primera vez, necesita crear una base de datos (como cualquier otro sistema de base de datos) con la que pueda crear CREACIÓN DE ESQUEMA, que no es más que CREAR BASE DE DATOS

En alguna otra base de datos, el esquema del sistema representa una parte de la base de datos o una colección de tablas, y la colección de esquemas es una base de datos.