Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Vistas en Base de Datos: Creación, Operaciones y Catálogo, Apuntes de Algoritmos Avanzados

Lo que son las vistas en una base de datos, cómo se crean y operan sobre ellas, y presenta ejemplos de su uso. Las vistas son herramientas importantes que permiten a los usuarios ver los datos de forma simple y personalizada, ocultando datos innecesarios. Se crean mediante la selección de filas y columnas específicas de las tablas base y pueden ser utilizadas para diferentes fines, como control de autorización, modelos externos y diferentes formatos de presentación de los datos. Se incluyen ejemplos de cómo crear vistas, seleccionar datos a través de ellas y operaciones como INSERT, DELETE y UPDATE.

Tipo: Apuntes

2020/2021

Subido el 29/05/2021

kayn-g4
kayn-g4 🇵🇪

5 documentos

1 / 29

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
VISTAS
Las vistas son herramientas importantes a fin de proporcionar a los
usuarios un entorno simple y personalizado y para ocultar datos. Una vista
relacional no corresponde exactamente con la vista externa general, sino
que es una tabla virtual derivada de una o más tablas base subyacentes. No
existe en almacenamiento en el sentido como lo hacen las tablas base, sino
que se crean mediante selección de filas y columnas específicas de las
tablas base, y posiblemente al realizar operaciones sobre ellas. La vista se
produce dinámicamente conforme el usuario trabaja con ella. Para integrar
una vista, el ABD decide a cuáles atributos necesita acceso el usuario,
determina cuáles tablas base los contienen y construye una o más vistas
para mostrar en forma de tabla los valores que el usuario debe ver. Las
vistas permiten fácilmente la creación de un modelo externo dinámico.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Vista previa parcial del texto

¡Descarga Vistas en Base de Datos: Creación, Operaciones y Catálogo y más Apuntes en PDF de Algoritmos Avanzados solo en Docsity!

VISTAS

Las vistas son herramientas importantes a fin de proporcionar a los usuarios un entorno simple y personalizado y para ocultar datos. Una vista relacional no corresponde exactamente con la vista externa general, sino que es una tabla virtual derivada de una o más tablas base subyacentes. No existe en almacenamiento en el sentido como lo hacen las tablas base, sino que se crean mediante selección de filas y columnas específicas de las tablas base, y posiblemente al realizar operaciones sobre ellas. La vista se produce dinámicamente conforme el usuario trabaja con ella. Para integrar una vista, el ABD decide a cuáles atributos necesita acceso el usuario, determina cuáles tablas base los contienen y construye una o más vistas para mostrar en forma de tabla los valores que el usuario debe ver. Las vistas permiten fácilmente la creación de un modelo externo dinámico.

VISTAS

Las razones para proporcionar vistas en lugar de permitir a los usuarios trabajar con las tablas base son las siguientes:

Las vistas permiten a diferentes usuarios ver los datos en distintas formas, y permiten un modelo externo que difiere del modelo lógico (conceptual).

El mecanismo de vista proporciona un dispositivo sencillo de control de autorización, creado fácilmente y reforzado en forma automática por el sistema. Los usuarios de vista no están al tanto de, y no pueden acceder, a ciertos ítems de datos.

Las vistas pueden liberar a los usuarios de complicadas operaciones DML, como cuando las vistas involucran combinaciones (reuniones). El usuario escribe un enunciado SELECT simple usando la vista como la tabla nominada y el sistema se encarga de los detalles de las correspondientes operaciones más complicadas sobre las tablas base para soportar la vista.

Si la base de datos se reestructura en el nivel lógico (conceptual), la vista se puede utilizar para mantener constante el modelo del usuario. Por ejemplo, si la tabla se divide mediante proyección y la clave primaria aparece en cada una de las nuevas tablas resultantes, la tabla original siempre se puede reconstruir al definir una vista que es la combinación de las nuevas tablas.

VISTAS

  • Ejemplo 1. Elección de un subconjunto vertical y horizontal de una tabla

Suponga que un usuario necesita ver los ID y nombres de todos quienes tienen especialidad history. Puede crear una vista para este usuario del modo siguiente:

CREATE VIEW HISTMAJ (first, last, StudentId)

AS SELECT lastName, firstName, stuId FROM Student WHERE major = ‘History’;

Observación: Aquí se renombraron las columnas de la tabla base. El usuario de esta vista no necesita saber los nombres de columna reales.

VISTAS

  • Ejemplo 2. Elección de un subconjunto vertical de una tabla

Si quisiera una tabla de todos los cursos con sus horarios y salones podría crearla del modo siguiente:

CREATE VIEW ClassLoc

AS SELECT classNumber, schedule, room FROM Class;

Observación: Aquí no se necesitó una condición, pues se querían estas partes de todos los registros Class. Esta vez se conservan los nombres de las columnas como aparecen en la tabla base.

VISTAS

  • Ejemplo 4. Una vista de una vista

Es posible definir una vista derivada de una vista. Por ejemplo, se puede pedir un subconjunto de la tabla (virtual) ClassLoc al escribir:

CREATE VIEW ClassLoc

AS SELECT classNumber, room FROM ClassLoc;

VISTAS

  • Ejemplo 5. Una vista usando una función

En el enunciado SELECT en la línea AS se puede incluir funciones internas y opciones GROUP BY.

Por ejemplo, si se quiere una vista de Enroll que proporcione classNumber y el número de estudiantes inscritos en cada clase, escribir:

CREATE VIEW ClassCount (classNumber, TotCount)

AS SELECT classNumber, COUNT(*) FROM Enroll GROUP BY classNumber;

