Sei sulla pagina 1di 10

Instituto Técnico Superior Comunitario

(ITSC)

Nombre:
Rosaly Dorali

Apellido:
Muñoz Rodríguez

Matrícula:
2020-0563

Carrera:
Soporte Informático

Materia:
Fundamentos de Base de Datos 105

Sección:
01

Maestro:
Luis Bessewell Féliz

Tema:
Lenguaje SQL (Parte 5)

Fecha:
Viernes 27 Nov. 2020
Tema Lenguaje SQL

6.10. Vistas
Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla, una vista
consta de un conjunto de columnas y filas de datos con un nombre. Las relaciones que no forman parte del
modelo lógico pero se hacen visibles a los usuarios como relaciones virtuales se denominan vistas. Se puede
trabajar con gran número de vistas sobre cualquier conjunto dado de relaciones reales.

Las vistas se definen utilizando la instrucción créate view. Para definir una vista hay que darle un nombre e
indicar la consulta que la va a calcular. La forma de la instrucción create view es

create view v as <expresión de consulta>´

Las vistas permiten:


• Ocultar información: permitiendo el acceso a algunos datos y manteniendo oculto el resto de la
información que no se incluye en la vista. El usuario opera con los datos de una vista como si se tratara
de una tabla, pudiendo modificar tales datos.
• Simplificar la administración de los permisos de usuario: se pueden dar al usuario permisos para que
solamente pueda acceder a los datos a través de vistas, en lugar de concederle permisos para acceder
a ciertos campos, así se protegen las tablas base de cambios en su estructura.
• Mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente almacenando en una vista
el resultado de una consulta compleja que incluya información de varias tablas.
• Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión de varias
tablas; una combinación de varias tablas; un resumen estadístico de una tabla; un subconjunto de otra
vista, combinación de vistas y tablas.
Una vista se define usando un "select".

Tipos de Vistas
Vistas indizadas: Una vista indizada es una vista que se ha materializado. Esto significa que se ha calculado
la definición de la vista y que los datos resultantes se han almacenado como una tabla. Se puede indizar una
vista creando un índice clúster único en ella. Las vistas indizadas pueden mejorar de forma considerable el
rendimiento de algunos tipos de consultas. Las vistas indizadas funcionan mejor para consultas que agregan
muchas filas. No son adecuadas para conjuntos de datos subyacentes que se actualizan frecuentemente.

Vistas con particiones: Una vista con particiones combina datos horizontales con particiones de un conjunto
de tablas miembro en uno o más servidores. Esto hace que los datos aparezcan como si fueran de una
tabla. Una vista que combina tablas miembro en la misma instancia de SQL Server es una vista con particiones
local.

Vistas del sistema: Las vistas de sistema exponen metadatos de catálogo. Puede usar las vistas del sistema
para devolver información acerca de la instancia de SQL Server u objetos definidos en la instancia. Por
ejemplo, puede consultar la vista de catálogo sys.databases para devolver información sobre las bases de datos
definidas por el usuario disponibles en la instancia. Para obtener más información

Características
Una vista se caracteriza porque:
• Se considera que forma parte del esquema externo.
• Una vista es una tabla virtual (no tiene una correspondencia a nivel físico)
• Se puede consultar como cualquier tabla básica.
• Las actualizaciones se transfieren a la/s tabla/s original/es (con ciertas limitaciones).
Ventajas de las vistas
• Como es una tabla virtual no necesitamos crear una tabla adicional que tenga justamente los datos que
requerimos, lo único que se guarda es la consulta SELECT.
• Puede usarse como una medida de seguridad para restringir lo que el usuario puede ver.
• Se puede reemplazar una consulta compleja por una vista, para que de esta forma sea más fácil su
lectura. Aunque esto puede llegar a ser una desventaja.

Desventajas de las vistas


• No existe un plan de ejecución optimizado para nuestra consulta a través de la vistas, no se va a mejorar
el performance de la ejecución de la consulta que está en la vista.
• Nuestra vista solamente es una abstracción de un SELECT por lo tanto va a correr ligeramente más
lento que un SELECT puro.
• Ocultar la complejidad generalmente nos puede llevar a resultado que no esperábamos (ORDER BY
no aplica para una vista). Si usamos ORDER BY no nos dará error pero no nos va a funcionar
correctamente.

6.11. Modificación de las Bases de Datos


Las modificaciones en una base de datos pueden realizarse a través del Administrador Corporativo o mediante
la sentencia Transact-SQL del tipo ALTER DATABASE

Ampliar una base de datos a través del Administrador Corporativo


Ampliar una base de datos significa asignarle nuevo espacio en uno de sus ficheros, haciéndolo crecer, o en
uno o varios ficheros de nueva creación. Del mismo modo que podemos aumentar el tamaño asignado al
almacenamiento de datos, también es posible hacer crecer el transaction.log si la actividad transaccional de la
base de datos rebasa su límite asignado.

Para proceder a la expansión de una base de datos a través del Administrador Corporativo deberemos elegir
una base de datos y pulsar el botón derecho del ratón para elegir la pestaña propiedades.

Y aparece la página de propiedades de la base de datos que queremos ampliar. La pestaña archivos permite
modificar el número, tamaño y el nombre lógico de los ficheros de datos asociados a ella.
También en esta pestaña es posible especificar el nuevo comportamiento que deseamos tenga la base de datos
con vista a su crecimiento. Si pulsamos en el botón de tres puntos … a la derecha del epígrafe crecimiento
automático/Tamaño máximo (no mostrado en la imagen de arriba) sale el cuadro de diálogo que nos permite
hacerlo.

Expansión mediante comandos Transact-SQL. ALTER DATABASE


Una vez la base de datos ya ha sido creada, es posible añadirle nuevos ficheros, o modificar el tamaño de los
existentes a través del comando ALTER DATABASE.

La cláusula FILEGROWTH permite indicar el incremento en el tamaño del archivo que añadirá SQL Server
cuando añada nuevo espacio al fichero de datos. Es posible indicarlo en términos absolutos en KB o en
porcentaje del tamaño del fichero a expandir. Los incrementos se llevarán a cabo siempre en porciones de 64
KB, tamaño que es el mínimo que es posible especificar. El valor por defecto es el 10 %.

Reducción del tamaño de bases de datos


En SQL Server las bases de datos se pueden configurar para reducir su tamaño automáticamente. Para ello
liberan las páginas que ya no son necesarias. Sin embargo, las bases de datos también pueden reducirse
manualmente a demanda, desde el Administrador Corporativo o con comandos Transact-SQL.
Reducción mediante el Administrador Corporativo
Para reducir el tamaño de las bases de datos desde el Administrador Corporativo, se accede al menú contextual
pulsando el botón derecho del ratón Tareas ->Reducir -> Base de Datos.

En el cuadro de diálogo el sistema informa del tamaño actual de la base de datos y del espacio que realmente
está ocupado.
Si queremos una reducción más exacta podemos optar por elegir la opción Tareas-> Reducir -> Archivos.

Lo que abre un cuadro de diálogo similar al anterior. Solo que en este caso actúa sobre el archivo físico .mdf
de la base de datos y permite más opciones, por ejemplo si elegimos Reorganizar páginas antes de liberar
espacio no utilizado se habilitará la caja combinada de tamaño lo que nos permitirá elegir un tamaño exacto
en MB siempre y cuando no rebasemos a la baja el tamaño mínimo indicado.

Reducción con comandos Transact-SQL


Existen dos maneras de reducir el tamaño de una base de datos con comandos de SQL: configurarla para la
reducción automática, o reducirla manualmente y de manera explícita.

Configuración para reducción automática


Consiste en especificar el parámetro AUTOSHRINK a TRUE en el comando ALTER DATABASE

ALTER DATABASE { database_name | CURRENT }


SET
AUTO_SHRINK { ON | OFF }
Si ponemos AUTO_SHRINK a ON

Los archivos de la base de datos se pueden reducir periódicamente.

Pueden reducirse automáticamente los archivos de datos y los archivos de registro de transacciones.
AUTO_SHRINK reducirá el tamaño del registro de transacciones sólo si el modelo de recuperación de la base
de datos se establece en SIMPLE o si se realiza una copia de seguridad del registro.

La opción AUTO_SHRINK reduce los archivos si no utiliza más de un 25% del espacio del archivo.
No es posible reducir una base de datos de solo lectura.

Si ponemos AUTO_SHRINK a OFF

La base de datos no se reducirá automáticamente durante las comprobaciones periódicas del espacio no
utilizado.

Ejemplo.
ALTER DATABASE dbDesarrollo1800
SET AUTO_SHRINK ON

Reducción manual
La reducción de la base de datos puede realizarse a través de los comandos Transact-SQL DBCC
SHRINKDATABASE

