UNIDADGUIA DIDÁCTICA 1 Fundamentación El propósito de este módulo es introducir al estudiante en el Diseño e Implementación de Base de Datos como una herramienta de imprescindible ayuda en la construcción de un sistema de información. Proporcionando al participante un conjunto de técnicas de identificación de requerimientos operacionales, y modelado de bases de datos, pasando por sus diferentes etapas. Incluyendo el desarrollo de un caso práctico, que incluye desde la identificación de requerimientos hasta el modelado físico de la Base de Datos para una organización; al cual los alumnos harán su respectivo levantamiento y tratamiento de la información recopilada, la misma que será guiada por el docente a cargo. Capacidad El participante al final de esta unidad estará en capacidad de: Diseñar su Base de Datos partiendo de los requerimientos de información que los usuarios de una empresa puedan tener para cumplir los procesos de negocios. Aplica las técnicas y estrategias de Modelamiento de base de datos adecuadas a fin de conseguir un modelo en un plazo más corto y de una manera más óptima valorando la importancias de las estrategias de Modelamiento de datos Página |1 Estructura de contenidos 1. Entorno SQL 2008 2. Descripción del entorno y herramientas principales. 3. Conexión a un servidor 4. Crear base de datos y tablas por diseño. 5. Almacenar base de datos. Copias de Seguridad y Restaurar. ACTIVIDADES Las actividades a desarrollar en la Unidad son: Actividad 01: o Personaliza el entorno de Microsoft SQL Sever 2008: Identifica las herramientas que va a utilizar en Microsoft SQL Server 2008. Configura su entorno de trabajo de acuerdo a sus requerimientos. Accede al programa correctamente a través de un usuario. Actividad 02: o Crea una Base de Datos de manera gráfica y usando script. o Aplica Backup y restauración de Base de Datos. ESTRATEGIAS METODOLÓGICAS Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 1. Lectura Inicial de Contenidos, la realizaremos de manera ordenada, presenta los aspectos teóricos. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. 2. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de Actividades, donde constan: las consignas o indicaciones. NOTA: Recuerde que el Aula Virtual de la UCV, se empleará como medio de comunicación entre el docente y los estudiantes, para efectos de mensajería interna, foros, evaluaciones virtuales, acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. Página |2 EVALUACIÓN En esta Unidad Ud., será evaluado en: 1. Creación de una Base de Datos en modo de diseño y utilizando código. 2. Crear su backup y almacenar en un dispositivo físico su Base de Datos. 3. Como restaurar una Base de Datos. 4. Desarrollar un caso práctico de crear una Base de Datos para un Empresa determinada identificando sus tablas Es importante que Ud., este en constante comunicación con su docente Tutor, ya sea para informar de dificultades, avances de las tareas, etc. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad; por ejemplo: se le evaluará por la entrega oportuna de sus actividades. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. Elmasri / Navathe. (1997) Sistemas de Bases de Datos. Conceptos fundamentales. Addison Wisley James Martin. Organización de las Bases de Datos. Prentice Hall.Kroenke David M. (1998). Procesamiento de Bases de Datos. Editorial Prentice Hall Hispanoamericana. Korth Henry f. y silberschatz Abraham. Fundamentos de Bases de Datos. Editorial Mc Graw Hill. España
[email protected] http://www.ucv.edu.pe/cis/ Página |3 UNIDAD 1 Análisis y Diseño de Base de Datos en SQL Server 2008 ESTRUCTURA DE CONTENIDOS 1. Entorno SQL 2008 2. Descripción del entorno y herramientas principales. 3. Conexión a un servidor 4. Crear base de datos y tablas por diseño. 5. Almacenar base de datos. Copias de Seguridad y Restaurar. Página |4 2009) Página |5 . restaurar copias de seguridad. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Gabillaud. Que podemos usar para el desarrollo y configuración de una Base de Datos. Base de Datos. La importancia de esta Unidad radica en diseñar y crear un base de datos. programadores y administradores aumentar su productividad. tablas y tipos de datos el cual le permitirá a Ud. ! Importante: Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008. construir correctamente una Base de Datos Le deseo éxitos en el desarrollo de esta Unidad. ingresar. modificar y eliminar registros en Microsoft SQL Server 2008. como almacenar la base de datos y realizar copia de seguridad. el cual nos ofrece herramientas gráficas y utilidades de la línea de comandos que permiten al operador.Introducción Estimado participante: En esta Unidad aprenderá a identificar los componentes de Microsoft SQL Server 2008 y familiarizarse con su interfaz amigable. crear su estructura. Iniciaremos con los fundamentos básicos de SQL Server 2008 y conceptos de Modelo de Datos. 1 ENTORNO SQL Server 2008 r2 Apertura de Microsoft SQL Server 2008 Para iniciar Microsoft SQL Server 2008 debe accesar al menú SQL Server 2008 desde el botón Inicio -> Todos los Programas -> Microsoft SQL Server 2008 -> SQL Server Management Studio Se visualizara la siguiente pantalla: Página |6 . B C D La sección superior del SQL Server Management Studio muestra lo siguiente: A. B. Bajo la barra de título. con un icono de la izquierda.. Finalmente. C. la barra de menú muestra las categorías de menús que utilizará para realizar las diferentes operaciones necesarias. Microsoft SQL Server Management Studio que mostrar que la barra de herramientas.La clásica barra de título de una ventana.. haga clic en Cancelar Entorno de Microsoft SQL Server Existen muchas herramientas que va a utilizar en el servidor Microsoft SQL.Menú Principal. si desea mostrar cualquier barra de herramientas. cuando se realiza una acción que se beneficiaría de otra barra de herramientas.La barra de herramientas Estándar aparece bajo el menú principal La barra de herramientas es sólo una de las disponibles..2 DESCRIPCIÒN DEL ENTORNO En el cuadro de diálogo Conectar al servidor. puede hacer clic derecho en cualquier elemento de menú en Página |7 . Sin embargo. y el sistema de botones en el lado derecho. A Uno de ellos se llama Microsoft SQL Server Management Studio. seguido por el título de la solicitud. El Explorador de objetos. Página |8 . Para ello. con su barra de título de la etiqueta de Explorador de Objetos. Esta ventana se acopla. Un menú aparecerá: D. La parte izquierda de la interfaz de la muestra de objetos del Explorador de Windows. es decir puede moverse desde el lado izquierdo a otro lado de la interfaz.. puede hacer clic y arrastrar la barra de título a un lugar de su elección.el menú principal o cualquier botón de una barra de herramientas. pequeñas cajas que representan los posibles marcadores de posición encontrarían: Puede arrastrar y soltar a uno de los marcadores de posición. Al empezar a arrastrar. puede cerrar u ocultarla.Para colocar la ventana de nuevo a su posición anterior. haga clic en su botón de cierre. Conectar al servidor cuadro de diálogo que surgen. Esto significa que la ventana se puede colocar tanto vertical como horizontal. La parte derecha de la ventana es de una ventana vacía. para conectarse a un servidor: En el menú principal. si usted no quiere que el Explorador de objetos. haga clic en Archivo -> Conectar Explorador de objetos Página |9 . acoplado o pestañas. Si inicia Microsoft SQL Server Management Studio desde el botón Inicio. tendrá que acceder a un servidor. o para mostrar un resultado de alguna operación. hay tres botones. pero que comparten la misma zona. puede hacer doble clic en su barra de título. En la parte derecha del Explorador de objetos título. La ventana también se puede pestañas. En cualquier momento. 3 CONEXIÓN A UN SERVIDOR Con el fin de hacer algo importante en Microsoft SQL Server. muchas otras ventanas ocupará la sección correcta. Para cerrar el Explorador de objetos. Si se había iniciado desde el botón Inicio hace clic en Cancelar. un menú que aparece: El menú le permite especificar si desea que la ventana flote. Si hace clic en el primer botón que señala hacia abajo. Esta área será utilizada para mostrar el contenido de lo que está seleccionado en el Explorador de objetos. pero. Como se verá más adelante. puede seleccionar la autenticación de SQL Server. seleccione el nombre del servidor y el tipo de autenticación para su uso. P á g i n a | 10 .. como motor de base de datos. En caso contrario. la autenticación en el cuadro combinado.. En este caso. puede hacer clic en la flecha del botón Conectar y haga clic en una de las opciones. haga clic en el botón Nueva consulta En el Explorador de objetos. Cualquiera de estas acciones se mostrará el cuadro de diálogo Conectar al servidor de correos: Desde allí. Si elige la autenticación de Windows. debe proporcionar un nombre de usuario y una contraseña. puede simplemente haga clic en Conectar. En la barra de herramientas Estándar. Si te conectas con éxito. puede cerrarla. el Explorador de objetos que aparecen con unos pocos nodos: Después de usar Microsoft SQL Server Management Studio. Para ello: Haga clic en el icono de la izquierda de Microsoft SQL Server Management Studio y haga clic en Cerrar En la parte derecha de la barra de título. haga clic en Archivo -> Salir P á g i n a | 11 .Una vez esté listo. haga clic en Conectar. haga clic en el botón Cerrar sistema En el menú principal. Los archivos del registro de transacciones contienen la información de registro que se utiliza para recuperar la base Registro de de datos. La extensión recomendada para los nombres de archivos de datos principales es . están definidos por el usuario y almacenan los datos del usuario. La extensión recomendada para los nombres de archivos de registro es .ndf. Cada base de datos debe tener al menos un archivo transacciones de registro. Los datos y objetos del usuario se pueden almacenar en este Principal archivo o en archivos de datos secundarios.mdf. Archivo Descripción El archivo de datos principal incluye la información de inicio de la base de datos y apunta a los demás archivos de la misma. tal como se muestra en la tabla siguiente. Además. puede utilizar los archivos de datos secundarios para permitir el crecimiento de la base de datos. si una Secundario base de datos supera el tamaño máximo establecido para un archivo de Windows. La extensión recomendada para los nombres de archivos de datos secundarios es .4 CREACION DE BASES DE DATOS RELACIONALES EN SQL SERVER 2008 SQL Server utiliza 3 tipos de archivos para almacenar una base de datos: Las bases de datos de SQL Server utilizan tres tipos de archivos para almacenar una base de datos. P á g i n a | 12 .ldf. Se pueden utilizar para distribuir datos en varios discos colocando cada archivo en una unidad de disco distinta. su tamaño mínimo es de 512 kb y es el archivo Log. Cada base de datos tiene un archivo de datos principal. Los archivos de datos secundarios son opcionales. Haga clic con el botón secundario en Bases de datos y. Forma gráfica Primero abrimos nuestro SQL Server Management Studio usando nuestra autenticación Windows En el Explorador de objetos. en Nueva base de datos. Se abre nuestro menú de diálogo y nos pide que registremos un nombre para nuestra base de datos en este caso será “DB_EJEMPLO” P á g i n a | 13 . conéctese a una instancia del SQL Server 2008 Motor de base de datos y expándala. 1.Ahora pasemos a la creación de la bases de datos. a continuación. Mediante Query: También Ud. 2. cambiarla claro está. ahora explicando las otras pestañas en Tipo de Archivo se puede ver si es Datos de Filas o un archivo Log. también Ud. haga clic en Aceptar. Tamaño Inicial muestra el tamaño inicial que tendrá su base de datos (está en MegaBytes). continúe con siguientes los pasos opcionales. para colocarla en la carpeta que mejor considere. por defecto es indefinida y crecerá mientras tenga espacio en disco. en Grupo de Archivo se ve si es primario. también puedes aquí dándole clic en los puntitos (…) definir un tamaño máximo y finalmente Ruta de Acceso que será donde se van a guardar tus archivos . de lo contrario. en Crecimiento Automático es el tamaño hasta donde se puede agrandar su base de datos y en la medida que esta irá creciendo. puede crear su base de datos mediante una consulta quizás para tener en cuenta con más detalle el tamaño máximo y otras características. pero cualquiera que sea el caso puedes hacerlo teniendo en cuenta lo siguiente: P á g i n a | 14 . Si desea crear la base de datos aceptando todos los valores predeterminados. secundario o un log. Verás que el Nombre Lógico se va llenando a la vez que tú le escribes el nombre. MAXSIZE = 10. también Unlimited -en el caso de Maxsize. Mb. Gb.ldf que contiene al archivo log. FILEGROWTH = 1) GO Tomar en cuenta que cuando creas una base de datos se crean dos archivos. el archivo mdf es el archivo primario.mdf'. hazle clic a “Nueva Consulta” en la parte superior. FILENAME es cómo puedes ver la ruta del archivo mdf. TB.mdf que contiene el archivo data y un archivo *. mediante el código mostrado hemos creado una base de datos donde se tiene especificado las características del archivo mdf mientras que el archivo log al no haberse especificado <filespec> se creará automáticamente con un tamaño de 1 Mb. Con más detalle: NAME es el nombre del archivo data (puede que no sea el mismo que la base de datos pero se recomienda que así sea con la terminación data). un archivo *. mientras que FILEGROWTH determina el tamaño o la proporción en la que crecerá el archivo principal. FILENAME = 'D: \BASES DE DATOS\DB_EJEMPLO2.y N% -en el caso de FileGrowth) finalmente así debería quedar. P á g i n a | 15 . SIZE es el tamaño inicial de tu base de datos MAXSIZE se puede deducir que es su tamaño máximo. todos estos tamaños están representados en Megabytes por defecto pero uno podría especificar si quiere que sea en otra unidad (Kb. Clic para escribir código SQL Luego aquí escribe el siguiente código: CREATE DATABASE DB_EJEMPLO2 ON (NAME = DB_EJEMPLO2_data. SIZE = 4. Primero debes crear una nueva hoja de consulta. microsoft. Importante ! Más información sobre la creación de una base de datos revisar la documentación MSDN en la siguiente dirección electrónica: http://msdn.aspx P á g i n a | 16 .com/es-es/library/ms176061(SQL. se preguntara que pasa si solo escribo en la consulta los siguiente: CREATE DATABASE DB_EJEMPLO2 También es válido pero esta no tendrá especificaciones y tomará los valores de la base de datos “model” y el crecimiento será ilimitado puesto que no está especificado MaxSize y será hasta llenar todo el espacio disponible en disco. Ahora Ud.90). P á g i n a | 17 . 1 2 En la pestaña General escribimos el nombre del respaldo. COPIAS DE SEGURIDAD Y RESTAURAR Backups Y Restauración De Bases De Datos Con Sql Server 2008 Proceso de Backup: Seleccionamos la base de datos para realizar su respaldo.3 ALMACENAR BASE DE DATOS. hacemos clic derecho. en este caso DB_Ventas_Backup y un tipo de copia completa. copia de seguridad. tareas. En la parte de Destino hacemos clic en el botón Agregar y copiamos el path donde se almacenará el archivo de backup de la base de datos. Sobrescribir todos los conjuntos de copias existentes 2. Este archivo . Vamos al explorador de Windows y colocamos el path anteriormente copiado. P á g i n a | 18 .bak podemos almacenarlo en cualquier medio seguro. por lo que es recomendable copiarlo en una ubicación donde se lo pueda hallar fácilmente. En el proceso de restauración lo utilizaremos. Realizar suma de comprobación antes de escribir en los medios. Comprobar copia de seguridad al finalizar. Finalmente damos clic en Aceptar y esperamos a que SQL Server haga la copia de seguridad. pues contiene nuestra base de datos.Vamos a la pestaña de Opciones y hacemos clic en las siguientes opciones: 1. 3. Proceso de Recuperación Hacemos clic en Base de datos del panel principal de la izquierda. 1 2 Escribimos el nombre de la base de datos.bak P á g i n a | 19 . Luego elegimos desde donde vamos a restaurar. en la ventana que se visualiza. para ello hacer clic en el botón de opción “Desde Dispositivo” para después hacer clic en el botón de puntos suspensivos para buscar el archivo . Damos clic en “Restaurar base de datos”. en este caso DB_Ventas. BAK Lo seleccionamos con el check y damos clic en Aceptar. P á g i n a | 20 .Luego haz clic en el botón Agregar Se mostrara una ventana en la cual buscaras la carpeta donde se encuentra el archivo . Finalmente verificamos si se restauró la base de datos en el Explorador de Objetos. Base de Datos restaurada P á g i n a | 21 . por defecto las del sistema (master. temp. Una vez conectado en la parte izquierda se muestran las BD alojadas en el servidor.) y otras si se han creado previamente.PRÁCTICA DESARROLLADA TEMA: Creación de una Base de Datos A continuación se van a explicar los pasos a realizar para construir y utilizar una base de datos sencilla. Abrir el SQL Server Management Studio y conectarse como administrador Paso 2. P á g i n a | 22 . Paso 1. etc. SIZE = 4.mdf'. FILEGROWTH = 1) GO P á g i n a | 23 . MAXSIZE = 10. Abrir una consulta en la conexión actual. FILENAME = 'D: \BASES DE DATOS\DB_EJEMPLO2.Paso 3. Paso 4. Recordar que en el estándar la instrucción termina con punto y coma y en TSQL también se puede usar GO CREATE DATABASE GESTION ON (NAME = DB_EJEMPLO2_data. Copiar el script siguiente y pulsar el botón ejecutar o bien ejecutar instrucción a instrucción seleccionando estas previamente. Seleccionar la BD de trabajo P á g i n a | 24 .USE GESTION -. PASO 5: Finalmente hacer Clic en el Botón Actualizar para mostrar la Base de Datos en el Explorador de Objetos Botón Actualiza r Base de Datos Creada P á g i n a | 25 . ....... ¿Qué es el Motor de Base de Datos? _______________________________________________________ _______________________________________________________ d....... ¿Qué restricciones se pueden recoger en una BD Relacional? Considere un ejemplo de cada una ______________________________________ _______________________________________________________ _______________________________________________________ c........ Escribe una V si la proposición es verdadera o escribe F si la proposición es Falsa..................( 2........................................................... SQL Server 2008 es un Administrador de Base de Datos .......... ) Completa los espacios en blanco con la respuesta correcta.( ) d............................ ¿Qué es una transacción? ¿Cuándo se deben utilizar? _______________________________________________________ _______________________________________________________ P á g i n a | 26 ..........( ) c.... a.AUTOEVALUACIÓN UNIDAD 01 1.....( ) b........................... Base de Datos es un dispositivo físico el cual se utiliza para almacenar información ................. a. SQL Server 2008 permite administrar información de otros servidores de datos .......... El DDL es un lenguaje que sirve para manipular la información de una base de datos . Defina que es una Base de Datos Relacional: ________ _______________________________________________________ _______________________________________________________ b................. BASE DE DATOS Sistema de administración y análisis de bases de datos relacionales (SGBD) de Microsoft Colección de información organizada de datos. SISTEMA GESTOR DE BASE DE DATOSD F. C. relativa a un problema concreto. almacenar y recuperar información relacionada para utilizarla en aplicaciones. E. DML Lo forman las instrucciones capaces de modificar los datos de las tablas. de cuyo propósito es recolectar. Permite el cambio de nombre de cualquier objeto. SQL Server 2008 por un conjunto usuarios/aplicaciones. P á g i n a | 27 . RENAME Son útiles para recuperarse de una catástrofe informática D. que puede ser compartida B. BACKUP Programa o conjunto de programas que sirven para mantener Base de Datos y responder consultas sobre ellas. Confrontar. COLOCAR LA CRITERIOS LETRA QUE DEFINICIONES CORRESPONDE A.3. Fábricas que lo distribuyen. fabricantes y pedidos. Nota: la Dirección se entenderá como Nro. La cabecera está formada por el número de pedido. en cada línea se especifican el número del artículo pedido y la cantidad. Descripción del artículo. artículos. Caso Práctico. Una fecha incluye Hora. Teléfono de contacto. Para cada Pedido: Cada Pedido tiene una cabecera y el cuerpo del pedido. saldo límite de crédito. Una base de datos para una pequeña empresa debe de contener información acerca de los clientes. P á g i n a | 28 . Además se ha determinado que se debe de almacenar la información de las fábricas: Número de la Fábrica (único). Para cada artículo: Número de artículo (único). El cuerpo del pedido son varias líneas. número del cliente. calle. Dirección de envió (varias por cliente). Descuento. Hasta el momento se registran los siguientes datos en documentos varios: Para cada cliente: Número de cliente (único).4. comuna y ciudad. dirección de envío y fecha del pedido.. Utilizar la manera gráfica y almacenarlo en la siguiente Ruta. F:\Computo_III\Base de Datos\Reservaciones 2. Crear su Backup para su Base de Datos y guardarlo en la ruta: F:\Computo_III\Base de Datos\Reservaciones\Backup CASO 2 Crear una base de datos DB_Asignaciones: 1.UNIDAD 1 ACTIVIDAD CASO 01: Crear una base de datos DB_Reservacíones: 1. F:\Computo_III\Base de Datos\Asignaciones 2. Utilizar código SQL y almacenarlo en la siguiente Ruta. Crear su Backup para su Base de Datos y guardarlo en la ruta: F:\Computo_III\Base de Datos\ Asignaciones \Backup P á g i n a | 29 . al cual los alumnos harán su respectivo levantamiento y tratamiento de la información recopilada. pasando por sus diferentes etapas. y identificación de requerimientos modelado de bases de datos. P á g i n a | 30 . la misma que será guiada por el docente a cargo. Incluyendo el desarrollo de un caso práctico. Capacidad El participante al final de esta unidad estará en capacidad de: Diseñar su Base de Datos partiendo de los requerimientos de información que los usuarios de una empresa puedan tener para cumplir los procesos de negocios. que incluye desde la identificación de requerimientos hasta el modelado físico de la Base de Datos para una organización.UNIDAD GUIA DIDÁCTICA 2 Fundamentación El propósito de este módulo es introducir al estudiante en el Diseño e Implementación de Base de Datos como una herramienta de imprescindible ayuda en la construcción de un sistema de información. Aplica las técnicas y estrategias de Modelamiento de base de datos adecuadas a fin de conseguir un modelo en un plazo más corto y de una manera más óptima valorando la importancias de las estrategias de Modelamiento de datos Implementa los requerimientos y reglas de negocio en un modelo de datos y utilizando un software como herramienta de soporte. Proporcionando al participante un conjunto de técnicas de operacionales. o Modifica información en los registros de sus tablas utilizando el diseñador gráfico y utilizando scripts. o Crea su Diagrama de Base de Datos Actividad 02: o Ingresa registros a cada una de sus tablas utilizando el diseñador gráfico y utilizando scripts. o Realiza estas actividades teniendo en cuenta la Integridad Referencial. P á g i n a | 31 . o Asigna Clave Primarias a sus tablas creadas. OBJETOS DE TABLAS 2. 3. realizándolo de manera gráfica y usando script. Clave principal.ESTRUCTURA DE CONTENIDOS. Transact-SQL Actividades Las actividades a desarrollar en la Unidad son: Actividad 01: o Crea tablas con sus respectivas columnas asignándoles su adecuado tipo de datos a cada uno de ellos. Ventajas. o Elimina información en los registros de sus tablas utilizando el diseñador gráfico y utilizando scripts. 4. Utilizando el diagrama de tablas. 1. Campos. evaluaciones virtuales. será evaluado en: 1. Desarrollar un caso práctico de crear una Base de Datos para un Empresa determinada identificando sus tablas asignándole sus columnas y respectivos tipo de datos de acuerdo a la columna (atributo). se encuentran en el apartado de Actividades. foros. Lectura Inicial de Contenidos. Actividades a Desarrollar en la Unidad. NOTA: Recuerde que el Aula Virtual de la UCV.Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 1. identificando las claves primarias y foráneas para cada una de las tablas. la realizaremos de manera ordenada. Aplicando el Modo gráfico y Código SQL Server. P á g i n a | 32 . donde constan: las consignas o indicaciones. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. para efectos de mensajería interna. Crear un diagrama de base de datos. 2. presenta los aspectos teóricos. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. Evaluación En esta Unidad Ud. 2. se empleará como medio de comunicación entre el docente y los estudiantes.. este en constante comunicación con su docente Tutor.. P á g i n a | 33 . Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. ya sea para informar de dificultades.Es importante que Ud. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. etc. avances de las tareas. Campos. Transact-SQL P á g i n a | 34 . Ventajas. Clave principal. OBJETOS DE TABLAS 2. Utilizando el diagrama de tablas. 1. 4. 3.OBJETOS DE TABLAS UNIDAD 2 ESTRUCTURA DE CONTENIDOS. columnas. ingresar. haciendo uso de las herramientas de SQL Server 2008. La importancia de esta Unidad radica en crear la estructura de una base de datos para un proceso de negocio. llave candidata el cual le permitirá a Ud. así como relacionando las tablas identificando las llaves primarias y llaves foranes. Iniciaremos con los conceptos de tablas. primary key. Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008.Introducción Estimado participante: En esta Unidad aprenderá a identificar las tablas con sus respetivas columnas o atributos asignándole su respectivo tipo de datos a cada columna. foreign kery. construir correctamente una Base de Datos Le deseo éxitos en el desarrollo de esta Unidad. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Gabillaud. modificar y eliminar registros de una Base de Datos a través de Microsoft SQL Server 2008. creando un Diagrama de base de Datos. tipos de datos. 2009) P á g i n a | 35 . Luego de creada nuestra Base de datos. vamos a crear tablas mediante el asistente. P á g i n a | 36 ..Forma Gráfica: Primero vamos al SQL Server Management Studio Creamos nuestra base de Datos en Clic derecho Base de Datos – Nueva Base de Datos y le colocaremos el nombre “DB_PEDIDOS”. para ello expandimos nuestra Base de Datos DB_VENTAS y en la carpeta TABLAS hacemos Clic derecho– Nueva Tabla.1 OBJETOS DE TABLAS Crear Tablas en SQL Server 2008 1. Luego se procede a guardar la tabla haciendo Clic en la en el botón Cerrar (X) y se visualizara una ventana de dialogo para que le asigne un nombre a la tabla.2 CAMPOS. VENTAJAS Se visualiza una ventana como se muestra en la siguiente figura. CLAVE PRINCIPAL. P á g i n a | 37 . aquí Usted ingresa los campos q pertenecen a la tabla. finalmente clic en el botón ACEPTAR Ahora crearemos las siguientes tablas asignando los tipos de datos correspondientes a cada una de las columnas (atributos). Distrito * Distrito Nombre_Distrito Cliente * codcli Detalle Articulo nrofac codart codart desart candet preart impdet stoart nomcli apecli Cargo Distrito dircli ruccli Empleado codcar descar codemp nomemp apeemp diremp Factura nrofac fechfac subtot totigv sexemp telemp codcar activo observacion Usuario IDusuario Usuario Clave Nombre Apellido totfac codcli codemp estado Ahora si refrescas tu explorador del Management visualizarás la(s) tabla(s) ya creada(s). P á g i n a | 38 . vamos a Diagrama de Base de Datos le hacemos clic derecho – Nueva Diagrama de Base de Datos (se mostrara un cuadro de dialogo preguntado si deseas crear el diagrama has clic – Si) y mostrara una ventana con las tablas diseñadas. P á g i n a | 39 . puedes acomodarlas con el mouse si lo deseas. Si Ud. bueno este campo nos permitirá hacer la relación en el diagrama de bases de datos como llave Foránea.3 UTILIZANDO EL DIAGRAMA DE TABLAS. Selecciona las tablas que participaran en el diagrama (en este caso todas) y dale Agregar. luego cuando estén agregadas sólo haz clic en el botón Cerrar y verás que las tablas están en pantalla. se da cuenta en las tablas Cliente tenemos el campo Distrito y en Factura tenemos el campo Cliente. te preguntarás ¿Por qué repito el valor?. Ahora vamos a hacer el diagrama y crear las relaciones. Asignación de las Primary Keys (Claves Primarias) Para asignarla simplemente en el diagrama puedes hacer clic derecho sobre el campo y selecciona Establecer Clave Principal (Set Primary Key) o también lo puedes hacer al momento de crear los campos y tipos de datos. P á g i n a | 40 . NOTA: En SQL Server 2008 nos saldrá un error “Saving changes is not permitted…” que no te permitirá guardar los cambios. tranquilo para esto hay solución ¿Qué sucede? es que en SQL Server Management Studio ahora no te permite hacer este tipo de cambios mediante el Diseñador ósea a nivel de interfaz (una razón muy buena para hacer esto por Transact SQL) así que para que puedas continuar primero debes desmarcar la opción Impedir guardar cambios que requieran volver a crear tablas la cual debes ingresar a la siguiente ruta Herramientas/Opciones/Diseñadores de Tablas y Base de Datos. para esto solo arrastramos desde el símbolo de la Primary Key en la tabla Distrito sin soltar hasta la tabla Cliente. podrá guardar los cambios y tendrás tu diagrama. donde nos pedirá que especifiquemos el campo a relacionar y elegimos Cod_Distrito y le damos Aceptar dos veces. estos campos de relación pueden tener diferentes nombres pero es importante que sea el mismo Tipo De Dato sino la relación producirá un error. P á g i n a | 41 . ahora guarda los cambios. te sale un mensaje en el que te indica que tendrás que recrear las tablas. Hacemos los mismo desde la Tabla Cliente hacia la tabla Factura relacionándolo con el campo Cod_Cliente. Crear la relación Asignaremos los Foreign Key (Llave Foránea) esta establecerá la relación entre las tablas. esto se definió al inicio colocándolo de manera premeditada para que ahora sirva finalmente de campo a relacionar. Como podemos ver elegimos Cod_Distrito que es igual al campo de la Tabla Distrito. de esta manera Ud. ciérralo y guarda los cambios. P á g i n a | 42 .Finalmente el diagrama deberá quedar así como se muestra en el siguiente gráfico. Distrito * Distrito Nombre_Distrito Cliente * codcli Detalle Articulo nrofac codart codart desart candet preart impdet stoart nomcli apecli Cargo Distrito dircli Empleado ruccli codcar descar codemp nomemp apeemp diremp sexemp Factura telemp nrofac codcar fechfac activo subtot observacion totigv Usuario IDusuario Usuario Clave Nombre Apellido totfac codcli codemp estado Transact-SQL: 4 Bueno ahora veremos la forma de hacerlo mediante las Querys: Primero vamos al botón Nueva Consulta y abrimos una nueva consulta. Crearemos una base de datos y luego ponerla en uso entonces escribimos el siguiente código y luego ejecutamos: CREATE DATABASE HOTELERA USE HOTELERA Ahora vamos a crear las tablas Hotel. Habitación y Cliente para eso escribimos y ejecutamos lo siguiente: P á g i n a | 43 . Ud. Apellido varchar (50). Telefono varchar (10). Hora_Ingreso time. Num_Camas int) CREATE TABLE CLIENTE (DNI char (8) not null. Descripción varchar (20). Nombre varchar (20). otra inquietud quizás sea ¿por qué utilizar la palabra reservada “not null”? es que en estos campos se establecerán las Primary Keys y estas no aceptan valores nulos o vacíos. Estado varchar (20). dentro de los tipos de datos. esto es para siempre cuidar la memoria utilizada en tu base de datos. Direccion varchar (20). Fecha_Salida datetime. se podrá preguntar porque algunos preferí colocarle “char” y en otras “varchar”.CREATE TABLE HOTEL (IdHotel char (5) not null. Fecha_Ingreso datetime. Nombre varchar (50). la razón es que en el tipo de dato char si colocas char(5) así se escriba un caracter se estará ocupando los 5 espacios reservados en cambio con varchar(5) si se escribe un sólo caracter esta cadena solo ocupará 1 espacio de los 5 reservados. Num_Habitaciones int) CREATE TABLE HABITACION (Num_Habitacion int not null. P á g i n a | 44 . Hora_salida time) Ahora darle un actualizar al explorador del Management tendremos nuestras tablas creadas. Para la creación del Diagrama. se seguirán los mismos pasos ya mencionados en el modo gráfico. Podemos darles los siguientes SELECT para comprobar que estén correctamente creadas: SELECT * FROM HOTEL SELECT * FROM HABITACION SELECT * FROM CLIENTE Ahora vamos a agregarle a las tablas Habitación y Cliente los campos que servirán de referencia para las Foreign Keys (también son not null) mediante el comando “ALTER TABLE – ADD” ALTER TABLE HABITACION ADD IdHotel char (5) not null ALTER TABLE CLIENTE ADD Num_Habitacion int not null Ahora agreguémosle las Llaves Primarias y Foráneas ALTER TABLE HOTEL ADD PRIMARY KEY (IdHotel) ALTER TABLE HABITACION ADD PRIMARY KEY (Num_Habitacion) ALTER TABLE CLIENTE ADD PRIMARY KEY (DNI) ALTER TABLE HABITACION ADD FOREIGN KEY (IdHotel) REFERENCES HOTEL ALTER TABLE CLIENTE ADD FOREIGN KEY (Num_Habitacion) REFERENCES HABITACION Mediante el ALTER TABLE ADD FOREIGN KEY también hacemos referencia a la tabla de donde proviene la Llave Principal y con la palabra reservada “REFERENCES” se creará la relación entre las tablas. P á g i n a | 45 . pero esta vez al agregar las tablas podremos observar que las relaciones ya están creadas solo guardamos el diagrama y listo. Diagrama para cliente único Como dato adicional puedes también eliminar alguna columna con el comando “ALTER TABLE – DROP COLUMN” --ALTER TABLE ELIMINAR CAMPO ALTER TABLE HOTEL DROP COLUMN Nombre_Campo ALTER TABLE CLIENTE DROP COLUMN Nombre_Campo ALTER TABLE HABITACION DROP COLUMN Nombre_Campo Y Puedes modificar algún tipo de datos mediante el comando “ALTER TABLE – ALTER COLUMN” --ALTER TABLE CAMBIO DE TIPO DE DATO ALTER TABLE HOTEL ALTER COLUMN Telefono Nuevo_Tipo_Dato ALTER TABLE HABITACION ALTER COLUMN Estado Nuevo_Tipo_Dato ALTER TABLE CLIENTE ALTER COLUMN Apellido Nuevo_Tipo_Dato P á g i n a | 46 . P á g i n a | 47 .PRÁCTICA DESARROLLADA TEMA: Creación de tablas (Continuamos con el ejercicio desarrollado en la I Unidad) Paso 1. Restauramos nuestra Base de Datos creada en la I Unidad (realizar el procedimiento de restauración de una Base de datos) Verificar la restauración de la base de datos con la cual se trabajara. CREATE TABLE LOCALES (CODIGO CHAR (5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY.Seleccionar la BD de trabajo GO CREATE TABLE PROPIETARIOS (DNI CHAR (10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY.Paso 2. Recordar que en el estándar la instrucción termina con punto y coma y en TSQL también se puede usar GO USE GESTION -. DIRECCION CHAR (30)). Copiar el script siguiente y pulsar el botón ejecutar o bien ejecutar instrucción a instrucción seleccionando estas previamente. P á g i n a | 48 . Abrir una consulta en la conexión actual. Paso 3. NOMBRE CHAR (25) NOT NULL. USE GESTION GO INSERT INTO PROPIETARIOS (DNI. DIRECCION) VALUES ('132345674'. NOMBRE. 'Sanz. modificarlos y borrarlos. o asignar un local a un DNI que no se encuentra en la tabla propietarios. al insertar no rellenar un campo con restricción NOT NULL. Los Tilos 269') P á g i n a | 49 . Jr.DNI CHAR (10) NOT NULL. UBICACIÓN CHAR (4) NOT NULL. SUPERFICIE DEC (8. CONSTRAINT fk_loc FOREIGN KEY (DNI) REFERENCES PROPIETARIOS (DNI)). 2) NOT NULL. Utilizando las instrucciones de manipulación básicas insertar datos en ambas tablas. Seleccionar el código y CLIC Paso 4. Tratar de violar las restricciones impuestas como insertar otro propietario con el mismo DNI. etc. Luis'. DIRECCION FROM LOCALES.GO INSERT INTO LOCALES (CODIGO. UBICACIÓN.DNI AND SUPERFICIE < 200 GO UPDATE PROPIETARIOS SET DIRECCION ='Alta 87' WHERE DNI = '13234567R' Go Paso 5. P á g i n a | 50 . SUPERFICIE) VALUES ('L-234'. PROPIETARIOS WHERE LOCALES. DNI. Observar las características de los objetos creados en la BD a través del entorno gráfico.DNI = PROPIETARIOS. 100) GO SELECT CODIGO. '132345674'. UBICACIÓN. NOMBRE.'San Martin'. Crear el diagrama de bases de datos.Paso 6. útil para trabajar y programar la BD y las aplicaciones. Agregar las tablas de la BD y guardar el esquema CLIC P á g i n a | 51 . CLIC PARA AGREGAR LA TABLAS P á g i n a | 52 . CLIC EN LA X PARA GUARDAR EL DIAGRAMA P á g i n a | 53 . ..........( ) e. base de datos .. .... Defina que es una Base de Datos Relacional: ________ _______________________________________________________ _______________________________________________________ f........ Indique las instrucciones del Lenguaje SQL que permiten la manipulación de datos _______________________________________________________ _______________________________________________________ h. Una Tupla es una fila..............................( ) c......... e......( ) d...( ) b............. ¿Qué es una transacción? ¿Cuándo se deben utilizar? _______________________________________________________ _______________________________________________________ P á g i n a | 54 ......( ) Completa los espacios en blanco con la respuesta correcta...... a. El DDL es un lenguaje que sirve para manipular la información de una 2......... La instrucción UPDATE sirve para ingresar datos en una tabla .........AUTOEVALUACIÓN UNIDAD 02 1. ¿Qué restricciones se pueden recoger en una BD Relacional? Considere un ejemplo de cada una ______________________________________ _______________________________________________________ _______________________________________________________ g.................. Escribe una V si la proposición es verdadera o escribe F si la proposición es Falsa......... BETWEEN especifica un intervalo inclusivo de búsqueda...... Una clave candidata puede ser una clave primaria . La instrucción INSERT permite ingresar columnas en una tabla ...................( ) f............ SISTEMA GESTOR DE BASE DE DATOSD G. CLAVE AJENA de identifican atributos que unívoca y mínimamente cada tupla de la relación. que es utilizado para referirse a un dato especifico en una tabla. F. Confrontar. Permite almacenar valores enteros P á g i n a | 55 . INT Conjunto de campos que contienen información. Se denomina clave ajena de una relación R2 a un conjunto no B. LLAVE PRIMARIA Representación bidimensional de una relación que contiene filas (tuplas) y columnas (atributos valores especiales que identificará de manera única a D. COLOCAR LA CRITERIOS LETRA QUE DEFINICIONES CORRESPONDE Conjunto A. REGISTRO cada fila de la tabla y no pueden existir dos llaves primarias iguales E. CAMPO Espacio de memoria que posee un nombre y un tipo. C.3. CLAVE CANDIDATA vacío de atributos cuyos valores han de coincidir con los valores de una clave candidata de una relación R1. Caso Práctico. relaciones y restricciones correspondientes a los problemas de información que se propone.4. Complete los esquemas con los atributos. P á g i n a | 56 . Realizarlo de manera gráfica y utilizando código: A continuación realice las siguientes acciones: Inserciones • Inserte el tipo de servicio OCIO. El código de la reserva es autonumérico.UNIDAD ACTIVIDAD DIDÁCTICA 2 CASOS: Restaurar la Base de Datos creadas en Unidad 1 y realizar los siguientes casos: CASO 01: Realice el siguiente diseño utilizando el MS SQL Server Management Studio. • De alta una reserva de la habitación 101 para el cliente 12345 para las noches del 2 al 4 de julio de 2009. P á g i n a | 57 . con objeto de agilizar las búsquedas. CREATE INDEX • Cree un índice sobre el atributo Nacionalidad de la tabla clientes. con objeto de agilizar las búsquedas.Actualizaciones • Actualice el teléfono del cliente 12345. TABLA y FK • Añada en gastos una referencia que indique el empleado que atendió el servicio. • Cree un índice sobre el atributo numHabitacion de la tabla reverva_habitac. con objeto de agilizar las búsquedas. • Controle en la tabla servicios que el iva está comprendido entre 0 y 100. Eliminar • Borre la reserva de la habitación 101 realizada anteriormente. • Borre los tipos de servicio que no tienen servicios definidos. • Controle en la tabla reserva_habitac que la fecha de salida es mayor o igual que la fecha de entrada. Su nuevo número es 123456789. P á g i n a | 58 . • Actualice el precio de los servicios incrementándolos en un 2%. • Añada en reserva_habitac una referencia que indique el empleado que recogió la reserva. • Cree un índice sobre el atributo nombreServicio de la tabla servicios. ALTER TABLE • Añada una columna calculada en la tabla gastos que obtenga el importe por línea sin aplicar el iva. • Añada una columna en servicios que indique si el servicio se ofrece a los clientes o no.0. Otras restricciones con DLL CHECK • Controle en la tabla temporada que la fecha de fin es mayor que la fecha de inicio. su tarifa por hora. OFICIO.5 ELECTRICISTA 1311 1311 JUAN DIAZ 15. ID_E. Se guarda su dirección. ASIGNACION (ID_T. DIR.5 ELECTRICISTA 1311 1412 CARLOS LU 13.0 OFICIO ID_SUPV EDIFICIO ID_E 111 210 DIR 1213 ASPEN 1011 BIRCH TIPO CATEGORIA OFICINA 1 OFICINA 1 312 123 ELM OFICINA 2 435 456 MAPLE COMERCIO 1 ALMACEN 3 RESIDENCIA 2 460 515 1415 BEACH 789 OAK P á g i n a | 59 .2 CARPINTERO 3231 3231 JOSE MORI 17. NUM_DIAS) Una fila por cada vez que un trabajador es asignado a un edificio. TIPO.CASO 2 Sean las tablas siguientes: TRABAJADOR (ID_T. que se identifica por su ID_E.75 FONTANERO 1520 1520 ALEX LOPEZ 11. Su nombre es NOMBRE. en nuevo soles. EDIFICIO (ID_E.4 CARPINTERO 3231 10. Crear la Base de Datos aplicando Script y Ingresar los siguientes datos TRABAJADOR ID_T NOMBRE TARIFA 1235 LUIS SALAS 12. identificado por su ID_T. CATEGORIA) Cada fila representa un edificio. TARIFA. FECHA_INICIO. ID_SUPV) Cada fila representa un trabajador. el tipo de edificio y su categoría. NOMBRE. su oficio y el identificador de su supervisor.75 FONTANERO 1520 2920 ERICK RUBIO ALBAÑIL 2920 3001 SAM VELEZ 8. ASIGNACION ID_T ID_E FECHA_INICIO NUM_DIAS 1235 312 2001-10-10 5 1235 515 2001-10-17 22 1311 435 2001-10-08 12 1311 460 2001-10-23 24 1412 111 2001-12-01 4 1412 210 2001-11-15 12 1412 312 2001-10-01 10 1412 435 2001-10-15 15 1412 460 2001-10-08 18 1412 515 2001-11-05 8 1520 312 2001-10-30 17 1520 515 2001-10-09 14 2920 210 2001-11-10 15 2920 435 2001-10-28 10 2920 460 2001-10-05 18 3001 111 2001-10-08 14 3001 210 2001-10-27 14 3231 111 2001-10-10 8 3231 312 2001-10-24 20
[email protected]/cis/ P á g i n a | 60 .pe http://www.edu.edu.ucv. Incluyendo el desarrollo de casos prácticos. Capacidad El participante al final de esta unidad estará en capacidad de: Aplica correctamente la normalización a una Base de Datos. Relaciones por diagrama P á g i n a | 61 . corrigiendo la estructura de los datos de las tablas y evitando una serie de problemas el cual se debe de ajustar al sistema de gestión de base de datos a utilizar. CONTENIDOS NORMALIZACION Y RELACION Formas normales: Primera. Proporcionando al participante técnicas para una correcta normalización de los datos. segunda. tercera y cuarta forma normal. la cual será guiada por el docente a cargo. o asegurar que un diseño lógico cumpla una serie de propiedades.UNIDAD 3 GUIA DIDÁCTICA Fundamentación El propósito de este módulo consiste en analizar un conjunto de reglas formales que nos permiten confeccionar un diseño lógico. Aplica correctamente las formas normales de normalización de datos. Convertir datos en información. NOTA: Recuerde que el Aula Virtual de la UCV. donde constan: las consignas o indicaciones. Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 3. P á g i n a | 62 . o Crea su diagrama de Base de Datos Actividad 02: o Identificar en forma normales se encuentras las tablas. se encuentran en el apartado de Actividades. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. foros. se empleará como medio de comunicación entre el docente y los estudiantes. para efectos de mensajería interna. evaluaciones virtuales. Lectura Inicial de Contenidos. o Identificar adecuadamente las dependencias funcionales entre los campos. 4. o Identificar correctamente las Clave Primarias a sus tablas. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. la realizaremos de manera ordenada. Actividades a Desarrollar en la Unidad. presenta los aspectos teóricos.Actividades Las actividades a desarrollar en la Unidad son: Actividad 01: o Crea tablas normalizadas evitando la redundancia de datos. (1997) SISTEMAS DE BASES DE DATOS. Addison Wisley Kroenke David M. ya sea para informar de dificultades. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. Elmasri / Navathe.. este en constante comunicación con su docente Tutor. Editorial Mc Graw Hill. (1998). Editorial Prentice Hall Hispanoamericana. Es importante que Ud. etc. y silberschatz Abraham FUNDAMENTOS DE BASES DE DATOS. PROCESAMIENTO DE BASES DE DATOS. será evaluado en: 3.Evaluación En esta Unidad Ud. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. Desarrollar casos prácticos para crear Base de Datos identificando sus tablas correctamente normalizadas y relacionadas. Korth Henry f.. España P á g i n a | 63 . avances de las tareas. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. CONCEPTOS fundamentales. Relaciones por diagrama P á g i n a | 64 .UNIDAD NORMALIZACION Y RELACION 3 NORMALIZACION Formas normales: Primera forma normal Segunda forma normal Tercera forma normal y Cuarta forma normal. Le deseo éxitos en el desarrollo de esta Unidad. 2003) P á g i n a | 65 . o una relación para que esto se lleve a cabo. La verdad es que son bastante sencillas de entender y aplicar. Estas reglas se aplican al modelo relacional de la base de datos.Introducción Estimado participante: En esta Unidad analizaremos las diferentes formas normales definidas en la Teoría de Base de Datos Relacionales representan una guía y una orientación para el diseño de registros. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “An Introduction to Database Systems “ (Date. que no es más que una serie de pasos a seguir para transformar una lista de datos con atributos similares en una tabla. aunque a veces parece que la percepción que se tiene respecto a ellas es que son complejas y algo enrevesadas. y que los valores sean únicos. El propósito de la normalización es mejorar la integridad de los datos a través de la minimización de la redundancia y la inconsistencia. que no contenga datos repetidos. obtenido a partir del modelo entidad-relación. la normalización juega un papel muy importante porque con los pasos a seguir. que los datos introducidos vayan acorde al mismo nombre de la relación. pero con algún posible costo en ciertas aplicaciones. Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008. Es comprender la normalización. se pretende lograr que la tabla de valores tenga coherencia. Las reglas de normalización están destinadas a prevenir anomalías en las actualizaciones e inconsistencia en los datos. DescProd: Descripción del Producto. PreUniProd: Precio Unitario del Producto. Cuando se dispone de índices útiles.Primera Forma Normal (1FN) La definición formal sería: “Una relación está en 1FN si cumple la propiedad de que sus dominios no tengan elementos que.. Se cuenta con el siguiente documento para solicitar los productos: Primer Paso Se efectúa un listado de datos NumPed: Numero del Pedido FechaPed: Fecha en que se realiza el Pedido NUmProv: Numero del Proveedor. P á g i n a | 66 . a su vez sean conjuntos” La esencia de la 1FN. A. CantPed: Cantidad de unidades del Producto que se solicita.1 FORMAS NORMALES NORMALIZACIÓN Una normalización razonable permite mejorar el rendimiento. NumProd: Numero del Producto. DirProv: Dirección del Proveedor. es que un registro no incluye ningún grupo repetitivo CASO: Diseño de una base de datos para la automatización del control de los pedidos de productos. NomProv: Nombre del Proveedor. el optimizador de consultas de SQL Server es una herramienta adecuada para la selección rápida y eficaz de combinaciones entre tablas. Existen tres formas normales para el proceso de normalización. NumProv. DescProd: Descripción del Producto. Nota: Indicando la clave Segundo Paso Se verifica si existen grupos repetidos: NumPed: Numero del Pedido FechaPed: Fecha en que se realiza el Pedido NUmProv: Numero del Proveedor. DirProv: Dirección del Proveedor. creándose dos relaciones: 1º. se dejan en la relación original sólo los atributos que no son repetidos: PEDIDO (Numpedido. es decir. NomProv: Nombre del Proveedor. Nota: Si no existen la relación está en 1 FN. es decir. se dejan en la RELACION ORIGINAL solo los atributos que no son repetitivos: RELACIÓN ORIGINAL PEDIDO NUMPED 147852 FECPED 10/02/2012 NUMPROV 741 NOMPROV JOSE PEREZ DIRPROV LOS PINOS MTOTTTLPED 1200. SubtotProd: Monto a Pagar por concepto de ese producto.Una relación para los grupos repetidos. NumProd.. PreUniProd: Precio Unitario del Producto. CantPed: Cantidad de unidades del Producto que se solicita. de lo contrario: Tercer Paso Se eliminan los grupos repetidos. MtoTtlPed: Monto a pagar por todo el pedido. es decir. NomProv. MtoTtlPed) 2º. se extraen en una nueva relación los atributos repetidos. además de la clave primaria de la relación original: PED_PROD (NumPed. FechPed. MtoTtlPed: Monto a pagar por todo el pedido. DescProd.SubtlProd) Una relación para los campos que sean únicos..SubtotProd: Monto a Pagar por concepto de ese producto. DirProv. PreUniProd. NumProd: Numero del Producto.00 P á g i n a | 67 . CantPed.Una relación para los campos que sean únicos. SEGUNDA FORMA NORMAL (2FN) Una relación R se dice que está en 2FN si además de estar en 1FN. este segundo paso se aplica sólo a relaciones con claves compuestas P á g i n a | 68 .00 Antes de ingresar a la SEGUNDA FORMA NORMAL se debe de tener bien claro lo que es DEPENDENCIA FUNCIONAL COMPLETA. Ejemplo: Relación PROV_PROD CANT es funcional y completamente dependiente de Producto y Pedido PROV_PROD PRDNRO SNRO CANT S1 3 P2 S2 4 P2 S3 4 P3 S3 4 P3 S3 2 P2 2.50 10 25.00 147852 10 CORRECTOR 2.00 20 20. todos sus atributos dependen de la clave completa y no sólo de una parte de ésta. “esto quiere decir que todos los atributos o cada atributo debe depender de la clave completa y no solo de una parte”. además de la clave primaria de la relación original: RELACIÓN ORIGINAL PED_PROD NUMPED NUMPROV DESCPROD PREUNIPROV CANTPED SUBTPROD 147852 12 LAPICERO 1.. se extraen en una NUEVA RELACION los atributos repetitivos. cualquiera de sus atributos no primarios (aquel que no forma parte de la clave) tiene una dependencia funcional completa con la clave primaria R Es decir.00 147852 25 RESALTADOR 2. Entonces.70 10 27. es decir.Una relación para los grupos repetitivos. De las relaciones que tenemos: PEDIDO NUMPED FECPED NUMPROV NOMPROV NUMPED NUMPROV DESCPROD DIRPROV MTOTTTLPED PED_PROD PREUNIPROV CANTPED SUBTPROD Una relación que esté en 1FN y que no tenga claves compuestas. ya está en 2FN Consideremos la relación de clave compuesta: PED_PROD NUMPED NUMPROV DESCPROD PREUNIPROV CANTPED SUBTPROD Esta relación NO está en 2Fn. Se crea una relación para todos los atributos que dependen funcional y completamente de la clave: PED_PROD NUMPED NUMPROD CANTPED SUBTPROD Se crea otra relación para los atributos que dependan de cada parte (subconjunto) de la clave PRODUCTO NUMPROD DESCPROD PREUNIPROD PEDIDO NUMPED FECPED NUMPROV NOMPROV DIRPROV MTOTTTLPED PED_PROD NUMPED NUMPROD CANTPED DESCPROD PREUNIPROD SUBTPROD PRODUCTO NUMPROD P á g i n a | 69 . NUMPROD). pues DESCPROD y PREUNIPROD no dependen funcional y completamente de la clave (NUMPED. y sólo sí. Se crea una relación para los atributos no claves que no dependen transitivamente de la clave primaria.3. los atributos no claves son independientes de cualquier otro atributo no clave primaria.TERCERA FORMA NORMAL (3FN) Una relación R se dice que está en 3FN si está en 2FN y sí.. Esta relación: PEDIDO NUMPED FECPED NUMPROV NOMPROV DIRPROV MTOTTTLPED Quedaría de la siguiente manera: PEDIDO NUMPED FECPED NUMPROV MTOTTTLPED Y una relación para los atributos no claves que dependen transitivamente de la clave primaria a través de otro atributo o conjunto de atributos no clave primaria (que no son parte de la clave primaria). Es decir que los atributos deben depender sólo de la clave y de ningún otro atributo de la relación. La clave primaria de la relación así formada será el atributo o conjunto de atributos a través de los cuales existe la dependencia transitiva: De esta relación: PEDIDO NUMPED FECPED NUMPROV NOMPROV DIRPROV MTOTTTLPED Surgiría: PROVEEDOR NUMPROV NOMPROV DIRPROV Se obtiene las siguientes relaciones: PEDIDO NUMPED FECPED NUMPROV MTOTTTLPED PED_PROD P á g i n a | 70 . Esto es lo mismo que decir que se deben eliminar las dependencias entre atributos no claves. y a representar mejor nuestro mundo real en un esquema relacional.NUMPED NUMPROD CANTPED DESCPROD PREUNIPROD SUBTPROD PRODUCTO NUMPROD PROVEEDOR NUMPROV NOMPROV DIRPROV NOTA: La teoría de la normalización nos ayuda a estructurar mejor las relaciones. P á g i n a | 71 . evitando posibles redundancias y anomalías. 00 65.00 65. NOM_ART. P á g i n a | 72 . id_cliente. estado) Articulos_ordenes (id_orden. La 1FN prohíbe los grupos repetidos. estado. nom_cliente. Ordenes (id_orden. fecha.00 65.00 4. nom_art. nom_cliente. nom_art. num_art. es decir. Los pasos a seguir son: Tenemos que eliminar los grupos repetidos. cant. por lo tanto tenemos que convertir a la primera forma normal.75 5. Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.00 4.00 SEGUNDA FORMAL NORMAL (2FN) Ahora procederemos a aplicar la segunda formal normal. tenemos que eliminar cualquier columna no llave que no dependa de la llave primaria de la tabla. Los registros quedan ahora conformados en dos tablas que llamaremos ÓRDENES y ARTICULOS_ORDENES Ordenes (id_orden. fecha.00 10. precio) Ordenes Id_orden 2301 2301 2301 2302 2303 2303 Fecha 23/02/11 23/02/11 23/02/11 25/02/11 27/02/11 27/02/11 Id_cliente 101 101 101 107 110 110 Nom_cliente Martin Martin Martin Herman Pedro Pedro Estado Caracas Caracas Caracas Coro Maracay Maracay Num_art 3786 4011 9132 5794 4011 3141 nom_art Red Raqueta Paq-3 Paq-6 Raqueta Funda cant 3 6 8 4 2 2 Precio 35.00 10. podemos darnos cuenta que contienen un grupo repetido para NUM_ART. Consideremos los datos de la siguiente tabla. CANT y PRECIO.00 65. num_art.PRACTICA DESARROLLADA Aplicaremos las reglas de normalización al siguiente caso.75 5. cant.00 PRIMERA FORMAL NORMAL (1FN) Al examinar estos registros. Los pasos a seguir son: Determinar cuáles columnas que no son llave no dependen de la llave primaria de la tabla. precio) Ordenes Id_orden 2301 2302 2303 Fecha 23/02/11 25/02/11 27/02/11 Articulos_ordenes Id_orden Num_art 2301 3786 2301 4011 2301 9132 2302 5794 2303 4011 2303 3141 Id_cliente 101 107 110 Nom_cliente Martin Herman Pedro nom_art Red Raqueta Paq-3 Paq-6 Raqueta Funda cant 3 6 8 4 2 2 Estado Caracas Coro Maracay Precio 35. id_cliente. Las tablas quedan ahora de la siguiente manera. num_art. Al observar las tablas que hemos creado. como la tabla ARTICULOS_ORDENES se encuentran en 3FN.00 65. Crear una segunda tabla con esas columnas y con la columna no llave de la cual son dependientes. todas las columnas son dependientes de la llave primaria ID_ORDEN. Lo que haremos a continuación es eliminar estas columnas de la tabla ARTICULOS_ORDENES y crear una tabla ARTICULOS con dichas columnas y la llave primaria de la que dependen. nos damos cuenta que tanto la tabla ARTICULOS.00 10. cant) Articulos_ordenes Id_orden Num_art 2301 3786 2301 4011 2301 9132 2302 5794 2303 4011 2303 3141 cant 3 6 8 4 2 2 Articulos ( num_art.00 4. Los pasos a seguir son: Determinar las columnas que son dependientes de otra columna no llave. La tabla ÓRDENES está en 2FN. pero no son dependientes de ID_ORDEN. ya que NOM_CLIENTE y P á g i n a | 73 .75 5. Articulos_ordenes (id_orden. Cualquier valor único de ID_ORDEN determina un sólo valor para cada columna. Por su parte. Eliminar esas columnas de la tabla base.00 TERCERA FORMAL NORMAL (3FN) La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea dependiente de otra columna no llave. Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual dependen. Sin embargo la tabla ÓRDENES no lo está. Eliminar esas columnas de la tabla base. nom_art. la tabla ARTICULOS_ORDENES no se encuentra en 2FN ya que las columnas PRECIO y NOM_ART son dependientes de NUM_ART. Por lo tanto. precio) Articulos Num_art 3786 4011 9132 5794 3141 nom_art Red Raqueta Paq-3 Paq-6 Funda Precio 35. Para normalizar esta tabla. estado) Ordenes Id_cliente 101 107 110 Nom_cliente Martin Herman Pedro Estado Caracas Coro Maracay Por lo tanto la base de datos queda de la siguiente manera: Ordenes (id_orden. moveremos las columnas no llave y la columna llave de la cual dependen dentro de una nueva tabla CLIENTES. Ordenes (id_orden. estado) Articulos ( num_art. y esta columna no es la llave primaria. fecha. Las nuevas tablas CLIENTES y ÓRDENES se muestran a continuación. nom_art. num_art. cant) P á g i n a | 74 . nom_cliente. precio) Articulos_ordenes (id_orden.ESTADO son dependientes de ID_CLIENTE. fecha. id_cliente) Ordenes Id_orden 2301 2302 2303 Fecha 23/02/11 25/02/11 27/02/11 Id_cliente 101 107 110 Clientes (id_cliente. nom_cliente. id_cliente) Clientes (id_cliente. .. Escribe una V si la proposición es verdadera o escribe F si la proposición es Falsa......... serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional........... ¿Qué es una Clave Primaria? _______________________________________________________ _______________________________________________________ l... Una relación es la estructura básica del modelo relacional......( ) h............. ............. Es el conjunto válido de valores que toma un atributo.......... limita el conjunto de datos posibles en una columna ....... Existen con independencia de cualquier otro elemento................... i........................... Las bases de datos relacionales se normalizan para: ____________________________________________________ _______________________________________________________ k. ............( ) g.... La Integridad de Entidad nos indica que cada fila debe ser única......... ¿Qué es Normalización?: ________ _______________________________________________________ _______________________________________________________ j.... Se representa mediante una tabla.............. La Integridad de Dominio.......... ... ¿Qué es una dependencia transitoria? _______________________________________________________ _______________________________________________________ P á g i n a | 75 ... ¿En qué consiste la Primera Forma Normal? _______________________________________________________ _______________________________________________________ m. no se permite la duplicidad... ) ) Completa los espacios en blanco con la respuesta correcta....... e. ..( i............... ( 6.......................AUTOEVALUACIÓN UNIDAD 03 5... Normalización........................( ) f........ 7. CASO PRÁCTICO. COMPROBANTE DE COMPRA VENTA La empresa LA PODEROSA lo ha contratado como el “Ingeniero Encargado” para sistematizar la facturación. En la siguiente FACTURA DE COMPRA VENTA, usted debe analizar toda la información disponible y aplique el proceso de normalización, hasta llegar a la Tercera Forma Normal. Se pide realizar la respectiva justificación detallada de cada uno de los pasos que conduzcan al resultado final. Factura (NUM_FAC, RIF_CLIENTE, FECHA_FAC, CIUDAD_CLIENTE, NOM_CLIENTE, DIR_CLIENTE, TELEF_CLIENTE, CATEGORIA, COD_PROD, DESP_PROD, VAL_UNIT, CANT_PROD) Dónde: NUM_FAC: Número de la factura de compra venta FECHA_FAC: Fecha de la factura de compra venta NOM_CLIENTE: Nombre del cliente DIR_CLIENTE: Dirección del cliente RIF_CLIENTE: Rif del cliente CIUDAD_CLIENTE: Ciudad del cliente TELEF_CLIENTE: Teléfono del cliente CATEGORIA: Categoría del producto COD_PROD: Código del producto DESCRIPCION: Descripción del producto VAL_UNIT: Valor unitario del producto CANT_PROD: Cantidad de productos q compra el cliente La llave primaria es Número de Factura de venta: NUM_FAC P á g i n a | 76 UNIDAD 3 ACTIVIDAD CASO 01: EMPRESA DE ENVIO DE MERCANCIA A continuación se agrupan todos los atributos que hacen parte de la base de datos para aplicarle las reglas de normalización. Donde se incluyen los nombres de los atributos con su significado * GUIA_NO = Numero de Guía * GUIA_FECHA= Fecha de la Guía * GUIA_HORA= Hora de la Guía * ORGN_RIF = Identificación de Empresa Origen * ORGN_NOM = Nombre de Empresa Origen * ORGN_ACT = Actividad Comercial de Empresa Origen * ORGN_CIUDAD= Ciudad de Empresa Origen * ORGN_DIR = Dirección de Empresa Origen * ORGN_TEL = Teléfono de Empresa Origen * ORGN_CEL = Celular de Empresa Origen * DEST_ID = Identificación del destinatario * DEST_NOM = Nombre del destinatario * DEST_COD_CIUDAD = Código de la ciudad del destinatario * DEST_CIUDAD= Ciudad del destinatario * DEST_DIR = Dirección del destinatario * DEST_TEL = Teléfono del destinatario * DEST_KM = Distancia kilometraje de Ciudad origen a ciudad destinatario * CODIGO = Código del paquete * TIPO = Tipo de paquete * NOMBRE = Nombre del paquete * DESCRIPCION = Descripción del paquete * VALR_ FLETE = Valor del flete del CASO 02: BIBLIOTECA Se presenta una base de datos de una biblioteca, aplicar las reglas de normalización simplificando hasta la tercera forma normal. Prestamos_libro Fechadev) (codLibro, Titulo, Autor, Editorial, NombreLector, Codlibro Titulo Autor Editorial Nombrelector Fechadevoluc 1001 Introducción a la Programación Visual Basic .Net Murray Spiegel McGraw Hill 15/08/2012 E. Petroustsos Anaya 1005 Estadística Aplicada Murray Spiegel McGraw Hill Pérez Gómez, Juan Ríos Terán, Ana Roca, René 1006 Manual de SQL Server 2008 Fundam. de Base de Datos Nancy Greenberg Ramalho Microsoft Corp. McGraw Hill García, Luis 20/08/2012 Pérez Gómez, Juan 18/08/2012 1004 1007 17/08/2012 16/08/2012 P á g i n a | 77 CASO 03: TURNOS DE TRABAJO Dada la siguiente relación ASIGNACIÓN (DNI, Nombre, Cod_Tienda, Dirección_Tienda, Fecha, Turno) que contiene información relativa a la asignación de los turnos de trabajo de los empleados de los distintos centros de una cadena de tiendas de moda: DNI NOMBRE 33456456 44556689 99771122 P. Martín L. Sanz D. Díaz COD_TIENDA 100A 100A 100A 33456456 P. Martín 200B 11223344 E. López 300C 99887766 F. Monte 200B 11223344 E. López 300C 99887766 44556689 F. Monte L. Sanz 100A 100A 33456456 P. Martín 200B DIRECCIÓN _TIENDA Avd. América Sur 658, Palermo Avd. América Sur 658, Palermo Avd. América Sur 658, Palermo Avd. América Oeste 658, Vista Hermosa Avd. América Norte 865, Las Quintanas Avd. América Oeste 658, Vista Hermosa Avd. América Norte 865, Las Quintanas Avd. América Sur 658, Palermo Avd. América Sur 658, Palermo Avd. América Oeste 658, Vista Hermosa TURNO FECHA M M T 2/9/12 2/9/12 2/9/12 T 3/9/12 M 3/9/12 M 3/9/12 M 4/9/12 M T 4/9/12 4/9/12 M 5/9/12 Se pide, considerando únicamente la extensión de la relación mostrada en la tabla: a. Indicar un ejemplo de anomalía de borrado b. Indicar las dependencias funcionales utilizando las siguientes abreviaturas: DNI (P), Nombre (N), Código_Tienda (C), Dirección_Tienda (D), Turno (T), Fecha (F). c. ¿En qué Forma Normal se encuentra la relación? ¿Cuáles son sus claves?
[email protected] http://www.ucv.edu.pe/cis/ P á g i n a | 78 UNIDAD 4 GUIA DIDÁCTICA Fundamentación El propósito de este modulo es enseñarle al alumno la manera correcta de ingresar, modificar y eliminar datos a una tablas de una base de datos ya sea usando el modo de diseño o utilizando código SQL. Así como resolver consultas simples utilizando el diseñador de consultas o código SQL. Capacidad El participante al final de esta unidad estará en capacidad de: Aplica las técnicas de ingreso, modificación y eliminación de datos. Resuelve consultas simples, utilizando el diseñador de consultas o instrucciones DML ESTRUCTURA DE CONTENIDOS 1. Edición de Tablas y Registros 2. Actualización de datos. 3. Insertando datos usando los comando DML 4. Consultas simples P á g i n a | 79 se empleará como medio de comunicación entre el docente y los estudiantes. Actividad 02: o Crea consultas simples y con criterios utilizando el diseñador gráfico de consultas y utilizando scripts.Actividades Las actividades a desarrollar en la Unidad son: Actividad 01: o Ingresa registros a cada una de sus tablas utilizando el diseñador grafico y utilizando scripts. o Realiza estas actividades teniendo en cuenta la Integridad Referencial. se encuentran en el apartado de Actividades. foros. la realizaremos de manera ordenada. evaluaciones virtuales. presenta los aspectos teóricos. Lectura Inicial de Contenidos. o Elimina información en los registros de sus tablas utilizando el diseñador grafico y utilizando scripts. P á g i n a | 80 . Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 5. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. o Modifica información en los registros de sus tablas utilizando el diseñador grafico y utilizando scripts. Actividades a Desarrollar en la Unidad. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. donde constan: las consignas o indicaciones. 6. para efectos de mensajería interna. NOTA: Recuerde que el Aula Virtual de la UCV. será evaluado en: 4. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. Realizar consultas simples y con criterios.(1998) .. crear su backup y almacenarla en un dispositivo físico y como restaurarla su Base de Datos. 6. etc. Addison Wisley James Martin.Evaluación En esta Unidad Ud. Creación de una Base de Datos. y silberschatz Abraham. Es importante que Ud. (1997) Sistemas de Bases de Datos. Organización de las Bases de Datos. Editorial Prentice Hall Hispanoamericana. haciendo uso del diseñador grafico de consultas y scripts.Kroenke David M. 5. Desarrollar un caso práctico de crear una Base de Datos para un Empresa determinada identificando sus tablas con sus respectivas columnas y crear su diagrama. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. Editorial Mc Graw Hill.. Korth Henry f. este en constante comunicación con su docente Tutor. avances de las tareas. ya sea para informar de dificultades. Procesamiento de Bases de Datos. Conceptos fundamentales. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. utilizando los operadores adecuados. Prentice Hall. España P á g i n a | 81 . Elmasri / Navathe. Fundamentos de Bases de Datos. UNIDAD EDICION DE TABLAS Y REGISTROS 4 ESTRUCTURA DE CONTENIDOS 1. Insertando datos usando los comando DML 4. Actualización de datos. Edición de Tablas y Registros 2. 3. Consultas simples P á g i n a | 82 . aplicando adecuadamente las instrucciones DML. 2003) P á g i n a | 83 . podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Date.Introducción Estimado participante: En esta Unidad aprenderá a ingresar correctamente datos a su base de datos utilizando el modo de diseño y los scripts. así como modificar la estructura de una tabla y resolver consultas Simples La importancia de esta Unidad radica en que Usted ingrese de manera correcta los datos a una tabla y pueda resolver consultas utilizando el diseñador de consultas y código SQL Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008. se procede a ingresar datos en cada una de ellas. solo debemos hacer clic arriba en el botón “Nueva Consulta” Digitar el siguiente código: --Para utilizar la Base de datos USE DB_APRENDIZAJE --Para Crear la Tabla P á g i n a | 84 .TXT a una tabla Creada la Base de Datos con sus respectivas tablas y haberlas relacionado. entonces realizamos lo siguiente: Crear una base de datos “DB_APRENDIZAJE” CREATE DATABASE DB_APRENDIZAJE Abrir una nueva consulta.1 EDICION DE TABLAS Y REGISTROS Creando tablas e Insertando registros mediante Código Insertar registros a través de un archivo *. Primero ingresaremos al SQL Server Management Studio Luego crear una base de datos simple y una nueva tabla para realizar nuestro ejemplo. para ello realizaremos el siguiente procedimiento. esto es importante porque al cargar los datos de origen desde nuestro archivo de texto estos tienen que coincidir con los de destino.txt'--Ruta del archivo P á g i n a | 85 . Factura decimal (7.CREATE TABLE TIENDA (IdTienda varchar(50). pueden ver ya esta lista nuestra tabla y aunque vacía ya sabemos que tipos de datos se van a poder insertar. para cargar el archivo a nuestra tabla ejecutamos el siguiente script en su hoja de consultas: BULK INSERT TIENDA FROM 'D:\BASES DE DATOS\DATOS. Nombre varchar(50). así que podrán acceder a este fácilmente. Ya tenemos nuestro archivo y para este ejemplo lo guardaran en su Unidad D:\ en una carpeta BASES DE DATOS (D:\BASE DE DATOS). Ciudad varchar (25). ahora creamos nuestro archivo de texto con los datos que vamos a ingresar.3)) Con nuestra tabla ya creada podemos visualizarla con la siguiente consulta: --Muestra la tabla SELECT * FROM TIENDA Como Uds. podemos comprobar si los datos están cargados mediante un nuevo SELECT --Muestra la tabla SELECT * FROM TIENDA 2 ACTUALIZACIÒN DE DATOS Modificar nombres de Tablas y Columnas con Transact – SQL Primero para usar el sp_rename crearemos algunos ejemplos.'. FechaMatricula date. Ud. creamos una base de datos para la prueba. --separa campos ROWTERMINATOR = '\n' ) --separa filas GO Ejecutamos la consulta y vemos que los cambios se han realizado. Curso varchar(10)) CREATE TABLE ALUMNO P á g i n a | 86 . podrá copiar el código completo y evitar la molestia de imaginarte algunas tablas nuevas para hacer tus pruebas entonces. ---Crear la Base de Datos CREATE DATABASE EJEMPLO USE EJEMPLO --Crear Tablas y Campos CREATE TABLE MATRICULA (IdMatricula char(4) NOT NULL PRIMARY KEY. 02 tablas.WITH ( FIELDTERMINATOR = '. Nombre varchar (50). puedes comprobar que están creadas en tu Explorador de Objetos. ahora si vamos a hacer las modificaciones: Cambiar el nombre de una tabla --CAMBIARLE EL NOMBRE A UNA TABLA --En el siguiente ejemplo se cambia el nombre de la tabla ALUMNO por ESTUDIANTE.(IdAlumno char(4) NOT NULL PRIMARY KEY.Nombre'. Edad smallint) Bueno con eso ya tenemos algo para manipular. GO P á g i n a | 87 . 'ESTUDIANTE'. 'NomEstudiante'. GO Cambiar el nombre a una columna --CAMBIARLE EL NOMBRE A UNA COLUMNA --En el siguiente ejemplo se cambia el nombre de la columna NOMBRE por NOMESTUDIANTE EXEC sp_rename 'ESTUDIANTE. EXEC sp_rename 'ALUMNO'. ’52-5559’. clientes_nombres. Use BDVENTAS INSERT INTO Clientes ( clientes_id. Lima Nro 678’) GO Declaración SELECT Se usa para recuperar los datos de una tabla o tablas. clientes_telefono. clientes_direccion) VALUES ( ‘001’.’ Av.Clientes_nombres FROM Clientes WHERE Clientes_Id = ’001’ Declaración UPDATE Se usa para poner al día o cambiar un valor o valores seguidos o filas de una tabla.’Cesar Delgado’. Lima Nro 945’ WHERE clientes_id = ‘001’ GO Declaración DELETE Se usa para eliminar una fila o filas de datos de una tabla. Use BDVENTAS DELETE FROM Clientes WHERE Clientes_id = ‘001’ GO P á g i n a | 88 .3 INSERTANDO DATOS USANDO LOS COMANDO DML Declaración INSERT Se usa para insertar una fila de datos en una tabla. Use BDVENTAS UPDATE Clientes SET clientes_direccion=‘Av. Use BDVENTAS SELECT clientes_id. la cual debe seleccionar la(s) que se utilizaran en la consulta. Se visualizará una ventana.4 CONSULTAS SIMPLES Utilizando el Diseñador de Consultas Para visualizar debe realizar lo siguiente: a. Seleccionar la Base de Datos a trabajar c. P á g i n a | 89 . Luego Click en la Opción Diseñar Consulta en el Editor… C D e. Click en el Menú Consulta d. Abrir una Nueva Consulta b. Panel de Diagrama Panel de Criterios Panel SQL P á g i n a | 90 . Luego debe seleccionar las columnas de las tablas para crear la consulta. como se muestra en el siguiente grafico.f. PRACTICA DESARROLLADA Ejecute el script de la BD Hotel utilizando el MS SQLServer Management Studio. PAISES SERVICIOS País Servicio TIPO_HABITACION Nombre_Servicio Tipo_Habitacion Descripción Camas Precio Exterior Fecha Salon TIPO_SERVICIO Terraza Nombre_Servicio PRECI_HABITYACION IdPrecio Precio Temporada Tipo_Habitacion TEMPORADA Temporada FechaInicio FechaFinal Tipo HABITACION Num_Habitacion Tipo_Habitacion CLIENTE Cliente Pais Nombres Apell_Pat Apell_Mat Direccion Sexo Telefono P á g i n a | 91 . Observaciones RESERVA Reserva Fecha_reserva Fecha_Salida Num_Habitacion Cliente GASTOS Gastos Reserva Servicio Fecha Cantidad Precio P á g i n a | 92 . insert into tipo_servicio (nombreServicio) values ('Matrimonial') 2) De de alta una reserva de la habitación 101 para el cliente 12345 para las noches del 2 al 4 de julio de 2012.101. Su nuevo número es 123456789.[CLIENTE]) values ('02-07-2012'.'12345') 3) Actualice el teléfono del cliente 12345. delete from reserva_habitac where idreserva=8 delete from reserva_habitac where cliente=12345 and fechaentrada='02-07-2012' and numhabitacion=101 6) Borre los tipos de servicio que no tienen servicios definidos.Realizar las siguientes consultas: 1) Inserte el tipo de servicio OCIO. delete from tipo_servicio where nombreServicio not in (select nombreservicio from servicios) select * from tipo_Servicio 7) Cree una consulta que devuelva las habitaciones reservadas para el día 24 de marzo de 2009.[NumHABITACION] . El código de la reserva es autonumérico. insert into reserva_habitac ([FechaENTRADA] .'04-07-2012'.[FechaSALIDA] . select numhabitacion from reserva_habitac P á g i n a | 93 . select * from clientes where identificacion=12345 update clientes set telefono='123456789' where identificacion=12345 4) Actualice el precio de los servicios incrementándolos en un 2% update servicios set precio=precio*1.02 5) Borre la reserva de la habitación 101 realizada anteriormente. where '24/03/2012' between fechaentrada and fechasalida 8) Cree una consulta que devuelva los clientes procedentes de España y Francia. select * from clientes where observaciones is not null 10) Crea una vista que devuelva los servicios cuyo precio supere los 25 Nuevo soles SELECT * FROM servicios WHERE precio>25 11) Mostrar todos los clientes del sexo Femenino SELECT * FROM cliente WHERE sexo=’Femenino’ 12) Realizar una consulta que Muestre todos los gastos realizados el 30/08/2012 SELECT * FROM Gastos WHERE Fecha=’30/08/2012’ P á g i n a | 94 .'Italia') 9) Crea una consulta que devuelva los clientesque tengan alguna observación registrada. select * from clientes where pais in ('España'. TRANSACCION datos en una tabla de la base de datos en una única operación F. Confrontar los siguientes Ítems. coherencia de los datos Caso Práctico. SELECT para consultar registros dentro de la base de datos que son requerido en el momento Utilizado para cargar lotes de E. Este corresponde a la gestión académica de un centro de estudios (instituto con grupos diurnos y nocturnos. COLOCAR LA CRITERIOS LETRA QUE DEFINICIONES CORRESPONDE Utilizado A. CONSISTENCIA 9. UPDATE utiliza para eliminar registros de una tabla en una base de datos Conjunto C. o la universidad con titulaciones que se imparten en horarios P á g i n a | 95 . INSERT valores para en modificar los campos registros los y según especificaciones Se B. Utilizado D. Crear la BD de Gestión Académica. DELETE de manipulación operaciones de datos de que deben ser consideradas como una unidad.AUTOEVALUACIÓN UNIDAD 04 8. CodAula. CodDocente) Curso (CodCurso. P á g i n a | 96 . de forma que el alumno se matricula en los cursos pero indicando en cuál de los grupos definidos para la misma. dia) Aula (CodAula. capacidad) Realizar las siguientes acciones: 1) Introducir datos en las tablas utilizando el LMD 2) Añadir a la tabla Alumno la columna sexo no permitir valores nulos.apellmat. apellpat. Convocatoria. apellpat. Decidir los tipos de datos en función de la información que se tiene en la BD suministrada. cursoacad. max_alum. Dpto (CodDpto. calificación) Grupo (CodCurso. CodGrupo. curso) Clase (CodCurso.CodDpto) Alumno (CodAlu. hora. 4) Mostrar toda la información de las aulas 5) Mostrar el código.apellmat.de mañana o tarde). 10) Mostrar los cursos que se dicten los días lunes. nombres. créditos. CodProfDirige) Docente (CodDocente. CodGrupo. nombre. nombre y profesión de los docentes 6) Mostrar a los docentes del departamento con código 21 7) Buscar los cursos con más de 6 créditos 8) Encontrar aulas con capacidad de alumnos sentados entre 30 y 40 alumnos 9) Buscar cursos electivos y obligatorios. nombres. nombre. CodGrupo. carácter. dni) Matricula (CodMatr. CodCurso. CodAlu) DetalleMatricula (CodMatr. 3) Añadir a la tabla Docente la columna profesión permitir valores nulos. Actualizaciones • Actualice el teléfono del cliente 12345. • De de alta una reserva de la habitación 101 para el cliente 12345 para las noches del 2 al 4 de julio de 2009. P á g i n a | 97 . Realizarlo de manera grafica y utilizando código: A continuación realice las siguientes acciones: Inserciones • Inserte el tipo de servicio OCIO. Su nuevo número es 123456789. • Actualice el precio de los servicios incrementándolos en un 2%. El código de la reserva es autonumérico.UNIDAD 4 ACTIVIDAD DIDÁCTICA CASO 01: Realice el siguiente diseño utilizando el MS SQL Server Management Studio. • Controle en la tabla servicios que el iva está comprendido entre 0 y 100. • Añada una columna en servicios que indique si el servicio se ofrece a los clientes o no. • Cree una consulta que devuelva los clientes procedentes de Italia y Suecia. P á g i n a | 98 .Eliminar • Borre la reserva de la habitación 101 realizada anteriormente.0. • Cree una consulta que devuelva los clientes. • Cree una consulta que devuelva los servicios cuyo precio supere los 5 € ordenados por su código de servicio. Otras restricciones con DLL CHECK • Controle en la tabla temporada que la fecha de fin es mayor que la fecha de inicio. ordenados por su primer apellido. • Cree una consulta que devuelva las habitaciones reservadas para el día 24 de octubre de 2012. ALTER TABLE • Añada una columna calculada en la tabla gastos que obtenga el importe por línea sin aplicar el iva. que tengan alguna observación anotada. Consultas sencillas • Cree una consulta que devuelva los clientes cuyo apellido incluya la sílaba “le” ordenados por su identificador. • Controle en la tabla reserva_habitac que la fecha de salida es mayor o igual que la fecha de entrada. TABLA y FK • Añada en gastos una referencia que indique el empleado que atendió el servicio. • Borre los tipos de servicio que no tienen servicios definidos. su tarifa por hora. identificado por su ID_T. TIPO.75 FONTANERO 1520 1520 ALEX LOPEZ 11. Su nombre es NOMBRE. ASIGNACION (ID_T.• Añada en reserva_habitac una referencia que indique el empleado que recogió la reserva. FECHA_INICIO. DIR.5 ELECTRICISTA 1311 1412 CARLOS LU 13. ID_E.75 FONTANERO 1520 2920 ERICK RUBIO ALBAÑIL 2920 3001 SAM VELEZ 8. CATEGORIA) Cada fila representa un edificio. que se identifica por su ID_E. TARIFA. Crear la Base de Datos aplicando Script y Ingresar los siguientes datos TRABAJADOR ID_T NOMBRE TARIFA 1235 LUIS SALAS 12. ID_SUPV) Cada fila representa un trabajador.0 OFICIO ID_SUPV EDIFICIO ID_E 111 210 DIR 1213 ASPEN 1011 BIRCH TIPO CATEGORIA OFICINA 1 OFICINA 1 312 123 ELM OFICINA 2 435 456 MAPLE COMERCIO 1 460 1415 ALMACEN 3 P á g i n a | 99 .5 ELECTRICISTA 1311 1311 JUAN DIAZ 15. en nuevo soles.4 CARPINTERO 3231 10. Se guarda su dirección. el tipo de edificio y su categoría. OFICIO. su oficio y el identificador de su supervisor. EDIFICIO (ID_E.2 CARPINTERO 3231 3231 JOSE MORI 17. NUM_DIAS) Una fila por cada vez que un trabajador es asignado a un edificio. NOMBRE. CASO 2 Sean las tablas siguientes: TRABAJADOR (ID_T. 4. ¿Cuál es el número total de días que se han dedicado a fontanería en el edificio 312? 7. Indicar el nombre del trabajador y el de su supervisor. Nombre de los trabajadores asignados a oficinas. ¿Cuántos tipos de oficios diferentes hay? P á g i n a | 100 . Nombre de los trabajadores cuya tarifa este entre 10 y 12 Nuevos Soles. 5. 1. ¿Cuáles son los oficios de los trabajadores asignados al edificio 435? 3. ¿Qué trabajadores reciben una tarifa por hora mayor que la de su supervisor? 6. 2.BEACH 515 789 OAK RESIDENCIA 2 ASIGNACION ID_T ID_E FECHA_INICIO 1235 312 2001-10-10 5 1235 515 2001-10-17 22 1311 435 2001-10-08 12 1311 460 2001-10-23 24 1412 111 2001-12-01 4 1412 210 2001-11-15 12 1412 312 2001-10-01 10 1412 435 2001-10-15 15 1412 460 2001-10-08 18 1412 515 2001-11-05 8 1520 312 2001-10-30 17 1520 515 2001-10-09 14 2920 210 2001-11-10 15 2920 435 2001-10-28 10 2920 460 2001-10-05 18 3001 111 2001-10-08 14 3001 210 2001-10-27 14 3231 111 2001-10-10 8 3231 312 2001-10-24 20 NUM_DIAS Realizar las siguientes consultas. edu.ucv.8. Para cada supervisor que supervisa a más de un trabajador.pe http://www. cis@ucv. Para cada supervisor.pe/cis/ P á g i n a | 101 . Incrementar la tarifa a los trabajadores cuyo oficio son FONTANERO.edu. ¿cuál es la tarifa más alta que se paga a un trabajador que informa a ese SUPERVISOR? 10. ¿Cuál es la tarifa por hora más alta que se paga a un trabajador que informa a ese SUPERVISOR? 9. Agrupación. Consultas con Criterios 2. P á g i n a | 102 . 5. Criterios de búsqueda anidada. Operadores lógicos. Campos calculados.UNIDAD GUIA DIDÁCTICA 5 Fundamentación El propósito de este modulo es enseñarle al resolver consultas complejas utilizando el diseñador de consultas o código SQL. Capacidad El participante al final de esta unidad estará en capacidad de: Resolver consultas utilizando funciones d Diseñar su Base de Datos partiendo de los requerimientos de información Contenidos 1. 4. Consultas Mediante Código 3. P á g i n a | 103 . Lectura Inicial de Contenidos. individual y colectivo. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. para efectos de mensajería interna. foros. 8. como base del perfeccionamiento profesional. donde constan: las consignas o indicaciones. Actividades a Desarrollar en la Unidad.Actividades Las actividades a desarrollar en la Unidad son: Actividad 05: o Resuelve consultas compuestas utilizando criterios. Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 7. o Valorar la teoría y la práctica. se empleará como medio de comunicación entre el docente y los estudiantes. NOTA: Recuerde que el Aula Virtual de la UCV. la realizaremos de manera ordenada. se encuentran en el apartado de Actividades. presenta los aspectos teóricos. evaluaciones virtuales. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. Es importante que Ud. este en constante comunicación con su docente Tutor. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. será evaluado en: 7. Elmasri / Navathe. Prentice Hall. Organización de las Bases de Datos. y silberschatz Abraham.. Editorial Prentice Hall Hispanoamericana. utilizando los operadores adecuados. avances de las tareas. Realizar consultas con criterios. España P á g i n a | 104 .. Fundamentos de Bases de Datos. (1997) Sistemas de Bases de Datos. haciendo uso del diseñador grafico de consultas y scripts. Editorial Mc Graw Hill.Kroenke David M. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. Korth Henry f. etc. Conceptos fundamentales. Addison Wisley James Martin. ya sea para informar de dificultades.(1998) . Procesamiento de Bases de Datos.Evaluación En esta Unidad Ud. P á g i n a | 105 . 9. Consultas con Criterios 7. Consultas Mediante Código 8. Agrupación.UNIDAD CONSULTAS CON CRITERIOS 5 6. Operadores lógicos. 10. Campos calculados. Criterios de búsqueda anidada. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Gabillaud. 2009) P á g i n a | 106 .Introducción Estimado participante: En esta Unidad aprenderá resolver consultas con operadores. aplicar campos calculados utilizando el diseñador de consultas o código SQL. ! Importante: Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008. funciones. Seleccionar la Base de Datos a trabajar i. Se visualizará una ventana. Abrir una Nueva Consulta h. la cual debe seleccionar la(s) que se utilizaran en la consulta. P á g i n a | 107 . Luego Click en la Opción Diseñar Consulta en el Editor… C D k. Click en el Menú Consulta j.1 CONSULTAS CON CRITERIOS Utilizando el Diseñador de Consultas Para visualizar debe realizar lo siguiente: g. Si se especifica PERCENT devolverá el porcentaje. Panel de Diagrama Panel de Criterios Panel SQL 2 CONSULTAS MEDIANTE CÓDIGO 1 Cláusula SELECT Argumentos: DISTINCT ó Los Ingresos Distintos: Especifica que sólo pueden aparecer filas únicas en el conjunto de resultados. como se muestra en el siguiente grafico. Luego debe seleccionar las columnas de las tablas para crear la consulta.l. Use BDVENTAS SELECT DISTINCT CIUDAD FROM CLIENTES GO TOP n [PERCENT]: Devuelve la primera n filas del resultado. Use BDVENTA SELECT TOP 5 Ciudad Use BDVENTA FROM Cliente SELECT TOP PERCENT 5 Ciudad GO FROM Cliente P á g i n a | 108 . MIN (expression) Valor menor de la expresión. Los intervalos inclusivos devuelven cualquier valor que coincida con los dos valores especificados. AVG. USE DBVenta SELECT NomCli.ApellCli. USE DBVenta USE Pubs SELECT SELECT NomCli.GO 3 CRITERIOS DE BÙSQUEDA ANIDADA AS ó Seudónimo de Columna: Se utiliza para poner un alias a una columna y se muestre en la lista de resultados como cabecera. AVG([ALL | DISTINCT] expression) Promedio de los valores de la expresión numérica.ApellCli.RucCli.DirCli NomCli. MAX y MIN) generan valores de resumen en los conjuntos de resultados de las consultas. COUNT([ALL | DISTINCT] expression) Número de valores en la expresión.DirCli FROM Cliente WHERE ApellCli BETWEEN 'G' AND 'R' 4 CAMPOS CALCULADOS FUNCIONES DE AGREGADO: Las funciones de agregado (SUM. SUM([ALL | DISTINCT] expression) Total de los valores de la expresión numérica. COUNT.RucCli.DirCli FROM Cliente FROM Cliente ORDER BY ApellCli ORDER BY ApellCli DESC BETWEEN (Intervalo): BETWEEN especifica un intervalo inclusivo de búsqueda. P á g i n a | 109 .RucCli. MAX (expression) Valor mayor de la expresión.ApellCli. SELECT CodCliente AS 'Código de Cliente' FROM Cliente ORDER BY (Ordenado Por): Se utiliza para mostrar los resultados ordenados por una o más columna. resultados o columnas calculadas.COUNT(CODCLI) FROM CLIENTE GROUP BY DISTRITO LIKE (Coincidencia de Patrones): Determina si una cadena de caracteres dada coincide o no con un determinado modelo. los caracteres regulares deben coincidir exactamente con los caracteres especificados en la cadena de caracteres.USE DBVenta USE DBVenta SELECT SUM(PreArt) SELECT avg(PreArt) FROM Articulo FROM Articulo USE DBVenta USE DBVenta SELECT MIN(PreArt) SELECT AVG(PreArt). Los grupos pueden consistir en nombres de columnas. _ Cualquier carácter individual Incluya los caracteres comodín y la cadena de caracteres entre apóstrofes o comillas simples USE DBVENTA P á g i n a | 110 . LIKE (Coincidencia de Patrones) Comodín Significado % Cualquier cadena de cero o más caracteres. USE DBVENTA SELECT DISTRITO. Un modelo puede incluir caracteres normales y caracteres comodines. Durante la coincidencia de patrones. SUM(PreArt) FROM Articulo FROM Articulo 5 AGRUPACIONES GROUP BY (Agrupado Por): Divide una tabla en grupos. ApellCli.ApellCli.DirCli FROM Cliente WHERE ApellCli LIKE '%T' --USE DBVENTA SELECT NomCli.RucCli.RucCli.RucCli.DirCli FROM Cliente WHERE ApellCli LIKE 'G%' --USE DBVENTA SELECT NomCli.SELECT NomCli.ApellCli.DirCli FROM Cliente WHERE ApellCli LIKE '_ABA' P á g i n a | 111 . camas.Cantidad * gastos. que tengan alguna observación anotada. exterior from habitaciones h. tipo_habitacion t where h.tipo_habitacion=t. ordenados por su primer apellido.camas. tipo_habitacion.exterior Cree una consulta que devuelva el gasto en servicios realizado por cada reserva. select * from clientes where apellido1 like '%le%' order by apellido1 Crea una vista que devuelva los clientes.COUNT( identificacion) AS NUMERO FROM CLIENTES GROUP BY pais Crea una vista que devuelva el nº de habitaciones por categoría de habitación. select pais. select count(*) .idreserva Cree una consulta que devuelva el precio del servicio más caro y del más barato select max(precio) maximo. SELECT gastos. SUM(gastos.categoria group by tipo_habitacion. select * from clientes where observaciones is not null order by apellido1 Crea una vista que devuelva el nº de clientes por nacionalidad.Precio) AS total FROM gastos GROUP BY gastos.idreserva. min(precio) mínimo from servicios P á g i n a | 112 .PRACTICA DESARROLLADA Restaurar la Base de Datos de la Unidad Anterior y ejecutar las siguientes scripts. Crea una vista que devuelva los clientes cuyo apellido incluya la sílaba “le” ordenados por su identificador. go P á g i n a | 113 . MIN Divide una tabla en grupos C. DISTINCT Valor mayor de una expresión Muestra D. P á g i n a | 114 . COLOCAR LA CRITERIOS LETRA QUE DEFINICIONES CORRESPONDE Determina A. Valor menor de una expresión Promedio de los valores de la expresión numérica.AUTOEVALUACIÓN UNIDAD 05 10. o la universidad con titulaciones que se imparten en horarios de mañana o tarde). de forma que el alumno se matricula en los cursos pero indicando en cuál de los grupos definidos para la misma. AVG 11. ORDER BY Especifica aparecer filas conjunto de F. Confrontar. Decidir los tipos de datos en función de la información que se tiene en la BD suministrada. Crear la BD de Gestión Académica. E. únicas pueden en el resultados. Este corresponde a la gestión académica de un centro de estudios (instituto con grupos diurnos y nocturnos. LIKE G. GROUP BY los ordenados resultados por una que sólo o más columna. Caso Práctico. MAX si una cadena de caracteres dada coincide o no con un determinado modelo B. dia) Aula (CodAula. hora. 10) Mostrar los alumnos que están matriculados sólo en cursos electivos. CodGrupo. carácter. CodAlu) DetalleMatricula (CodMatr.apellmat. CodGrupo. max_alum. 5) Mostrar los docentes con el nombre del dpto al que pertenecen 6) Mostrar los docentes que pertenecen al mismo dpto que Miguel Salas 7) Mostrar los alumnos que están cursando algún curso optativa (realizar la misma consulta utilizando en cada caso un operador de los siguientes: exists.apellmat. capacidad) Realizar las siguientes acciones: 1) Mostrar los alumnos cuyo primer apellido está comprendido entre la A y M 2) Buscar los docentes cuyo nombre finalice con una vocal 3) Mostrar los departamentos que no tienen asignado director 4) Mostrar los departamentos con el nombre y apellido de su director ordenados por apellido. CodGrupo. cursoacad. CodAula. apellpat. CodDocente) Curso (CodCurso. apellpat. CodDocDirige) Docente (CodDocente. Convocatoria. calificación) Grupo (CodCurso. curso) Clase (CodCurso. nombres. créditos. in o any) 8) Mostrar los cursos que se imparten en un aula con capacidad > 35 9) Mostrar el alumno o alumnos con la calificación más alta en el curso de BD independientemente de su convocatoria. P á g i n a | 115 . dni) Matricula (CodMatr. nombre.Dpto (CodDpto. Y el alumno o alumnos con la calificación más baja del mismo curso.CodDpto) Alumno (CodAlu. nombres. CodCurso. nombre. y de aquellos que han realizado alguna reserva en marzo. P á g i n a | 116 . • Cree una consulta que devuelva las características de cada habitación reservada. Realizarlo de manera grafica y utilizando código: A continuación realice las siguientes acciones: Consultas de combinación y subsentencia • Cree una consulta que devuelva los distintos clientes que han utilizado el servicio de comedor. • Cree una consulta que devuelva todos los clientes.UNIDAD ACTIVIDAD 5 CASO 01: Realice el siguiente diseño utilizando el MS SQL Server Management Studio. • Cree una consulta que devuelva los precios de los distintos tipos de habitación por temporada. indicar el nº de reserva. con objeto de agilizar las búsquedas.• Cree una consulta con los servicios que nunca han sido contratados (dos versiones EXISTS e IN). • Cree una consulta que devuelva el gasto en servicios realizado por cada reserva. estos clientes modificados. • Consultas con GROUP BY • Cree una consulta que devuelva el nº de clientes por nacionalidad. Otras restricciones con DLL CHECK • Controle en la tabla temporada que la fecha de fin es mayor que la fecha de inicio. • Cree una consulta que devuelva los clientes con el mismo primer apellido. • Controle en la tabla servicios que el iva está comprendido entre 0 y 100. Otras acciones • Cree una consulta que devuelva el precio del servicio más caro y del más barato. • Cree un índice sobre el atributo numHabitacion de la tabla reverva_habitac. Actualizar su identificación sumándole 10 y cambiando país a Alemania. Restrinja la salida para aquellos tipos de servicio que ofrezcan más de un servicio. CREATE INDEX • Cree un índice sobre el atributo Nacionalidad de la tabla clientes. Insertar en la tabla de clientes. • Cree una consulta que devuelva el nº de servicios que se ofrecen por tipo de servicio. • Cree un índice sobre el atributo nombreServicio de la tabla servicios. • Controle en la tabla reserva_habitac que la fecha de salida es mayor o igual que la fecha de entrada. • Crear una tabla temporal que recoja los clientes de Italia. P á g i n a | 117 . con objeto de agilizar las búsquedas. • Cree una consulta que devuelva el nº de habitaciones por categoría de habitación. con objeto de agilizar las búsquedas.0. ucv.edu. • Añada en reserva_habitac una referencia que indique el empleado que recogió la reserva.pe http://www.edu.
[email protected]/cis/ P á g i n a | 118 .ALTER TABLE • Añada una columna calculada en la tabla gastos que obtenga el importe por línea sin aplicar el iva. TABLA y FK • Añada en gastos una referencia que indique el empleado que atendió el servicio. • Añada una columna en servicios que indique si el servicio se ofrece a los clientes o no. ucv.edu.pe http://www.edu.UNIDAD TALLER DE UNIDAD I Y EXAMEN PARCIAL I 6 ESTRUCTURA DE CONTENIDOS Taller de Unidad I Examen Unidad I
[email protected]/cis/ P á g i n a | 119 . P á g i n a | 120 . Crear las Tablas usando Script. Seleccionar el usuario y Conectarse 3. Crear la base de datos Banco 4. Abrir SQL Server Management Studio 2.TALLER I 1. apellidos. ademas el numero de cuenta y su saldo solo de aquellos cuyo saldo en su cuenta supere los 10000 Nuevos Soles P á g i n a | 121 .5. Según el Modelo realizar las siguientes consultas: Mostrar todas las columnas de la tabla Cliente Mostrar el codigo. nombres de los clientes. NOMBRES. A.SALDO. C.IDCUENTA = M. M. CU. A.IDCLIENTE INNER JOIN MOVIMIENTO C ON A.IDCLIENTE WHERE B. A.APELLIDOS + '. B.TIPO FROM CLIENTE C INNER JOIN CUENTA CU ON C.IDCLIENTE INNER JOIN MOVIMIENTO M ON CU.DIVISA.IDCLIENTE = CU.APELLIDOS LIKE 'A%' Consultar todo los movimientos de las Cuentas del Cliente PEREZ en DOLLARES (Aunque tenga cuentas en otras divisas) Ordenados por el numero de Cuenta SELECT C.APELLIDOS.DIVISA FROM CUENTA A INNER JOIN CLIENTE B ON A.IDCUENTA WHERE A.IDCLIENTE = B.SALDO FROM CUENTA A INNER JOIN CLIENTE B ON A. M.APELLIDOS.Consultar las Cuentas de los clientes cuyo Apellido empiece por A SELECT B.APELLIDOS = 'PEREZ' ORDER BY CU.MONTO.IDCUENTA.IDCUENTA WHERE C.DIVISA = 'SIN CUENTA' Consultar los Movimientos de Ingreso de PEREZ y los Movimientos de Traspaso de RODRIGUEZ P á g i n a | 122 .IDCUENTA = A.IDCUENTA. CU.IDMOVIMIENTO.IDCLIENTE.IDCUENTA.NOMBRES AS CLIENTE. A.IDCUENTA Consultar las Divisas que no tengan ninguna Cuenta Asociada SELECT B. B.NOMBRES. CU. M.' + B.IDCLIENTE = B. 'CORDOVA'.IDCUENTA. C.IDCUENTA WHERE C. la columna Direccion si no debe permitir el iungreo de valore nulos.'WLIMER') INSERT INTO EMPLEADOS VALUES ('22333444'.SELECT A.FECHA DESC Insertar datos en la tabal Ciente INSERT INTO CLIENTE VALUES ('22999000'.TIPO = 'DEPOSITO' AND B.TIPO FROM CUENTA A INNER JOIN CLIENTE B ON A.'CORDOVA'. ALTER TABLE CLIENTE ADD DIRECCION VARCHAR (50) NOT NULL ALTER TABLE CLIENTE ADD SEXO BIT P á g i n a | 123 .APELLIDOS = 'PEREZ' OR C.TIPO = 'TRANSACCIONES' AND B.'DANIELA') GO Añadir a la tabla CLIENTE las columna Direcccion y Sexo. C. C.IDCLIENTE = B.'ACOSTA'.FECHA.MONTO.APELLIDOS = 'RODRIGUEZ' ORDER BY C.'ANA') INSERTINTO EMPLEADOS VALUES ('22777888'.IDCUENTA = A.IDCLIENTE INNER JOIN MOVIMIENTO C ON A. Vistas 2. CONTENIDOS 1. Creación por diseño y código. Crear y emplear vistas complejas de subconjunto. P á g i n a | 124 . agrupadas y compuestas en una base de datos de un proceso de negocio real. en esta unidad se proporciona información sobre cómo crear una vista en SQL Server. sintaxis para crearlas y como se clasifican Capacidad El participante al final de esta unidad estará en capacidad de: Mejorar el procesamiento y la integridad de una base de datos utilizando vistas sencillas.UNIDAD GUIA DIDÁCTICA 07 Fundamentación Una de las mejores herramientas que tenemos para mejorar el rendimiento de las consultas en las bases de datos son las vistas que son fáciles de crear. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. muestre los productos cuya descripción empiezan con la letra ‘P’ o contenga la cadena ‘SA’ y que hayan sido vendidos en el segundo trimestre del año 2012. la realizaremos de manera ordenada. para mostrar el menor y el mayor año de ingreso de dichos empleado. para efectos de mensajería interna. se encuentran en el apartado de Actividades.Actividades Caso: VENTAS: 1. 10. Luego. Si se presenta alguna duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. evaluaciones virtuales. 2. presenta los aspectos teóricos. efectúe una consulta sobre dicha vista. Cree una vista que muestre los datos de todos los empleados que no hayan emitido alguna boleta. Actividades a Desarrollar en la Unidad. donde constan: las consignas o indicaciones. mediante una consulta a dicha vista. P á g i n a | 125 . foros. NOTA: Recuerde que el Aula Virtual de la UCV. Cree una vista que muestre los datos de los productos vendidos. Cree una vista que muestre los datos de los productos vendidos en el año 2012. Lectura Inicial de Contenidos. efectúe una consulta a dicha vista para listar aquellos productos cuya letra inicial de su descripción se encuentra entre la A y la F. Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 9. Luego. Emplee etiquetas (alias de campo) para el encabezado del listado de campo. Luego. se empleará como medio de comunicación entre el docente y los estudiantes. Si el stock alcanza el mínimo establecido. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar tus conocimientos.pe http://www. se ha de notificar como un evento. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. ya sea para este en constante comunicación con su docente informar de dificultades.. será evaluado en: 8. la Base de Datos trata de informatizar el proceso de compras de una empresa.com/es-es/library/ms187956. Esto es. avances de las tareas. Realizar una vista que guarde el encabezado del pedido que se realizaría al proveedor. Reglas: No se puede seleccionar un artículo que no se encuentre en el catálogo.edu. que compran a proveedores ya conocidos.ucv.aspx Tutorial para la creación de vistas
[email protected]ón En esta Unidad Ud.pe/cis/ P á g i n a | 126 . Creación de Vista simples.. 9. http://technet.microsoft. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. etc. Tutor. Es importante que Ud. recoger los pedidos de los artículos.edu. contemplados en su catálogo. Desarrollar un caso práctico. Creación por código.UNIDAD VISTAS 07 ESTRUCTURA DE CONTENIDOS 1.edu. cis@ucv. Creación por diseño 2.edu.pe http://www.ucv.pe/cis/ P á g i n a | 127 . La creación de Vistas brinda una Seguridad al acceso a la Base de Datos.com/es-es/library/ms187956. Te deseamos éxitos en el desarrollo de esta Unidad. http://technet. la cual permite otorgar a los usuarios acceso a una parte de la información que hay en una tabla. el modelo relacional no es el más cómodo para visualizar los datos. lo que nos puede llevar a tener que escribir complejas sentencias SQL. En cuanto a Comodidad. para luego grabarlas en una vista.aspx P á g i n a | 128 . en este manual se realizan consultas multitablas empleando funciones agrupadas. ! Importante: Si deseas ahondar más sobre creación de vistas visitar el siguiente el Link. pero no a toda la tabla. donde aprenderá los fundamentos necesarios para la creación de Vistas.Introducción Estimado participante: En esta oportunidad le damos la bienvenida a esta nueva unidad de aprendizaje.microsoft. tener una vista nos simplifica esta tarea. Presionar Botón derecho.Conectar al servidor 3. Los datos accesibles a través de una vista no están almacenados en un objeto distinto de la base de datos... 1..Ingresar a Microsoft SQL Server 2008 2. con la cual se creara la vista. presionar el Botón derecho para crear Vistas. expandir la Base de Datos a trabajar: 4. A B C D P á g i n a | 129 .1 CREACIÒN DE VISTAS POR DISEÑO EN SQL Server 2008 r2 Una vista se puede considerar como una tabla virtual o una consulta almacenada.Se visualizara una ventana la cual deberá Ud..En la carpeta Vistas. y clic en Nueva Vista 5. seleccionar la(s) tabla(s).Explorador de objetos.. Los paneles que muestra la ventana son los siguientes: A. Panel de Diagrama B. Panel de Criterios C. Panel SQL D. Panel de Resultados 6.- Seleccionar las columnas correspondientes para crear la vista. 7.- Finalmente guardar la Vista Click Asignar un nombre a la vista 8.- La vista se almacenara en la carpeta Vistas P á g i n a | 130 9.- Para modificar, eliminar, mostrar resultados u otra operación presionar el botón derecho en la Carpeta Vistas y seleccionar la opción deseada. 2 CREACIÒN DE VISTAS MEDIANTE CÒDIGO Para crear Vistas mediante código realizar lo siguiente: 1. Click en el botón Nueva Consulta 2. Digitar el código: CREATE VIEW MONTOXCONTRATO AS SELECT DET.COD_CONT, MONTO=SUM(DEP.PRECIO_ALQXMES_DEP * (DATEDIFF(MM,DET.FEC_INI_ALQ,DET.FEC_FIN_ALQ))) FROM DEPARTAMENTOS DEP, DETALLECONTRATO DET WHERE DEP.COD_EDIF=DET.COD_EDIF AND DEP.COD_DEP=DET.COD_DEP GROUP BY DET.COD_CONT 10. Seleccionar el código y click en el Botón Ejecutar 11. Verificar la implementación de la vista, digitando el siguiente código: SELECT * FROM MONTOXCONTRATO 12. La vista se almacenara en la carpeta Vistas 13. Para modificar una vista utilizar el siguiente código: ALTER VIEW PROPIETARIOS_SIN_CONTRATO AS SELECT NOM_EDIF, DIRECC_EDIF, AREA_TOTAL_EDIF FROM EDIFICIOS WHERE EXISTS (SELECT * FROM DEPARTAMENTOS WHERE DEPARTAMENTOS.COD_EDIF=EDIFICIOS.COD_EDIF AND DEPARTAMENTOS.PISO_DEP=7) 14. Para eliminar una vista eliminar el siguiente código: DROP VIEW dbo.VERINQUILINOS Ejemplos: P á g i n a | 131 /*en la base de datos ejemplo, supongamos que se desea que los propietarios vean las filas de la tabla CONTRATO correspondientes a ciertos meses*/ CREATE VIEW VERCONTRATOSMESESIMPARES AS SELECT * FROM CONTRATO WHERE DATEPART(MM,FEC_FIRMA) IN (1,3,5,7,9,11) --CREATE VIEW VERCONTRATOSMESESPARES AS SELECT * FROM CONTRATO WHERE DATEPART(MM,FEC_FIRMA) IN (2,4,6,8,10,12) --SELECT * FROM VERCONTRATOSMESESIMPARES SELECT * FROM VERCONTRATOSMESESPARES /*Se desea crear una vista que muestre el código, nombre y apellido del aval de todos los inquilinos existentes, para que unos ciertos usuarios tengan acceso sólo a columnas específicas. Entonces, la vista se realizará de la siguiente manera.*/ CREATE VIEW VERINQUILINOS AS SELECT COD_USUA, NOM_AVAL_INQ, APELL_AVAL FROM INQUILINO -SELECT * FROM VERINQUILINOS P á g i n a | 132 PRÁCTICA DESARROLLADA TEMA: Creación de Vistas (Base de Datos DEPARTAMENTOS) 1. Muestre el nombre, apellido paterno y apellido materno de los inquilinos que tienes el haber básico más alto y más bajo. CREATE VIEW SALARIO_MAX_MIN AS SELECT NOM_USUA, APEPATER_USUA, APEMATER_USUA FROM USUARIO WHERE COD_USUA IN (SELECT COD_USUA FROM INQUILINO WHERE HABER_BAS_INQ IN (SELECT MAX(HABER_BAS_INQ) FROM INQUILINO) OR HABER_BAS_INQ IN (SELECT MIN(HABER_BAS_INQ) FROM INQUILINO)) -SELECT * FROM SALARIO_MAX_MIN 2. Muestre el nombre y apellido paterno de los propietarios que no tienen contratos. CREATE VIEW PROPIETARIOS_SIN_CONTRATO AS SELECT NOM_USUA, APEPATER_USUA FROM USUARIO WHERE COD_USUA IN (SELECT COD_USUA FROM PROPIETARIO WHERE COD_USUA NOT IN (SELECT PROP_COD_USUA FROM CONTRATO)) -SELECT * FROM PROPIETARIOS_SIN_CONTRATO 3. Muestre el nombre, dirección y área total del los edificios que tienen departamentos ubicados en el piso 7. CREATE VIEW PROPIETARIOS_SIN_CONTRATO AS SELECT NOM_EDIF, DIRECC_EDIF, AREA_TOTAL_EDIF P á g i n a | 133 PISO_DEP=7) -SELECT * FROM PROPIETARIOS_SIN_CONTRATO P á g i n a | 134 .COD_EDIF=EDIFICIOS.FROM EDIFICIOS WHERE EXISTS (SELECT * FROM DEPARTAMENTOS WHERE DEPARTAMENTOS.COD_EDIF AND DEPARTAMENTOS. Una vista representa un subconjunto de los atributos de una tabla y que puede ser diseñado para facilitar un caso en particular. Integridad de los registros C. B.. C. Completa los espacios en blanco con la respuesta correcta. D. Una vista es utilizada para recuperación rápida de datos. ¿Cuáles son las ventajas de trabajar con vistas? _______________________________________________________ _______________________________________________________ _______________________________________________________ p. II. Marca con un círculo la opción correcta en las siguientes alternativas. 13.¿Cuál de las siguientes sentencias es cierta sobre las relaciones? A. Las relaciones explícitamente definen una asociación entre 2 tablas. D. ¿Cuáles son las restricciones en las definiciones de vistas? _______________________________________________________ ______________________________________________________ P á g i n a | 135 . Las relaciones son almacenadas como atributos en la base de datos. El manejo de permisos y otras tareas administrativas es mucho más fácil a través de vistas que a través de tablas. n. C. Las relaciones son enlaces lógicos entre las tablas implementadas a través de Primary y Foreign keys. Una vista es una rápida descripción de una base de datos.AUTOEVALUACIÓN UNIDAD 07 12. I. Defina que es una VISTA: __________________________________ _______________________________________________________ _______________________________________________________ o. Integridad Referencial B.¿Qué establece un Primary key de una tabla? A. Integridad de las columnas D. Constraints de identidad III. B...¿Cuáles de las siguientes sentencias son ciertas sobre las vistas? A. Las relaciones son entidades. Dia varchar (15). P á g i n a | 136 .'sábado')). Almacena la información en varias tablas.'jueves'. por ello se crean vistas a las cuales tendrán acceso. constraint PK_socios_documento primary key (documento) ). Constraint PK_profesores_documento PRIMARY KEY (documento)).'viernes'. documentoprofesor char (8). CREATE DATABASE DB_ACADEMIA CREATE TABLE SOCIOS ( Documento char (8) not null. Domicilio varchar (30). CREATE TABLE cursos (Numero Tinyint identity. El director no quiere que los empleados de administración conozcan la estructura de las tablas ni algunos datos de los profesores y socios.'martes'. Domicilio varchar (30). CREATE TABLE PROFESORES (Documento char (8) not null. Constraint PK_cursos_numero PRIMARY KEY (numero)). Nombre varchar (40). constraint CK_inscriptos_dia check (dia in ('lunes'.'miércoles'.UNIDAD ACTIVIDAD 07 CASO: ACADEMIA Un club dicta cursos de distintos deportes. Nombre varchar (40). Deporte varchar (20). CREATE TABLE INSCRIPTOS (Documentosocio char(8) not null. numero)).Numero tinyint not null. Ingrese registros para todas las tablas 2. 4. Constraint PK_inscriptos_documento_numero PRIMARY KEY (documentosocio. Muestre (consultando la vista) el nombre y documento de los socios que deben matrículas. incluyendo el número del curso. el nombre del deporte y el día. Constraint CK_inscriptos_matricula check (matricula in('s'. 1. el deporte. 6.'n')). 9. 11. Muestre la misma información anterior pero ordenada por día. 10. 7. Muestre (consultando la vista) los cursos (deporte y día) para los cuales no hay inscriptos. Muestre (consultando la vista) los profesores que no tienen asignado ningún deporte aún. Consulte la vista y muestre los nombres de los profesores y los días en que asisten al club para dictar sus clases. 3. Muestre los nombres de los socios que no se han inscripto en ningún curso (consultando la vista) 5. Matricula char (1). Muestre todos los socios que son compañeros en tenis los lunes. el día y el nombre del profesor y muestre la información contenida en la vista. Realice una consulta a la vista donde muestre la cantidad de socios inscriptos en cada deporte ordenados por cantidad. P á g i n a | 137 . Elimine la vista "vista_inscriptos" si existe y créela para que muestre la cantidad de inscriptos por curso. Cree una vista en la que aparezca el nombre y documento del socio. 8. Consulte la vista: SELECT * FROM vista_inscriptos. ya sea de forma interactiva o desde un archivo operativo. Procedimientos Almacenados 2. CONTENIDOS. Capacidad El participante al final de esta unidad estará en capacidad de implementar instrucciones SQL y de programación mediante procedimientos almacenados para optimizar las operaciones en la base de datos y desencadenadores para optimizar las operaciones (insert. delete y update) de registros en una base de datos. Aprenderán a manejar la programación TRANSACT-SQL aplicando los conceptos de procedimientos almacenados y funciones. la misma que será guiada por el docente a cargo. 1. Procedimientos Almacenados sin Parámetros 3. Procedimientos Almacenados con Parámetros P á g i n a | 138 . se puede utilizar estructuras de control de flujo por Transact/SQL para conectar las instrucciones utilizando estructuras de tipo de programación.UNIDAD 08 GUIA DIDÀCTICA Fundamentación El propósito de esta unidad es introducir al estudiante el manejo de los datos de una base de datos relacional utilizando comandos TRANSACT-SQL el cual permite agrupar una serie de instrucciones como lote. También. Cree un procedimiento almacenado que permita actualizar el stock mínimo de un producto. El procedimiento recibirá como parámetro de entrada el código de dicha boleta. El procedimiento tiene como parámetro de entrada el código del producto. Considere las siguientes condiciones antes de modificar un producto: No permitir registrar stocks negativos. Los mensajes de error deberán ser invocados desde otro procedimiento almacenado. El procedimiento tendrá como parámetros de entrada todos los campos de la tabla empleado. No deberá permitir ingresar empleados con el email repetido. y si esto ocurriera. 2. P á g i n a | 139 . 3. 4. Tome en cuenta las siguientes condiciones antes de ingresar un empleado: El código del empleado debe ser único. Adicionalmente. Cree un procedimiento almacenado que muestre los datos de las boletas con su monto total por boleta. muestre un mensaje que indique ‘Ya existe un producto con la misma descripción. No deberá permitir ingresar empleados cuya edad sea menor a 18 años. Considere que el código del producto es un valor generado por el procedimiento almacenado y tiene la forma tal como ‘PRO001’.Actividad: Las actividades a desarrollar en la Unidad son: Caso: VENTAS: 1. 6. El procedimiento recibirá como parámetro de entrada el código del vendedor que emitió dicha boleta. Cree un procedimiento almacenado que muestre el detalle de una boleta. verifique que no se ingresen dos productos con la misma descripción. El procedimiento tendrá los siguientes parámetros de entrada: código del producto y el stock mínimo a actualizar. Cree un procedimiento almacenado que permita ingresar datos a la tabla PRODUCTO y que reciba como parámetros de entrada los datos para cada campo. Cree un procedimiento almacenado que permita buscar los datos de un producto. Cree un procedimiento almacenado que permita el ingreso de datos de un empleado. Si existieran errores se mostrarán los mensajes correspondientes. 5. Cree un procedimiento almacenado que permita eliminar un distrito. Sólo puede modificarse aquellos productos con un stock actual menor a 100 unidades. U distrito será eliminado siempre y cuando no esté asociado a algún empleado o cliente. P á g i n a | 140 . Si existieran errores se mostrarán los mensajes correspondientes. El procedimiento tendrá como parámetro de entrada el código del distrito. 7. para efectos de mensajería interna. NOTA: Recuerde que el Aula Virtual de la UCV. donde constan: las consignas o indicaciones. Es importante que Ud. avances de las tareas. este en constante comunicación con su docente Tutor. Actividades a Desarrollar en la Unidad. por ejemplo: se le evaluará por la entrega oportuna de sus actividades. se empleará como medio de comunicación entre el docente y los estudiantes.. 16. Desarrollar un caso práctico de crear una Base de Datos para un Empresa determinada identificando sus tablas asignándole sus columnas y respectivos tipo de datos de acuerdo a la columna (atributo). identificando las claves primarias y foráneas para cada una de las tablas.Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 11. evaluaciones virtuales. foros. ya sea para informar de dificultades. etc. P á g i n a | 141 . 12. Evaluación En esta Unidad Ud. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. Aplicando el Modo gráfico y Código SQL Server. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. se encuentran en el apartado de Actividades. presenta los aspectos teóricos. la realizaremos de manera ordenada. será evaluado en: 15.. Crear un diagrama de base de datos. Lectura Inicial de Contenidos. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. aspx Tutorial para la creación de procedimientos almacenados http://www.ucv.pe http://www.aspx Tutorial para la creación de procedimientos almacenados
[email protected]/es-es/library/ms345415.pe/cis/ P á g i n a | 142 .devjoker. http://technet.Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos.edu.edu.com/contenidos/Tutorial-de-TransactSQL/238/Procedimientos-almacenados-en-Transact-SQL.microsoft. Procedimientos Almacenados con Parámetros P á g i n a | 143 . Procedimientos Almacenados sin Parámetros 3.UNIDAD PROCEDIMIENTOS ALMACENADOS 08 ESTRUCTURA DE CONTENIDOS 1. Procedimientos Almacenados 2. estos son grupos formados por instrucciones SQL y el lenguaje de control de flujo. Cuando se ejecuta un procedimiento. eficacia y flexibilidad de SQL. ! Importante: Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008. La posibilidad de escribir procedimientos almacenados mejora notablemente la potencia. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Gabillaud. Te deseamos éxitos en el desarrollo de esta Unidad. Los procedimientos compilados mejoran la ejecución de las instrucciones y lotes de SQL de forma dramática.Introducción Estimado participante: En esta oportunidad le damos la bienvenida a esta nueva unidad de aprendizaje. donde aprenderá los fundamentos necesarios para la creación de procedimientos almacenados con y sin parámetros. se prepara un plan de ejecución para que la subsiguiente ejecución sea muy rápida. 2009) P á g i n a | 144 . Presionar el botón derecho en la carpeta Procedimiento almacenado. como se indica en la siguiente figura.Conectar al servidor 3. expandir la Base de Datos a trabajar (Departamentos)...1 PROCEDIMIENTOS ALMACENADOS SINTAXIS Sintaxis para modificar un procedimiento almacenado: Sintaxis para eliminar un procedimiento almacenado: 1.-En el Explorador de objetos.Para realizar los procedimientos almacenados ingresar a Microsoft SQL Server 2008 2.. 4. P á g i n a | 145 . <@Param2. int> = <Default_Value_For_Param1. sysname. sysname. -. SET NOCOUNT ON. CREATE PROCEDURE LISTAR_EDIFICIOS AS Select * From EDIFICIOS --Como se aprecia. el procedimiento mostrado no tiene parámetros de entrada y --para ejecutarlo deberá usar una de las siguientes sentencias: EXECUTE LISTAR_EDIFICIOS EXEC LISTAR_EDIFICIOS P á g i n a | 146 . int> = <Default_Value_For_Param2. . sysname. . @p2> <Datatype_For_Param2. sysname. <@Param2. ProcedureName> -.interfering with SELECT statements. 0> AS BEGIN -. . @p2> END GO Luego realizar los siguinetes ejemplos: 2 Procedimientos Almacenados Sin Parámetros Cree un procedimiento almacenado que muestre todos los edificios.Insert statements for procedure here SELECT <@Param1. 0>. @p1> <Datatype_For_Param1.Add the parameters for the stored procedure here <@Param1. .Se mostrara el siguiente código: CREATE PROCEDURE <Procedure_Name.SET NOCOUNT ON added to prevent extra result sets from -. @p1>. sysname. P á g i n a | 147 .2 Procedimientos Almacenados con Parámetros Cree un procedimiento almacenado que permita buscar los datos de un Usuario. @APEPATER_USUA varchar(25) AS Select * From USUARIO Where NOM_USUA = @NOM_USUA and APEPATER_USUA = @APEPATER_USUA Para ejecutarlo EXECUTE BUSCAR_USUARIO 'ENRIQUE'.'VERA' Como se aprecia el procedimiento almacenado recibe dos parámetros y realiza una búsqueda exacta dado el Nombre y Apellido del Usuario. El procedimiento tiene los siguientes parámetros de entrada: Nombre y Apellido Paterno. CREATE PROCEDURE BUSCAR_USUARIO @NOM_USUA varchar(25). @APEPATER_USUA varchar(25) AS Select * From USUARIO Where NOM_USUA like '%' + @NOM_USUA + '%' and APEPATER_USUA like '%' + @APEPATER_USUA + '%' Para ejecutarlo EXECUTE BUSCAR_USUARIO 'EN'. Create procedure BUSCAR_DEPARTAMENTOS @COD_EDIF char(6) = '' AS Select E. El procedimiento recibirá como parámetro de entrada el código del edificio. D.COD_EDIF = D.NOM_EDIF.NUM_AMB_DEP. ALTER PROCEDURE BUSCAR_USUARIO @NOM_USUA varchar(25). D. E. Cree un procedimiento almacenado que muestre el código.COD_DEP. Se debe considerar que el parámetro de entrada tendrá un valor por defecto igual a vacío.COD_EDIF P á g i n a | 148 .PRÁCTICA DESARROLLADA Modifique el procedimiento anterior para que la búsqueda del Usuario sea por una secuencia de caracteres y no en forma exacta. número de ambiente y piso del departamento.PISO_DEP From EDIFICIOS E inner join DEPARTAMENTOS D on E. D. E.DIRECC_EDIF. nombre y dirección del edificio así como el código.'VE' La sentencia ALTER PROCEDURE permite modificar el contenido del procedimiento almacenado y la sentencia LIKE permite hacer la búsqueda por una secuencia de caracteres.COD_EDIF. El procedimiento almacenado tomaría este valor cuando no se defina un valor al momento de ejecutarse.COD_EDIF = @COD_EDIF Para ejecutarlo EXECUTE BUSCAR_DEPARTAMENTOS 'E00001' En el parámetro de entrada @COD_EDIF. se ha definido un valor por defecto igual a vacío. EXECUTE BUSCAR_DEPARTAMENTOS Elimine el procedimiento almacenado BUSCAR_USUARIO Drop procedure BUSCAR_USUARIO P á g i n a | 149 .Where E. ........................ Son grupos formados por instrucciones SQL y el lenguaje de control de flujo ..( 15. cada uno de ellos con un nombre.. Escribe una V si la proposición es verdadera o escribe F si la proposición es Falsa....................( f.................. Que es un Procedimiento almacenado: ________ _______________________________________________________ _______________________________________________________ r.. ¿En qué consiste los procedimientos almacenado con parámetros? ______________________________________ _______________________________________________________ _______________________________________________________ s.... a......( ) h........... Mejora notablemente la potencia...AUTOEVALUACIÓN UNIDAD 08 14...... Los procedimientos almacenados se ejecutan de manera instantánea .....................................( ) c............... _______________________________________________________ _______________________________________________________ P á g i n a | 150 ............. ... Un procedimiento almacenado puede tener hasta 2.................................... una dirección y un valor predeterminado.............................. El comando EXECUTE se utiliza para ejecutar un procedimiento ................( ) b. ) Completa los espacios en blanco con la respuesta correcta..( ) e........ Se utiliza la instrucción CREATE STORE PROCEDURE para crear un Procedimiento Almacenado ....( ) g......... ) Un procedimiento almacenado se comunica con el programa que lo llama mediante sus parámetros......... eficacia y flexibilidad de SQL ......... un tipo de datos.......................... El procedimiento almacenado también puede devolver valores al programa que lo llama mediante parámetros OUTPUT .( ) d.................100 parámetros...... Indique la sintaxis para modificar un procedimiento almacenado........... q....... 15. el tipo de edificio y su categoría. NUM_DIAS) Una fila por cada vez que un trabajador es asignado a un edificio. identificado por su ID_T. ¿Cuántos tipos de oficios diferentes hay? 17. Realizar los siguientes procedimientos almacenados con y sin parámetros: 11.pe /cis/ P á g i n a | 151 . ¿Qué trabajadores reciben una tarifa por hora determinada mayor que la de su supervisor? 16. Nombre de los trabajadores asignados a las diferentes oficinas.edu. 14. Se guarda su dirección. ¿Cuáles son los oficios de los trabajadores asignados a un edificio determinado? 13.edu. Indicar los nombres de los trabajadores con su respectivo supervisor. ID_E.pe http://www. EDIFICIO (ID_E. su tarifa por hora. en nuevo soles. TIPO. ID_SUPV) Cada fila representa un trabajador. TARIFA. 12. ASIGNACION (ID_T. OFICIO. CATEGORIA) Cada fila representa un edificio. que se identifica por su ID_E. Mostrar los trabajadores cuya tarifa se encuentren en un monto determinado. NOMBRE.ucv. cis@ucv. Su nombre es NOMBRE. FECHA_INICIO. Para cada supervisor que supervisa a más de un trabajador. Incrementar la tarifa a los trabajadores de un oficio determinado. DIR. su oficio y el identificador de su supervisor.UNIDAD ACTIVIDAD DIDÁCTICA 08 CASO Sean la siguiente Base de Datos: TRABAJADOR (ID_T. ¿cuál es la tarifa más alta que se paga a un trabajador que informa a ese SUPERVISOR? 18. Capacidad El participante al final de esta unidad estará en capacidad de implementar instrucciones SQL y de programación mediante procedimientos almacenados para optimizar las operaciones en la base de datos y desencadenadores para optimizar las operaciones (insert. Asociación con los procedimientos almacenados. se puede utilizar estructuras de control de flujo por Transact/SQL para conectar las instrucciones utilizando estructuras de tipo de programación. También. REGLAS Y VALIDACIÓN Creación por diseño y código. P á g i n a | 152 . eliminan o actualizan datos de una tabla especificada.UNIDAD 9 GUIA DIDÁCTICA Fundamentación El propósito de esta unidad es introducir al estudiante el manejo de los datos de una base de datos relacional utilizando comandos TRANSACT-SQL el cual permite agrupar una serie de instrucciones como lote. Ventajas en la seguridad de la base. CONTENIDOS. Importancia para la tabla y base. delete y update) de registros en una base de datos. Aprenderán conceptos a manejar la programación TRANSACT-SQL aplicando los de disparadores que viene hacer un tipo especial de procedimientos almacenados que se ejecutan cuando se insertan. Disparadores en las operaciones básicas. la misma que será guiada por el docente a cargo. ya sea de forma interactiva o desde un archivo operativo. Actividades La actividad a desarrollar en la Unidad es Actividad: P á g i n a | 153 . 5 a 10 del jabón de la tabla productos. al final de la transacción imprimir un mensaje que indique el total del pedido. P á g i n a | 154 . cantidad. se deberá actualizar a 80. multiplicando el precio del producto por la cantidad del pedido.Caso: ALMACEN: Cree una base de datos de nombre ALMACEN con las siguientes tablas Cree un disparador que se active al momento de eliminar o modificar la base de datos almacén Cree una transacción parecida al ejemplo 3 para insertar productos Modifique el precio de 4. ingrese esos campos en la tabla pedido y luego busque ese producto en la tabla productos donde disminuya la existencia del producto Ejemplo Cantidad=20 código='prod01' fecha='2010-02-02' pedido=1 La existencia actual del prod01 es 100. cuando se realice esa inserción. código de pedido y fecha de pedido. realice la sentencia que muestre la fila modificada Cree una transacción que dado un código de producto. donde constan: las consignas o indicaciones.Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 13. para efectos de mensajería interna. avances de las tareas. se empleará como medio de comunicación entre el docente y los estudiantes. identificando las claves primarias y foráneas para cada una de las tablas.. Desarrollar un caso práctico de crear una Base de Datos para un Empresa determinada identificando sus tablas asignándole sus columnas y respectivos tipo de datos de acuerdo a la columna (atributo). este en constante comunicación con su docente Tutor. Lectura Inicial de Contenidos. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad. Aplicando el Modo gráfico y Código SQL Server. P á g i n a | 155 . por ejemplo: se le evaluará por la entrega oportuna de sus actividades. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. Crear un diagrama de base de datos. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. se encuentran en el apartado de Actividades. la realizaremos de manera ordenada. Actividades a Desarrollar en la Unidad. 18. ya sea para informar de dificultades. NOTA: Recuerde que el Aula Virtual de la UCV. evaluaciones virtuales. etc. foros. Es importante que Ud. 14.. presenta los aspectos teóricos. Evaluación En esta Unidad Ud. será evaluado en: 17. edu.com/es-es/library/ms189799.aspx Tutorial de Transact SQL
[email protected]/contenidos/catss/292/Transacciones-en-Transact-SQL.microsoft.aspx Tutorial para la creación de Trigger. http://technet.ucv. http://www.edu.pe http://www.pe/cis/ P á g i n a | 156 .Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos.devjoker. 6. P á g i n a | 157 . Importancia para la tabla y base. Ventajas en la seguridad de la base. 3. 4. 5. Reglas y Validación 2. Asociación con los procedimientos almacenados. Creación por diseño y código. Disparadores en las operaciones básicas.UNIDAD REGLAS Y VALIDACIÓN 9 ESTRUCTURA DE CONTENIDOS 1. donde aprenderá los fundamentos necesarios para la creación de disparadores (trigger o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos Te deseamos éxitos en el desarrollo de esta Unidad. podrás encontrar material adicional en la sección: Material Complementario en un apartado llamado: “SQL server 2008 r2 SQL Trasact SQL“ (Gabillaud. 2009) P á g i n a | 158 . Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft SQL Server 2008.Introducción Estimado participante: En esta oportunidad le damos la bienvenida a esta nueva unidad de aprendizaje. ALTER_TABLE> AS BEGIN END Luego realziar los siguientes ejemplos: A continuación se muestra un ejemplo sencillo.2 PROCEDIMIENTOS ALMACENADOS SINTAXIS CREATE TRIGGER <trigger_name. DELETE AS PRINT 'UD. sysname. Este disparador imprime un mensaje cada vez que alguien trata de insertar. de tal manera que se pueda verificar los datos y ante un error podría revertirse los cambios. UPDATE. DELETE AS PRINT 'UD. Cree un Trigger que permita insertar los datos de un Usuario siempre y cuando el nombre y apellido paterno del usuario sean únicos CREATE TRIGGER TX_USUARIO_INSERTA ON USUARIO FOR INSERT AS IF (Select count (*) P á g i n a | 159 . Está tabla tómala misma estructura del cual se originó el Trigger. ACABA DE MODIFICAR LOS DATOS DEL USUARIO' Para borrar un trigger. se utiliza la siguiente sintaxis: ALTER TRIGGER TX_USUARIO ON USUARIO FOR INSERT. . UPDATE. SQL Server inserta los nuevos valores en la tabla INSERTED el cual es una tabla del sistema. ACABA DE MODIFICAR VALORES EN LA TABLA USUARIO' Para modificar el trigger. DROP_TABLE. eliminar o actualizar datos de la tabla Usuario CREATE TRIGGER TX_USUARIO ON USUARIO FOR INSERT. table_alter_drop_safety> ON DATABASE FOR <data_definition_statements. se utiliza la siguiente sintaxis: DROP TRIGGER TX_USUARIO Funcionamiento de los Disparadores: Ejemplo de Disparador de Inserción Cuando se inserta una nueva fila en una tabla. SQL Server inserta los valores que fueron eliminados en la tabla DELETED el cual es una tabla del sistema. de tal manera que se pueda verificar los datos y ante un error podría revertirse los cambios. Ejemplo de Disparador de Actualización P á g i n a | 160 .APEPATER_USUA =USUARIO.NOM_USUA = USUARIO.NOM_USUA AND INSERTED. Está tabla toma la misma estructura del cual se originó el Trigger. Este disparador imprime un mensaje si la inserción se revierte y otro si se acepta. verificamos el haber básico del inquilino y de superar los 400 soles la operación deberá ser cancelada. Cree un Trigger el cual permita eliminar Inquilinos cuyo haber básico sea menor a 400 soles. CREATE TRIGGER TX_INQUILINO_ELIMINA ON INQUILINO FOR Delete AS IF (select HABER_BAS_INQ from deleted ) > 400 Begin Rollback transaction print 'El Haber Básico del Inquilino debe ser menor a 400 soles' End En este ejemplo.APEPATER_USUA) > 1 Begin Rollback transaction Select 'El Usuario existe en la base de datos. USUARIO Where INSERTED.From INSERTED. por favor verifique sus datos' End Else Select 'El Usuario fue ingresado en la base de datos' En este ejemplo. Ejemplo de Disparador de Eliminación Cuando se elimina una fila de una tabla. verificamos el número de usuarios que tienen el mismo nombre y apellido y de encontrarse más de un usuario no se deberá permitir ingresar los datos del usuario. En este caso la reversión de los cambios significará restaurar los datos eliminados. De eliminarse algún inquilino que no cumpla con dicha condición la operación no deberá ejecutarse. Aunque no aparece ningún mensaje de error su crea un disparador en una tabla del sistema. SQL Server inserta los valores que antiguos en la tabla DELETED y los nuevos valores los inserta en la tabla INSERTED.Cuando se actualiza una fila de una tabla. el disparador no se utilizará. Insert y Delete. uno de inserción y uno de eliminación. P á g i n a | 161 . • Los disparadores no se permiten en las tablas del sistema. Sin embargo. un mismo disparador se puede aplicar a las tres acciones del usuario: Update. aunque los disparadores pueden hacer referencia a las vistas o tablas temporales. CREATE TRIGGER TX_USUARIO_ACTUALIZA ON USUARIO FOR UPDATE AS If (Select year(FEC_NAC_USUA) From Inserted) > 1990 Begin -.Mostrar los Datos Select year(dt_fechanacimiento) as fecha_anterior From deleted Select year(dt_fechanacimiento) as fecha_nueva From Inserted Rollback transaction print 'La fecha de nacimiento debe ser menor a 1990' End RESTRICCIONES DE LOS DISPARADORES A continuación. Usando estas dos tablas se podrá verificar los datos y ante un error podrían revertirse los cambios. Cree un Trigger que valide que la fecha de nacimiento de un Usuario no sea mayor a 1990. se describen algunas limitaciones o restricciones impuestas a los disparadores por SQL Server: • Una tabla puede tener un máximo de tres disparadores: uno de actualización. • No se puede crear un disparador en una vista ni en una tabla temporal. • Cada disparador puede aplicarse a una sola tabla. 3. */ DELETE BOLETA WHERE COD_BOL=@BOLETA PRINT 'BOLETA SE ELIMINÓ SATISFACTORIAMENTE' END ELSE -. CREATE TRIGGER TX_BOLETA_ELIMINAR ON BOLETA INSTEAD OF DELETE AS DECLARE @BOLETA CHAR (5) --SE OBTIENE EL CÓDIGO DE LA BOLETA QUE SE HA ELIMINADO SELECT @BOLETA=COD_BOL FROM DELETED --SE VERIFICA SI LA BOLETA TIENE DETALLE IF ( SELECT COUNT (*) FROM DETALLEBOLETA WHERE COD_BOL=@BOLETA) > 0 BEGIN -. P á g i n a | 162 . */ PRUEBA DEL TRIGGER EJECUTAR LO SIGUENTE: DELETE BOLETA WHERE COD_BOL='BOL777' 2. ES DECIR. QUE EL DELETE EN LA TABLA BOLETA NO SE EJECUTA DE FORMA NORMAL. ESTO SE HACE PUESTO QUE AL HABER DECLARADO EL TRIGGER DEL TIPO INSTEAD OF.Crear un disparador que impida la eliminación de un empleado que haya emitido boletas.PRÁCTICA DESARROLLADA En la base de datos VENTAS: 1.SE ELIMINA EL DETALLE DE LA BOLETA DELETE DETALLEBOLETA WHERE COD_BOL=@BOLETA /*SE ELIMINA LA CABECERA.Cree un Trigger que elimine en cascada una boleta y su detalle.. Este disparador se ejecutara el tratar de insertar un registro en la tabla boleta.Agregue en la tabla Boleta el campo total. POR LO TANTO. cree un disparador que actualice el campo total por el cálculo del monto total a pagar en una boleta.SE ELIMINA SOLAMENTE LA CABECERA DELETE BOLETA WHERE COD_BOL=@BOLETA PRINT 'BOLETA ELIMINADA CARECE DE DETALLE' /*EL TRIGGER INSTEAD OF DELETE PUEDE SER USADO PARA REEMPLAZAR LA ACCIÓN REGULAR DE LA SENTENCIA DELETE SOBRE UNA TABLA O UNA VISTA.. Luego.. HAY QUE FORZAR LA ELIMINACIÓN.. Mencionar las restricciones que se presentan al trabajar con Trigger _______________________________________________________ _______________________________________________________ P á g i n a | 163 . _______________________________________________________ _______________________________________________________ _______________________________________________________ v. t. Explique la diferencia entre un procedimiento Almacenado y un Trigger _______________________________________________________ _______________________________________________________ _______________________________________________________ w.AUTOEVALUACIÓN UNIDAD 09 Completa los espacios en blanco con la respuesta correcta. Indique la sintaxis para modificar un Trigger. Que es un Trigger: ________ _______________________________________________________ _______________________________________________________ u. De eliminarse algún Trabajador que no cumpla con dicha condición la operación no deberá ejecutarse.Cree un TRIGGER el cual permita eliminar los trabajadores que no han sido asignados a ningún edificio. Cree un TRIGGER que valide la tarifa por hora de un trabajador. Se guarda su dirección. NOMBRE. NUM_DIAS) Una fila por cada vez que un trabajador es asignado a un edificio. Realizar los siguientes procedimientos Triggers: 19. TARIFA. EDIFICIO (ID_E.edu. Su nombre es NOMBRE. Cree un disparador que se active al momento de eliminar o modificar la base de datos almacén 20.pe http://www. en nuevo soles.UNIDAD 9 ACTIVIDAD CASO Sean la siguiente Base de Datos: TRABAJADOR (ID_T. CATEGORIA) Cada fila representa un edificio. cis@ucv. ASIGNACION (ID_T. ID_E. FECHA_INICIO.ucv. 21. identificado por su ID_T. donde dichos datos sean mayores a cero. el tipo de edificio y su categoría.pe/cis/ P á g i n a | 164 . ID_SUPV) Cada fila representa un trabajador. su tarifa por hora. TIPO.edu. su oficio y el identificador de su supervisor. que se identifica por su ID_E. DIR. OFICIO. Net . Manejo del Lenguaje Transact SQL. De esta manera. mejorar la productividad del desempeño profesional que responda a las exigencias del entorno Capacidad El participante al final de esta unidad estará en capacidad de: Proporcionar los conocimientos y prácticas necesarias para afrontar situaciones en los cuales se requiere el análisis del alumno para dar una solución acorde con el problema. Validación. analice y desarrolle una solución sólida. CONTENIDO PROYECTO ESTANDAR PARA TABLAS Crear y diseñar una interfaz visual. Aplicar controles de ingreso. Manejo de la plataforma de desarrollo Visual Basic . P á g i n a | 165 . Además. para el desarrollo de aplicaciones.Net 2010.Net 2010 dicha herramienta proporciona al alumno realizar soluciones informáticas en diversos medios empresariales. conocer el entorno de del Lenguaje de Programación Visual Basic . en base a los requerimientos del usuario.NET 2010 para la elaboración aplicaciones de escritorio que interactúen con el administrador de base de datos SQL 2008 R2 en función al lenguaje TRANSACT SQL manejando Procedimientos Almacenados. óptima. Proporcionar conocimientos necesarios para afrontar casos de programación con alto grado de dificultad. Conectividad. Conectividad. utilizando para ello el administrador de datos SQL Server 2008 r2. Entorno de datos.UNIDAD 10 GUIA DIDÀCTICA Fundamentación La finalidad de esta unidad está orientado a que el alumno frente a una determinada situación informática. Código y colecciones de datos. específicamente Visual Basic. A su vez está orientado al estudio y conocimiento de la plataforma de desarrollo . Actividades La actividades a desarrollar en la Unidad son Manejo de Controles y entorno .NET Conexión a base de datos de manera conectada y desconectada(temporal) utilizando la librería System Data SqlClient Creación de formularios MDI. Creación de Formularios hijos. Manejo de Controles. Ejecución de Procedimientos almacenados desde .NET Programación de procesos básicos: Nuevo, Modificar, eliminar, Grabar y cancelar. Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 15. Lectura Inicial de Contenidos, la realizaremos de manera ordenada, presenta los aspectos teóricos. Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. 16. Actividades a Desarrollar en la Unidad, se encuentran en el apartado de Actividades, donde constan: las consignas o indicaciones. NOTA: Recuerde que el Aula Virtual de la UCV, se empleará como medio de comunicación entre el docente y los estudiantes, para efectos de mensajería interna, foros, evaluaciones virtuales, acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. P á g i n a | 166 Evaluación En esta Unidad Ud., será evaluado en: 19. Desarrollar un caso práctico de conexión de una Base de Datos con el Lenguaje de Programación Visual Basic .Net 2010. 20. Diseñar su aplicación de acuerdo al caso propuesto y mostrar los datos de las tablas creadas en la Base de Datos. Es importante que Ud., este en constante comunicación con su docente Tutor, ya sea para informar de dificultades, avances de las tareas, etc. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad; por ejemplo: se le evaluará por la entrega oportuna de sus actividades. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos. http://msdn.microsoft.com/es-es/library/k3bb4tfd%28v=vs.100%29.aspx Tutorial Visual Basic Net 2010.
[email protected] http://www.ucv.edu.pe/cis/ P á g i n a | 167 UNIDAD PROYECTO ESTANDAR PARA TABLAS 10 PROYECTO ESTANDAR PARA TABLAS Crear y diseñar una interfaz visual. Aplicar controles de ingreso. Validación. Conectividad. Entorno de datos. Conectividad. Código y colecciones de datos P á g i n a | 168 Introducción Estimado participante: En esta oportunidad le damos la bienvenida a esta nueva unidad de aprendizaje, donde aprenderá los fundamentos necesarios para la creación de Aplicaciones de Escritorio, enlazadas con una base de datos, utilizando las herramientas como el Manejador de Base de Datos SQL Server 2008 r2 y el Lenguaje de Programación Visual Basic .Net 2010 Te deseamos éxitos en el desarrollo de esta Unidad. Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft Visual Basic: Net 2010, podrás encontrar material adicional en la sección: Material Complementario. P á g i n a | 169 por ejemplo "Configuración de desarrollo de Visual Basic": NOTA: En caso de que esta configuración se haga de forma inadecuada o mal indicada. P á g i n a | 170 .10 PROYECTO ESTANDAR PARA TABLAS Desde el botón "Iniciar" ."Todos los programas" podremos ver el grupo de programas "Microsoft Visual Studio 2010": CLICK Tras iniciar por primera vez Microsoft Visual Studio 2010 Ultimate. después de la instalación. seleccionaremos la configuración de entorno predeterminada. podemos cambiar dicha configuración dirigiéndonos al Menú Herramientas/Importar y Exportar configuraciones /Restablecer todas las configuraciones. y desde ahí volver a configurar el modo sobre Configuración de desarrollo de Visual Basic. del árbol de selección de la parte izquierda. cortar. y paso seguido la opción Aplicación de Windows Form.net. deshacer. C Diseño: en esta barra se encuentran los botones para ayuda de diseño de interfaz gráfica.Y ya podremos disponer de este entorno de programación que nos permitirá crear un nuevo proyecto. pegar. Luego se asigna un nombre al nuevo proyecto en el campo de Nombre en la parte inferior de la ventana y se oprime el botón Aceptar. B Estándar: en esta barra se puede acceder a botones de edición (copiar. El entorno de Visual Basic . a su vez muestra botones para administración de las ventanas emergentes del vb.Net Descripción de la interfaz gráfica de vb.Net Para crear un proyecto en vb.net 2010 es necesario activar Nuevo Proyecto de la primera pantalla que aparece al usar la herramienta Visual Studio 2010: En la ventana emergente que aparece es necesario seleccionar la opción Visual Basic /Windows. rehacer) y acciones de ejecución y depuración.net. Creando un proyecto para Visual Basic .net 2010: A Menú: en esta barra se encuentra los menús de acceso a todas las funcionalidades de vb. P á g i n a | 171 . los cuales se habilitan según los objetos que se estén visualizando en modo diseño. etc…).vb Ventana de propiedades En esta ventana se encuentra el listado de todas las propiedades de los objetos del proyecto como son formularios.Explorador de Soluciones Esta ventana se encuentra a la parte derecha del entorno grafico de .vb y cambiar el Nombre de Archivo: frmPrincipal. módulos. recursos. textbox. Nota: Es importante que en esta sección debamos hacer clic a Form1. labels. botones. P á g i n a | 172 . imágenes. etc. clases.Net. reportes. aquí se muestran todos los objetos que hacen parte del proyecto abierto (formularios. Checkbox. contenedores. impresión. componentes.Caja de herramientas En esta caja de herramientas se encuentran todos los controles que se pueden utilizar en nuestros proyectos.5. en este modo se puede acceder a controles de tipo grafico como son los TextBox. entre otros.4. el cual permite generar una interfaz gráfica de Usuario al gusto de cada programador. menús. entre otros). controles comunes. datos. Para acceder al modo diseño oprima las Teclas (Shift + F7) P á g i n a | 173 . Labels. Modo Diseño En este modo se visualiza el editor de diseño. 2. estos encuentran debidamente organizados según características se sus (todos los controles. diálogos. 6.4. Códigos de Clases. Modo Código En este entorno se digita y codifican todos los algoritmos y procedimientos necesarios para la ejecución de nuestro programa. como son los Módulos. deberemos presionar el botón Guardar P á g i n a | 174 . Una ventaja que nos da Visual Studio. Para acceder al modo Código oprima la Tecla ( F7 ) u oprima Click + Der sobre el formulario y seleccione la opción ver Código. por ello es necesario que siempre este activo el check: Posteriormente. entre otros. por ende se muestra el siguiente formulario: Aquí vemos que ya tenemos el nombre del proyecto asignado en un principio. es la de generar un directorio para guardar los respectivos archivos que genera un proyecto… ya que este al tener cantidad de archivos por manejar una interfaz. Dentro de este modo se pueden acceder a objetos y controles únicos del tipo Código. Guardando un Proyecto Cuando se está trabajando con un solo proyecto nuevo es recomendable que antes de ingresar código se pueda guardar dicho proyecto para lo cual deberemos dirigirnos al Menú Archivo / Guardar todo (Ctrl + Shift + S).2. deben ser centralizados en un solo sitio. pero en su Ubicación debemos indicar un sitio o directorio donde se generará la solución agregamos. 2. use el botón Examinar para localizar su carpeta personal) 5. se sugiere crear carpetas para guardar los diferentes elementos del sistema de forma ordenada. SUGERENCIA: Una vez creado nuestro proyecto SISVENTAS. Plantilla: Aplicación de Windows. Especifique la carpeta donde se guardará el proyecto (ésta deberá ser una carpeta creada por usted. P á g i n a | 175 . a continuación nos mostrará la siguiente ventana: Considere lo siguiente: 1. 3. luego en Nuevo Proyecto (ó pulse las telas CTRL + N). para ello siga los siguientes pasos en el Explorador de Soluciones.CREACIÓN DE UNA NUEVA SOLUCIÓN Deberá ir al Menú Archivo. Luego escriba el nombre de la aplicación: SISVENTAS 4. Tipo de Proyecto: Visual Basic. Hacer clic en el botón Aceptar para crear el proyecto. ESTABLECER LA CONEXIÓN A UN ORIGEN DE DATOS DETERMINADO (CONNECTION) Establece una conexión a un origen de datos determinado. Para nuestro caso crearemos el objeto Connection en un módulo. Haga clic en el menú PROYECTO Luego seleccione con un clic en la opción AGREGAR NUEVO ELEMENTO Se presenta una ventana de dialogo seleccione MODULO y escriba el nombre: MODCONEXION luego clic en el botón AGREGAR. Seguidamente se presentará una ventana en blanco para la codificación del módulo correspondiente. ESCRIBA EL SIGUIENTE CÓDIGO EN EL MODULO: Imports System.Data.SqlClient Module modConexion Public Conexion As SqlConnection = _ New SqlConnection("Data Source=(local); user id=sa; password=; Initial Catalog=ventasM;") End Module Dónde: DATA SOURCE Ó SERVER Inicial Catalog ó NOMBRE DEL SERVIDOR DE BASE DE DATOS. Nombre de la base de datos a la que se va a conectar Database User ID Nombre de usuario de una cuenta registrada en SQL Server Password ó Pwd Contraseña de inicio de sesión para una cuenta de SQL Server P á g i n a | 176 ACCEDER A DATOS DE UNA TABLA – VISUALIZACIÓN Para empezar a trabajar con los objetos Connection, DataAdapter y DataSet deberá agregar un formulario y guardarlo con el nombre de FrmVisualizarArticulo, éste deberá tener la siguiente apariencia: Imports System.Data Imports System.Data.SqlClient Public Class FrmVisualizarArticulo Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos Dim ds As New DataSet 'objeto Conjunto de datos Private Sub FrmVisualizarArticulo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Conexion.Open() ' Creando el Adaptador de datos daArticulo = New SqlDataAdapter("select * from Producto", modConexion.Conexion) ' Cargando datos en el dataset daArticulo.Fill(ds, "Articulo") ' Cerrando la conexión Conexion.Close() ' Enlazando los controles TextBox al campo correspondiente P á g i n a | 177 Me.TextBox1.DataBindings.Add("Text", ds, "Articulo.IdProducto") Me.TextBox2.DataBindings.Add("Text", ds, "Articulo.Nombre") Me.TextBox3.DataBindings.Add("Text", ds, "Articulo.StockActual") Me.TextBox4.DataBindings.Add("Text", ds, "Articulo.PrecioVenta") ' Enlazando el control DataGrid Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "Articulo" Me.DataGridView1.ReadOnly = True ' Mostrando el 1er. registro 'NumRegistro(0) ' Estableciendo el maximo del control TrackBar ' igual al número de registros de la tabla articulos Me.TrackBar1.Maximum = ds.Tables("Articulo").Rows.Count - 1 End Sub Private Sub NumRegistro(ByVal fila As Integer) Dim total As Integer ' Mostrará el registro en una posición que tenga la var. fila Me.BindingContext(ds, "Articulo").Position = fila ' total de registros en la tabla artículos total = ds.Tables("Articulo").Rows.Count Me.lblPosicion.Text = "Articulo: " & Str(fila + 1) & " de " & Str(total) End Sub Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click Dim strDato As String Dim fila As Integer ' Trabjando con un DataView Dim dv As New DataView strDato = InputBox("Ingrese codigo del Artículo: ", "Buscar") dv.Table = ds.Tables("Articulo") dv.Sort = "IdProducto" fila = dv.Find(strDato) If fila = -1 Then MessageBox.Show("Codigo del Artículo no Existe", "Cuidado") Exit Sub End If P á g i n a | 178 NumRegistro(fila) End Sub Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll Try NumRegistro(TrackBar1.Value) Catch ex As System.Exception MessageBox.Show(ex.Message) End Try End Sub End Class MÉTODO 2: UTILIZANDO OBJETOS DATAROW Imports System.Data Imports System.Data.SqlClient ' Esto va la sección declaraciones Public Class FrmVisualizarArticulo Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos Dim ds As New DataSet ' Objeto Conjunto de datos Dim dr As DataRow ' Objeto DataRow Private Sub frmVisCargo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Conexion.Open() ' Creando el Adaptador de datos daArticulo = New SqlDataAdapter("select * from Producto", modConexion.Conexion) ' Cargando datos en el dataset daArticulo.Fill(ds, "Articulo") ' Cerrando la conexión Conexion.Close() ' Enlazando el control DataGrid Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "Articulo" Me.DataGridView1.ReadOnly = True ' Mostrando el 1er. registro P á g i n a | 179 Rows.EventArgs) Handles TrackBar1.Text = dr("StockActual") TextBox4.Exception MessageBox.BindingContext(ds.Text = dr("Nombre") TextBox3.Text = dr("IdProducto") TextBox2. ByVal e As System.Show(ex.Count Me.Message) End Try End Sub Private Sub TrackBar1_Scroll1(ByVal sender As Object.CargarDatos(0) ' Estableciendo el maximo del control TrackBar ' igual al número de registros Me. "Articulo"). ByVal e As System.Text = dr("PrecioVenta") Catch exc As Exception MessageBox.Count .Text = "Articulo: " & Str(fila + 1) & " de " & Str(total) ' Asignando un fila de datos "Registro" al DataRow dr = ds.1 End Sub Private Sub CargarDatos(ByVal fila As Integer) Dim total As Integer Try ' Para mostarar la posicion Me.Scroll Try CargarDatos(TrackBar1.Maximum = ds.Message) End Try End Sub Private Sub btnBuscar_Click1(ByVal sender As Object.lblPosicion.Tables("Articulo").Rows(fila) ' Mostrando los datos desde el datarow TextBox1.Show(exc.Click P á g i n a | 180 .Tables("Articulo").TrackBar1.Rows.Tables("Articulo").Position = fila ' total de registros en la tabla artículos total = ds.Value) Catch ex As System.EventArgs) Handles btnBuscar. Sort = "IdProducto" fila = dv.Find(strDato) If fila = -1 Then MessageBox. "Buscar") dv.Tables("Articulo") dv. "Cuidado") Exit Sub End If CargarDatos(fila) End Sub End Class P á g i n a | 181 .Dim strDato As String Dim fila As Integer ' Trabjando con un DataView Dim dv As New DataView strDato = InputBox("Ingrese codigo del Artículo: ".Table = ds.Show("Codigo del Artículo no Existe". Position + 1 & " de " & cmr.net y diseñar un formulario el cual permitira desplazarnos a traves de los diferentes registros de una tabla determinada. "Nombre") ApellPat. "IdEmpleado") Nombre.Add("Text".Load Dim CN As New SqlConnection(CadConex) Dim DA As New SqlDataAdapter("Select * From EMPLEADO".Add("Text". "Direccion") cmr = Me.PRÁCTICA DESARROLLADA Ingrear a Visual Basic .Text = cmr.BindingContext(dw) End Sub Private Sub cmr_PositionChanged(ByVal sender As Object.DataBindings.PositionChanged lblPosicion. ByVal e As System. "Empleado") dw = Ds. presionar la tecla F7 para ingrear a la ventana de codigo y digitar el siguiente código Public Class desplazamiento 'Inherits System. "Apellidos") ApellMat. dw.DataBindings. ByVal e As System.Integrated Security=True" Private Sub desplazamiento_Load(ByVal sender As System. CN) Dim Ds As New DataSet() DA.Add("Text".Form Private dw As DataView Private WithEvents cmr As CurrencyManager Const CadConex As String = "Data Source=MARTINPC\SQLEXPRESS. dw.DataBindings.EventArgs) Handles MyBase.Initial Catalog=EMPLEADO.Count P á g i n a | 182 .EventArgs) Handles cmr. dw.Tables(0).Add("Text".DataBindings.Object.Forms.Windows. dw.DefaultView Enlazardatos() End Sub Private Sub Enlazardatos() Codigo. Colocar en el cuadro de herramientas y colocar en el formulario los siguientes controles: 4 5 4 1 Labels TextBox Button GroupBox Terminado el diseño.Fill(Ds. Click cmr. ByVal e As System. ByVal e As System.EventArgs) Handles btnUltimo.Click If cmr.Integrated Security=True" P á g i n a | 183 .Click cmr.Position -= 1 End Sub Private Sub btnSgte_Click(ByVal sender As System.EventArgs) Handles BtnSgte.Initial Catalog=bdVentas.net y diseñar un formulario el cual permitira otorgar acceso a un usuario determinado.Object.Object.Position = 0 End Sub Private Sub btnAnterior_Click(ByVal sender As System.EventArgs) Handles btnPrimero. Terminado el diseño.Position > 0 Then cmr..Position += 1 End Sub Private Sub btnUltimo_Click(ByVal sender As System.SqlClient Public Class LoginForm1 'Public strConn As String = "Data Source=.Count Then cmr.Object. ByVal e As System.Count End Sub End Class Ingrear a Visual Basic . presionar la tecla F7 para ingrear a la ventana de codigo y digitar el siguiente código Imports System.End Sub Private Sub btnPrimero_Click(ByVal sender As System.EventArgs) Handles btnAnterior.Position = cmr.Data. ByVal e As System.Object.Position < cmr.Click If cmr. ByVal contr As String) As Boolean Try Dim comando As SqlCommand Cnn = New SqlConnection Cnn.Click ob.Information) UsernameTextBox. "Mensaje".YesNo. ByVal e As System.Object.Text.EventArgs) Handles OK.Nom_Usua. MessageBoxButtons. MessageBoxIcon. MsgBoxStyle.Clear() UsernameTextBox.Click If comprobarUsuario(UsernameTextBox.Show("¿Desea Salir del Sistema?".EventArgs) Handles Cancel.Object.Apell_Usua" P á g i n a | 184 .ConnectionString = My.Settings.Question) If r = 6 Then End End If End Sub Private Function comprobarUsuario(ByVal usua As String.Close() End Sub Private Sub Cancel_Click(ByVal sender As System.Settings Cnn.Public veces As Integer = 0 Public intentos As Integer = 3 Dim Cnn As SqlConnection Public ob As New Menu Dim Dr As SqlDataReader Private Sub OK_Click(ByVal sender As System.Close() Dim r As Integer r = MessageBox.Open() Dim sql As String sql = "SELECT COUNT(*). PasswordTextBox.Text) = False Then veces = veces + 1 If veces < intentos Then MsgBox("Usuario y contraseña incorecto". ByVal e As System.Focus() Exit Sub Else End End If End If Me.Clear() PasswordTextBox.Apell_Usua FROM T_Usuario WHERE Usuario = '" & usua & " ' AND Clave = '" & contr & "' Group By Nom_Usua. CommandText = sql Dr = comando.CreateCommand comando.Read Then nombre = Dr("Nom_Usua") apellido = Dr("Apell_Usua") End If Dr.Message) Catch ex As Exception MsgBox(ex.Message) Finally Cnn.Close() End Try End Function End Class P á g i n a | 185 .ExecuteScalar()) If t = 0 Then Return False End If Return True Catch exx As SqlException MsgBox(exx.Close() Dim t As Integer = CInt(comando.ExecuteReader If Dr.comando = Cnn. Net _______________________________________________________ _______________________________________________________ _______________________________________________________ z. Que es un Mantenedor: ________ _______________________________________________________ _______________________________________________________ y.AUTOEVALUACIÓN UNIDAD 10 Completa los espacios en blanco con la respuesta correcta. x.net _______________________________________________________ _______________________________________________________ P á g i n a | 186 . Qué ventajas ofrece el ADO. Cuál es la importancia del Lenguaje Visual Basic . Para qué sirve un modulo _______________________________________________________ _______________________________________________________ _______________________________________________________ aa. trabajada en sesiones anteriores. un ListBox y tres Labels Mostrar en el ListBox los tipos de cuentas Luego. P á g i n a | 187 . Agregar al Formulario dos DatagridView.UNIDAD ACTIVIDAD DIDÁCTICA 10 Diseñar una aplicación utilizando la Base de Datos BDBancos. listando todos los clientes por tipo de Cuenta seleccionada. pe http://www.edu.pe/cis/ P á g i n a | 188 .ucv.edu.Como resultado mostrando los movimientos realizados por cliente seleccionado cis@ucv. en base a los requerimientos del usuario. Este Software proporciona al alumno las herramientas necesarias para realizar aplicaciones informáticas en diversos medios empresariales. 3. P á g i n a | 189 . óptima.NET 2010 permite la creación de aplicaciones de escritorio que interactúen con el administrador de base de datos SQL 2008 R2 en función al lenguaje TRANSACT SQL empleando Procedimientos Almacenados. Programación Tres Capas.UNIDAD 11 GUIA DIDACTICA Fundamentación La finalidad de esta unidad está orientado a que el alumno frente a una determinada situación informática. vistas y consultas. mejorar la productividad del desempeño profesional que responda a las exigencias del entorno Capacidad El participante al final de esta unidad estará en capacidad de: Proporcionar los conocimientos y prácticas necesarias para afrontar situaciones en los cuales se requiere el análisis del alumno para dar una solución acorde con el problema. Manejo del Lenguaje Transact SQL. Proporcionar conocimientos necesarios para afrontar casos de programación con alto grado de dificultad. Con el lenguaje Visual Basic. Visualización de los datos de una tabla en el formulario mediante controles TextBox. Visualización de los datos de una tabla en el formulario mediante un DataGridView. De esta manera. utilizando para ello el administrador de datos SQL Server 2008 r2. analice y desarrolle una solución sólida. CONTENIDO PROYECTO ESTANDAR PARA TABLAS 1. 2. P á g i n a | 190 . se empleará como medio de comunicación entre el docente y los estudiantes. Emplea Propiedades y variables Manejo de Controles. NOTA: Recuerde que el Aula Virtual de la UCV. Actividades a Desarrollar en la Unidad.NET Diseño de formularios. Estrategias Metodológicas Para desarrollar la presente unidad llevaremos a cabo dos tipos de actividades: 17. 18.Actividades La actividades a desarrollar en la Unidad son Manejo de Controles y entorno Visual Basic . Si se presenta alguna Duda se puede realizar lecturas sobre puntos específicos en la sección de Material Complementario. Control de errores. se encuentran en el apartado de Actividades. la realizaremos de manera ordenada. presenta los aspectos teóricos. Lectura Inicial de Contenidos. donde constan: las consignas o indicaciones. acciones de tutoría académica y comunicación de resultados de evaluación de los aprendizajes. foros. Identifica de eventos. evaluaciones virtuales. para efectos de mensajería interna. Recuerde que será calificado de acuerdo a las rúbricas de evaluación de cada actividad.100%29.com/es-es/library/k3bb4tfd%28v=vs.edu.microsoft.. etc. ya sea para informar de dificultades. Material Complementario El material complementario se suministra con la finalidad de ampliar la lectura de algunos textos y profundizar conocimientos.edu. Es importante que Ud.pe http://www.Net 2010.ucv. cis@ucv. 22. avances de las tareas. este en constante comunicación con su docente Tutor. Desarrollar un caso práctico de conexión de una Base de Datos con el Lenguaje de Programación Visual Basic .aspx Tutorial Visual Basic Net 2010. será evaluado en: 21. http://msdn.pe/cis/ P á g i n a | 191 . por ejemplo: se le evaluará por la entrega oportuna de sus actividades.Evaluación En esta Unidad Ud. Diseñar su aplicación de acuerdo al caso propuesto y mostrar los datos de las tablas creadas en la Base de Datos.. UNIDAD PROYECTO ESTANDAR PARA TABLAS 11 PROYECTO ESTANDAR PARA TABLAS 1. P á g i n a | 192 . Visualización de los datos de una tabla en el formulario mediante un DataGridView. Programación Tres Capas. 3. 2. Visualización de los datos de una tabla en el formulario mediante controles TextBox. donde aprenderá los fundamentos necesarios para la creación de Aplicaciones de Escritorio. Importante: ! Si deseas ahondar más sobre las nuevas características de Microsoft Visual Basic: Net 2010. utilizando las herramientas como el Manejador de Base de Datos SQL Server 2008 r2 y el Lenguaje de Programación Visual Basic .Net 2010 Te deseamos éxitos en el desarrollo de esta Unidad. podrás encontrar material adicional en la sección: Material Complementario. P á g i n a | 193 . enlazadas con una base de datos.Introducción Estimado participante: En esta oportunidad le damos la bienvenida a esta nueva unidad de aprendizaje. Presentación Negocio datos Así que la capa de datos es la que tiene la interacción con el manejador de bases de datos . esto tiene cierta jerarquía de acuerdo al nivel de acceso. 2. Plantilla: Aplicación de Windows. P á g i n a | 194 .1 PROGRAMACIÓN TRES CAPAS. Luego escriba el nombre de la aplicación: SISVENTAS 4. en donde la capa superior que es la interfaz grafica del programa en si. Tipo de Proyecto: Visual Basic. a continuación nos mostrará la siguiente ventana: Considere lo siguiente: 1. Hacer clic en el botón Aceptar para crear el proyecto. luego en Nuevo Proyecto (ó pulse las telas CTRL + N). no accede directamente a los datos como normalmente se utiliza el acceso a datos mediante el namespace SqlClient. La programación en 3 capas es una metodología de programación en la cual establecemos niveles de acceso y distribuimos las aéreas de nuestra aplicación para acceder a bases de datos. la capa de negocio es la que establece como se va a acceder a esos datos. sino que hay una capa intermedia entre el acceso a datos que es la que realiza la negociación entre la presentación del programa y los datos. Especifique la carpeta donde se guardará el proyecto (ésta deberá ser una carpeta creada por usted. use el botón Examinar para localizar su carpeta personal) 5. y la capa de presentación muestra los datos en los diversos formularios para su interacción con el usuario que administre los mismos. 3. CREACIÓN DE UNA NUEVA SOLUCIÓN Deberá ir al Menú Archivo. Haga clic en el menú PROYECTO Luego seleccione con un clic en la opción AGREGAR NUEVO ELEMENTO Se presenta una ventana de dialogo seleccione MODULO y escriba el nombre: MODCONEXION luego clic en el botón AGREGAR.SUGERENCIA: Una vez creado nuestro proyecto SISVENTAS. ESTABLECER LA CONEXIÓN A UN ORIGEN DE DATOS DETERMINADO (CONNECTION) Establece una conexión a un origen de datos determinado. se sugiere crear carpetas para guardar los diferentes elementos del sistema de forma ordenada. para ello siga los siguientes pasos en el Explorador de Soluciones. Para nuestro caso crearemos el objeto Connection en un módulo. P á g i n a | 195 . Nombre de la base de datos a la que se va a conectar Database User ID Password ó Pwd Nombre de usuario de una cuenta registrada en SQL Server Contraseña de inicio de sesión para una cuenta de SQL Server P á g i n a | 196 .SqlClient Module modConexion Public Conexion As SqlConnection = _ New SqlConnection("Data Source=(local). Initial Catalog=ventasM. ESCRIBA EL SIGUIENTE CÓDIGO EN EL MODULO: Imports System. password=. Seguidamente se presentará una ventana en blanco para la codificación del modulo correspondiente.Data. user id=sa.") End Module Donde: DATA SOURCE Ó SERVER Inicial Catalog ó NOMBRE DEL SERVIDOR DE BASE DE DATOS. El control DataGridView proporciona una forma eficaz y flexible de mostrar datos en formato de tabla. DataAdapter y DataSet deberá agregar un formulario y guardarlo con el nombre de FrmVisualizarArticulo. Puede utilizar el control DataGridView para mostrar vistas de sólo lectura de una cantidad pequeña de datos o puede ajustar su tamaño para mostrar vistas modificables de conjuntos muy grandes de datos. Personalizar un DataGridView ACCEDER A DATOS DE UNA TABLA – VISUALIZACIÓN Para empezar a trabajar con los objetos Connection.2 VISUALIZACIÓN DE LOS DATOS DE UNA TABLA EN EL FORMULARIO MEDIANTE UN DATAGRIDVIEW. éste deberá tener la siguiente apariencia: P á g i n a | 197 . SqlClient Public Class FrmVisualizarArticulo Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos Dim ds As New DataSet 'objeto Conjunto de datos Private Sub FrmVisualizarArticulo_Load(ByVal sender As System.Load Conexion.Tables("Articulo").Add("Text".StockActual") Me.BindingContext(ds. "Articulo.TextBox4. fila Me.Maximum = ds.DataBindings.Count .Open() ' Creando el Adaptador de datos daArticulo = New SqlDataAdapter("select * from Producto".DataBindings. ds. "Articulo") ' Cerrando la conexión Conexion.Data.1 End Sub Private Sub NumRegistro(ByVal fila As Integer) Dim total As Integer ' Mostrará el registro en una posición que tenga la var. "Articulo").Add("Text".ReadOnly = True ' Mostrando el 1er.Conexion) ' Cargando datos en el dataset daArticulo. ds.Add("Text".DataGridView1.Position = fila ' total de registros en la tabla artículos total = ds. ByVal e As System.Rows.DataGridView1.DataBindings. ds.Imports System.DataGridView1. ds.EventArgs) Handles MyBase.TextBox2.PrecioVenta") ' Enlazando el control DataGrid Me.Data Imports System. registro 'NumRegistro(0) ' Estableciendo el maximo del control TrackBar ' igual al número de registros de la tabla articulos Me.Count P á g i n a | 198 .DataMember = "Articulo" Me.Rows. "Articulo.IdProducto") Me.TextBox1.Tables("Articulo").DataBindings.Close() ' Enlazando los controles TextBox al campo correspondiente Me.Add("Text".DataSource = ds Me.TextBox3.TrackBar1.Fill(ds. modConexion. "Articulo.Nombre") Me. "Articulo.Object. lblPosicion.Table = ds.Show(ex.Show("Codigo del Artículo no Existe". ByVal e As System.Message) End Try End Sub End Class MÉTODO 2: UTILIZANDO OBJETOS DATAROW Imports System.Data.EventArgs) Handles btnBuscar.Exception MessageBox. ByVal e As System.SqlClient ' Esto va la sección declaraciones Public Class FrmVisualizarArticulo Dim daArticulo As SqlDataAdapter 'objeto Adaptador de datos Dim ds As New DataSet ' Objeto Conjunto de datos P á g i n a | 199 .Tables("Articulo") dv.Object.Text = "Articulo: " & Str(fila + 1) & " de " & Str(total) End Sub Private Sub btnBuscar_Click(ByVal sender As System.Value) Catch ex As System.Data Imports System.Click Dim strDato As String Dim fila As Integer ' Trabjando con un DataView Dim dv As New DataView strDato = InputBox("Ingrese codigo del Artículo: ". "Cuidado") Exit Sub End If NumRegistro(fila) End Sub Private Sub TrackBar1_Scroll(ByVal sender As System.EventArgs) Handles TrackBar1.Object.Find(strDato) If fila = -1 Then MessageBox.Me.Sort = "IdProducto" fila = dv.Scroll Try NumRegistro(TrackBar1. "Buscar") dv. modConexion. ByVal e As System.Position = fila ' total de registros en la tabla artículos total = ds.Tables("Articulo").Maximum = ds.Open() ' Creando el Adaptador de datos daArticulo = New SqlDataAdapter("select * from Producto". "Articulo") ' Cerrando la conexión Conexion.Rows(fila) ' Mostrando los datos desde el datarow TextBox1.Tables("Articulo").Rows.ReadOnly = True ' Mostrando el 1er.Tables("Articulo").DataGridView1.BindingContext(ds.Text = "Articulo: " & Str(fila + 1) & " de " & Str(total) ' Asignando un fila de datos "Registro" al DataRow dr = ds.Fill(ds.Text = dr("PrecioVenta") P á g i n a | 200 .1 End Sub Private Sub CargarDatos(ByVal fila As Integer) Dim total As Integer Try ' Para mostarar la posicion Me.Count Me.DataSource = ds Me.Load Conexion.DataMember = "Articulo" Me.Close() ' Enlazando el control DataGrid Me.DataGridView1.Text = dr("Nombre") TextBox3.lblPosicion.DataGridView1.Text = dr("StockActual") TextBox4.Object.TrackBar1.Text = dr("IdProducto") TextBox2. "Articulo").Conexion) ' Cargando datos en el dataset daArticulo.Count .Rows. registro CargarDatos(0) ' Estableciendo el maximo del control TrackBar ' igual al número de registros Me.EventArgs) Handles MyBase.Dim dr As DataRow ' Objeto DataRow Private Sub frmVisCargo_Load(ByVal sender As System. Click Dim strDato As String Dim fila As Integer ' Trabjando con un DataView Dim dv As New DataView strDato = InputBox("Ingrese codigo del Artículo: ".Find(strDato) If fila = -1 Then MessageBox.Exception MessageBox.Value) Catch ex As System.Tables("Articulo") dv.Table = ds.Message) End Try End Sub Private Sub TrackBar1_Scroll1(ByVal sender As Object. ByVal e As System.EventArgs) Handles btnBuscar.Catch exc As Exception MessageBox.Show("Codigo del Artículo no Existe".Sort = "IdProducto" fila = dv. ByVal e As System.Show(ex.Show(exc.Message) End Try End Sub Private Sub btnBuscar_Click1(ByVal sender As Object. "Buscar") dv.Scroll Try CargarDatos(TrackBar1. "Cuidado") Exit Sub End If CargarDatos(fila) End Sub End Class P á g i n a | 201 .EventArgs) Handles TrackBar1. DataBindings.Tables(0). Colocar en el cuadro de herramientas y colocar en el formulario los siguientes controles: 4 5 4 1 Labels TextBox Button GroupBox Terminado el diseño. CN) Dim Ds As New DataSet() DA.Add("Text". dw.EventArgs) Handles MyBase.DataBindings.Add("Text".DataBindings.Load Dim CN As New SqlConnection(CadConex) Dim DA As New SqlDataAdapter("Select * From EMPLEADO".Text = cmr.PRÁCTICA DESARROLLADA Ingrear a Visual Basic .Integrated Security=True" Private Sub desplazamiento_Load(ByVal sender As System.Add("Text". dw.DefaultView Enlazardatos() End Sub Private Sub Enlazardatos() Codigo.Windows. "IdEmpleado") Nombre.EventArgs) Handles cmr. dw.DataBindings.Position + 1 & " de " & cmr.PositionChanged lblPosicion. "Apellidos") ApellMat. dw. ByVal e As System. presionar la tecla F7 para ingrear a la ventana de codigo y digitar el siguiente código Public Class desplazamiento 'Inherits System.Object.Add("Text". "Empleado") dw = Ds. ByVal e As System.Initial Catalog=EMPLEADO. "Nombre") ApellPat.Count P á g i n a | 202 .BindingContext(dw) End Sub Private Sub cmr_PositionChanged(ByVal sender As Object.Forms.net y diseñar un formulario el cual permitira desplazarnos a traves de los diferentes registros de una tabla determinada.Fill(Ds.Form Private dw As DataView Private WithEvents cmr As CurrencyManager Const CadConex As String = "Data Source=MARTINPC\SQLEXPRESS. "Direccion") cmr = Me. ByVal e As System..Integrated Security=True" P á g i n a | 203 .Data.Object.Position = 0 End Sub Private Sub btnAnterior_Click(ByVal sender As System.Click If cmr.Object.Click cmr.Count Then cmr. ByVal e As System.Position = cmr. ByVal e As System.Object.End Sub Private Sub btnPrimero_Click(ByVal sender As System.Initial Catalog=bdVentas.Position < cmr.Count End Sub End Class Ingrear a Visual Basic .Click cmr.Position += 1 End Sub Private Sub btnUltimo_Click(ByVal sender As System.EventArgs) Handles btnAnterior.EventArgs) Handles BtnSgte.Position > 0 Then cmr. Terminado el diseño.Position -= 1 End Sub Private Sub btnSgte_Click(ByVal sender As System.EventArgs) Handles btnUltimo.EventArgs) Handles btnPrimero.SqlClient Public Class LoginForm1 'Public strConn As String = "Data Source=. ByVal e As System. presionar la tecla F7 para ingrear a la ventana de codigo y digitar el siguiente código Imports System.Object.Click If cmr.net y diseñar un formulario el cual permitira otorgar acceso a un usuario determinado. YesNo.Object.Show("¿Desea Salir del Sistema?".Question) If r = 6 Then End End If End Sub Private Function comprobarUsuario(ByVal usua As String.Read Then nombre = Dr("Nom_Usua") apellido = Dr("Apell_Usua") End If P á g i n a | 204 .Close() Dim r As Integer r = MessageBox.Clear() UsernameTextBox.Click ob.Apell_Usua FROM T_Usuario WHERE Usuario = '" & usua & " ' AND Clave = '" & contr & "' Group By Nom_Usua. "Mensaje".Text.Close() End Sub Private Sub Cancel_Click(ByVal sender As System.ExecuteReader If Dr.Text) = False Then veces = veces + 1 If veces < intentos Then MsgBox("Usuario y contraseña incorecto".Settings.Click If comprobarUsuario(UsernameTextBox.Clear() PasswordTextBox.EventArgs) Handles OK.Information) UsernameTextBox. MsgBoxStyle. PasswordTextBox. ByVal e As System.Apell_Usua" comando = Cnn.Open() Dim sql As String sql = "SELECT COUNT(*). MessageBoxButtons.Public veces As Integer = 0 Public intentos As Integer = 3 Dim Cnn As SqlConnection Public ob As New Menu Dim Dr As SqlDataReader Private Sub OK_Click(ByVal sender As System.Focus() Exit Sub Else End End If End If Me.Settings Cnn.CreateCommand comando.ConnectionString = My. MessageBoxIcon. ByVal e As System. ByVal contr As String) As Boolean Try Dim comando As SqlCommand Cnn = New SqlConnection Cnn.CommandText = sql Dr = comando.Object.Nom_Usua.EventArgs) Handles Cancel. ExecuteScalar()) If t = 0 Then Return False End If Return True Catch exx As SqlException MsgBox(exx.Close() Dim t As Integer = CInt(comando.Close() End Try End Function End Class P á g i n a | 205 .Dr.Message) Catch ex As Exception MsgBox(ex.Message) Finally Cnn. Net _______________________________________________________ _______________________________________________________ _______________________________________________________ dd. bb. Que es un Mantenedor: ________ _______________________________________________________ _______________________________________________________ cc.net _______________________________________________________ _______________________________________________________ P á g i n a | 206 . Cuál es la importancia del Lenguaje Visual Basic .AUTOEVALUACIÓN UNIDAD 11 Completa los espacios en blanco con la respuesta correcta. Para qué sirve un modulo _______________________________________________________ _______________________________________________________ _______________________________________________________ ee. Qué ventajas ofrece el ADO. un ListBox y tres Labels Mostrar en el ListBox los tipos de cuentas Luego. P á g i n a | 207 . Agregar al Formulario dos DatagridView. listando todos los clientes por tipo de Cuenta seleccionada. trabajada en sesiones anteriores.UNIDAD ACTIVIDAD DIDÁCTICA 11 Diseñar una aplicación utilizando la Base de Datos BDBancos. Como resultado mostrando los movimiento realizados por cliente seleccionado
[email protected]/cis/ P á g i n a | 208 .edu.edu.pe http://www.ucv. TALLER DE UNIDAD II Y EXAMEN FINAL 12 P á g i n a | 209 .