En términos de base de datos, un esquema (pronunciado "skee-muh" o "skee-mah") es la organización y estructura de una base de datos. Ambos esquemas y esquemas se puede utilizar como formas plurales.
Un esquema contiene objetos de esquema, que pueden ser tablas, columnas, tipos de datos, vistas, procedimientos almacenados, relaciones, claves principales, claves externas, etc.
Un esquema de base de datos se puede representar en un diagrama visual, que muestra los objetos de la base de datos y su relación entre sí.
Arriba hay un ejemplo simple de un diagrama de esquema. Muestra tres tablas, junto con sus tipos de datos, las relaciones entre las tablas, así como sus claves principales y claves externas.
Aquí hay un ejemplo más complejo de un esquema de base de datos:
En este caso, el diagrama de esquema se ha separado en cuatro secciones:
- Datos del cliente :Datos relacionados con los clientes, como su nombre, dirección, etc.
- Empresa :datos necesarios para administrar el negocio, como personal, ubicaciones de tiendas, detalles de pago, etc.
- Inventario :Detalles de todos los productos. En este caso los productos son películas, por lo que contiene datos como el título de la película, su categoría, los actores, etc.
- Visualizaciones :Vista especial de los datos utilizados para tasaciones.
Entonces, al mirar estos diagramas de esquema, podríamos seguir adelante y crear una base de datos. De hecho, MySQL Workbench te permite generar un CREATE TABLE
guión directamente desde el diagrama. Luego puede usar el script para crear una base de datos. Incluso puede aplicar ingeniería inversa a una base de datos en un diagrama.
¿Un esquema y una base de datos son lo mismo?
Hay mucha confusión acerca de los esquemas cuando se trata de bases de datos. A menudo surge la pregunta de si existe una diferencia entre los esquemas y las bases de datos y, de ser así, cuál es la diferencia.
Depende del proveedor
Parte del motivo de la confusión es que los sistemas de bases de datos tienden a abordar los esquemas a su manera.
- La documentación de MySQL establece que físicamente,
un esquema es sinónimo de una base de datos
. Por tanto, un esquema y una base de datos son la misma cosa. . - Sin embargo, la documentación de Oracle Database establece que ciertos objetos se pueden almacenar dentro de una base de datos pero no dentro de un esquema. Por lo tanto, un esquema y una base de datos son dos cosas diferentes .
- Y según este artículo técnico de SQL Server, un esquema es una entidad separada dentro de la base de datos. Entonces, son dos cosas diferentes .
Por lo tanto, según el RDBMS que utilice, los esquemas y las bases de datos pueden o no ser lo mismo.
¿Qué pasa con el estándar SQL?
El estándar SQL ISO/IEC 9075-1 define un esquema como una colección de descriptores persistentes y con nombre
.
Si estabas confundido antes, espero que no lo haya empeorado...
Significado amplio
Otro motivo de la confusión probablemente se deba al hecho de que el término esquema tiene un significado tan amplio. Tiene diferentes connotaciones dentro de diferentes contextos.
La palabra esquema proviene de la palabra griega skhēma , que significa forma , figura , forma o planificar .
El esquema se usa en psicología para describir un patrón organizado de pensamiento o comportamiento que organiza categorías de información y las relaciones entre ellas.
Antes de diseñar una base de datos, también debemos observar las categorías de información y las relaciones entre ellas. Necesitamos crear un conceptual esquema incluso antes de comenzar con el físico esquema dentro del DBMS.
En el desarrollo de software, cuando se habla de esquemas, uno podría estar hablando de conceptual esquemas, físicos esquemas, interno esquemas, externo esquemas, lógico esquemas, etc. Cada uno de estos tiene su propio significado específico.
Definiciones de esquema por DBMS
Aquí hay una definición rápida de esquema de los tres principales sistemas de bases de datos:
MySQL
Conceptualmente, un esquema es un conjunto de objetos de base de datos interrelacionados, como tablas, columnas de tablas, tipos de datos de las columnas, índices, claves foráneas, etc.
….
En MySQL, físicamente, un esquema es sinónimo de base de datos . Puede sustituir la palabra clave SCHEMA
en lugar de DATABASE
en la sintaxis MySQL SQL, por ejemplo usando CREATE SCHEMA
en lugar de CREATE DATABASE
.
Fuente:"Glosario MySQL". Manual de referencia de MySQL 5.7. MySQL. Consultado el 6 de junio de 2016.
Servidor SQL
Los nombres de tablas, campos, tipos de datos y claves primarias y externas de una base de datos.
"Glosario". Documentación técnica de SQL Server 2016. Red de desarrolladores de Microsoft. Consultado el 6 de junio de 2016.
Base de datos de Oracle
El sistema de esquema de Oracle Database es bastante diferente a los otros sistemas. El esquema de Oracle está muy ligado al usuario de la base de datos.
Un esquema es una colección de estructuras lógicas de datos u objetos de esquema. Un esquema es propiedad de un usuario de la base de datos y tiene el mismo nombre que ese usuario. Cada usuario posee un solo esquema.
Fuente:"Objetos de la base de datos". Documentación en línea de Oracle Database 12c, versión 1 (12.1). Centro de ayuda de Oracle. Consultado el 6 de junio de 2016.
Este artículo sobre definiciones de esquemas de DBMS proporciona más detalles.
Creación de esquemas
A pesar de sus diferencias en la definición de esquemas, cada uno de los tres DBMS mencionados admite CREATE SCHEMA
declaración.
Y ahí es donde termina la similitud.
MySQL
En MySQL, CREATE SCHEMA
crea una base de datos.
Esto se debe a que CREATE SCHEMA
es sinónimo de CREATE DATABASE
. En otras palabras, puede usar CREATE SCHEMA
o CREATE DATABASE
hacer lo mismo.
Base de datos de Oracle
En Oracle Database, el CREATE SCHEMA
declaración en realidad no crea un esquema. Esto se debe a que ya se creó un esquema con cada usuario de la base de datos.
En Oracle, el CREATE USER
declaración crea el esquema.
En Oracle, CREATE SCHEMA
instrucción le permite rellenar su esquema con tablas y vistas y conceder privilegios sobre esos objetos sin tener que emitir varias declaraciones SQL en varias transacciones.
Servidor SQL
En SQL Server, CREATE SCHEMA
creará un esquema con el nombre que le des.
A diferencia de MySQL, CREATE SCHEMA
declaración crea un esquema que se define por separado a la base de datos.
A diferencia de Oracle, CREATE SCHEMA
declaración realmente crea el esquema.
En SQL Server, una vez que crea el esquema, puede agregarle usuarios y objetos.
Conclusión
El término esquema se puede utilizar en muchos contextos diferentes. En el contexto de la creación de esquemas dentro de un sistema de gestión de base de datos específico, deberá trabajar con sin embargo el DBMS define los esquemas.
Y cuando cambie a un nuevo SGBD, asegúrese de buscar cómo define ese sistema los esquemas.