o DBCC SHRINKFILE.
La sintaxis de SHRINKDATABASE es la siguiente:
DBCC SHRINKDATABASE
( database_name | database_id | 0
[ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]

El parámetro porcentaje permite especificar el tamaño que deseamos que tenga la base de datos una vez
reducido su respecto al tamaño actual. Los ficheros no se podrán reducir a un tamaño inferior al que fue
especificado en su creación con CREATE DATABASE. Si queremos reducir por debajo de ese límite
tenemos que usar la opción MODIFYFILE del comando ALTER DATABASE. Si especificamos NO
TRUNCATE los datos de los ficheros serán redistribuidos, haciendo que el espacio libre quede al final de los
mismos, pero no libera este espacio reduciendo tamaño de los ficheros desde d punto de vista del sistema
operativo.

TRUNCATE ONLY realiza la tarea contraria, libera el espacio que sea posible pero sin producir ningún tipo
de reordenación de los datos.

WITH NO_INFOMSGS Suprime todos los mensajes informativos con niveles de gravedad entre 0 y 10.

Ejemplos
Reducir una base de datos y especificar un porcentaje de espacio disponible.

DBCC
SHRINKDATABASE (dbDesarrollo, 10);
GO
Truncar una base de datos

DBCC SHRINKDATABASE (dbDesarrollo, TRUNCATEONLY);

Para reducir un archivo de datos o de registro cada vez para una base de datos específica, ejecutaremos DBCC
SHRINKFILE que tiene la misma sintaxis.

Configuración de la base datos


Existen múltiples parámetros que pueden tomar varios valores, según la operatividad que se desee que tome
la base de datos. Estas opciones son globales y afectan a la base de tos en su conjunto.

Los parámetros que se especificaron en la creación de la base de datos. Se pueden modificar para adaptar la
base de datos a nuestras necesidades, para ello posicionados sobre la base de datos en el administrador
corporativo con el botón derecho del ratón elegimos propiedades.

Y del cuadro de diálogo que aparece elegimos la pestaña opciones.


Entonces aparecen las opciones que se especificaron en el momento de la creación de la base de datos y los
valores que toman, si lo deseamos podemos modificar estos valores.

Renombrando una base de datos


Sólo el administrador puede renombrar una base de datos. Para hacerlo se utiliza ALTER DATABASE del
siguiente modo:

ALTER DATABASE dbDesarrollo


Modify Name = dbDesarrollo2;

Obtener información sobre bases de datos

Podernos recopilar información sobre numerosos aspectos de nuestra base de datos, utilizando ciertos
procedimientos almacenados.

sp_helpdb 'nombre_base_datos'

Proporciona información acerca de todas las bases de datos o de una en particular. Devuelve el nombre,
tamaño, propietario, identificador, fecha de creación y opciones. Si no se proporciona un parámetro y se pone
sólo.

sp_helpdb

Nos entregará información sobre todas las bases de datos del sistema. La información sobre los ficheros de
base de datos la obtenemos con

sp_helpfile 'nombre_fichero'

Devuelve información sobre uno o todos los ficheros de una base de datos, el nombre de los ficheros aparece
marcado en rojo en la imagen anterior, un ejemplo concreto sería:

sp_helpfile 'dbNuevaBD_Data'

La información sobre el espacio de almacenamiento la podemos obtener con

sp_spaceused
Muestra la cantidad de espacio utilizado por una base de datos, si especificamos el objeto, nos indicará el
espacio que ocupa un objeto, por ejemplo una tabla.

sp_spaceused 'dbo.tbNombre_Tabla'

Eliminación de bases de datos


Cuando se borra una base de datos se eliminan fisicamente los ficheros asociados a ella. Sólo el administrador y el
propietario de una base de datos pueden borrarla. Existen algunas bases de datos que no pueden eliminarse.

Ejemplo
Las bases de datos master, model y tempdb. Tampoco se puede eliminar las bases de datos que estén abiertas, o utilizadas
en replicación. La eliminación de la base de datos puede realizarse mediante el Administrador Corporativo, pulsando el
botón derecho del ratón sobre la base de datos y elegimos eliminar. Por comando utilizaremos DROP DATABASE.

DROP DATABASE dbDesarrollo

Bibliografía
https://docs.microsoft.com/es-es/sql/relational-databases/views/views?view=sql-server-
ver15#:~:text=Una%20vista%20es%20una%20tabla,de%20datos%20con%20un%20nombre

http://josephorallo.webs.upv.es/docent/BDA/castella/tema2efg_4x1.pdf

https://www.tutorialesprogramacionya.com/sqlserverya/temarios/descripcion.php?inicio=100
&cod=109&punto=103#:~:text=Una%20vista%20es%20una%20alternativa,de%20datos%2
0como%20un%20objeto

https://www.youtube.com/watch?v=U8mXSMJb-6s

https://docplayer.es/53647234-Tema-5-modificacion-de-la-base-de-datos-en-sql.html

Análisis y Programación: Creación y modificación de bases de datos SQL Server (Aumentar y reducir tamaño)
(analisisyprogramacionoop.blogspot.com)

Potrebbero piacerti anche