UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2012 GUIA DE LABORATORIO Nº 1 Nombre de la practica: Introducción al entorno de desarrollo de SQL Server 2008 Lugar de ejecución: Laboratorio de Informática Tiempo estimado: 3 horas Materia: Base de datos I Docentes: Ing. René Tejada, Inga. Blanca Iris Cañas, Inga. Evelyn Hernández I. Objetivos Que los estudiantes se familiaricen con la interfaz gráfica de SQL Server 2008 R2 Que los estudiantes conozcan la forma de crear bases de datos y tablas con el Management Studio. II. Introducción Teórica En la presente guía examinaremos cómo utilizar la consola de SQL Management para crear nuestras propias tablas. Los Sistemas Gestores de Bases de Datos Relacionales (RDBMS) avanzados no solo guardan los datos; también los administran, restringiendo el tipo de datos que se puedan incluir en el sistema y también facilitando la obtención de datos que se encuentran fuera del sistema. Un RDBMS permite ir más allá del almacenamiento de datos hasta el campo de la definición, la apariencia que deben tener dichos datos o las reglas del negocio de los mismos. Con un RDBMS se pueden incorporar dichas reglas directamente en la integridad de la propia base de datos. Visión general de los objetos de una base de datos. SQL Server posee muchos objetos, entre los más importantes se pueden listar los siguientes: La Base de datos. El registro de las transacciones. Las tablas. Los grupos de archivos. Los diagramas. Las vistas. Los procedimientos almacenados. Los desencadenadores. Los índices y las llaves primarias. Las funciones definidas por el usuario. Los informes. Los catálogos de texto. Los tipos de datos definidos por el usuario. Las funciones de base de datos. Los usuarios. La base de datos es el objeto de nivel más alto al que se puede hacer referencia en cualquier versión de SQL Server. 1 Por regla general, una base de datos es un grupo que incluye al menos, un conjunto de objetos tablas, y con frecuencia, otros objetos, como procedimientos almacenados, desencadenadores, y vistas que pertenecen a una agrupación determinada de datos guardados en las tablas de la base de datos. Un RDBMS, como SQL Server, puede tener múltiples bases de datos de usuario en un solo servidor o puede tener una sola base de datos. La cantidad que resida en un solo SQL Server dependerá de factores como la capacidad (potencia de la CPU, limitaciones E/S del disco, memoria, etc.), la autonomía (una persona tiene derechos de administración para el servidor en el que se esta ejecutando el sistema y otra persona tiene derechos de administración para un servidor diferente) o simplemente de cuántas base de datos tenga su empresa o su cliente. La primera vez que cargue SQL Server, tendrá cuatro bases de datos del sistema: · master · model · msdb · tempdb La base de datos master Todos los SQL Server, independientemente de su versión o de sus modificaciones personalizadas, tienen la base de datos master. Esta base de datos contiene un conjunto especial de tablas (tablas del sistema) que registran el sistema como un todo. Todos los procedimientos extendidos y almacenados del sistema, independientemente de la base de datos para la que se haya diseñado su uso, se guardan en esta base de datos. Evidentemente, como casi todo lo que describe nuestro servidor se guarda aquí; esta base es muy importante para el sistema y no se puede eliminar. Un nombre totalmente calificado tiene la siguiente estructura: [Nombre del servidor. [Nombre de base de datos. [Nombre de esquema.]]] Nombre de objeto Se tiene que proporcionar un nombre de objeto siempre que se ejecute una operación sobre ese objeto, los nombres de los elementos que se encuentran a la izquierda del objeto son opcionales; la mayoría de veces no se especifican. Nombre del ESQUEMA (Conocido como propiedad): Es importante especificar el esquema en el que se encuentra el objeto con el que se está trabajando. Cabe destacar que se pueden tener dos objetos con nombres idénticos pero; que se encuentran en esquemas diferentes. En el caso de que sea necesario acceder a un objeto que no se encuentre en el esquema predeterminado (el que se establece en el inicio de sesión) tendrá que establecer específicamente el nombre del esquema del objeto. En el caso de que se utilicen las opciones de esquema, se recomienda que utilice una denominación combinada de dos partes (esquema y nombre de la tabla) en todas las consultas. En SQL Server 2008, los objetos se asignan a un esquema mientras que; un propietario se relaciona a un inicio de sesión particular. Es importante hacer notar que, un esquema se puede compartir entre múltiples inicios de sesión y, un inicio de sesión puede tener derechos para múltiples esquemas. De forma predeterminada, sólo los usuarios que son miembros de la función del sistema sysadmin o de las funciones de bases de datos db_owner o db_ddladmin, pueden crear objetos en una base de datos. Las funciones que se mencionan en la guía, son solo algunas de las muchas funciones del sistema y de bases de datos disponibles en SQL Server 2008. Éstas poseen un conjunto lógico de permisos concedidos según se tenga que utilizar la función. Al asignar una función determinada a un usuario, se le está proporcionando a dicho usuario la capacidad de tener todos los permisos que tiene la función. 2 Los usuarios individuales pueden tener privilegios para crear tipos de objetos de base de datos y del sistema. Si dichos individuos crean un objeto, de forma predeterminada, dicho objeto se asignará a cualquier esquema que aparezca como predeterminado para ese inicio de sesión. Se recomienda mantener el acceso a CREATE limitado a la cuenta SA y los miembros de las funciones de seguridad sysadmin o db_ownwer. No es recomendable asignarle a todos los usuarios permisos de CREATE. El Esquema predeterminado dbo: El usuario que crea la base de datos se considera el “Propietario de la base de datos” o “dbo”. Cualquier objeto creado dentro de dicha base de datos aparecerá listado con un esquema dbo en lugar de con su nombre de usuario individual. Por ejemplo, para un usuario diario de una base de datos, el nombre de inicio de sesión es EsquemaUDB y se han concedido privilegios para utilizar CREATE TABLE en una determinada base de datos. Si se crease una tabla denominada MiTabla, el nombre del objeto calificado del propietario sería EsquemaUDB.MiTabla. Sin embargo, tenga en cuenta que como la tabla tiene a EsquemaUDB como propietario específico; ningún otro usuario de EsquemaUDB.MiTabla tendría que proporcionar el nombre calificado del propietario para que SQL Server resolviese el nombre de la tabla. Ahora suponga que existe otro usuario con un nombre de inicio de sesión de Administrador, él es el propietario de la base de datos (en lugar de sólo un miembro de db_owner). Si Administrador crea una tabla denominada MiTabla utilizando una instrucción CREATE idéntica a la utilizada por EsquemaUDB, el nombre de la tabla cualificado del propietario sería dbo.MiTabla. Asimismo, como dbo también es él propietario predeterminado, cualquier usuario sólo podrá hacer referencia a la tabla MiTabla. El nombre de la base de datos El siguiente elemento en el convenio de denominación totalmente calificada es el nombre de la base de datos. Algunas veces desearemos recuperar datos de una base de datos distinta a la predeterminada o a la actual. De hecho, puede que deseemos unir datos de distintas bases de datos con la cláusula JOIN (será vista más adelante). Un nombre de base de datos calificado nos proporciona dicha capacidad. Por ejemplo, si se estuviese conectado a la base de datos AdventureWorks como base de datos actual y desease hacer referencia a la tabla Orders de la base de datos Northwind, podría hacerlo utilizando Northwind.dbo.Orders. Como dbo es el esquema predeterminado, también podría utilizar Northwind..Orders. Si un esquema denominado MiEsquema es propietario de una tabla denominada MiTabla en MiBasedeDatos, entonces podría hacer referencia a dicha tabla utilizando MiBasedeDatos.MiEsquema.MiTabla. Recuerde que la base de datos actual (tal como se determine con el comando USE o en el cuadro de lista desplegable de la consola de administración de SQL Server) es siempre la predeterminada, por lo que si desea sólo datos de la base de datos actual, no tendrá que incluir el nombre de la misma en el nombre totalmente calificado. III. Requerimientos • Guía Número 2 IV. Procedimiento 1. Cargue Sql Server 2008 R2: Iniciando sesión desde SQL Server Managment Studio 3 a. Hacer clic en el botón Inicio b. Hacer clic en la opción Todos los programas y hacer clic en Microsoft SQL Server 2008 R2 c. Cargue SQL Server 2008 R2. Para conectarse con el servidor de base de datos elija los siguientes parámetros de autenticación: Tipo de servidor: Database Engine Nombre del servidor: SALA02-PCNumMaquina Nota: NumMaquina es el numero de maquina local Autenticación: SQL Server Authentication Login: sa Password: 123456 2. Luego de clic en el botón conectar (connect). 4 3. Cargará la ventana del SQL Server Managment Studio. B A C E D Descripción del entorno de desarrollo: A. Barra de herramientas del IDE del SQL Server Managment Studio: Con esta herramienta el usuario puede crear nuevas consultas, cargar el Analysis Services, abrir archivos ya existentes, guardar el archivo actual, Imprimir el trabajo actual, cargar el analizador de recursos. B. La barra de menú se encuentra diseñada de la misma forma en la que vienen todos los programas que trabajan con los sistemas operativos de Microsoft, es decir; que por medio de ella se puede guardar, abrir, cerrar archivos y proyectos, copiar, cortar y mover objetos, texto, crear nuevas consultas, proyectos, depurar código, entre otros. C. El explorador de objetos es una herramienta que permite la administración de la estructura de nuestras bases de datos, sus componentes y servicios. D. El editor de consultas es una herramienta que facilita la escritura y edición de código SQL que permite la definición de datos y la manipulación de los mismos. E. La ventana de propiedades es una herramienta que muestra los valores de las propiedades de los diferentes objetos de las bases de datos que se encuentran cargadas en el sistema. 4. A continuación se procederá a crear una base de datos con el Management Studio. En el explorador de objetos damos clic derecho sobre la ficha Base de Datos y seleccionamos Nueva Base de Datos. 5 Se abrirá el cuadro de diálogo Nueva base de datos que le permitirá escribir la información sobre cómo desea que se cree su base de datos. Primero debemos incluir la información sobre el nombre y el tamaño de la base de datos. A continuación se encuentra la información sobre el nombre del archivo, el tamaño y el crecimiento. Asignamos el nombre de contabilidad a la base de datos y damos clic en el botón de Agregar. Note que la herramienta muestra la información correspondiente al tamaño del archivo de la base de datos y a su tasa de crecimiento. 6 Después de de haber hecho clic en Aceptar. Tras una breve pausa, se creará la base de datos y podrá verla agregada al árbol de Base de datos del explorador de objetos. 5. Para agregar una nueva tabla, tiene que dar clic derecho sobre la carpeta tablas y seleccionar la opción Nueva tabla…. En el editor de consultas habrá que digitar el nombre del campo, el tipo de datos y seleccionar si el campo va a permitir valores nulos. Al finalizar dar clic en el icono de Disquete para guardar. 7 6. Proceda a realizar el siguiente ejercicio: Se creará una base de datos para llevar el control de los contactos de una empresa con la idea de ir determinando las llamadas que este contacto realiza a la empresa. Dicha información se controlara en 3 tablas. Las tablas a crear son: - Contactos: Almacena la información de los contactos. TipoContacto: Almacena la información de los tipos de contactos. Llamadas: Aquí se almacena las llamadas que hacen los contactos. Pasos para la creación de la base de datos a. Haga clic derecho sobre la carpeta Base de Datos que aparece en el Explorador de objetos, aparecerá un menú emergente del cual seleccionara la opción nueva base de datos, y se desplegará una nueva ventana donde especificaremos el nombre de la base de datos a crear , el nombre de la base de datos será CONTACTOS#CARNET (EJEMPLO: CONTACTOSHJ071234). b. Luego en la sección Archivos de la base de datos, en la columna Tamaño Inicial se especifica el tamaño que tendrá la base de datos y el log de transacciones. El tamaño inicial para la Base de datos será de 10 MB y par el Log 10 MB. c. Haga clic en Aceptar y se creara la base con todas las especificaciones dadas en el paso anterior, ahora haga clic derecho nuevamente en el explorador de objetos y seleccione actualizar para que pueda ver la base que ha sido creada. Creación de tablas. Se crearán las necesarias para llevar el control. Especificaciones: Tabla contactos 8 Nombre del campo IdContacto Nombres Apellidos Dirección Ciudad País NombreCompañía Cargo TeléfonoTrabajo TeléfonoMovil CorreoElectrónico IdTipoContacto Tipo de dato int Varchar Varchar Varchar Varchar Varchar Varchar Varchar Char Char Varchar int Tamaño Propiedad int Identity 30 30 60 25 25 30 30 8 8 40 a. En el explorador de objetos expanda la carpeta base de datos y seleccione la base que se creó en el paso anterior, expanda la base de datos y seleccione la carpeta de Tablas, haga clic derecho sobre ella y seleccione del menú emergente Nueva Tabla…, y aparecerá el editor para crear la tabla donde especificaremos el nombre de la columna, el tipo de datos, permitir valores nulos. b. Agregar la propiedad Identity al campo IdContacto: a. Hacer clic sobre el campo IdContacto b. En la opción de Propiedad de la columna seleccione la opción Identity Specification c. Hacer clic sobre el símbolo + y seleccione la opción Is Identity, y cambie su valor de No a Yes c. Una vez especificados toda la estructura de la tabla hacer clic en guardar y especificar el nombre de la tabla que será: Contactos 9 d. Ingresar registros a la tabla. Una vez que las tablas han sido creadas se procederá a ingresar la información en cada una de ellas. Paso a seguir para la inserción de información en las tablas. a. Seleccione la tabla en la cual se desee ingresar información, luego hacer clic derecho sobre ella y seleccionar del menú emergente Edit Top 200 Rows, Seguidamente se mostrará un nuevo editor, que por su apariencia se podría comparar con una hoja electrónica (Filas y Columnas) donde en la parte superior están los nombres de los campos, y en la otra área se podrán agregar los registros a la tabla NOTA: Para los campos definidos como Identity no es necesario especificar un número el se asigna Automáticamente. b. Si desea ubicarse en el siguiente campo solo presione Enter o la tecla Tab y de esa forma se irá desplazando hacia los siguientes campos. c. Adicione 5 registros a la tabla. d. Luego hacer clic en guardar para que queden guardados los registros. Modificar registros de una tabla. Paso a seguir para modificar la información en las tablas. a. Hacer clic derecho sobre la tabla en donde se desee modificar los registros y seleccionar Edit Top 200 Rows. b. Modifique el contenido de un registro solamente, busque el registro y el dato a modificar coloque el cursor en dicha celda y borre y escriba el nuevo contenido. c. Guarde el cambio cierre la tabla y vuelva abrirla para que verifique que realmente se ha efectuado la modificación. Eliminar un registro. a. Para borrar un registro, selecciónelo haciendo clic sobre su selector de fila a continuación elija Eliminar registro del menú Edición, o haga clic con el botón derecho sobre el registro que desea eliminar y seleccione del menú emergente la opción de eliminar. b. Haga la prueba eliminando uno de los registros que ingreso anteriormente. Crear una llave primaria a. Haga clic derecho sobre el campo IdContacto y seleccione la opción Set Primary Key b. Y el campo seleccionado aparecerá un icono igual al de una llave Tabla TipoContacto Nombre del campo Tipo de dato Tamaño Restricción IdTipoContacto Int Llave Primaria Nombre_Tipo Varchar 25 10 Tabla Llamadas Nombre del campo IdLlamada Duración IdContacto Tipo de dato Tamaño Restricción Int Llave Primaria Decimal (18, 0) int Crear relación entre tablas a. En la carpeta Database Diagrams haga clic derecho New Database Diagram b. En el cuadro de dialogo hacer clic en la opción Yes c. En la ventana Add Table haga clic en Add hasta que las tres tablas se hayan agregado d. Y aparece la siguiente ventana con las tres tablas agregadas e. Hacer clic sobre el campo IdContacto de la tabla Contactos y arrastrar el campo hasta la tabla Llamadas y se abrirá la siguiente ventana: 11 f. Revise que los nombres de las tablas y los nombres de los campos sean correctos y haga clic en Ok, y haga clic en Ok en la siguiente ventana activa. g. Ahora seleccione el campo IdTipoContacto de la tabla TipoContacto y arrástrelo hasta la tabla Contactos, revise las tablas y los campos como se ve a continuación: h. Al final le quedara el siguiente diagrama: 12 V. Análisis de resultados Para la próxima semana entregar en pareja la siguiente investigación: a. Crear una base de datos con tres tablas: una para llevar los datos del alumno, otra para llevar los datos del profesor y otra que contenga las materias que se imparten en Ingeniería (Nombre de materia, código, unidades valorativas). Después modifique el tamaño de la base de datos, para que ahora mida 15MB. b. Cree una nueva base de datos la cual tendrá el nombre el número de su carnet solamente. El tamaño inicial para la base de datos será de 5 MB y el de el log de transacciones de 3 MB. c. Luego cree las siguientes tablas: TABLA: CLIENTE Campo Numcli Nomcli Dircli Fax Correo_E_Mail Sald_0_30 Sald_31_60 Sald_61_90 Tipo de Dato Int Char Char Int Char Decimal Decimal Decimal Longitud Valores Not Null 30 Not Null 30 Restricción Llave Primaria Tipo de Dato Int Char Char Char Int Char Decimal Decimal Longitud Valores Restricción Not Null Llave Primaria 20 Not Null 20 Not Null 30 30 (10,2) (10,2) (10,2) TABLA: VENDEDOR Campo Numvend Nomvend Apellvend Dirvend Telvend E-Mail Cuota Ventas 30 (10,2) (10,2) TABLA: ARTICULO Campo Numart Descripcion Precio Existencia Categoria_Art Tipo de Dato Char Char Decimal Int Char Longitud Valores Restricción 4 Not Null Llave Primaria 30 (10,2) Not Null 30 13 TABLA: PEDIDO Campo Numped Numcli Numvend Fecha_Ped Total_desc Tipo de Dato Longitud Valores Restricción Int Not Null Llave Primaria Int Not Null Int Not Null Datetime Decimal (10,2) TABLA: DETALLE PEDIDO Campo Numped Numart Cantidad Tipo de Dato Longitud Valores Int Not Null Char 4 Not Null Int d. Agregar por lo menos 3 registros para cada tabla e. Crear el diagrama de la base de datos y relacione las siguientes tablas: El campo NumCli de la tabla Cliente con el campo NumCli de la tabla Pedido El camp Numart de la tabla Articulo con el campo Numart de la tabla Detalle Pedido El campo Numvend de la tabla Vendedor con el campo Numvend de la tabla Pedido El campo Numped de la tabla Pedido con el campo Numped de la tabla Detalle Pedido VI. Referencia Bibliográfica Microsoft SQL Server 2008, Guía Práctica, Francisco Charte Ojeda; Anaya Multimedia. 14