El término «esquema de base de datos» describe un conjunto de objetos relacionados, como tablas, vistas e índices, que pertenecen a un usuario o a una aplicación. En Actian Data Platform, a cada usuario se le crea un esquema implícito, a menos que utilice una instrucción CREATE SCHEMA.
Tipos de esquemas de bases de datos
Los dos tipos principales de esquemas son los esquemas lógicos y los físicos. Al diseñar una base de datos para almacenar datos de una aplicación, el desarrollador suele partir de un modelo entidad-relación que representa las interrelaciones entre los elementos del negocio. El siguiente paso consiste en crear un diseño de base de datos normalizado que añada detalles sobre cada entidad, sus atributos y sus claves. Esto constituye la base de las sentenciasSQLque se utilizan para crear tablas, con sus columnas, relaciones de clave primaria y clave foránea, y restricciones de integridad referencial.
Además de los esquemas lógicos que dan soporte a las aplicaciones, existe el concepto de un esquema que contiene objetos creados por el usuario. A esto se le suele llamar «esquema de usuario». Por ejemplo, el objeto denominado SCOTT.DEPT es una tabla llamada DEPT en el esquema del usuario SCOTT.
Un esquema físico define cómo se asigna el diseño lógico de la base de datos a dispositivos físicos, como los dispositivos de almacenamiento de estado sólido (SSD) y los discos duros. Muchas bases de datos cuentan con el concepto de «DBSPACE» o «TABLESPACE», que se asigna a un dispositivo de almacenamiento físico o virtual. La instrucción CREATE TABLE puede especificar opcionalmente el DBSPACE o el TABLESPACE para garantizar que la tabla resida en un dispositivo concreto. Esto se suele hacer para minimizar la contienda de E/S.
Requisitos de integración de esquemas
La integración de esquemas de bases de datos se refiere a la integración de dos o más esquemas de bases de datos independientes en un único esquema unificado. A continuación se indican algunas consideraciones importantes a tener en cuenta a la hora de integrar esquemas:
- Los objetos de la base de datos deben asignarse a la entidad empresarial a la que representan, de modo que se puedan identificar e integrar los solapamientos o conflictos.
- Los tipos de datos deben ser homogéneos. Un esquema puede utilizar un formato de caracteres fijo para optimizar la capacidad de almacenamiento, mientras que otro puede haber optado por un formato variable con el fin de ganar en flexibilidad.
- Las claves y las restricciones pueden variar de un esquema a otro, ya que sus aplicaciones pueden requerir distintos patrones de acceso.
- Las vistas pueden variar según los esquemas. El ajuste del rendimiento suele dar lugar a la materialización de las vistas.
- Las tablas pueden estar desnormalizadas y preunidas, lo que supone una decisión de diseño que debe corregirse.
- Es necesario eliminar los objetos redundantes, ya que la evolución de la aplicación hace que se utilicen objetos más recientes, lo que deja objetos huérfanos.
- Es muy poco probable que dos organizaciones utilicen las mismas normas de nomenclatura, por lo que es necesario armonizar la nomenclatura.
Creación de un esquema en Actian Data Platform
La instrucción CREATE SCHEMA crea un conjunto de objetos de base de datos con un nombre determinado. La instrucción CREATE SCHEMA tiene el siguiente formato:
[EXEC SQL] CREATE SCHEMA AUTHORIZATION schema_name
[object_definition {object_definition}];
nombre_del_esquema
Especifica el usuario efectivo de la sesión que ejecuta la instrucción CREATE SCHEMA.
definición_del_objeto
Es una instrucción CREATE TABLE, CREATE VIEW o GRANT. Cada usuario tiene un máximo de un esquema por base de datos.
Las sentencias incluidas en la instrucción CREATE SCHEMA no deben ir separadas por punto y coma; sin embargo, la instrucción CREATE SCHEMA debe terminarse colocando un punto y coma después de la última sentencia de definición de objeto. Si se omiten las definiciones de objetos, se crea un esquema vacío.
Para emitir sentencias GRANT en una sentencia CREATE SCHEMA, debes disponer de los privilegios necesarios. En concreto, para conceder un privilegio sobre un objeto del que no seas propietario, se te debe haber concedido el privilegio WITH GRANT OPTION (véase la cláusula GRANT OPTION).
Si se ejecuta una instrucción CREATE SCHEMA especificando un esquema ya existente (schema_name), Actian Data Platform muestra un error. Para añadir objetos a un esquema ya existente, ejecute las instrucciones CREATE necesarias fuera de una instrucción CREATE SCHEMA.
Si no existe ningún esquema para el identificador de usuario efectivo, se crea uno de forma implícita al crear cualquier objeto de la base de datos. Si posteriormente se ejecuta una instrucción CREATE SCHEMA para ese usuario, Actian Data Platform devuelve un error.
Si, dentro de una instrucción CREATE SCHEMA, se crean tablas que tienen restricciones referenciales, el orden de las instrucciones CREATE TABLE no es relevante. Esto difiere de los requisitos para crear tablas con restricciones referenciales fuera de una instrucción CREATE SCHEMA, donde la tabla a la que se hace referencia debe existir antes de crear una restricción que haga referencia a ella. Para obtener más información sobre las restricciones referenciales, consulta CREATE TABLE.
Otros usuarios pueden hacer referencia a objetos de tu esquema si les has concedido los permisos necesarios. Para acceder a un objeto de un esquema distinto al del usuario efectivo de la sesión, especifica el nombre del objeto de la siguiente manera:
esquema.objeto
Por ejemplo, el usuario Harry puede seleccionar datos de la tabla «employees» del grupo «accounting» (siempre que el grupo «accounting» le haya concedido a Harry el permiso de selección). Harry puede ejecutar la siguiente instrucción SELECT:
SELECT apellido, nombre FROM contabilidad.empleados
Bloqueo
La instrucción CREATE SCHEMA establece un bloqueo exclusivo sobre una página del catálogo iischema. Los bloqueos los adquieren las instrucciones CREATE individuales incluidas en la instrucción CREATE SCHEMA, pero solo se liberan cuando se confirma la propia instrucción CREATE SCHEMA. Si la instrucción CREATE SCHEMA contiene instrucciones CREATE que adquieren un número de bloqueos superior al máximo configurado para Actian Data Platform, la instrucción CREATE SCHEMA se cancela.
El siguiente ejemplo muestra cómo la creación de un esquema de Actian para el usuario de contabilidad proporciona contexto a los subobjetos:
CREATE SCHEMA AUTHORIZATION accounting
CREATE TABLE empleados (apellido CHAR(30) NOT NULL,
nombre CHAR(30) NOT NULL,
salario MONEY,
departamento CHAR(10)
REFERENCES dept(deptname),
PRIMARY KEY (lname, fname))
CREATE TABLE dept(deptname CHAR(10) NOT NULL UNIQUE,
location CHAR(15),
budget MONEY,
expenses MONEY DEFAULT 0)
CREATE VIEW mgr(mlname, mfname, mdname) AS
SELECT lname, fname, deptname FROM employees,dept
WHERE dname = deptname
GRANT REFERENCES(lname, fname)
ON TABLE employees TO harry;
Ventajas de los esquemas de bases de datos
El uso de esquemas de bases de datos ofrece numerosas ventajas, entre las que se incluyen las siguientes:
- Establece una correspondencia entre el diseño lógico de la base de datos de una aplicación y su diseño físico.
- Permite asociar a los usuarios con los objetos que crean.
- Separa los catálogos del sistema de los objetos de la base de datos específicos de un usuario o de una aplicación.
- Aísla las aplicaciones que utilizan la misma instancia de base de datos por motivos de seguridad.
- Agrupa la base de datos de una sola aplicación o departamento para que se pueda realizar una copia de seguridad de la misma como una unidad lógica.
- Permite asignar objetos relacionados a grupos de almacenamiento de segundo nivel o dispositivos específicos.
La plataforma de inteligencia de datos de Actian
La plataforma Actian Data Intelligenceha sido diseñada específicamente para ayudar a las organizaciones a unificar, gestionar y comprender sus datos en entornos híbridos. Reúne la gestión de metadatos, la gobernanza, el linaje, el control de calidad y la automatización en una única plataforma. Esto permite a los equipos saber de dónde proceden los datos, cómo se utilizan y si cumplen los requisitos internos y externos.
A través de su interfaz centralizada, Actian ofrece información en tiempo real sobre las estructuras y los flujos de datos, lo que facilita la aplicación de políticas, la resolución de problemas y la colaboración entre departamentos. La plataforma también ayuda a vincular los datos con el contexto empresarial, lo que permite a los equipos utilizarlos de forma más eficaz y responsable. La plataforma de Actian está diseñada para adaptarse a los ecosistemas de datos en constante evolución, lo que garantiza un uso coherente, inteligente y seguro de los datos en toda la empresa.Solicita tu demostración personalizada.
Preguntas frecuentes
Un esquema de base de datos es una colección de objetos relacionados, como tablas, vistas e índices, que pertenecen a un usuario o una aplicación.
Los dos tipos principales son los esquemas lógicos, que mapean las interrelaciones entre los elementos empresariales y definen tablas y relaciones, y los esquemas físicos, que definen cómo se mapea el diseño lógico a dispositivos de almacenamiento físicos como SSD y discos duros.
Si no existe ningún esquema para el identificador de usuario efectivo, se crea uno implícitamente cuando se crea cualquier objeto de la base de datos.
Especifique el nombre del objeto como esquema.objeto, por ejemplo: SELECT lname, fname FROM accounting.employees si el propietario del esquema le ha concedido los permisos necesarios.
Los esquemas de bases de datos asignan el diseño lógico de la base de datos al diseño físico, permiten asignar usuarios a sus objetos, separar los catálogos del sistema de los objetos de los usuarios, aislar las aplicaciones por motivos de seguridad, habilitar unidades de copia de seguridad lógicas y asignar objetos a grupos de almacenamiento o dispositivos específicos.
No, dentro de una instrucción CREATE SCHEMA, el orden de las instrucciones CREATE TABLE con restricciones referenciales no es significativo, a diferencia de lo que ocurre cuando se crean tablas fuera de una instrucción CREATE SCHEMA.