Está en la página 1de 148

Vicerrectora Acadmica

Proyecto P.A.V.
Plataforma de Aprendizaje Virtual
Vicerrectora Acadmica

Proyecto P.A.V.
Plataforma de Aprendizaje Virtual
MDULO VIRTUAL BASES DE DATOS

ORALIA CORTS GRAJALES

VICERRECTORA ACADMICA

PROYECTO P.A.V.
PLATAFORMA DE APRENDIZAJE VIRTUAL

TECNOLGICO DE ANTIOQUIA
INSTITUCIN UNIVERSITARIA
MEDELLN
2008
Realizacin

Realizacin

Vicerrector Acadmico
John Harvey Garavito Londoo

Docente (Autor)
Oralia Corts Grajales

Equipo Tcnico P.A.V.


Nubia Amparo Giraldo Garca
Jhonatan Arroyave Jaramillo
Giselle Andrea Tamayo Mrmol

Tecnolgico de Antioquia Institucin Universitaria


Plataforma de Aprendizaje Virtual
Proyecto P.A.V.
2008
Unidad 1

Introduccin a los Sistemas


de Bases de Datos
En esta unidad se da a conocer globalmente los conceptos de lo que es
un sistemas de de bases de datos, ya que estas proporcionan la
infraestructura requerida para los sistemas de apoyo a la toma de
decisiones y para los sistemas de informacin estratgicos, es muy
importante tener claros los conceptos generales de bases de datos
antes de empezar a estudiar las diferentes etapas que permiten
desarrollar una base de datos.
1. Historia

1.1. Historia

El trmino base de datos fue acuado por primera vez en 1963, en un simposio celebrado
en California. De forma sencilla podemos indicar que una base de datos no es ms que un
conjunto de informacin relacionada que se encuentra agrupada o estructurada. El archivo
por s mismo, no constituye una base de datos, sino ms bien la forma en que est
organizada la informacin es la que da origen a la base de datos. Las bases de datos
manuales, pueden ser difciles de gestionar y modificar. Por ejemplo, en una gua de
telfonos no es posible encontrar el nmero de un individuo si no sabemos su apellido,
aunque conozcamos su domicilio. Del mismo modo, en un archivo de pacientes en el que la
informacin est desordenada por el nombre de los mismos, ser una tarea bastante
engorrosa encontrar todos los pacientes que viven en una zona determinada. Los problemas
expuestos anteriormente se pueden resolver creando una base de datos informatizada.
Desde el punto de vista informtico, una base de datos es un sistema formado por un
conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un
conjunto de programas que manipulan ese conjunto de datos. Desde el punto de vista ms
formal, podramos definir una base de datos como un conjunto de datos estructurados,
fiables y homogneos, organizados independientemente en mquina, accesibles a tiempo
real, compartibles por usuarios concurrentes que tienen necesidades de informacin
diferente y no predecible en el tiempo.

2
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
2. Conceptos Bsicos de bases de
datos

2.1. Conceptos Bsicos de bases de datos

Bit: 0 o 1
Byte: conjunto de bits
Campo: Conjunto de bytes la unidad ms pequea a la cual uno puede referirse en
un programa.
Registro: Coleccin de campos de iguales o de diferentes tipos.
Archivo: Coleccin de registros almacenados siguiendo una estructura homognea.
Base de datos: Es una coleccin de archivos interrelacionados
Campo clave: Es un campo particular dentro del registro, que permite la
identificacin exclusiva y unvoca de cada registro. La clave debe ser un valor que no
se repita, como por ejemplo, el nmero de cdula de identidad, nmero de
identificacin, el nmero de carn en una universidad o el nmero de seguro social.
Enlace: Relacin entre una secuencia de nodos, en los que se guardan campos de
datos
Estructura de datos de rbol: Es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulacin la organizacin solo sigue una
jerarqua un nodo proviene de un solo nodo.
Estructura de datos en red: Es igual a la estructura de datos en rbol, su
diferencia est en que un nodo proviene de varios nodos.
Diagramas de estructura de datos: Es una descripcin de la relacin entre
entidades (personas, lugares, eventos y objetos) de un sistema y el conjunto de
informacin relacionado con la entidad.
Algoritmo: Un algoritmo es el conjunto de operaciones y procedimientos que deben
seguirse para resolver un problema

3
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Definiciones de Base de datos

3.1. Definiciones de Base de datos

1. Conjunto de archivos interrelacionados entre ellos.


2. Sistema para archivar en computador, cuyo propsito es mantener la informacin y
hacer que est disponible cuando se necesite.
3. Conjunto de informacin (conjunto de datos) que se encuentra agrupada o
estructurada.
4. Instrumento que supone un enfoque distinto en la gestin de datos.
5. Un conjunto de informacin almacenada en memoria auxiliar que permite acceso
directo y un conjunto de programas que manipulan esos datos.
6. Conjunto exhaustivo no redundante de datos estructurados organizados
independientemente de su utilizacin y su implementacin en mquina accesibles en
tiempo real y compatibles con usuarios concurrentes con necesidad de informacin
diferente y no predicable en tiempo .
7. Una base de datos es un conjunto de datos que pertenecen al mismo contexto
almacenados sistemticamente para su uso posterior. En este sentido, una biblioteca
puede considerarse una base de datos compuesta en su mayora por documentos y
textos impresos en papel e indexados para su consulta .
8. conjunto de registros, homogneos, ordenados de una forma determinada,
almacenados en soporte magntico u ptico y accesibles por ordenador
9. Se refiere a la estructura y la forma en que se guardar la informacin de una
empresa. Las bases de datos reflejan la organizacin de la informacin de la empresa
y por lo general se encuentran centralizadas fsicamente en l o los servidores
principales_.

. Ibid., p. 6.

. Bases de datos. Obtenido en Internet el 22 agosto de 2008. Hora: 10.42 pm.


http://www.icapax.com/ASP/bases_de_datos.asp

.PREZ LVAREZ-OSSORIO, J.R. Introduccin a la informacin y documentacin cientfica.


Madrid: Alambra, 1988. p.39

. Trminos de naturaleza comunicativa e informtica. Obtenido en Internet el 22 agosto de


2008. Hora: 10.42 pm.
http://www.colombiestad.gov.co/index.php?option=com_glossary&func=display&Itemid=25
&catid=114

4
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Tipos de bases de datos

4.1. Tipos de bases de datos

Existen varias alternativas para disear las bases de datos:

JERARQUA O RBOL: Puede representar dos tipos de relaciones entre los datos:
relaciones de uno a uno y relaciones de uno a muchos.
RED O GRAFO: Este modelo permite la representacin de muchos a muchos, de tal
forma que cualquier registro dentro de la base de datos puede tener varias
ocurrencias superiores a l. El modelo de red evita redundancia en la informacin, a
travs de la incorporacin de un tipo de registro denominado el conector.
MODELO RELACIONAL: Este modelo se est empleando con ms frecuencia en la
prctica, debido a las ventajas que ofrece sobre los dos modelos anteriores, entre
ellas, el rpido entendimiento por parte de usuarios que no tienen conocimientos
profundos sobre Sistemas de Bases de Datos.
BASES DE DATOS ORIENTADAS A OBJETOS (BDOO): Las BDOO almacenan y
manipulan informacin que puede ser digitalizada (representada) por objetos,
proporcionan una estructura flexible con acceso gil, rpido, con gran capacidad de
modificacin.

Adems combina las mejores cualidades de los archivos planos, las bases jerrquicas y
relacionales.

BASES DE DATOS DISTRIBUIDAS. Las bases de datos distribuidas se estn


utilizando cada vez ms en la misma medida en que se usan las arquitecturas de
cliente-servidor y groupware. Los principales problemas que se generan por el uso de
la tecnologa de bases de datos distribuidas son en lo referente a duplicidad de datos
y a su integridad al momento de realizar actualizaciones a los mismos. Adems, el
control de la informacin puede constituir una desventaja, debido a que se encuentra
diseminada en diferentes localidades geogrficas.
TENDENCIAS FUTURAS. En el futuro la mayora de las organizaciones cambiarn la
forma convencional de manejo de la informacin a la arquitectura de base de datos a
las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se
incrementar de manera considerable en la medida en que la tecnologa de
comunicacin de datos brinde ms facilidades para ello. El uso de bases de datos
facilitar y soportar en gran medida a los Sistemas de Informacin para la Toma de
decisiones.

. Ibd., p. 6.

5
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Componentes que integran un
sistema de base de datos

5.1. Componentes que integran un sistema de base


de datos

1. Datos: cualquier cosa.


2. Informacin: Son los datos organizados y presentados de tal manera que resulten
de utilidad para la toma de decisiones en la empresa en la cual debe servir el
sistema.
3. Equipo: Donde se conservan los datos almacenados, el procesador y la memoria
principal hacen posible la ejecucin de los programas del sistema de base de datos.
4. Programas: Permiten la implantacin, acceso y mantenimiento del sistema de base
de datos. As como la definicin, actualizacin y recuperacin de los datos
estructurados. Estos programas componen el DBMS sistema manejador de base de
datos (Data Base Management System) o tambin SGBD (Sistema Gestor de Base de
Datos).
5. Usuarios: Son las personas que interactan con la base de datos

Hay dos clases de usuarios:

Informticos: Tienen a su cargo las tareas de creacin y mantenimiento de la base


de datos as como la realizacin de los procedimientos y programas que necesitan los
usuarios finales estos son:

o Diseador: Recoge y organiza los datos en un modelo


o Programadores de aplicaciones: son los que desarrollan los programas de
interfase con los usuarios finales y acceden a la base de datos usando DML.
o Administrador de base de datos (DBA): Es un experto que gestiona la
base de datos.
Es la persona encargada de la administracin de las bases de datos y tiene las
siguientes funciones:

Instala y actualiza el software


Saca copias de seguridad
Da soporte a todos los usuarios
Revisa las tareas diarias sobre la base de datos

6
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Definicin del esquema: es decir la creacin del esquema original de
la base de datos. Esto lo hace escribiendo una serie de definiciones en
lenguaje DDL lo que genera las tablas y lo graba en el diccionario de
datos.
Definicin de la estructura de almacenamiento y del mtodo de
acceso: esto se lleva a cabo escribiendo una serie de definiciones con
el mismo DDL
Modificacin del esquema y de la organizacin fsica: ya sea la
modificacin del esquema de la base de datos o de la descripcin de la
organizacin fsica del almacenamiento. Estos cambios, aunque son
poco frecuentes, se hacen usando DDL, compilndolas y aplicndolas al
diccionario de datos.
Concesin de autorizacin para el acceso de datos: es decir
administrar la seguridad de la base de datos, o sea conceder acceso o
denegarlo a un usuario en particular.
Especificacin de las limitantes de integridad: estas limitantes se
conservan en una estructura especial del sistema que consulta el
manejador de bases de datos cada vez que se lleva a cabo una
actualizacin a un dato de la base de datos.

Finales: Su inters est centrado en el contenido da la base de datos estos pueden


ser:

o Sofisticados: utilizan lenguajes de consulta de base de datos


o Ingenuos: Utilizan interfaces y mens creados por los usuarios especializados

7
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
6. Ventajas y desventajas de una
base de datos

6.1. Ventajas de las bases de datos

Disminuir redundancia e inconsistencia de los datos: Puesto que los archivos y


los programas de aplicaciones fueron creados por distintos programadores en un
periodo largo, es posible que un mismo dato este repetido en varios sitios. Esta
redundancia aumenta los costos de almacenamiento y acceso, adems incrementa la
posibilidad que exista inconsistencia en la informacin, es decir que las distintas
copias de la informacin no concuerden entre s. Por ejemplo: si un sistema graba
informacin de sus clientes en el archivo de facturacin y tambin maneja datos de
clientes en un archivo de servicio postventa, entonces un cliente podra tener sus
datos en dos archivos diferentes. Esto genera dos problemas: el primero es que
estamos gastando el doble de espacio en disco para grabar la misma informacin y el
otro es que si ese cliente cambia de domicilio y solo se cambia en el archivo de
facturacin entonces la informacin ser inconsistente pues en el archivo de servicio
postventa estar la informacin anterior, o sea que se tienen dos datos diferentes
para el mismo individuo.

Facilidad para tener acceso a los datos: suponga que el gerente de la empresa
llamada Aceites Esenciales S.A. desea saber la informacin de todos los clientes que
consumieron Extracto de manzanilla durante los primeros tres meses del ao en
curso, ordenados por municipio. Ante un requerimiento de estos que no estaba
contemplado en el sistema original, tocaba hacer dos cosas; sacar el listado completo
de todos los clientes y extraerlos manualmente o sentar a un programador por una
semana o ms para que haga el programa para hacer la consulta. La pregunta
esencial es y que se va a hacer la siguiente vez que se requiera una consulta que no
estaba inicialmente prevista?

Aislamiento o independencia de los datos: puesto que los datos estn repartidos
en varios archivos, y estos pueden tener diferentes formatos, es difcil escribir nuevos
programas para obtener los datos apropiados.

Usuarios mltiples: Para mejorar el funcionamiento general del sistema y obtener


un tiempo de respuesta ms corto, muchos sistemas son multiusuario o sea que
permiten el uso de diferentes usuarios en forma simultnea o concurrente. En un
ambiente de este tipo, las diferentes actualizaciones sobre el mismo dato pueden
resultar en dejar los datos inconsistentes. Por ejemplo: un cuentahabiente del banco
XXX tiene un saldo de $1000 y en forma simultnea el cliente hace un retiro y el
banco hace el descuento por compra de chequera. Como las dos transacciones se
hacen al mismo tiempo el dato que leen ambas transacciones es $1000. Supongamos

8
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
que la chequera cuesta $100 y el retiro es por $200, entonces el modulo de
descuento de chequeras escribir el valor $900 en el archivo, y el modulo de retiros
de los clientes escribe $800, luego el saldo final ser $800 que fue el ultimo datos
escrito en el archivo. Ser este dato correcto?

Seguridad: el empleado de nomina debe tener acceso a los datos de los empleados
y no de los clientes, y a la vez un cajero debe tener acceso a la informacin de
clientes y no a la de los empleados.

Integridad: ser lgico un precio de un producto que sea menor que cero? Para esto
se imponen ciertos limitantes de consistencia pero que pasara cuando resulten
nuevos limitantes?

6.2. Desventajas de las bases de datos

Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser
complejos con una gran funcionalidad. Es preciso comprender muy bien esta
funcionalidad para poder realizar un buen uso de ellos.

Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos,
pueden hacer que sea necesario adquirir ms espacio de almacenamiento. Adems,
para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una
mquina ms grande o una mquina que se dedique solamente al SGBD. Todo esto
har que la implantacin de un sistema de bases de datos sea ms cara.

Vulnerable a los fallos: El hecho de que todo est centralizado en el SGBD hace
que el sistema sea ms vulnerable ante los fallos que puedan producirse. Es por ello
que deben tenerse copias de seguridad (Backup).

Tipos de Campos: Cada Sistema de Base de Datos posee tipos de campos que
pueden ser similares o diferentes. Entre los ms comunes podemos nombrar:

Numrico: entre los diferentes tipos de campos numricos podemos encontrar


enteros sin decimales y reales decimales.
Booleanos: poseen dos estados: Verdadero Si y Falso No.
Memos: son campos alfanumricos de longitud ilimitada. Presentan el
inconveniente de no poder ser indexados.
Fechas: almacenan fechas facilitando posteriormente su explotacin. Almacenar
fechas de esta forma posibilita ordenar los registros por fechas o calcular los das
entre una fecha y otra.
Alfanumricos: contienen cifras y letras. Presentan una longitud limitada (255
caracteres).

9
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Autoincrementables: son campos numricos enteros que incrementan en una unidad
su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya
que resultan exclusivos de un registro .

. Bases de datos. Obtenido en Internet el 22 agosto de 2008. Hora: 10.42 pm.


http://html.rincondelvago.com/bases-de-datos_9.html

. Qu son las bases de datos. Obtenido en Internet el 22 agosto de 2008. Hora: 10.42 pm
http://www.maestrosdelweb.com/principiantes/%C2%BFque-son-las-bases-de-datos/

. Ibd.

. Ibd. P. 6

10
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
7. Abstraccin de los datos

Una base de datos es en esencia una coleccin de archivos relacionados entre s, de la cual
los usuarios pueden extraer informacin sin considerar las fronteras de los archivos. Los
niveles de abstraccin son la forma de esconder la complejidad de los datos para que
usuarios no familiarizados con las computadoras puedan manipular los datos.
Existen diferentes niveles de abstraccin para simplificar la interaccin de los
usuarios con el sistema; Interno, conceptual y externo, especficamente el de
almacenamiento fsico, el del usuario y el del programador.

7.1. Nivel fsico.

Es la representacin del nivel ms bajo de abstraccin, en ste se describe en detalle la


forma en cmo de almacenan los datos en los dispositivos de almacenamiento (por ejemplo,
mediante sealadores o ndices para el acceso aleatorio a los datos).

7.2. Nivel conceptual

El siguiente nivel ms alto de abstraccin, describe que datos son almacenados realmente
en la base de datos y las relaciones que existen entre los mismos, describe la base de datos
completa en trminos de su estructura de diseo. El nivel conceptual de abstraccin lo usan
los administradores de bases de datos, quienes deben decidir qu informacin se va a
guardar en la base de datos.

Consta de las siguientes definiciones:

1. Definicin de los datos: Se describen el tipo de datos y la longitud de campo todos los
elementos direccionales en la base. Los elementos por definir incluyen artculos elementales
(atributos), totales de datos y registros conceptuales (entidades).

2. Relaciones entre datos: Se definen las relaciones entre datos para enlazar tipos de
registros relacionados para el procesamiento de archivos mltiples.

En el nivel conceptual la base de datos aparece como una coleccin de registros lgicos, sin
descriptores de almacenamiento. En realidad los archivos conceptuales no existen
fsicamente. La transformacin de registros conceptuales a registros fsicos para el
almacenamiento se lleva a cabo por el sistema y es transparente al usuario .

11
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
1. Nivel de visin.

Nivel ms alto de abstraccin, es lo que el usuario final puede visualizar del sistema
terminado, describe slo una parte de la base de datos al usuario acreditado para verla. El
sistema puede proporcionar muchas visiones para la misma base de datos.

La interrelacin entre estos tres niveles de abstraccin se ilustra en la siguiente figura 1.

Figura 1

Basada en la direccin:: http://www.temas-estudio.com/base-de-datos/ Obtenida en la Fecha: agosto 17


de 2008 hora: 14.36.

Diseo: Equipo Tcnico P.A.V. Agosto del 2008

. Abstraccin de la informacin. Obtenido en Internet el 22 agosto de 2008. Hora: 10.42 pm


http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_3.htm

12
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
8. Sistema Manejador de Bases de
Datos DBMS

8.1. Sistema Manejador de Bases de Datos DBMS

Es el corazn de la base de datos ya que se encarga del control total de los posibles
aspectos que la puedan afectar. Es una coleccin de numerosas rutinas de software
interrelacionadas, cada una de las cuales es responsable de alguna tarea especfica .

8.2. Las funciones principales de un DBMS son:

1. Crear y organizar la Base de datos.


2. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que
los datos puedan ser accesados rpidamente.
3. Manejar los datos de acuerdo a las peticiones de los usuarios.
4. Registrar el uso de las bases de datos.
5. Interaccin con el manejador de archivos.
6. Respaldo y recuperacin.
7. Control de concurrencia.
8. Seguridad e integridad.

El DBMS tambin conocido como el Gestor de Base de Datos, es como la interfase entre la
base de datos fsica y las peticiones del usuario. El DBMS interpreta las peticiones de
entrada/salida del usuario y las manda al sistema operativo para la transferencia de datos
entre la unidad de memoria secundaria y la memoria principal. El siguiente grafico ilustra
mejor este funcionamiento:

13
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Figura 2

Basada en la direccin:: http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_9.htm Obtenida en la Fecha: agosto


17 de 2008 hora: 14.36. Diseo: Equipo Tcnico P.A.V. Agosto del 2008

Algunos ejemplos de manejadores de bases de datos son: Dbase, Fox, Access, Informix,
Unify, Oracle, Internase

. Ibd., pg. 14.

. Ibd., pg. 14.

14
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
9. Lenguaje de consulta
estructurado (SQL)

9.1. Lenguaje de consulta estructurado (SQL)

Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar


diversos tipos de operaciones sobre las mismas. SQL es considerado actualmente como un
lenguaje estndar.

Los DBMS estn compuestos por el lenguaje de definicin de datos y el lenguaje de


manipulacin de datos

1. Lenguaje de Definicin de Datos

Denominado por sus siglas como: DDL(Data definition Language), permite definir un
esquema de base de datos por medio de una serie de definiciones que se expresan en un
lenguaje especial, el resultado de estas definiciones se almacena en un archivo especial
llamado diccionario de datos.

El resultado de la compilacin de las sentencias DDL es un conjunto de tablas que se


almacena en un archivo especial llamado diccionario o directorio de datos.

2. Lenguaje de Manipulacin de Datos

La manipulacin de datos se refiere a las operaciones de insertar, recuperar, eliminar o


modificar datos; dichas operaciones son realizadas a travs del lenguaje de manipulacin de
datos (DML, Data Manipulation Language), que es quin permite el acceso de los usuarios a
los datos.

Existen bsicamente 2 tipos de lenguajes de manipulacin de datos: Procedimentales en


los que los LMD requieren que el usuario especifique que datos se necesitan y cmo
obtenerlos y No procedimentales, donde los LMD requieren que el usuario especifique que
datos se necesitan y sin especificar cmo obtenerlos.

15
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
10.Estructura General del Sistema

10.1. Estructura General del Sistema

Un sistema de base de datos se encuentra dividido en mdulos cada uno de los cuales
controla una parte de la responsabilidad total de sistema. En la mayora de los casos, el
sistema operativo proporciona nicamente los servicios ms bsicos y el sistema de la base
de datos debe partir de esa base y controlar adems el manejo correcto de los datos. As el
diseo de un sistema de base de datos debe incluir la interfaz entre el sistema de base de
datos y el sistema operativo.

Los componentes funcionales de un sistema de base de datos, son:

1. Gestor de archivos: Gestiona la asignacin de espacio en la memoria del disco y de


las estructuras de datos usadas para representar informacin.
2. Manejador de base de datos: Sirve de interfaz entre los datos y los programas de
aplicacin.
3. Procesador de consultas: Traduce las proposiciones en lenguajes de consulta a
instrucciones de bajo nivel. Adems convierte la solicitud del usuario en una forma
ms eficiente.
4. Compilador de DDL: Convierte las proposiciones DDL en un conjunto de tablas que
contienen metadatos, estas se almacenan en el diccionario de datos.
5. Archivo de datos: En l se encuentran almacenados fsicamente los datos de una
organizacin.
6. Diccionario de datos: Contiene la informacin referente a la estructura de la base
de datos.
7. ndices: Permiten un rpido acceso a registros que contienen valores
especficos.

Una forma grfica de representar los componentes antes mencionados y la relacin que
existe entre ellos sera la siguiente.

16
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Figura 3

Estructura Global del Sistema


Basada en la direccin: http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_12.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36 Diseo: Equipo Tcnico P.A.V. Agosto del 2008

17
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
11.Modelo de datos

Un Modelo es una representacin de la realidad que contiene las caractersticas generales de


algo que se va a realizar. En base de datos, esta representacin la elaboramos de forma
grfica. Un Modelo de Datos es una coleccin de herramientas conceptuales para describir
los datos, las relaciones que existen entre ellos, semntica asociada a los datos y
restricciones de consistencia.

Los modelos de datos se dividen en tres grupos:

Modelos lgicos basados en objetos.


