tur

a
ec

de
l

Diseño y programación de bases de
datos con SQL Server 2008

Eje

mp

lo

Pedro López-Belmonte / Aroa Solana

tur
a

Sipnosis

En este manual se tratan las diferentes tareas necesarias para llevar a cabo el diseño de una base
de datos, y su implementación en SQL Server 2008.
Desde las tareas de diseño de los diferentes modelos, hasta la implementación física de los
diseños, pasando por la creación de objetos de base de datos, procedimientos almacenados,
funciones definidas por el usuario, desencadenadores o el tipo de dato XML, se abordan todos
los temas necesarios para dejar en perfecto funcionamiento cualquier base de datos sobre SQL
Server 2008.

de
l

ec

También se exploran las características que aporta la última versión del sistema gestor de base
de datos de Microsoft, como la integración con .NET 3.5 (objetos SQL CLR), o las nuevas
aplicaciones del servidor, como los Reporting Services, Notification Services o los Integration
Services, entre otras muchas novedades como los nuevos tipos de datos espaciales muy útiles
para almacenar datos cartográficos.

lo

Pedro López-Belmonte es Licenciado en Ciencias Físicas por la
Universidad Complutense de Madrid, con más de 8 años de experiencia
en el mundo del desarrollo, consultoría y formación. Es especialista en
herramientas de desarrollo .NET y bases de datos. Ha participado en
numerosos proyectos de desarrollo en entornos corporativos de
mediano y gran tamaño con .NET, SQL Server y SharePoint.
Cuenta con varias certificaciones, entre las que se encuentran MCAD,
MCTS SQL Sever & SharePoint. También cuenta con la certificación
MCT, y desde el comienzo de su carrera profesional ha impartido
formación, una de sus pasiones.

mp

Aroa Solana Ruiz es Microsoft Certified IT Professional en Database
Developer, también Microsoft Certified Technology Specialist en SQL
Server 2005, .NET Framework 3.5, Windows Forms Applications,
SQL Server 2005, al igual que Database Development en SQL Server
2008.
Actualmente ostenta la certificación MCT (Microsoft Certified
Trainer) que la permite impartir un gran número de cursos oficiales de
Microsoft y trabajar como formadora en Alhambra-Eidos.

Eje

Ha impartido formación sobre la tecnología .NET, desarrollo de
aplicaciones Windows, Web, ADO, Distribuidas, WPF, WCF, WWF, Silverlight y UML, por
otra parte imparte formación en administración de bases de datos SQL Server y desarrollo de
bases de datos SQL Server, tanto en 2005 como en 2008. Además posee experiencia en J2SE y
J2EE. Dentro de la gestión de procesos posee la certificación ITIL V2 Foundations.

tur
a

Luarna

Diseño y programación de bases de datos con SQL Server 2008

www.luarna.com

Madrid, octubre de 2009

de
l

ec

© Pedro López-Belmonte – Alhambra Eidos
© Aroa Solana – Alhambra Eidos
© De esta edición: 2009, Luarna Ediciones, S.L.

lo

ISBN: 978-84-92684-59-5

Eje

mp

Versión 1.0 (21-10-2009)

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser
realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español
de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algún
fragmento de esta obra.

por lo que quiero decirles ¡Gracias Elena. además de que siempre han estado ahí tanto para lo bueno como para lo malo. Ana y Vita!. sin ellas hubiera acabado loca.tur a ec Dedicatoria de Aroa Solana Eje mp lo de l Este libro. se lo dedico a las amigas que hice en la Facultad. . Laura.

tur a ec de l Diseño y programación de bases de datos con SQL Server 2008 Eje mp lo Pedro López-Belmonte Aroa Solana .

lo mp Eje tur a ec de l .

......75 Bases de Datos de Sistema .................................................................. 35 Particionamiento mixto ...... 48 Estrategias en el diseño físico.......................50 mp Seguridad ....................................................................................................................................... 18 El SQL Server Management Studio ........................................................................................................................................................................................................................................................................................................... 21 Ejemplos prácticos de diseño conceptual ........................................................................................................................................................ 77 Management Studio ................................ 65 Esquemas ....................................................................................... 16 Nuevas Características ........................ 20 Modelo Conceptual ....................... 19 lo de l Creación de los modelos Conceptual.................................................................................................................................... 18 Herramientas de SQL Server 2008 ............................................................................................................................. 64 Funciones de aplicación ............... 15 Introducción ..................................................................................................................................................................................................................................................................................... 68 Eje Creación de una base de datos ........................................................................................................................tur a Indice ec Introducción ................................. 52 Inicios de sesión ...... 18 SQL Server Configuration Manager .................................................................................................................................................................. 21 El modelo entidad / relación ....................................................................................................................................................................................................................................................... 49 Organización de ficheros ................................................................................................................................... 77 Elementos básicos para la creación de bases de datos ...................................................................................... 62 Funciones fijas de servidor ................................................................................................................................................... 77 MSDB ........................................76 Master ........................................................................................................................... 77 Página |7 ....................................................................................................................... 72 ¿Qué es una Base de Datos? ....................................................... 73 Extensiones ....................................................................... 76 Model ................................................................................................................................................................................... 74 Objetos de la Base de Datos ..........................................................................................................................................................................72 Archivos de una Base de Datos .................................. 37 Teoría de la normalización .................................................................................................................................................................................................................................................................................. 48 Conceptos básicos sobre gestión de ficheros .......................................................... 15 Introducción a SQL Server 2008 .................................................................................................................................................................. 17 Funciones Básicas ...............................................................................................76 TempDB ................................. 62 Funciones de base de datos ................................ 20 Etapas del diseño conceptual ................................................................................................. 47 Modelo Físico .............. 73 Páginas .......... Lógico y Físico ..... 42 Proceso de desnormalización......................................................................................................................................................... 25 Modelo Lógico ...................................................................... 29 Paso del esquema conceptual al esquema lógico estándar ....... 38 Ejemplos prácticos de normalización......................................................................................................................................................................................................................................................... 49 Técnicas para el aumento de eficiencia .............. 17 Funciones de Business Intelligence...................................................................................................................................................................................................................30 Etapas en el diseño lógico ........................................................................................................................................................................................................................................................ 52 Roles ........................................................................................................................................... 18 Libros en pantalla .......................................................................................... 32 Particionamiento vertical de relaciones ................................................................... 31 Particionamiento horizontal de relaciones ..................................................................................................................................................................

