Manual SQL Server - SENATI (Vistas, Trigger) PDF

You might also like

Download as pdf
Download as pdf
You are on page 1of 113
SENATI PROGRAMA NACIONAL DE INFORMATICA Programacion de Base de Datos en SQL Server MANUAL DEL PARTICIPANTE NET Pte Programseién de 80 rsa Sorver SENATI Manual partspane TABLA DE CONTENIDO Capitulot: Creacién de Vistas Introduccion Creackin y manipulaciin de vistas. Creacién de vistas copii informacion on vistas . Tipos de vistas Modifica disefio de las vistas... Eliminacién de vistas Preguntas de repaso. Capitulo 2: Procedi Introduceién. Creectn de procediniontos ainacaradoe. Uso de parémetras con proceckmentos almaconados... Ejecutarprocedimionos almacenados autométcamente al iniciar SQL Server. Uso de procedimientos aimacenados remotos. Preguntas de repaso ;ntos almacenados Capitulo 3: Desencadenadores ‘Trabajo con desencadenadores. CComprensién de las tables inserted y deleted. (reacién de desencadenadores.... Decencedener hserciones y actuatzaciones Desencadenar eliminaciones... Encepsulamiento de les regs de negocbs. Uso de desoncadenadores INSTEAD OF... Recopietin de informactn sobre los devencadenadres.. Preguntas de repaso.. Capitulo. Introducet6n. Funciones eecalres. Funciones de valores de tabla en lin Funciones de valores de tabla de mitiples instrucciones: Preguntas de repaso.. unciones definidas por ol usuario Capitulo 5: Manejo de Transacciones ‘ProgremsNeconaideinbmiies Programacién de BD ‘on SOL Sarver Marval del parkpante a ‘Secuencia de comandos. ‘Transacciones. Tipos de Transacciones. Transacciones explictas La vateble global @@trancount.. ‘Transacciones autométicas. ‘Transacciones implicitas Preguntas de repaso.. Capitulo 6: Herramientas de monitoreo y rendimiento Fundamentos y herramientas de monitoreo del rendimiento Soleccion y optimizacién de hardware. Parémetros de configuracion de Windows 2000. Contadores del monitor de rendimiento de Windows 2000. Configuracion de SQL Server Opciones de procesador Opciones de consultas en paralelo Opciones de configuracién de memoria... Opciones de E'S. Opciones de consulta indice . \Monitoreo del rendimiento de SQL Server Contadores del monitor de rendimiento de SQL Server. et Procedimiantos aimacenados de sistama para 6! monitoreo del rendimiento. La ventana de Actividad actual del Administrador corporativo de SQL... Uso de! Analizador de SQL Server Configurar un registro de auditor... Uso de una raza pera superar el rendimienio m1 1 Asistente para optimizaciin de indices . 72 Preguntas de repaso.. 75 Capitulo 7: Analysis Services Introducetén, Comprensién del almacenamiento de datos . ‘Tablas de hechos Dimensiones. ‘Agregacion Comprensin de los puestos de datos Crvacion de un almacén de datos. CComprensisn de los componentes de Analysis Series... LAP. Mineria de datos. Meta Data Services eu. nnn Instalacion de Analysis Sorvicos Pte Programaciin de BD ‘on SL Server SENATI Manual partspane ‘Acceso a la aplicacion de ejemplo para Analysis Services... Preguntas de repaso... Capitulo 8: Programacién desde el lado del Servidor Introduce. ene Tablas Temporates... Uiiizar tables temporales. Variables. Variables bealos Variables globales.. Variables de Configuractén Variables estadisticas. Variabios dol sistoma .. Ublizar variables Declarar una variable local. Control de ejecucién... Procesamiento Condicio Elcomando GOTO... Bucles.. Cursores de Transact-SQL. Caracteristicas de los cursore: Tos de cursor. Ullizar Cursores: Gearcursores... Manipular fas mediante un cursor . Preguntas de repaso... ‘ProgamaNedonaldeinbeniiee Programackin de 8D rt Tr sat Saver Maral del prkspante SENATI Programe Nacional e homies ww worsens"? SENAT Mana lpr cpanta Capitulo | Creaci6n de Vistas Objetivos: ‘A finalizar este capitulo, el participante tendré conocimientos sobre: ]@ Creacién y manipulacion de vistas. Tipos de vistas. & Eliminacion de vistas. Introduccién La creacién y la manipulacién de vistas le permiten especiicar la manera en que los usuarios voran exactamente los dalos. Puede penser en ellas como si fueran consultas almacenedas, Creacion y manipulacién de vistas Las vistas le permiten dividr en forma horizontal o vertical la informacién de una o més tablas de una base de datos. En ots palabras, con una vista puede permitir que los usuarios vean solo los campos y fas seleccionados, La figura muestra una vista que permite que los usuarios vean solo los campos de apelido y nombre de los aulores (particin Vertical) y solo los autores que tengan un apelido que empiece con la letra M (particion orzontal). ‘uname | autnamo | city | stato | ap |Caloney [Sarah Fresno | CA | 90225 Deitch Pino | Tx | 76503, Dominic Bend oR | 9722 Ferrous ‘Towns | ME | 2566 MecFeather Bowie | TU | 82331 MacDonald London | mo | 85823, [oretand Reno NV | 89509) Spinola Moreno | MN | 73220 ‘Program Neconaldelnemiice Programacisn de 8D rt erat Soo Merial el parante SENATI uname | au_fname MacFeather [Steams MacDonald | Stephani El.c8digo utlizado para crear esta vista podria verse de la siguiente manera: CREATE VIEW dbo. wAutores AS SELECT au. Iname, au_fhame FROM authors WHERE au_Iname LIKE "M36" ‘También pueden crearse vistas para mostrar informacisn derhada, Por ejemplo, puede crear una vista que muastre el apelido, nombre y titulo del fibro de un ‘autor, y luego un campo calculado 0 derivado que muestra el nimero de libros vendidos ‘muttipicado por la cuota de regalias por libro Las vistas también tonen las siguientes ventajas: ‘+ Usted controla lo que los usuarios pueden ver. Esta capacidad es cil tanto por seguridad ‘como por faciidad de uso, Los usuarios no tienen que ver informacion extra que no requieren. ‘+ Puede simplifcar la interfaz do usuario ceando vistas de consultas utlizadas ‘cominmente. Con esta capacidad, los usuarios pueden ejecutar vistas con instrucciones simples, en lugar de toner que proporcionar parémotros cada woz que so ojecute la consutta, ‘+ Las vistas fe permiten establecer la seguridad. Los usuarios pueden controlar s6lo lo que usted les permita ver. Esto podria ser un subconjunto de fas 0 columnas, informacin ‘estadistica 0 un subconjunto de informacién de otra vista ‘+ Puesto que una vista es un objeto de base de datos, puede asignar permisos a un usuario en relacién con la vista. Este mélodo es mucho mas eflcente que colocar los, ‘mismos permisos en oolumnas individuales de una tabla, Ahora pueden crearse indices en las vistas, fo que las convierte en un método increiblementa eficiente para oblener acceso a los dalos solcitados con frecuencia, ‘+ Los datos pueden exportarse desde una vista, utiizando la herramienta BCP (Programa de Copia Masiva).. Las vistas son objetos muy poderosos y dtiles en el disefio de su base de datos. Puede ‘olorgar a los usuarios acceso a ciertas columnes y fias dentro de su tabla, pero una vista es ‘mucho mas facil de mantener que fos parmisos de usuario en columnas individuales; por fo tanto @s el metodo preferide para particionar informacion. Esta también es una consideracién de rendimiento. Al colocar permisos en columns de una tabla, cada vez que se hace referencia a esa tabla por alguna razén, deben comprobarse los permisos en cada columna alla que se hace referencia. Creacién de vistas Puede croar vistas ullizando la herramionta Analizador de consuitas de SQL Server o ol ‘Administrador corporativo de SQL Server. La sintaxis de a instruccién VIEW es la siguiente: Programe Nacional e homies ww worsens"? SENATI Manus! partpan (CREATE VIEW [propitaro] nombre_vista [(nombre_cokurna[,nombr@_cokmna |) [WITH atibutos ‘AS instuccién_select IWITH CHECK OPTION ‘irbutos: (ENCRYPTION | SCHEMABINDING | VIEW_METADATA} Una instrucolén CREATE VIEW simple se ve de la siguiente manera: CREATE VIEW wTodosLosAutores (AS SELECT * FROM authors Puede utiizar esta vista de diversas meneras, como se muestra en los siguientes ejemplos: SELECT * FROM wTodostosAutores. SELECT au_fname, au_Iname FROM wwTodosLosAutores SELECT au_Iname FROM wwTodosLosAutores WHERE au_Iname like 9%" unde especiicar varias opciones en la instruccién CREATE VIEW: WITH CHECK OPTION. WITH ENCRYPTION, WITH SCHEMABINDING y WITH VIEW_METADATA. De manera predoterminada, las modiicaciones de datos reakzadas por medio de una vista no se comprueban para determina sibs fis afoctodas estarén dentro de la definicion de la Vista, En otras palabras, pueden realzarse incerciones y actualizaciones @ la tabla base incliso sila vista no las uti. Por ejemplo, una vista podria paricionar una tabla en forma horizontal y proporcionar sélo Ios registos que tengar el apelido de un eulor que comience con laleta FSi ullizar WITH CHECK OPTION, podria agregar potencialmente un nuevo regkstto que tuvira el apelido Meredith. La opoén WITH CHECK OPTION obliga @ que todas los insirucciones do ‘modifieacin de datos aplicadas a través de la vista utlicon los etorios establecidos con la Instucci6n SELECT que dotin [a vista. La opcén WITH ENCRYPTION cia fa instuccion CREATE VIEW en la tabla de sistema sysoomments. Una vez quo se ofa una defnicion do Vista, no puede ser vista por nadie. La Gnica mansra de descirar una visas quitara y logo volver a crear. Las siguientes vistas de ejamplo se crean con las opciones WITH CHECK OPTION y WITH ENCRYPTION habilladas: CREATE VIEW viMiComprobacion AS select * from authors WITH CHECK OPTION (CREATE VIEW wiMiCifrado WITH ENCRYPTION AS select * from authors Programe Nedoral de nornbica Programacisn de 8D rt erat Soo Manual del parkdpante SENATI Cucndo cree visas siompre debe probar la insiruociin SELECT ants de inckira en una isla. De osta manera puede evil resultados inesperacos. Por ejampl, puede crear una Visla que dewela todas los fias de su taba. Le tabla podria toner solo 500 fis al crear su visla. Dos arics después, esa misma tabla podria devoNer 10.000 fias de datos. zSigue siondo esta instuccion SELECT adecuada? Le opelén WITH SCHEMABINOING lo obliga a ulizer nombres compuestos por das partes (propietario objeto) para hacer referencia a las tablas base, vistas 0 UDF a los que se hace referencia en la instruccién SELECT de su vista. Al hacer no puede modificarse ni quiarso ol ‘esquema de esos objotos base, a menos que se quile 0 sa allore la vista Por ejemplo, si crea una vista con base en las columnas au_Iname y au fhare de la tabla authors ublza la opcién WITH SCHEMABINDING, no puede quitar le table euthors. PPrmerotendria que quitarla vista y luego la tabla authors. La opcion VIEW_METADATA especiica que cuando se solcten los metadatos del modo de exploraciin de un clente SQL Server 2000 debe devolver informecén acerca de la vila {(netedeios) en iyger del conjunto de resuitedos de le instucciin SELECT de lp vista. En a ‘actualiiad, as APIs DBLIB y ls biblioteces de OLED soporian esta caracterisica Tenga en cuenta estas reglas y resticciones al cear vst ‘+ Las instrucciones CREATE VIEW no pueden combinarse con otras instrucciones de SQL ‘en un be. ‘+ Alcrear una vista, se comprueba cualquier objeto de base de datos a los que haga refe- rencia la vista en él momento en que ésta se cree. ‘+ Cuando ejacute una vista, debe tener permiso SELECT en los abjetos a los que se hace referencia on la defnicién de la vista, a menos que los objetos no tengan un propietario especticado. Esto signfica que usted podria crear potencialmente una vista que no pueda ejecutarse. Los permisos an las vislas se comprueban cada vez que se ejecute la Vista y no cuando se crean. ‘+ No puede incluir dentro de une vista les ckéusulas ORDER BY, COMPUTE ni COMPUTE BY de su instruccién SELECT. ‘© Si quita objetos a fos que se haga referencia dentro de una vista (@ menos que haya ‘especiicado la opcion WITH SCHEMABINDING). la vista no se elimina. Recibiré un ‘mensaje de error a siguiente vez que trate de uliizar esa vista, or ejemplo, si crea una vista combinando informacion de dos tablas baso y luego quita luna de las tablas, fa vista no se elimina, pero no puede ejecutarse. Para eviar este problema, utlice ol procedimiento almacenado de sistema sp_depends para ver qué objotos dependientes tone ia tabla antes de quitara, ‘+ No puede hacer referencia a tabias temporales en una vista. Eslo también significa que 10 puede utllizar una ciusula SELECT INTO en una Vista, ‘© Sisu vista utliza una instruccién SELECT * y se agregan columnas en la tabla base a la {que se hace referencia en la instruccién SELECT, las nuevas columnas no aparecen en ‘a vista. EI * se roemplaza al momenio de su creacién por una lista fja de columnas. Debe allerarla vista para incluir las columnas recién agregadas. ‘© Sicrea una vista hija basada en una vista madre. Tenga culdado de lo que hace la vista ‘madre. Podtia toparse con problemas si esta ultima os grande y compleja, ‘+ Los datos no se guardan por separado en una vista. Esto significa que si modifica los datos en una vista, esta modificando los datos de las tablas base. ‘+ No puede hacer referencia a més de 1,024 columnas en una vista. ‘+ Debe especificarlos nombres para todas las columnas derivadas en su vista. Programe Nacional e homies Rocopllar informacién on vistas Para obtener el texto utlizado en Ia instuccién CREATE VIEW, puode utlizar ol ‘Administrador corporalivo de SQL Server, 0 ejecutar el procedimianto aimacenado de sistema sp_helplext y pasar el nombre de la vista como parametro: sp_helptext wiMiComprobacion (CREATE VIEW vwMiComprobacion AS SELECT * FROM authors WITH CHECK OPTION Si ejecuta Sp_dopends en le vista anterior, obtendra lo siguiente: EXEC sp_depends vwMiComprobacion En la base de datos actual, el objeto especiicada hace las siguientes referencias: Name type update selected column dbo authors user table 0 yes auld dbo.authors user table 0 yes au_hname dbo authors user table 0 yes ‘au_fname dbo.suthors user table 10 yes phone dbo.authors user table 0 yes address dbo authors user table 0 yes. oly dbo.authors user table 0 yes. state dbo.authors user table 0 yes: zp dbo authors user table 10 yes contact También puede consultar las siguientes tablas del sistema para recopilar Informacion acerca de una vista: ‘+ syscolumns devuelve las columnas definidas dentro de una vista. ‘© syscomments devuelve el texto de la instruccién CREATE VIEW. ‘+ sysdeponds devuelve las dependencias de la vista. + sysobjects devuelve el nombre de la vista. Tipos de vistas Cada tipo distinto de vista depende del tipo de insttucciin SELECT utiizada para crearla ‘Ahora veamos mas detalladamente las _proyecciones, combinaciones, agregados, ‘columnas calculadas y vistas basadas an otras vistas. Vistas de proyeccién El tipo mas simple de vista se conoce cémo proyeccién. Una proyeccién es simplemente tun subcorjunto de columnas de una tabla: CREATE VIEW wwMiVista ‘AS SELECT au_Ineme, au_fname FROM authors ‘Programs Neconaldelnomiice Programacién de BD rt Tr sat Saver Marl et parkipant SENATI Para trabajar con la vista recién croada utlice la siguiente instruccién’ SELECT * FROM vwMiVista ‘au_fnamo au_Iname Bennet ‘Abraham Blotchet Halls, Reginald Carson Chery DeFrance Michel ol Castilo. Innes Dull Ann Green Marjorie bel Lol White Johnson Yokomoto Akiko (23 flas atectadas) Vistas de combinacion Las combinaciones vinculan filas de dos o més tablas mediante la comparacién de valores on las columnas especificadas. Por ejemplo, tal voz usted quiora dar a los Usuarios una lista de autores de la tabla authors y los titulos de los libros que han escito de la tabla tities. Estas dos tablas tionen una rolacién de varios a varios en la base de datos pubs, y por lo tanto ultlizan la tabla titeauthor para crear dos relaciones de uno a varios, como se muestra en la figura. Authors fitleauthor titles: au_id au_id title_id au_iname title_id title ay_fname au_ord phone royaltyper address aty state zip contract Programe Nacional e homies wr SENAT Puede escribir una combinacién para recopllar datos de las tablas authors, titles y tileauthor, pero es mucho mas eficiente crear una vista, como se muestra a continuacién. CREATE VIEW vwAutoresTitulos [AS SELECT authors, au_Iname, authors.au_Mmame, titles.tide FROM authors INNER JOIN titleauthor ON authors.au_id = titleautor.au_id INNER JOIN titles (ON titles.title_id = titleauthor.title_id Luego ejecute lo siguiente para mostrarel apelido, nombre y titulo de cualquier libro que hayan escrito todos los autores con un apellido que empiece con la letra M SELECT + FROM vwAutoresTitulos WHERE au_Iname like "M%' au_Iname au_fame Title MacFesther Stearns Cooking with Computers: MacFoathor Stearns ‘Computer Phobie AND Non-Phobic.. (@ files afectadas) Otros tipos de vistas ‘También puede crear vistas ulilizando funciones de agregado, columnas calculadas y Vistas basadas en otras vistas. Los agregados ulilizan funciones de agregado tales como AVG, COUNT y SUM. Puede ullizar columnas calculadas para crear datos de resumen para sus usuarios. Puede utilizar una vista para refinar ain mas la vista original. Por ‘ejemplo su vista original podria proporcionarle informacién sobre todos los productos con sus precios corespondientes y la cantidad vendida. Puede crear una nueva vista a partir de 9sa vista que calcule la multiplicacion de la cantidad por el numero de unidades vendidas para un numero de articulo especitico. CREATE VIEW waLibrosTotales AS SELECT title (price * yid sales) ‘Total’ FRON tities ‘Ahora puede utlizar esta vista para devolver todos los libros de la tabla titles con una ‘columna tlamada Total, la cual muestra el precio muttiplicado por las ventas anuales del afio en curso, Select * from vvLibrosTotales title Total ‘The Busy Executive's Database Guide 81,859.05 ‘Cooking with Computars: Surreptitis Balance .. 6318.20 You can combat computer stress! 5978.78 straight Talk About Computers 81,859.05 silicon Valley Gastronomic Treats 061968 ‘Programs Neconaldelnomiice

You might also like