Observación: Se debe proporcionar un nombre para la segunda columna de la vista, pues no hay alguno disponible de la tabla base.

VISTAS

Operaciones sobre vistas

INSERT, DELETE y UPDATE presentan ciertos problemas con las vistas. Por ejemplo, suponga que se tiene una vista de registros de estudiante como:

StudentVw1(lastName, firstName, major, credits)

Si se tuviese permiso de ingresar registros, cualquier registro creado mediante esta vista en realidad serían registros Student, pero no contendrían stuId, que es la clave de la tabla Student. Dado que stuId tendría la restricción NOT NULL deberá rechazar cualquier registro sin este campo. Sin embargo, si tiene la siguiente vista:

StudentVw2(stuId, lastName, firstName, credits)

No se debe tener problema para insertar registros, pues insertaría registros Student con un campo major nulo, lo que está permitido. Con el comando:

INSERT

INTO StudentVw VALUES('S 1040 ' 'Levine', 'Adam', 30 );

Sin embargo, el sistema en realidad insertaría el registro en la tabla Student

VISTAS

Operaciones sobre vistas

Se puede usar un disparador INSTEAD OF para asegurar que el registro se inserta en la tabla Student.

CREATE TRIGGER InsertStuVw 2 INSTEAD OF INSERT ON StudentVw FOR EACH ROW BEGIN INSERT INTO Student VALUES (:NEW.stuId, :NEW.lastName, :NEW.firstName, :NEW.credits); END;

CATÁLOGO DEL SISTEMA

El catálogo del sistema o diccionario de datos del sistema se puede considerar como una base de datos de información acerca de las bases de datos. Contiene, en forma de tabla, un resumen de la estructura de cada base de datos como aparece en un momento dado. Siempre que una tabla base, vista, índice, restricción, módulo almacenado u otro ítem de un esquema de base de datos se crea, altera o elimine, el DBMS automáticamente actualiza sus entradas en el catálogo. El sistema también usa el catálogo para verificar autorizaciones y almacenar información para planes de acceso para aplicaciones. Los usuarios pueden consultar el diccionario de datos usando comandos SQL SELECT. Sin embargo, dado que el diccionario de datos se mantiene mediante el DBMS mismo, los comandos SQL UPDATE, INSERT y DELETE no se pueden usar en él.

CATÁLOGO DEL SISTEMA

El diccionario de datos Oracle contiene información acerca de todos los objetos de esquema pero el acceso a él se proporciona, mediante tres vistas diferentes, llamadas USER (usuario), ALL (todos) y DBA (administrador de base de datos). En Oracle, a cada usuario se le proporciona automáticamente acceso a todos los objetos que crea.

La vista USER proporciona a un usuario información acerca de todos los objetos creados por dicho usuario. Los usuarios pueden tener acceso a objetos creados por otros. La vista ALL proporciona información acerca de dichos objetos además de los que creó el usuario.

La vista DBA, que proporciona información acerca de todos los objetos de base de datos, está disponible al administrador de la base de datos.

Cada una de las vistas se invoca mediante el uso del término apropiado como un prefijo para el objeto nombrado en la cláusula FROM en una consulta. Por ejemplo, si un usuario quiere una lista de los nombres de todas las tablas que creó, la consulta es:

SELECT TABLE_NAME

FROM USER_TABLES;

CATÁLOGO DEL SISTEMA

Para determinar cuáles son todas las columnas disponibles en tablas, se puede usar el comodín (*) en la cláusula SELECT. Por ejemplo,

SELECT *

FROM USER_TAB_COLUMNS;

Desplegará toda la información registrada acerca de las columnas en las tablas que usted creó. Luego puede usar los nombres de columna de las vistas (por ejemplo, COLUMN_ NAME, DATA_TYPE) en una consulta más específica, como la siguiente:

SELECT COLUMN_NAME, DATA_TYPE

FROM USER_TAB_COLUMNS

WHERE TABLE_NAME = ‘Student’;

CATÁLOGO DEL SISTEMA

Otra forma de aprender acerca de los objetos es usar el comando DESCRIBE. Una vez que se conoce el nombre de un objeto (por ejemplo, una tabla, restricción, columna), que se puede obtener mediante uno de los métodos mencionados, se puede solicitar una descripción de él. Por ejemplo, se puede escribir

DESCRIBE Student;

Para ver lo que se conoce acerca de la tabla Student, o

DESCRIBE HISTMAJ;

Para ver lo que se conoce acerca de la vista HISTMAJ que se creó en el Ejemplo 1 de vistas.

CATÁLOGO DEL SISTEMA

Ejemplo: Luego de realizar la conexión a SQL*Plus con el usuario SCOTT, escribimos en la línea de comandos de la herramienta la siguiente sentencia:

SELECT table_name from user_tables;

TABLE_NAME

SALGRADE

BONUS

EMP

DEPT

Se observa que en la instancia ORCL de Oracle 11g existen 4 tablas de nombres BONUS (bonificaciones), DEPT (departamentos), EMP (empleados) y SALGRADE (nivel salarial) accesibles para el usuario SCOTT.

CATÁLOGO DEL SISTEMA

Para presentar los campos de todas las tablas de la base de datos instalada por defecto en Oracle11g para el usuario SCOTT utilizamos el comando DESCRIBE:

Ejemplo: DESCRIBE emp;

NAME NULL? TYPE

EMPNO NOT NULL NUMBER(4)

ENAME VARCHAR2(10)

JOB VARCHAR2(9)

MGR NUMBER(4)

HIREDATE DATE

SAL NUMBER(7,2)

COMM NUMBER(7,2)

DEPTNO NUMBER(2)