Modelos lgicos basados en registros.
Modelos fsicos de datos.

11.1. Modelos lgicos basados en objetos

Se usan para describir datos en los niveles conceptual y de visin, es decir, con este modelo
representamos los datos de tal forma como nosotros los captamos en el mundo real, tienen
una capacidad de estructuracin bastante flexible y permiten especificar restricciones de
datos explcitamente. Existen diferentes modelos de este tipo como el entidad relacin y el
orientado a objetos, pero el ms utilizado por su sencillez y eficiencia es el modelo Entidad-
Relacin.
El Modelo Entidad-Relacin: Denominado por sus siglas como: E-R; Este modelo representa
a la realidad a travs de entidades, que son objetos que existen y que se distinguen de otros
por sus caractersticas, por ejemplo: un alumno se distingue de otro por sus caractersticas
particulares como lo es el nombre, o el numero de control asignado al entrar a una
institucin educativa, as mismo, un empleado, una materia, etc.

11.2. Modelos lgicos basados en registros

Se utilizan para describir datos en los niveles conceptual y fsico.


Estos modelos utilizan registros e instancias para representar la realidad, as como las
relaciones que existen entre estos registros (ligas) o apuntadores. A diferencia de los
modelos de datos basados en objetos, se usan para especificar la estructura lgica global de
la base de datos y para proporcionar una descripcin a nivel ms alto de la implementacin.
Los tres modelos de datos ms ampliamente aceptados son:

18
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Modelo jerrquico: Es similar al modelo de red en cuanto a las relaciones y datos,
ya que estos se representan por medio de registros y sus ligas. La diferencia radica
en que estn organizados por conjuntos de rboles en lugar de grficas arbitrarias.

Figura 4

Modelo Jerrquico de Bases de Datos


Basada en la direccin:
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060029/lecciones/cap1-6.html
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36. Diseo: Equipo Tcnico P.A.V. Agosto del 2008

19
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Modelo de Red: Este modelo representa los datos mediante colecciones de registros
y sus relaciones se representan por medio de ligas o enlaces, los cuales pueden verse
como punteros. Los registros se organizan en un conjunto de grficas arbitrarias. Un
modelo jerrquico presenta una estructura como la que se muestra en la figura 5.

Figura 5

Ejemplo Modelo Jerrquico


Basada en la direccin:
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060029/lecciones/cap1-6.html Obtenida en la Fecha:
agosto 17 de 2008 hora: 14.36. Diseo: Equipo Tcnico P.A.V. Agosto del 2008

Modelo Relacional: En este modelo se representan los datos y las relaciones entre
estos, a travs de una coleccin de tablas, en las cuales los renglones (tuplas)
equivalen a los cada uno de los registros que contendr la base de datos y las
columnas corresponden a las caractersticas (atributos) de cada registro localizado en
la tupla. Es el tipo de base de datos ms difundido y utilizado en la actualidad y el
cual veremos en detalle en el segundo encuentro. Un modelo de datos relacional,
presenta una estructura como la que se muestra en la figura 6.

20
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Figura 6

Ejemplo del Modelo Relacional


Basada en la direccin:
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060029/lecciones/cap1-6.html

Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36. Diseo: Equipo Tcnico P.A.V. Agosto del 2008

Modelos fsicos de datos: Se usan para describir a los datos en el nivel ms bajo,
aunque existen muy pocos modelos de este tipo, bsicamente capturan aspectos de
la implementacin de los sistemas de base de datos. Existen dos clasificaciones de
este tipo que son:

Modelo unificador
Memoria de elementos .

. Ibid., p 23

. Ibd., pg. 23

. Modelos de datos. Obtenida en Internet el 22 agosto de 2008. Hora: 10.42 pm


http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_4.htm

21
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
12. Ciclo de vida de una base de
datos
Bases de datos-Modelo de datos-Ciclo de vida

El ciclo de vida de un desarrollo de una base de datos consta de siete pasos:

1. Anlisis de las necesidades


2. Estudio de viabilidad
3. Definicin de requisitos
4. Diseo conceptual / lgico
5. Implementacin
6. Evaluacin y Mantenimiento

12.1. Anlisis de las necesidades

En reunin con el cliente se deben documentar los tres grupos de usuarios definidos en la
introduccin de la gua, las necesidades de informacin de cada uno de ellos, as como los
informes que cada uno necesita para su actividad y el contenido de los mismos. Cuanta ms
precisin exista en estos requisitos iniciales ms preciso ser el desarrollo de la base de
datos.

En esta reunin tambin debe quedar documentados los niveles de seguridad de los grupos
de usuarios, los derechos de cada uno de ellos sobre los datos, los requisitos de los sistemas
informticos del cliente (sistema operativo, tipo de red, servidores, etc.) y la ubicacin de
los usuarios.

No hay que olvidar que normalmente en las empresas existen ya sistemas de


almacenamiento de datos, por tanto es conveniente analizar los datos ya existentes y
analizar las posibles relaciones con la base de datos a desarrollar.

Un cuestionario muy sencillo pero muy til para el administrador es el siguiente (a rellenar
por todos los usuarios):

Nombre
Cargo
rea de Responsabilidad
Obligaciones principales que requieren informacin de la base datos
De qu aplicaciones recibe informacin?
Con cunta frecuencia recibe informacin?
Qu hace con esta informacin?
Qu precauciones de seguridad debe tomar con respecto a la informacin?
Para qu aplicacin proporciona datos?

22
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Estn contemplados cambios para alguna de sus actividades actuales que involucren
alguna de las informaciones anteriores?

12.2. Estudio de viabilidad

Un estudio de viabilidad implica la preparacin de un informe con las caractersticas


siguientes:

1. Viabilidad tecnolgica. Hay tecnologa suficiente para el desarrollo?

2. Viabilidad operacional. Existen suficientes recursos humanos, presupuesto, experiencia y


formacin para el desarrollo?

3. Viabilidad econmica. Se pueden identificar los beneficios? Los beneficios costearan el


desarrollo del sistema? Se pueden medir los costes y los beneficios?

12.3. Definicin de requisitos

Los requisitos de desarrollo involucran el software y hardware necesario para la


implementacin, los recursos humanos necesarios (tanto internos como externos), la
formacin al personal.

Aunque un poco al margen del tema es conveniente parar en este momento y planificar las
acciones a realizar elaborando un cronograma del proyecto y un organigrama con las
responsabilidades de cada miembro del equipo. Conviene sealar quienes van a ser los
interlocutores y fijar un calendario de reuniones de seguimiento del proyecto.

Hay que definir la figura del validador, esta persona ser la encargada de velar en cada
momento que no se est rebasando el alcance del proyecto, as como asegurar que la
implementacin est encaminada a subsanar las necesidades del cliente.

12.4. Diseo

En esta etapa se crea un esquema conceptual de la base de datos. Se desarrollan las


especificaciones hasta el punto en que puede comenzar la implementacin. Durante esta
etapa se crean modelos detallados de las vistas de usuario y sobre todo las relaciones entre
cada elemento del sistema, documentando los derechos de uso y manipulacin de los
diferentes grupos de usuarios.

23
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Si parte de la informacin necesaria para crear algn elemento establecido ya se encuentra
implementado en otro sistema de almacenamiento hay que documentar que relacin existir
entre uno y otro y detallar los sistemas que eviten la duplicidad o incoherencia de los datos.

El diseo consta, como se vio anteriormente, de tres fases: el diseo global o conceptual, el
diseo lgico y el modelo fsico.

12.5. Implementacin

Una vez totalmente detallado el modelo conceptual se comienza con la implementacin fsica
del modelo de datos, a medida que se va avanzando en el modelo el administrador del
sistema va asegurando la correccin del modelo y el validador la utilidad del mismo.

La implementacin consiste en el desarrollo de las tablas, los ndices de los mismos, las
condiciones de validacin de los datos, la relacin entre las diferentes tablas. Por otro lado,
la definicin de las consultas y los parmetros a utilizar por cada una de ellas.

Una vez finalizada la implementacin fsica, se asignan las correspondientes medidas de


seguridad y se ubica la base de datos en el lugar correspondiente.

12.6. Evaluacin y Perfeccionamiento

En esta ltima etapa todos los usuarios del sistema acceden a la base de datos y deben
asegurarse el correcto funcionamiento de la misma, que sus derechos son los adecuados,
teniendo a su disposicin cuanta informacin necesiten. Tambin debern asegurarse que el
acceso a los datos es cmodo, prctico, seguro y que se han eliminado, en la medida de lo
posible, las posibilidades de error.

El administrador se asegura que todos los derechos y todas las restricciones han sido
implementadas correctamente y que se ha seguido en Tutorial de estilo en la totalidad de la
implementacin.

El validador se asegurar que todas las necesidades del cliente han sido satisfechas.

El contenido del tema 12: Ciclo de Vida de una base de datos ha sido ntegramente elaborado por
Claudio Casares www.lobocom.es/~claudio

Tomado de http://www.solorecursos.com/manuales/sql/moddat003.htm. Septiembre 20 de 2008.

24
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Unidad 2

Modelo Entidad
Relacin (E/R)
El diseo conceptual es el proceso por el cual se construye un modelo
de la informacin que se utiliza en una empresa u organizacin, el
objetivo ms esencial de la fase de requerimientos es crear un modelo
de los datos del usuario. Tal modelo identifica las cosas que se van a
almacenar en la base de datos y define sus estructuras y las relaciones,
es el modelo entidad relacin uno de los modelos ms conocidos,
simples y claros donde se puede expresar grficamente toda la
estructura de la base de datos.
1. Modelo Entidad Relacin

Definicin: Es la percepcin del mundo real. Coleccin de objetos bsicos llamados entidades
y relaciones. El modelo contiene ciertas restricciones a la que debe de ajustarse los datos.

Lo que hace al modelo entidad relacin universal es que no est enfocado al diseo de un
modelo de bases de datos particular.

Se emplea para interpretar, especificar y documentar los requerimientos para un sistema de


bases de datos ya que proporciona estructuras que muestran el diseo general de los
requerimientos de datos de los usuarios.

El modelo debe estar compuesto por:

Entidades
Atributos
Relaciones
Cardinalidad
Claves

26
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
2. Ventajas del modelo entidad
relacin
Constituye la base del modelo conceptual de datos.
Es el modelo semntico ms popular encontrado en los libros..
Proporciona estructuras que muestran el diseo general de los requerimientos de datos
de los usuarios.
Va de lo particular a lo general
Es muy flexible est enfocado al diseo de muchas situaciones.

27
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Pasos Para Construir El Modelo
Entidad Relacin
Identificacin de entidades.
Identificacin de relaciones.
Elaborar el modelo.
Identificar atributos.
Refinar modelo.
Pasar el modelo entidad relacin a un modelo implementable (modelo
relacional).

3.1. Primer Paso: Reconocer Entidades

Es toda cosa u objeto significativo (real imaginario) del cual se requiere conocer
almacenar informacin.

3.1.1. REPRESENTACIN DE ENTIDADES

Toda entidad se representa por medio de un rectngulo con el nombre de la entidad dentro
del rectngulo en maysculas.

Ejemplo

3.1.2. Cmo Identificar Las Entidades

Es el paso central del proceso de modelo entidad relacin. Los diversos tipos de entidades
son:

PERSONAS: Jurdicas o naturales como: cliente, alumno, vendedor, profesor,


empleado etc.
OBJETOS: Tangibles y no tangibles como: artculo, cuenta etc.
LUGARES: Bodega, ciudad, aula.
TRANSACCIONES: Compra, venta, evaluacin.
CONCEPTOS O ABSTRACCIONES: Tipo crdito, Tipo servicio, Tipo cliente
etc.

28
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Toda persona realiza una transaccin y que la accin de esta recae siempre sobre un
objeto dado.
Todas las personas y los objetos residen y se almacenan en un lugar

3.2. Segundo Paso: Relaciones O Reglas

Relacin: Es una asociacin nmbrale, significativa y estable entre dos entidades.

Ejemplo

Se tienen dos entidades estudiante, clase. La relacin entre estudiante y clase es:

Cada estudiante debe tener una ms clases y cada clase debe de estar compuesta por uno
ms estudiantes.

3.2.1. Representacin De Las Relaciones O Reglas

Toda relacin tiene dos extremos y para cada uno de los cuales existen:

1. Una leyenda: generalmente es un verbo.

Un grado de cardinalidad

29
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
1:1 uno a uno

Ejemplo tomado de: http://labredes.itcolima.edu.mx/fundamentosbd/sd_u2_2.htm.


Fecha Septiembre 27 de 2008 hora: 10 pm. Diseo: Equipo Tcnico P.A.V

1:N uno a muchos

Tomado de: http://labredes.itcolima.edu.mx/fundamentosbd/sd_u2_2.htm. Fecha


Septiembre 27 de 2008 hora: 10 pm. Diseo: Equipo Tcnico P.A.V

30
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
N:M muchos a muchos

Ejemplo tomado de:


http://labredes.itcolima.edu.mx/fundamentosbd/sd_u2_2.htm. Fecha Septiembre
27 de 2008 hora: 10 pm. Diseo: Equipo Tcnico P.A.V

3.2.2. Cardinalidad o multiplicidad de las relaciones:

Imagen basada en: http://gemini.udistrital.edu.co/comunidad/profesores/rfranco/modelo_er.htm Fecha agosto 14 de 2008 hora:


10 pm. Diseo: Equipo Tcnico P.A.V

31
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.2.3. Una condicin opcional mandatoria

Mandatoria: Se representa con lnea continua y se utiliza la palabra


debe_____________________Toma desde 1, 2, .., N
Opcional: Se representa con lnea discontinua y se utiliza la palabra puede_ _ _ _ _
_ _ _ _ _ _ _ Toma desde 0, 1, 2,..,N

Al hacer la unin de estas dos partes de la relacin queda:

La relacin regla se escribe de la siguiente forma:

Cada estudiante debe inscribirse en uno ms club Y cada club puede tener uno ms
estudiantes.

Imagen basada en: http://gemini.udistrital.edu.co/comunidad/profesores/rfranco/modelo_er.htm Fecha agosto 14 de 2008


hora: 10 pm. Diseo: Equipo Tcnico P.A.V

32
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.2.4. RELACIONES RECURSIVAS

Es una jerarqua definida sobre una misma entidad.

Para este tipo de relaciones tambin se tiene en cuenta las reglas anteriores como:

La leyenda, la cardinalidad y la condicin.

3.2.5. La regla relacin se escribe:

Cada cliente puede recomendar uno y solo un cliente y cada cliente puede ser
recomendado por uno y solo un cliente.

3.3. Tercer Paso: Elaborar El Modelo

Para elaborar el modelo entidad relacin se tienen en cuenta las entidades que tengo
relacionadas sin repetir entidades.

Ejemplos:

33
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Imagen basada en: http://gemini.udistrital.edu.co/comunidad/profesores/rfranco/modelo_er.htm Fecha agosto 14 de 2008 hora: 10
pm. Diseo: Equipo Tcnico P.A.V

34
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.4. Cuarto Paso: Reconocer Atributos

Cualquier detalle que sirve para identificar, describir, cualificar, clasificar expresar el
estado de una entidad. Un atributo puede ser: Texto, nmero, figuras sonidos.

3.4.1. TIPOS DE ATRIBUTOS

Atributos clave primaria: Toda entidad debe ser identificada con unicidad mediante uno de
sus atributos una combinacin de los mismos, denominado clave primaria identificador
nico.

As todos los atributos de una entidad deben depender nicamente del valor de la clave
primaria. Su representacin para el modelo entidad relacin se hace colocando el smbolo #
antepuesto al nombre del atributo.

Ejemplo:

Atributos mandatarios u obligatorios: Cuando el valor de un atributo debe ser siempre


conocido, este se representa mediante un smbolo * antepuesto al nombre del atributo.

Ejemplo

35
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Atributos opcionales: Son aquellos que pueden ser desconocidos, estos se representan por
punto antepuesto al nombre del atributo.

Ejemplo

3.4.2. Reglas Para La Identificacin De Atributos

Durante este proceso es posible identificar nuevas entidades y relaciones ocultas en el


modelo.

1. Toda entidad debe tener un identificador nico clave primaria en caso de que no la
tenga puede asignar una.
2. Un atributo debe escribirse siempre en singular y en minscula, un nombre de
atributo en plural coincide con el problema de repeticin esta repeticin de atributos
puede revelar la existencia de entidades faltantes en el modelo.
Ejemplo:

Aqu podemos ver que un cliente puede tener varios telfonos lo que me est indicando la
presencia de una nueva entidad llamada telfono.

Ejemplo:

36
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Un atributo se transforma en una entidad cuando tiene significado completo en s
mismo, con relaciones y atributos propios.

Podemos observar que rea que es un atributo y este tambin tiene atributos propios como
nmero del rea y nombre del rea y se pude relacionar con la materia.

Toda entidad debe tener al menos dos atributos una clave primaria y un descriptor. Las
nicas entidades que pueden tener solo la clave primaria son las entidades de interseccin
que tienen clave primaria compuesta por dos atributos

37
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.4.3. Como Identificar Claves:

Clave candidatas: Es un grupo de atributos que identifican de forma nica un


registro en una tabla.
Clave primaria: Es una de las claves candidatas que se selecciona para que sea
clave primaria.
Clave secundaria alterna: Es la clave que queda despus de escoger la clave
primaria.
Clave compuesta: Es una clave con ms de un atributo, es el caso de las entidades
de interseccin.
Clave sustituta: Es una columna de valores nicos que puede mantener una
aplicacin el DBMS.
Clave Ajena: Es un atributo que es una clave primaria en una entidad y que est en
otras entidades fuera de aquella a donde pertenece, estas clave son muy importantes
ya que por medio de estas hace la relacin el modelo relacional

3.5. Quinto Paso: Refinar Modelo

Para refinar el modelo entidad relacin:

1. Se destruye toda relacin N:M que tenga el modelo para que quede 1:N.

3.5.1. COMO ELIMINAR LAS RELACIONES DE N:M

Se crea una nueva entidad que intersecta a las entidades participantes y donde el
identificador nico (clave primaria) se forma mediante la combinacin de las claves
primarias de dichas entidades.

Esta es la relacin que debo eliminar para que queden relaciones 1:N

38
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
La relacin queda de la siguiente manera:

Las entidades estudiante y club son las entidades participantes y la entidad est_club es la
entidad de interseccin entidad dbil y toda la relacin se llama relacin de dependencia.
La entidad de interseccin puede tener nicamente la clave primaria como se dijo en el
reconocimiento de claves y en caso de colocarle otros atributos hay que tener en cuenta que
este dependa de los dos atributos que forman la clave primaria.

Ejemplo:
Un atributo para la entidad EST_CLUB sera el horario en que un estudiante est inscrito en
un club.

3.5.2. Reglas para ubicar la clave forneas:

1. Si la relacin es de 1: 1 cualquiera de las dos entidades le pasa la clave primaria a la


otra
2. Si la relacin es de 1: N: la entidad lado 1 le pasa la clave primaria al
lado N

Otros puntos importantes para tener en cuenta al momento de refinar el modelo


Revisar para ver que hace falta que es redundante en el modelo acuerdo a las
condiciones o requerimientos que se pidieron.

39
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Otros conceptos para el modelo
entidad relacin

4.1. SUPERCLASES Y SUBCLASES DE ENTIDADES

En el modelo entidad relacin, una entidad agrupa un conjunto de ocurrencias de entidad del
mismo tipo. En muchos casos, estas ocurrencias se pueden agrupar a su vez en otros
subconjuntos que tienen un significado propio para los propsitos de la Base de Datos y, por
tanto, deberan representarse de forma explcita. Por ejemplo, la entidad EMPLEADO puede
a su vez subdividirse en SECRETARIA, INGENIERO, JEFE, TCNICO, ASALARIADO,
SUBCONTRATADO, etc. El conjunto de ocurrencias de entidad en cada una de estas
entidades ser un subconjunto de las ocurrencias de entidad de EMPLEADO, ya que por
ejemplo, un ingeniero tambin es un empleado. Llamaremos a cada uno de estos
subconjuntos Subclases de la entidad EMPLEADO y a EMPLEADO una Superclase de cada
uno de estos subconjuntos.

Llamaremos a la relacin existente entre las Superclases y las Subclases como relacin
Clase/Subclase. En el ejemplo anterior, EMPLEADO/SECRETARIA y EMPLEADO/TCNICO son
dos relaciones Clase/Subclase. Hay que tener en cuenta que una ocurrencia de una Subclase
representa el mismo objeto real que alguna correspondiente a su Superclase, por ejemplo la
SECRETARIA "Concha Leco" ser tambin la EMPLEADO "Concha Leco". Por tanto, la
ocurrencia de Subclase es la misma que en la Superclase pero con un rol especfico. Una
ocurrencia de Subclase no tienen sentido si no es a su vez ocurrencia de Superclase. Por
otro lado, una ocurrencia de superclase puede ser a su vez ocurrencia de varias subclases o
de ninguna. Por ejemplo, "Roberto Mate" como ocurrencia de EMPLEADO puede a su vez
pertenecer a subclases INGENIERO y ASALARIADO.

4.2. HERENCIA DE ATRIBUTOS EN LA RELACIN


CLASE/SUBCLASE.

Debido a que una subclase es a su vez parte se una superclase, la subclase tendr sus
atributos especficos as como los atributos correspondientes a la superclase a la que
pertenece. Esto quiere decir que la ocurrencia de entidad de una subclase hereda los
atributos correspondientes a la superclase a la que pertenece. De la misma manera hereda
las relaciones en las que su correspondiente superclase participa.

40
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.3. ESPECIALIZACIN.

El proceso por el que se definen las diferentes subclases de una superclase se conoce como
especializacin. El conjunto de subclases se define basndonos en caractersticas
diferenciadores de las ocurrencias de entidad de la superclase. Por ejemplo, el conjunto se
subclases {SECRETARIA, INGENIERO, TCNICO} es una especializacin de la superclase
EMPLEADO mediante la distincin del tipo de trabajo en cada ocurrencia de entidad.
Podemos tener varias especializaciones de una misma entidad basndonos en distintos
criterios. Por ejemplo, otra especializacin de EMPLEADO podra dar lugar a las subclases
ASALARIADO y SUBCONTRATADO, dependiendo del tipo de contrato.
DIAGRAMAS ENTIDAD RELACIN

http://www.galeon.com/konnan2001/ERE.htm
Ibd.
Ibd.
Ibd., p. 18

41
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Ejercicios resueltos de modelo
entidad relacin
Deseamos disear una base de datos para una universidad, se dispone de la siguiente
informacin:
Los departamentos pueden estar en una sola facultad.
Un profesor est siempre asignado a un slo departamento y adscrito a una o varias
ctedras, pudiendo cambiar de ctedra pero no de departamento; interesa la fecha en
que un profesor es adscrito a una ctedra.
Tenga en cuenta que una ctedra puede ser asignada a varios profesores

2. Se desea disear una base de datos que contenga informacin relativa a las
carreteras de determinado pas. Se pide realizar el diseo en el modelo E/R,
sabiendo que:

En dicho pas las carreteras se encuentran dividas en tramos.


Un tramo siempre pertenece a una nica carretera y no puede cambiar de carretera.
Un tramo puede pasar por varios trminos municipales, siendo de inters el kilmetro
del tramo por el que entra en dicho trmino municipal y el kilmetro por el que sale.
Existen una serie de reas en las que se agrupan los tramos y cada uno de ellos no
puede pertenecer a ms de un rea.

42
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Se desea disear una base de datos sobre la informacin de las reservas de una
empresa dedicada al alquiler de automviles. Se dispone de la siguiente informacin:

