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.

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

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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful