SQL SQL Server Dise Diserrtan tante: te: Ariel iel Pasi Pasin ni
Curso de SQL Server Apunte Técnico Ariel C. Pasini
SQL Server - Ariel C. Pasini
Capítulo Uno ................. ......................... ................. .................. .................. ................. ................. .................. .................. ................. ................. ..................4 .........4 Introducción ................. .......................... ................. ................. .................. ................. ................. ................. ................. ................. ................. ................5 .......5 SQL .................. .......................... ................. .................. ................. ................. .................. ................. ................. .................. ................. ................. ..................6 .........6 Lenguaje de consulta estructurado (Stuctured Query Landguage) ................. ......................... ................6 ........6 Estructura de las consultas de Proyección ................. .......................... ................. ................. ................. ................. ............... ......6 6 Estructura de d e las consultas de Inserción................... Inserción............................ ................. ................. ................. ................. .............. ..... 15 Estructura de las consultas de Actualización .................. .......................... ................. .................. .................. ................. ........ 15 Estructura de d e las consultas de Eliminación.................. Eliminación........................... .................. ................. ................. .................. ........... .. 16 Arquitectura Cliente Servidor ................. ......................... ................. .................. ................. ................. .................. ................. ................ ........ 17 Presentación de SQL Server 2000 .................. ........................... ................... ................... .................. .................. .................. .............. ..... 18 Servicios .................. .......................... ................. .................. ................. ................. ................. ................. .................. ................. ................. ............... ...... 18 Herramientas.................. Herramientas.......................... ................. ................. ................. ................. ................. ................. ................. ................. ................. ........... 19 Instalación............... nstalación........................ .................. ................. ................. .................. .................. ................. ................. .................. .................. ................. ........ 22 Versiones ................. ......................... ................. .................. ................. ................. .................. ................. ................. ................. ................. ............... ...... 22 Requisitos de Hardware ................. .......................... .................. ................. ................. ................. ................. ................. ................. ............ ... 22 Instalación Personalizada .................. ........................... .................. ................. ................. .................. .................. .................. ................ ....... 23 Presentación de una base de datos dat os en SQL Server ................. .......................... ................. ................ ................. .............. ..... 25 Registro de Servidores........ Servidores ................ ................. ................. ................. ................. ................. ................. ................. ................. ............... ....... 25 Composición de la Base de Datos ................. ......................... ................. .................. .................. ................. ................. ................ ....... 26 Capítulo Dos .................. ........................... ................. ................. .................. .................. ................. ................. .................. .................. ................. .............. ...... 27 Base de Datos Algunos Conceptos ................. .......................... .................. .................. ................. ................. .................. ................. ........ 28 Definición de una Base de Datos .................. ........................... ................. ................. .................. .................. ................. ............... ....... 28 Tipos de Base de Datos (Sistema y Usuario)........ Usuario) ................. ................. ................. .................. ................. ................. ........... 29 Metadatos ................. .......................... ................. ................. .................. ................. ................. .................. ................. ................. .................. ............. .... 29 Archivos de Datos ( Primario, Secundario, Registro) ................. .......................... .................. ................. ............... ....... 29 Instrucciones sp_helpdb. sp_helpindex ................... ............................ .................. ................... ................... .................. ............ ... 30 Creación y Configuración de una Base de d e Dato ................. .......................... .................. .................. ................. ................. ......... 32 Creación de una Base de Datos......................... Datos................................. ................. .................. ................. ................. .................. ........... .. 32 Propiedades de configuración de una u na Base de Datos ................. .......................... ................. ................. ................ ....... 37 Definición de Transacciones..................... Transacciones.............................. .................. ................. ................. .................. ................. ................. ........... .. 42 Tamaño de la Base de Datos ................. .......................... .................. ................. ................. .................. .................. ................. ............ .... 44 Capítulo Tres........................ Tres................................. ................. ................. .................. ................. ................. .................. ................. ................. .................. ......... 48 Objetos de d e la l a Base de Datos ................. .......................... .................. ................. ................. .................. ................. ................. ................. ........ 49 Tablas ................. .......................... ................. ................. .................. .................. ................. ................. .................. .................. ................. ................. ......... 49 Vistas ................. .......................... .................. ................. ................. .................. .................. ................. ................. .................. .................. ................. .......... 52 Índices ................. .......................... ................. ................. .................. ................. ................. .................. ................. ................. .................. ................. ........ 55 Procedimientos Almacenado (Stored Procedure)................... Procedure)........................... ................ ................ ................. ............. .... 58 Desencadenadores (Triggers) ................. .......................... ................. ................. .................. ................. ................. .................. ............ ... 61 Tipos de Datos...................... Datos............................... ................. ................. .................. .................. ................. ................. .................. .................. ........... 65 Capítulo Ca pítulo Cuatro .................. ........................... ................. ................. .................. .................. ................. ................. .................. .................. ................. .......... .. 66 Diagrama de Datos........ Datos ................. .................. .................. .................. ................. ................. .................. .................. .................. .................. ........... .. 67 Modelo de Datos ................. .......................... .................. .................. ................. ................. .................. .................. ................. ................. ............ ... 67 Definición de Relaciones.................. Relaciones........................... ................. ................ ................. ................. ................. ................. ................. ............ ... 67 Definición de Reglas de Integridad ................. ......................... ................. .................. .................. ................. ................. .............. ..... 67 Establecer relaciones en el diagrama de datos ................ ......................... ................. ................. ................. ................ ........ 67 Seguridad....................... Seguridad................................ ................. ................. ................. ................. .................. ................. ................. .................. ................. ........... ... 70 Autenticación de Windows NT .................. ........................... ................. ................. .................. ................. ................. .................. ........... .. 70 Autenticación de SQL Server S erver .................. ........................... ................. ................. .................. .................. ................. ................. ............ ... 70 Inicios de sesión para SQL Server ................. ......................... ................. ................. ................. .................. ................. ............... ....... 71 Administración de Usuarios ................. .......................... ................. ................. ................. ................. ................. ................. ................ ....... 73 Permisos ................. ......................... ................. .................. ................. ................. .................. ................. ................. .................. ................. ................. ........... 75 Niveles de Permisos................ Permisos........................ ................. ................. ................. ................. ................. ................. ................. .................. ........... .. 75 Capítulo Ca pítulo Cinco ................. .......................... .................. .................. ................. ................. .................. .................. ................. ................. .................. ............. .... 77 Copias de seguridad................. seguridad.......................... ................. ................. .................. ................. ................. .................. ................. ................. ............ ... 78 Métodos de copia de seguridad ................. ......................... ................. .................. ................. ................. ................. ................. ........... .. 78 Crear copias de seguridad ................. ......................... ................. ................. ................ ................. ................. ................. ................. .......... .. 78 Recuperar Copias de Seguridad................... Seguridad............................ ................. ................. ................. ................. ................. ................. ......... 80 Tareas o Trabajos........................ Trabajos................................. .................. ................. ................. .................. .................. .................. .................. ............... ...... 82 Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:
[email protected] Mail:
[email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Programación de Tareas......................................................................................... 82 Alertas................................................................................................................. 85 Transferencia de Datos ............................................................................................. 88 DTS (Data Transformation Service) ......................................................................... 88 Generación de Script. ............................................................................................ 91
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
I Capítulo Uno Introducción SQL Arquitectura Cliente Servidor Presentación de SQL Server Instalación Presentación de una base de datos en SQL Server
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Introducción •
• •
Una biblioteca mantiene una lista de los libros que posee, una lista de los lectores que asisten a la biblioteca. Una clínica mantiene información de sus pacientes, médicos. Una empresa mantiene información de sus productos, ventas y empleados.
Estos son tipos diferentes de información, pero a todos los casos se debe poder agregar, eliminar, modificar y consultar. Esta operaciones serán mas simples o complicadas dependiendo de cómo se encuentre almacenada la información ¿Como almacenamos la información? Existen diferentes formas de almacenar la información. Archivos de texto plano. Donde los campos están divididos por caracteres especiales o por campos de longitud fija. La lectura de los mismos se hace a través de bloques y luego se parsean. La búsqueda debe ser programada y en muchos casos no se llaga al resultado esperado. En muchos casos las bases de datos se convierten a archivos de texto plano para transportarlas de un sistema a otro Archivos de registros. Tenemos a la información dentro de un archivo con el formato de un registro definido por algún lenguaje de programación. Este sistema es poco portable ya que la información solo podrá ser usada por la aplicación que tenga definido el tipo de registro. Tablas planas Tenemos almacenadas la información en diferentes tablas pero no existe relación entre ellas ni controles de integridad, mejoran a los archivos de registros por que se independizan de la aplicación permitiendo que varias aplicaciones los utilicen. Al conjunto de tablas se los suele llamar base de datos no relacionales. Base de Datos relacionales En el caso de las bases de datos tenemos a la información representada en tablas relacionadas administradas por un motor de bases de datos. Un motor de base de datos es un programa que permite introducir y almacenar datos, ordenarlos y manipularlos en forma segura. Poseen herramientas para poder controlar la integridad referencial.
Estructura de la información dentro la base de datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
SQL
Lenguaje de consulta estructurado (Stuctured Query Landguage) Es el lenguaje que se utiliza para acceder a la información de una base de datos. Si bien se trata de un estándar de consultas, cada motor de base de datos tiene una versión propia (basándose en el estándar). Por ejemplo SQL Server utiliza el T- SQL (Transact-SQL).
Estructura de las consultas de Proyección SELECT [ DISTINCT ] nombre-columna [,nombre-columna...] [as literal] | * FROM nombre-tabla [,nombre-tabla...] [WHERE expresión [ AND | OR expresión...]] [GROUP BY nombre-columna [,nombre-columna...]] [HAVING expresión [ AND|OR expresión...]] [ORDER BY columna [ ASC|DESC ]] [UNION SELECT...] [] Opcionales | O * Todas las Columnas Podríamos leerlo como SELECT (Proyecta ) DISTINCT (Proyecta sin duplicados) nombre-columna (las Columnas) FROM (de) nombre-tabla ( la o las tablas) WHERE (Donde) la expresión (se cumpla) GROUP BY (agrupados por) el nombre-columna. HAVING (cumpliéndose la) expresión ORDER BY (ordenadas por) nombre-columna, ASC (ascendente) o DESC (descendente) UNION (y añade el resultado a la siguiente selección) Supongamos que la información de una biblioteca esta almacenada de la siguiente manera
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Ejemplos Proyecciones
Funciones del SELECT En los campos de la cláusula SELECT podemos aplicar algunas funciones, como por ejemplo AVG (Promedio) COUNT (Cantidad de filas ) MAX(Máximo valor ) MIN (Mínimo Valor) SUM (Suma de la Columna)
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Uso de las funciones de String Cláusula LIKE Se aplica en la expresión del WHERE para busca un string (o sub-string ) dentro de una columna determinada. Se pueden utilizar los caracteres % y _ como comodines para facilitar la búsqueda Ejemplos:
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Cláusula SUBSTRING Se aplica a la cláusula SELECT para restringir el valor de la proyección Ejemplos:
Consulta por valores Nulos Un Valor nulo es un campo de una columna en el cual nunca se asigno ningún valor. Cláusula IS [NOT] NULL Se aplica en la expresión de la cláusula WHERE. Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Producto Cartesiano Es la combinación de todas las filas de una tabla con todas las filas de otra tabla. Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Producto Natural Es la combinación de todas las filas de una tabla con todas las filas de otra tabla que cumplan con una determinada condición. Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Cláusula INNER JOIN Se utiliza en la cláusula FROM para hacer el producto natural entre dos o mas tablas Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Grupos Se utiliza para agrupar los resultados por alguna expresión Cláusula GROUP BY Ejemplos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Clausula HAVING Se utiliza para filtrar los resultados de un grupo por una expresión Ejemplos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Estructura de las consultas de Inserción Cláusula INSERT Agrega filas a una tabla Ejemplo
Estructura de las consultas de Actualización Cláusula UPDATE Modifica una o varias filas de una tabla Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Estructura de las consultas de Eliminación Cláusula DELETE Elimina una o varias filas de una tabla Ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Arquitectura Cliente Servidor Un arquitectura cliente servidor, es un conjunto de aplicaciones, donde algunas funcionan como servidores (respondiendo a pedido de otras aplicaciones), y otras como clientes (haciendo pedidos a los servidores). Al diseñar una aplicación con arquitectura cliente servidor debemos tener en cuenta que las aplicaciones cliente y servidor en la mayoría de los casos se ubican en maquinas diferentes, con una red de interconexión, por lo tanto es muy importante analizar el lugar de donde se representaran las reglas de negocio, para evitar cuellos de botella producidos por el trafico de la red. Los sistemas que cuenta con un servidor y varias aplicaciones clientes son denominados de dos capas pero también podemos diseñar sistema de varias capas, como por ejemplo una aplicación web (un navegar como cliente de un servidor web, y un servidor web como cliente de un servidor de datos), a este tipo de sistemas se las denominan multicapa o n-capa.
Arquitectura dos Capas
Arquitectura N – Capas o Multicapa Un ejemplo de una arquitectura de dos capas es el MSSQLSERVER como servidor y el analizador de consultas o el administrados corporativo.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Presentación de SQL Server 2000 Servicios MSSQLSERVER Es el Servicio principal del SQL Server, es el motor de base de datos, realiza todas las tareas de manipulación, mantenimiento, integridad, bloqueo de registros, etc. SQL ServerAgent Se encarga de la programación de tareas y avisos.
MsDTC Coordinador de Transacciones distribuidas
T-SQL
Es el lenguaje que utiliza el SQL Server como medio de consulta a los datos, cumple con las especificaciones del SQL estándar y agrega una serie de elementos propios
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Herramientas Administrador Corporativo Permite trabajar con el SQL Server en modo grafico. Crear Base de datos, tablas, vistas, índices, etc.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Administrador de Servicios Permite administrar los servicios del SQL Server
Analizador de Consultas Permite interactuar con el motor de base de datos a través de secuencias de comando T-SQL
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Analizador de SQL Permite controlar la actividad del servidor y medir el rendimiento del mismo, encontrar puntos débiles y poder optimizarlo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instalación Versiones Sistema operativo Microsoft Windows® 2000 DataCenter Windows 2000 Advanced Server Windows 2000 Server Windows 2000 Professional Microsoft Windows NT® 4.0 Server Enterprise Windows NT 4.0 Server Windows NT 4.0 Workstation Microsoft Windows 98 Microsoft Windows CE
Enterprise Standard
Personal
Developer
Compatible Compatible
Compatible
Compatible
Desktop Engine Compatible
Compatible Compatible
Compatible
Compatible
Compatible
Compatible Compatible
Compatible
Compatible
Compatible
N/D
Compatible
Compatible
Compatible
Compatible Compatible
Compatible
Compatible
Compatible
Compatible Compatible
Compatible
Compatible
Compatible
N/D
N/D
Compatible
Compatible
Compatible
N/D
N/D
Compatible
N/D
Compatible
N/D
N/D
N/D
N/D
N/D
N/D
Cuadro del Libros en pantalla de SQL Server 2000
Requisitos de Hardware Hardware Equipo Memoria (RAM)
Espacio en el disco duro
Pantalla Dispositivo de puntero Unidad de CD-ROM
Requisitos mínimos Intel® o compatible Pentium 166 MHz o superior Enterprise: 64 MB mínimo, se recomienda 128 MB o más Standard: 64 MB mínimo Personal: 64 MB mínimo en Windows 2000, 32 MB mínimo en el resto de sistemas operativos Developer: 64 MB mínimo Desktop Engine: 64 MB mínimo en Windows 2000, 32 MB mínimo en el resto de sistemas operativos Componentes de base de datos de SQL Server: De 95 a 270 MB, 250 MB típica Analysis Services: 50 MB mínimo, 130 MB típica English Query: 80 MB Sólo Desktop Engine: 44 MB VGA o resolución superior Para las herramientas gráficas de SQL Server se requiere una resolución de 800x600 o superior Microsoft Mouse o compatible Obligatorio
Cuadro del Libros en pantalla de SQL Server 2000
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instalación Personalizada Ventana Principal de la Instalación
Seleccionamos Componentes de SQL Server 2000
Equipo a instalar
Seleccionamos Instalar Servidor de base de Datos
Tipo de instalación
Ubicación de los archivos de sistema, programa y base de datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Componentes a instalar
Modo de inicio de sesión
Modo de autenticación
Nivel de intercalación
Configuración de las biblioteca de red
Luego continuamos con la instalación del programa
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Presentación de una base de datos en SQL Server Registro de Servidores El Administrador Corporativo de SQL Server nos permite administrar varios servidores desde la misma consola. Para poder agregar un servidor utilizaremos el asistente para registrar servidores (Click derecho sobre el icono del grupo de SQL ).
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Composición de la Base de Datos Las Bases de Datos son los componente encargados de guardar, administrar y manejar la información. En SQL Server están compuestas por varios componentes u objetos, por ejemplo Diagrama, Tablas, Índices, Vistas, Procedimientos Almacenados, etc.
Luego veremos cada uno en detalle
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
II Capítulo Dos Base de Datos Algunos Conceptos Creación y Configuración de una Base de Dato
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Base de Datos Algunos Conceptos Definición de una Base de Datos
Como vimos anteriormente una base de datos esta compuesta por varios componentes
SQL Server los maneja a todos los componentes de la base de datos (incluyendo la base de datos) como Objetos facilitando el tratamiento de los mismos tanto para el administrador como para el usuario. Estos Objetos se almacenan físicamente en disco, donde se encuentra el motor de base de datos, dentro de los archivos de la base de datos. Descripción de los Objetos mas Importantes Base de Datos Es el objeto principal, del que dependen el resto de los objetos relacionados con el almacenamiento de datos. Tablas
Contiene la información almacenada. Por ejemplo en la tabla Libros tenemos una fila por cada libro y por cada columna una característica del libro en particular. Índice
Permite indexar una tabla por un criterio determinado, no cambia el orden físico de la tabla, se utilizan punteros a las filas para mostrar las tablas en un orden especifico. Vista
Permite visualizar una consulta, en la que pueden intervenir varias tablas, ejecutándose en el servidor y devolviendo los valores como una tabla. Procedimientos Almacenados (STORED PROCEDURE) Es un conjunto de instrucciones escritas en T-SQL, como un modulo ejecutable. Desencadenadores (TRIGGER) Es un procedimiento almacenado que se ejecuta ante un evento en la base de datos (agregar, eliminar o actualizar un registro)
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Tipos de Base de Datos (Sistema y Usuario) Base de datos del Sistema Es donde se almacena la información para administra el motor de base de datos. Descripción de las Base de Datos del Sistema mas Importantes Master
Es la base de datos mas importante, contiene toda la información del sistema, ubicación de archivos, usuarios, permisos, configuración, etc. Model Msdb
Es el modelo para crear nuevas bases de datos definidas por el usuario. Se utiliza para manejar las tareas del SQL Server Agent
Tempdb Almacena información temporal de la sesión activa (tablas, procedimientos almacenados, etc.). Al iniciar SQL Server se eliminan y se vuelven a crear. Base de datos de usuario Son las bases de datos definidas por los usuarios, contienen la información referente al sistema que la utilice (Datos, Reglas de negocios, etc.)
Metadatos Datos definidos sobre los propios datos. Las tablas, vistas, etc del sistema contiene información sobre si mismo. Por ejemplo las tablas sysdatabases, syslogins son generadas para el servidor y son contenidas en la base de datos master.
Archivos de Datos ( Primario, Secundario, Registro) Primario Contiene la información fundamental sobre la base de datos. Secundario Es una archivo complementario (no necesario) para ubicar a las tablas e índices en otra unidades de disco. Si el disco que contiene el archivo primario se llena, la información se continuara guardando en el archivo secundario ubicado en otra unidad Registro Contiene la información del registro de transacciones, necesaria para recuperar los datos en caso de problemas.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucciones sp_helpdb. sp_helpindex Sp_helpdb [BaseDeDatos] Se trata de un procedimiento almacenado que es capaz de devolver información de una base de datos, sino se le pasa parámetro devuelve información de todas las bases de dato del sistema.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Sp_helpIndex Tabla Se trata de un procedimiento almacenado que es capaz de devolver los índices de una tabla en particular
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Creación y Configuración de una Base de Dato Creación de una Base de Datos Administrador Corporativo Hacemos click derecho sobre la carpeta base de datos y seleccionamos NUEVA BASE DE DATOS
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Se abre la siguiente ventana
En la solapa general completamos con el nombre de la Base de Datos a Crear
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
En la solapa Archivos de Datos y Registro de transacciones, podemos definir las condiciones de crecimiento automático y la ubicación de los archivos. Una vez creada la Base de Datos, si hacemos doble click sobre su icono veremos sus elementos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción CREATE DATABASE A través de esta instrucción podremos crear una bases de datos desde cualquier conexión al SQL Server (si el usuario tiene derechos), para hacer los ejemplos utilizaremos en Analizador de consultas. Sintaxis completa de T-SQL para CREATE DATABASE C CREATE DATABASE database_name[ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ] ( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ]
< filegroup > ::= FILEGROUP filegroup_name < filespec > [ ,...n ]
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:
[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Veamos los parámetros mas importantes database_name ON
LOG ON
COLLATE collation_name
PRIMARY ( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ]
Nombre De nueva base de datos Especifica que los archivos de disco utilizados para almacenar la parte de datos de la base de datos (archivos de datos) se han definido explícitamente Especifica que los archivos del disco utilizados para almacenar el registro de la base de datos (archivos de registro) se han definido explícitamente Especifica la intercalación predeterminada de la base de datos. Especifica que la lista
asociada define el archivo principal Name: Especifica el nombre lógico FileName: Especifica el nombre fisico Size: tamaño máximo del archivo, si se elige la opcion Unlimited el archivo aumentara hasta ocupar todo el disco Filegrownth: valor de incremento para el archivo
Un ejemplo Simple
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Propiedades de configuración de una Base de Datos Administrador Corporativo Hacemos click derecho sobre la base de datos y seleccionamos Propiedades
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Se abre la siguiente ventana
Desde esta ventana podemos modificar las propiedades (Archivos de datos y registro, modos de acceso, creación de estadística, reducción automática, etc.) de la base de datos.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucciones sp_helpdb y sp_dboption Nos permiten ver las propiedades de la base de datos desde el Analizador de consultas Sintaxis sp_helpdb [[@dbname=] ‘Nombre_Base_De_Datos’] Por ejemplo
sp_dboption [[@dbname=] ‘Nombre_Base_De_Datos’] [, [@optname =] ‘Nombre_Opcion’] [,[@optvalue = ] ‘Valor_Opcion’] Nombre_Opcion = Propiedades a modificar Valor_Opcion = Valor de la opción a habilitar (True) o deshabilitar (False) Si solo establecemos el nombre de la base de datos veremos todas las propiedades seteadas
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Por Ejemplo Veamos las propiedades de la Base de Datos Biblioteca
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Establecemos que la Base de Datos Biblioteca se reduzca Automáticamente
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Definición de Transacciones Conjunto de operaciones que se ejecutan sobre una base de datos en forma atómica, si alguna de las operaciones que componen la transacción falla, se debe volver a atrás y dejar la base en el estado anterior a ejecutar la transacción. Transacción Implícita : Las crea y ejecuta internamente el motor de base de datos sin la intervención del usuario o aplicación Transacción Explicita : El usuario o la aplicación indican en forma explicita la ejecución de una transacción BEGIN TRANSACTION COMMIT TRANSATION ROLLBACK TRANSACCTION Un Ejemplo
Registro de Transacciones en SQL Server Cada base de datos dispone de un registro de transacciones que permite mantener la integridad de la base de datos. Cada vez que se hace una modificación sobre la base de datos, se genera una transacción
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Grupos de Archivos Una base de datos puede estar distribuida en varios archivos, por ejemplo podemos distribuir la base en diferentes discos, las tablas mas consultadas en uno el resto en otro. Para esto definimos un grupo de archivo para cada disco Para crear un grupo de archivos lo hacemos desde las propiedades de la base de datos.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Tamaño de la Base de Datos Administrador Corporativo Desde las propiedades de la base de datos modificamos directamente la columna ESPACIO ASIGNADO
Instrucción ALTER DATBASE Nos permite agregar y quitar archivos de la base de datos. También nos permite modificar algunas propiedades como aumentar el tamaño de la base de datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Por ejemplo
Reducir el Tamaño de la Base de Datos Con la base de datos seleccionada seleccionada hacemos hacemos click derecho derecho y seleccionamos TODAS LAS TAREAS y luego REDUCIR BASE DE DATOS
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Veremos la siguiente ventana
Eliminación de una Base de Datos Administrador Corporativo Con la base de datos seleccionada, hacemos click derecho y seleccionamos eliminar
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción DROP Nos permite eliminar una base de datos desde el analizador de consultas
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
III Capítulo Tres Objetos de la Base de Datos
Tablas Vistas Índices Procedimientos Almacenado (Stored Procedure) Desencadenadores (Trigers) Tipos de Datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Objetos de la Base de Datos Como ya vimos anteriormente la base de batos esta compuesta por varios objetos. A continuación veremos como se administra cada uno de ellos.
Tablas Una Tabla es la componente encargada de almacenar la información Creación de una Tabla Administrador Corporativo Hacemos Click derecho sobre Tablas y seleccionamos NUEVA TABLA
Agregamos las columnas de la Tabla y luego aceptamos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción CREATE TABLE Para crear una tabla desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREATE TABLE. Sintaxis CREATE TABLE Nombre_Tabla ( Nom_Columna_1 Tipo [CONSTRAINT PRIMARY| KEY| NOT NULL ] ..... Nom_Columna_n Tipo [CONSTRAINT PRIMARY| KEY| NOT NULL ]) Por ejemplo
Modificación de una Tabla Administrador Corporativo Tabla.
Hacemos Click derecho sobre Tablas a modificar y seleccionamos Diseñar
Se abrirá la misma ventana que utilizamos para la creación, hacemos las modificaciones y guardamos.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción ALTER TABLE Para modificar una tabla desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción ALTER TABLE. Sintaxis ALTER TABLE Nombre_Tabla [ALTER COLUMN Nombre_Columna TipoDato ] [NULL | NOT NULL] | ADD [ Nombre_CoLumna_1 TipoDato ] ... [, Nombre_CoLumna_n TipoDato ] |DROP [Nombre_Columna_1] ... [,Nombre_Columna_n] Por ejemplo
Eliminación de una Tabla Administrador Corporativo Hacemos Click derecho sobre la Tabla a eliminar y seleccionamos ELIMINAR. Instrucción DROP TABLE Para eliminar una tabla desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción DROP TABLE. Sintaxis DROP TABLE Nombre_Tabla
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Vistas Una Vista es una consulta almacenada de una o varias tablas Creación de una Vista Administrador Corporativo Hacemos Click derecho sobre vistas seleccionamos NUEVA VISTA
Podemos armar la consulta con ayuda de los paneles (Diagrama, Cuadricula, SQL, Resultados ) o escribir directamente el SQL. Luego la podemos utilizar como una Tabla
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción CREATE VIEW Para crear una vista desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREATE VIEW Sintaxis CREAT VIEW Nombre_Vista AS Lista de Instrucciones (de consulta) Por ejemplo
Modificación de una Vista Administrador Corporativo Hacemos Click derecho sobre la Vista a modificar y seleccionamos DISEÑAR VISTA. Se abrirá la misma ventana que utilizamos para la creación, hacemos las modificaciones y guardamos.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción ALTER VIEW Para modificar una vista desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción ALTER VIEW Sintaxis ALTER VIEW Nombre_Vista_a_Modificar AS Nueva_Lista_de_Instrucciones Eliminación de una Vista Administrador Corporativo Hacemos Click derecho sobre la Vista a eliminar y seleccionamos ELIMINAR. Instrucción DROP VIEW Para eliminar una vista desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción DROP VIEW. Sintaxis DROP VIEW Nombre_Vista
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Índices El Objeto índice se encarga de ordenar los datos de acuerdo a algún criterio basado en alguna columna Creación de Índices Administrador Corporativo Hacemos Click derecho sobre la tabla que vamos a crear un índice y seleccionamos TODAS LAS TAREAS + ADMINISTRADOR DE INDICES
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción CREATE INDEX Para crear un Índice desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREATE INDEX. Sintaxis CREATE [UNIQUE | CLUSTERED | NON CLUSTERED] INDEX NAME Nombre_Indice ON Nombre_Tabla (Nombre_Columna_1, ...., Nombre_Columna_n) [WITH. Lista_Atributos] Por ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Modificación de un Índices Administrador Corporativo Accedemos al administrador de índices de la misma forma que usamos para crearlo, seleccionamos el índice a modificar y presionamos el botón modificar, hacemos los cambios y los volvemos a guardar Para modificar un índice desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREAT INDEX y le agregamos la instrucción DROP EXISTING para eliminar el existente y volverlo a crear Eliminación de un Índices Administrador Corporativo Accedemos al administrador de índices de la misma forma que usamos para crearlo, seleccionamos el índice a eliminar y presionamos el botón eliminar Instrucción DROP INDEX Para eliminar un índice desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción DROP INDEX. Sintaxis DROP INDEX Nombre_Indice
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Procedimientos Almacenado (Stored Procedure) Un Procedimiento almacenado o stored Procedure consiste en un conjunto de Instrucciones en T-SQL que se ejecutan como una rutina Creación de un Stored Procedure Administrador Corporativo Hacemos Click derecho sobre procedimientos almacenados y seleccionamos NUEVO PROCEDIMIENTOS ALMACENADOS
Escribimos la secuencia de comandos en T-SQL, Comprobamos la sintaxis y luego lo guardamos. Podemos ejecutar el Stored Prodedure desde el analizador de consultas con la Instrucción EXEC Nombre_Procedimiento
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción CREATE PROCEDURE Para crear un Stored Procedure desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREATE PROCEDURE. Sintaxis CREATE PROCEDURE Nombre_Procedimiento [@Parámetro_1 Tipo Dato ] [OUTPUT] ... [@Parámetro_n Tipo Dato ] [OUTPUT] AS Lista de Instrucciones en T-SQL Por ejemplo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Un ejemplo de la Ejecución del Stored Procedure
Modificación de un Stored Procedure Administrador Corporativo Hacemos Doble Click sobre el procedimiento, lo modificamos y lo volvemos a guardar Instrucción ALTER PROCEDURE Para modificar un procedimiento desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción ALTER PROCEDURE Sintaxis ALTER PROCEDURE Nombre_Procedimiento_a_Modificar AS Nueva_Lista_de_Instrucciones Eliminación de un Stored Procedure Administrador Corporativo Hacemos Click derecho sobre el Procedimiento a eliminar y seleccionamos ELIMINAR. Instrucción DROP PROCEDURE Para eliminar un Procedimiento desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción DROP PROCEDURE Sintaxis DROP PROCEDURE Nombre_Procedimiento Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Desencadenadores (Triggers) Un Triggers es un procedimiento almacenado que se ejecuta ante un evento en la base de datos (agregar, eliminar o actualizar un registro). Por ejemplo podemos hacer que cuando se inserta un registro en una tabla nos guarde en otra la fecha, hora y usuario que lo ejecuto. Creación de un Trigger Administrador Corporativo Hacemos Click derecho sobre la tabla que vamos a crear un trigger y seleccionamos TODAS LAS TAREAS + ADMINISTRAR DESENCADENADORES
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Escribimos la secuencia de comandos en T-SQL, comprobamos la sintaxis y luego lo guardamos. Cuando demos un alta en la tabla de libros, automáticamente agregara un registro con la fecha, hora y nombre de usuario que ejecuto la consulta Instrucción CREATE TRIGGER Para crear un Trigger desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción CREATE TRIGGER Sintaxis CREATE TRIGGER Nombre_Trigger ON Nombre_Tabla For [INSERT | UPDATE | DELETE] AS Lista de Instrucciones en T-SQL
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Por ejemplo
Modificación de un Trigger Administrador Corporativo Hacemos Click derecho sobre la tabla que vamos a crear un trigger y seleccionamos TODAS LAS TAREAS + ADMINISTRAR DESENCADENADORES Elegimos el trigger, lo modificamos y lo volvemos a guardar Instrucción ALTER TRIGGER Para modificar un procedimiento desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción ALTER TRIGGER Sintaxis ALTER TRIGGER Nombre_Trigger_a_Modificar For [INSERT | UPDATE | DELETE] AS Nueva_Lista_de_Instrucciones Eliminación de un Trigger Administrador Corporativo Hacemos Click derecho sobre la tabla que vamos a crear un trigger y seleccionamos TODAS LAS TAREAS + ADMINISTRAR DESENCADENADORES Elegimos el trigger y lo Eliminamos Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción DROP TRRIGER Para eliminar un Trigger desde una aplicación o desde el analizador de consulta podemos utilizar la instrucción DROP TRIGGER Sintaxis DROP TRIGGER Nombre_Trigger
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Tipos de Datos SQL Server nos permite definir tipos de datos de acuerdo a nuestras necesidades Creación de un Tipo de Dato Hacemos Click derecho sobre Tipos de datos definidos por el usuario y seleccionamos NUEVO TIPO DE DATO
Escribimos el nombre y el tipo de dato base
Eliminación de un Tipo de Dato Hacemos Click derecho sobre el Tipo de Datos a eliminar y seleccionamos ELIMINAR.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
IV Capítulo Cuatro Diagrama de Datos Seguridad Permisos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Diagrama de Datos Modelo de Datos Es el modelo que represente la información del mundo real en la aplicación.
Definición de Relaciones Cuando en una tabla tenemos un campo que identifica en forma univoca a un registro que se encuentra en otra tabla, diremos que las tablas están relacionadas. Por ejemplo en la tabla prestamos tenemos la columna idLibro que referencia a un registro de la tabla libros Luego veremos como marcar una relación en SQL Server
Definición de Reglas de Integridad Para que un modelo de dato refleje mas profundamente la información del mundo real debemos tratar de que, a medida de que la base de datos crece, la información se mantenga en forma coherente con la realidad. Por ejemplo un numero de DNI solo puede pertenecer a una persona, la edad de una persona no puede ser negativa, en el ejemplo de la biblioteca no podemos eliminar un libro si se encuentra prestado, etc. Podemos clasificar a las reglas de integridad en tres clases Integridad de dominio Restringimos los valores que puede tomar un atributo respecto a su dominio, por ejemplo EDAD >= 0. Integridad de entidad La clave primaria de una entidad no puede tener valores nulos y siempre deberá ser única, por ejemplo DNI. Integridad referencial Las claves ajenas de una tabla hija se tienen que corresponder con la clave primaria de la tabla padre con la que se relaciona. Por ejemplo, Las tablas de libros y prestamos SQL Server nos ayuda a mantener la integridad referencial mediante restricciones sobre los objetos y relaciones.
Establecer relaciones en el diagrama de datos Para establecer relaciones, primero debemos crear un diagrama de datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Una vez creado el modelo de datos seleccionamos la columna que será clave de la tabla padre y la arrastramos hasta la columna que hará la referencia desde la tabla hijo Por ejemplo La relación Prestamos_Libros entre la tabla de prestamos y la tabla de libros
Al crear la relación entre las dos tablas nos permite marcar diferentes reglas de integridad
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Cuando guardemos el diagrama de datos se modificaran todas las tablas para mantener la integridad referencial establecida en el modelo
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Seguridad SQL Server maneja diferente niveles de seguridad, en primer p rimer lugar se encuentra la validación con el Sistema Si stema Operativo (Autenticación de NT), luego la validación con el SQL Server (Inicio de sesión ), le sigue el acceso a la base de datos (nombre de usuario) y por ultimo los permisos p ermisos de acceso a los objetos.
Autenticación de Windows NT De este tipo de autenticación autenticación se encarga directamente directamente el Sistema Operativo, el usuario debe contar con una cuenta en el servidor con los derechos para utilizar el SQL Server.
Autenticación de SQL Server De este tipo de autenticación se encarga directamente el SQL Server, el usuario debe contar con un inicio de sesión para poder acceder al SQL Server.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Para cambiar el modo de autenticación del SQL Server lo podemos hacer el las propiedades de registro del Servidor
Inicios de sesión para SQL Server Un Inicio de sesión es el objeto encargado de permitir o denegar el acceso, según el perfil del usuario. Para Administrar los inicios de sesión, expandimos la carpeta de SEGURIDAD del Registro del Servidor y seleccionamos Inicios de sesión.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Por ejemplo creemos un inicio de sesión para los bibliotecarios con acceso a la Base de datos Biblioteca
Cuando agregamos un inicio de sesión sesión desde la solapa solapa Funciones del servidor servidor podemos definirle un grupo de d e funciones, que tomaran los usuarios de ese inicio de sesión. Función dbcreator diskadmin processadmin securityadmin serveradmin setupadmin sysadmin
Descripción Permite crear y modificar bases de datos. Permite administrar los archivos del disco. Permite administrar los procesos procesos ejecutados ejecutados en el servidor. Permite administrar los inicios de sesión, permisos CREATE DATABASE y leer los registros de errores. Permite configurar y apagar el servidor. Permite administrar servidores vinculados y procedimientos de inicio. Permite pleno acceso sobre SQL Server.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero Febrero de 2003 - Mail:[email protected] Mail: [email protected] -- Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Administración de Usuarios Una vez creado un inicio de sesión, debemos definir los usuarios que se conectaran al servidor utilizando ese inicio de sesión Para Administra los usuarios, expandimos la Base de Datos y seleccionando Usuarios Por ejemplo creamos al usuario juan con inicio de sesión sa
Aquí podemos poner al usuario como miembro de una función, lo que le permite diferentes permisos preestablecidos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Tabla de Funciones y permisos Función db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin db_denydatareader db_denydatawriter db_owner db_securityadmin public
Descripción Permite agregar y quitar usuarios y grupos a la base de datos. Permite realizar copias de seguridad. Permite leer información de la base de datos. Permite escribir información en la base de datos. Permite manejar objetos de la base de datos. Impide leer información de la base de datos. Impide escribir información en la base de datos. Permite realizar todas las operaciones sobre la base de datos. Permite administrar funciones y permisos de base de datos. Es la función predeterminada de los usuarios de la base de datos; si no tienen ningún permiso asignado, podrán realizar las operaciones definidas en esta función.
Desde la ventana de creación de usuarios, también podemos acceder a los permisos del usuario, lo veremos en la siguiente sección.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Permisos Datos.
Un permiso es el derecho que tiene un usuario a realizar una operación en la Base de
Niveles de Permisos SQL Server nos provee de varios tipos de permisos Nivel de Instrucciones Un usuario puede poseer o no permiso para ejecutar la instrucción Por Ejemplo el DROP de una Base de Datos Estos se conceden o deniegan con las funciones del inicio de sesión. Nivel Objeto Un usuario puede tener diferentes permisos sobre los objeto Por ejemplo puede hacer un select de una tabla pero no un delete Estos permisos se conceden o se deniegan sobre los Objetos.
Concedemos permisos de SELECT INSERT UPDATE DELETE al usuario Juan, y solo SELECT al usuario public También podemos definir permisos a nivel de columnas, para que un usuario solo vea algunas columnas de la tabla
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Al usuario juan solo le permitimos hacer SELECT de la Columna cantidad. Nivel Predefinido Es un conjunto de permiso predefinido que se selecciona cuando creamos al usuario
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
V Capítulo Cinco
Copias de seguridad Tareas Transferencia de Datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Copias de seguridad Métodos de copia de seguridad SQL Server nos provee diferentes tipos de copia de seguridad. Completa Se crea una copia de todo el contenido de la base de datos completa (estructura, información, registro de transacciones). Diferencial Copia solo los cambios desde la ultima copia de seguridad, una copia de seguridad diferencial, tiene como principal objetivo reducir el tiempo en crear la copia y el espacio de la copia. Registro de transacciones Podemos mantener una copia del registro de transacciones de forma tal de mantener el histórico de los datos. La primera copia de seguridad que se realice de la base de datos debe ser completa, para restaurar una base de datos desde una copia diferencial, debe de existir una completa como base.
Crear copias de seguridad Administrador Corporativo Hacemos Click derecho sobre la abase de datos, seleccionamos TODAS LAS TAERAS + COPIA DE SEGURIDAD...
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Luego seleccionamos el tipo de copia
A través del botón agregar seleccionamos el medio en donde se realizara la copia. También podemos programar la copia de seguridad, pero debemos tener el SQL Server Agent activado. Lo veremos mas adelante Instrucción BACKUP Podemos crear una copia de seguridad a través de la instrucción BACKUP DATABASE Sintaxis BACKUP DATABASE Nombre_Base_De_Dato TO DISK = ’C:\BACKUP\ARCHIVO.BAK ’ [WITH DIFERENTIAL]
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Para hacer la copia de seguridad del archivo de registro utilizamos la instrucción BACKUP LOG Sintaxis BACKUP LOG Nombre_Base_De_Dato TO DISK = ’C:\BACKUP\LOG\ARCHIVO_LOG.BAK ’
Recuperar Copias de Seguridad Administrador Corporativo Hacemos Click derecho sobre la base de datos, seleccionamos TODAS LAS TAERAS + RESTAURAR BASE DE ...
Luego seleccionamos el tipo de copia a restaurar
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Instrucción RESTORE Podemos restaura una copia de seguridad a través de la instrucción RESTORE DATABASE Sintaxis RESTORE DATABASE Nombre_Base_De_Dato FROM DISPOSITIVO [WITH FILE = Numero_copia]
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Tareas o Trabajos Una Tarea o trabajo es un conjunto de pasos que se ejecutan en forma explicita por el usuario o programada A través del SQL Server Agent podemos programar determinadas tareas para que se ejecuten en forma programada, por ejemplo un Backup todos los días a las 02:30 hs
Programación de Tareas Hacemos Click derecho sobre Trabajos y seleccionamos NUEVO TRABAJO
A continuación definimos los pasos del trabajo, creamos el paso uno que elimina el contenido de la tabla visitas.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Desde la solapa de avanzadas vemos las propiedades del paso
Una vez definido todos los pasos de las tareas desde la solapa de programación definimos la periodicidad de la tarea
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
A continuación desde la solapa de notificaciones definimos a que operador y ante que evento envía las notificaciones
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Alertas Podemos programar una Alerta que nos notifique de diferentes suceso en el servidor. Primero debemos definir los operadores que responderán a las alertas, es decir a quien le serán enviado los mail de una determinada alerta. Hacemos Click derecho sobre Operadores y seleccionamos NUEVO OPERADOR
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Luego definimos las alertas Hacemos Click derecho sobre Alertas y seleccionamos NUEVA ALERTA
Definimos los sucesos y luego pasamos ala solapa de respuestas
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Definimos la decisión a tomar ante el suceso definido, por ejemplo podemos hacer que ejecute una tarea o simplemente que notifique a un operador
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Transferencia de Datos Muchas veces necesitamos migrar toda la información almacenada o parte de ella hacia diferentes formatos, SQL Server posee una serie de herramienta que nos facilita esta tarea.
DTS (Data Transformation Service) El DTS nos permite transformar información que se encuentre en una base de datos relacional en otros medios de almacenamiento de información y viceversa. Podemos abrir el DTS desde el administrador corporativo o directamente desde el menú de Inicio de Windows Importación y exportación de una Base de Datos Para importar el contenido de una base de datos desde el Administrador Corporativo Hacemos Click derecho sobre la base de datos, seleccionamos TODAS LAS TAERAS + IMPORTAR DATOS ...
Seleccionamos el origen de los datos
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Seleccionamos el destino
Seleccionamos las tablas a migrar, podemos migrar la base de datos completa o seleccionar las tablas que nos interesen. La migración a través de DTS no nos migra los permisos ni mas reglas de integridad, solo las tablas con la información.
Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi
SQL Server - Ariel C. Pasini
Marcamos las transformaciones que deseamos hacer
Nos permite ejecutarla inmediatamente o programar una tarea Escuela Patagónica de Informática 2003 - 17 al 28 de Febrero de 2003 - Mail:[email protected] - Web: www.ing.unp.edu.ar/epi