..................................................................................................................................................................... 98 BINARY.......................................................................... 90 Esquemas .............. 104 Integridad de Entidad ....................... 105 Tipos de restricciones ....................................................................................................................................................................................................................................... 96 NTEXT .............................. 101 Propiedades de las columnas ............................................................................................................................. 116 RULE ........................................................................................................................................................ 98 VARBINARY........................................................ 105 PRIMARY KEY ........................................................................................................................................................ 99 SQL_VARIANT ........................................................... 96 TINYINT .................................................................................................................. 102 Valores DEFAULT . 117 Creación de Índices .............................................................................................. 88 Creación de un grupo de archivos .................................................................................. 104 Integridad de Dominio....................................................................................................................................................................................................................................... 97 SMALLMONEY ............................................................................................................................................... 113 Objetos RULE y DEFAULT....................................................................................................................................................................................................................................................................................................................................................................................................................................................... 98 BIT ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 94 Tipos de datos en SQL Server 2008................................................................................................................... 95 VARCHAR ............................................................................................................................................ 99 Modificar tablas ................................................................................................................................ 102 Valores IDENTITY...........................................80 Grupos de archivos................................................................................... 112 Restricciones CHECK ....................................... 96 SMALLINT .......................................................................................................................................... 95 CHAR ................... 97 FLOAT ............................................................................... 96 BIGINT ................................................................................. 98 XML ......... 103 Integridad de los datos ..................................................................................................................................................................................................................................................................................................................................................... 119 Página |8 ........................................................................................................... 99 Creación de tablas ....................................................................................................................................................................................................................................... 89 Uso de los grupos de archivos .............................................................. 98 UNIQUEIDENTIFIER.................................................................................................................. 96 TEXT.............................................................................................................................................................. 117 Consideraciones sobre las restricciones .................................................................................................................................................................................................................................. 95 NCHAR ..................................................................................................................... 105 Integridad Referencial ......................................................................................................................................................................................................................................................... 96 IMAGE .................................................... 91 Eje mp lo de l ec Creación de tablas ........................................................................... 100 Eliminar tablas ................................................. 116 DEFAULT .................................................... 107 Restricción UNIQUE.............................. 98 TIMESTAMP ................................................................ 99 TABLE .............................. 97 MONEY ..................................................................................................................................................................................................97 SMALLDATETIME ........................................... 97 DECIMAL/NUMERIC .. 99 CURSOR ...................... 96 INT ............. 97 REAL ............................................................................................................................................................................... 105 FOREIGN KEY .......................................................................................................................................................... 95 NVARCHAR ..............................................................................................................................................................................................................tur a CREATE DATABASE ............................................................. 97 DATETIME ......................

............. 127 Pasar por alto claves duplicadas ............................................................ 147 Creación de Procedimientos Almacenados .................................. 160 Mensaje.............................................................................. 128 Almacenar resultados de orden intermedio en la base de datos tempdb .................................................................................................................................................................................... 151 Opciones Adicionales ............................................................................................................................................................................................................................................................................................ 145 Vistas indexadas ............................................................................................................................................................... 132 Esquemas de partición .. 122 Índices únicos.................................................................................................................................................................................... 126 Rellenar Índice ............................................................................................................................................................................................................................ 152 Estructuras de control de flujo y errores .............................................................................................................................................................................. 155 WAITFOR ............................. 145 Eje mp Procedimientos Almacenados ............................................................................................................................................................................................................................................................................................................................................................................................................................................... 123 Especificar orden para los campos ...... 161 Severidad ................................ 133 Crear tablas e índices particionados ....... 131 Funciones de partición................................................ 133 Modificar funciones y esquemas de partición ........................................................................................................................................................................................................................................... 120 Índices No Agrupados (Nonclustered) .......................................................................................................................................................................................de l ec tur a ¿Qué es un índice? ........................................................................................... 155 Gestión de Errores ..................................................................... 153 WHILE…BREAK ........ 138 Encriptación de la definición ................................ 123 Creación de índices .......... 137 lo Creación de vistas ............................. 121 Índices no agrupados sobre una tabla ................................................................................ 135 Insertar y extraer tablas de particiones ......................................................................... 157 RAISERROR ................................................................................. 144 Modificar y eliminar vistas......................................................... 130 Usar bloqueos de fila y de página al tener acceso al índice ............................................................................................................................................................................................................................................. 149 Valor de Retorno ......................................................................................... 125 Factor de relleno ............... 162 Consideraciones de seguridad y rendimiento ..................... 135 Mantenimiento de Particiones .............................................................................................................................................................. 143 Enlazar a un esquema ................................................................................................................................................................................................... 130 Grado máximo de paralelismo ..................... 153 IF…ELSE ........................................................................................... 122 Índices no agrupados sobre un índice agrupado.................................................................................. 131 Partición de índices y tablas ........................................................................................... 144 Comprobar criterios ......................................................................................................................................................................................................................................................................................................................................................................................................................................... 138 Como crear vistas............................................................... 165 Página |9 .... 128 Volver a calcular estadísticas .................................................................................................... 162 Estado ................................................................ 130 Almacenamiento del índice......................................................................................................................................................................... 148 Llamadas a procedimientos ..................... 149 Procedimientos almacenados parametrizados................................................................................................................................. 154 CASE.............................. 127 Volver a generar el índice .................................................................. 119 Tipos de índices ................................. 125 Include .................................... 156 La variable @@ERROR ................................ 129 Permitir procesamiento en línea de instrucciones DML .............................................................. 162 WITH................................................................................................................................. 120 Índices Agrupados (Clustered) ........................................................................................................................................................................................

..................................... 183 Creación del tipo de dato definido por el usuario ...........................................tur a Seguridad ................ 224 SqlUserDefinedAggregate ........................................................................................................................................................................................................................................................................................................................................................................................................................................................... 192 Desencadenadores DML ................................ 234 Herramienta de Configuración de Superficie.......................................................... 233 Business Intelligence Development Studio......................................................................................................... 220 Funciones escalares .............................................................................................. 232 Herramientas de Informes .................................................. 166 Rendimiento..................... 185 de l Desencadenadores (triggers)............NET ................................................................................................................................... 191 Tipos de Desencadenadores .............................................................................................................................................................................................................. 206 Habilitar la integración ........ 179 Depuración de funciones definidas por el usuario .......... 219 SqlFunction..................................................................................................................................................................................................................................................................................................... 231 Capa de aplicación ....................................................................................................................................................................................................................................... 173 Funciones de tabla ........... 206 Integración con CLR ............ 226 Desencadenadores CLR .......................................................................................................................................................................................................................................................................... 226 Accumulate ................................................................................................................................................... 208 Visual Studio 2008 ............................................................................................................................................................................................................................ 225 Init .............................................. 176 Funciones Deterministas y No Deterministas............................ 194 Comprobar columnas ................................................................................................................................................... 172 Funciones escalares ................................................................... 201 Consideraciones de rendimiento ............ 184 Management Studio ......................................... 227 SqlTrigger .................................................................. 226 Terminate.......................................................................................................................................................................................................................................................................................................................... 181 ec Tipos de datos definidos por el usuario ............................................................................................................................................................................................................................................. 205 mp lo Diseño de objetos SQL CLR ................................................................... 231 Arquitectura de los Servicios de Informes ................................................................................................. 212 Implementación ................................................. 183 TSQL ................. 193 Tablas de soporte.................................................................................. 213 Implementar ensamblados ....... 194 Creación de un desencadenador ............. 229 Eje SQL Server 2008 Reporting Services ............................................................................................................... 232 Navegador de Internet ............................................................................................... 213 Procedimientos almacenados CLR . 229 TriggerContext ........................... 235 P á g i n a | 10 .................................................................................. 234 Herramienta de Configuración del Servidor de Informes ................................................................................... 199 Los desencadenadores en el Management Studio ....... 192 ¿Restricciones?.............................................................................................................................................................................................................................................................................. 226 Merge ............................................................................................................................................................................................ 197 Desencadenadores DDL ........................................................................ 167 Funciones definidas por el usuario .......................................... 166 Depuración ................................ 221 Funciones de tabla .................................................................................................................................................................................................. 208 Atributos ............................................................................................................................. 223 Agregados.................................................................................................................................................................................................................................................................... 216 Funciones CLR .........................................................................................................................................

