Está en la página 1de 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/320112201

Trabajando con vistas (views) en MariaDB y/o MySQL

Article · September 2017

CITATIONS READS
0 2,239

1 author:

Jorge Domínguez Chávez


Universidad Politécnica Territorial del Estado Aragua
44 PUBLICATIONS   6 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

xxxxxx View project

Algorítmica View project

All content following this page was uploaded by Jorge Domínguez Chávez on 29 September 2017.

The user has requested enhancement of the downloaded file.


Trabajando con vistas (views) en MariaDB y/o
MySQL
Jorge Domínguez Chávez
Departamento de Informática
Universidad Politécnica Territorial del estado Aragua
Aragua, Venezuela
jodocha@upta.edu.ve

Resumen datos (DBA) tiene como tarea administrar, supervisar y


Trabajamos con las vistas (views) y demostramos su
asegurar el adecuado uso de los datos dentro de un SGBD
importancia en la operatividad de una base de datos MariaDB y/o y en la organización. El DBA utiliza la base de datos como
MySQL. De las vistas además de dar valor agregado al presentar la el medio para compartir los datos e integrar las
información adecuada al usuario, hacemos análisis y estadísticas sobre aplicaciones existentes de los distintos usuarios de la
los datos para que sean útiles al público objetivo de cada negocio. De
organización. Esto incluye la creación de aplicaciones a
esta forma, la data se mueve de una visión macro-datos a una visión de
mayor segmentación y aproximación a la atención personalizada. medida, scripts, entre otros, por lo que debe disponer de
un entorno de una base de datos para que distintos
Las vistas son una técnica para simplificar consultas que unen
distintas tablas, cambian la estructura origen y simplifican, si hace falta,
usuarios la vean desde diferentes perspectivas y
una nueva estructura saliente. También, sirven como un mecanismo de simplificar el acceso a la presentación (vista) de la
seguridad que limitará el acceso de los usuarios a datos no permitidos estructura de los datos almacenados tal que sea “natural” a
de las tablas base. cada usuario, hecho que aporta mucho valor a tu negocio.
Descriptores: Vistas, View, MySQL, MariaDB, Join Además de ver como afecta a las particularidades de
nuestro negocio, que forman parte de la rutina diaria y
I. INTRODUCCIÓN permiten conocer mejor lo que sucede en nuestro entorno
En este artículo, trabajamos con las vistas (views) y así como identificar oportunidades para la eficiencia de los
demostramos su importancia en la operatividad de una procesos y la relación con los distintos usuarios y/o
base de datos MariaDB y/o MySQL. De las vistas, además clientes. Como punto de seguridad, suministra vistas
de dar valor agregado al presentar la información según los requerimientos de los usuarios en lugar de
adecuada al usuario, hacemos análisis y estadísticas sobre facilitar el acceso directo a los datos.
los datos para que sean útiles al público objetivo de cada
Esta información es útil por los detalles
negocio. De esta forma, la data se mueve de una visión
relacionados con el segmento de su público objetivo, por
macro-datos a una visión de mayor segmentación y
las estrategias de mercadeo/atención enfocadas a conocer
aproximación a la atención personalizada.
mejor los gustos, las preferencias de los usuarios/clientes
Un sistema de gestión de base de datos (SGBD) es así como los matices que los hacen diferentes, todo ello
común a toda organización que maneja grandes volúmenes con el objetivo de personalizara los usuarios.
de datos, los cuales son consultados por múltiples
usuarios, algunos de ellos no pertenecen al área de II. ¿QUÉ ES UNA VISTA?
sistemas y no tienen idea de cómo se llaman y/o Las vistas son una técnica para simplificar consultas
almacenan dichos datos. El administrador de bases de que unen distintas tablas, cambian la estructura origen y
simplifican, si hace falta, una nueva estructura saliente. (la consulta SQL sobre la vista). Una vista no permite
También, sirven como un mecanismo de seguridad que crear un índice1.
limitará el acceso de los usuarios a datos no permitidos de
Ventajas y desventajas de usar vistas en
las tablas base.
MariaDB y/o MySQL
Una vista (View) es una tabla virtual o forma lógica
Ventajas:
de mostrar los datos ubicados en una o más tablas, es
decir, su contenido estará definido por una consulta. Al • Seguridad. Cada usuario debe tener permiso de
igual que una tabla real o física, una vista consta de filas y acceso a la base de datos y acceder a las vistas con
columnas pero en ella no existen datos almacenados, sino datos autorizados para él.
que se puebla de forma dinámica cuando se hace
• Eficacia. Las vistas se almacenan en el servidor
referencia a la misma.
con lo que el consumo de recursos y eficacia
Una vista es generada de una instrucción SELECT siempre serán óptimos.
y devuelve un resultado, siempre se ejecutan del lado del
• Simplicidad de consulta. La vista extrae datos de
servidor SGBD, no contienen datos. Si invocas a la vista
más de una tabla, presentando la data como una
sin filtro devuelve todos los registros, si consultas la vista
tabla única.
con filtro, obtendrás los registros que cumplen con él. En
una base de datos MariaDB o MySQL no debe existir • Privacidad de la información: sólo mostramos a
una vista con el mismo nombre de una tabla. los usuarios, con acceso a la vista, la información
conveniente. NO tiene acceso a la tabla original
Las vistas se utilizan como:
con todas sus filas y columnas.
• Un entorno de una base de datos de tal forma que
• Optimización del rendimiento de la base de
múltiples usuarios la vean de diferentes
datos: creamos consultas sobre vistas complejas,
perspectivas.
es decir, vistas cuya información ha sido extraída
• Una simplificación del acceso a una base de datos y creada a través de SELECT complejas.
para que una presentación de la estructura de los Ahorramos tiempo al ejecutar estas consultas.
datos almacenados sea “natural” a cada usuario.
• Tablas de prueba: Para los desarrolladores en
• Una restricción a filas o columnas concretas de entrenamiento o preproducción, usar las vistas es
una tabla, por parte del usuario. útil para no perder información.