Un determinado cliente puede tener en un momento dado varias reservas.


Una reserva la realiza un nico cliente, pero puede involucrar a varios coches.
Es importante registrar la fecha de comienzo de la reserva y la de terminacin.
Todo coche tiene siempre asignado un determinado garaje, que no puede cambiar.
Cada reserva se realiza en una determinada agencia.
En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.

43
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Video club: En una tienda de video se necesita mantener informacin de alrededor
de 3000 casetas cada uno de los casetes tiene asignado un nmero por cada pelcula
se necesita conocer un titulo y categora por ejemplo: comedia, suspenso, drama,
accin, ciencia ficcin, etc. Se mantienen algunas copias de muchas pelculas. Se le
da a cada pelcula una identificacin y se mantiene seguimiento de lo que contiene
cada casete.

Un casete puede venir en varios formatos y una pelcula es grabada en un solo


casete; frecuentemente las pelculas son pedidas de acuerdo a un actor especifico
Tom Cruise y Demi More son los ms populares es por esto que se debe mantener
informacin de los actores que pertenecen a cada pelcula.
No en todas las pelculas actan artistas famosos, a los clientes de la tienda le gusta
conocer datos como el nombre real del actor, y su fecha de nacimiento.
En la tienda se mantienen informacin solo d los actores que aparecen en las
pelculas y que se tiene a disposicin. Solo se alquila videos a aquellos que
pertenecen al club de videos. Para pertenecer al club se debe tener un buen crdito.
Por cada miembro del club se mantiene una ficha con su nombre, telfono y
direccin, cada miembro del club tiene asignado un nmero de membresa. Se desea
mantener informacin de todos los casetes que un cliente alquila, cuando un cliente
alquila un casete se debera conocer el nombre de la pelcula, la fecha en la que se
alquila y la fecha de devolucin.

44
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
ENTIDAD

CLIENTE
PELCULAS
TIPO_PEL
ACTORES
CASETE
ALQUILER

Ejemplo tomado de:


http://www.monografias.com/trabajos34/base-de-datos/base-de-datos.shtml
Fecha Septiembre 27 de 2008 hora: 10 pm

Diseo esquema: Equipo Tcnico P.A.V.

45
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Un modelo ER de Propietarios de Taxis Conductores y Empresas

Un Taxi cuantos propietarios tiene?

R/ uno (El uno se pone en PROPIETARIOS)

Un Propietario cuantos Taxis tiene?

R/ Varios (La N se pone en TAXIS)


Un taxi cuantos Conductores tiene?
R/ Uno (el 1 se pone en CONDUCTORES)

Un conductor Cuantos taxis maneja?

R/ Uno (El Uno se pone En TAXIS)

Un PROPIETARIO a cuantas EMPRESAS est afiliado?

R/ Varias (La N se pone en EMPRESAS)

Una empresa cuantos propietarios tiene afiliados?

R/ Varias (La N se pone en Propietarios)

46
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ejemplo tomado de:
http://www.calasanz-pereira.edu.co/prueba/html/modules/Access/normalizacion.htm. Fecha Septiembre 27 de 2008 hora: 10 pm
. Diseo esquema: Equipo Tcnico P.A.V.

Nota: Este modelo no tiene destruidas las relaciones N:M. que hay entre cassette y alquiler
y la de actor pelculas

47
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Unidad 3

Modelo
Relacional
El modelo relacional es un modelo lgico basado en registros que vino
despus de que los modelos jerrquico y de red estuvieran en uso. Este
modelo relacional, no se puede decir que sea en s un modelo
semntico de datos. Su enorme xito no se debe a que permite de
forma implcita operaciones conceptualmente abstractas sobre los
datos, sino a los altos niveles de fiabilidad e integridad que aporta en el
manejo de grandes cantidades de datos.
1. Definicin
El modelo de datos relacional fue introducido por Edgar F. Codd (1970). Se basa en una
estructura de datos simple y uniforme la relacin y tiene fundamentos tericos slidos

El modelo relacional representa la base de datos como una coleccin de relaciones. En


trminos mnimos informales, cada relacin semeja una tabla o, hasta cierto punto, un
archivo simple.

Codd daba 12 reglas que debe cumplir cualquier base de datos que desee considerarse
relacional:

1.1. Las Doce Reglas De Codd

1. Regla de informacin:

Todos los datos de una base de datos relacional se representan explcitamente (al nivel
lgico) como valores de tablas.

2. Reglas de acceso garantizado:

Todos y cada uno de los datos (valor indisoluble, nico o atmico) de una base de datos
relacional se garantiza que sean lgicamente accesible recurriendo a una combinacin de
nombres de tabla, valor de clave primaria y nombre de columna.

3. Tratamiento sistemtico de valores Nulos:

Los valores nulos (distinto de cadena de caracteres vacas o de una cadena de caracteres en
blanco y distinta de cero o de cualquier otro nmero) se soporta en los SGBD
completamente relacionales para representar la falta de informacin y la informacin
inaplicable de un modo sistemtico e independiente del tipo de datos.

4. Catlogo en lnea dinmico basado en el modelo relacional:

La descripcin de la base de datos o Catalogo se representa (o almacena) a nivel lgico


como valores en tablas, del mismo modo que los datos ordinarios, de modo que los usuarios
autorizados pueden aplicar a los datos regulares.

5. Regla de sublenguaje completo de datos:

un sistema relacional puede soportar varios lenguajes de manipulacin de datos (DMI) y


varios modos de uso terminal (por ejemplo, el modo de rellenar con blancos), sin embargo

49
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
debe haber al menos un lenguaje cuyas sentencias sean expresables, mediante alguna
sintaxis bien definida, como cadenas de caracteres, y que sea completa en cuanto al soporte
de todos los puntos siguientes:

Definicin de datos y Definicin de vistas


Manipulacin de datos (interactiva y por programa)
Restricciones de integridad
Autorizacin
Fronteras de transacciones (comienzo, complementacin y vuelta atrs)

6. Regla de actualizacin de vistas:

Todas las vistas que puedan utilizarse son tambin actualizables por el sistema.

7. Insercin, Modificacin y Borrado de alto nivel:

Un SGBDR debe hacer ms que recuperar conjuntos relacionales de datos, tambin debe ser
capaz de insertar, actualizar y eliminar datos como un conjunto relacional.

8. Independencia fsica de los datos:

Los datos deben ser fsicamente independiente de los programas de aplicacin. Los
programas de aplicacin y las actividades terminales permanecen lgicamente inalterados
cualquiera que sean los cambios efectuados ya sea las representaciones de almacenamiento
o a los mtodos de acceso.

9. Independencia lgica de los datos:

Cada vez que sea posible, el Software de aplicacin debe ser independiente de los cambios
hechos a las tablas Base. Los programas de aplicacin y las actividades terminales
permanecen lgicamente inalterados cuando se efectan sobre las tablas de base de
cambios preservadores de la informacin de cualquier tipo que tericamente permita
alteraciones.

10. Independencia de integridad:

La integridad de los datos debe ser definible en el lenguaje relacional y almacenarse en el


Catlogo. Las restricciones de integridad especficas para una base de datos relacional y
almacenables en el catlogo, no en los programas de aplicacin.

11. Regla de no subversin:

Si un sistema relacional tiene un lenguaje de bajo nivel (un solo registro cada vez), ese bajo
nivel no puede ser utilizado para subvertir o suprimir las reglas de integridad y las
restricciones expresadas en el lenguaje relacional de nivel superior (mltiples registros a la
vez)

50
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
12. Un sistema de bases de datos relacionla(SGBDR) tiene independencia
distributiva.

1. Las 12 reglas de Codd. Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://www.atpsoftware.net/Public/Articulos.php

51
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
2. Estructura Del Modelo Relacional
La definicin de relacin desde el punto de vista matemtico es: Una relacin es un
subconjunto de un producto cartesiano de un listado de dominios.

El producto cartesiano son todas las combinaciones posibles entre conjuntos.

Ejemplo: Dados los conjuntos A y B, donde:

Esquema diseado por: Equipo Tcnico P.A.V. Octubre del 2008

Esta relacin es un subconjunto del producto cartesiano.

Ejemplo de una relacin o tabla de una BD relacional:

52
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Para cada atributo existe un conjunto de valores permitidos llamado dominio de ese
atributo.

Los dominios corresponden a los tipos de datos primitivos de los lenguajes de programacin.

Cada fila representa una tupla y una tupla es un conjunto ordenado de valores (atributos).

Por tanto una relacin es un conjunto de tuplas filas o registros. Cada atributo, columna o
campo slo puede tomar un nico valor del dominio.

El grado de una tabla = nmero de columnas


La cardinalidad = nmero de registros

Debido a que las tablas son bsicamente relaciones se utilizan los trminos matemticos
relacin y tupla en lugar de los de tabla y fila.

Cuando se habla de una BD debe diferenciarse entre el esquema de la BD, es decir, el


diseo lgico de la BD y una instancia de la BD que est constituida con la informacin
contenida en la BD en un momento determinado.
El esquema de una relacin es en general una lista de atributos y sus correspondientes
dominios; la notacin para ello sera:

Producto= (cod_prd: string, nom_prd: string, valor: numrico)

Sin embargo, no es necesario hacer una definicin precisa del dominio de cada atributo, sino
hasta el momento de la implementacin. Por tanto la notacin puede ser:

Producto= (cod_prd, nom_prd, valor)

El esquema de la BD en este modelo, es el conjunto de definiciones de sus esquemas.

Ejemplo: Para una empresa productora de partes, supondremos el siguiente conjunto de


esquemas de relaciones:

53
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Parte= (nro_pte, nom_pte, color, peso, ciudad)
Proveedor= (nro_prv, nom_prv, ciudad_prv)
Suministro= ( nro_prv,nro_pte,cantidad_sum)

La caracterstica fundamental de este modelo de datos es que las asociaciones entre tuplas
(entidades) se representan nicamente por valores de datos en columnas, sacados de un
dominio comn.

Ejemplo: La asociacin entre PROVEEDOR y SUMINISTRO se da por el campo nro_prv


que debe ser igual en ambas relaciones cuando se refieren a un PROVEEDOR determinado.

54
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Transformacin Del Modelo E-R
En Tablas Relacionales
Si la BD se ajusta a un diagrama E-R, estas son las reglas de transformacin:

1. Las entidades se representan en tablas (relaciones) y los atributos en columnas.


2. Las asociaciones 1:N se representan replicando la llave primaria de la tabla del lado
1, como columna externa en la tabla del lado muchos. A esta columna se le
denomina llave fornea.
3. Las asociaciones 1:1 se representan replicando la llave primaria en una de las dos
tablas como columna externa de la otra.
4. Las asociaciones M:N deben resolverse generando una tercera entidad denominada
de interseccin la cual tendr como llave primaria la combinacin de las llaves
primarias de las entidades que intersecta, mas los atributos resultantes de la
asociacin, si existen. Las asociaciones 1:M resultantes se resuelven de acuerdo con
la regla de representacin de entidades (es decir, en tablas independientes).

Esquema diseado por: Equipo Tcnico P.A.V. Octubre del 2008

55
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Reglas De Integridad (RI)

Los datos contenidos en la base de datos deben ser correctos confiables y


consistentes.
Las RI se pueden ser:

1. Semnticas:

En el mundo real existen ciertas restricciones que deben cumplir los elementos en l
existentes; por ejemplo, una persona slo puede tener un nmero de DNI y una nica
direccin oficial. Cuando se disea una base de datos se debe reflejar fielmente el universo
del discurso que estamos tratando, lo que es lo mismo, reflejar las restricciones existentes
en el mundo real.
Tienen que ser definidas por los diseadores en el modelo entidad relacin.

2. Reglas de negocio

Los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones
especficas sobre los datos, denominadas reglas de negocio.

Por ejemplo, si en una oficina de la empresa inmobiliaria slo puede haber hasta veinte
empleados, el SGBD debe dar la posibilidad al usuario de definir una regla al respecto y debe
hacerla respetar. En este caso, no debera permitir dar de alta un empleado en una oficina
que ya tiene los veinte permitidos.

Integridad de dominio: restringimos los valores que puede tomar un atributo respecto a su
dominio, por ejemplo EDAD >= 18 and EDAD<= 65. Una nota>=0 and nota<=5

3. Reglasdelaentidad

Tipos de datos: Al momento de definir la tabla se deben definir correctamente


los tipos de datos de los atributos o columnas.
Permitir valores NULL

La nulabilidad de una columna determina si las filas de una tabla pueden contener un valor
NULL en esa columna. Un valor NULL no es lo mismo que cero (0), en blanco o que una
cadena de caracteres de longitud cero, como "". NULL significa que no hay ninguna entrada.
La presencia de un valor NULL suele implicar que el valor es desconocido o no est definido.
Por ejemplo, un valor NULL en la columna fecha_venta de la tabla Producto no implica que
el artculo no tenga una fecha de venta final. El valor NULL significa que se desconoce la
fecha o que no se ha establecido.

56
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Restricciones UNIQUE

Puede utilizar restricciones UNIQUE para garantizar que no se escriben valores duplicados en
columnas especficas que no forman parte de una clave principal. Tanto la restriccin
UNIQUE como la restriccin PRIMARY KEY exigen la unicidad; sin embargo, debe utilizar la
restriccin UNIQUE y no PRIMARY KEY si desea exigir la unicidad de una columna o una
combinacin de columnas que no forman la clave principal.
En una tabla se pueden definir varias restricciones UNIQUE, pero slo una restriccin
PRIMARY KEY.
Adems, a diferencia de las restricciones PRIMARY KEY, las restricciones UNIQUE admiten
valores NULL. Sin embargo, de la misma forma que cualquier valor incluido en una
restriccin UNIQUE, slo se admite un valor NULL por columna.
Es posible hacer referencia a una restriccin UNIQUE con una restriccin FOREIGN KEY.

Definiciones DEFAULT

Cada columna de un registro debe contener un valor, aunque sea un valor NULL. Puede
haber situaciones en las que deba cargar una fila de datos en una tabla, pero no conozca el
valor de una columna o el valor ya no exista. Si la columna acepta valores NULL, puede
cargar la fila con un valor NULL. Pero, dado que puede no resultar conveniente utilizar
columnas que acepten valores NULL, una mejor solucin podra ser establecer una definicin
DEFAULT para la columna siempre que sea necesario. Por ejemplo, es habitual especificar el
valor cero como valor predeterminado para las columnas numricas, o N/D (no disponible)
como valor predeterminado para las columnas de cadenas cuando no se especifica ningn
valor.
Ejemplo fecha datetime default getdate() indica que el valor predeterminado de fecha es la
fecha actual del sistema.

4. Regla de integridad referencial

Son reglas de integridad controladas por el DBGS

Restricciones PRIMARY KEY

Una tabla suele tener una columna o una combinacin de columnas cuyos valores identifican
de forma nica cada fila de la tabla. Estas columnas se denominan claves principales de la
tabla y exigen la integridad de entidad de la tabla. Puede crear una clave principal mediante
la definicin de una restriccin PRIMARY KEY cuando cree o modifique una tabla.

Una tabla slo puede tener una restriccin PRIMARY KEY y ninguna columna a la que se
aplique una restriccin PRIMARY KEY puede aceptar valores NULL. Debido a que las
restricciones PRIMARY KEY garantizan datos nicos, con frecuencia se definen en una
columna de identidad.

Cuando especifica una restriccin PRIMARY KEY en una tabla, Database Engine (Motor de
base de datos) exige la unicidad de los datos mediante la creacin de un ndice nico para
las columnas de clave principal. Este ndice tambin permite un acceso rpido a los datos

57
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
cuando se utiliza la clave principal en las consultas. De esta forma, las claves principales que
se eligen deben seguir las reglas para crear ndices nicos.
Si se define una restriccin PRIMARY KEY para ms de una columna, puede haber valores
duplicados dentro de la misma columna, pero cada combinacin de valores de todas las
columnas de la definicin de la restriccin PRIMARY KEY debe ser nica.
Como se muestra en la siguiente ilustracin, las columnas ProductID y VendorID de la
tabla ProductVendor forman una restriccin PRIMARY KEY compuesta para esta tabla.
As se garantiza que la combinacin de ProductID y VendorID es nica.

Cuando trabaja con combinaciones, las restricciones PRIMARY KEY relacionan una tabla con
otra. Por ejemplo, para determinar los proveedores que suministran determinados
productos, puede utilizar una combinacin de tres elementos entre las tablas Vendedor,
Production.Product y ProductVendor. Puesto que ProductVendor contiene las columnas
de ProductID y VendorID, se puede obtener acceso a las tablas Product y Vendor
mediante su relacin con ProductVendor.

Restricciones FOREIGN KEY

Una clave externa (FK) es una columna o combinacin de columnas que se utiliza para
establecer y exigir un vnculo entre los datos de dos tablas. Puede crear una clave externa
mediante la definicin de una restriccin FOREIGN KEY cuando cree o modifique una tabla.
En una referencia de clave externa, se crea un vnculo entre dos tablas cuando las columnas
de una de ellas hacen referencia a las columnas de la otra que contienen el valor de clave
principal. Esta columna se convierte en una clave externa para la segunda tabla.
Por ejemplo, la tabla Sales.SalesOrderHeader de la base de datos AdventureWorks
tiene un vnculo a la tabla Sales.SalesPerson porque existe una relacin lgica entre
pedidos de ventas y personal de ventas. La columna SalesPersonID de la tabla
SalesOrderHeader coincide con la columna de clave principal de la tabla SalesPerson. La

58
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
columna SalesPersonID de la tabla SalesOrderHeader es la clave externa para la tabla
SalesPerson.

No es necesario que una restriccin FOREIGN KEY est vinculada nicamente a una
restriccin PRIMARY KEY de otra tabla; tambin puede definirse para que haga referencia
a las columnas de una restriccin UNIQUE de otra tabla. Una restriccin FOREIGN KEY
puede contener valores NULL, pero si alguna columna de una restriccin FOREIGN KEY
compuesta contiene valores NULL, se omitir la comprobacin de los valores que componen
la restriccin FOREIGN KEY. Para asegurarse de que todos los valores de la restriccin
FOREIGN KEY compuesta se comprueben, especifique NOT NULL en todas las columnas
que participan.

59
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Si en una relacin hay alguna clave ajena, sus valores deben coincidir con valores de la
clave primaria a la que hace referencia, o bien, deben ser completamente nulos.

Actualizacin y borrado de registros

La regla de integridad referencial se enmarca en trminos de estados de la base de datos:


indica lo que es un estado ilegal, pero no dice cmo puede evitarse. La cuestin es qu
hacer si estando en un estado legal, llega una peticin para realizar una operacin que
conduce a un estado ilegal? Existen dos opciones: rechazar la operacin, o bien aceptar la
operacin y realizar operaciones adicionales compensatorias que conduzcan a un estado
legal.

Por lo tanto, para cada clave ajena de la base de datos habr que contestar a tres
preguntas:

Regla de los nulos: Tiene sentido que la clave ajena acepte nulos?
Regla de borrado: Qu ocurre si se intenta borrar la tupla referenciada por la clave ajena?

Restringir: no se permite borrar la tupla referenciada.


Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas
que la referencian mediante la clave ajena.
Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen
a nulo la clave ajena (slo si acepta nulos).

Regla de modificacin: Qu ocurre si se intenta modificar el valor de la clave primaria de


la tupla referenciada por la clave ajena?

Restringir: no se permite modificar el valor de la clave primaria de la tupla


referenciada.
Propagar: se modifica el valor de la clave primaria de la tupla referenciada y
se propaga la modificacin a las tuplas que la referencian mediante la clave
ajena.
Anular: se modifica la tupla referenciada y las tuplas que la referenciaban
ponen a nulo la clave ajena (slo si acepta nulos).

5. Otrasreglasdeintegridad

Disparadores o triggers
Combinan los enfoques declarativo (en la condicin) y procedimental (en la
accin),
Pueden ser tan complejas como imponga la semntica del mundo real en cuanto a la
accin, y bastantes complejas en la condicin (todo lo que permite la proposicin

60
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
lgica mediante la que se expresa la condicin),
El cumplimiento de la condicin dispara la accin,
Son ms flexibles que las restricciones de accin especfica.

SQL Server TechCenter. Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://technet.microsoft.com/es-es/library/ms191236.aspx

61
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Teora De La Normalizacin
La primera aproximacin del diccionario de datos (el diccionario de datos es la definicin de
los campos o atributos contenidos en las tablas y se define usando DDL), presenta ciertos
problemas de redundancia, dependencia, etc. Es necesario optimizar el diseo para
conservar la consistencia e integridad de los datos y a la vez optimizar el espacio de
almacenamiento eliminando la redundancia. Para esto se lleva a cabo un proceso que se
llama NORMALIZACIN y comprende varias Formas Normales.
La normalizacin se adopt porque el viejo estilo de poner todos los datos en un solo lugar,
como un archivo o una tabla de la base de datos, era ineficiente y conduca a errores de
lgica cuando se trataba de manipular los datos. De esta forma la normalizacin ayuda a
clarificar la base de datos ya organizarla en partes ms pequeas y ms fciles de entender,
adems de otras ventajas destacables como la disminucin de espacio en disco.

5.1. El concepto de dependencia funcional

Es el concepto ms importante en el diseo de esquemas relacionales. Una dependencia


funcional es una restriccin entre dos conjuntos de atributos de la base de datos.
Para entender el concepto vamos a hacer una serie de suposiciones:

Vamos a suponer que el esquema de base de datos relacional tiene una serie de atributos
A1, A2, A3, ..., An.. y que la base de datos se describe como un solo esquema de relacin
universal R={A1, A2, A2,....,An}; es como si tuviramos una sola tabla, pero solo para
explicar el concepto. La dependencia funcional es una restriccin , que vamos a denotar
como X->Y, donde X e Y son dos subconjuntos de R, sobre las posibles tuplas, registros o
filas que podran formar un ejemplar de relacin en R. La restriccin dice que para
cualesquier dos tuplas t1 y t2 tales que el valor t1[X] = t2[X], debemos tener t1[Y] =
t2[Y]; es decir, que los valores del componente Y de una tupla dependen de los valores del
componente X. En otras palabras podramos decir que los valores del componente X (Que
denominaremos Miembro izquierdo) determinan de manera nica los valores del
componente Y (que denominaremos Miembro derecho).

As que si una restriccin de R dice que no puede haber ms de una tupla con un valor X, se
dice que X es una clave candidata. Esto implica que para todo subconjunto de atributos Y
de R X->Y.

Ejemplo: Veamos la siguiente definicin o esquema funcional:

TERCERO {Tercero, Nombre, NSS, Apellidos, Direccin, Es_Cliente, Es_Proveedor, Fecha}

Veamos las dependencias funcionales:


Tercero-> Nombre.
NSS ->Nombre

62
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Tercero -> NSS
{Tercero,NSS} -> Nombre

5.2. Qu es la normalizacin?

Se entiende por normalizacin la descomposicin o subdivisin de una relacin en dos o ms


relaciones para evitar la redundancia; en definitiva, que "cada hecho est en su lugar".

La normalizacin es el proceso mediante el cual se transforman datos complejos a un


conjunto de estructuras de datos ms pequeas, que adems de ser ms simples y ms
estables, son ms fciles de mantener. Tambin se puede entender la normalizacin como
una serie de reglas que sirven para ayudar a los diseadores de bases de datos a desarrollar
un esquema que minimice los problemas de lgica. Cada regla est basada en la que le
antecede. La normalizacin se adopt porque el viejo estilo de poner todos los datos en un
solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conduca a
errores de lgica cuando se trataban de manipular los datos. La normalizacin tambin hace
las cosas fciles de entender. Los seres humanos tenemos la tendencia de simplificar las
cosas al mximo. Lo hacemos con casi todo, desde los animales hasta con los automviles.
Vemos una imagen de gran tamao y la hacemos ms simple agrupando cosas similares
juntas. Las guas que la normalizacin provee crean el marco de referencia para simplificar
una estructura de datos compleja.

Otra ventaja de la normalizacin de base de datos es el consumo de espacio. Una base de


datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos
repeticin de datos, lo que tiene como consecuencia un mucho menor uso de espacio en
disco.

El proceso de normalizacin tiene un nombre y una serie de reglas para cada fase. Esto
puede parecer un poco confuso al principio, pero poco a poco se va entendiendo el proceso,
as como las razones para hacerlo de esta manera.

5.3. Proceso de normalizacin

El proceso de normalizacin es un estndar que consiste, bsicamente, en un proceso de


conversin de las relaciones entre las entidades, evitando:

La redundancia de los datos: repeticin de datos en un sistema.


Anomalas de actualizacin: inconsistencias de los datos como resultado de
datos redundantes y actualizaciones parciales.
Anomalas de borrado: prdidas no intencionadas de datos debido a que se
han borrado otros datos.
Anomalas de insercin: imposibilidad de adicionar datos en la base de datos
debido a la ausencia de otros datos.

63
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica

5.4. Grados de normalizacin

Existen bsicamente tres niveles de normalizacin: Primera Forma Normal (1NF), Segunda
Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus
propias reglas. Cuando una base de datos se conforma a un nivel, se considera normalizada
a esa forma de normalizacin. No siempre es una buena idea tener una base de datos
conformada en el nivel ms alto de normalizacin, puede llevar a un nivel de complejidad
que pudiera ser evitado si estuviera en un nivel ms bajo de normalizacin.

En la tabla siguiente se describe brevemente en qu consiste cada una de las reglas, y


posteriormente se explican con ms detalle.

Regla Descripcin
Una relacin R se encuentra en 1FN si y solo s por cada
rengln columna contiene valores atmicos.
Abreviada como 1FN, se considera que una relacin se
encuentra en la primera forma normal cuando cumple lo
siguiente:
Las celdas de las tablas poseen valores simples y no se
permiten grupos ni arreglos repetidos como valores, es
Primera Forma decir, contienen un solo valor por cada celda.
Normal (1FN) Todos los ingresos en cualquier columna (atributo) deben
ser del mismo tipo.
Cada columna debe tener un nombre nico.
Dos filas o renglones de una misma tabla no deben ser
idnticas, aunque el orden de las filas no es importante.

Para definir formalmente la segunda forma normal


requerimos saber que es una dependencia funcional:
Consiste en edificar que atributos dependen de otro(s)
atributo(s).
Una relacin se encuentra en segunda forma normal,
Segunda Forma cuando cumple con las reglas de la primera forma normal
Normal (2FN) y todos sus atributos que no son claves (llaves)
dependen por completo de la clave . De acuerdo con esta
definicin, cada tabla que tiene un atributo nico como
clave, est en segunda forma normal.

Para definir formalmente la 3FN necesitamos definir


Tercera Forma
dependencia transitiva: En una afinidad (tabla
Normal (3FN)
bidimensional) que tiene por lo menos 3 atributos

64
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
(A,B,C) en donde A determina a B, B determina a C
entonces A determina a C.

Una relacin R esta en FNBC si y solo si cada


determinante es una llave candidato.
Forma Normal de
Boyce Codd Ejemplo
Trabajador(cedula, nombre, cargo, prima)
Pero el cargo determina la prima
Existe una dependencia de valores mltiples cuando una
afinidad tiene por lo menos tres atributos, dos de los
cuales poseen valores mltiples y sus valores dependen
solo del tercer atributo, en otras palabras en la afinidad R
(A,B,C) existe una dependencia de valores mltiples si A
determina valores mltiples de B, A determina valores
mltiples de C, y B y C son independientes entre s.
Para entender mejor an esto consideremos una afinidad
(tabla) llamada estudiante que contiene los siguientes
Cuarta forma
atributos: Claves, estudiante, Especialidad y Curso
normal
En la tabla anterior Clave estudiante determina valores
mltiples de especialidad y clave estudiante determina
valores mltiples de curso, pero especialidad y curso son
independientes entre s.

Las dependencias de valores mltiples se definen de la siguiente


manera: Clave ->->Especialidad y Clave->->Curso; Esto se lee
"Clave multidetermina a Especialidad, y clave multidetermina a
Curso
Existen otras dos formas normales, la llamada quinta
forma normal (5FN) que no detallo por su dudoso valor
prctico ya que conduce a una gran divisin de tablas,
Otras formas
pero que no pueden reconstruirse.
normales
y la forma normal dominio / clave (FNDLL) de la que no existe
mtodo alguno para su implantacin.

5.5. Qu tan lejos debe llevar la normalizacin?

La siguiente decisin es qu tan lejos debe llevar la normalizacin? La normalizacin es una


ciencia subjetiva. Determinar las necesidades de simplificacin depende de nosotros. Si
nuestra base de datos va a proveer informacin a un solo usuario para un propsito simple y
existen pocas posibilidades de expansin, normalizar los datos hasta la 3FN quiz sea algo

65
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
exagerado. Las reglas de normalizacin existen como guas para crear tablas que sean
fciles de manejar, as como flexibles y eficientes. A veces puede ocurrir que normalizar los
datos hasta el nivel ms alto no tenga sentido.

Se estn dividiendo tablas slo para seguir las reglas o estas divisiones son en verdad
prcticas?. stas son el tipo de cosas que nosotros como diseadores de la base de datos,
necesitamos decidir, y la experiencia y el sentido comn nos pueden auxiliar para tomar la
decisin correcta. La normalizacin no es una ciencia exacta, ms bien subjetiva.

Existen seis niveles ms de normalizacin que no se han discutido aqu. Ellos son Forma
Normal Boyce-Codd, Cuarta Forma Normal (4NF), Quinta Forma Normal (5NF) o Forma
Normal de Proyeccin-Unin, Forma Normal de Proyeccin-Unin Fuerte, Forma Normal de
Proyeccin-Unin Extra Fuerte y Forma Normal de Clave de Dominio. Estas formas de
normalizacin pueden llevar las cosas ms all de lo que necesitamos. stas existen para
hacer una base de datos realmente relacional. Tienen que ver principalmente con
dependencias mltiples y claves relacionales.

Para complementar este tema ver video (CD de Actividades).

Ejemplo Primera forma normal (1NF)

Se dice que una tabla se encuentra en primera forma normal (1NF) si y solo si cada uno de
los campos contiene un nico valor para un registro determinado. Supongamos que
deseamos realizar una tabla para guardar los cursos que estn realizando los alumnos de un
determinado centro de estudios, podramos considerar el siguiente diseo:

Imagen basada en la direccin:


http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

Podemos observar que el registro de cdigo 1 si cumple la primera forma normal, cada
campo del registro contiene un nico dato, pero no ocurre as con los registros 2 y 3 ya que

66
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
en el campo cursos contiene ms de un dato cada uno. La solucin en este caso es crear dos
tablas del siguiente modo:

Imagen basada en la direccin:


http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36 Adaptacin: Equipo Tcnico P.A.V.

Como se puede comprobar ahora todos los registros de ambas tablas contienen valores
nicos en sus campos, por lo tanto ambas tablas cumplen la primera forma normal.

Una vez normalizada la tabla en 1NF, podemos pasar a la segunda forma normal.

Ejemplo Segunda forma normal (2NF)

La segunda forma normal compara todos y cada uno de los campos de la tabla con la clave
definida. Si todos los campos dependen directamente de la clave se dice que la tabla est es
segunda forma normal (2NF).
Supongamos que construimos una tabla con los aos que cada empleado ha estado
trabajando en cada departamento de una empresa:

67
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Imagen basada en la direccin:
http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

Tomando como punto de partida que la clave de esta tabla est formada por los campos
cdigo de empleado y cdigo de departamento, podemos decir que la tabla se encuentra en
primera forma normal, por tanto vamos a estudiar la segunda:

1. El campo nombre no depende funcionalmente de toda la clave, slo depende del


cdigo del empleado.
2. El campo departamento no depende funcionalmente de toda la clave, slo del cdigo
del departamento.
3. El campo aos si que depende funcionalmente de la clave ya que depende del cdigo
del empleado y del cdigo del departamento (representa el nmero de aos que cada
empleado ha trabajado en cada departamento)

Por tanto, al no depender todos los campos de la totalidad de la clave la tabla no est en
segunda forma normal, la solucin es la siguiente:

68
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Imagen basada en la direccin:
http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

69
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Podemos observar que ahora si se encuentras las tres tabla en segunda forma normal,
considerando que la tabla A tiene como ndice el campo Cdigo Empleado, la tabla B Cdigo
Departamento y la tabla C una clave compuesta por los campos Cdigo Empleado y Cdigo
Departamento.

Ejemplo Tercera forma normal (3NF)

Se dice que una tabla est en tercera forma normal si y solo si los campos de la tabla
dependen nicamente de la clave, dicho en otras palabras los campos de las tablas no
dependen unos de otros. Tomando como referencia el ejemplo anterior, supongamos que
cada alumno slo puede realizar un nico curso a la vez y que deseamos guardar en que
aula se imparte el curso. A voz de pronto podemos plantear la siguiente estructura:

Imagen basada en la direccin:


http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

Estudiemos la dependencia de cada campo con respecto a la clave cdigo:

Nombre depende directamente del cdigo del alumno.


Curso depende de igual modo del cdigo del alumno.
El aula, aunque en parte tambin depende del alumno, est ms ligado al curso que
el alumno est realizando.

Por esta ltima razn se dice que la tabla no est en 3NF. La solucin sera la siguiente:

70
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Imagen basada en la direccin:
http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

Una vez conseguida la segunda forma normal, se puede estudiar la cuarta forma normal.

Ejemplo Cuarta forma normal (4NF)

Una tabla est en cuarta forma normal si y slo si para cualquier combinacin clave - campo
no existen valores duplicados. Vemoslo con un ejemplo:

Imagen basada en la direccin:


http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

71
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Comparemos ahora la clave (Figura) con el atributo Tamao, podemos observar que
Cuadrado Grande est repetido; igual pasa con Crculo Azul, entre otras. Estas repeticiones
son las que se deben evitar para tener una tabla en 4NF.

La solucin en este caso sera la siguiente:

Imagen basada en la direccin:


http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36

Adaptacin: Equipo Tcnico P.A.V.

Ahora si tenemos nuestra base de datos en 4NF.

ibid, pg, 23
Normalizacin de Bases de Datos. Obtenido en Internet el 23 de Octubre de 2008.
Hora: 9.50 pm.. http://www.trucostecnicos.com/trucos/ver.php?id_art=278
Dependencia funcional e independencia, manual de la Universidad de Mlaga.
Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://ftp.medprev.uma.es/libro/node33.htm
Normalizacin de base de datos, Prof. Manuel Torres Remon. Obtenido en Internet el
23 de Octubre de 2008. Hora: 9.50 pm.
http://www.monografias.com/trabajos5/norbad/norbad.shtml

72
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
6. Lenguaje Sql
SQL: Lenguaje de consulta estructurado, Permite definir y manipular la base de datos, este
lenguaje se compone de:

DDL: Lenguaje de definicin de datos

6.1. Comandos DDL


Comando Descripcin
Utilizado para crear nuevas tablas, campos
CREATE
e ndices.
DROP Empleado para eliminar tablas e ndices
Utilizado para modificar las tablas agregando campos o
ALTER
cambiando la definicin de los campos.

DML: Lenguaje de manipulacin de datos

6.2. Comandos DML


Comando Descripcin
Utilizado para consultar registros de la base de datos que satisfagan un
SELECT
criterio determinado
Utilizado para cargar lotes de datos en la base de datos en una nica
INSERT
operacin.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos

6.3. Clusulas

Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea
seleccionar o manipular.

Comando Descripcin
Utilizada para especificar la tabla de la cual se van a seleccionar los
FROM
registros
Utilizada para especificar las condiciones que deben reunir los registros que
WHERE
se van a seleccionar
GROUP
Utilizada para separar los registros seleccionados en grupos especficos
BY

73
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER Utilizada para ordenar los registros seleccionados de acuerdo con un orden
BY especfico

6.4. Operadores Lgicos


Operador Uso
Es el y lgico. Evala dos condiciones y devuelve un
AND
valor de verdad slo si ambas son ciertas.
Es el o lgico. Evala dos condiciones y devuelve un
OR
valor de verdad si alguna de las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.

6.5. Operadores de Comparacin


Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor Igual que
>= Mayor Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparacin de un modelo
In Utilizado para especificar registros de una base de datos

6.6. Funciones de Agregado

Las unciones de agregado se usan dentro de una clusula SELECT


en grupos de registros para devolver un nico valor que se aplica a un
grupo de registros.

Comando Descripcin
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el nmero de registros de la seleccin
Utilizada para devolver la suma de todos los valores de un campo
SUM
determinado
MAX Utilizada para devolver el valor ms alto de un campo especificado
MIN Utilizada para devolver el valor ms bajo de un campo especificado

74
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Unidad 4

Manipulacin De
Una Base De
Datos Relacional
Una vez diseada y estandarizada la base de datos esta se puede
implementar y manipular utilizando un DBGS, estos tienen
herramientas que permiten la definicin y la manipulacin de la base de
datos, adems incluyen un lenguaje llamado el SQL (Structured Query
Language) es un lenguaje de programacin diseado para almacenar,
manipular y recuperar datos almacenados en bases de datos
relacionales.
1. Reconocimiento Del Sistema
Gestor De Bases De Datos
Relacinales
Sql Server es un servidor de bases de datos.

Iniciar a sql server

Inicio > programas >

Clic en Enterprise Manager

Ya con los objetos, vamos a abrir local, y vemos que ya existen varias bases de datos, lo
que significa que existen bases de datos para el sistema y otras son modelos de ejemplos
para el aprendizaje.

76
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Este es el smbolo de la base de datos:

Desplegar la opcin data transformation que son los DTS (Transformacin de datos entre
sistemas: entre Excel Access, etc transforma un formato de una base de datos en otro
sea importacin y exportacin de datos entre diferentes bases de datos. Con un dts coge
un archivo plano y lo transforma)

En manager.

77
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Dentro del grupo de trabajo tengo un servidor (local, pero pueden existir muchos ms como
para cartera, contabilidad, etc) y dentro de los servidores hay varios objetos y dentro de los
objetos hay database (bases de datos). Esto suple la limitante que tenia Access.

1.1. Crear Una Base De Datos

Cuando se crea una base de datos, es importante comprender cmo SQL Server almacena
los datos para poder calcular y especificar la cantidad de espacio en disco que hay que
asignar a los archivos de datos y registros de transacciones. Aunque SQL Server
automticamente incrementa el tamao asignado a los ficheros de bases de datos
dinmicamente, para tener un rendimiento ptimo del sistema (evitar fragmentacin de los
ficheros), se recomienda ser "precisos" a la hora de definir el tamao de la base de datos.

1.2. Ficheros de la base de datos

Todas las bases de datos tienen un archivo de datos principal (.mdf), y uno o varios archivos
de registro de transacciones (.ldf). Una base de datos tambin puede tener archivos de
datos secundarios (.ndf). La extensin definida para cada tipo de archivos es libre, pero
como buenas prcticas se suele seguir el modelo de extensiones recomendado por Microsoft
(mdf, ldf, y ndf). El proceso de creacin de la base de datos, consiste en hacer una copia de
la base de datos model, que incluye las tablas del sistema. La ubicacin predeterminada
para todos los archivos de datos y registros de transacciones es C:\Archivos de
programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data.

La base de datos puede configurarse con tres modelos de recuperacin en caso de


fallo del sistema (FULL, BULK_LOGGED, y SIMPLE); evala cada modelo en base a
las necesidades del sistema que ests implementando.

1.3. Creacin de base de datos desde SQL Server


2005 Management Studio Express

SQL Server Management Studio Express es la herramienta de administracin incluida con


SQL Server Express; la herramienta no fue incluida en la primera distribucin de SQL Server
Express, y se puede descargar de forma gratuita de la siguiente url:

Microsoft SQL Server Management Studio Express - Community Technology Preview (CTP)
November 2005:

Para crear una base de datos desde SQL Server 2005 Management Studio, expande la lista
de bases de datos, de la lista de instancias de SQL Server 2005 registradas, y selecciona la
opcin "New database":

78
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Debers rellenar el nombre de base de datos, nombres lgico y fsico de los archivos
relacionados, y tamao de los ficheros, as como su crecimiento:

79
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Y debers establecer el modo de recuperacin de la base de datos; en la versin Express al
crear una base de datos por defecto se establece como recuperacin SIMPLE:

Para famializarte con la sintaxis del lenguaje T-SQL, te recomiendo que utilices la
opcin de men script (en recuadro verde en las dos imgenes anteriores), que
mostrar la instruccin T-SQL correspondiente a las operaciones que has ido
configurando en las distintas opciones.

1.4. Consideraciones

Dependiendo de las necesidades a cubrir del sistema de base de datos a desarrollar, debers
configurar los archivos de una forma u otra; por ejemplo, en grandes sistemas llegars a
configurar niveles de redundancia de discos (RAID), y repartirs la informacin de las tablas
en distintos ficheros. Aunque no est soportado en la versin Express, funcionalidades del
producto como Particionado de datos, llegan a ser primordiales, y es un factor a considerar
desde el momento de diseo del sistema.

80
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Por otro lado, para familiarizarte con SQL Server, recomendara entender las opciones de
configuracin de base de datos que aparecen en la pestaa opciones, que aunque no son
necesarias para comenzar a disear bases de datos SQL Server, si ayudan a comprender un
poco el funcionamiento interno de SQL Server (shrink, statistics, etc.):

1.5. Tipos de datos

Empezaremos por los tipos de datos. Las tablas tienen columnas, y las columnas se definen
en base a un tipo de datos; los tipos de datos acotan el tipo y tamao de la informacin que
se guardar en una columna. La importancia de la eleccin de los tipos de datos reside en el
almacenamiento que ocupa; para varios cientos de filas, el tamao no es tan crucial, pero
cuantas ms filas se aadan a la tabla, mayor ser la repercusin en el rendimiento de las
operaciones de E/S.

Como veremos, habr tipos de datos en los que habr que seleccionar el tamao, e incluso
algunos tendrn la posibilidad de ofrecer tamao variable; vamos a analizar los ms
significativos.

81
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
1.5.1. Tipos de datos numricos

Los tipos de datos numricos se utilizan para guardar valores numricos enteros, o
decimales. Los dividiremos en dos grandes grupos: enteros, y decimales.

Tipos de datos numricos enteros


Tipo de
Intervalo Almacenamiento
datos
De -2^63 (-9.223.372.036.854.775.808) a 2^63-1
bigint 8 bytes
(9.223.372.036.854.775.807)
int De -2^31 (-2.147.483.648) a 2^31-1 (2.147.483.647) 4 bytes
smallint De -2^15 (-32.768) a 2^15-1 (32.767) 2 bytes
tinyint De 0 a 255 1 bytes
1 bit, mmino 1
bit 0,1
bytes

Tradicionalmente el tipo de datos ms usado es el int; el tipo de datos bigint apareci en


SQL Server 2000, y es la alternativa al tipo de datos int, cuando los valores son muy
grandes.

Tipos de datos numricos decimales

Decimal, numeric:

Tipo de datos numrico con precisin y escala fijas.

decimal[ (p[ ,s] )] y numeric[ (p[ ,s] )]

Nmeros de precisin y escala fijas. Cuando se utiliza la precisin mxima, los


valores permitidos estn comprendidos entre - 10^38 +1 y 10^38 - 1. Numeric
equivale funcionalmente a decimal

p (precisin)

El nmero total mximo de dgitos enteros que se puede almacenar, tanto a la


izquierda como a la derecha del separador decimal. La precisin debe ser un valor
comprendido entre 1 y la precisin mxima de 38. La precisin predeterminada es
18.

s (escala)

82
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
El nmero mximo de dgitos decimales que se puede almacenar a la derecha del
separador decimal. La escala debe ser un valor comprendido entre 0 y p. Para
especificar la escala es necesario haber especificado la precisin.

Y la relacin entre precisin y almacenamiento es:

Precisin Almacenamiento
1-9 5
10-19 9
20-28 13
29-38 17

Money, smallmoney
Tipos de datos que representan valores monetarios o de moneda.

Tipo de Precisin Almacenamiento


datos
De -922,337,203,685.477,5808 a
money 8 bytes
922,337,203,685.477,5807
smallmoney De - 214.748,3648 a 214.748,3647 4 bytes

Float(n), single
Tipos de datos numricos y aproximados que se utilizan con datos numricos de
coma flotante. Los datos de coma flotante son aproximados; por tanto, no todos los
valores del intervalo del tipo de datos se pueden representar con exactitud.

Tipo de
Precisin Almacenamiento
datos
De - 1,79E+308 a -2,23E-308, 0 y de 2,23E- Depende del valor de n (4 u 8
float
308 a 1,79E+308 bytes)
De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E -
real 4 bytes
38 a 3,40E + 38

1.5.2. Tipos de datos de caracteres

Los tipos de datos caracter se puede definir de longitud fija y de longitud variable.

Los de longitud fija son char(n) y su tamao lo define el valor que tenga n. Por ejemplo, una
columna char(15) ocupa 15 bytes.

83
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Los de longitud variable son varchar(n), y su tamao lo define la longitud de la columna
guardada; por ejemplo una columna varchar(250), que guarda el valor "columna variable" el
almacenamiento que ocupa es 16 bytes.

En caso de desear valores Unicode, debers anteponer al tipo de datos la letra n, siendo los
tipos nchar, o nvarchar. La principal diferencia con los tipos de datos no-unicode, es que
utilizan el doble de bytes. Por ejemplo, el texto "Tutorial", en una columna varchar(100)
ocupara 8 bytes, mientras que siendo unicode ocupara 16 bytes.

El tamao de las columnas char, varchar, nchar, nvarchar est limitado a 8000 bytes de
almacenamiento; en caso de necesitar mayor longitud puedes usar el tipo de datos
varchar(max) o nvarchar(max), que es nuevo en SQL Server 2005.

1.5.3. Tipos de datos fecha

Smalldatetime, datetime

Son los tipos de datos utilizados para representar la fecha y la hora. El valor internamente
se almacena como un valor integer, y dependiendo de la precisin utilizar 4 u 8 bytes.

Tipo de datos Precisin Almacenamiento


smalldatetime Del 1 de enero de 1900 hasta el 6 de junio de 2079 4 u 8 bytes
datetime Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 8 bytes

El tipo de datos smalldatetime almacena las fechas y horas del da con menor precisin que
datetime. El Database Engine (Motor de base de datos) almacena los valores smalldatetime
como dos enteros de 2 bytes. Los dos primeros bytes almacenan el nmero de das despus
del 1 de enero de 1900. Los otros dos, almacenan el nmero de minutos desde medianoche.
Los valores datetime se redondean con incrementos de 0,000; 0,003 o 0,007 segundos,
como se muestra en la siguiente tabla.

Crear tablas

Las tablas son objetos que contienen la informacin guardada en la base de datos. Una tabla
es una coleccin de columnas; cada columna tendr un tipo de dato y una serie de
propiedades. La informacin est guardada fila por fila de forma similar a lo que
grficamente representa una hoja Excel: una coleccin de filas por columnas.

Disear y crear de tablas

Para crear tablas podremos utilizar SQL Server 2005 Management Studio Express, o Visual
Basic Express Edition; la forma es muy similar en ambas herramientas, y esta vez tambin
utilizaremos SQL Server 2005 Management Studio Express.

84
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Expandiendo la base de datos "DemoMSDN", vemos una lista de tipos de objetos entre las
que se encuentra "tables"; pulsando el botn derecho del ratn, y selecciona "New Table"
como aparecen en la siguiente imagen:

Aparecer una ventana como la siguiente que describimos a continuacin:

85
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
En el cuadro marcado en rojo, se aaden cada una de las columnas que forman parte de la
tabla a crear; se pone nombre a la columna (debe comenzar por un caracter alfabtico), se
selecciona el tipo de datos y precisin (ver leccin anterior para ms informacin), y se
establece si la columna aceptar valores nulos o no.

En el cuadro de debajo (en color azul), se podrn establecer las propiedades de cada
columna de la tabla; se podrn modificar las propiedades vistas anteriormente, si la columna
es calculada o no, si tiene propiedad identidad (que veremos ms adelante en el captulo),
etc.

A la derecha, en el cuadro verde, se podrn establecer propiedades de la tabla; como


esquema al que pertenece la tabla, nombre de la tabla, descripcin de la tabla, y grupo de
ficheros donde se almacenar la tabla.

Adems toda tabla debe tener una columna o conjunto de columnas que identifique de
manera nica cada fila de la tabla; para ello selecciona la columna que deseas como clave
primaria, y despus de hacer click en el botn derecho del ratn, selecciona "Primary Key"
como se muestra en la imagen (tambin se puede hacer sobre el botn marcado en rojo en
la imagen):

A continuacin, para grabar los cambios, es decir, para generar la tabla, pulsars sobre la
zona en color verde de la siguiente imagen, y seleccionars la opcin Save Clientes (que es
el nombre de la tabla):

86
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Propiedad identity en las columnas

La propiedad identity, establece que una columna numrica genere automticamente valores
consecutivos partiendo de una semilla inicial, y un incremento definido. Se suele utilizar
como clave primaria, en lugar de establecer claves primarias de columnas o conjuntos de
columnas muy grandes. Lo importante de esta propiedad es que "convierte"
automticamente el valor de una columna a un valor numrico siguiente al anteriormente
insertado. Por ejemplo, si definimos la columna Id de la tabla clientes como identity, a la
hora de insertar filas, de esa columna nos "olvidaremos" porque SQL Server lo hace por
nosotros. Luego ese valor lo podremos usar como referencia principal (clave primaria), para
identificar la fila insertada. Para establecer la propiedad identity, debes seleccionar la
columna a la que deseas establecer la propiedad, y hacerlo desde la ventana de propiedades
de columna (cuadro rojo de la siguiente imagen):

87
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Relacionar tablas

Las tablas se relacionan entre s; podra decirse que existe informacin de la fila que est
guardada en varias tablas. El nexo de unin de las filas es la clave primaria en la tabla
padre, y la clave primaria en la tabla hija. Por ejemplo, una relacin entre clientes y
pedidos; en la tabla pedidos existir un identificador de cliente que est asociado a un
identificador de cliente en la tabla clientes. La informacin estara repartida como sigue:

Tabla Clientes
ID Nombre Apellidos ...
1 Julia Herrera ...
2 Javier Alonso ...
Tabla Pedidos
IDPedido IDCliente Importe ...
1 1 1200 ...
2 1 1300 ...
3 1 12000 ...
4 2 1000 ...

88
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Fijate que el cliente 1 (Julia Herrera), tiene los pedidos del 1 al 3, y el cliente 2 el pedido 4.
La informacin la "interpretamos" como si las filas de cliente en "embebiera dentro de la
tabla pedidos:

Nuestra interpretacin de la relacin Pedidos-Clientes


IDPedido IDCliente Nombre-Cli Apellido-Cli Importe ...
1 1 Julia Herrera 1200 ...
2 1 Julia Herrera 1300 ...
3 1 Julia Herrera 12000 ...
4 2 Javier Alonso 1000 ...

Visto el esquema, vamos a implementar la tabla Pedidos, definiendo la clave ajena a la tabla
clientes. Para ello, despus de haber aadido las columnas que definen la tabla pedidos (ID,
IDCliente, y Cantidad), pulsaremos en el botn habilitado para establecer relaciones, o
seleccionaremos la opcin "Relationships...":

Aparecer una ventana como la que se muestra a continuacin, en la que expandirs la


opcin "Tables and columns specifications", y pulsars en el botn encuadrado con bordes
azules, para establecer la relacin entre las tablas:

89
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
A continuacin, rellenars los combos que aparecen para establecer la relacin entre las
tablas clientes y pedidos (columnas ID de clientes, e IDCliente de Pedidos):

Para finalizar pulsa en aceptar, y expandes la opcin "Insert and Update Expecifications", en
la que se podr especificar cmo establecer el valor de la columna en caso de que la fila
padre haya sido borrada o modificada. En SQL Server 2005, se permiten dos opciones:

90
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
No Action. Que indica que no actual, que se deja la columna como estaba.
Cascade. Que se realiza la misma operacin que se hizo en la fila de la tabla padre.
Set Null. Que establece a nulo el valor de las columnas afectadas.
Set Default. Que establece la columna a un valor por defecto.

Con un ejemplo se ver ms claro; digamos que se borra el cliente 2 (Javier Alonso); al
borrar al cliente, las opciones que acabamos de comentar se activarn, y actuarn segn las
hayamos configurado; Veamos cmo se comportara en cada uno de los casos:

No Action. El pedido se quedara igual, es decir, el pedido nmero 4 se quedara


con referencia al cliente 2, que en realidad ya no existe.
Cascade. Como se trataba de una operacin de borrado de clientes, al borrar al
cliente, tambin se borraran los pedidos asociados al cliente 2; en nuestro
ejemplo, el pedido nmero 4, se eliminara.
Set Null. Al realizar el borrado, el pedido nmero 4 se quedara con identificador
de cliente a un valor nulo; es decir, el pedido seguira existiendo, pero no estara
asociado a ningn cliente.
Set Default. Se establecera un valor por defecto; en nuestro caso no hemos
definido ningn valor por defecto, pero podramos establecer un valor por defecto
para identificar los pedidos cuyos clientes han sido eliminados.

Todas estas operaciones que hemos realizado desde las herramientas grficas,
tambin se pueden hacer con sentencias T-SQL; de hecho, llegar un momento en
que tu experiencia ser tan profunda que te resultar ms sencillo realizar gran
parte de las operaciones mediante sentencias T-SQL. En concreto, las palabras
clave para definir este tipo de sentencias son ALTER TABLE, CREATE TABLE,
CONSTRAINT, FOREIGN KEY, PRIMARY KEY.

91
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Otras restricciones (UNIQUE, CHECK, DEFAULT)

Adems, existen restricciones que "acotan", limitan, o establecen el valor de una columna en
ciertas condiciones. Se llaman restricciones (CONSTRAINTS), y forman parte del estandard
SQL-99. Estas restricciones que vamos a ver son: restriccin UNIQUE, restriccin CHECK, y
restriccin DEFAULT.

Restriccin UNIQUE

La restriccin UNIQUE establece que el valor de cada columna de una fila sea nico, Por
ejemplo, en la tabla clientes podemos tener una clave primaria como ID, y adems tener
una columna NIF que establecemos que sea nica: lo que internamente implementa SQL
Server, es que cada vez que se intente hacer una modificacin, o insercin de un valor para
esa columna, antes de realizar la operacin, se asegura que el nuevo/modificado valor es
nico en el conjunto de filas de la tabla.

La restriccin UNIQUE se implementa en T-SQL con la palabra clave UNIQUE; por


ejemplo, si queremos que la columna Nombre de la tabla Clientes sea nica,
podramos ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Clientes


ADD CONSTRAINT RestriccionNombreUnico UNIQUE (Nombre).

Restriccin CHECK

La restriccin CHECK establece que el valor de la columna se ajuste a ciertas condiciones. Se


define para limitar el valor que pueda tener la columna; por ejemplo, se puede definir que la
columna Importe sea de un valor positivo mayor que cero. SQL Server, se encargar de
"validar" el valor que tendr la columna cuando se intente hacer una modificacin, o
insercin de un valor para esa columna. En caso de que el valor no cumpla la restriccin, se
generar una excepcin y se cancelar la operacin en curso.

La restriccin CHECK se implementa en T-SQL con la palabra clave CHECK; por


ejemplo, si queremos que la columna Cantidad de la tabla Pedidos sea un valor
mayor que cero, podramos ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Pedidos


ADD CONSTRAINT RestriccionCantidad CHECK (Cantidad>0).

Restriccin DEFAULT

La restriccin DEFAULT establece el valor para una columna cuando no se ha especificado


valor en la sentencia de insercin. SQL Server, comprobar si la sentencia de insercin
establece un valor para la columna, y en caso negativo, establecer el valor por defecto.

92
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
La restriccin DEFAULT se implementa en T-SQL con la palabra clave DEFAULT; por
ejemplo, si queremos aadir una columna Importe a la tabla Pedidos, y su valor
por defecto sea cero, podramos ejecutar el siguiente cdigo T-SQL:

ALTER TABLE dbo.Pedidos


ADD Importe DEFAULT (0).

Creacin de ndices

Los ndices son "estructuras" alternativa a la organizacin de los datos en una tabla. El
propsito de los ndices es acelerar el acceso a los datos mediante operaciones fsicas ms
rpidas y efectivas. Para entender mejor la importancia de un ndice pongamos un ejemplo;
imagnate que tienes delante las pginas amarillas, y deseas buscar el telfono de Manuel
Salazar que vive en Alicante. Lo que hars ser buscar en ese pesado libro la poblacin
Alicante, y guindote por la cabecera de las pginas buscars los apellidos que empiezan por
S de Salazar. De esa forma localizars ms rpido el apellido Salazar. Pues bien,
enhorabuena, has estado usando un ndice.
Pues el objetivo de definir ndices en SQL Server es exactamente para conseguir el mismo
objetivo: acceder ms rpido a los datos.

Consideraciones para usar ndices

Columnas selectivas
Columnas afectadas en consultas de rangos: BETWEEN, mayor que, menor
que, etc.
Columnas accedidas "secuencialmente"
Columnas implicadas en JOIN, GROUP BY
Acceso muy rpido a filas: lookups

1.6. Ejemplo:
/*Crear ndice nico*/

CREATE UNIQUE INDEX nom_indce ON nom_tabla(campo)


/*Crear ndice con duplicado*/
CREATE INDEX nom_indce ON nom_tabla(campo)
/*borrar indice*/
DROP INDEX nom_tabla. Nom_indice

Ibid, pg,7
Microsoft SQL Server 2005, Express edition, Obtenido en Internet el 23 de Octubre de
2008. Hora: 9.50 pm.
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/inde
x.html

93
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
2. Identificar Las Sentencias De
DDL Y DML

2.1. DDL
Descripcin
Comando
CREATE Utilizado para crear objetos como nuevas tablas, campos e ndices
DROP Empleado para eliminar objetos como tablas e ndices
Utilizado para modificar objetos como las tablas agregando campos o
ALTER
cambiando la definicin de los campos.

2.2. DML.
Clusula Descripcin
SELECT Utilizada para especificar los campos y datos que se van a mostrar
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
Utilizada para especificar las condiciones que deben reunir los registros que
WHERE
se van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo
Utilizada para ordenar los registros seleccionados de acuerdo con un orden
ORDER BY
especfico

2.3. Operadores Lgicos


Uso
Operador
Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo
AND
si ambas son ciertas.
Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdero si
OR
alguna de las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.

2.4. Operadores De Comparacin


Uso
Operador
< Menor que
> Mayor que
<> Distinto de

94
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
<= Menor Igual que
>= Mayor Igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparacin de un modelo
In Utilizado para especificar registros de una base de datos

Durante la primera parte de la leccin se introducirn distintas clusulas que a pesar de


estar en la seccin de consultas de seleccin, tambin sern vlidas para sentencias de
modificacin; por ejemplo, dentro de una operacin de borrado se podrn usar clusulas
JOIN, WHERE, TOP, etc.

2.5. Consultas de seleccin

Seleccin de columnas y clusula FROM


Clusula WHERE
Clusula JOIN
Clusula GROUP BY
Clusula TOP
Clusula Having
Clusula Order by

2.6. Consultas de modificacin

Sentencia INSERT
Sentencia UPDATE
Sentencia DELETE

95
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3. Utilizar Adecuadamente El Sql
Para La Implementacin Y
Manipulacin De Las Bases De
Datos Para Casos Reales Del
Medio Que Nos Rodea.
En esta leccin, conocers los conceptos bsicos para poder realizar, consultar y modificar
la base de datos utilizando comandos sql.
Ejemplo de una base de datos creada por medo de comandos

/* Crear la base de datos*/

create database Construccion


/* activa la base de datos construccion*/

use Construccion

/* Crear tabla oficio mirar el comando abajo*/


create table tblOficio(Tipo_Oficio varchar(30),
Bonificacion int,
check(Bonificacion >= 30000 and Bonificacion <= 80000),
Horas_Semana int,
check(Horas_Semana >= 30 and Horas_Semana <= 60),
Primary key (Tipo_Oficio))

/*Crear tabla Trabajador*/


create table tblTrabajador(Cedula int,
Nombre varchar(50) not null,
Valor_Hora int,
/*check es el comando que se utiliza para hacer las validaciones*/
check(Valor_Hora >= 7000 and Valor_Hora <= 20000),
Tipo_Oficio varchar(30),
primary key (Cedula),
foreign key (Tipo_Oficio)references
tblOficio(Tipo_Oficio))

/*Crear tabla Area*/


create table tblArea(Cod_Area varchar(10),
Nom_Area Varchar(30),
Estrato int,

96
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
check(Estrato >= 1 and Estrato <= 7),
primary key (Cod_Area))

/*Crear tabla edificio*/


create table tblEdificio(Iden_Edif int,
Direccion varchar(30),
Tipo varchar (30),
Calidad int,
check (Calidad >= 1 and Calidad <= 5),
Categoria int,
check(Categoria >= 1 and Calidad <= 5),
Cod_Area varchar (10)
primary key (Iden_Edif),
foreign key(Cod_Area)references tblArea(Cod_Area))

/*Crear tabla Asignar*/


create table tblAsignar(Cedula int,
Iden_Edif int,
Fecha_I datetime,
Num_Dias int,
check (Num_Dias > 0),
Primary key(Cedula,Iden_edif),
foreign key(Cedula) references tbltrabajador(cedula),
foreign key(Iden_edif) references tblEdificio(Iden_Edif))

/* insertamos datos en cada tabla*/

Insert into tbloficio values('Decorador',30000,35)


Insert into tbloficio values('Albail',35000,37)
Insert into tbloficio values('Carpintero',31000,40)
Insert into tbloficio values('Electrico',35000,35)
Insert into tbloficio values('Arquitecto',40000,30)

Insert into tbltrabajador values(1235,'Annie',12500,'Electrico')


Insert into tbltrabajador values(1311,'Roberto',15750,'Decorador')
Insert into tbltrabajador values(1412,'Carlos',13700,'Decorador')
Insert into tbltrabajador values(1415,'Lina',12500,'Decorador')
Insert into tbltrabajador values(1418,'Pedro',10000,'Carpintero')
Insert into tbltrabajador values(1520,'Luis',11750,'Electrico')
Insert into tbltrabajador values(1525,'Juan',20000,'Arquitecto')
Insert into tbltrabajador values(2920,'Raul',10000,'Carpintero')
Insert into tbltrabajador values(3001,'Gabriel',15500,'Decorador')
Insert into tbltrabajador values(3231,'Alvaro',17400,'Decorador')
Insert into tbltrabajador values(4446,'Mario',8200,'Albail')
Insert into tbltrabajador values(8520,'Bernardo',8500,'Albail')

97
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Insert into tblarea values('a10','Sur',2)
Insert into tblarea values('a11','Sur',4)
Insert into tblarea values('a12','Norte',3)
Insert into tblarea values('a13','Norte',2)

Insert into tbledificio values(111,'calle1213','Oficina',3,2,'a10')


Insert into tbledificio values(210,'calle1222','Oficina',4,3,'a10')
Insert into tbledificio values(215,'calle1215','Comercio',5,3,'a11')
Insert into tbledificio values(312,'calle1313','Oficina',5,2,'a13')
Insert into tbledificio values(435,'calle1513','Comercio',2,4,'a13')
Insert into tbledificio values(460,'calle1263','Almacen',4,4,'a12')
Insert into tbledificio values(520,'calle1223','Residencia',3,5,'a10')
Insert into tbledificio values(820,'calle1245','Almacen',3,5,'a10')

Insert into tblasignar values(1235,111,'02/02/02',25)


Insert into tblasignar values(1235,210,'01/03/02',5)
Insert into tblasignar values(1235,520,'02/02/02',25)
Insert into tblasignar values(1235,820,'01/03/02',5)
Insert into tblasignar values(1235,215,'02/07/02',10)
Insert into tblasignar values(1235,312,'02/02/02',10)
Insert into tblasignar values(1235,435,'01/02/04',22)
Insert into tblasignar values(1235,460,'02/02/05',21)
Insert into tblasignar values(1412,210,'02/02/02',22)
Insert into tblasignar values(1412,312,'02/02/02',14)
Insert into tblasignar values(1418,435,'02/02/02',23)
Insert into tblasignar values(1418,460,'02/02/02',10)
Insert into tblasignar values(3231,312,'02/02/02',25)
Insert into tblasignar values(3231,111,'02/02/02',13)
Insert into tblasignar values(4446,111,'02/02/02',18)

Este es el digrama correspondiente a la base de datos que acbamos de crear.

98
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ya podemos manipular la base de datos

3.1. Consultas de Seleccin

En esta leccin veremos mecanismos para recuperar informacin de la base de datos.


Veremos cmo elegir las columnas de las tablas a recuperar, y cmo aplicar distintos tipos
de clusulas como WHERE, JOIN, GROUP BY, y TOP. Adems veremos dos novedades de la
versin 2005 de SQL Server: funciones de Ranking, en las que se devuelve la posicin
relativa de las filas respecto al conjunto total, y Expresiones de tablas comunes que son una
nueva funcionalidad para implementar consultas de una forma si cabe ms sencilla, y a la
ver aporta la posibilidad de realizar consultas recursivas que hasta la versin 2000 no era
posible.

3.2. Seleccin de columnas y clusula FROM

Usando la clusula FROM cules son las tablas, vistas, funciones, tablas derivadas o
expresiones de tablas comunes que se utilizan en la instruccin SELECT.

A su vez, se deber indicar las columnas a recuperar de la consulta. Si se quiere recuperar


todas las columnas se puede usar el comodn * (asterisco), aunque deberemos ser
cuidadosos con ello.

99
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Como recomendacin, debers intentar ser lo ms selectivo posible en las
columnas a incluir en la clusula SELECT. Por qu razn? Recuerdas la estructura
de los ndices? Si deseamos todas las columnas de una tabla, estaremos
"forzando" a SQL Server a acceder al nivel de datos de las pginas (recuerda:
abajo del todo), y estaremos limitando la efectividad de los ndices diseados en
las tablas.

El contrapunto de ste comentario es la parte de desarrollo, si generamos cdigo


"genrico" que recupera todas las columnas porque las columnas sern necesarias
unas veces s y otras no, estaremos penalizando el rendimiento del servidor SQL
Server Express pero estaremos ganando tiempo de desarrollo...

Para ejecutar una consulta desde SQL Server 2005 Management Studio Express,
conectaremos a la base de datos DemoMSDN, desde una de las opciones marcada en la
siguiente imagen en recuadro rojo:

A continuacin debers escribir el siguiente texto para rellenar unas cuantas filas en la tabla
clientes (veremos luego la sentencia INSERT):

INSERT Clientes SELECT 'Julia Herrera', 'Alicante';


INSERT Clientes SELECT 'Javier lvarez', 'Madrid';

100
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Para ello, copia el texto en la ventana de texto, y pulsa F5, o el botn Execute para ejecutar
la sentencia.

Borra el texto de la sentencia, y escribe el siguiente texto:

SELECT Id AS Identificador, Nombre FROM Clientes;

Ejecuta la instruccin y vers como resultado todas las filas de la tabla Clientes. Fjate que la
columna de base de datos Id, ahora parece que se llama Identificador. Esto es un alias de
columna; habr ocasiones en las que necesites personalizar el nombre de columna que se
muestra.

Desde Management Studio, tambin se puede ver la informacin de la tabla de forma similar
a como se presenta en Access; para ello, debers seleccionar la tabla que quieres editar,
botn derecho del ratn, y elegir la opcin "Open Table" como aparece en la siguiente
imagen:

Y como resultado tendremos:

101
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Debers tener cuidado con abrir tablas muy grandes, porque el proceso de carga es
ms costoso cuanto mayor sea el tamao de la tabla. Sin embargo, en la versin
2005 de las herramientas administrativas, tenemos la posibilidad de cancelar
consultas mientras se est realizando la peticin; fjate en el botn marcado en
color rojo en la siguiente imagen; pulsando dicho botn se solicita al servidor que
se cancele la consulta.

102
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Clasula WHERE
La clusula WHERE se utiliza para aplicar filtros al conjunto de resultados; para ello
existen operadores lgicos AND, OR, NOT, EXISTS con los condicionantes <, >, =, y
BETWEEN. No hay lmite para el nmero de condiciones a establecer. El orden de
prioridad de los operadores lgicos es NOT, seguido de AND y OR. Se pueden utilizar
parntesis para suplantar esta prioridad en una condicin de bsqueda.
Cuando se necesita recuperar informacin de ms de una tabla, se suele especificar
cules son las filas coincidentes entre ambas tablas (columnas Clave Ajena / Clave
Primaria que vimos en la leccin anterior). Para ello, hay una serie de operadores que
condicionan dicho filtro.
INNER JOIN
Especfica que se devuelvan todos los pares de filas coincidentes. Las filas no
coincidentes se descartan del resultado. Si no se especifica ningn tipo de
combinacin, ste es el tipo por defecto.
FULL [ OUTER ] JOIN
Especifica que una fila de la tabla de la derecha o de la izquierda, que no cumpla la
condicin de combinacin, se incluya en el conjunto de resultados y que las columnas
que correspondan a la otra tabla se establezcan en NULL.
LEFT [ OUTER ] JOIN
Especifica que todas las filas de la tabla izquierda que no cumplan la condicin de
combinacin se incluyan en el conjunto de resultados, con las columnas de resultados
de la otra tabla establecidas en NULL, adems de todas las filas devueltas por la
combinacin interna.
RIGHT [OUTER] JOIN
Especifica que todas las filas de la tabla derecha que no cumplan la condicin de
combinacin se incluyan en el conjunto de resultados, con las columnas de resultados
de la otra tabla establecidas en NULL, adems de todas las filas devueltas por la
combinacin interna.
ON <search_condition>
Especifica la condicin en la que se basa la combinacin; se puede referenciar ms de
una columna, por ejemplo, tablas con claves primarias compuestas.

Un ejemplo de consulta podra ser el siguiente:

SELECT
sh.SalesOrderID, sh.OrderDate, sh.CustomerID,
sd.OrderQty, sd.ProductID, sd.UnitPrice
FROM Sales.SalesOrderHeader sh
INNER JOIN Sales.SalesOrderDetail sd
ON sh.SalesOrderID = sd.SalesOrderID

Clasula GROUP BY

El lenguaje T-SQL permite devolver la informacin agregada usando la clusula GROUP BY;
los condicionantes de la agregacin se colocan despus de la clusula. Existen las siguientes
funciones de agregado:
AVG, MIN, CHECKSUM, SUM, CHECKSUM_AGG, STDEV, COUNT, STDEVP, COUNT_BIG, VAR,

103
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
GROUPING, VARP, MAX.

Por ejemplo, la siguiente sentencia T-SQL devolvera la cantidad de productos pedidos por
cliente en la base de datos MSDN:

SELECT Id, COUNT(*) AS Cantidad


FROM Pedidos
GROUP BY Id

Clasula having: Selecciona o filtra grupos

Por ejemplo, la siguiente sentencia T-SQL devolvera la cantidad de productos pedidos por
cliente mayor que 5 en la base de datos MSDN:

SELECT Id, COUNT(*) AS Cantidad


FROM Pedidos
GROUP BY Id
Having COUNT (*)>5

Clusula TOP (n) [PERCENT]

Cuando se necesita recuperar los n primeros elementos que cumplen una condicin, se
puede utilizar la funcin TOP. La funcin TOP tiene un argumento que puede representar un
nmero o un porcentaje.

La nica forma de garantizar que la sentencia TOP devuelva los n primeros


elementos que cumplen una condicin es usando la clusula ORDER BY.
Adems, SQL Server 2005, incorpora nuevas funciones de RANKING que devuelven
posiciones relativas de las filas; las funciones son RANK, DENSERANK, TILE , y
NTILE.

Aprovechando la consulta anterior, un ejemplo de CTE podra ser el siguiente:

WITH PedidosAgrupados (Id, Cantidad) AS


(
SELECT Id, COUNT(*) AS Cantidad
FROM Pedidos
GROUP BY Id
)
SELECT Id, Nombre
FROM Clientes
INNER JOIN PedidosAgrupados
ON Clientes.Id = PedidosAgrupados.I

104
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.3. Consultas de modificacin

Sentencia INSERT

La sentencia INSERT, inserta filas en una tabla; tiene dos formatos:


INSERT INTO <tabla> VALUES ( <lista de columnas> )
En la que se insertan la lista de valores en una tabla; corresponde a una insercin de una
fila en la tabla.

INSERT INTO <tabla> <sentencia select>


Donde la sentencia select ser un conjunto de filas que se insertar en la tabla destino.

Cuando una de las columnas de la tabla tenga establecidas la propidade IDENTITY,


no ser necesario especifica el valor de la columna porque SQL Server
automticamente lo har por nosotros. En realidad, si se intenta insertar un valor,
se generar una excepcin porque la propiedad IDENTITY, no admite especificar
valores para las columnas a menos que se use la opcin SET IDENTITY_INSERT.
La sentencia INSERT se puede utilizar en combinacin con las expresiones de
tablas comunes; adicionalmente, existe una opcin (OUTPUT), que devuelve
Cuando una de las columnas de la tabla tenga establecidas la propidade IDENTITY,
no ser necesario especifica el valor de la columna porque SQL Server
automticamente lo har por nosotros. En realidad, si se intenta insertar un valor,
se generar una excepcin porque la propiedad IDENTITY, no admite especificar
valores para las columnas a menos que se use la opcin SET IDENTITY_INSERT.

Sentencia UPDATE, y DELETE

La sentencia UPDATE/DELETE, actualizan/borran filas de una tabla. Normalmente se le


aplican filtros a la sentencia para que filtre las filas que se van a modificar. Se puede hacer
la operacin UPDATE/DELETE de dos formas, que explicaremos con un ejemplo:

DELETE Sales.SalesOrderDetail
WHERE SalesOrderID = 3443

En el que se borran las filas de la tabla Sales.SalesOrderDetail cuyo identificador es el 3443.

La otra posibilidad es hacer la operacin con un JOIN (no todos los gestores de bases de
datos lo permiten); el ejemplo sera el siguiente:

UPDATE t
SET AcumuladoImporte = t2.SumaImporte
FROM
TablaAcumulados t
INNER JOIN
(

105
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
SELECT Pedidos.Id, SUM (LineasPedido.Importe) AS SumaImporte
FROM Pedidos JOIN LineasPedido
ON Pedidos.Id = LineasPedido.Id Pedidos.Fecha BETWEEN '20050101' AND
'20060101' GROUP BY Pedidos.Id
) t2
ON t.Id = t2.Id
WHERE
Fecha BETWEEN '20050101' AND '20060101'

Para leer esta consulta es mejor que empieces por el final; mira la consulta que representa
el alias t2: obtiene los en importe total de cada pedido del ao 2005.
A continuacin, ese resultado se va a cruzar (JOIN) con la tabla TablaAcumulados para
actualizar la columna Acumulado pedidos, reemplazndolo por el valor de SumaImporte de
la consulta anterior. Antes de aplicarlo, deber acotar la actualizacin a los pedidos
realizados en el ao 2005.

3.4. Ejemplos de consulta de seleccin en la base de


datos construccin

/*distinct: Mostra los tipos de oficios de los trabajadores */


SELECT DISTINCT tipo_oficio
FROM tbltrabajador

/*Hallar el total el maximo de los valores hora*/


SELECT SUM(valor_hora) AS total, MAX(valor_hora) AS maximo
FROM tbltrabajador

/*Hallar los nombres de los trabajadores que tienen un valor hora mayor que
10000*/
select nombre
from tbltrabajador
where valor_hora>10000

/*HALLAR EL NOMBRE DEL TRABAJADOR CON EL VALOR HORA AUMENTADO EL


3%*/
SELECT NOMBRE,valor_hora + valor_hora * 0.3 AS PORCENTAJE
FROM tbltrabajador

/*Hallar los nombres de los trabajadores que tienen un valor hora entre 10000 y
30000*/
SELECT nombre, valor_hora
FROM tbltrabajador
WHERE (valor_hora BETWEEN 10000 AND 30000)

106
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
/* Hallar el nombre del trabajador que el nombre tenga la cadena ar en el
nombre*/
select *
from tbltrabajador
where nombre like '%ar%'

/*Hallar la cantidad de trabajadores por cada oficio*/


select tipo_oficio,count(*)as total
from tbltrabajador
group by tipo_oficio

/*hallar el total de dias asignado a cada trabajador si este es mayor que 20*/
SELECT cedula, SUM(num_dias) AS total
FROM tblasignar
GROUP BY cedula
HAVING (SUM(num_dias) > 20)

/*Hallar los nombres de los trabajadores y el


numero de dias asignado si es mayor que 15*/
SELECT tbltrabajador.nombre, tblasignar.num_dias
FROM tbltrabajador INNER JOIN
tblasignar ON tbltrabajador.cedula =tblasignar.cedula
WHERE tblasignar.num_dias > 15

/*Hallar el tipo la direccion y la fecha que se inicio*/


SELECT tbledificio.tipo,tbledificio.direccion,asignacion.fecha_inicio
FROM tblasignar INNER JOIN
tbledificio ON asignacion.iden_edif = tbledificio.iden_edif
WHERE tbledificio.tipo = 'oficina'

/*hallar el nombre de los trabajadores y la bonificacin si esta es mayor que


15000*/
Select tbltrabajador.nombre
from tbltrabajador inner join tbloficio
on tbltrabajador.tipo_oficio=tbloficio.tipo_oficio
where oficio.bonificacion>15000

/*Hallar la cantidad de trabajadores por oficio con la bonificacin


correspondiente*/
select tbltrabajador.tipo_oficio,tbloficio.bonificacion,count(*)as total
from tbltrabajador inner join tbloficio
on tbltrabajador.tipo_oficio=tbloficio.tipo_oficio
group by tbltrabajador.tipo_oficio,tbloficio.bonificacion

/*Hallar la cantidad de trabajadores por oficio con la bonificacion correspondinte


Mostrar si la cantidad de trabajadores es mayor que 2*/
select tbltrabajador.tipo_oficio,tbloficio.bonificacion,count(*)as total

107
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
from tbltrabajador inner join tbloficio
on tbltrabajador.tipo_oficio=tbloficio.tipo_oficio
group by tbltrabajador.tipo_oficio,tbloficio.bonificacion
having count(*)>2

/*Hallar los trabajadores que son decoradores o trabajan en los edificios 435*/
select cedula
from tbltrabajador
where tipo_oficio in('decorador')
union all
(select cedula
from tblasignar
where id_edificio in ('435'))

/*Hallar el nmero de trabajadores por oficio y mostrar si nmero de trabajadores


por oficio est entre 1 y 2*/

select tbltrabajador.tipo_oficio,count(*) as numero_dias


from tbloficio inner join tbltrabajador
on Tbloficio.tipo_oficio = Tbltrabajador.tipo_oficio
group by Tbltrabajador.tipo_oficio
having count(*) between 1 and 2

/*Hallar el nombre y el total de dias asignado a cada trabajador mostrar si el total


de das
Es mayor que el mnimo valor de num_horas*/
SELECT tblasignar.cedula,tbltrabajador.nombre,sum(num_dias)
FROM tblasignar inner join Tbltrabajador
on tblasignar.cedula=Tbltrabajador.cedula
GROUP BY tblasignar.cedula,tbltrabajador.nombre
having sum(num_dias)>
(select min(num_horas)
from tbloficio)

/*Consulta tres tablas*/


SELECT tbltrabajador.*, tbledificio.*
FROM tbltrabajador INNER JOIN
asignacion ON tbltrabajador.cedula = tblasignar.cedula INNER JOIN
tbledificio ON tblasignar.iden_edif =tbledificio.iden_edif
WHERE tbltrabajador.valor_hora > 10000

/*Consulta con dos tablas y having*/

SELECT tblasignar.iden_edif, tbledificio.direccion, tbledificio.tipo,tbledificio.calidad,


SUM(dbo.asignacion.num_dias) AS total
FROM tblasignar INNER JOIN
tbledificio ON tblasignar.iden_edif = tbledificio.iden_edif

108
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
GROUP BY tblasignar.iden_edif, tbledificio.direccion, dtbledificio.tipo, tbledificio.calidad
HAVING (SUM(tbl.asignacion.num_dias) BETWEEN 20 AND 50)

/*Hallar el nombre los nombres de los trabajadores que tienen un valor hora
mayor que el Valor hora de Nelson fernando o Gabriel*/
SELECT nombre
FROM tbltrabajador
where valor_hora>all
(select valor_hora
from tbltrabajador
where nombre in('nelson','fernando','gabriel'))

/*Mostrar los nombres de los trabajadores que tienen un nmero e das asignado
mayor que 20*/
SELECT nombre
FROM tbltrabajador
WHERE (NOT EXISTS
(SELECT *
FROM tblasignar
WHERE tbltrabajador.cedula = tblasignar.cedula AND num_dias >
20))

/*Hallar el nombre y valor hora de los trabajadores asignados a algn edificio*/


SELECT nombre,valor_hora
FROM tbltrabajador
where cedula in
(select cedula
from tblasignar)

/*hallar el nombre y valor hora de los trabajadores que no estn asignados a


ningn edificio*/
SELECT nombre,valor_hora
FROM tbltrabajador
where cedula not in
(select cedula
from tblasignar)

/*TODAS LAS CLAUSULAS


Hallar los nombres de los trabajadores que tienen una bonificacin mayor que
30000 y tienen ms de un edificio asignado ordenado por nombre.*/

SELECT tbltrabajador.nombre,count(*) as total,tbloficio.bonificacion


from tbloficio inner join tbltrabajador
on tbloficio.tipo_oficio=tbltrabajador.tipo_oficio
inner join tblasignar
on tbltrabajador.cedula=tblasignar.cedula
where tbloficio.bonificacion>30000

109
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
group by tblasignar.cedula,tbltrabajador.nombre,tbloficio.bonificacion
having count(*)>1
order by nombre

/*Hallar los nombres de los trabajadores que no se han asignado a ningn edificio
*/
SELECT nombre
FROM tbltrabajador
WHERE (NOT EXISTS
(SELECT *
FROM tblasignar
WHERE tbltrabajador.cedula = tblasignar.cedula ))

/*Hallar los datos de los trabajadores y los datos de los edificios en que trabajan
si el valor hora es mayor que 10000*/

select tbltrabajador.*,tbledificio.*
from tbltrabajador inner join tblasignar
on tbltrabajador.cedula=tblasignar.cedula
inner join tbledificio
on tblasignar.iden_edif=tbledificio.iden_edif
where tbltrabajador.valor_hora>10000

/*Subconsultas hallar los nombres de los trabajadores que ganan ms que


fernando o raul*/

select nombre,valor_hora
from tbltrabajador
where valor_hora>all
(select valor_hora
from tbltrabajador
where nombre in('fernando','raul'))

/*Consulta para los trabajadores que tienen todos los edificios asignados.*/

SELECT *
FROM .tbltrabajador
WHERE (cedula IN
(SELECT cedula
FROM tblasignar
GROUP BY tblasignar.cedula
HAVING COUNT(*) =
(SELECT COUNT(*)
FROM tbledificio)))
Hallar los datos de los trabajadores y los datos de los edificios en que trabajan si el valor
hora es mayor que 10000
select tbltrabajador.*,tbledificio.*

110
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
from tbltrabajador inner join tblasignar
on tbltrabajador.cedula=tblasignar.cedula
inner join tbledificio
on tblasignar.iden_edif=tbledificio.iden_edif
where tbltrabajador.valor_hora>10000

ibid, pg, 7

111
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Procedimientos almacenados
Los procedimientos almacenados (stored procedures) no son ms que una sucesion
ordenada de instrucciones T-SQL que pueden recibir y devolver parametros provistos por el
usuario y se pueden guardar en el servidor con un nombre, para luego poder invocarlos y
ejecutarlos. En esta nueva versin (2005), tambien es posible utiliza procedimientos
almacenados usando CLR. Un procedimiento almacenado CLR es una referencia a un mtodo
de un ensamble de .NET Framework que puede aceptar y devolver parmetros
suministrados por el usuario.

4.1. Algunas de las ventajas de usar procedimientos


almacenados

Compilacin: La primera vez que se invoca un procedimiento almacenado, el motor


lo compila y a partir de ah, se sigue usando la versin compilada del mismo, hasta
que se modifique o se reinicie el servicio de SQL. Esto hace que tengan un mejor
rendimiento que las consultas directas que usan cadenas con instrucciones T-SQL,
que el motor compila cada vez que se invoca.
Automatizacin: Si tenemos un conjunto de instrucciones T-SQL que queremos
ejecutar en un orden, los stored procedures son el espacio ideal para hacerlo.
Administracin: Si hacemos buen uso de los procedimientos almacenados, muchas
veces algn cambio en nuestra aplicacin, solo implica modificar un stored procedure
y no toda la aplicacin. Si nuestra aplicacin llama a los stored procedures, con solo
cambiarlo en el servidor, ya tenemos todo funcionado sin la necesidad de actualizar
la aplicacin en todos los equipos cliente.
Seguridad: Otra ventaja que tienen es que permiten aplicar un esquema de
seguridad ms potente, haciendo que los usuarios que usen nuestra aplicacin, solo
tengan permisos para ejecutar procedimientos almacenados y no a todos los objetos
de la base. De esta forma si un hacker encuentra una vulnerabilidad (SQL Injection)
en nuestra aplicacin, no podr explotarla ejecutando comandos SQL directamente
sobre la base, ya que el usuario con el cual se ejecuta la aplicacin solo tiene derecho
a la ejecucin de los procedimientos almacenados en la base de datos.
Programabilidad: Los procedimientos almacenados admiten el uso de variables y
estructuras de control como IF, Bucles, Case, etc.. adems de el manejo de
transacciones, que permiten que los stored procedures sean aplicables para escribir
lgica del negocio en los mismos. Depende el modelo de programacin que se utilice
esto puede ser tanto una buena prctica como una mala prctica, pero la posibilidad
de incluir las reglas del negocio en los mismos existe.
Como explicbamos ms arriba a partir de esta versin de SQL (2005), podemos
utilizar CLR esto es (cualquier leguaje .NET como C# o Visual Basic) para escribir los
stored procedures (adems del tradicional T-SQL).
Trfico de Red: Pueden reducir el trfico de la red, debido a que se trabaja sobre el
motor (en el servidor), y si una operacin incluye hacer un trabajo de lectura primero
y en base a eso realizar algunas operaciones, esos datos que se obtienen no viajan
por la red.

112
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.2. Crear procedimientos almacenados

Para crear un procedimiento almacenado es necesario ejecutar la instruccin CREATE


PROCEDURE, como se muestra en el ejemplo:

CREATE PROCEDURE
Clientes_GetAll
AS
SELECT Id, Nombre FROM
dbo.Clientes

Si el procedimiento almacenado ya existe se debe usar la instruccin ALTER PROCEDURE, de


la misma manera que si se estuviera creando. En el ejemplo, el stored procedure devuelve
todos los registros de la tabla Clientes.

La creacin de procedimientos almacenados basados en .NET


Framework lo veremos en la leccin 4 del mdulo 4 (Conceptos
avanzados -- Integracin del CLR).

4.3. Ejecutar procedimientos almacenados

La ejecucion de los procedimientos almacenados es muy simple. Desde T-SQL hay que
utilizar la instruccin EXEC, para ejecutar los dos procedimientos almacenados que creamos
arriba deberia escribirse esto:

EXEC Clientes_GetAll

Y cmo se hara la llamada desde una aplicacin .NET?; para ello deberemos definir un
objeto conexin que conecta a la base de datos, y un objeto command que ejecute el
comando:

'Creamos una nueva conexion.


Dim myConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("Data
Source=(localhost)\SQLEXPRESS;Initial Catalog=DemoMSDN;Integrated
Security=True")

'Creamos un nuevo comando


Dim myComm As SqlClient.SqlCommand = New SqlClient.SqlCommand()
'Le asignamos la conexion.
myComm.Connection = myConn
'especificamos que el comando es un stored procedure
myComm.CommandType = CommandType.StoredProcedure

113
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
'y escribimos el nombre del stored procedure a invocar
myComm.CommandText = "Clientes_GetAll"

'Creamos un nuevo DataAdapter con nuestro comando.


Dim myDA As SqlClient.SqlDataAdapter = New
SqlClient.SqlDataAdapter(myComm)

'Creamos un dataset para soportar los datos devueltos por el stored procedure
Dim ClientesDs As DataSet = New DataSet

'Pedimos al Data Adapter que llene el dataset (Esto llama a nuestro comando)
myDA.Fill(ClientesDs)

'Y lo mostramos por pantalla


For Each row As Data.DataRow In ClientesDs.Tables(0).Rows
Console.WriteLine(row!Id.ToString() + " " + row!Nombre)
Next

4.4. Argumentos en procedimientos almacenados

Los procedimientos almacenados pueden recibir y devolver datos a quien lo llame.


Supongamos que ahora necesitamos obtener una sola categora y no todas como el ejemplo
anterior. Podemos crear un nuevo stored procedure llamado Clientes_GetOne que reciba
como parmetro el Id y devuelva solo ese registro.

CREATE PROCEDURE
Clientes_GetOne
@Id int
AS

SELECT Id, Nombre FROM


dbo.Clientes
WHERE Id = @Id

Como se puede ver, ahora este stored procedure espera un parmetro que luego se usa
para hacer la consulta en el select.

Para llamar a este store procedure se usa la misma sintaxis pero solo agregando el valor del
parmetro. (En este caso, queremos obtener el registro cuyo Id = 4).

EXEC
Clientes_GetOne
4

114
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.5. Desde ADO.NET

'Creamos una nueva conexion.


Dim myConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("Data
Source=(localhost)\SQLEXPRESS;Initial Catalog=DemoMSDN;Integrated
Security=True")

'Creamos un nuevo comando


Dim myComm As SqlClient.SqlCommand = New SqlClient.SqlCommand()
'Le asignamos la conexion.
myComm.Connection = myConn
'especificamos que el comando es un stored procedure
myComm.CommandType = CommandType.StoredProcedure
'y escribimos el nombre del stored procedure a invocar
myComm.CommandText = "Clientes_GetOne"

'Creamos un nuevo parmetro


Dim myParam As SqlClient.SqlParameter = New SqlClient.SqlParameter()
myParam.ParameterName = "@Id"
myParam.SqlDbType = SqlDbType.Int
myParam.Value = 4

'Y se lo agregamos a la coleccin de parametros del comando


myComm.Parameters.Add(myParam) 'Creamos un nuevo DataAdapter con nuestro
comando.
Dim myDA As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(myComm)

'Creamos un dataset para soportar los datos devueltos por el stored procedure
Dim ClientesDs As DataSet = New DataSet

'Pedimos al Data Adapter que llene el dataset (Esto llama a nuestro comando)
myDA.Fill(ClientesDs)

'Y lo mostramos por pantalla


For Each row As Data.DataRow In ClientesDs.Tables(0).Rows
Console.WriteLine(row!Id.ToString() + " " + row!Nombre)
Next

Los TRIGGERS o disparadores son muy similares en su concepto a los procedimientos


almacenados, es decir son piezas de cdigo Transact-SQL, sin embargo son radicalmente
distintas en la ejecucin, mientras un procedimiento almacenado se ejecuta por la peticin
de un cliente, un TRIGGER responde a un evento, ya sea de manipulacin de datos como los
TRIGGERS DML o por la manipulacin de esquemas como los TRIGGERS DDL.

115
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Los TRIGGERS son un tipo de objetos muy especiales en SQL Server 2005, ya que realmente
son muy parecidos a lo que las rutinas de atencin a eventos en cdigo en cualquier
lenguaje de programacin como por ejemplo .NET. Como objetos especiales que son
tambin reciben parmetros de una forma muy especial, en forma de unas tablas virtuales,
llamadas inserted y deleted. Estas tablas especiales (inserted y deleted) contienen la
informacin de los registros que se han eliminado o insertado, con exactamente las mismas
columnas que la tabla base que est sufriendo esa modificacin. Las tablas inserted y
deleted estarn o no rellenas de datos en funcin de cul sea el tipo de operacin que ha
dado lugar a su ejecucin. Por ejemplo, un TRIGGER que se dispare por la insercin en una
tabla tendr tantos registros en la tabla virtual inserted como registros estn siendo
insertados y cero registros en la tabla deleted; un TRIGGER que se dispare por la
eliminacin de registros en una tabla tendr cero registros en la tabla inserted y tantos
registros en la tabla deleted como registros estn siendo eliminados, y un TRIGGER que
responda a una operacin de update, tendr el mismo nmero de registros en la tabla
inserted y en la tabla deleted que adems coincidir con el nmero de registros actualizados
en la tabla que da lugar al evento.

Uno de los errores ms comunes cuando se desarrollan TRIGGERS est relacionado con esta
arquitectura que acabamos de describir, un TRIGGER no se dispara una vez para cada fila
modificada, sino que se dispara una sola vez por cada operacin, independientemente del
nmero de registros afectados por la operacin, y todos los registros afectados estn
contenidos en las tablas inserted y deleted dentro del TRIGGER. Muchos desarrolladores
parten de la premisa de que las tablas inserted y deleted contendrn solamente un registro
a lo sumo y como acabamos de explicar esto no es cierto. El segundo error ms comn tiene
que ver este primero y con el rendimiento, muchos desarrolladores para solventar este
problema crean cursores dentro de los TRIGGERS, los cursores como tal estn fuera del
alcance de este captulo, pero en general un cursor dentro de un TRIGGER es casi un
garanta de obtener problemas de rendimiento, por lo que deberamos intentar evitarlos lo
ms posible.

Los TRIGGERS son usados para aadir lgica o restricciones a la base de datos, por ejemplo
pueden ser usados para establecer reglas de integridad con bases de datos externas (no
grabar un pedido en la base de datos de pedidos si el cliente indicado no est dado de alta
en la base de datos de pedidos por ejemplo); tambin son usados para mantener tablas de
acumulados como por ejemplo la tabla que mantienen el stock de una determinada
compaa o para guardar el acumulado de ventas en la ficha de un cliente.

DML es el acrnimo de Data Manipulation Language (Lenguaje de Manipulacin de


datos), los TRIGGERS DML son como indica su nombre aquellos que responden a
operaciones de manipulacin de datos, tales como sentencias INSERT, UPDATE o
DELETE mientras que DDL es el acrnimo de Data Definition Language (Lenguaje
de definicin de datos) los TRIGGERS DDL se dispararn por operaciones que
impliquen cambios en los esquemas (en la definicin de los objetos).

116
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.6. Triggers DML: INSTEAD OF

Los TRIGGERS de tipo Instead OF son TRIGGERS que se disparan en lugar de la operacin
que los produce, es decir, una operacin de borrado de registros con la instruccin delete
sobre una tabla que tiene un TRIGGER de tipo INSTEAD OF no se llega a realizar realmente,
sino que SQL Server 2005 cuando detecta esta operacin invoca al TRIGGER que es el
responsable de actuar sobre los registros afectados, en el ejemplo que estamos siguiendo, el
TRIGGER sera el responsable de borrar los registros de la tabla que ha disparado el evento.
Si el TRIGGER no se encarga de esta tarea, el usuario tendr la sensacin de que SQL
Server no hace caso a sus comandos ya que por ejemplo una instruccin DELETE no borrar
los registros.

Como ejemplo de TRIGGER de tipo INSTEAD OF vamos a ver como se implementara la


siguiente regla: no se pueden borrar los clientes cuyo Crdito Total sea mayor que cero, sin
embargo si dentro de una operacin de borrado hay clientes con Riesgo Total cero y otros
con Riesgo Total distinto de cero, los que tengan cero si deben resultar eliminados. El
TRIGGER que implementara esa regla sera el siguiente.

CREATE TRIGGER TR_BorradoSelectivo on


Clientes INSTEAD OF DELETE
AS
BEGIN
DELETE c
FROM Clientes C
INNER JOIN DELETED d
ON C.idCliente=D.idCliente
WHERE C.CreditoTotal=0
END

Repasando el cdigo podemos ve que estamos utilizando una sintaxis de JOIN para un
DELETE, esta sintaxis es perfectamente vlida y lo que har ser borrar todos los registros
de C (Clientes) que existan tambin en D (DELETED) uniendo estas tablas por el cdigo de
cliente en donde el Crdito Total sea 0. El resto de los registros solicitados para borrar (es
decir todos los que su campo crdito total no sea cero) simplemente no se borrarn, ya que
como hemos mencionado los triggers de tipo INSTEAD OF delegan la responsabilidad de la
operacin en el cuerpo del TRIGGER.

En algunos escenarios los TRIGGERS de tipo INSTEAD OF pueden usarse como


mecanismo para evitar operaciones no controladas en tablas, por ejemplo si
queremos prevenir que se borren datos de una tabla, basta con crear un INSTEAD
OF TRIGGER y no poner ningn cdigo en su cuerpo, de esta forma, a menos que el
usuario deshabilite el TRIGGER, no podr borrar ningn dato, sin embargo sea
cuidadoso y documente bien este tipo de operaciones ya que pueden dar la falsa
sensacin de que la base de datos no se est comportando adecuadamente.

117
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.7. Triggers DML: AFTER

Todos los TRIGGERS sirven en general para implementar restricciones de negocio


avanzadas, como ejemplo vamos a ver como se construira un TRIGGER que impidiese que
se aumentase el Crdito total de un cliente que tenga pagos pendientes, para ello vamos a
suponer una tabla de clientes con identificador idCliente y con un campo llamado
CreditoTotal y una tabla de recibos conteniendo el idcliente y el estado del recibo (estos son
solamente los campos que son relevantes para nuestro ejemplo).

CREATE TRIGGER TR_CompruebaCreditoTotal ON Clientes AFTER


UPDATE
AS
BEGIN
IF UPDATE(CreditoTotal)
-- Se est actualizando el campo crdito total, comprobemos
-- las restricciones.
BEGIN
IF EXISTS( SELECT IdCliente
FROM RECIBOS
WHERE Estado=PEN AND idCliente IN (SELECT idCliente
FROM DELETED)
)
BEGIN
ROLLBACK -- Deshacemos la transaccin impidiendo que se
actualize
RAISERROR (No se pueden actualizar el crdito de clientes
con recibos pendientes,16,1)
END
END
END

Veamos algunas particularidades sobre el cdigo del TRIGGER, la clusula UPDATE, permite
comprobar si se est actualizando una columna en particular, de esta forma nuestro
TRIGGER resultar inocuo para el resto de operaciones de actualizacin. En la segunda parte
se comprueba que el cliente tenga recibos pendientes con una clusula EXISTS y con una
clusula in. La clusula IN permite comprobar que el cdigo de cliente est en la lista de
cdigos de cliente borrados (todos ellos), la clusula EXISTS permite comprobar si existen
recibos pendientes en esos clientes.

Algunos administradores de base de datos prefieren implementar estas reglas de


negocio en procedimientos almacenados e impedir el acceso de los usuarios
directamente a la modificacin de tablas. Ambas alternativas son perfectamente
vlidas y el usar unas u otras depender de las polticas que se establecen en el
desarrollo. Lo que en cualquier caso suele ser buena idea es manipular las
restricciones de los datos en la base de datos, porque esta es la nica forma de
garantizar totalmente la consistencia de la informacin.

118
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.8. Triggers DDL: a nivel de base de datos

Los TRIGGERS DML (Data Manipulation Language) responden a la necesidad de garantizar la


integridad y consistencia de los datos dentro de nuestras tablas de usuario, sin embargo no
ayudan a mantener las reglas de diseo de nuestra base de datos. El nombre coincide pero
el propsito es distinto, los triggers DDL (Data Definition Language) nos proporcionarn
mecanismos para garantizar que nuestra base de datos est diseada e implementada de
acuerdo a los estndares que hayamos definido.

Los TRIGGERS DDL tienen dos alcances diferenciados, a nivel de servidor y a nivel de base
de datos. Estos alcances estn enlazados con el tipo de evento que los dispare, en esta
primera parte los eventos que vamos a ver son a nivel de Base de datos y algunos ejemplos
de ellos son:

CREATE / ALTER /DROP View


CREATE / ALTER /DROP Table
CREATE / ALTER /DROP Schema

Aunque hay muchos ms, relacionados con estadsticas, sinnimos, usuarios (no confundir
con logins que son a nivel de servidor), procedimientos, etc. Puede consultar los libros en
pantalla de SQL Server 2005 para obtener una relacin completa de todos los eventos a los
que puede responder.

Los TRIGGERS DDL tiene una particularidad adicional sobre los de tipo DML y es que no
tiene mucho sentido las tablas inserted y deleted ya que el tipo de operaciones que disparan
los triggers son radicalmente diferentes. Sin embargo, como ellos necesitan recibir
informacin acerca del evento que ha ocasionado que el trigger se dispare, para ello existe
la funcin EVENTDATA(), esta funcin devuelve un valor XML que responde al siguiente
esquema:

<EVENT_INSTANCE>
<EventType>type</EventType>
<PostTime>date-time</PostTime>
<SPID>spid</ SPID>
<ServerName>name</ServerName>
<LoginName>name</LoginName>
<UserName>name</UserName>
<DatabaseName>name</DatabaseName>
<SchemaName>name</SchemaName>
<ObjectName>name</ObjectName>
<ObjectType>type</ObjectType>
<TSQLCommand>command</TSQLCommand>
</EVENT_INSTANCE>

119
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Utilizando las funciones XML para manipular esa funcin podemos obtener toda la
informacin necesaria para crear TRIGGERS que garanticen que en nuestras bases de datos
se siguen los estndares marcados. Supongamos que uno de esos estndares indica que
todas las tablas deben estar documentadas, su propsito, la fecha de creacin etc en una
tabla llamada TablasDocumentadas, podramos crear un TRIGGER DDL a nivel de base de
datos que nos garantizase que antes de crear la tabla, sta , ya ha sido documentada. El
cdigo que lo hace es el siguiente:

CREATE TRIGGER TablasDocumentadas


ON DATABASE
FOR CREATE_TABLE
AS
BEGIN
DECLARE @TabName Sysname
SELECT
@TabName=EventData().value((/EVENT_INSTANCE/ObjectName)[1],sysname)
IF NOT EXISTS(SELECT * FROM TablasDocumentadas WHERE
TableName=@TabName)
BEGIN
ROLLBACK -- Deshacemos la transaccin impidiendo que se actualize
RAISERROR (No se pueden crear tablas indocumentadas en nuestro
sistema,16,1)
END
END

Si lo miramos en detalle tan solo estamos obteniendo el nombre del objeto que se ha
insertado (en nuestro caso la tabla que se acaba de crear) y estamos comprobando que
existe un registro con ese nombre en la tabla TablasDocumentadas, sin embargo este
procedimiento podra tener mucha ms complejidad y garantizar no solamente que existe
sino que los datos que contiene esa tabla son de cierta calidad.

4.9. Funciones

Una herramienta adicional dentro de la programacin de base de datos son las funciones
definidas por el usuario. Estas funciones, que pueden ser de tres tipos, reciben parmetros
como los procedimientos almacenados, y adems pueden ser usadas como valores escalares
o como tablas dentro de clusulas from, lo que las hace tremendamente tiles en
determinadas circunstancias.

4.10. Funciones Escalares

Las funciones escalares son aquellas que devuelven un nico valor en funcin de los
parmetros que reciben. Pueden servir en mltiples circunstancias haciendo de la

120
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
programacin una experiencia ms agradable. Un ejemplo de funcin escalar podra ser la
siguiente:

CREATE FUNCTION Rangos (@id


tinyint)
RETURNS nvarchar(10)
AS
BEGIN
DECLARE @Valor nvarchar(10)
SELECT @Valor = CASE WHEN
@id<20 THEN '1-19'
WHEN @id>=20 AND @id<40
THEN '20-39'
WHEN @id>=40 AND @id<60
THEN '40-59'
WHEN @id>=60 AND @id<80
THEN '60-79'
WHEN @id>=80 AND @id<100
THEN '80-99'
ELSE '>100'
END
RETURN @Valor
END

Esta funcin devolver un string que contiene el rango al que pertenece el nmero que
recibe como parmetro.

Desde las funciones se puede acceder a tablas tambin, pero siempre cuando se hace hay
que ser muy cuidadoso para no implementar lo que se llaman lookups dentro de las udfs
por que eso puede ser muy peligroso para el rendimiento ya que por cada fila devuelta se
ejecutar una sentencia sin que el optimizador de consultas pueda hacer nada para mejorar
la forma de ejecutarse.

4.11. Funciones de tabla en lnea

Las funciones de tabla en lnea son muy parecidas a las vistas, con la excepcin de que
admiten parmetros de tal forma que pueden resultar tremendamente tiles en
determinadas circunstancias. Veamos un ejemplo:

CREATE FUNCTION ClientesPorTipo (@Tipo


tinyint)
RETURNS TABLE
AS
RETURN (SELECT * FROM Clientes
WHERE Tipo=@tipo)

121
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Esta funcin puede ser usada en sentencias ms complejas, un ejemplo de uso podra ser el
siguiente:

SELECT * FROM ClientesPorTipo(1)


Cl
INNER JOIN Facturas F ON
CL.idcliente=F.IdCliente

De esta forma podemos parametrizar consultas que vamos a usar en clusulas FROM, de
esta forma escribir cdigo T-SQL resulta ms sencillo y el resultado es ms comprensible. Si
adems combinamos esta funcionalidad con las nuevas funciones APPLY podemos obtener
funcionalidades an ms interesantes, ya que podemos conseguir que las funciones en lnea
o de tipo tabla reciban los parmetros desde los valores de otra tabla, la sintaxis sera algo
as:

SELECT * FROM
ClientesSeleccionados C
CROSS APPLY
ClientesPorTipo(C.tipo)

Esta consulta devolver todos los registros de la tabla Clientes Seleccionados y los registros
de la vista ClientesPortipo para cada Tipo de la tabla primaria.

ibid, pg, 7
ibid, pg,7

122
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Unidad 5

Nuevas tendencias de
bases de Datos
Con el avance de la tecnologa en las comunicaciones y en la
programacin se hace necesario tener conocimientos de lo que son las
bases de datos orientadas a objetos ya esta sern utilizados a un
mismo nivel que las Bases de datos relacionales de la actualidad y las
bases de datos distribuidas que se estn utilizando cada vez ms en la
misma medida en que se usa la arquitectura centralizada y cliente-
servidor y que se seguir incrementando de manera considerable en la
medida en que la tecnologa de comunicacin de datos brinde ms
facilidades para ello.
1. Bases de datos Orientadas a
objetos(BDOO)
Definicin: Una Base de Datos Orientada a Objetos (BDOO) proporciona un ambiente para
el desarrollo de aplicaciones y un depsito persistente listo para su explotacin. Una BDOO
almacena datos, las relaciones entre los datos y su comportamiento, es decir la forma cmo
interactan unos datos con otros.

1.1. Ventajas de la tecnologa orientada a objetos.

Flexibilidad. Si partimos del hecho que mediante la definicin de clases establecemos


mdulos independientes, a partir de los cuales podemos definir nuevas clases, entonces
podemos pensar en estos mdulos como bloques con los cuales podemos construir
diferentes programas.
Reusabilidad. Una vez que hemos definido a la entidad persona para utilizarla en una
aplicacin de negocios, por mencionar un ejemplo, y deseamos construir a continuacin
una aplicacin, digamos de deportes, en donde requerimos definir a la misma entidad
persona, no es deseable volver a escribir la definicin para la entidad persona. Por medio
de la reusabilidad podemos utilizar una clase definida previamente en las aplicaciones
que nos sea conveniente. Es claro que la flexibilidad con la que se defini la clase va a
ser fundamental para su reutilizacin.
Mantenibilidad. Las clases que conforman una aplicacin, vistas como mdulos
independientes entre s, son fciles de mantener sin afectar a los dems componentes de
la aplicacin.
Extensibilidad. Gracias a la modularidad y a la herencia una aplicacin diseada bajo el
paradigma de la orientacin a objetos puede ser fcilmente extensible para cubrir
necesidades de crecimiento de la aplicacin.

1.2. Desventajas de la tecnologa orientada a


objetos.

A pesar de que las ventajas de la programacin orientada a objetos superan a las


limitaciones de la misma, podemos encontrar algunas caractersticas no deseables en sta.

Limitaciones para el programador. No obstante que la tecnologa orientada a objetos no es


nueva, un gran porcentaje de programadores no estn familiarizados con los conceptos de
dicha tecnologa. En otras palabras, la lgica de la programacin estructurada sigue siendo
predominante en la mayora de los desarrolladores de software, despus de haber revisado
de forma breve los principios de la programacin orientada a objetos, nos es claro que en
sta se requiere una lgica de pensamiento totalmente diferente a la lgica comnmente
utilizada para la programacin estructurada.

124
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Tamao excesivo en las aplicaciones resultantes. La gran mayora de los equipos de
cmputo cuentan con capacidades tanto de almacenamiento como de memoria lo
suficientemente buena como para ejecutar la mayora de las aplicaciones que puedan
desarrollarse con la tecnologa orientada a objetos, sin embargo existen casos en los que lo
anterior no se cumple. Una de las desventajas de la programacin orientada a objetos es
que cuando se heredan clases a partir de clases existentes se heredan de forma implcita
todos los miembros de dicha clase aun cuando no todos se necesiten, lo que produce
aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga.

Velocidad de ejecucin. Esto tiene que ver, en cierto modo, con el punto anterior, una
aplicacin innecesariamente pesada en muchas ocasiones es ms lenta de ejecutar que una
aplicacin conformada nicamente por los mdulos necesarios.

1.3. Conceptos de la orientacin a Objetos

1.3.1. Abstraccin

La abstraccin es el proceso en el cual separamos las propiedades ms importantes de un


objeto, de las que no lo son. Es decir, por medio de la abstraccin definimos las
caractersticas esenciales de un objeto del mundo real, los atributos y comportamientos que
lo definen como tal, para despus modelarlo en un objeto de software.
En el proceso de abstraccin no debemos preocuparnos por la implementacin de cada
mtodo o atributo, solamente debemos definirlo de forma general. Por ejemplo, supongamos
que deseamos escribir un programa para representar el sistema solar, por medio de la
abstraccin, podemos ver a ste sistema como un conjunto de objetos, algunos de estos
objetos son los planetas, que tienen un estado, dado por sus caractersticas fsicas, digamos,
tamao, masa, entre otras, estos objetos tendrn tambin comportamientos: la translacin
y la rotacin, pueden mencionarse como los ms evidentes.

Visualizar las entidades que deseamos trasladar a nuestros programas, en trminos


abstractos, resulta de gran utilidad para un diseo optimo de nuestro software, ya que nos
permite comprender ms fcilmente la programacin requerida.

En la tecnologa orientada a objetos la herramienta principal para soportar la abstraccin es


la clase. Podemos definir a una clase como una descripcin genrica de un grupo de objetos
que comparten caractersticas comunes, dichas caractersticas se especificadas en sus
atributos y comportamientos. En otras palabras, una clase es un molde o modelo en donde
se especifican las caractersticas que definen a un objeto de manera general, a partir de una
clase pedemos definir objetos particulares. En programacin orientada a objetos se dice que
un objeto es una instancia de la clase, es decir un objeto, es un caso particular del conjunto
de objetos que comparten caractersticas similares, definidas en la clase.
Un ejemplo servir para clarificar estos conceptos. Definamos a la clase persona, esta clase
tendr ciertos atributos, por ejemplo edad, sexo y nombre entre otros. Las acciones o
comportamientos que podemos definir para esta clase son, por ejemplo, respirar, caminar,
comer, etctera. Estas son, para nuestro caso, las caractersticas que definen a nuestra

125
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
clase persona. Un objeto instanciado de esta clase podra ser Juan Prez, de sexo masculino
y de 35 aos de edad, quin se encuentra caminando. Estos atributos son conocidos
formalmente en programacin orientada a objetos como variables de instancia por que
contienen el estado de un objeto particular en un momento dado, en este caso Juan Prez.
As mismo, los comportamientos son llamados mtodos de instancia porque nos muestran el
comportamiento de un objeto particular de la clase.

1.3.2. Modularidad

Dentro de la programacin orientada a objetos, la modularidad juega un papel muy


importante. Una vez que hemos representado una situacin del mundo real en un programa,
tenemos regularmente como resultado, un conjunto de objetos de software que constituyen
la aplicacin. La modularidad, nos permite poder modificar las caractersticas de la clase que
definen a un objeto, de forma independiente de las dems clases en la aplicacin. En otras
palabras, si nuestra aplicacin puede dividirse en mdulos separados, normalmente clases, y
estos mdulos pueden compilarse y modificarse sin afectar a los dems, entonces dicha
aplicacin ha sido implementada en un lenguaje de programacin que soporta la
modularidad. La tecnologa orientada a objetos nos brinda esta propiedad para hacer uso de
ella en el software que desarrollemos.

1.3.3. Encapsulamiento

Tambin referido como ocultamiento de la informacin, el encapsulamiento es la propiedad


de la orientacin a objetos que nos permite asegurar que la informacin de un objeto le es
desconocida a los dems objetos en la aplicacin. Es muy frecuente referirse a los objetos de
software como cajas negras, esto se debe principalmente a que no necesitamos, dentro de
la programacin orientada a objetos, saber cmo esta instrumentado un objeto para que
este interacte con los dems objetos. Generalmente una clase se define en dos partes, una
interfaz por medio de la cual los objetos que son instanciados de la misma interactan con
los dems objetos en la aplicacin, y la implementacin de los miembros de dicha clase
(mtodos y atributos). Retomando dos de los ejemplos anteriores, supongamos que
deseamos realizar una aplicacin en donde deben interactuar el objeto Mercedes Benz,
instancia de la clase automvil y el objeto Juan Prez, instancia de la clase Persona. Ambos
objetos pueden ser vistos como cajas negras las cuales se comunican por medio de una
interfaz. El objeto Mercedes no sabe como esta implementado el objeto Juan Prez y
viceversa. Concretamente, el encapsulamiento permite a un objeto ocultar informacin al
mundo exterior, o bien restringir el acceso a la misma.

Una aplicacin orientada a objetos est constituida, como mencionamos anteriormente, por
mdulos. Estos mdulos se implementan mediante clases, las cuales representan,
generalmente, abstracciones de objetos del mundo real. Es por medio del encapsulamiento
que podemos definir los atributos y los mtodos de una clase para que los objetos que se
instancian de sta trabajen como unidades independientes de los dems objetos con los que
interactan. En otras palabras, con el encapsulamiento ganamos modularidad, y adems
protegemos a los objetos de ser manipulados de forma inadecuada por objetos externos.

126
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
1.3.4. Jerarqua o herencia

Una vez que hemos definido una clase, por ejemplo la clase bicicleta, con sus atributos y
mtodos, tal vez necesitemos definir una nueva clase especfica para las bicicletas de
carreras. Es obvio que sta nueva clases compartir elementos en comn con la clase
bicicleta, es decir, la clase bicicleta de carreras ser un subconjunto de la clase bicicleta.
La tecnologa orientada a objetos nos permite definir jerarquas entre clases y jerarquas
entre objetos. Las dos jerarquas ms importantes que existen son la jerarqua es un que
precisa la generalizacin y especificacin entre clases y la jerarqua es parte de en la cual
se delimita la agregacin de objetos.

Comnmente, a la jerarqua es un se le conoce como herencia. La herencia simple es la


propiedad que nos permite definir una clase nueva en trminos de una clase ya existente.
Regresando al ejemplo, si podemos decir que una bicicleta de carreras es una bicicleta,
entonces podemos definir a la clase bicicleta de carreras a partir de la clase bicicleta.
Existirn casos en los cuales se necesite definir una clase a partir de dos o ms clases
preexistentes, en este caso estaremos hablando de herencia mltiple.

En cuanto a la jerarqua de agregacin, tambin conocida como inclusin, podemos decir


que se trata del agrupamiento lgico de objetos relacionados entre s dentro de una clase.
Supongamos que tenemos que definir a la clase automvil, pero adems hemos definido ya
a la clase volante. Si podemos expresar la oracin, un volante es parte de un automvil,
entonces podemos instanciar un objeto de la clase volante, para definir a la clase automvil.
En este caso, se dice que automvil es una agregacin y volante es un agregado de
automvil.

1.4. Polimorfismo

Muchas veces es necesario que un mismo comportamiento o accin se realice de diferentes


maneras, por ejemplo, supongamos que deseamos implementar a la clase mamferos,
supongamos tambin que uno de los mtodos que deseamos implementar para esta clase,
es el que permita a tales mamferos desplazarse de forma natural. Nos encontraremos
entonces con que para algunos mamferos el desplazamiento se realizar por medio de
caminar, como es en el caso de las personas, para otros el desplazamiento natural ser
nadar, como en el caso de los delfines e inclusive para otros, el desplazamiento se lograr
por medio de volar, como sucede con los murcilagos. En otras palabras, un mismo
comportamiento, en este caso el desplazamiento, puede tomar diferentes formas.
Dentro de la programacin orientada a objetos puede modelarse esta situacin del mundo
real, en objetos de software, gracias al polimorfismo. El polimorfismo es la propiedad por la
cual una entidad puede tomar diferentes formas. Generalmente est entidad es una clase, y
la forma en que se consigue que tome diferentes formas es por medio de nombrar a los
mtodos de dicha clase con un mismo nombre pero con diferentes implementaciones.

Para complementar este tema ver presentacin.


http://download.microsoft.com/download/F/A/C/FAC370F4-7D37-4899-A461-
D27ABC99C615/DCE0_ProgramacionOO_C%23_VBNET.ppt
Obtenido en Internet el 16 de noviembre de 2008. Hora: 9.50 am.

127
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Lus Joyanes, Programacin orientada a objetos, pg. 18 Mc Grow Hill 1998.
Ibid pg. 5
Ibid pg. 5
Lus Joyanes A. Programacin Orientada a Objetos, pgina 28. Mc Grow Hill, 1998
Ibid pg. 7
Ibid pg. 7
Ibid pg. 7

128
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
2. Diseo de un diagrama de clases

Un diagrama de clases es un tipo de diagrama esttico que describe la estructura de un


sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases
son utilizados durante el proceso de anlisis y diseo de los sistemas, donde se crea el
diseo conceptual de la informacin que se manejar en el sistema, y los componentes que
se encargaran del funcionamiento y la relacin entre uno y otro.

2.1. Elementos de un diagrama de clases

2.1.1. Clase

Una clase define los atributos y los mtodos de una serie de objetos. Todos los objetos de
esta clase (instancias de esa clase) tienen el mismo comportamiento y el mismo conjunto de
atributos (cada objetos tiene el suyo propio). En ocasiones se utiliza el trmino tipo en
lugar de clase, pero recuerde que no son lo mismo, y que el trmino tipo tiene un significado
ms general.

En , las clases estn representadas por rectngulos, con el nombre de la clase, y tambin
pueden mostrar atributos y operaciones de la clase en otros dos compartimentos dentro
del rectngulo.

Representacin visual de una clase en UML


Imagen extrada de la direccin:
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

2.1.2. Atributos

En UML, los atributos se muestran al menos con su nombre, y tambin pueden mostrar su
tipo, valor inicial y otras propiedades. Los atributos tambin pueden ser mostrados
visualmente:

+ Indica atributos pblicos


# Indica atributos protegidos

129
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
- Indica atributos privados

2.1.3. Operaciones

Las operaciones (mtodos) tambin se muestran al menos con su nombre, y pueden


mostrar sus parmetros y valores de retorno. Las operaciones, al igual que los atributos, se
pueden mostrar visualmente:

+ Indica operaciones pblicas


# Indica operaciones protegidas
- Indica operaciones privadas

2.1.4. Plantillas

Las clases pueden tener plantillas, un valor usado para una clase no especificada o un tipo.
El tipo de plantilla se especifica cuando se inicia una clase (es decir cuando se crea un
objeto). Las plantillas existen en C++ y se introducirn en Java 1.5 con el nombre de
Genricos.

Ejemplo de clase

2.1.5. Asociaciones de clases

Las clases se puede relaciones (estar asociadas) con otras de diferentes maneras:

Generalizacin

130
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
La herencia es uno de los conceptos fundamentales de la programacin orientada a objetos,
en la que una clase recoge todos los atributos y operaciones de la clase de la que es
heredera, y puede alterar/modificar algunos de ellos, as como aadir ms atributos y
operaciones propias.

En UML, una asociacin de generalizacin entre dos clases, coloca a estas en una jerarqua
que representa el concepto de herencia de una clase derivada de la clase base. En UML, las
generalizaciones se representan por medio de una lnea que conecta las dos clases, con una
flecha en el lado de la clase base.

Representacin visual de una generalizacin en UML


Imagen extrada de la direccin:
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

2.1.6. Asociaciones

Una asociacin representa una relacin entre clases, y aporta la semntica comn y la
estructura de muchos tipos de conexiones entre objetos.
Las asociaciones son los mecanismos que permite a los objetos comunicarse entre s.
Describe la conexin entre diferentes clases (la conexin entre los objetos reales se
denomina conexin de objetos o enlace).

Las asociaciones pueden tener una papel que especifica el propsito de la asociacin y
pueden ser unidireccionales o bidireccionales (indicando si los dos objetos participantes en la
relacin pueden intercambiar mensajes entre s, o es nicamente uno de ellos el que recibe
informacin del otro). Cada extremo de la asociacin tambin tiene un valor de
multiplicidad, que indica cuntos objetos de ese lado de la asociacin estn relacionados con
un objeto del extremo contrario.

En UML, las asociaciones se representan por medio de lneas que conectan las clases
participantes en la relacin, y tambin pueden mostrar el papel y la multiplicidad de cada
uno de los participantes. La multiplicidad se muestra como un rango [mn...mx] de valores
no negativos, con un asterisco (*) representando el infinito en el lado mximo.

131
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Representacin visual de una asociacin en UML
Imagen extrada de la direccin:
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

2.1.7. Agregacin

Las acumulaciones son tipos especiales de asociaciones en las que las dos clases
participantes no tienen un estado igual, pero constituyen una relacin completa. Una
acumulacin describe cmo se compone la clase que asume el rol completo de otras clases
que se encargan de las partes. En las acumulaciones, la clase que acta como completa,
tiene una multiplicidad de uno.

En UML, las agregaciones estn representadas por una asociacin que muestra un rombo en
uno de los lados de la clase completa.

Representacin visual de una relacin de acumulacin en UML


Imagen extrada de la direccin:
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

2.1.8. Composicin

Las composiciones son asociaciones que representan acumulaciones muy fuertes. Esto
significa que las composiciones tambin forman relaciones completas, pero dichas relaciones
son tan fuertes que las partes no pueden existir por s mismas. nicamente existen como
parte del conjunto, y si este es destruido las partes tambin lo son.
En UML, las composiciones estn representadas por un rombo slido al lado del conjunto.

Imagen extrada de la direccin:


http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

132
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ejemplo 1

Ejemplo 2

Nos muestra una vista de la aplicacin en un determinado momento, es decir, en un instante


en que el sistema est detenido. Las clases son la plantilla de los objetos, y aqu podemos
ver representados estos con sus atributos o caractersticas y su comportamiento o mtodos,
as como la relacin entre ellas.

133
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Imagen extrada de la direccin:
http://www.elguille.info/colabora/puntoNET/canchala_UML.htm
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

134
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ejemplo: 3

Una empresa desea crear una base de datos para el manejo de sus ventas Este
maneja las siguientes condiciones:

Del personal involucrado en las ventas se conoce la cedula el nombre y la direccin.


Los empleados y los vendedores pueden ser clientes ya que estos pueden comprar
los productos de la empresa con la que trabajan teniendo un descuento especial por
ser de la empresa.
De los empleados se tiene un salario, horario y retencin.
De los vendedores conocemos la comisin y rea de venta.
De los clientes tambin se tiene un crdito mximo.
De los proveedores se tiene el tiempo de servicio.
Una factura para un cliente atendida por un empleado debe tener un vendedor y
varios productos.
Los proveedores despachan materiales utilizados para los productos siendo posible
que un material sea despachado por varios proveedores.

Completar los dems supuestos semnticos que hacen falta para construir el modelo
orientado a objetos o el diagrama de clases. Ubicando las clases, subclases, objetos,
herencia simple y herencia mltiple si la hay.

Solucin en un diagrama de clases

135
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Para complementar este tema de cmo construir un diagrama de clases visitar esta direccin.

http://cesar.crbyte.com/apuntes/2_tecnicas_modelado.pdf
Obtenida en la Fecha: Noviembre 16 de 2008 hora: 9.30 am

Colabora.net, Ejemplo sencillo sobre el modelado de un proyecto, Obtenida en la Fecha:


Noviembre 16 de 2008 hora: 9.30 am
http://www.elguille.info/colabora/puntoNET/canchala_UML.htm
Ibid pg. 10
Ibid pg. 10
Ibid pg. 10
Ibid pg. 10
8 http://es.wikipedia.org/wiki/Diagrama_de_clases, Obtenido en Internet el 16 de
Noviembre de 2008. Hora: 9.50 am.
Elementos de UM, Obtenido en Internet el 16 de Noviembre de 2008. Hora: 9.50 am.
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html,

136
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Glosario

GLOSARIO

Actualizacin en cascada: actualizacin lgicamente y localizadas sobre una red de


automtica de las entidades, en una relacin computadores.
externa, cuando se modifica la
correspondiente entidad de la relacin Base de datos orientadas a objetos:
principal. Almacena datos y relaciones con el
paradigma de la orientacin a objetos.
ADO: Objetos de acceso a datos.
Base de datos relacionales: Conjunto
Algebra relacional: Lenguaje de consulta para lade
s tablas relacionadas entre ellas.
bases de datos.
Base de datos: Combinacin del
Anomala de actualizacin: Problemas esquema de y los datos almacenados.
con la manipulacin de los datos de un
modelo pobremente diseado. Bit: Digito binario o elemento mnimo de
informacin
Aplicacin de bases de datos:
Formularios e informes con los que Byte: Conjunto de bits que se tratan como
interacta el usuario. unidad, generalmente se componen de 8
bits.
Archivo maestro: Archivos creados por
medio de programacin. Cabecera de una relacin: La definicin
de atributos y dominios en la parte
Asociacin binaria: Una asociacin entre superior de una relacin.
dos entidades participantes.
CAD: Diseo asistido por computador.
Asociacin ternaria: Una asociacin que
tiene tres participantes. Campo: rea de trabajo que puede
almacenar uno o varios datos.
Asociacin unaria: Una asociacin Ejemplo: En el campo NOMBRE se
establecida con una misma entidad. almacena: Carlos Alberto Garca".

Asociacin: Una relacin establecida Carcter: Es la menor unidad de


entre dos entidades. informacin.

Atributo: Una cualidad de la entidad o Cardinalidad de una asociacin: El


una columna para una tabla. nmero mximo de ejemplares de una
entidad que puede participar en una
Base de datos distribuidas: Coleccin relacin.
de varias bases de datos interrelacionadas
Cardinalidad de una relacin: Nmero derecha que coinciden con la condicin de
de filas de una relacin. combinacin.

CASE: Ingeniera del software asistida por Combinacin interna: Incluye todos los
computador. registros de ambas tablas que coinciden
con la condicin de combinacin.
Clase derivada: Clase que hereda
caractersticas de otra clase. Combinacin natural: Si las columnas se
llaman igual y se elimina una de ellas el
Clase: Representacin abstracta, plantilla operador de comparacin debe ser el
de un conjunto de objetos. igual.

Clusula: Comandos del SQL para la Combinacin teta-Join: Unin basada en


manipulacin de la base de datos. un operador lgico diferente al igual
Combinacin.
Clave alterna o secundaria: Una clave
que no se utiliza como clave principal. Combinacin: Concatenacin de o mas
tablas en la manipulacin de la base de
Clave candidata: Uno o mas atributos datos.
que identifican de forma nica una
relacin Conjunto de registros: Representacin
fsica de una relacin.
Clave compuesta: Una clave candidata
compuesta por dos o mas atributos. Consulta: Resultado que se obtiene de la
base de datos.
Clave fornea: Es una clave primaria que
esta en otras tablas fuera de aquella a DBA: Administrador de bases de datos.
donde corresponde.
DBGS o DBMS: Sistema Gestor de Bases
Clave primaria: Clave candidata de una de datos.
relacin que se utiliza para identificar de
forma inequvoca los registros de una DDBMS: Sistema manejador de bases de
tabla. datos distribuidas.

Combinacin externa completa: DDL: Lenguaje de definicin de datos.


Devuelve todos los registros de ambas
tablas y combina en un solo registro Dependencia funcional: Es la relacin
aquellos que coinciden con la condicin de que hay entre los atributos.

Combinacin externa derecha: Incluye Descomposicin sin prdidas: La


todos los registros de la tabla de la capacidad de dividir relaciones de tal
derecha y los registros de la tabla de la forma que se puedan recombinar sin
izquierda que coinciden con la condicin prdida de informacin.
de combinacin.
Diferencia relacional: Son los registros
Combinacin externa izquierda: que esta en una primera tabla y no estn
Incluye todos los registros de la tabla de la en la segunda tabla.
izquierda y los registros de la tabla de la

138
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
DML: Lenguaje de manipulacin de datos. Grado de una relacin o tabla: Es el
Dominio: Intervalo de valores del que se nmero de columnas que tiene una tabla o
puede obtener un atributo. relacin.
Herencia mltiple: Cuando la clase
Dominios compatibles en tipo: proviene de varios padres.
Dominios que se pueden comparar
lgicamente. Herencia simple: Cuando la clase
proviene de un solo padre.
Entidad dbil: Es aquella que solo puede
existir de la destruccin de una relacin de Herencia: Caractersticas que se heredan.
muchos a muchos. Informacin: Son los datos organizados
de tal forma que son tiles para la toma
Entidad participante: Son las entidades de desiciones.
que relacionan las entidades dbiles.
Informe ad hoc: Informe configurado por
Entidad: Cualquier cosa sobre la que el el usuario despus de la implementacin
sistema debe almacenar informacin. de una base de datos.

Equi-unin: Una unin entre dos tablas Integridad de los datos: Son las reglas
basadas en la igualdad. utilizadas por una base de datos para
asegurar que los datos son correctos.
Espacio del problema: La parte del
mundo real que se modela en una Integridad referencial: Aseguran que
aplicacin de bases de datos. las asociaciones entre las tablas son
validas.
Esquema de bases de datos: La Interseccin relacional: Una operacin
disposicin fsica en las tablas de la base relacional que devuelve los registros
de datos. comunes que hay entre dos tablas.

Evento: Cosas que suceden al ejecutar Mensajes: Son las llamadas a las
una accin. funciones.

Fragmentacin horizontal: Es la divisin Mtodos: Son funciones o


de la tabla por registros dada una procedimientos.
condicin.
Modelo de red: Representacin de la
Fragmentacin mixta: Es la divisin de informacin Cuando un registro proviene
la tabla por campos y luego por registros o de varios padres y las relaciones son por
viceversa. medio de apuntadores y enlaces.

Fragmentacin vertical: Es la divisin Modelo entidad relacin:


de la tabla por campos. Representacin visual de la informacin en
entidades y relaciones.
Fragmentacin: Divisin de una tabla en Modelo jerrquico: Representacin de la
varias fracciones. informacin Cuando un registro proviene
de un solo padre y las relaciones son por
medio de apuntadores y enlaces.

139
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Modelo orientado a objetos: Proyeccin relacional: Una operacin
Representacin visual de la informacin relacional que separa columnas de una
con orientacin a objetos. tabla.

Modelo relacional: Representacin de la RDO: Objetos de datos remotos.


informacin en tablas relacionadas.
Registro: Es un conjunto de campos
Modelos de datos: Descripcin relacionados.
conceptual de un espacio del problema.
Relacin base: Tabla de la base de datos.
Modelos lgicos basados en objetos:
La informacin se representa con objetos. Relacin: Es la asociacin nombrable y
significativa que hay entre dos entidades.
Modelos lgicos basados en registros: a una tabla tambin se le conoce como
La informacin se representa en registros. relacin.

MOO: Modelo orientado a objetos Restriccin de base de datos: Condicin


que debe cumplir la base de datos.
Normalizacin: Es la divisin sucesiva de
tablas a una forma mas agradable y Restriccin de negocios: Una condicin
entendible y no se pierde informacin. dada por el espacio del problema.

Objeto conceptual: Representa cosa en Seleccin relacional: Una operacin


forma general. relacional que separa registros de una
tabla dada una condicin.
Objeto fsico: Representa cosa en forma
especfica. Sistema de bases de datos: Es todo el
conjunto que se utiliza para crear la base
Objeto: Conjunto de atributos que de datos.
describen con eficacia una entidad.
Sistema multidatabase: Soporta
ODBC: Conexin abierta de bases de operaciones sobre mltiples bases de
datos. datos.

OODB: Bases de datos orientadas a SQL: Lenguaje de consulta estructurado.


objetos.
Tabla de fragmentacin: Es el nmero
OODBMS: Sistema manejador de bases de veces que una transaccin se da un
de datos orientadas a objetos. determinado sitio.

POO: Programacin orientadas a objetos. Tabla de polarizacin: Es la probabilidad


que hay de que una transaccin se de un
Producto cartesiano: Una operacin determinado sitio sobre un fragmento.
relacional que combina cada registro de
una tabla con cada registro de la segunda Tabla: Ejemplificacin fsica de una
tabla. relacin en el esquema da la base de
datos.

140
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Tipos de datos: Son los diferentes datos
que se pueden almacenar.

Tupla: Son los registros de una tabla.

UML: modelo de datos unificado.

Valores nulos: Son los campos que se


dejan sin valor y son diferentes de 0 y
cadena vaca.

Vista: Son tablas virtuales de la base de


datos.

141
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Bibliografa

Bibliografa

Documento editado por Oralia Corts apoyada en la siguiente bibliografa:

1. C.J Date. Addison-Wesley. Introduccin a los Sistemas de Bases de Datos.


2. De Miguel, Adoracin; Piattini, Mario. Fundamentos y modelos de Bases de Datos.
3. Gary W,Hansen; James V,Hansen. Diseo y administracin de Bases de Datos. Prentice
Hall, 1997. 834 p.
4. Henry F. Korth, Abraham Silberschatz. Fundamentos de Bases de Datos. McGrawHill.
Segunda Edicin.
5. Joyanes Lus, Programacin orientada a objetos, Mc Graw Hill 1998
6. Korth, Henry ; Siberschatz, Abram. Fundamentos de Bases de datos. Mc Graw Hill.
7. Rocha, Mario. Modelo entidad relacin. Documento
Cibergrafa

Cibergrafa

Anlisis comparativo de bases de datos de Cdigo abierto vs. Cdigo cerrado


Obtenida en la Fecha: Noviembre 16 de 2008 hora: 14.36
http://www.monografias.com/trabajos35/comparativa-bases-datos/comparativa-bases-
datos.shtml#tendenc
Circuitos Electrnicos, practicas mas, Bases de datos y normas de Calidad. Obtenido en
Internet el Fecha Septiembre 27 de 2008 hora: 10 pm
http://www.galeon.com/konnan2001/ERE.htm
Colabora.net, Ejemplo sencillo sobre el modelado de un proyecto, Obtenida en la Fecha:
Noviembre 16 de 2008 hora: 9.30 am
http://www.elguille.info/colabora/puntoNET/canchala_UML.htm
Dependencia funcional e independencia, manual de la Universidad de Mlaga. Obtenido
en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://ftp.medprev.uma.es/libro/node33.htm
Diseo de base de datos distribuida, Obtenida en la Fecha: Noviembre 16 de 2008 hora:
9.30 am http://www.cs.cinvestav.mx/SC/prof_personal/adiaz/Disdb/Cap_3.html
Diseo de una base de datos distribuida, Obtenida en la Fecha: Noviembre 16 de 2008
hora: 9.30 am http://usuarios.lycos.es/jrodr35/tipos.htm
Documentacin de SQL Server 2005. Obtenido en Internet el 23 de Octubre de 2008.
Hora: 9.50 pm. http://msdn.microsoft.com/es-es/library/ms203721(sql.90).aspx
Elementos de UML, Obtenido en Internet el 16 de Noviembre de 2008. Hora: 9.50 am.
http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html,
ESCOM, fundamentos tericas de bases de datos distribuidas, Obtenida en la Fecha:
Noviembre 16 de 2008 hora: 14.36
http://www.geocities.com/ddbqp/#_1.1_Introduccin
http://es.wikipedia.org/wiki/Diagrama_de_clases, Obtenido en Internet el 16 de
Noviembre de 2008. Hora: 9.50 am.
http://www.calasanz-pereira.edu.co/prueba/html/modules/Access/normalizacion.htm
http://www.monografias.com/trabajos11/basda/basda.shtml
Instituto tecnolgico de Colima. Obtenido en Internet el Fecha Septiembre 27 de 2008
hora: 10 pm http://labredes.itcolima.edu.mx/fundamentosbd/sd_u2_2.htm
Introduccin a los conceptos de Bases de Datos. Obtenido en Internet el 22 de agosto de
2008. Hora: 10.05 pm.
http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_12.htm
Introduccin a los Sistemas de Base de Datos. Obtenido en Internet el 22 de agosto de
2008. Hora: 10.05 pm. http://www.temas-estudio.com/base-de-datos/
Introduccin a los Sistemas de Base de Datos. Obtenido en Internet el Fecha Septiembre
27 de 2008 hora: 10 pm http://www.temas-estudio.com/base-de-datos/
Introduccin a los Sistemas de Base de Datos. Obtenido en Internet el Fecha Septiembre
27 de 2008 hora: 10 pm http://www.monografias.com/trabajos34/base-de-datos/base-
de-datos.shtml
Las 12 reglas de Codd. Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://www.atpsoftware.net/Public/Articulos.php
Marqus Andrs, Mara Mercedes. Ciclo de vida de las aplicaciones de bases de datos.
Obtenido en Internet el 22 de agosto de 2008. Hora: 10.05 pm.
http://www3.uji.es/~mmarques/f47/apun/node67.html
Microsoft SQL Server 2005, Express edition, Obtenido en Internet el 23 de Octubre de
2008. Hora: 9.50 pm.
http://www.desarrollaconmsdn.com/msdn/CursosOnline/Curso_SQL_Server/index.html
Normalizacin de base de datos, Prof. Manuel Torres Remon. Obtenido en Internet el 23
de Octubre de 2008. Hora: 9.50 pm.
http://www.monografias.com/trabajos5/norbad/norbad.shtml
Normalizacin de Bases de Datos. Obtenido en Internet el 23 de Octubre de 2008. Hora:
9.50 pm. http://www.trucostecnicos.com/trucos/ver.php?id_art=278
Obtenida en la Fecha: agosto 17 de 2008 hora: 14.36
http://perso.wanadoo.es/aldomartin1/noreyalre.htm
Programa Microsoft desarrollador de software cinco estrellas, estrella 0 introduccin a la
programacin orientacin a objetos en C# y visual Basic.Net Obtenido en Internet el 16
de Noviembre de 2008. Hora: 9.50 am.
http://download.microsoft.com/download/F/A/C/FAC370F4-7D37-4899-A461-
D27ABC99C615/DCE0_ProgramacionOO_C%23_VBNET.ppt
Sistema de bases de datos distribuidas, Obtenida en la Fecha: Noviembre 16 de 208
hora: 14.36 http://docente.ucol.mx/vpc1052/public_html/Expo%20SBDD.doc
SQL Server TechCenter. Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://technet.microsoft.com/es-es/library/ms191236.aspx
Tecnicas bsicas del modelado de objetos, Obtenida en la Fecha: Noviembre 16 de 2008
hora: 9.30 am http://cesar.crbyte.com/apuntes/2_tecnicas_modelado.pdf
Trejo Martnez, Janhil Aurora. Bases de datos. Obtenido en Internet el 22 de agosto de
2008. Hora: 10.05 pm.
Universidad Calasanz de Pereira. Normalizacin. Obtenido en Internet el Fecha
Septiembre 27 de 2008 hora: 10 pm
Universidad Distrital francisco Jos de Caldas. De Base de Datos. Obtenido en Internet el
22 de agosto de 2008. Hora: 10.05 pm. http://groups.msn.com/el-
ch/modelosdedatos.msnw
Universidad Distrital francisco Jos de Caldas. Modelo entidad Relacin. Obtenido en
Internet el 22 de agosto de 2008. Hora: 10.05 pm.
http://gemini.udistrital.edu.co/comunidad/profesores/rfranco/modelo_er.htm
Universidad Nacional de Colombia. Visin de los Datos. Obtenido en Internet el 22 de
agosto de 2008. Hora: 10.05 pm.
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060029/lecciones/cap1-6.html
You Tobe ideos, Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://es.youtube.com/watch?v=IPKl19SbiYQ
You Tobe ideos, Obtenido en Internet el 23 de Octubre de 2008. Hora: 9.50 pm.
http://es.youtube.com/watch?v=AIn8inZInAQ

144
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica

También podría gustarte