....... 264 Cláusula DISTINCT....................................................................................................................... 262 MIN / MAX ........................................................................................................................................................................................................................................................................................................................................................................................................................................ 237 Bases de datos del servidor .......................................................................... 262 AVG ............................................................................... 248 Estructura de un informe ........ 267 INNER JOIN .............. 278 P á g i n a | 11 . 258 ORDER BY .......... 236 Extensiones .................................................................................................................... 237 Diseño de Informes .................................................................................................................................................................................... 263 COUNT .................................................................................................................................................................................................................................................................................................................................. 245 Conjunto de datos (dataset) ...................... 237 Extensiones de Distribución... 257 La cláusula WHERE ...................................................................................................................... EXCEPT & INTERSECT ........................................................ 265 INSERT ............................... 269 FULL JOIN....... 261 Agregados ......................................... 236 Interfaces de programación .............. 271 Caso práctico ............ 268 OUTER JOIN ................................................................ 270 UNION............................................................................................................................................................................................................................................................................................................................................................................................................................................... 272 LINQ to SQL ................................................................... 247 Elementos independientes......................................... 237 Extensiones de Proceso de datos .................................... 236 Capa de servidor ............... 266 DELETE ............................................................................................................................................................................................................................................... 237 Autenticación ....... 236 Procesadores ................................................ 266 UPDATE ................................... 235 Aplicaciones personalizadas ................................................................................................................................................................................................................................................................................................................................................................................................................................................... 260 GROUP BY ....................................................................................... 246 Regiones de datos .................................................................................................................................................................... 237 Extensiones de presentación ............................................................................................................................................................................................................................................................... 238 Diseño de un informe ........................................... 236 Servicio de Windows ......... 274 Herramientas de generación de Entidades .... 237 Capa de datos ................... 256 Consultas para la devolución de datos ........................................................................................................................................................................................................... 274 Modelo Objeto/Relacional...................................................................................................................................................................... 276 Visual Studio LINQ to SQL Designer ..............................................................................................................................................................de l ec tur a SQL Server Management Studio.................................................................................................................................................................................................................................................................................................................................... 244 Elementos de Datos ............................................................................................. 276 Uso de SQLMetal........... 244 Origen de datos (DataSource) ....................................................................................................................................................................... 264 Cláusula HAVING ......................................................................................... 237 Extensiones de Proceso de Informes ....... 238 Asistente para la Generación de Informes ................ 248 Implementación de un informe ............................................................................................................................................... 246 Elementos del Informe ............................................................................................................................................................................................................................................................................................................ 236 Servicio Web ................................................................................................................ 252 Eje mp lo Soporte para consultas ....................................................................................................................................................... 265 Modificación de datos ...................................................................... 267 Combinación de tablas ...................................................

................................................................................... 300 Uso del tipo de datos xml .................................................. 312 Programa de Servicio .............................................................. 310 Ventajas de Service Broker ...................................................................................................................................................................................................................................................................................................................................................... 292 Creación de una consulta para construir la tabla universal ................................................................................................................................................................................................. 305 El método query ....................................... 312 Contrato ....................................................................... 280 mp lo de l ec Uso de XML .............. 313 Mensaje .................................................................................................................................................................................................................. 312 Cola ........ 295 Recuperación de datos utilizando el modo PATH....... 313 Arquitectura de conversación de Service Broker .................................................................. 305 El método exists ........................................................................................... 310 ¿Qué es el Service Broker?.................................................................................................................................. 301 El tipo de datos xml........................................tur a Consultar con LINQ to SQL ...................................... 315 Enlace de servicio remoto.................................................................................................................. 299 Uso de una declaración de esquema ............................................................................................ 284 Recuperación de datos como elementos ........................... 298 Quitar el árbol mediante sp_xml_removedocument .................................................................................................................................................................................................. 311 Usos Típicos de Service Broker ........................................................ 303 Instrucciones FLOWR .................................................................................. 288 Recuperación de datos como elementos ........................................................................................................................................................................................................................................................................................................................................................... 297 Creación del árbol mediante sp_xml_preparedocument ........................................ 292 Definición de asignaciones de columna en una tabla universal .......................... 293 Modo PATH ............................................ 288 Recuperación de datos anidados utilizando el modo AUTO ......................................................................... 314 Ruta .......................................................................................................... 281 Introducción a la cláusula FOR XML .................................. 302 XQuery .. 314 Grupo de conversación ....................... 314 Conversación de diálogo ............................................ 291 Tablas universales .................................. 311 Tipo de mensaje ..... 281 Recuperación de XML mediante FOR XML .. 312 Servicio.................................................................................................................................................................................................................................................................................. 289 Modo EXPLICIT ..... 296 Proceso de fragmentación de datos XML.......... 306 El método modify........................................................... 282 Modo RAW...................... 298 Sintaxis de OPENXML ..................................................... 279 Resumen ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 315 P á g i n a | 12 ................................ 306 El método nodes ......................................................................................... 303 Los métodos query................................................................................................................. 284 Recuperación de datos en elementos de fila genéricos ...................................................................................................................................................................................................................................................................................................................................................................... 285 Recuperación de datos utilizando un elemento raíz y nombre de elemento de fila personalizado........................................... 297 Procedimientos Almacenados para administrar árboles de nodos en memoria ................ value y exist ............................................................................................................................ 303 Sintaxis de XQuery .................... 295 Fragmentación de XML mediante OPENXML . 305 El método value..................................................................................... 311 Arquitectura del sistema de Service Broker ........................................................................................................................................................................................................................................................... 285 Modo AUTO ..................................................................................................................................................................... 307 Eje Service Broker .........................................................

....................................................................................................................................................................................................................... 332 Actualizar datos FILESTREAM ......... 331 Habilitar FILESTREAM ..... 335 FilestreamPath ............................................... 333 Administrar daos FILESTREAM usando Win32 ...................................... 339 Cómo mover una base de datos habilitada para FILESTREAM ................................................................................................. 341 Prácticas recomendadas.......................................................................................................... 322 Envío y recepción de mensajes ..................................................................................................................... 333 Leer el contexto de la transacción .................................................................................................................................................................................................... 350 P á g i n a | 13 .......................... 335 FilestreamTransactionContext ............................................................................................................................................... 341 Diseño físico de base de datos ................................................................................................................................................................................. 337 Abrir un BLOB de FILESTREAM para acceso de lectura ...................................... 343 Datos espaciales ................................................................................................... 330 Seguridad Integrada .................................................................................................................................................................................................................................................................. 337 Abrir y cerrar varios archivos BLOB de FILESTREAM .................. 342 Datos Espaciales ...................................... 335 DesiredAccess ............................................................. 325 Eje mp lo de l FILESTREAM...........ec tur a Proceso de conversación de Service Broker .............. 323 Sintaxis para enviar mensajes ........................................................................................................................................................... 347 Elementos de GML ................................................................................................................................................................ 335 OpenOptions ....................................................................... 339 Crear una base de datos habilitada para FILESTREAM ..................................... 340 Crear una tabla para almacenar datos FILESTREAM ......................................................................... 317 Certificados .................................................................................................................................................... 318 Sintaxis para crear tipos de mensajes ............................ 315 Arquitectura de seguridad de Service Broker ............ 343 Poblar datos espaciales ..................................................................................................... 321 Sintaxis para crear servicios ......................................................... 331 Administrar datos FILESTREAM usando Transact-SQL .......................................................................................................................................................................................................................................................................................................................................................................................................... 334 Parámetros............................................................................................................. 319 Sintaxis para crear colas ........................................................................... 336 FilestreamTransactionContextLength ....................................................................... 333 Leer la ruta de acceso al archivo ........................ 329 Uso de FileStream....................................... 337 Abrir un BLOB de FILESTREAM para acceso de escritura ............................................ 336 Ejemplos .............................................................................................................................................................................. 333 Eliminar datos FILESTREAM ........................ 317 Seguridad de transporte ...................................... 344 GML ............................................................................................................................... 317 Creación de objetos de Service Broker .............................................. 338 Cómo crear una base de datos habilitada para FILESTREAM ............................................................................................. 338 No se puede cerrar un cursor................................................................................................................................................................................................................ 336 AllocationSize......................................... 323 Sintaxis para recibir mensajes .......................................................................................... 330 Administración Integrada .......................... 341 Configuración física y mantenimiento .............................................. 347 Objetos Geométricos ........................................................................................................... 318 Sintaxis para crear contratos ................................................................................................... 330 Almacenamiento de FileStream ........................................................................................................ 336 Conflictos entre Win32 y Transact-SQL ................................................................................................. 334 La API OpenSqlFilestream ................................................................................. 317 Seguridad de Diálogo ........................................ 334 Obtener un identificador de archivos de Win32 .................................................................................................................................................................................................................................................................................................................