• Una combinación de columnas de varias tablas de Desventajas:


forma que parezca una única tabla.
• Rendimiento. Al poblar la vista el SGBD podría
• Una restricción a la cantidad de datos con las que tener problemas con vistas complejas que
un usuario puede trabajar. consuman tiempo y recursos. Puede haber un
cuello de botella durante la transmisión y/o
• Programas escritos para tener código “limpio”.
resolución de consultas complejas (tiempo),
Una vista estándar no está almacenada en la base de
datos, en lugar de eso los datos que se devuelven se
recuperan de forma dinámica en el momento de la petición
1 MariaDB/MySQL devuelven el error 1347.
• Restricciones de actualización. Al poblar la vista INSERT INTO `prestamos` (lector, libro) VALUES
el SGBD podría tener problemas con tablas (1,1),(3,1),(2,2),(3,1);
desactualizadas o que se hayan restringido.
La figura 2 muestra la consulta sobre la tabla
Trabajando con vistas en MariaDB “lectores”,

Antes de trabajar con vistas, debemos tener tablas select * from lectores;
disponibles, no necesariamente con datos, luego con datos
para extraerlos. Creamos la base de datos “Biblioteca”.
Ver figura 1.

Figura 2: Resultado de consulta sobre tabla


Figura 1: La base de datos denominada "biblioteca"
"Lectores"

Ingresamos datos en cada una de las tablas:


con resultado satisfactorio, pero no muestra
INSERT INTO `carreras` (nombre) VALUES información adecuada o entendible al usuario, ya que
('mecánica'),('electricidad'),('administración'), lector y libro aparecen como números que corresponden a
('informática'); su tabla como id_lector e id_carrera respectivamente 2. El
usuario espera ver el nombre del lector y el de la carrera.
INSERT INTO `autores` (nombre) VALUES
('joyanes'),('domínguez'),('castillo'); Para generar nuestra vista, usamos la sentencia
CREATE VIEW de la forma siguiente:
INSERT INTO `editoriales` (nombre) VALUES
('larense'),('ieass'),('castro'); CREATE VIEW nombre_de_la_vista AS
[SELECT]
INSERT INTO `idiomas` (nombre) VALUES
('castellano'),('inglés'),('francés'); que tiene como comandos complementarios a:

INSERT INTO `lectores` (nombre_completo, • DROP VIEW nombre_vista // eliminar vista


carrera) VALUES ('benjamin soto',4),('maría lópez',3), existente.
('raúl torres',2);
• ALTER VIEW nombre_vista // modificar vista
INSERT INTO `libros` (titulo, autor, editorial, existente.
idioma) VALUES ('base de datos',1,1,1),('programación
Analicemos la sintaxis básica de esta sentencia:
sql',1,3,1),('informatics',1,2,2),('mapas',3,1,1);
2 Se llaman índice o clave primaria (PK)
CREATE [OR REPLACE] VIEW nombre_vista
[column_list] AS consulta_SELECT

Explicación del código para crear una vista:

• OR REPLACE: Reemplaza una vista existente


en caso de coincidir en nombre.

• nombre_vista: Nombre de la vista a crear.

• column_list: Listado de columnas a crear.

• consulta_SELECT: Consulta SELECT para


obtener la información que contendrá la vista.

El valor agregado de la información mostrada al


usuario de la vista vista_lector con CREATE VIEW

CREATE VIEW vista_lector AS SELECT


c.id_carrera AS codigo, c.nombre AS carrera,
l.`nombre_completo` AS lector FROM `lectores` AS l
Figura 4: Salida de la consulta sobre vista_lector
JOIN carreras AS c ON (l.carrera=c.id_carrera);

Sí ejecutamos la sentencia: select * from prestamos


obtenemos:

Figura 5: Consulta select * from prestamos

Figura 3: Pantalla de la consulta de vista_lector. observamos nuevamente que en si, la consulta


muestra información pero la cual es difícil de leer y
entender por nuestro usuario.
SELECT * FROM `vista_lector` WHERE carrera =
'electricidad'; es una consulta con filtro sobre vista_lector, Volvemos a dar valor agregado a la información que
veamos la figura 4. es mostrada al usuario creando la vista denominada
vista_prestamos con la sentencia CREATE VIEW
CREATE VIEW vista_prestamos AS SELECT debido a las estrategias de mercadeo/atención enfocadas a
p.`id_prestamo` AS renglón, p.`fecha_prestamo` as conocer mejor los gustos, las preferencias de los
fecha_prestamo, p.`fecha_devolucion`, c.nombre AS usuarios/clientes así como los matices que los hacen
carrera, a.nombre AS autor, l.nombre_completo AS lector, diferentes, todo ello con el objetivo de personalizar/atrapar
i.titulo AS titulo, d.nombre AS idioma, e.nombre AS usuarios/clientes.
editorial, p.observaciones FROM `prestamos` AS p join
lectores AS l on (p.lector=l.id_lector) JOIN carreras as c III. CONCLUSIONES
ON (l.carrera=c.id_carrera) JOIN libros as i ON Las vistas ofrecen grandes mejoras de rendimiento
(p.libro=i.id_libro) JOIN autores AS a ON pero siempre en los entornos adecuados. Debemos
(i.autor=a.id_autor) JOIN idiomas AS d on evitarlas en entornos con carga transaccional y dejarlas
(i.id_libro=d.id_idioma) JOIN editoriales AS e ON para entornos de consulta con las columnas que nos
(i.editorial=e.id_editorial); interesen. Las vistas nos ayudan porque:

Al ejecutar dicha consulta, select * from • Se almacenan en el servidor con lo que el


vista_prestamos; obtenemos: consumo de recursos y eficacia serán óptimos.

• Por seguridad es mejor utilizar vistas en lugar de


acceder directamente a los datos.

• Generamos un entorno de trabajo para


desarrolladores en entrenamiento.

• Hacemos consultas complejas en código simple,


para llamar a la vista para obtener los datos.
Figura 6: Resultado de select * from vista_prestamos
• Damos valor agregado a la información
suministrada a los usuarios.
Esta consulta sobre vista_prestamos genera gran
información útil a la biblioteca. De ella, obtendríamos IV. REFERENCIAS
estadísticas sobre el libro más consultado, el autor Domínguez, J. (2000) Breve introducción al SQL.
favorito, el lector más asiduo o responder a si nuestros Editorial IEASS, Venezuela
lectores leen en otro idioma diferente al castellano, días
Domínguez, J. (2017) Introducción a la
transcurridos entre devoluciones, realizar agrupamientos,
administración de base de datos. Editorial IEASS,
conteos, períodos de visita a la biblioteca, etc.
Venezuela
Cada estrategia de mercadeo/atención no sólo estará
basada en datos sino en el análisis sobre los datos que sean
adecuados atendiendo al público objetivo de cada negocio.
De esta forma, la data se mueve de una visión macro-datos
a una visión de mayor segmentación y aproximación al
público objetivo.

Esta información es más útil por los detalles


relacionados con el segmento de su público objetivo,

View publication stats

También podría gustarte