Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Basesde Datos
Basesde Datos
Proyecto P.A.V.
Plataforma de Aprendizaje Virtual
Vicerrectora Acadmica
Proyecto P.A.V.
Plataforma de Aprendizaje Virtual
MDULO VIRTUAL BASES DE DATOS
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
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
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
. Ibid., p. 6.
4
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Tipos de 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.
. Ibd., p. 6.
5
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Componentes que integran un
sistema de 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.
7
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
6. Ventajas y desventajas de una
base de datos
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.
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?
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:
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 .
. 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.
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.
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.
Figura 1
12
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
8. 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 .
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
Algunos ejemplos de manejadores de bases de datos son: Dbase, Fox, Access, Informix,
Unify, Oracle, Internase
14
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
9. Lenguaje de consulta
estructurado (SQL)
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.
15
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
10.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.
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
17
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
11.Modelo de datos
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.
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
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
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
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
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
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.
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?
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
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.
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
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.
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).
Es toda cosa u objeto significativo (real imaginario) del cual se requiere conocer
almacenar informacin.
Toda entidad se representa por medio de un rectngulo con el nombre de la entidad dentro
del rectngulo en maysculas.
Ejemplo
Es el paso central del proceso de modelo entidad relacin. Los diversos tipos de entidades
son:
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
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.
Toda relacin tiene dos extremos y para cada uno de los cuales existen:
Un grado de cardinalidad
29
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
1:1 uno a uno
30
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
N:M muchos a muchos
31
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.2.3. Una condicin opcional mandatoria
Cada estudiante debe inscribirse en uno ms club Y cada club puede tener uno ms
estudiantes.
32
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.2.4. RELACIONES RECURSIVAS
Para este tipo de relaciones tambin se tiene en cuenta las reglas anteriores como:
Cada cliente puede recomendar uno y solo un cliente y cada cliente puede ser
recomendado por uno y solo un cliente.
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.
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:
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
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:
1. Se destruye toda relacin N:M que tenga el modelo para que quede 1:N.
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.
39
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Otros conceptos para el modelo
entidad relacin
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.
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:
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:
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.
44
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
ENTIDAD
CLIENTE
PELCULAS
TIPO_PEL
ACTORES
CASETE
ALQUILER
45
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
5. Un modelo ER de Propietarios de Taxis Conductores y Empresas
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
Codd daba 12 reglas que debe cumplir cualquier base de datos que desee considerarse
relacional:
1. Regla de informacin:
Todos los datos de una base de datos relacional se representan explcitamente (al nivel
lgico) como valores de tablas.
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.
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.
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:
Todas las vistas que puedan utilizarse son tambin actualizables por el sistema.
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.
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.
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.
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.
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.
Debido a que las tablas son bsicamente relaciones se utilizan los trminos matemticos
relacin y tupla en lugar de los de tabla y fila.
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:
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.
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:
55
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4. Reglas De Integridad (RI)
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
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.
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.
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.
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?
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.
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.
62
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Tercero -> NSS
{Tercero,NSS} -> Nombre
5.2. Qu es la normalizacin?
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.
63
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
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.
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.
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.
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.
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:
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:
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.
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
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:
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
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.
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:
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
Una vez conseguida la segunda forma normal, se puede estudiar la cuarta forma normal.
Una tabla est en cuarta forma normal si y slo si para cualquier combinacin clave - campo
no existen valores duplicados. Vemoslo con un ejemplo:
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.
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:
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
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.
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.
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.
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.
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.):
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.
Decimal, numeric:
p (precisin)
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.
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.
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
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.
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.
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.
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:
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.
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:
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...":
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:
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.
Restriccin CHECK
Restriccin DEFAULT
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:
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.
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*/
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
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
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
use Construccion
96
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
check(Estrato >= 1 and Estrato <= 7),
primary key (Cod_Area))
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)
98
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ya podemos manipular la base de datos
Usando la clusula FROM cules son las tablas, vistas, funciones, tablas derivadas o
expresiones de tablas comunes que se utilizan en la instruccin SELECT.
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.
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):
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.
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:
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.
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:
Por ejemplo, la siguiente sentencia T-SQL devolvera la cantidad de productos pedidos por
cliente mayor que 5 en la base de datos MSDN:
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.
104
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
3.3. Consultas de modificacin
Sentencia INSERT
DELETE Sales.SalesOrderDetail
WHERE SalesOrderID = 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.
/*Hallar los nombres de los trabajadores que tienen un valor hora mayor que
10000*/
select nombre
from tbltrabajador
where valor_hora>10000
/*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 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)
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'))
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))
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
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.
112
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.2. Crear procedimientos almacenados
CREATE PROCEDURE
Clientes_GetAll
AS
SELECT Id, Nombre FROM
dbo.Clientes
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:
113
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
'y escribimos el nombre del stored procedure a invocar
myComm.CommandText = "Clientes_GetAll"
'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)
CREATE PROCEDURE
Clientes_GetOne
@Id int
AS
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 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)
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.
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.
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.
117
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.7. Triggers DML: AFTER
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.
118
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
4.8. Triggers DDL: a nivel de base de datos
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:
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:
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.
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:
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.
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:
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:
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.
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.1. Abstraccin
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
1.3.3. Encapsulamiento
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.
1.4. Polimorfismo
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
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.
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:
129
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
- Indica atributos privados
2.1.3. Operaciones
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
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.
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.
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.
132
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Ejemplo 1
Ejemplo 2
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:
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.
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
136
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Glosario
GLOSARIO
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.
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.
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.
140
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Tipos de datos: Son los diferentes datos
que se pueden almacenar.
141
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica
Bibliografa
Bibliografa
Cibergrafa
144
Tecnolgico de Antioquia Institucin Universitaria
Vicerrectora Acadmica