.................................................................................................................................................................... 356 Listado de envíos a clientes..... 351 Tres Dimensiones ............................................................................................................................ 357 Total ventas por comercial .............................................................................................................................tur a Polígonos..................................................... 356 Listado de clientes por comercial .................................................................. 356 Listado de clientes potenciales por comercial ......................................... 357 Listado de productos bajos en stock ....................................................... 358 P á g i n a | 14 ............................................................................. 357 Listado de pedidos a proveedores................ delimitadores interiores y Multipolígonos ...................................... 351 Eje mp lo de l ec Resolución Caso Práctico ..........................

orientados a bases de datos de gran tamaño. con funcionalidad limitada y no demasiado potente. comienza a ser un serio competidor para sistemas como Oracle.tur a ec de l lo Introducción Introducción mp SQL Server 2008 es la última versión del Sistema Gestor de Bases de Datos de Microsoft para el mercado empresarial. Microsoft y Sybase deciden no continuar su unión con SQL Server. y no era más que una pequeña base de datos. aunque solo está disponible para la plataforma Windows. En 1994.2 desarrollada en 1993. Esta última versión muestra grandes avances con respecto a sus predecesora (sobre todo SQL Server 2000) y. el sistema operativo OS/2 fue desarrollado conjuntamente por IBM y Microsoft para dar soporte a Sybase SQL Server La primera edición de SQL Server para Windows fue la 4. además de IBM y Ashton-Tate. Eje SQL Server surgió de la colaboración entre Microsoft y Sybase. SQL Server 4. P á g i n a | 15 . (compatible con Windows NT). todas ellas con ediciones de 32 y 64 bit. Esta última versión cuenta con varias ediciones. incluyendo una versión gratuita (SQL Server Express). De hecho. La primera versión fue desarrollada para OS/2 en 1988.2 era una base de datos para pequeños entornos (desktop database). Esto originó una nueva versión de SQL Server por parte de Microsoft en 1995.

