Está en la página 1de 30

tur

a
ec

de
l

Diseo y programacin de bases de


datos con SQL Server 2008

Eje

mp

lo

Pedro Lpez-Belmonte / Aroa Solana

tur
a

Sipnosis

En este manual se tratan las diferentes tareas necesarias para llevar a cabo el diseo de una base
de datos, y su implementacin en SQL Server 2008.
Desde las tareas de diseo de los diferentes modelos, hasta la implementacin fsica de los
diseos, pasando por la creacin 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

Tambin se exploran las caractersticas que aporta la ltima versin del sistema gestor de base
de datos de Microsoft, como la integracin 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 cartogrficos.

lo

Pedro Lpez-Belmonte es Licenciado en Ciencias Fsicas por la


Universidad Complutense de Madrid, con ms de 8 aos de experiencia
en el mundo del desarrollo, consultora y formacin. 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 tamao con .NET, SQL Server y SharePoint.
Cuenta con varias certificaciones, entre las que se encuentran MCAD,
MCTS SQL Sever & SharePoint. Tambin cuenta con la certificacin
MCT, y desde el comienzo de su carrera profesional ha impartido
formacin, una de sus pasiones.

mp

Aroa Solana Ruiz es Microsoft Certified IT Professional en Database


Developer, tambin 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 certificacin MCT (Microsoft Certified
Trainer) que la permite impartir un gran nmero de cursos oficiales de
Microsoft y trabajar como formadora en Alhambra-Eidos.

Eje

Ha impartido formacin sobre la tecnologa .NET, desarrollo de


aplicaciones Windows, Web, ADO, Distribuidas, WPF, WCF, WWF, Silverlight y UML, por
otra parte imparte formacin en administracin de bases de datos SQL Server y desarrollo de
bases de datos SQL Server, tanto en 2005 como en 2008. Adems posee experiencia en J2SE y
J2EE. Dentro de la gestin de procesos posee la certificacin ITIL V2 Foundations.

tur
a

Luarna

Diseo y programacin de bases de datos con SQL Server 2008

www.luarna.com

Madrid, octubre de 2009

de
l

ec

Pedro Lpez-Belmonte Alhambra Eidos


Aroa Solana Alhambra Eidos
De esta edicin: 2009, Luarna Ediciones, S.L.

lo

ISBN: 978-84-92684-59-5

Eje

mp

Versin 1.0 (21-10-2009)

Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta obra solo puede ser
realizada con la autorizacin de sus titulares, salvo excepcin prevista por la ley. Dirjase a CEDRO (Centro Espaol
de Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar, escanear o hacer copias digitales de algn
fragmento de esta obra.

tur
a
ec

Dedicatoria de Aroa Solana

Eje

mp

lo

de
l

Este libro, se lo dedico a las amigas que hice en la Facultad, sin ellas hubiera acabado loca,
adems de que siempre han estado ah tanto para lo bueno como para lo malo, por lo que quiero
decirles Gracias Elena, Laura, Ana y Vita!.

tur
a
ec
de
l

Diseo y programacin de bases de datos


con SQL Server 2008

Eje

mp

lo

Pedro Lpez-Belmonte
Aroa Solana

lo

mp

Eje
tur
a

ec

de
l

tur
a

Indice

ec

Introduccin .................................................................................................................................... 15
Introduccin .................................................................................................................................. 15
Introduccin a SQL Server 2008 ................................................................................................... 16
Nuevas Caractersticas .................................................................................................................. 17
Funciones Bsicas ..................................................................................................................... 17
Funciones de Business Intelligence............................................................................................ 18
Herramientas de SQL Server 2008 ................................................................................................ 18
Libros en pantalla ...................................................................................................................... 18
SQL Server Configuration Manager .......................................................................................... 18
El SQL Server Management Studio ........................................................................................... 19

lo

de
l

Creacin de los modelos Conceptual, Lgico y Fsico .................................................................... 20


Modelo Conceptual ....................................................................................................................... 20
Etapas del diseo conceptual ......................................................................................................... 21
El modelo entidad / relacin .......................................................................................................... 21
Ejemplos prcticos de diseo conceptual ....................................................................................... 25
Modelo Lgico ............................................................................................................................. 29
Paso del esquema conceptual al esquema lgico estndar ..............................................................30
Etapas en el diseo lgico ............................................................................................................. 31
Particionamiento horizontal de relaciones ...................................................................................... 32
Particionamiento vertical de relaciones .......................................................................................... 35
Particionamiento mixto ................................................................................................................. 37
Teora de la normalizacin ............................................................................................................ 38
Ejemplos prcticos de normalizacin............................................................................................. 42
Proceso de desnormalizacin......................................................................................................... 47
Modelo Fsico ............................................................................................................................... 48
Estrategias en el diseo fsico........................................................................................................ 48
Conceptos bsicos sobre gestin de ficheros .................................................................................. 49
Organizacin de ficheros ............................................................................................................... 49
Tcnicas para el aumento de eficiencia ..........................................................................................50

mp

Seguridad ........................................................................................................................................ 52
Inicios de sesin ............................................................................................................................ 52
Roles ............................................................................................................................................ 62
Funciones fijas de servidor ........................................................................................................ 62
Funciones de base de datos ........................................................................................................ 64
Funciones de aplicacin ............................................................................................................ 65
Esquemas ...................................................................................................................................... 68

Eje

Creacin de una base de datos ........................................................................................................ 72


Qu es una Base de Datos? ..........................................................................................................72
Archivos de una Base de Datos ................................................................................................. 73
Pginas ..................................................................................................................................... 73
Extensiones ............................................................................................................................... 74
Objetos de la Base de Datos ......................................................................................................75
Bases de Datos de Sistema ............................................................................................................76
Master .......................................................................................................................................76
TempDB ................................................................................................................................... 76
Model ....................................................................................................................................... 77
MSDB ...................................................................................................................................... 77
Elementos bsicos para la creacin de bases de datos .................................................................... 77
Management Studio .................................................................................................................. 77
Pgina |7

tur
a

CREATE DATABASE .............................................................................................................80


Grupos de archivos.................................................................................................................... 88
Creacin de un grupo de archivos .......................................................................................... 89
Uso de los grupos de archivos ................................................................................................ 90
Esquemas .................................................................................................................................. 91

Eje

mp

lo

de
l

ec

Creacin de tablas ........................................................................................................................... 94


Tipos de datos en SQL Server 2008............................................................................................... 95
CHAR ....................................................................................................................................... 95
NCHAR .................................................................................................................................... 95
VARCHAR ............................................................................................................................... 95
NVARCHAR ............................................................................................................................ 96
TEXT........................................................................................................................................ 96
NTEXT ..................................................................................................................................... 96
IMAGE ..................................................................................................................................... 96
INT ........................................................................................................................................... 96
BIGINT .................................................................................................................................... 96
SMALLINT .............................................................................................................................. 96
TINYINT .................................................................................................................................. 97
DECIMAL/NUMERIC ............................................................................................................. 97
FLOAT ..................................................................................................................................... 97
REAL ....................................................................................................................................... 97
MONEY ................................................................................................................................... 97
SMALLMONEY ...................................................................................................................... 97
DATETIME ..............................................................................................................................97
SMALLDATETIME ................................................................................................................. 98
TIMESTAMP ........................................................................................................................... 98
UNIQUEIDENTIFIER.............................................................................................................. 98
BINARY................................................................................................................................... 98
VARBINARY........................................................................................................................... 98
BIT ........................................................................................................................................... 98
XML ......................................................................................................................................... 99
CURSOR .................................................................................................................................. 99
TABLE ..................................................................................................................................... 99
SQL_VARIANT ....................................................................................................................... 99
Creacin de tablas ......................................................................................................................... 99
Modificar tablas .......................................................................................................................... 100
Eliminar tablas ............................................................................................................................ 101
Propiedades de las columnas ....................................................................................................... 102
Valores DEFAULT ................................................................................................................. 102
Valores IDENTITY................................................................................................................. 103
Integridad de los datos ................................................................................................................ 104
Integridad de Entidad .............................................................................................................. 104
Integridad de Dominio............................................................................................................. 105
Integridad Referencial ............................................................................................................. 105
Tipos de restricciones .............................................................................................................. 105
PRIMARY KEY ................................................................................................................. 105
FOREIGN KEY .................................................................................................................. 107
Restriccin UNIQUE........................................................................................................... 112
Restricciones CHECK ......................................................................................................... 113
Objetos RULE y DEFAULT................................................................................................ 116
RULE .............................................................................................................................. 116
DEFAULT ...................................................................................................................... 117
Consideraciones sobre las restricciones ................................................................................... 117

Creacin de ndices ....................................................................................................................... 119


Pgina |8

de
l

ec

tur
a

Qu es un ndice? ...................................................................................................................... 119


Tipos de ndices .......................................................................................................................... 120
ndices Agrupados (Clustered) ................................................................................................ 120
ndices No Agrupados (Nonclustered) ..................................................................................... 121
ndices no agrupados sobre una tabla ................................................................................... 122
ndices no agrupados sobre un ndice agrupado.................................................................... 122
ndices nicos...................................................................................................................... 123
Creacin de ndices ..................................................................................................................... 123
Especificar orden para los campos ........................................................................................... 125
Include ................................................................................................................................ 125
Factor de relleno .................................................................................................................. 126
Rellenar ndice .................................................................................................................... 127
Pasar por alto claves duplicadas ........................................................................................... 127
Volver a generar el ndice .................................................................................................... 128
Volver a calcular estadsticas ............................................................................................... 128
Almacenar resultados de orden intermedio en la base de datos tempdb ................................. 129
Permitir procesamiento en lnea de instrucciones DML ........................................................ 130
Usar bloqueos de fila y de pgina al tener acceso al ndice ................................................... 130
Grado mximo de paralelismo ............................................................................................. 130
Almacenamiento del ndice.................................................................................................. 131
Particin de ndices y tablas ........................................................................................................ 131
Funciones de particin............................................................................................................. 132
Esquemas de particin ............................................................................................................. 133
Crear tablas e ndices particionados ......................................................................................... 133
Modificar funciones y esquemas de particin .......................................................................... 135
Insertar y extraer tablas de particiones ................................................................................. 135
Mantenimiento de Particiones .............................................................................................. 137

lo

Creacin de vistas ......................................................................................................................... 138


Como crear vistas........................................................................................................................ 138
Encriptacin de la definicin ................................................................................................... 143
Enlazar a un esquema .............................................................................................................. 144
Comprobar criterios ................................................................................................................ 144
Modificar y eliminar vistas.......................................................................................................... 145
Vistas indexadas ......................................................................................................................... 145

Eje

mp

Procedimientos Almacenados ....................................................................................................... 147


Creacin de Procedimientos Almacenados .................................................................................. 148
Llamadas a procedimientos ..................................................................................................... 149
Procedimientos almacenados parametrizados........................................................................... 149
Valor de Retorno ..................................................................................................................... 151
Opciones Adicionales .............................................................................................................. 152
Estructuras de control de flujo y errores ...................................................................................... 153
IFELSE ............................................................................................................................... 153
WHILEBREAK .................................................................................................................. 154
CASE...................................................................................................................................... 155
WAITFOR .............................................................................................................................. 155
Gestin de Errores ...................................................................................................................... 156
La variable @@ERROR ......................................................................................................... 157
RAISERROR .......................................................................................................................... 160
Mensaje............................................................................................................................... 161
Severidad ............................................................................................................................ 162
Estado ................................................................................................................................. 162
WITH.................................................................................................................................. 162
Consideraciones de seguridad y rendimiento ............................................................................... 165
Pgina |9

tur
a

Seguridad ................................................................................................................................ 166


Rendimiento............................................................................................................................ 166
Depuracin ............................................................................................................................. 167
Funciones definidas por el usuario ............................................................................................... 172
Funciones escalares ..................................................................................................................... 173
Funciones de tabla ...................................................................................................................... 176
Funciones Deterministas y No Deterministas............................................................................... 179
Depuracin de funciones definidas por el usuario ........................................................................ 181

ec

Tipos de datos definidos por el usuario ........................................................................................ 183


Creacin del tipo de dato definido por el usuario ......................................................................... 183
TSQL ...................................................................................................................................... 184
Management Studio ................................................................................................................ 185

de
l

Desencadenadores (triggers)......................................................................................................... 191


Tipos de Desencadenadores ........................................................................................................ 192
Desencadenadores DML ......................................................................................................... 192
Restricciones?.................................................................................................................... 193
Tablas de soporte................................................................................................................. 194
Creacin de un desencadenador ................................................................................................... 194
Comprobar columnas .............................................................................................................. 197
Desencadenadores DDL .............................................................................................................. 199
Los desencadenadores en el Management Studio ......................................................................... 201
Consideraciones de rendimiento .................................................................................................. 205

mp

lo

Diseo de objetos SQL CLR ......................................................................................................... 206


Integracin con CLR ................................................................................................................... 206
Habilitar la integracin ............................................................................................................ 208
Visual Studio 2008 .................................................................................................................. 208
Atributos .NET .................................................................................................................... 212
Implementacin .......................................................................................................................... 213
Implementar ensamblados ....................................................................................................... 213
Procedimientos almacenados CLR .............................................................................................. 216
Funciones CLR ........................................................................................................................... 219
SqlFunction............................................................................................................................. 220
Funciones escalares ................................................................................................................. 221
Funciones de tabla ................................................................................................................... 223
Agregados................................................................................................................................... 224
SqlUserDefinedAggregate ....................................................................................................... 225
Init .......................................................................................................................................... 226
Accumulate ............................................................................................................................. 226
Merge ..................................................................................................................................... 226
Terminate................................................................................................................................ 226
Desencadenadores CLR .............................................................................................................. 227
SqlTrigger ............................................................................................................................... 229
TriggerContext ........................................................................................................................ 229

Eje

SQL Server 2008 Reporting Services ........................................................................................... 231


Arquitectura de los Servicios de Informes ................................................................................... 231
Capa de aplicacin .................................................................................................................. 232
Navegador de Internet ......................................................................................................... 232
Herramientas de Informes .................................................................................................... 233
Business Intelligence Development Studio........................................................................... 234
Herramienta de Configuracin de Superficie........................................................................ 234
Herramienta de Configuracin del Servidor de Informes ...................................................... 235
P g i n a | 10

de
l

ec

tur
a

SQL Server Management Studio.......................................................................................... 235


Aplicaciones personalizadas ................................................................................................ 236
Capa de servidor ..................................................................................................................... 236
Servicio Web ....................................................................................................................... 236
Servicio de Windows ........................................................................................................... 236
Interfaces de programacin .................................................................................................. 236
Procesadores ....................................................................................................................... 236
Extensiones ......................................................................................................................... 237
Autenticacin .................................................................................................................. 237
Extensiones de Proceso de datos ...................................................................................... 237
Extensiones de presentacin ............................................................................................ 237
Extensiones de Proceso de Informes ................................................................................ 237
Extensiones de Distribucin............................................................................................. 237
Capa de datos .......................................................................................................................... 237
Bases de datos del servidor .................................................................................................. 237
Diseo de Informes ..................................................................................................................... 238
Asistente para la Generacin de Informes ................................................................................ 238
Diseo de un informe .................................................................................................................. 244
Elementos de Datos ................................................................................................................. 244
Origen de datos (DataSource) .............................................................................................. 245
Conjunto de datos (dataset) .................................................................................................. 246
Elementos del Informe ............................................................................................................ 246
Regiones de datos ................................................................................................................ 247
Elementos independientes.................................................................................................... 248
Estructura de un informe ............................................................................................................. 248
Implementacin de un informe .................................................................................................... 252

Eje

mp

lo

Soporte para consultas .................................................................................................................. 256


Consultas para la devolucin de datos ......................................................................................... 257
La clusula WHERE ............................................................................................................... 258
ORDER BY ............................................................................................................................ 260
GROUP BY ............................................................................................................................ 261
Agregados ............................................................................................................................... 262
AVG ....................................................................................................................................... 262
MIN / MAX ............................................................................................................................ 263
COUNT .................................................................................................................................. 264
Clusula HAVING .................................................................................................................. 264
Clusula DISTINCT................................................................................................................ 265
Modificacin de datos ................................................................................................................. 265
INSERT .................................................................................................................................. 266
UPDATE ................................................................................................................................ 266
DELETE ................................................................................................................................. 267
Combinacin de tablas ................................................................................................................ 267
INNER JOIN .......................................................................................................................... 268
OUTER JOIN ......................................................................................................................... 269
FULL JOIN............................................................................................................................. 270
UNION, EXCEPT & INTERSECT ......................................................................................... 271
Caso prctico .............................................................................................................................. 272
LINQ to SQL ................................................................................................................................ 274
Modelo Objeto/Relacional........................................................................................................... 274
Herramientas de generacin de Entidades .................................................................................... 276
Uso de SQLMetal.................................................................................................................... 276
Visual Studio LINQ to SQL Designer ..................................................................................... 278
P g i n a | 11

tur
a

Consultar con LINQ to SQL .................................................................................................... 279


Resumen ................................................................................................................................. 280

mp

lo

de
l

ec

Uso de XML .................................................................................................................................. 281


Recuperacin de XML mediante FOR XML ............................................................................... 281
Introduccin a la clusula FOR XML ...................................................................................... 282
Modo RAW......................................................................................................................... 284
Recuperacin de datos en elementos de fila genricos ...................................................... 284
Recuperacin de datos como elementos ........................................................................... 285
Recuperacin de datos utilizando un elemento raz y nombre de elemento de fila
personalizado................................................................................................................... 285
Modo AUTO ....................................................................................................................... 288
Recuperacin de datos anidados utilizando el modo AUTO ............................................. 288
Recuperacin de datos como elementos ........................................................................... 289
Modo EXPLICIT ................................................................................................................ 291
Tablas universales ........................................................................................................... 292
Definicin de asignaciones de columna en una tabla universal ......................................... 292
Creacin de una consulta para construir la tabla universal ................................................ 293
Modo PATH ....................................................................................................................... 295
Recuperacin de datos utilizando el modo PATH............................................................. 295
Fragmentacin de XML mediante OPENXML ............................................................................ 296
Proceso de fragmentacin de datos XML................................................................................. 297
Procedimientos Almacenados para administrar rboles de nodos en memoria ...................... 297
Creacin del rbol mediante sp_xml_preparedocument .................................................... 298
Quitar el rbol mediante sp_xml_removedocument .......................................................... 298
Sintaxis de OPENXML ........................................................................................................... 299
Uso de una declaracin de esquema ..................................................................................... 300
Uso del tipo de datos xml ............................................................................................................ 301
El tipo de datos xml................................................................................................................. 302
XQuery ................................................................................................................................... 303
Sintaxis de XQuery ............................................................................................................. 303
Instrucciones FLOWR ..................................................................................................... 303
Los mtodos query, value y exist ............................................................................................. 305
El mtodo query .................................................................................................................. 305
El mtodo value................................................................................................................... 305
El mtodo exists .................................................................................................................. 306
El mtodo modify.................................................................................................................... 306
El mtodo nodes ...................................................................................................................... 307

Eje

Service Broker .............................................................................................................................. 310


Qu es el Service Broker?.......................................................................................................... 310
Ventajas de Service Broker ..................................................................................................... 311
Usos Tpicos de Service Broker ............................................................................................... 311
Arquitectura del sistema de Service Broker ................................................................................. 311
Tipo de mensaje ...................................................................................................................... 312
Contrato .................................................................................................................................. 312
Cola ........................................................................................................................................ 312
Servicio................................................................................................................................... 312
Programa de Servicio .............................................................................................................. 313
Arquitectura de conversacin de Service Broker .......................................................................... 313
Mensaje .................................................................................................................................. 314
Conversacin de dilogo ......................................................................................................... 314
Grupo de conversacin ............................................................................................................ 314
Ruta ........................................................................................................................................ 315
Enlace de servicio remoto........................................................................................................ 315
P g i n a | 12

ec

tur
a

Proceso de conversacin de Service Broker ................................................................................. 315


Arquitectura de seguridad de Service Broker ............................................................................... 317
Certificados ............................................................................................................................. 317
Seguridad de transporte ........................................................................................................... 317
Seguridad de Dilogo .............................................................................................................. 317
Creacin de objetos de Service Broker ........................................................................................ 318
Sintaxis para crear tipos de mensajes ....................................................................................... 318
Sintaxis para crear contratos .................................................................................................... 319
Sintaxis para crear colas .......................................................................................................... 321
Sintaxis para crear servicios .................................................................................................... 322
Envo y recepcin de mensajes .................................................................................................... 323
Sintaxis para enviar mensajes .................................................................................................. 323
Sintaxis para recibir mensajes ..................................................................................................... 325

Eje

mp

lo

de
l

FILESTREAM.............................................................................................................................. 329
Uso de FileStream....................................................................................................................... 330
Almacenamiento de FileStream ............................................................................................... 330
Seguridad Integrada ............................................................................................................. 330
Administracin Integrada .................................................................................................... 331
Habilitar FILESTREAM ............................................................................................................. 331
Administrar datos FILESTREAM usando Transact-SQL ............................................................. 332
Actualizar datos FILESTREAM .............................................................................................. 333
Eliminar datos FILESTREAM ................................................................................................ 333
Administrar daos FILESTREAM usando Win32 ......................................................................... 333
Leer la ruta de acceso al archivo .............................................................................................. 333
Leer el contexto de la transaccin ............................................................................................ 334
Obtener un identificador de archivos de Win32 ....................................................................... 334
La API OpenSqlFilestream .................................................................................................. 334
Parmetros....................................................................................................................... 335
FilestreamPath ................................................................................................................ 335
DesiredAccess ................................................................................................................. 335
OpenOptions ................................................................................................................... 335
FilestreamTransactionContext ......................................................................................... 336
FilestreamTransactionContextLength .............................................................................. 336
AllocationSize.................................................................................................................. 336
Conflictos entre Win32 y Transact-SQL ...................................................................................... 336
Ejemplos ................................................................................................................................. 337
Abrir un BLOB de FILESTREAM para acceso de escritura ................................................. 337
Abrir un BLOB de FILESTREAM para acceso de lectura .................................................... 337
Abrir y cerrar varios archivos BLOB de FILESTREAM ...................................................... 338
No se puede cerrar un cursor................................................................................................ 338
Cmo crear una base de datos habilitada para FILESTREAM ..................................................... 339
Crear una base de datos habilitada para FILESTREAM ........................................................... 339
Cmo mover una base de datos habilitada para FILESTREAM ................................................... 340
Crear una tabla para almacenar datos FILESTREAM .................................................................. 341
Prcticas recomendadas............................................................................................................... 341
Configuracin fsica y mantenimiento ..................................................................................... 341
Diseo fsico de base de datos ................................................................................................. 342

Datos Espaciales ............................................................................................................................ 343


Datos espaciales .......................................................................................................................... 343
Poblar datos espaciales ............................................................................................................ 344
GML ....................................................................................................................................... 347
Objetos Geomtricos ........................................................................................................... 347
Elementos de GML ................................................................................................................. 350
P g i n a | 13

tur
a

Polgonos, delimitadores interiores y Multipolgonos ........................................................... 351


Tres Dimensiones ................................................................................................................ 351

Eje

mp

lo

de
l

ec

Resolucin Caso Prctico .............................................................................................................. 356


Listado de clientes por comercial ..................................................................................... 356
Listado de clientes potenciales por comercial ................................................................... 356
Listado de envos a clientes.............................................................................................. 357
Listado de pedidos a proveedores..................................................................................... 357
Listado de productos bajos en stock ................................................................................. 357
Total ventas por comercial ............................................................................................... 358

P g i n a | 14

tur
a
ec
de
l
lo

Introduccin

Introduccin

mp

SQL Server 2008 es la ltima versin del Sistema Gestor de Bases de Datos de Microsoft para el
mercado empresarial. Esta ltima versin muestra grandes avances con respecto a sus predecesora
(sobre todo SQL Server 2000) y, aunque solo est disponible para la plataforma Windows, comienza a
ser un serio competidor para sistemas como Oracle, orientados a bases de datos de gran tamao.
Esta ltima versin cuenta con varias ediciones, incluyendo una versin gratuita (SQL Server
Express), todas ellas con ediciones de 32 y 64 bit.

Eje

SQL Server surgi de la colaboracin entre Microsoft y Sybase, adems de IBM y Ashton-Tate. La
primera versin fue desarrollada para OS/2 en 1988, y no era ms que una pequea base de datos. De
hecho, el sistema operativo OS/2 fue desarrollado conjuntamente por IBM y Microsoft para dar
soporte a Sybase SQL Server
La primera edicin de SQL Server para Windows fue la 4.2 desarrollada en 1993, (compatible con
Windows NT). SQL Server 4.2 era una base de datos para pequeos entornos (desktop database), con
funcionalidad limitada y no demasiado potente. En 1994, Microsoft y Sybase deciden no continuar su
unin con SQL Server. Esto origin una nueva versin de SQL Server por parte de Microsoft en 1995.

P g i n a | 15

tur
a

La primera versin independiente de SQL Server fue la 6.05. En esta versin se introdujeron una serie
de mejoras en cuanto a rendimiento y funcionalidad que permitan considerar a este sistema adecuado
para gestionar bases de datos de pequeos negocios o aplicaciones de Internet. La siguiente versin, la
6.5, fue lanzada en 1996.
En 1998, Microsoft lanz SQL Server 7.0, que supuso un cambio en cuanto a su situacin en el
mercado de los RDBMS. El gran nmero de mejoras en cuanto a rendimiento, potencia y facilidad de
uso, as como la gran cantidad de caractersticas y aplicaciones auxiliares, incluidas en el producto sin
coste adicional, situaron a SQL Server como alternativa a otros sistemas tales como Oracle o DB2 en
el entorno de negocios de tamao medio.

ec

Con SQL Server 2000, Microsoft termin de consolidar su posicin en el mercado de los Sistemas
Gestores de Bases de Datos. Esta versin ya est dirigida al entorno empresarial, debido a su
rendimiento, escalabilidad y robustez. Lo bueno es que Microsoft consigui alcanzar estos objetivos
sin sacrificar la facilidad de uso y el gran nmero de herramientas de desarrollo, gestin y anlisis
incluidas en SQL Server. De hecho, en el ao 2001 Oracle cedi su posicin de dominio, pasando el
testigo a SQL Server (34% del mercado, contra el 40%). Esta situacin sigui su curso en 2002,
cuando SQL Server aument su cuota al 45% del mercado, mientras que la de Oracle bajaba al 27%.

de
l

La ltima versin de SQL Server es capaz de competir con grandes sistemas como Oracle o DB2.
Muchas organizaciones de gran tamao adoptaron en su da SQL Server 2000 y lo hacen hoy con SQL
Server 2005 y 2008, como Xerox, Nasdaq, Groupama, ING, y un largo etc. Para comprender este
movimiento en torno al RDBMS (Relational DataBase Management System) de Microsoft, 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, junto con la facilidad de uso y coste del sistema de Microsoft, en
contraposicin con la complejidad y elevado precio del sistema de Oracle.

Introduccin a SQL Server 2008

lo

SQL Server 2008 incluye una gran cantidad de nuevas caractersticas que permiten una gestin ms
racional y eficaz del mismo, aumentan el rendimiento, la escalabilidad y la estabilidad del servidor y,
permiten una configuracin avanzada a nivel de servicios, seguridad del servidor, etc.

mp

Entre las nuevas caractersticas, quizs la ms llamativa sea el soporte para compatibilidad con .NET.
Esto permite la programacin de ensamblados en C# o Visual Basic 2008 y su ejecucin en SQL
Server, lo que abre un gran abanico de posibilidades complementando la funcionalidad que
proporciona T-SQL.
Adems, nos encontramos con soporte completo para XML, incluyendo un nuevo tipo de dato XML,
que permite el almacenamiento de documentos de este tipo en formato nativo, y posibilita el uso de
funciones de bsqueda y manipulacin en cdigo XML, como XQuery o XPath directamente en el
propio campo de la tabla. Tambin permite la validacin de la estructura del propio documento contra
esquemas XSD.

Eje

Las herramientas de configuracin y mantenimiento tambin han sufrido una renovacin completa. El
Administrador Corporativo, o el Analizador de Consultas de SQL Server 2000 dejan paso al SQL
Server Management Studio (SSMS), que agrupa y amplia la funcionalidad de ambos. Esta nueva
herramienta permite gestin multiservidor tanto de servidores OLTP como de servidores OLAP o
gestin de funciones adicionales. Una nueva caracterstica muy interesante es la posibilidad de crear
una solucin, lo que permite una gestin ms eficaz de proyectos de desarrollo, as como la
integracin con Visual Source Safe, que posibilita el trabajo en grupo y el control de cdigo fuente.
SQL Server incorpora una nueva herramienta denominada Business Intelligence Development
Studio, que no es ms que una versin reducida de Visual Studio 2008. Esta nueva herramienta sirve
P g i n a | 16

tur
a

para desarrollar proyectos de integracin con .NET, o tambin otros como proyectos de Analysis
Services, Integration Services o Reporting Services.

SQL Server amplia y mejora los Reporting Services (SSRS), que aunque inicialmente fueron
concebidos para aparecer con esta ltima versin del servidor, Microsoft decidi publicar una versin
reducida para SQL Server 2000. Tambin incluye un mejorado y ampliado entorno para los Servicios
de Integracin (SQL Server Integration Services, SSIS), anteriormente conocidos como Data
Transformation Services.

Otra de las nuevas caractersticas la constituye el Service Broker, que es un entorno de trabajo
diseado para la distribucin asncrona de mensajera.

ec

Todas estas caractersticas se agrupan dentro de SQL Server 2005 y ahora en 2008 clasificadas segn
sus distintas ediciones, que describo a continuacin:
Express: Esta edicin es la evolucin del antiguo MSDE, la versin gratuita de SQL Server
2000. Sigue siendo gratuita y, aunque limitada, incorpora un pequeo entorno grfico de
administracin y permite un mximo de 50 conexiones concurrentes (suficiente para cualquier
entorno pequeo).

Workgroup: Est diseada para entornos y departamentos pequeos y medianos. Posee


muchas de las caractersticas de SQL Server, pero no contiene las de alto nivel.

Standard: Esta versin est destinada al entorno medio. Contiene prcticamente todas las
caractersticas, como los Servicios de Anlisis, o los Servicios de Integracin, pero elimina
las opciones de alta disponibilidad, como particionado o indexacin online.

Developer: Esta versin contiene todas las opciones, pero al ser una versin destinada a
entornos de prueba y laboratorio, contiene limitaciones en cuanto a CPUs soportadas y a
licencias.

Enterprise: Esta es la versin completa, la ms potente, escalable y robusta y, por supuesto, la


ms cara. Est destinada al entorno empresarial de tamao medio-grande, donde el
rendimiento, la alta disponibilidad y la escalabilidad son cruciales.

lo

de
l

Nuevas Caractersticas

mp

Las nuevas caractersticas soportadas por SQL Server 2008 se pueden dividir en dos grandes grupos:
Funciones Bsicas y Business Intelligence. Cada versin soporta algunas caractersticas, exceptuando
las versiones Enterprise y Developer, que como hemos visto antes, las soportan todas. Veamos un
resumen de algunas de ellas:

Funciones Bsicas

Todas las versiones soportan integracin con .NET (CLR), autenticacin y autorizacin
avanzada, optimizacin automtica de Bases de Datos, importacin y exportacin de datos, el
nuevo tipo de dato XML, consultas recursivas, gestin de errores con estructuras
TRYCATCH, la herramienta Express Manager (indicada para la versin Express y es
gratuita), conexin dedicada para el administrador, adicin de memoria en caliente,
encriptacin de datos, la herramienta Management Studio, vistas de sistema, herramientas de
Reporting Services, integracin con Microsoft Baseline Security Analyzer (MBSA),
replicacin (transaccional y de mezcla), Service Broker, procedimientos almacenados, vistas y
desencadenadores, tipos definidos por el usuario, indexacin XML nativa, bsquedas de texto

Eje

P g i n a | 17

tur
a

completo en datos XML y manipulacin con XQUERY y el Best Practices Analyzer (se puede
descargar en: http://www.microsoft.com/downloads/details.aspx?familyid=b352eb1f-d3ca44ee-893e-9e07339c1f22&displaylang=en)

La versin Express no soporta bsqueda de texto completo en campos definidos para ello, as
como la programacin de trabajos, o el traslado de los logs de transacciones a otra base de
datos (Log Shipping).

La versin Workgroup no soporta la funcionalidad de espejo (DB Mirroring), el Database


Tuning Advisor (sustituye al Index Tunning Wizard), el failover clustering, los Servicios de
Integracin, los Servicios de Notificacin, y los web services, o soporte para http.

La versin Standard no soporta particionado de tablas, replicacin Oracle, indexacin online


de tablas y vistas, restauracin de bases de datos online, operaciones de indexacin en
paralelo, ndices en vistas, integracin de flujo de datos, disponibilidad de la base de datos en
operaciones de undo durante la restauracin, transformaciones avanzadas como minera de
datos o minera de texto, o optimizacin avanzada del rendimiento de modelos de minera.

ec

de
l

Funciones de Business Intelligence

Todas las versiones proporcionan soporte nativo para web services, Reporting Services
(incluyendo mltiples orgenes de datos), funciones analticas y optimizacin de consultas tipo
estrella, y el Business Intelligence Development Studio.

La versin Express no soporta integracin con el Management Studio, el profiler y otras


herramientas, y tampoco soporta el generador de informes para el usuario final.

La versin Workgroup no soporta el modelado de datos segn el Modelo Dimensional


Unificado (UDM), el Data warehousing, y el Data mining.

La versin Standard no soporta cacheo automtico de datos, suscripciones ligadas a datos,


writebacks en dimensiones y celdas, cubos particionados, proceso de cubos en paralelo,
sincronizacin de servidores y escalado externo de servidores de informes.

lo

Herramientas de SQL Server 2008

mp

La nueva versin de SQL Server trae consigo un buen puado de nuevas herramientas, algunas
nuevas, y otras simplemente una evolucin de las anteriores. Vamos a repasar las ms importantes,
para conocer su funcionalidad.

Libros en pantalla

Eje

Los libros en pantalla de SQL Server han sufrido una buena revisin, y ahora utilizan la nueva interfaz
de ayuda de .NET 2008, que proporciona nuevos modelos de organizacin de datos, bsquedas por
preferencias, online, en local, y muchas otras opciones.

SQL Server Configuration Manager


Esta herramienta agrupa la funcionalidad de varias en la anterior versin de SQL Server. Bsicamente,
su mbito de aplicacin se centra en la gestin avanzada de los servicios de soporte de SQL Server,
para los cuales presenta un amplio abanico de opciones, y en la configuracin de red del servidor.
P g i n a | 18

tur
a

El SQL Server Management Studio

Eje

mp

lo

de
l

ec

El SQL Server Management Studio es la nueva herramienta de administracin de SQL Server, y


representa una gran evolucin frente a las versiones anteriores. Hereda su aspecto y algo de
funcionalidad de Visual Studio 2008, adems de integrar un gran nmero de funciones que antes
estaban disponibles como herramientas independientes.

P g i n a | 19

tur
a
ec
de
l

lo

Creacin de los modelos Conceptual,


Lgico y Fsico

mp

Modelo Conceptual

Eje

Como ya se ha visto en el tema anterior, el diseo conceptual, que constituye la primera etapa en el
diseo de una base de datos, consiste en obtener una buena representacin de los recursos de
informacin de la empresa, con independencia de usuario o aplicaciones en particular y fuera de
consideraciones sobre eficiencia del ordenador. Puesto que no se corresponde con ningn nivel de la
arquitectura ANSI/X3/SPARC, sino que es un paso previo, tiende a ser no tenido en cuenta a la hora
de proceder al diseo de una base de datos. Esto no es aconsejable, ya que el diseo lgico parte del
esquema conceptual y, si ste no es correcto, o no representa fielmente la informacin del mundo real,
el esquema de la base de datos no ser estable, vindonos obligados a reajustarlo constantemente
debido a las deficiencias arrastradas desde esta etapa de diseo. De ah la importancia de realizar un
buen esquema conceptual, que represente fielmente las caractersticas del mundo real.
Otro error que se suele cometer en esta etapa de diseo es el de considerar aspectos tales como la
eficiencia del equipo hardware en el que se vaya a montar la base de datos, o SGBD's concretos. Como
ya se ha dicho, el esquema conceptual debe representar la informacin fuera de consideraciones sobre
hardware y sobre el SGBD sobre el que se implementar. Por lo tanto, se pueden establecer las
siguientes caractersticas que debe cumplir un buen esquema conceptual:

P g i n a | 20

Es independiente del SGBD

Es independiente del Hardware

tur
a

Debe representar fielmente la informacin del mundo real.

Conviene no olvidar, por lo tanto, que un buen diseo del esquema conceptual, influir positivamente
en el resto de etapas.

Etapas del diseo conceptual

ec

La fase de diseo conceptual, puede subdividirse a su vez en dos etapas:

de
l

1. Etapa de anlisis de requisitos: En esta etapa se debe responder a la pregunta "Qu


representar?". El objetivo es elaborar un esquema descriptivo de la realidad, en el que se
provean detalles de los datos a representar. Dicho esquema se obtiene mediante el estudio u
observacin del mundo real (estudio de las reglas de la empresa, entrevista a los usuarios,
etc.). Aunque existen muchas respuestas sobre el modo de recoger dicha informacin, la ms
utilizada es el lenguaje natural que, aunque carece del formalismo que pueden infligir
otros mtodos, permite una mejor y ms fcil comprensin de la informacin por parte del
usuario, y le permite especificar los requisitos sin la intervencin de formalismos. Este primer
esquema percibido bruto (como lo llaman Benci y Rolland), se ira refinando sucesivamente,
hasta llegar al esquema conceptual.

lo

2. Etapa de conceptualizacin: En esta etapa se debe responder a la pregunta "Cmo


representar?". En ella se transforma el esquema obtenido en la primera, mediante
refinaciones sucesivas. Se deber obtener el esquema conceptual mediante una
representacin normalizada, que se apoye en un modelo de datos que cumpla determinadas
propiedades (segn Piattini y De Miguel): coherencia, plenitud, no redundancia, simplicidad,
fidelidad, etc. El modelo que se estudiar es el Modelo Entidad / relacin (en adelante referido
como ME/R o modelo E/R), que es el ms utilizado hoy en da.

El modelo entidad / relacin

mp

El modelo E/R fue propuesto por Peter P. Chen en dos artculos que public en los aos 1976 y 1977.
En ellos define dicho modelo como una vista unificada de los datos, centrndose en la estructura
lgica y abstracta de los datos, como representacin del mundo real, con independencia de
consideraciones de tipo fsico. Posteriormente se fueron proponiendo nuevas aportaciones al modelo,
lo cual explica que no exista uno slo, sino distintos modelos segn los autores.
Los objetivos que debe cumplir un esquema conceptual son los siguientes (Piattini y De Miguel):
1. Captar y almacenar el universo del discurso mediante una descripcin rigurosa.

Eje

2. Aislar la representacin de la informacin de los requisitos de mquina y exigencias de cada


usuario en particular
3. Independizar la definicin de la informacin de los SGBD en concreto.

A continuacin se describir el proceso de creacin de un esquema conceptual, siguiendo el modelo


E/R. ste se basa en una representacin grfica de una serie de entidades relacionadas entre s. Al
utilizar una representacin de este tipo, el modelo E/R permite distinguir fcilmente y a simple vista,
las relaciones existentes entre las distintas entidades. Existen muchas formas de representarlo, como
ya se ha comentado; la que se utilizar aqu no es, por supuesto, la nica forma de hacerlo. Los
elementos de los que se componen son los siguientes:
P g i n a | 21

Figura 1

tur
a

1. Entidades: Una entidad es "una persona, lugar, cosa, concepto o suceso, real o abstracto, de
inters para la empresa" (ANSI 1977). En el modelo E/R, se representa por un rectngulo, con
el nombre de dicha entidad escrito en la parte superior. Por ejemplo, la Figura 1 representa la
entidad automvil.

de
l

ec

2. Atributos: Un atributo es cualquier caracterstica que describe a una entidad. Los atributos de
una entidad se colocan dentro del rectngulo que representa dicha entidad, justo debajo del
nombre de sta. Por ejemplo, se puede decir que un automvil tiene las siguientes
caractersticas: n de matricula, marca, modelo y color, lo cual se muestra en la Figura 2.

Figura 2

mp

lo

3. Clave: La clave de una entidad es un atributo o conjunto de atributos de dicha entidad, que
son capaces de identificar unvocamente una ocurrencia de una entidad. Es decir, si
conocemos el valor de dichos atributos, seremos capaces de conocer a que ocurrencia de
entidad, entre todas las posibles, hace referencia. Esto implica que los valores de los atributos
clave no se pueden repetir para dos ocurrencias de la misma entidad. En nuestro ejemplo,
seremos capaces de identificar de que automvil estamos hablando, con slo conocer el valor
del atributo matrcula, ya que no existe una misma matrcula para dos automviles distintos.
Los atributos marca, modelo o color no identifican unvocamente una ocurrencia de la entidad,
ya que pueden existir dos automviles distintos de la misma marca, modelo o color. En el
modelo E/R, un atributo clave se representa subrayando dicho atributo.

Figura 3

4. Relacin: Una relacin representa, como su propio nombre indica, una correspondencia entre
dos entidades. Si tenemos dos entidades automvil y persona, podemos tener una relacin
entre ellas. Dicha relacin se puede establecer en ambos sentidos:
Una persona posee un automvil, y
Un automvil pertenece a una persona.

Eje

5. Cardinalidad de una relacin: La cardinalidad de una relacin representa el nmero de


ocurrencias que se pueden dar de una relacin. Puede ser de tres tipos:
Cardinalidad 1-1: cada ocurrencia de una entidad se relaciona con una ocurrencia de
otra entidad. Ej: una persona posee un automvil. Se representa como indica la Figura 4.

P g i n a | 22

tur
a

Figura 4

ec

Cardinalidad 1-N: tambin llamada uno a muchos. Cada ocurrencia de una entidad
puede relacionarse con varias ocurrencias de otra entidad. Ej.: una persona posee
varios automviles. Se representa como muestra la Figura 5.

Figura 5

Cardinalidad N-M: tambin llamada muchos a muchos. Cada ocurrencia de una


entidad puede relacionarse con varias ocurrencias de otra entidad y viceversa. Ej.: una
persona posee varios automviles y un automvil puede pertenecer a varias personas.
Se representa como aparece en la Figura 6.

de
l

Figura 6

lo

6. Cardinalidad mxima de una relacin: representa el nmero mximo de ocurrencias de una


entidad con las que se puede relacionarse otra entidad. Ej.: una persona puede tener como
mximo tres automviles.

mp

7. Cardinalidad mnima de una relacin: representa el nmero mnimo de ocurrencias de una


entidad con las que se puede relacionarse otra entidad. Ej.: un automvil debe pertenecer
como mnimo a una persona.

Eje

8. Entidad dbil: se dice que una entidad es dbil, o es dependiente de otra, cuando no somos
capaces de conocer a que ocurrencia de entidad nos estamos refiriendo, ni siquiera conociendo
su clave, sino que debemos conocer el valor de algn otro atributo de otra entidad. Por
ejemplo, si tenemos las entidades edificio (con el atributo clave codigo_edificio) y planta (con
el atributo codigo_planta), sta ltima es una entidad dbil, ya que no somos capaces de
identificar una planta con slo conocer el cdigo de la planta, sino que adems se necesita
conocer el cdigo del edificio al que se hace referencia, para determinar la planta dentro del
edificio.

Figura 7

En general, en una relacin se suele representar conjuntamente las cardinalidades mxima y mnima.
En los anteriores casos no se han considerado las cardinalidades mnimas. stas vienen a representar la
P g i n a | 23

ec

Figura 8

tur
a

opcionalidad de la ocurrencia de una entidad en una relacin, es decir, si dicha ocurrencia se debe dar
obligatoriamente, o si por el contrario se puede obviar. Los tipos de cardinalidades son los que
aparecen en la Figura 8, (nos fijaremos slo en un sentido de la relacin, el de la izquierda).

Veamos a continuacin unos ejemplos para comprender mejor las cardinalidades mxima y mnima.
Como se podr comprobar, las cardinalidades de una relacin se ponen en la ltima relacin a la que
se hace referencia, por ejemplo, si se tienen las entidades alumno y asignatura, la cardinalidad de la
relacin un alumno cursa asignaturas, se pondr al lado de la entidad asignatura.

de
l

En el siguiente ejemplo (Figura 9), se tiene una relacin 1-1 en la que un automvil pertenece a una
nica persona (cardinalidad mxima 1), sin la posibilidad de que exista un automvil que no tenga
dueo (cardinalidad mnima 1). Esto significa que en el modelo no interesa tener informacin de
aquellas personas que no tengan automvil.

Figura 9

mp

lo

En la Figura 10, se tiene una relacin 1-1 en la que una persona puede tener un automvil como
mucho (cardinalidad mxima 1), o puede no tener ninguno (cardinalidad mnima 0). Esto significa que
el modelo interesa tener informacin de todas las personas, aunque no tengan automvil.

Figura 10

Eje

En el siguiente ejemplo (Figura 11), se tiene una relacin 1-N, en la que un profesor puede dar clase a
muchos alumnos (cardinalidad mxima N), pero como mnimo debe hacerlo a uno (cardinalidad
mnima 1). Esto significa que en el modelo no interesa tener informacin de aquellos profesores que
no dan clase.

Figura 11

En el siguiente ejemplo, se tiene una relacin N-N, en la que una persona puede tener varios
automviles (cardinalidad mxima N), pero puede que no tenga ninguno (cardinalidad mnima 0). Esto
P g i n a | 24

Figura 12

tur
a

significa que en el modelo interesa tener informacin de todas las personas, aunque no tengan
automvil.

de
l

ec

Para concluir esta seccin se ver un ejemplo completo que representar todos los conceptos vistos
hasta ahora. Supongamos que se desea establecer un modelo conceptual para la gestin de una
biblioteca. Se desean tener almacenados todos los libros que la componen. Para cada libro interesa
conocer el ISBN, el ttulo, el autor o autores, la editorial, el ao de publicacin y la materia. De cada
autor se quiere conocer su nombre, apellidos y nacionalidad. Un autor podr haber escrito varios
libros, de la misma forma que en un libro pueden participar varios autores. De la editorial se desea
conocer el nombre y la ciudad. A dicha biblioteca podrn estar suscritos varios usuarios. De ellos se
quiere saber su DNI, nmero de socio, nombre, apellidos, direccin y telfono. Por cuestiones
directivas, se limita el nmero de ejemplares prestados a cada usuario a uno. Se dispone, a su vez, de
un nico ejemplar de cada libro, por lo que un libro prestado a un usuario, no podr ser prestado a otro
hasta que se devuelva. Deber quedar constancia de la fecha de prstamo de cada ejemplar.

mp

lo

Lo ms destacable del anterior ejemplo es la entidad prstamo. Es una entidad dbil que depende de
libro y de socio, ya que para diferenciar un prstamo de otro, se necesita saber no slo el libro, sino el
socio al cual se ha prestado. Tambin se pueden observar que las cardinalidades mnimas son 1. Esto
quiere decir que slo se guardar informacin de las entidades cuando exista, al menos, una ocurrencia
de la entidad. Las nicas relaciones que tienen cardinalidad opcional, son las que tienen como origen o
destino a la entidad prstamo, lo cual es lgico, ya que tendremos informacin de todas las entidades,
aunque todava no se haya realizado ningn prstamo.

Figura 13

Eje

Ejemplos prcticos de diseo conceptual


A continuacin resolveremos unos problemas de diseo conceptual, para ir familiarizando al lector
con los conceptos vistos hasta ahora. Para realizarlos se utilizar la S-Designor, que es una
herramienta CASE que abarca gran parte del ciclo de vida de las aplicaciones, incluyendo el diseo de
esquemas conceptuales. No se preocupe si no conoce la herramienta, ya que se ver en detalle en
prximos temas, simplemente qudese con la idea general de la construccin del esquema.
P g i n a | 25

ec

tur
a

El problema que nos planteamos es el siguiente. Supngase que se desea informatizar una tienda de
discos. Para ello se desean tener almacenados los nombres de todos los discos disponibles, adems de
sus cantantes y canciones. As mismo se desean almacenar los clientes que han comprado en dicha
tienda. Pues bien, empezaremos identificando las entidades, entendiendo por entidad un grupo de
caractersticas que tienen entidad propia. Como primera entidad, podemos establecer los discos que se
venden, ya que se desea conocer informacin de ellos, como puede ser un cdigo que lo identifique
dentro de la estantera. Por otro lado se desea almacenar todos los artistas que intervienen en los discos
de nuestra tienda, y para cada uno de ellos se desea conocer su nombre y apellidos, por lo tanto ya
tenemos identificada una segunda entidad. Adems, se desea conocer todas las canciones que estn
disponibles en los discos, identificada cada una de ellas por un cdigo de cancin, y que adems
tendrn sus propias letras. Pues ya tenemos la tercera entidad. La cuarta estar formada por los
clientes, de los cuales se desea almacenar su nombre, apellidos, direccin y telfono, y que podrn
estar identificados internamente por un cdigo de cliente.

de
l

Figura 14

Una vez establecidas las entidades, slo nos queda relacionarlas. Podemos observar las siguientes
relaciones:
1. Entre disco y cancin: en un disco pueden aparecer varias canciones, y cada cancin puede
estar en varios discos (N-M).
2. Entre cantante y cancin: un cantante puede componer varias canciones, y una cancin puede
estar compuesta por varios cantantes (N-M).
3. Entre cliente y disco: un cliente puede comprar varios discos, pero un disco slo puede ser
comprado por un cliente 1-N.

Eje

mp

lo

Por lo tanto, el esquema conceptual es que muestra la Figura 15:

Figura 15

Vamos a plantearnos otro problema. Supongamos que se desea tener almacenados todos los datos de
los profesores de una empresa dedicada a impartir cursos, as como una breve descripcin de stos, y
los alumnos a los cuales se les ha impartido. Empezamos identificando entidades. De un profesor se
desea conocer su nombre y apellidos, direccin y despacho, por lo tanto establece una entidad. Otra
entidad podra ser el alumno, del cual se desea conocer su nombre, apellidos, direccin y telfono. Ni
P g i n a | 26

tur
a

que decir tiene que el curso describe otra entidad, de la cual se desea conocer su descripcin. Sin
embargo, podemos recurrir a un procedimiento muy usual, denominado tipificacin de estados, muy
usado en el diseo conceptual, y que consiste en tener una entidad que tipifique los posibles estados
que puede tomar un atributo. 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 nmero) adems de una estandarizacin de los datos almacenados (el estado slo se
almacena una vez). Por ejemplo podemos tipificar las ciudades, para lo cual creamos una nueva
entidad ciudad, donde se almacenar un cdigo y la descripcin de la ciudad. Cuando almacenemos la
ciudad de un alumno, slo deberemos especificar el cdigo de la ciudad.
Una vez establecidas las entidades, vamos a definir las relaciones entre ellas.

ec

1. Profesor y Curso: un profesor puede impartir varios cursos, pero un curso slo puede ser
impartido por un profesor (1-N).

2. Alumno y Curso: un alumno puede asistir a varios cursos, y a un curso pueden asistir varios
alumnos (N-M).

de
l

3. Alumno y Ciudad: un alumno vive en una ciudad, y una ciudad puede tener varios alumnos
(1-N).

Eje

mp

lo

Por lo tanto, el esquema conceptual es el mostrado en la Figura .

Figura 16

Figura 17

P g i n a | 27

tur
a

Cabe destacar que el atributo calificacin se da como consecuencia de la relacin entre las entidades
curso y alumno. Por lo que podr ser introducido en la entidad intermedia que surja cuando se haga el
paso a tablas (vase siguiente captulo).

ec

Vamos a ver un ltimo ejemplo. Supngase un banco que desea almacenar todos sus clientes, adems
de los productos que puede ofrecer a stos. Cada cliente podr escoger entre todos estos productos el o
los que ms le plazcan (crditos, fondos de inversin, libretas de ahorro, etc.). De la misma forma,
dicho banco tiene intereses en otras empresas, por lo que desea conocer en todo momento la situacin
de dichas empresas, para poder mejorar su poltica de inversiones. Puesto que dicho banco esta
constituido como sociedad annima, desea almacenar todos los componentes de su consejo de
administracin (actuales y ex-miembros) as como todas las actas de las reuniones ordinarias y
extraordinarias. Las decisiones de inversin en estas empresas saldrn como resultado de dichas
reuniones, as como la oferta de nuevos productos.
Como habr podido observar, este ejemplo es un poco ms complejo, pero no desespere, el proceso es
similar al de los dems ejemplos. Empezaremos definiendo entidades y las veremos representadas en
la Figura .

de
l

1. Cliente: se desea conocer su nombre, apellidos, direccin y NIF, y estar identificado por un
cdigo interno cod_cliente.
2. Producto: del cual queremos saber su descripcin y estar identificado por un cdigo interno
cod_producto.
3. Empresa: identifica las empresas en las cuales el banco ha invertido. De ellas se desea conocer
su cdigo, nombre y CIF.
4. Consejo: establece los componentes del consejo de administracin. Para ello se almacenar el
nombre, apellidos y cdigo de cargo de cada uno de sus componentes, y si el cargo es vigente
o no. Podremos utilizar una nueva entidad que tipifique los tipos de cargo.

lo

5. Tipo_cargo: describe los posibles cargos que puede tomar una persona en el consejo de
administracin, y esta compuesto por un cdigo de tipo de cargo, y una descripcin del mismo
(secretario, presidente, etc.).

Eje

mp

6. Reunin: entidad encargada de describir la informacin de las actas de las reuniones. Sus
atributos son cod_reunin, fecha, extraordinaria, que especifica si la reunin ha sido ordinaria
o extraordinaria y una descripcin.

Figura 18

P g i n a | 28

tur
a
ec

de
l

Figura 19

Identifiquemos ahora las relaciones. Su representacin grfica aparece en la Figura :


1. Cliente y producto: cada cliente puede escoger varios productos, y cada producto puede ser
ofrecido a varios clientes.
2. Consejo y cargo: un miembro del consejo slo tiene un cargo, y cada cargo puede pertenecer a
ms de un miembro.
3. Reunin y consejo: a cada reunin pueden asistir varios miembros del consejo de
administracin, y cada miembro puede asistir a ms de una reunin.

lo

4. Reunin y producto: de cada reunin puede salir la oferta de ms de un nuevo producto pero
cada producto nuevo slo puede salir de una reunin.
5. Reunin y empresa: de cada reunin pueden salir decisiones de invertir en ms de una
empresa, y cada decisin de inversin slo sale de una reunin.

mp

Modelo Lgico

Eje

Como ya se ha sealado, el diseo lgico de una base de datos consta de dos etapas: el diseo lgico
estndar y el diseo lgico especfico. En el diseo lgico estndar, se toma el esquema conceptual
resultante de la fase de diseo conceptual, y teniendo en cuenta los requisitos de proceso, de construye
un esquema lgico estndar (ELS), que se apoya en un modelo lgico estndar (MLS), que ser el
mismo modelo de datos soportado por el SGBD a utilizar (relacional, jerrquico, etc.), pero sin las
restricciones de ningn producto comercial en concreto. En nuestro caso se utilizar el MLS
relacional. Una buena forma de describir el ELS es utilizando el lenguaje estndar del MLS (por
ejemplo SQL).
Una vez obtenido el ELS, y considerando el modelo lgico especfico (MLE) propio del SGBD a usar
(ORACLE, INFORMIX, SQL-SERVER, etc.), se elabora el esquema lgico especfico (ELE). Al
igual que en el caso anterior, una buena forma de describirlo es utilizando el lenguaje de definicin de
datos (LDD) del producto especifico utilizado (en el caso de SQL-SERVER, se usar el TRANSACT
SQL). El diseo lgico especfico est muy ligado a la fase de diseo fsico, ya que ambos dependen
mucho del SGBD que se utilice.

P g i n a | 29

tur
a

En la fase de diseo lgico, adems de las herramientas ya descritas (MLS, MLE, lenguajes SQL), se
disponen de otras que permiten establecer un buen diseo lgico, como por ejemplo la normalizacin,
la desnormalizacin, etc., que ya se vern ms adelante en este tema.

Paso del esquema conceptual al esquema lgico estndar

Lo primero que hay que realizar en la fase de diseo lgico, es obtener el esquema lgico estndar, a
partir del esquema conceptual obtenido en la primera fase. Las reglas que permiten pasar del modelo
E/R al esquema lgico, son las que a continuacin se explican:
Cada entidad se transforma en una relacin: esto es, cada entidad genera una tabla, con sus
mismos atributos, incluyendo las claves.

Cada relacin N-M genera una tabla: las relaciones entre entidades con cardinalidad N-M
generan una tabla, con los atributos clave de ambas entidades.

En cada relacin 1-N, la entidad con cardinalidad N importa los atributos clave que contiene la
entidad con cardinalidad 1.

Cada relacin dependiente, importa la clave de la otra entidad, como clave.

de
l

ec

mp

lo

Para entender mejor el funcionamiento de este mtodo, veamos el paso a tablas del ejemplo visto en el
tema anterior acerca de la gestin de una biblioteca. La entidad editorial est relacionada con la
entidad libro con cardinalidad 1-N, por lo tanto, la entidad libro, con cardinalidad N, importa la clave
de la entidad editorial, con cardinalidad 1. A su vez, est relacionada con la entidad autor, pero en este
caso, la cardinalidad es N-M, lo que implica que se generar una tabla intermedia, en la que se
almacenarn las claves de ambas entidades. Esta tabla, a la que denominaremos Libro_autor mantiene
la informacin de los cdigos de libros junto con los cdigos de autores. Posteriormente, si se desea
extraer ms informacin, tanto del libro como del autor, se deber acceder a sendas tablas. Por ltimo
se dispone de la entidad Prstamo, que es dependiente tanto de la entidad Libro como de la entidad
Usuario, lo que quiere decir que se generar una tabla, con los atributos de la entidad Prstamo adems
de las claves de las entidades de las que es dependiente, es decir, ISBN y Num_socio, que entrarn
como claves en dicha tabla. Esta ltima relacin obtenida, mantiene informacin de qu libros han
sido prestados a qu usuarios y en qu fecha. El esquema de las tablas resultantes es el que se muestra
en la Figura .

Figura 20

Eje

Veamos ahora el paso a tabla de otro ejemplo visto en el tema anterior, cuyo esquema conceptual es el
que muestra la Figura .
Empezaremos identificando las relaciones, y concretando las tablas que generarn:
1. Cliente-Disco: puesto que es una relacin 1-N, la entidad disco generar una tabla con sus
atributos, e importar el atributo clave de la entidad con cardinalidad 1, es decir, cod_cliente.
A su vez, la entidad cliente generar su propia tabla, con sus propios atributos, es decir,
cod_cliente, nombre, apellidos y telfono.

P g i n a | 30

También podría gustarte