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.

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

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 .

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

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

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

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

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

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

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

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

orientados a bases de datos de gran tamaño. incluyendo una versión gratuita (SQL Server Express). P á g i n a | 15 . La primera versión fue desarrollada para OS/2 en 1988. Esta última versión cuenta con varias ediciones. 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. En 1994. todas ellas con ediciones de 32 y 64 bit. Eje SQL Server surgió de la colaboración entre Microsoft y Sybase. con funcionalidad limitada y no demasiado potente. Esto originó una nueva versión de SQL Server por parte de Microsoft en 1995. aunque solo está disponible para la plataforma Windows. además de IBM y Ashton-Tate. Esta última versión muestra grandes avances con respecto a sus predecesora (sobre todo SQL Server 2000) y. y no era más que una pequeña base de datos. comienza a ser un serio competidor para sistemas como Oracle. De hecho. SQL Server 4. (compatible con Windows NT). Microsoft y Sybase deciden no continuar su unión con SQL Server.2 desarrollada en 1993.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.2 era una base de datos para pequeños entornos (desktop database).

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

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

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

P á g i n a | 19 . además de integrar un gran número de funciones que antes estaban disponibles como herramientas independientes. Hereda su aspecto y algo de funcionalidad de Visual Studio 2008. y representa una gran evolución frente a las versiones anteriores.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.

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

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

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

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

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

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

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

Profesor y Curso: un profesor puede impartir varios cursos. ec 1. y una ciudad puede tener varios alumnos (1-N). Sin embargo. Figura 16 Figura 17 P á g i n a | 27 . sólo deberemos especificar el código de la ciudad. donde se almacenará un código y la descripción de la ciudad. y que consiste en tener una entidad que tipifique los posibles estados que puede tomar un atributo. para lo cual creamos una nueva entidad ciudad.tur a que decir tiene que el curso describe otra entidad. Alumno y Curso: un alumno puede asistir a varios cursos. Una vez establecidas las entidades. Eje mp lo Por lo tanto. de l 3. Por ejemplo podemos tipificar las ciudades. el esquema conceptual es el mostrado en la Figura . Alumno y Ciudad: un alumno vive en una ciudad. y a un curso pueden asistir varios alumnos (N-M). pero un curso sólo puede ser impartido por un profesor (1-N). Cuando almacenemos la ciudad de un alumno. denominado tipificación de estados. podemos recurrir a un procedimiento muy usual. 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). de la cual se desea conocer su descripción. vamos a definir las relaciones entre ellas. 2. muy usado en el diseño conceptual.

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

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

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