Para comprender este movimiento en torno al RDBMS (Relational DataBase Management System) de Microsoft. y un largo etc. Lo bueno es que Microsoft consiguió alcanzar estos objetivos sin sacrificar la facilidad de uso y el gran número de herramientas de desarrollo. en el año 2001 Oracle cedió su posición de dominio. Esta situación siguió su curso en 2002. ec Con SQL Server 2000.NET. que no es más que una versión reducida de Visual Studio 2008. aumentan el rendimiento.0. contra el 40%). El gran número de mejoras en cuanto a rendimiento. pasando el testigo a SQL Server (34% del mercado. Esta nueva herramienta permite gestión multiservidor tanto de servidores OLTP como de servidores OLAP o gestión de funciones adicionales. así como la integración con Visual Source Safe. En esta versión se introdujeron una serie de mejoras en cuanto a rendimiento y funcionalidad que permitían considerar a este sistema adecuado para gestionar bases de datos de pequeños negocios o aplicaciones de Internet. escalabilidad y robustez.tur a La primera versión independiente de SQL Server fue la 6. la escalabilidad y la estabilidad del servidor y. nos encontramos con soporte completo para XML. Esta nueva herramienta sirve P á g i n a | 16 . De hecho. y posibilita el uso de funciones de búsqueda y manipulación en código XML. fue lanzada en 1996. que agrupa y amplia la funcionalidad de ambos. de l La última versión de SQL Server es capaz de competir con grandes sistemas como Oracle o DB2. En 1998. Groupama. o el Analizador de Consultas de SQL Server 2000 dejan paso al SQL Server Management Studio (SSMS). que posibilita el trabajo en grupo y el control de código fuente. potencia y facilidad de uso. Además. situaron a SQL Server como alternativa a otros sistemas tales como Oracle o DB2 en el entorno de negocios de tamaño medio. Esta versión ya está dirigida al entorno empresarial. junto con la facilidad de uso y coste del sistema de Microsoft. Muchas organizaciones de gran tamaño adoptaron en su día SQL Server 2000 y lo hacen hoy con SQL Server 2005 y 2008. mp Entre las nuevas características. así como la gran cantidad de características y aplicaciones auxiliares. la 6. incluidas en el producto sin coste adicional. Microsoft lanzó SQL Server 7. El Administrador Corporativo. gestión y análisis incluidas en SQL Server. La siguiente versión. etc. También permite la validación de la estructura del propio documento contra esquemas XSD. como Xerox. hay que unir que las cifras de las pruebas rendimiento (benchmarks) a las que se someten a SQL Server se acercan a las cifras de Oracle. Una nueva característica muy interesante es la posibilidad de crear una solución. lo que permite una gestión más eficaz de proyectos de desarrollo. SQL Server incorpora una nueva herramienta denominada Business Intelligence Development Studio. Microsoft terminó de consolidar su posición en el mercado de los Sistemas Gestores de Bases de Datos. mientras que la de Oracle bajaba al 27%. en contraposición con la complejidad y elevado precio del sistema de Oracle.05.5. debido a su rendimiento. quizás la más llamativa sea el soporte para compatibilidad con . Esto permite la programación de ensamblados en C# o Visual Basic 2008 y su ejecución en SQL Server. incluyendo un nuevo tipo de dato XML. ING. que permite el almacenamiento de documentos de este tipo en formato nativo. lo que abre un gran abanico de posibilidades complementando la funcionalidad que proporciona T-SQL. cuando SQL Server aumentó su cuota al 45% del mercado. como XQuery o XPath directamente en el propio campo de la tabla. Nasdaq. Eje Las herramientas de configuración y mantenimiento también han sufrido una renovación completa. seguridad del servidor. permiten una configuración avanzada a nivel de servicios. Introducción a SQL Server 2008 lo SQL Server 2008 incluye una gran cantidad de nuevas características que permiten una gestión más racional y eficaz del mismo. que supuso un cambio en cuanto a su situación en el mercado de los RDBMS.

búsquedas de texto Eje · P á g i n a | 17 . · Enterprise: Esta es la versión completa. como particionado o indexación online.NET (CLR). pero elimina las opciones de alta disponibilidad.tur a para desarrollar proyectos de integración con . encriptación de datos. que como hemos visto antes. importación y exportación de datos. que describo a continuación: Express: Esta edición es la evolución del antiguo MSDE. replicación (transaccional y de mezcla). SSIS). También incluye un mejorado y ampliado entorno para los Servicios de Integración (SQL Server Integration Services. la alta disponibilidad y la escalabilidad son cruciales. Veamos un resumen de algunas de ellas: Funciones Básicas Todas las versiones soportan integración con . Posee muchas de las características de SQL Server. incorpora un pequeño entorno gráfico de administración y permite un máximo de 50 conexiones concurrentes (suficiente para cualquier entorno pequeño). adición de memoria en caliente. Contiene prácticamente todas las características. tipos definidos por el usuario. la versión gratuita de SQL Server 2000. las soportan todas. Integration Services o Reporting Services. conexión dedicada para el administrador. Sigue siendo gratuita y. o los Servicios de Integración. que es un entorno de trabajo diseñado para la distribución asíncrona de mensajería. contiene limitaciones en cuanto a CPUs soportadas y a licencias. la herramienta Management Studio. Cada versión soporta algunas características. SQL Server amplia y mejora los Reporting Services (SSRS). integración con Microsoft Baseline Security Analyzer (MBSA). herramientas de Reporting Services. autenticación y autorización avanzada. anteriormente conocidos como Data Transformation Services. como los Servicios de Análisis. pero no contiene las de alto nivel. optimización automática de Bases de Datos. indexación XML nativa. gestión de errores con estructuras TRY…CATCH. exceptuando las versiones Enterprise y Developer. · Workgroup: Está diseñada para entornos y departamentos pequeños y medianos. vistas y desencadenadores. procedimientos almacenados. pero al ser una versión destinada a entornos de prueba y laboratorio. o también otros como proyectos de Analysis Services. Otra de las nuevas características la constituye el Service Broker. · Standard: Esta versión está destinada al entorno medio. · Developer: Esta versión contiene todas las opciones. Service Broker. el nuevo tipo de dato XML. Está destinada al entorno empresarial de tamaño medio-grande. vistas de sistema. ec Todas estas características se agrupan dentro de SQL Server 2005 y ahora en 2008 clasificadas según sus distintas ediciones. escalable y robusta y. consultas recursivas.NET. la herramienta Express Manager (indicada para la versión Express y es gratuita). lo de l · Nuevas Características mp Las nuevas características soportadas por SQL Server 2008 se pueden dividir en dos grandes grupos: Funciones Básicas y Business Intelligence. donde el rendimiento. por supuesto. la más cara. aunque limitada. la más potente. Microsoft decidió publicar una versión reducida para SQL Server 2000. que aunque inicialmente fueron concebidos para aparecer con esta última versión del servidor.

online. indexación online de tablas y vistas. Reporting Services (incluyendo múltiples orígenes de datos). sincronización de servidores y escalado externo de servidores de informes. Vamos a repasar las más importantes. · La versión Standard no soporta cacheo automático de datos. suscripciones ligadas a datos. y muchas otras opciones.NET 2008. funciones analíticas y optimización de consultas tipo estrella. los Servicios de Notificación. o soporte para http. así como la programación de trabajos. o el traslado de los logs de transacciones a otra base de datos (Log Shipping). ec · de l Funciones de Business Intelligence Todas las versiones proporcionan soporte nativo para web services. y ahora utilizan la nueva interfaz de ayuda de . · La versión Express no soporta integración con el Management Studio. · La versión Standard no soporta particionado de tablas. su ámbito de aplicación se centra en la gestión avanzada de los servicios de soporte de SQL Server. y tampoco soporta el generador de informes para el usuario final.com/downloads/details.aspx?familyid=b352eb1f-d3ca44ee-893e-9e07339c1f22&displaylang=en) La versión Express no soporta búsqueda de texto completo en campos definidos para ello. que proporciona nuevos modelos de organización de datos. disponibilidad de la base de datos en operaciones de undo durante la restauración. el failover clustering. el profiler y otras herramientas. P á g i n a | 18 .microsoft. y los web services. Libros en pantalla Eje Los libros en pantalla de SQL Server han sufrido una buena revisión. algunas nuevas. y otras simplemente una evolución de las anteriores. lo · Herramientas de SQL Server 2008 mp La nueva versión de SQL Server trae consigo un buen puñado de nuevas herramientas. restauración de bases de datos online. replicación Oracle. para los cuales presenta un amplio abanico de opciones. integración de flujo de datos. los Servicios de Integración. búsquedas por preferencias. el Database Tuning Advisor (sustituye al Index Tunning Wizard). operaciones de indexación en paralelo. cubos particionados. SQL Server Configuration Manager Esta herramienta agrupa la funcionalidad de varias en la anterior versión de SQL Server. y el Data mining. y el Business Intelligence Development Studio. el Data warehousing. · La versión Workgroup no soporta el modelado de datos según el Modelo Dimensional Unificado (UDM). o optimización avanzada del rendimiento de modelos de minería. y en la configuración de red del servidor. writebacks en dimensiones y celdas. índices en vistas. Básicamente. proceso de cubos en paralelo. en local. · La versión Workgroup no soporta la funcionalidad de espejo (DB Mirroring).tur a completo en datos XML y manipulación con XQUERY y el Best Practices Analyzer (se puede descargar en: http://www. transformaciones avanzadas como minería de datos o minería de texto. para conocer su funcionalidad.

además de integrar un gran número de funciones que antes estaban disponibles como herramientas independientes.tur a El SQL Server Management Studio Eje mp lo de l ec El SQL Server Management Studio es la nueva herramienta de administración de SQL Server. P á g i n a | 19 . y representa una gran evolución frente a las versiones anteriores. Hereda su aspecto y algo de funcionalidad de Visual Studio 2008.

el diseño conceptual. el esquema de la base de datos no será estable. tiende a ser no tenido en cuenta a la hora de proceder al diseño de una base de datos. De ahí la importancia de realizar un buen esquema conceptual. Puesto que no se corresponde con ningún nivel de la arquitectura ANSI/X3/SPARC. o SGBD's concretos. Esto no es aconsejable. que constituye la primera etapa en el diseño de una base de datos. ya que el diseño lógico parte del esquema conceptual y. Como ya se ha dicho. con independencia de usuario o aplicaciones en particular y fuera de consideraciones sobre eficiencia del ordenador. Por lo tanto. sino que es un paso previo. viéndonos obligados a reajustarlo constantemente debido a las deficiencias arrastradas desde esta etapa de diseño.tur a ec de l lo Creación de los modelos Conceptual. el esquema conceptual debe representar la información fuera de consideraciones sobre hardware y sobre el SGBD sobre el que se implementará. si éste no es correcto. Otro error que se suele cometer en esta etapa de diseño es el de considerar aspectos tales como la eficiencia del equipo hardware en el que se vaya a montar la base de datos. consiste en obtener una buena representación de los recursos de información de la empresa. que represente fielmente las características del mundo real. o no representa fielmente la información del mundo real. se pueden establecer las siguientes características que debe cumplir un buen esquema conceptual: P á g i n a | 20 . Lógico y Físico mp Modelo Conceptual Eje Como ya se ha visto en el tema anterior.

Etapa de análisis de requisitos: En esta etapa se debe responder a la pregunta "¿Qué representar?". como representación del mundo real. Este primer esquema percibido bruto (como lo llaman Benci y Rolland). Aislar la representación de la información de los requisitos de máquina y exigencias de cada usuario en particular 3. por supuesto. El modelo entidad / relación mp El modelo E/R fue propuesto por Peter P. Aunque existen muchas respuestas sobre el modo de recoger dicha información. puede subdividirse a su vez en dos etapas: de l 1. Captar y almacenar el universo del discurso mediante una descripción rigurosa. etc. Existen muchas formas de representarlo. como ya se ha comentado.). el modelo E/R permite distinguir fácilmente y a simple vista. siguiendo el modelo E/R. Etapas del diseño conceptual ec La fase de diseño conceptual. Eje 2. Etapa de conceptualización: En esta etapa se debe responder a la pregunta "¿Cómo representar?". fidelidad. las relaciones existentes entre las distintas entidades. En ellos define dicho modelo como una vista unificada de los datos. que se apoye en un modelo de datos que cumpla determinadas propiedades (según Piattini y De Miguel): coherencia. lo 2. no redundancia. En ella se transforma el esquema obtenido en la primera. mediante refinaciones sucesivas. que es el más utilizado hoy en día. hasta llegar al esquema conceptual. sino distintos modelos según los autores. la más utilizada es el lenguaje natural que. Los objetivos que debe cumplir un esquema conceptual son los siguientes (Piattini y De Miguel): 1. Chen en dos artículos que publicó en los años 1976 y 1977. Dicho esquema se obtiene mediante el estudio u observación del mundo real (estudio de las reglas de la empresa. Independizar la definición de la información de los SGBD en concreto. Posteriormente se fueron proponiendo nuevas aportaciones al modelo. influirá positivamente en el resto de etapas. la única forma de hacerlo. entrevista a los usuarios. y le permite especificar los requisitos sin la intervención de formalismos. centrándose en la estructura lógica y abstracta de los datos. se ira refinando sucesivamente. El objetivo es elaborar un esquema descriptivo de la realidad.· Es independiente del SGBD · Es independiente del Hardware tur a Debe representar fielmente la información del mundo real. Éste se basa en una representación gráfica de una serie de entidades relacionadas entre sí. permite una mejor y más fácil comprensión de la información por parte del usuario. A continuación se describirá el proceso de creación de un esquema conceptual. por lo tanto. lo cual explica que no exista uno sólo. El modelo que se estudiará es el Modelo Entidad / relación (en adelante referido como ME/R o modelo E/R). Conviene no olvidar. con independencia de consideraciones de tipo físico. la que se utilizará aquí no es. Los elementos de los que se componen son los siguientes: P á g i n a | 21 . simplicidad. Al utilizar una representación de este tipo. que un buen diseño del esquema conceptual. plenitud. Se deberá obtener el esquema conceptual mediante una representación normalizada. etc. en el que se provean detalles de los datos a representar. aunque carece del formalismo que pueden infligir otros métodos.

Entidades: Una entidad es "una persona. Figura 3 4. Por ejemplo. lo cual se muestra en la Figura 2. Es decir. Dicha relación se puede establecer en ambos sentidos: § Una persona posee un automóvil. se representa por un rectángulo. la Figura 1 representa la entidad automóvil. y § Un automóvil pertenece a una persona. que son capaces de identificar unívocamente una ocurrencia de una entidad. Se representa como indica la Figura 4. marca. de l ec 2. En el modelo E/R. cosa. Esto implica que los valores de los atributos clave no se pueden repetir para dos ocurrencias de la misma entidad. Los atributos de una entidad se colocan dentro del rectángulo que representa dicha entidad. hace referencia. con el nombre de dicha entidad escrito en la parte superior. Por ejemplo. Clave: La clave de una entidad es un atributo o conjunto de atributos de dicha entidad. Si tenemos dos entidades automóvil y persona. Relación: Una relación representa.Figura 1 tur a 1. modelo o color. con sólo conocer el valor del atributo matrícula. Atributos: Un atributo es cualquier característica que describe a una entidad. justo debajo del nombre de ésta. En nuestro ejemplo. Ej: una persona posee un automóvil. un atributo clave se representa subrayando dicho atributo. seremos capaces de conocer a que ocurrencia de entidad. si conocemos el valor de dichos atributos. Los atributos marca. ya que pueden existir dos automóviles distintos de la misma marca. En el modelo E/R. Figura 2 mp lo 3. lugar. Eje 5. modelo o color no identifican unívocamente una ocurrencia de la entidad. real o abstracto. como su propio nombre indica. concepto o suceso. ya que no existe una misma matrícula para dos automóviles distintos. Puede ser de tres tipos: § Cardinalidad 1-1: cada ocurrencia de una entidad se relaciona con una ocurrencia de otra entidad. podemos tener una relación entre ellas. entre todas las posibles. una correspondencia entre dos entidades. se puede decir que un automóvil tiene las siguientes características: nº de matricula. Cardinalidad de una relación: La cardinalidad de una relación representa el número de ocurrencias que se pueden dar de una relación. modelo y color. P á g i n a | 22 . seremos capaces de identificar de que automóvil estamos hablando. de interés para la empresa" (ANSI 1977).

sino que además se necesita conocer el código del edificio al que se hace referencia. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad y viceversa. Cardinalidad máxima de una relación: representa el número máximo de ocurrencias de una entidad con las que se puede relacionarse otra entidad. Cardinalidad mínima de una relación: representa el número mínimo de ocurrencias de una entidad con las que se puede relacionarse otra entidad.tur a Figura 4 ec § Cardinalidad 1-N: también llamada uno a muchos.: una persona posee varios automóviles. ésta última es una entidad débil. Entidad débil: se dice que una entidad es débil. Ej. de l § Figura 6 lo 6. en una relación se suele representar conjuntamente las cardinalidades máxima y mínima.: una persona puede tener como máximo tres automóviles. si tenemos las entidades edificio (con el atributo clave codigo_edificio) y planta (con el atributo codigo_planta). Eje 8. o es dependiente de otra. Se representa como aparece en la Figura 6.: un automóvil debe pertenecer como mínimo a una persona. ni siquiera conociendo su clave. Por ejemplo. Figura 5 Cardinalidad N-M: también llamada muchos a muchos. Ej. cuando no somos capaces de conocer a que ocurrencia de entidad nos estamos refiriendo.: una persona posee varios automóviles y un automóvil puede pertenecer a varias personas. Ej. ya que no somos capaces de identificar una planta con sólo conocer el código de la planta. sino que debemos conocer el valor de algún otro atributo de otra entidad. En los anteriores casos no se han considerado las cardinalidades mínimas. para determinar la planta dentro del edificio. Cada ocurrencia de una entidad puede relacionarse con varias ocurrencias de otra entidad. Éstas vienen a representar la P á g i n a | 23 . mp 7. Ej. Se representa como muestra la Figura 5. Figura 7 En general.

Como se podrá comprobar. pero puede que no tenga ninguno (cardinalidad mínima 0). (nos fijaremos sólo en un sentido de la relación. por ejemplo. Esto significa que en el modelo no interesa tener información de aquellos profesores que no dan clase. Figura 11 En el siguiente ejemplo. en la que un profesor puede dar clase a muchos alumnos (cardinalidad máxima N). Veamos a continuación unos ejemplos para comprender mejor las cardinalidades máxima y mínima. si se tienen las entidades alumno y asignatura. es decir. pero como mínimo debe hacerlo a uno (cardinalidad mínima 1). se tiene una relación 1-1 en la que una persona puede tener un automóvil como mucho (cardinalidad máxima 1). las cardinalidades de una relación se ponen en la última relación a la que se hace referencia. Esto significa que el modelo interesa tener información de todas las personas. aunque no tengan automóvil. Figura 9 mp lo En la Figura 10. la cardinalidad de la relación un alumno cursa asignaturas. si dicha ocurrencia se debe dar obligatoriamente. sin la posibilidad de que exista un automóvil que no tenga dueño (cardinalidad mínima 1). Los tipos de cardinalidades son los que aparecen en la Figura 8. o si por el contrario se puede obviar. en la que una persona puede tener varios automóviles (cardinalidad máxima N). o puede no tener ninguno (cardinalidad mínima 0). de l En el siguiente ejemplo (Figura 9). Figura 10 Eje En el siguiente ejemplo (Figura 11). Esto significa que en el modelo no interesa tener información de aquellas personas que no tengan automóvil.ec Figura 8 tur a opcionalidad de la ocurrencia de una entidad en una relación. se tiene una relación 1-1 en la que un automóvil pertenece a una única persona (cardinalidad máxima 1). Esto P á g i n a | 24 . se tiene una relación 1-N. el de la izquierda). se pondrá al lado de la entidad asignatura. se tiene una relación N-N.

de l ec Para concluir esta sección se verá un ejemplo completo que representará todos los conceptos vistos hasta ahora. a su vez. mp lo Lo más destacable del anterior ejemplo es la entidad préstamo. Supongamos que se desea establecer un modelo conceptual para la gestión de una biblioteca. Esto quiere decir que sólo se guardará información de las entidades cuando exista. aunque todavía no se haya realizado ningún préstamo. Se desean tener almacenados todos los libros que la componen. Se dispone. Es una entidad débil que depende de libro y de socio. De la editorial se desea conocer el nombre y la ciudad. de la misma forma que en un libro pueden participar varios autores. de un único ejemplar de cada libro. simplemente quédese con la idea general de la construcción del esquema. por lo que un libro prestado a un usuario. se necesita saber no sólo el libro. el título. Deberá quedar constancia de la fecha de préstamo de cada ejemplar. ya que para diferenciar un préstamo de otro. De ellos se quiere saber su DNI. lo cual es lógico. aunque no tengan automóvil. que es una herramienta CASE que abarca gran parte del ciclo de vida de las aplicaciones. Figura 13 Eje Ejemplos prácticos de diseño conceptual A continuación resolveremos unos problemas de diseño conceptual. al menos. son las que tienen como origen o destino a la entidad préstamo. Por cuestiones directivas. Un autor podrá haber escrito varios libros. ya que tendremos información de todas las entidades. el año de publicación y la materia. Para cada libro interesa conocer el ISBN. número de socio. También se pueden observar que las cardinalidades mínimas son 1. no podrá ser prestado a otro hasta que se devuelva.Figura 12 tur a significa que en el modelo interesa tener información de todas las personas. una ocurrencia de la entidad. No se preocupe si no conoce la herramienta. incluyendo el diseño de esquemas conceptuales. apellidos. dirección y teléfono. ya que se verá en detalle en próximos temas. el autor o autores. Para realizarlos se utilizará la S-Designor. apellidos y nacionalidad. para ir familiarizando al lector con los conceptos vistos hasta ahora. sino el socio al cual se ha prestado. se limita el número de ejemplares prestados a cada usuario a uno. nombre. Las únicas relaciones que tienen cardinalidad opcional. A dicha biblioteca podrán estar suscritos varios usuarios. la editorial. P á g i n a | 25 . De cada autor se quiere conocer su nombre.

3. pero un disco sólo puede ser comprado por un cliente 1-N. Pues ya tenemos la tercera entidad. Entre disco y canción: en un disco pueden aparecer varias canciones. y para cada uno de ellos se desea conocer su nombre y apellidos. Por otro lado se desea almacenar todos los artistas que intervienen en los discos de nuestra tienda. Además. Para ello se desean tener almacenados los nombres de todos los discos disponibles. Pues bien. dirección y teléfono. podemos establecer los discos que se venden. apellidos. así como una breve descripción de éstos. por lo tanto establece una entidad. por lo tanto ya tenemos identificada una segunda entidad. y que podrán estar identificados internamente por un código de cliente. Entre cantante y canción: un cantante puede componer varias canciones. Empezamos identificando entidades. dirección y despacho. el esquema conceptual es que muestra la Figura 15: Figura 15 Vamos a plantearnos otro problema. como puede ser un código que lo identifique dentro de la estantería. apellidos. empezaremos identificando las entidades. de l Figura 14 Una vez establecidas las entidades. y cada canción puede estar en varios discos (N-M). 2. sólo nos queda relacionarlas. De un profesor se desea conocer su nombre y apellidos. entendiendo por entidad un grupo de características que tienen entidad propia. y una canción puede estar compuesta por varios cantantes (N-M). de los cuales se desea almacenar su nombre. Podemos observar las siguientes relaciones: 1. Otra entidad podría ser el alumno. Eje mp lo Por lo tanto. Entre cliente y disco: un cliente puede comprar varios discos. ya que se desea conocer información de ellos. se desea conocer todas las canciones que están disponibles en los discos. Ni P á g i n a | 26 . dirección y teléfono. La cuarta estará formada por los clientes.ec tur a El problema que nos planteamos es el siguiente. Como primera entidad. identificada cada una de ellas por un código de canción. además de sus cantantes y canciones. Supóngase que se desea informatizar una tienda de discos. y los alumnos a los cuales se les ha impartido. y que además tendrán sus propias letras. del cual se desea conocer su nombre. Así mismo se desean almacenar los clientes que han comprado en dicha tienda. Supongamos que se desea tener almacenados todos los datos de los profesores de una empresa dedicada a impartir cursos.

La principal ventaja de este procedimiento radica en que muchas veces supone un ahorro de espacio de almacenamiento (por ejemplo al identificar nombres de ciudades largas con un solo número) además de una estandarización de los datos almacenados (el estado sólo se almacena una vez). muy usado en el diseño conceptual. de la cual se desea conocer su descripción. ec 1. podemos recurrir a un procedimiento muy usual. Alumno y Ciudad: un alumno vive en una ciudad. Una vez establecidas las entidades.tur a que decir tiene que el curso describe otra entidad. vamos a definir las relaciones entre ellas. Eje mp lo Por lo tanto. sólo deberemos especificar el código de la ciudad. Alumno y Curso: un alumno puede asistir a varios cursos. Por ejemplo podemos tipificar las ciudades. Profesor y Curso: un profesor puede impartir varios cursos. donde se almacenará un código y la descripción de la ciudad. denominado tipificación de estados. pero un curso sólo puede ser impartido por un profesor (1-N). de l 3. Figura 16 Figura 17 P á g i n a | 27 . para lo cual creamos una nueva entidad ciudad. y que consiste en tener una entidad que tipifique los posibles estados que puede tomar un atributo. el esquema conceptual es el mostrado en la Figura . 2. y a un curso pueden asistir varios alumnos (N-M). Sin embargo. Cuando almacenemos la ciudad de un alumno. y una ciudad puede tener varios alumnos (1-N).

lo 5. desea almacenar todos los componentes de su consejo de administración (actuales y ex-miembros) así como todas las actas de las reuniones ordinarias y extraordinarias. este ejemplo es un poco más complejo. y si el cargo es vigente o no. y esta compuesto por un código de tipo de cargo. dirección y NIF. pero no desespere. Tipo_cargo: describe los posibles cargos que puede tomar una persona en el consejo de administración. Consejo: establece los componentes del consejo de administración. Para ello se almacenará el nombre. Figura 18 P á g i n a | 28 . Producto: del cual queremos saber su descripción y estará identificado por un código interno cod_producto. además de los productos que puede ofrecer a éstos. extraordinaria. nombre y CIF. Reunión: entidad encargada de describir la información de las actas de las reuniones. que especifica si la reunión ha sido ordinaria o extraordinaria y una descripción. fondos de inversión. para poder mejorar su política de inversiones. Puesto que dicho banco esta constituido como sociedad anónima. 4. de l 1. Como habrá podido observar. Supóngase un banco que desea almacenar todos sus clientes. 3. apellidos y código de cargo de cada uno de sus componentes. Empezaremos definiendo entidades y las veremos representadas en la Figura .tur a Cabe destacar que el atributo calificación se da como consecuencia de la relación entre las entidades curso y alumno. De ellas se desea conocer su código. Cada cliente podrá escoger entre todos estos productos el o los que más le plazcan (créditos. Cliente: se desea conocer su nombre. ec Vamos a ver un último ejemplo. 2. libretas de ahorro. Empresa: identifica las empresas en las cuales el banco ha invertido. así como la oferta de nuevos productos. fecha. Eje mp 6. etc. y una descripción del mismo (secretario.). Las decisiones de inversión en estas empresas saldrán como resultado de dichas reuniones. De la misma forma. Podremos utilizar una nueva entidad que tipifique los tipos de cargo. Por lo que podrá ser introducido en la entidad intermedia que surja cuando se haga el paso a tablas (véase siguiente capítulo). por lo que desea conocer en todo momento la situación de dichas empresas. Sus atributos son cod_reunión.). apellidos. y estará identificado por un código interno cod_cliente. etc. el proceso es similar al de los demás ejemplos. presidente. dicho banco tiene intereses en otras empresas.

Cliente y producto: cada cliente puede escoger varios productos. Al igual que en el caso anterior. una buena forma de describirlo es utilizando el lenguaje de definición de datos (LDD) del producto especifico utilizado (en el caso de SQL-SERVER. Reunión y consejo: a cada reunión pueden asistir varios miembros del consejo de administración. jerárquico. 2. se elabora el esquema lógico específico (ELE). y teniendo en cuenta los requisitos de proceso. INFORMIX.). el diseño lógico de una base de datos consta de dos etapas: el diseño lógico estándar y el diseño lógico específico. Su representación gráfica aparece en la Figura : 1. Reunión y empresa: de cada reunión pueden salir decisiones de invertir en más de una empresa. lo 4.tur a ec de l Figura 19 Identifiquemos ahora las relaciones. mp Modelo Lógico Eje Como ya se ha señalado. etc. y cada decisión de inversión sólo sale de una reunión. y cada cargo puede pertenecer a más de un miembro. Una vez obtenido el ELS. Una buena forma de describir el ELS es utilizando el lenguaje estándar del MLS (por ejemplo SQL). etc. En el diseño lógico estándar. y cada miembro puede asistir a más de una reunión. que se apoya en un modelo lógico estándar (MLS). P á g i n a | 29 . SQL-SERVER. ya que ambos dependen mucho del SGBD que se utilice. y considerando el modelo lógico específico (MLE) propio del SGBD a usar (ORACLE. y cada producto puede ser ofrecido a varios clientes. 3. de construye un esquema lógico estándar (ELS). pero sin las restricciones de ningún producto comercial en concreto. El diseño lógico específico está muy ligado a la fase de diseño físico. 5.). se toma el esquema conceptual resultante de la fase de diseño conceptual. Consejo y cargo: un miembro del consejo sólo tiene un cargo. Reunión y producto: de cada reunión puede salir la oferta de más de un nuevo producto pero cada producto nuevo sólo puede salir de una reunión. que será el mismo modelo de datos soportado por el SGBD a utilizar (relacional. se usará el TRANSACT SQL). En nuestro caso se utilizará el MLS relacional.

a partir del esquema conceptual obtenido en la primera fase. con los atributos clave de ambas entidades. importa la clave de la entidad editorial. A su vez. la desnormalización. es decir. cada entidad genera una tabla. Las reglas que permiten pasar del modelo E/R al esquema lógico. P á g i n a | 30 . · Cada relación N-M genera una tabla: las relaciones entre entidades con cardinalidad N-M generan una tabla.tur a En la fase de diseño lógico. importa la clave de la otra entidad. Paso del esquema conceptual al esquema lógico estándar Lo primero que hay que realizar en la fase de diseño lógico. A su vez. con sus propios atributos. la entidad con cardinalidad N importa los atributos clave que contiene la entidad con cardinalidad 1.. cod_cliente. Posteriormente. El esquema de las tablas resultantes es el que se muestra en la Figura . a la que denominaremos Libro_autor mantiene la información de los códigos de libros junto con los códigos de autores. · Cada relación dependiente. mantiene información de qué libros han sido prestados a qué usuarios y en qué fecha. tanto del libro como del autor. son las que a continuación se explican: Cada entidad se transforma en una relación: esto es. está relacionada con la entidad autor. nombre. es decir. la entidad libro. con los atributos de la entidad Préstamo además de las claves de las entidades de las que es dependiente. la cardinalidad es N-M. es decir. como por ejemplo la normalización. con cardinalidad N. la entidad cliente generará su propia tabla. con sus mismos atributos. cuyo esquema conceptual es el que muestra la Figura . como clave. se deberá acceder a sendas tablas. la entidad disco generará una tabla con sus atributos. que ya se verán más adelante en este tema. cod_cliente. y concretando las tablas que generarán: 1. MLE. que entrarán como claves en dicha tabla. Esta tabla. Por último se dispone de la entidad Préstamo. apellidos y teléfono. de l ec · mp lo Para entender mejor el funcionamiento de este método. La entidad editorial está relacionada con la entidad libro con cardinalidad 1-N. que es dependiente tanto de la entidad Libro como de la entidad Usuario. pero en este caso. etc. Esta última relación obtenida. por lo tanto. en la que se almacenarán las claves de ambas entidades. ISBN y Num_socio. e importará el atributo clave de la entidad con cardinalidad 1. Figura 20 Eje Veamos ahora el paso a tabla de otro ejemplo visto en el tema anterior. además de las herramientas ya descritas (MLS. Empezaremos identificando las relaciones. Cliente-Disco: puesto que es una relación 1-N. incluyendo las claves. si se desea extraer más información. · En cada relación 1-N. es obtener el esquema lógico estándar. con cardinalidad 1. lo que implica que se generará una tabla intermedia. veamos el paso a tablas del ejemplo visto en el tema anterior acerca de la gestión de una biblioteca. se disponen de otras que permiten establecer un buen diseño lógico. lenguajes SQL). lo que quiere decir que se generará una tabla.

Sign up to vote on this title
UsefulNot useful