Vous êtes sur la page 1sur 13

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos

1.- DATOS INFORMATIVOS:


FECHA DE PRESENTACIN: NOMBRE: Daniela Carrasco Jueves 20 de Junio del 2013. CDIGO: 547

CURSO: Cuarto B. PROFESORA: Ing. Blanca Hidalgo.

2.- TEMA:
VISTAS NDICES CONSTRAINT

3.- OBJETIVOS:
Generales: Obtener un conocimiento ms amplio y detallado acerca de: Creacin de Vistas, ndices y Constraint, analizar sus principales funciones, caractersticas, ventajas, desventajas y su correcto modo de empleo para una mejor comprensin y utilidad. Especficos: Reforzar los conocimientos adquiridos en clase y profundizarlos mediante una investigacin a fondo de los mismos. Compartir los conocimientos investigados para una mejor comprensin. Comprender la correcta escritura de nuestros temas a investigar, para el uso adecuado al momento de aplicarlos en el mundo real.

4.- INTRODUCCIN:
Las Bases de Datos han estado en uso desde los primeros das de los ordenadores, con el tiempo han ido desarrollndose son el corazn de una organizacin ya que es vital que podamos contar con datos que nos devuelvan informacin como por ejemplo una gua telefnica que es una Base de Datos. Podra decirse que, en la actualidad la creacin de Bases de Datos para el mundo real es indispensable.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Existen diferentes tipos de programas para proyectar una base de datos, como por ejemplo: Mysql, SQL server, Oracle, Acces entre otros. Uno de los frecuentemente utilizados es el SQL server que es un Lenguaje de Consulta Estructurada, que define y maneja datos en una base de datos relacional. En una base de datos relacional, los datos son almacenados en tablas. Una tabla es un conjunto de filas y columnas. El SQL es un lenguaje de Bases de Datos Normalizado, es utilizado para recuperar o actualizar datos mediante la especificacin de columnas, tablas y diversas relaciones que entre ellas existen. Con el uso de clusulas como: Vistas, ndices, Constraint, entre otras; el lenguaje SQL nos permite desarrollar una Base de Datos en la que podemos obtener datos de las tablas en forma rpida, ordenada, segura, eficaz y concisa.

5.- MARCO TERICO:

Gran cantidad de bases de datos relacionales que son utilizados en aplicaciones en el mundo real tienen complejos esquemas y formados por muchas tablas. En ocasiones, es conveniente que algunos grupos o perfiles de usuarios tengan una vista parcial de ese esquema, o que tengan una visin de la misma con una estructura diferente a la del esquema que realmente est almacenado. Precisamente para estos casos, el lenguaje SQL permite definir vistas. Una vista es una alternativa para mostrar datos de varias tablas. Es esencialmente una consulta almacenada que devuelve un conjunto de resultados y a la que se le pone un nombre. Una vista es una tabla virtual que almacena una consulta, aparece como una tabla ms del esquema, aunque en la realidad no lo es, no contiene datos. Es llamada tabla virtual porque los resultados que retorna y la manera de referenciarlas es la misma que para una tabla.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas consultadas en una vista son llamadas tablas base. En general, se puede dar un nombre a cualquier consulta y almacenarla como una vista. Dos son las principales razones por las que es necesario crear vistas: Seguridad: Nos pueden interesar que los usuarios tengan acceso a una parte de la informacin que hay en una tabla, pero no a toda la tabla. Comodidad: El modelo relacional no es el ms cmodo para visualizar los datos, lo que nos puede llevar a tener que escribir complejas sentencias SQL, tener una vista nos simplifica esta tarea. En sntesis diremos que una vista permite devolver un pequeo subconjunto de datos de la tabla. Nota: La modificacin de los datos a travs de una vista solo es permitida si se modifica nicamente una sola tabla correspondiente a la vista y si la consulta (origen de los datos) de la vista no utiliza clculos. CONSIDERACIONES AL MOMENTO DE CREAR UNA VISTA: Antes de crear una vista, debemos tener en cuenta las siguientes indicaciones: Con las vistas, no se puede asociar reglas ni tampoco definiciones DEFAULT. No pueden crearse vistas temporales, ni vistas dentro de tablas temporales. Slo puede crearse vistas en la base de datos actual. Sin embargo, las tablas y las vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras bases de datos, incluso, en otros servidores, si la vista se define mediante consultas distribuidas. Los nombres de las vistas deben seguir las reglas que se aplican a los identificadores y ser nicos para cada esquema. Adems, el nombre debe ser distinto del de las tablas incluidas en ese esquema. Es posible generar vistas dentro de otras vistas. La consulta que define la vista no puede incluir las clusulas COMPUTE ni COMPUTE BY, y tampoco puede incluir la palabra clave INTO.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos La consulta que define la vista no puede incluir la clusula ORDER BY, a menos que tambin haya una clusula TOP en la lista de seleccin de la instruccin SELECT. La consulta que define la vista no puede incluir la clusula OPTION que especifica una sugerencia de consulta. Debe especificar el nombre de todas las columnas de la vista en el caso de que: Alguna de las columnas de la vista derive de una expresin aritmtica, una funcin integrada o una constante. Dos o ms columnas de la vista tuviesen, en caso contrario, el mismo nombre (normalmente, debido a que la definicin de la vista incluye una combinacin y las columnas de dos o ms tablas diferentes tienen el mismo nombre). Desee darle a una columna de la vista un nombre distinto del de la columna de la que deriva. (Tambin puede cambiar el nombre de las columnas en la vista). Una columna de una vista hereda los tipos de datos de la columna de la que deriva, aunque no cambie su nombre.

NOTA:
Esta regla no se aplica cuando una vista se basa en una consulta que contiene una combinacin externa, ya que las columnas pueden cambiar al pasar de no permitir valores NULL a permitirlos.

Sintaxis La sintaxis general para crear una vista es la siguiente: CREATE VIEW view_name [(column_list)] AS sentencia_select La idea es muy simple, solamente le damos nombre (view_name) a una consulta. Opcionalmente, los atributos de la relacin resultante de la sentencia_select pueden renombrarse mediante etiquetas en column_list. Ejemplo:

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Para crear una vista Ejecutar la siguiente instruccin para crear una vista muy sencilla que ejecuta una instruccin SELECT y devuelve los nombres y los precios de nuestros productos al usuario. CREATE VIEW vw_Names AS SELECT ProductName, Price FROM Products; GO Pruebe la vista Las vistas se tratan como tablas. Use una instruccin SELECT para tener acceso a la vista. SELECT * FROM vw_Names; GO

Un ndice en informtica es como el ndice de un libro donde tenemos sus captulos y la pgina donde empieza cada captulo. Un ndice es una estructura de datos que permite recuperar las filas de una tabla de forma ms rpida adems de proporcionar una ordenacin diferente a la natural de la tabla. Un ndice est definido sobre una columna o sobre un grupo de columnas, y las filas se ordenarn segn los valores contenidos en esas columnas. Por ejemplo, si definimos un ndice sobre la columna poblacin de la tabla clientes, el ndice permitir recuperar los clientes ordenados por orden alfabtico de poblacin.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Si el ndice se define sobre varias columnas, los registros se ordenarn por la primera columna, dentro de un mismo valor de la primera columna se ordenarn por la segunda columna, y as sucesivamente. Por ejemplo si definimos un ndice sobre las columnas provincia y poblacion se ordenarn los clientes por provincia y dentro de la misma provincia por poblacin. El orden de las columnas dentro de un ndice es importante. Los ndices nos ayudan a obtener datos de las tablas en forma ms rpida. Ventajas: Si una tabla tiene definido un ndice sobre una columna se puede localizar mucho ms rpidamente una fila que tenga un determinado valor en esa columna. Recuperar las filas de una tabla de forma ordenada por la columna en cuestin tambin ser mucho ms rpido. Inconvenientes: Al ser el ndice una estructura de datos adicional a la tabla, ocupa un poco ms de espacio en disco. Cuando se aaden, modifican o se borran filas de la tabla, el sistema debe actualizar los ndices afectados por esos cambios lo que supone un tiempo de proceso mayor. SQL Server permite crear dos tipos de ndices: 1) Agrupados (clustered): Un INDICE AGRUPADO es similar a una gua telefnica, los registros con el mismo valor de campo se agrupan juntos. Un ndice agrupado determina la secuencia de almacenamiento de los registros en una tabla. Se utilizan para campos por los que se realizan bsquedas con frecuencia o se accede siguiendo un orden. Una tabla slo puede tener un ndice agrupado. El tamao medio de un ndice agrupado es aproximadamente el 5% del tamao de la tabla.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos 2) No Agrupados (nonclustered): Un INDICE NO AGRUPADO es como el ndice de un libro, los datos se almacenan en un lugar diferente al del ndice, los punteros indican el lugar de almacenamiento de los elementos indizados en la tabla. Un ndice no agrupado se emplea cuando se realizan distintos tipos de bsquedas frecuentemente, con campos en los que los datos son nicos. La diferencia bsica entre ndices agrupados y no agrupados es que los registros de un ndice agrupado estn ordenados y almacenados de forma secuencial en funcin de su clave. Si no se especifica un tipo de ndice, de modo predeterminado ser no agrupado.
Es recomendable crear ndices en tablas. Un ndice puede cubrir una o ms columnas.

Sintaxis
La sintaxis general para la creacin de un ndice es la siguiente: CREATE TIPO DE NDICE INDEX "NOMBRE_TABLA" (NOMBRE_COLUMNA); "NOMBRE_NDICE" ON

TIPODEINDICE: Indica si es agrupado (clustered) o no agrupado (nonclustered). Puede especificarse tambin que sea "unique", es decir, que no exista valores repetidos. Si se intenta crear un ndice unique para un campo que tiene valores duplicados, SQL Server no lo permite. Ejemplos: En nuestro primer ejemplo crearemos un ndice agrupado nico para el campo "codigo" de la tabla "libros": CREATE UNIQUE CLUSTERED INDEX I_libros_codigo ON libros(codigo); En nuestro segundo ejemplo vamos a suponer que tenemos la siguiente tabla: Tabla Customer

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos (First_Name char(50), Last_Name char(50), Address char(50), City char(50), Country char(25), Birth_Date date) Si deseamos crear un ndice tanto en Ciudad como en Pas, ingresaramos: CREATE INDEX IDX_CUSTOMER_LAST_NAME on CUSTOMER (Last_Name) Para crear un introducirse: ndice en la ciudad y el pas debe

CREATE INDEX IDX_CUSTOMER_LOCATION on CUSTOMER (City, Country) No hay una regla estricta respecto de cmo nombrar un ndice. El mtodo generalmente aceptado es colocar un prefijo, tal como IDX_, antes del nombre de un ndice para evitar la confusin con otros objetos de la base de datos. Tambin es una buena idea brindar informacin sobre qu tabla y columna(s) se utilizar el ndice.

Dentro de la realizacin una base datos es importante aparte del modelamiento y la definicin de datos los famosos constraint, su uso es como una validacin de los campos que tengan constraint, es decir es la validacin que la realiza en el motor de base datos o el DBMS, por consiguiente en el tema de validacin de parte del DBMS es ms rpida y se ahorra recursos. Los CONSTRAINTS sirven para lograr la integridad de datos, aseguramos que los datos ingresados a las columnas sean vlidos y que las relaciones entre las tablas no se perdern. Los constraints pueden definirse al momento de crear la tabla, aunque

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos tambin es posible hacerlo despus de que las tablas se han creado. Puede colocar restricciones para limitar el tipo de dato que puede ingresarse en una tabla. Dichas restricciones pueden especificarse cuando la tabla se crea por primera vez a travs de la instruccin CREATE TABLE, o luego de crear la tabla a travs de la instruccin ALTER TABLE. SQL Server maneja distintos tipos de constraints. Los cuales son: Not null: En forma predeterminada, una columna puede ser NULL. Si no desea permitir un valor nulo en una columna, querr colocar una restriccin en esta columna especificando que NULL no es ahora un valor permitido. Primary Key: Clave primaria. Solo puede haber uno por tabla, y el mismo indica la columna o columnas que identifican de forma nica a cada registro. Todas las columnas que participan de una PK deben ser Not Null. Ademas una PK puede ser clustered o nonclustered. Si es clustered hace que los datos de la tabla se almacenen ordenado por la PK. Foreing Key: Clave fornea. Se utiliza para asegurar la integridad referencial entre tablas. Para poder crear una FG entre tablas, la parte padre debe ser PK de la misma y los tipos de datos deben ser idnticos (o compatibles en el peor de los casos). Adems podemos activar la opcin Cascading, lo que hace esta opcin es que cualquier modificacin realizada en el padre tambin afecta a los hijos, por ejemplo si eliminamos un registro en la tabla padre, tambin se borran todos los registros relacionados en la tabla hija. Unique constraints: podemos definir un campo o conjunto de campos como Unique, lo cual indica que esos campos identifican un registro de forma nica, o en otras palabras no se pueden duplicar.

NOTA:
Los Unique Constraint puede indicarse sobre columnas con datos null, lo particular es que un null nos es igual a otro null, por consiguiente podemos insertar n datos null sin que se produzca un error.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Default constraint: Valor por defecto. Nos permite especificar un valor por defecto para una columna en caso de que no se especifique ninguno al momento de inserta un registro. Check constraint: se utiliza para controlar el valor o valores que un campo puede contener. La evaluacin de un check solo puede devolver verdadero o falso. Aunque esto no es un limitante ya que podemos hacer comprobaciones como por ejemplo el nro. de seguridad social (USA): tres numeros, luego un guion, dos numeros otro guion y por ultimo 4 numeros mas. CHECK (Column1 LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][09][0-9]'). Sintaxis La sintaxis para la creacin de la clusula constraint es la siguiente: CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa [(campo externo1, campo externo2)]} Para los ndices de campos mltiples (relacin): CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) | UNIQUE (nico1[, nico2 [, ...]]) |FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa [(campo externo1 ,campo externo2 [,...])]} En donde: Nombre Primario1 nico1 Ref1 Tabla externa Campos externos Es el nombre del ndice que se va a crear. Es el nombre del campo o de los campos que forman el ndice primario. Es el nombre del campo o de los campos que forman el ndice de clave nica.
Es el nombre del campo o de los campos que forman el ndice externo (hacen referencia a campos de otra tabla).

Es el nombre de la tabla que contiene el campo o los campos referenciados en refn Es el nombre del campo o de los campos de la tabla externa especificados por ref1, ref2,... , refn

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos Si se desea crear un ndice para un campo cuando se est utilizando las instrucciones ALTER TABLE o CREATE TABLE la clusula CONSTRAINT debe aparecer inmediatamente despus de la especificacin del campo indexado. Si se desea crear un ndice con mltiples campos cuando se est utilizando las instrucciones ALTER TABLE o CREATE TABLE la clusula CONSTRAINT debe aparecer fuera de la clusula de creacin de tabla. Ejemplo:

6.- CONCLUSIONES:
Despus de haber realizado la presente consulta, cumplimos con nuestro objetivo de obtener un conocimiento ms amplio y detallado de Vistas, ndices y Constraint en el lenguaje SQL; pudimos darnos cuenta de la importancia de su creacin para obtener datos de las tablas en forma ms rpida, ordenada y segura en nuestra Base de Datos. La creacin de vistas, ndices y constraint; son una herramienta indispensable para lograr una correcta base de datos en gran cantidad de utilidades para el mundo real. Mediante el presente trabajo de investigacin acerca de la creacin de vistas, ndices y constraint; que incluye nuestro programa SQL, pudimos comprender mejor su correcto modo de empleo.

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO FACULTAD DE INFORMTICA Y ELECTRNICA Base de Datos La presente investigacin nos motiva a desarrollar nuestra capacidad ya que nos ser til ms adelante en el campo de trabajo que desempeemos.

7.- RECOMENDACIONES:
Aclarar los trminos desconocidos que se nos presenten en el transcurso de la consulta, ya que de este modo podremos comprender de una mejor manera. Analizar la informacin recopilada una vez terminado el trabajo, si es necesario volverlo a leer para poder aclarar dudas y estar en capacidad de presentar un excelente informe. Leer y analizar cuidadosamente la informacin que se nos presenta ya que en nuestra bsqueda muchos datos pueden ser incorrectos.

8.- BIBLIOGRAFA:
[1] Vistas en SQL. Disponible en: http://cnx.org/content/m18786/latest/ [2] Disear e Implementar Vistas. Disponible en: http://msdn.microsoft.com/es-es/library/ms189918(v=sql.105).aspx [3] CREACIN DE NDICES. Disponible en: http://www.sqlserverya.com.ar/temarios/descripcion.php?cod=68&punto=62 [4] SQL CREATE INDEX Disponible en: http://www.1keydata.com/es/sql/sql-create-index.php [5] CONCEPTOS BSICOS SOBRE NDICES. Disponible en: http://www.aulaclic.es/sql/b_8_4_1.htm [6] CONSTRAINT EN SQL SERVER 2008. Disponible en: http://sertecnologia.blogspot.com/2010/06/constraint-en-sql-server-2008.html [7] SQL (Captulo 36: La clusula CONSTRAINT) Disponible en: http://www.emagister.com/curso-sql/clausula-constraint [8] CONSTRAINTS. Disponible en: http://www.achiola.com.ar/content/constraints

Vous aimerez peut-être aussi