You are on page 1of 85

Tema V: Tecnologa de bases de datos ..............................................................................................................

3
1. Organizacin de los Datos.......................................................................................................................... 3
1.1. Tipos de organizacin de datos .......................................................................................................... 3
1.2. Tipos de acceso a los datos................................................................................................................. 4
2. Sistema tradicional de archivos .................................................................................................................. 5
3. Sistema de Bases de Datos ......................................................................................................................... 6
4. Modelos de Base de Datos ........................................................................................................................ 9
4.1. Modelo jerrquico de datos ................................................................................................................. 9
4.2 Modelo de datos en red ...................................................................................................................... 10
4.3. Modelo relacional de datos............................................................................................................... 11
4.4. Ventajas y desventajas de los tres modelos de bases de datos ........................................................ 13
5. Modelos de Datos Conceptuales (Semnticos) ........................................................................................ 15
5.1. Elementos del Modelo Entidad-Relacin ......................................................................................... 15
5.2. Diagramas Entidad - Relacionamiento (objetos de datos y sus relaciones) ..................................... 16
5.3. Modelo de Datos .............................................................................................................................. 17
Fases de la Metodologa para la estructuracin de los datos ................................................................ 17
5.4. Definicin de Conceptos del Modelo Entidad Relacionamiento....................................................... 18
Entidades .............................................................................................................................................. 18
Clasificacin de las Entidades. ............................................................................................................. 19
Atributos............................................................................................................................................... 19
Identificador ......................................................................................................................................... 20
Atributos de Multivalor ........................................................................................................................ 21
5.5. Relacionamientos (Asociacin)........................................................................................................ 21
Grado de un relacionamiento................................................................................................................ 21
Gerundios ............................................................................................................................................. 23
Conectividad (Cardinalidad) en el relacionamiento ............................................................................. 23
Cardinalidad Mnima y Mxima........................................................................................................... 23
Dependencia de Existencia................................................................................................................... 24
Comentarios sobre el Relacionamiento ................................................................................................ 24
5.6 Modelamiento de atributos multivalor ............................................................................................... 26
5.7. Datos Dependientes del Tiempo....................................................................................................... 27
5.8. Generalizacin - Especializacin ...................................................................................................... 28
Subtipos Y Supertipos .......................................................................................................................... 28
Tema VI: Enfoque de Bases de Datos en el Diseo de Sistemas ..................................................................... 30
1. Estrategia de Diseo de la Base de Datos ................................................................................................ 30
1.1. Diagrama de las fases del enfoque de bases de datos....................................................................... 30
FASE I: Generacin del Modelo Conceptual ........................................................................................... 30
FASE II: Generacin del Modelo Conceptual Cannico ......................................................................... 31
Proceso de Normalizacin................................................................................................................ 31
Primera Forma Normal (1 FN):................................................................................................... 31
Segunda forma normal (2 FN)..................................................................................................... 32
Tercera forma normal (3 FN) ....................................................................................................... 32
Relaciones muchos a muchos ....................................................................................................... 32
Eliminacin de Relaciones Redundantes (o loop) ........................................................................ 33
Relaciones Redundantes................................................................................................................... 33
Herencia........................................................................................................................................ 35
Fase III: Modelo de Procesos de Datos .................................................................................................... 35
2. Modelo Relacional .................................................................................................................................. 40
2.1. Tablas ................................................................................................................................................ 40
2.2. Relacin............................................................................................................................................. 40
2.3. Tablas relacionales ............................................................................................................................ 40
2.4. Claves ................................................................................................................................................ 40
2.5. Operaciones sobre Tablas.................................................................................................................. 40
Profesor. Oscar Saavedra Rodrguez 1
Seleccin. ............................................................................................................................................. 40
Proyeccin. ........................................................................................................................................... 40
Diferencia. ............................................................................................................................................ 40
Producto cartesiano. ............................................................................................................................. 41
Join. ...................................................................................................................................................... 41
3.1. Reglas De Transformacin ................................................................................................................ 42
Tema VII: Lenguaje de programacin SQL..................................................................................................... 46
1. Ejemplo de comandos DDL. ................................................................................................................... 48
2. Ejemplo de comandos DML.................................................................................................................... 52
2.1. INSERT............................................................................................................................................ 52
Insercin de un solo registro. ............................................................................................................... 52
Insercin de un solo registro, omitiendo nombres de campos.............................................................. 53
Insercin de un solo registro. ............................................................................................................... 53
2.2. UPDATE (ACTUALIZAR) .............................................................................................................. 54
Modificacin de un solo registro.......................................................................................................... 54
Modificacin de varios registros. ......................................................................................................... 54
2.3. DELETE (ELIMINAR).................................................................................................................... 54
Eliminacin de un solo registro............................................................................................................ 55
Eliminacin de varios registros. ........................................................................................................... 55
3. Ejemplo de comandos DML.................................................................................................................... 56
3. SELECT [ ALL | DISTINCT ] select-list................................................................... 56
1. Tecnologas Web para el Desarrollo de Sistemas de Informacin ........................................................... 68
1.1. Lenguaje de Hipertexto Basado en Marcas (HTML) ....................................................................... 68
1.1.1. Pginas Estticas y Dinmicas.................................................................................................. 69
1.1.2. Herramientas para la Construccin de Pginas Web ................................................................ 69
1.2. Lenguaje de Marcas Extensibles (XML).......................................................................................... 71
1.3. Herramientas para Pginas Web Personales (PHP).......................................................................... 73
1.4. MySQL............................................................................................................................................. 74
1.5. Java................................................................................................................................................... 74
2. Aplicacin de UML en el Modelado de un Sistema de Informacin de Gestin del Recurso Humano... 76
2.1. Contexto de la Situacin................................................................................................................... 76
2.2. Modelo de Proceso de Negocios ...................................................................................................... 77

Profesor. Oscar Saavedra Rodrguez 2


Tema V: Tecnologa de bases de datos

1. Organizacin de los Datos

Un sistema de informacin eficaz proporciona a los usuarios informacin oportuna,


precisa y relevante. Esta informacin se almacena en archivos de computadora. Cuando
los archivos estn adecuadamente ordenados y mantenidos, los usuarios pueden acceder
y recuperar fcilmente la informacin que requieren. Los archivos bien administrados y
cuidadosamente ordenados facilitan la obtencin de datos para apoyar la toma de las
decisiones, mientras que los archivos pobremente administrados llevan a un caos en el
procesamiento de la informacin, con altos costos, un desempeo pobre y muy poca, si
es que alguna, flexibilidad. A pesar del uso de hardware y software excelentes, muchas
instituciones cuentan con sistemas de informacin ineficientes a causa de una pobre
administracin de archivos.

En un sistema computacional se organizan los datos con una jerarqua que se inicia con
los bits y los bytes y avanza hacia los campos, registros, archivos y las bases de datos.

Jerarqua Definicin Ejemplo


Base de Datos (BD) Un grupo de archivos (tablas) BD Estudiantes: Archivo Curso;
relacionados puede constituir una Archivo Notas; Archivo Asignaturas
BD.
Archivos Un grupo de registros del mismo Archivo Curso:
tipo. Nombre; Cdigo; Fecha;
O Taylor Ind401 F20-03-23
K Vincen Ind305 F20-04-21
S Watt Ind405 F20-05-27
Registro Un grupo de campos relacionados Nombre; Cdigo; Fecha
O Taylor Ind401 F20-03-23
Campo Una agrupacin de caracteres en O Taylor (Nombre campo)
una palabra, grupo de palabras o
nmero completo.
Byte Carcter individual, puede ser un 10101010 (letra J en ASCII)
nmero, una letra o cualquier otro
smbolo.
Bit Unidad ms pequea de datos que 1
la computadora puede manejar.
----------------------------------- ----------------------------------- ----------------------------------
Entidad Es una persona, lugar, concepto, Cuenta Corriente: es una entidad
cosa o hecho sobre el que se tpica en un sistema financiero o
conserva informacin. crdito.
Atributo Elemento de informacin que Por ejemplo, nmero de la cuenta
describe a una entidad particular. corriente

1.1. Tipos de organizacin de datos

En los sistemas de cmputo se almacenan los archivos en dispositivos de


almacenamiento secundario. Los registros pueden ser ordenados de diversas maneras en
los medios de almacenamiento y la disposicin determina la manera segn la cual los
registros individuales pueden ser accesados o recuperados. Los tipos de organizacin de
datos son:
Profesor. Oscar Saavedra Rodrguez 3
Organizacin secuencial de archivos: un mtodo de almacenar registros en donde
stos deben ser recuperados en la misma secuencia fsica en la que se
almacenan. Es el nico mtodo de organizacin de archivos que puede ser usado
en cintas magnticas. Se usa todava en aplicaciones de procesamiento por lotes
en donde accesan y procesan secuencialmente cada registro.

Organizacin directa o aleatoria de archivos: mtodo de almacenar registros en


donde stos pueden ser accesados en cualquier secuencia, independientemente
de su orden fsico real en los medios de almacenamiento. Se utiliza con la
tecnologa de los discos magnticos (aun cuando los registros en el disco se
pueden almacenar si se desea en orden secuencial).

1.2. Tipos de acceso a los datos

Mtodo de acceso secuencial indexado (MASI): aun cuando los registros pueden
ser almacenados secuencialmente en dispositivos de acceso directo, los registros
individuales pueden ser accesados directamente mediante el mtodo MASI. Este
mtodo de acceso descansa en un ndice de campos claves para localizar los
registros individuales. Un ndice es una tabla o listado que relaciona las claves de
los registros con las ubicaciones fsicas en los archivos de acceso directo. Es
semejante a un ndice de un libro, ya que enlista el campo clave de cada registro y
donde se ubica fsicamente tal registro en el almacenamiento para facilitar su
localizacin. Cualquier registro especfico puede ser localizado directamente
usando el campo llave para encontrar la direccin de su almacenamiento en el
ndice. El MASI se utiliza en aplicaciones que requieren de un procesamiento
secuencial de gran nmero de sus registros, pero que ocasionalmente necesitan
acceso directo de los registros individuales.

Mtodo de acceso directo a archivos: se usa con la organizacin de archivos


directos. Este mtodo emplea un campo llave para localizar la direccin fsica de
un registro. Sin embargo, el proceso se lleva a cabo sin un ndice. En vez de ello,
una expresin matemtica llamada algoritmo de transformacin se emplea para
traducir el campo clave directamente en la ubicacin en el almacenamiento fsico
del registro en el disco. El algoritmo de transformacin es una formula matemtica
usada para traducir el campo llave de un registro directamente en la ubicacin del
almacenamiento fsico de un registro. Este mtodo de acceso es el ms adecuado
para aplicaciones en donde los registros individuales deben ser localizados directa
y rpidamente para su procesamiento inmediato. Slo unos cuantos registros en el
archivo deben ser localizados en un instante dado, y los registros requeridos no se
encuentran en alguna secuencia en particular. Un ejemplo de ello podra ser un
sistema en lnea para reservaciones en hoteles.

Profesor. Oscar Saavedra Rodrguez 4


2. Sistema tradicional de archivos

En muchas instituciones el procesamiento de la informacin se inici a escala pequea,


automatizando una operacin a la vez. Los sistemas tienden a crecer de manera
independiente y no de acuerdo a un gran plan. De manera tpica, cada divisin de una
empresa desarroll sus propias aplicaciones. Dentro de cada divisin, cada rea funcional
tendi a desarrollar sistemas aisladamente de otras reas funcionales. Contabilidad,
finanzas, manufactura y mercadotecnia desarrollaron todos sus propios sistemas y
archivos de datos.

A medida que este proceso prosigue por 5 o 10 aos, la empresa queda atada por nudos
de su propia creacin. La institucin queda amarrada por cientos de programas y
aplicaciones, en donde nadie sabe qu hacen, qu datos usan, ni quin los usa. No existe
un listado central de los archivos de datos, elementos de datos o definiciones de los
datos. La institucin obtiene la misma informacin en demasiados documentos. Los
problemas resultantes son redundancia de datos, dependencia de datos por parte de los
programas, inflexibilidad, inconsistencia en los datos, seguridad muy pobre en los
programas e incapacidad para compartir datos entre las distintas aplicaciones.

Problemas del sistema tradicional de archivos

La redundancia de datos: es la presencia de datos duplicados en diversos


archivos de datos. La redundancia de datos ocurre cuando diferentes divisiones,
reas funcionales y grupos en una institucin captan de manera independiente el
mismo elemento de informacin.

La dependencia de los datos del programa: es la relacin estrecha entre los


datos almacenados en los archivos y los programas especficos que se requieren
para actualizar y mantener tales archivos. Todo programa de computadora debe
describir la localizacin y naturaleza de los datos con los que opera. Estas
declaraciones sobre los datos pueden ser ms largas que la parte substantiva del
programa. En un ambiente tradicional de datos, cualquier cambio en los datos
Profesor. Oscar Saavedra Rodrguez 5
requiere de un cambio en todos los programas que accesan los datos. En
consecuencia, el desarrollo de nuevas aplicaciones toma ms tiempo y cuesta
ms que cualquier otro cambio. Una gran parte del esfuerzo de programacin de la
institucin consiste en las actualizaciones de los elementos de datos que estn
dispersos por cientos de archivos. En muchas ocasiones, las aplicaciones operan
con datos no actualizados sencillamente a causa de la dificultad de actualizarlos.

Falta de flexibilidad: un sistema tradicional de archivos puede dar informes


programados de rutina luego de grandes esfuerzos de programacin, o pueden
proporcionar informes adecuados o responder a requerimientos no previstos de
informacin de manera oportuna. La informacin requerida por las solicitudes
adhoc est en alguna parte del sistema pero es demasiado caro recuperarla.

Seguridad pobre: como existe poco control o administracin de datos, el acceso


a ellos y la diseminacin de la informacin virtualmente quedan fuera de control.
Aquellas limitaciones al acceso tienden a ser el resultado de la costumbre y la
tradicin, as como de la fuerte dificultad para encontrar informacin.

Imposibilidad de compartir los datos y de su disponibilidad: la falta de control


sobre el acceso a los datos en este ambiente de confusin no facilita que las
personas obtengan la informacin. Como los elementos de informacin se
encuentran en diferentes archivos y en diferentes partes de la institucin no
pueden relacionarse entre s, y es virtualmente imposible que la informacin pueda
ser compartida o accesada de manera oportuna.

3. Sistema de Bases de Datos


Puede eliminar muchos de los problemas creados por la organizacin tradicional de
archivos.

Una Base de Datos es una coleccin de datos organizada para dar servicio a muchas
aplicaciones al mismo tiempo al combinar los datos de manera que aparezcan estar
en una sola ubicacin. En lugar de separar los datos en archivos separados para cada
aplicacin, los datos son almacenados en una sola ubicacin.
Sistema de Gestin de Bases de Datos (SGBD) o Data Base Management System
consiste en un conjunto de programas, procedimientos y lenguajes que nos
proporcionan las herramientas necesarias para trabajar con una base de datos. Los
Sistemas de gestin de base de datos son un tipo de software muy especfico,
dedicado a servir de interfaz entre la Base de Datos, el usuario y las Aplicaciones que
la utilizan. Incorporar una serie de funciones que nos permita definir los registros, sus
campos, sus relaciones, insertar, suprimir, modificar y consultar los datos.

Un SGBD es sencillamente el software que permite que una institucin centralice sus
datos, los administre eficientemente, y proporcione acceso a los datos almacenados
mediante programas de aplicacin. Tiene los siguientes elementos: un lenguaje de
definicin de datos; un lenguaje de manejo de datos y un diccionario de datos.

Profesor. Oscar Saavedra Rodrguez 6


Para disear una base de datos debemos establecer un proceso partiendo del mundo
real, de manera que sea posible plasmarlo mediante una serie de datos. La imagen que
obtenemos del mundo real se denomina modelo conceptual y consiste en una serie de
elementos que definen lo que queremos plasmar del mundo real en la base de datos. La
definicin de este modelo se denomina esquema conceptual y est compuesto de una
parte esttica llamada lenguaje de definicin de datos DDL (Data Definition Language),
donde se define la estructura de la base de datos y una parte dinmica denominada
lenguaje de manipulacin de datos DML (Data Manipulation Language)

Componentes de un ambiente de bases de datos

Objetivos de un Sistema Administrador de Base de Datos (DBMS):

Abstraccin de la informacin. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento fsico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de
archivos, este hecho se hace transparente al usuario. As, se definen varios niveles de abstraccin.

Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema


(fsico o lgico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven
de ella.

Redundancia mnima. Un buen diseo de una base de datos lograr evitar la aparicin de
informacin repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante,
en algunos casos la complejidad de los clculos hace necesaria la aparicin de redundancias.

Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, ser necesario
vigilar que aquella informacin que aparece repetida se actualice de forma coherente, es decir, que
todos los datos repetidos se actualicen de forma simultnea.

Seguridad. La informacin almacenada en una base de datos puede llegar a tener un gran valor. Los
SGBD deben garantizar que esta informacin se encuentra asegurada frente a usuarios
malintencionados, que intenten leer informacin privilegiada; frente a ataques que deseen manipular
o destruir la informacin; o simplemente ante las torpezas de algn usuario autorizado pero
Profesor. Oscar Saavedra Rodrguez 7
despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y
grupos de usuarios, que permiten otorgar diversas categoras de permisos.

Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos
almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por
usuarios descuidados, o cualquier otra circunstancia capaz de corromper la informacin almacenada.

Respaldo y recuperacin. Los SGBD deben proporcionar una forma eficiente de realizar copias de
seguridad de la informacin almacenada en ellos, y de restaurar a partir de estas copias los datos que
se hayan podido perder.

Control de la concurrencia. En la mayora de entornos (excepto quizs el domstico), lo ms


habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar
informacin, bien para almacenarla. Y es tambin frecuente que dichos accesos se realicen de forma
simultnea. As pues, un SGBD debe controlar este acceso concurrente a la informacin, que podra
derivar en inconsistencias.

Tiempo de respuesta. Lgicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos
la informacin solicitada y en almacenar los cambios realizados.

Ventajas de un DBMS:
Facilidad de manejo de grandes volmenes de informacin.
Gran velocidad en muy poco tiempo.
Independencia del tratamiento de informacin.
Seguridad de la informacin (acceso a usuarios autorizados), proteccin de informacin, de
modificaciones, inclusiones, consulta.
No hay duplicidad de informacin, comprobacin de informacin en el momento de introducir la
misma.
Integridad referencial el terminar los registros.

Inconvenientes de un DBMS:
El costo de actualizacin del hardware y software son muy elevados.
Costo (salario) del administrador de la base de datos es costoso.
El mal diseo de esta puede originar problemas a futuro.
Un mal adiestramiento a los usuarios puede originar problemas a futuro.
Si no se encuentra un manual del sistema no se podrn hacer relaciones con facilidad.
Generan campos vacos en exceso.
El mal diseo de seguridad genera problemas en esta.

Algunos Tipos de DBMS:

SGBD libres
PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD
MySQL Licencia Dual, depende el uso.
Firebird basada en la versin 6 de Interbase, Initial Developer's PUBLIC LICENSE Version 1.0.
SQLite (htto://www.sqlite.org SQLite) Licencia Dominio Pblico
DB2 Express-C (http://www.ibm.com/ar/businesscenter/catalogo/db2_express-c_phtml)
Apache Derby (http://db.apache.or/derby)

SGBD gratuitos
Microsoft SQL Server Compact Edition
Sybase ASE Express Edition para Linux (Edicin gratuita para Linux)
Algunos DBMS Comerciales:
Profesor. Oscar Saavedra Rodrguez 8
Advantage Database
dBase
FileMaker
Fox Pro
IBM DB2 Universal Database (DB2 UDB)
IBM Informix
Interbase de CodeGear, filial de Borland
MAGIC
Microsoft Access
Microsoft SQL Server
NexusDB
Open Access
Oracle
Paradox
PervasiveSQL
Progress (DBMS)
Sybase ASE
Sybase ASA
Sybase IQ
WindowBase

4. Modelos de Base de Datos

Existen distintos modos de organizar la informacin y representar las relaciones entre los
datos en una base de datos. Los SGBD convencionales usan uno de los tres modelos
lgicos de datos para hacer el seguimiento de las entidades, atributos y relaciones. Los
tres modelos lgicos principales de bases de datos son el jerrquico, de redes y el
relacional. Cada modelo tiene ciertas ventajas de procesamiento y tambin ciertas
ventajas de negocios.

4.1. Modelo jerrquico de datos

Una clase de modelo lgico de bases de datos que tiene una estructura arborescente. Un
registro se subdivide en segmentos que se interconectan en relaciones padre-hijo de uno
a muchos.

Los primeros SABD eran jerrquicos. El modelo jerrquico de datos presenta los datos a
los usuarios en una estructura arborescente. El SABD ms comn de tipo jerrquico es el
IMS de IBM (Information Management System). Dentro de cada registro, los elementos
de datos quedan organizados en partes llamados segmentos. Para el usuario cada
segmento se ve como un organigrama con el segmento de nivel superior llamado raz. Un
segmento superior se conecta de manera lgica con un segmento inferior en una relacin
de tipo padre-hijo. Un segmento padre puede tener ms de un hijo, pero un hijo slo
puede tener un padre.

La siguiente figura muestra una estructura jerrquica semejante a la que se emplea en los
sistemas de reservaciones de las lneas areas. El segmento raz es Origen, que
contiene informacin sobre los aeropuertos desde donde se originan los vuelos. El primer
hijo es Destino y contiene informacin sobre hacia dnde van los vuelos. El segundo
Profesor. Oscar Saavedra Rodrguez 9
hijo es Fecha (las lneas areas aceptan en general reservaciones con un ao de
anticipacin). El tercer hijo es nmero de vuelo porque en un da cualquiera puede
haber diversos vuelos a un solo destino. El cuarto hijo es Listas de pasajeros, que
contiene informacin sobre el pasajero (como nombre, telfono local, cundo se hizo la
reservacin, direccin de facturacin, forma de pago y, en algunos casos, nmero de
asiento).

Detrs de la imagen lgica de los datos hay una cantidad de enlaces fsicos y dispositivos
para ligar la informacin en un todo lgico. En los SABD lgicos, los datos estn
enlazados fsicamente mediante una serie de sealadores que forman cadenas de
segmentos de datos relacionados. Los sealadores son elementos de datos asociados a
los extremos de los segmentos de registros sobre el disco que dirige el sistema hacia los
registros relacionados. En el ejemplo, si la ruta fuera LGA (El aeropuerto La Guardia de
Nueva York), al final del segmento Origen se tendran una serie de sealadores hacia
todas los posibles destinos. A su vez, al final del segmento Destino se encuentran
sealadores hacia las fechas cuando la lnea rea vuela a este destino.

Como existen muchos aeropuertos desde donde se originan vuelos, sera conveniente
que el sistema pueda encontrar rpidamente el segmento raz adecuado, el aeropuerto de
origen. Mejor que leer cada segmento de datos (de los cuales hay millones) uno a la vez
hasta que el adecuado (el aeropuerto raz de origen) se encuentre, todos los aeropuertos
de origen pueden ser sacados en un ndice que contenga una lista y su localizacin
precisa en un disco. Una vez que este segmento raz es identificado, los sealadores
tomarn el mando para guiar la bsqueda de la base de datos.

93PS274 Jam es R am B haw an A1

97PS087 A lic e M e e ra B h a w a n A2

97PS086 A n ith a M e e ra B h a w a n A1

97PS085 Jose A2

A1 In g e n ie ra A 2 In g e n ie ra A1 In g e n ie ra A 2 In g e n ie ra
C o m e rc ia l C iv il In d u s tria l C o m e rc ia l C iv il In d u s ria l

4.2 Modelo de datos en red

El modelo de datos en red es una variacin del modelo de datos jerrquico. De hecho, las
bases pueden traducirse de jerrquicas a en redes y viceversa, con el objeto de optimizar
la velocidad y la conveniencia del procesamiento. Mientras que las estructuras describen

Profesor. Oscar Saavedra Rodrguez 10


relaciones de uno a muchos, las estructuras en redes describen datos lgicamente en
relaciones de muchos a muchos.

En una relacin de muchos a muchos en la que los SABD en redes tienen un desempeo
excelente es la relacin entre estudiantes y cursos (ver figura siguiente). Existen muchos
cursos en una universidad y muchos estudiantes se inscriben en muchos cursos.

Los datos de la figura anterior podran haber sido jerrquicamente estructurados. Pero
esto hubiera significado una gran redundancia y hubiera hecho ms lenta la respuesta a
ciertos tipos de solicitudes de informacin; el mismo estudiante hubiera aparecido en el
disco de cada curso que tomara en vez de en uno solo. Las estructuras en red reducen la
redundancia y, en ciertas situaciones (en las que existen relaciones muchos a muchos),
responden de manera ms rpida. Sin embargo, existe un precio por esta reduccin en
cuanto a redundancia e incremento de velocidad. El nmero de sealadores en las
estructuras de la red se incrementa rpidamente, haciendo el mantenimiento y la
operacin ms caros.

93PS274 James Ram Bhawan A1


A1 Ingeniera
Comercial
97PS087 Alice Meera Bhawan A2

97PS086 Anitha Meera Bhawan A1


A2 Ingeniera Civil
Industrial

97PS085 Jose Meera Bhawan A2

4.3. Modelo relacional de datos

El modelo relacional de datos, el ms reciente de estos modelos, supera algunas de las


limitaciones de los otros dos. El modelo relacional representa todos los datos en la base
de datos como sencillas tablas de dos dimensiones llamadas relaciones. Las tablas son
semejantes a los archivos planos, pero la informacin en ms de un archivo puede ser
fcilmente extrada y combinada. Algunas veces se llama archivos a las tablas.

Profesor. Oscar Saavedra Rodrguez 11


Tabla: Estudiante

Tabla: Disciplina

En la figura se muestra una tabla de proveedores, una de partes y una de pedidos. En


cada tabla, los renglones son registros nicos y las columnas son los campos. Otro
trmino para un rengln o registro es tupla. Con frecuencia, un usuario requiere
informacin de un nmero de relaciones para producir un reporte. Aqu se encuentra la
fuerza del modelo relacional, puede relacionar datos en cualquier archivo o tabla con
datos de otro archivo o tabla, siempre y cuando ambos compartan el mismo elemento.

Para demostrarlo, supngase que se desea encontrar en la base de datos relacional de la


figura los nombres y direcciones que nos pudieran abastecer con la parte nmero 137
152. Se necesita informacin de las dos tablas: la tabla de proveedores y la tabla de
partes. Ntese que estos dos archivos comparten un elemento de datos NUMERO-
PROVEEDOR.

En una base de datos relacional, se usan tres operaciones bsicas para desarrollar
conjuntos tiles de datos, seleccionar, proyectar y unir. La operacin seleccionar crea un
subconjunto que contiene todos los registros en el archivo que cumplen con un
determinado criterio. Seleccionar crea, en otras palabras, un subconjunto de renglones
que cumplen con determinados criterios. En el ejemplo, se desea seleccionar registros
(renglones) de la tabla de partes en donde el nmero de parte sea igual a 137 152.

La operacin juntar combina las tablas relacionales para proporcionar al usuario ms


informacin que la que se encuentra disponible en las tablas individuales. En el ejemplo,
se desea unir la ahora acortada tabla de partes (slo las partes de nmero 137 152) y la
tabla de proveedores en una nueva y nica tabla de resultados.

La operacin proyecto crea un subconjunto que consiste en columnas en una tabla, que
permiten al usuario crear nuevas tablas que contengan nada ms la informacin que se
requiera. En el ejemplo, se desea extraer de la nueva tabla de resultados slo las
columnas siguientes: NUMERO-PARTE, NUMERO-PROVEEDOR, NOMBRE-PROVEEDOR y DIRECCION-
PROVEEDOR.

Profesor. Oscar Saavedra Rodrguez 12


Entre los principales sistemas de administracin de bases de datos relacionales para la
macrocomputadoras se incluyen el Sybase de Sybase, DB-2 de IBM y el Oracle de la
Oracle Corporation, el FoxBase Flus de la Fox Software Inc., y el Paradox de la Borland
Internacional Inc, SQL Server y Access de Microsoft.

4.4. Ventajas y desventajas de los tres modelos de bases de datos

La principal ventaja de los modelos de bases de datos jerrquicos y red es la eficiencia en


el procesamiento. Por ejemplo, un modelo jerrquico es adecuado para sistemas de
procesamiento de operaciones de reservaciones en una lnea area, que debe manejar
millones de solicitudes rutinarias estructuradas cada da para informacin sobre
reservaciones.

Las estructuras jerrquica y de red tienen diversas desventajas. Todas las rutas de
acceso, directorios e ndices deben ser especificados por adelantado. Una vez
especificados, no se pueden cambiar fcilmente sin un esfuerzo importante de
programacin. Por tanto, estos diseos tienen poca flexibilidad. Por ejemplo, si se llama
a una lnea area y se dice: Mis padres me dieron un boleto de avin para un lugar
extraordinario de vacaciones, que sale del aeropuerto La Guardia de Nueva York, pero no
me dijeron exactamente dnde y cundo. Adnde me mandan?. Se podra descubrir
que no hay manera de que el sistema pueda encontrar la respuesta en un tiempo
razonable. Esta trayectoria en los datos no se especific por adelantado. O si el FBI
llamara a una de las lneas principales y le preguntara sobre los movimientos de los
ltimos seis meses de un terrorista sospechoso que viajara bajo cierto nombre supuesto,
la lnea area podra responder luego de varios meses de esfuerzos de programacin (los
registros se mantienen durante un perodo de cinco aos en cintas de respaldo).

Los sistemas jerrquicos y de redes requieren de una programacin intensiva,


consumidora de tiempo, difcil de instalar y ms difcil de corregir si ocurrieran errores de
diseo. No soportan consultas adhoc en ingls para informacin.

La fuerza de los SABD relacionales es la gran flexibilidad en cuanto a las consultas ad-
hoc, el poder de mezclar la informacin de fuentes distintas, sencillez en el diseo y
mantenimiento y capacidad de aadir nuevos datos a registros sin necesidad de perturbar
los programas y las aplicaciones ya existentes. La debilidad de los SABD relacionales es
su baja eficiencia relativa en el procesamiento. Estos sistemas son algo ms lentos
porque en general requieren de muchos accesos a los datos almacenados en disco para
llevar a cabo los comandos de seleccin, fusin y proyeccin. La seleccin de un nmero
entre millones, un registro a la vez, puede tomar gran cantidad de tiempo. Por supuesto,
la base de datos puede ser indexada y afinada para acelerar las consultas previamente
especificadas. Los sistemas relacionales no tienen el gran nmero de sealadores que
tienen los sistemas jerrquicos.

Las grandes bases de datos relacionales pueden disearse para tener alguna
redundancia en cuanto a los datos, con objeto de que la recuperacin sea ms eficiente.
El mismo elemento de datos puede almacenarse en distintas tablas. La actualizacin de
los elementos redundantes de datos no es una actividad automtica en muchos SABD
relacionales. Por ejemplo, el cambio del cambio estatus del empleado en una tabla no lo
Profesor. Oscar Saavedra Rodrguez 13
habr de cambiar en todas las tablas. Arreglos especiales se requieren para asegurar
que todas las copias del mismo elemento de datos sean actualizadas conjuntamente.

Las bases de datos jerrquicas permanecen como el caballo de batalla para el


procesamiento intensivo de un alto volumen de operaciones. Los bancos, compaas de
seguros y otros usuarios de altos volmenes continan usando las confiables bases de
datos jerrquicas, como el IMS de IBM, desarrollado en 1969. Es mucho ms fcil
programar aplicaciones en un ambiente relacional, pero muchas empresas no desean
gastar millones de dlares para reconvertir el software de sistemas de administracin de
base jerrquica a estos sistemas de base relacional. Muchas empresas han cambiado a
DB2, el SABD de IBM para nuevas aplicaciones, al mismo tiempo que retienen al IMS
para el procesamiento de las operaciones tradicionales. Por ejemplo, la United States
Automobile Association, descrita en la Ventana sobre Tecnologa, emplea el DB2 slo
para funciones de programacin menos importantes. La Texas Instruments, con sede en
Dallas, depende del IMS para sus requerimientos pesados de procesamiento. La Texas
manufactura, en el IMS. La empresa ha logrado reunir una inmensa biblioteca de
aplicaciones de IMS a lo largo de ms de veinte aos, una convencin total a DB le
tomara otros diez aos. A medida que los productos relacionales adquieren ms fuerza,
las empresas se alejarn por completo de los SABD jerrquicos, pero esto ocurrir en
mucho tiempo.

En la tabla se comparan las caractersticas de los distintos modelos de bases de datos.


Tabla: Comparacin de las alternativas de bases de datos
Tipo de base Eficiencia de Flexibilidad Amigabilidad Complejidad en la
de datos procesamiento para usuarios programacin
finales
Jerrquica Alta Baja Baja Alta
En redes Media-alta Baja-media Baja moderada Alta
Relacional Baja pero mejorando Alta Alta Baja

Profesor. Oscar Saavedra Rodrguez 14


5. Modelos de Datos Conceptuales (Semnticos)

Se trata de una tcnica de diseo de base de datos grfica, que nos muestra informacin
relativa a los datos y la relacin existente entre ellos. Sus caractersticas principales son:

Reflejan tan slo la existencia de los datos sin expresar lo que se hace con ellos. Es
independiente de las bases de datos y de los sistemas operativos (por lo que puede ser
implementado en cualquier base de datos). Est abierto a la evolucin del sistema.
Incluye todos los datos que se estudian sin tener en cuenta las aplicaciones que se van a
tratar. No tienen en cuenta las restricciones de espacio y almacenamiento del sistema.

5.1. Elementos del Modelo Entidad-Relacin

Entidades

Son objetos concretos o abstractos que presentan inters para el sistema y sobre los que
se recoge informacin que ser representada en un sistema de bases de datos. Por
ejemplo, clientes, proveedores y facturas seran entidades en el entorno de una empresa.

Atributos

Es una unidad bsica e indivisible de informacin acerca de una entidad o una relacin.
Por ejemplo la entidad proveedor tendr los atributos nombre, domicilio, poblacin, CIF.

Dominios

Es el conjunto de valores que puede tomar cada atributo. Por ejemplo el dominio del
atributo poblacin, ser la relacin de todas las poblaciones del mbito de actuacin de
nuestra empresa.

Profesor. Oscar Saavedra Rodrguez 15


5.2. Diagramas Entidad - Relacionamiento (objetos de datos y sus relaciones)

OBJETOS ATRIBUTOS RELACIONES

Nombre
Direccin
Edad
Permiso de Conduc
Nmero

Tiene

Marca
Modelo
Nmero de ID
Forma
Color

Objetos de datos, atributos y relaciones

Fabricante Construye Coche

Tabla de Objetos de Datos


ID Modelo Forma Motor Transmisin . . .

Un sencillo diagrama Entidad-Relacionamiento y una tabla de objetos

Profesor. Oscar Saavedra Rodrguez 16


5.3. Modelo de Datos

Es una representacin del mundo real en funcin de los Datos Relevantes a un sistema.
Datos que son necesarios para representar la conducta del SIA.

Fases de la Metodologa para la estructuracin de los datos

Fase 1: Modelo de datos conceptual


Mayor nivel de abstraccin del sistema.
Es un modelo que representa el problema de gestin en funcin de los Datos
Relevantes.
La forma cannica, es la menor expresin del modelo conceptual (normalizado)
sin redundancia.

Fase 2: Modelo de Procesos de Datos


Representar como los requerimientos de informacin de un SIA (o ms) solicitan
la estructura del modelo conceptual.
Decisin del enfoque de uso y almacenamiento de los datos.
Representar el contenido y estructura de las B.D., en el particular SABD-g
elegido.

Fase 3: Modelo de Datos Fsicos


Implementacin de los modelos conceptuales en un Administrador de Base
de Datos Relacional.

Modelo Conceptual MC
Est basado en el modelo Entidad-Relacionamiento, de Peter Chen (1976).

ALTERNATIVAS:
a) Hacer un M.C. para un rea funcional especifico, por ejemplo:
Racionalizar la administracin en esa rea.
Se est diseando un S.I. en esa rea.
Integrar los S.I. de apoyo a esa rea.
Administrar la informacin en el rea.

b) Anlisis de la informacin global de la organizacin.


Determinar cual es el quantum mnimo (o base) de informacin que la
organizacin necesita para su gestin.
Obtenemos el modelo corporativo.

Profesor. Oscar Saavedra Rodrguez 17


5.4. Definicin de Conceptos del Modelo Entidad Relacionamiento

El modelo de datos de Entidad-Relacionamiento (ER) fue introducido por Peter Chen


(1976), en donde se describan por primera vez sus principales componentes. El modelo
ha sido subsecuentemente extendido (EER) para incluir otros componentes [TEO-86,
STO-91, McFadden94]. El ER contina desarrollndose, con lo cual no ha podido
obtenerse una notacin estndar definitiva; es as como hoy en da algunos autores
fusionan los conceptos de ER y EER bajo un solo nombre: Modelo de Datos Entidad-
Relacionamiento (McFadden94).

Es as que, al referirse al ER, no se esta hablando de aquel modelo original de Chen, sino
que del nuevo ente propuesto por aquellos autores que juntaron los antiguos y nuevos
conceptos y elementos para conformar el modelo que se presentar.

Adentrando un poco en materia, podemos definir un ER como una representacin


detallada y lgica de los datos; expresado en trminos de entidades, relacionamientos (o
asociaciones) y atributos (o propiedades); y representado grficamente en el Diagrama de
Entidad-Relacionamiento (ER). Es construido durante la etapa de anlisis en el proceso
de modelamiento de datos.

Los mayores componentes del ER son las entidades, relaciones, y atributos que sern
detallados a continuacin.

Entidades

Se define entidad como una persona, lugar, objeto, evento, o concepto que adopte segn
se requiera en el proceso de modelamiento, por ejemplo:

Persona : EMPLEADOS, PACIENTES, etc.


Lugar : ESTADOS, REGIN, etc.
Evento : VENTAS, COMPRAS, etc.

Su notacin corresponde al smbolo:


CLIENT E FACT URA PRODUCT O
RUT <pi > VA10 <M> NUMERO <pi > I <M> CODIGO <pi > I <M
NOMBRE VA30 FECHA D DESCRIPCION VA20
DIRECCION VA30 NUMERO <pi > COST O I
RUT <pi > CODIGO <pi >

Dentro de l va el nombre que identifica a la entidad.


Cabe hacer la distincin entre entidades (entity types) e instancias (entity instance). Las
entidades son objetos, eventos o personas que pertenecen a una realidad. La cual es
alguna organizacin o parte de ella donde interesa registrar datos.

Objetos; Ej. : Productos, Materias Primas.


Eventos; Ej. : Compras, Ventas, Salidas de Bodega.
Personas; Ej. : Proveedores, Clientes, Empleados.
Profesor. Oscar Saavedra Rodrguez 18
Se identifican por un nombre en maysculas; por ejemplo:

EMPLEADO

Una instancia es una ocurrencia de una entidad. Una entidad es descrita slo una vez en
una base de datos (esto es conocido como METADATO), en cambio muchas entidades
pueden ser. Representadas por los registros de una base de datos. Por ejemplo:

Entidad: EMPLEADOS
Atributos: RUT
NOMBRE
DIRECCIN
Instancia de EMPLEADO
10.220.712-2
Maxwell, Jonathan
Avda. Los Aromos #876

Clasificacin de las Entidades.


1. Entidad Sujeto : Si su existencia no depende fundamentalmente del tiempo.
Entidad Evento : Su existencia depende del tiempo. Salida de Bodega.

2. Entidad Regular: Son aquellas que pueden ser identificadas por sus atributos
Entidad Dbil: Si es necesaria una relacin para identificar las entidades.

Atributos

Un atributo es una propiedad o caracterstica de una entidad. Un ejemplo es el presentado


anteriormente al definir la entidad EMPLEADO.

Para nombrar un atributo se usa letra mayscula, al igual que con la entidad y su
representacin es por medio del smbolo que se muestra a continuacin. Ej. :

NOMBRE
Adems de una lnea que lo conecte con su respectiva entidad.

Atributos descriptores de una Entidad: Son aquellos datos que caracterizan la Entidad,
por ejemplo, direccin, edad, fecha_nacimiento, etc.

Identificador de la Entidad: Generalmente es nico para una Entidad Sujeto.


Entidad : PROVEEDOR
Atributos (identificador) : NUMERO_PROVEEDOR
(descriptores) Nombre, Direccin, etc.
Y es compuesto para las Entidades Evento.

Profesor. Oscar Saavedra Rodrguez 19


Entidad : Cotizacin Previsional
Atributos (identificador) : Rut. Afiliado
Mes - de - pago
Nombre, Direccin, ...
PROVEEDOR PART E
NUMERO_PROVEEDOR <pi> I <M> NUMERO_PART E <pi> I <M>
NOMBRE A10 DESCRIPCION A10
DIRECCION A20 COST O I
NUMERO_PROVEEDOR <pi> ST OCK I
NUMERO_PART E <pi>

Identificador

Cada entidad debe tener uno o ms atributos que identifiquen nicamente a cada una de
las instancias, para as, poder distinguirlas claramente. De esta manera, se define un
identificador de aquel(los) atributo(s) que identifican exclusivamente a cada instancia de
una entidad. Un ejemplo sera el NUMERO_PROVEEDOR, pues no existe otra instancia que
lo contenga.

Algunas veces una entidad puede tener varios identificadores; por ejemplo la entidad
EMPLEADO puede tener un identificador RUT, y una segundo identificador llamado
NOMBRE y DIRECCIN (suponiendo que no hay dos empleados con el mismo nombre
que vivan en la misma direccin); en todo caso, de varias posibilidades se opta por
determinar a uno de ellos como identificador, as pues se define un identificador como
uno de los posibles identificadores que ha sido seleccionado para distinguir una entidad.
Para dicha seleccin se aconseja los siguientes consejos propuestos por [BRU-92]:

Criterio 1: Elegir aquel identificador que no cambie su valor durante


toda su existencia en la instancia.
Criterio 2: Elegir aquel identificador tal que para cada instancia, el
atributo garantice que su valor no sea vaco (NULL). En el caso de
combinaciones de varios atributos este criterio debe cumplirse para
cada uno de ellos.
Criterio 3: Impedir el uso de las llamadas identificadores inteligentes,
cuya estructura puede indicar varias cosas (clasificaciones,
localizaciones, fechas, nombres, etc. (todas en un solo nombre)); ya
que alguna de ellas puede cambiar.
Criterio 4: Considerar sustituir identificadores por alguna combinacin
de otros.

Su notacin corresponde a subrayar el nombre del atributo para el identificador de la


siguiente forma:

RUT

Profesor. Oscar Saavedra Rodrguez 20


Atributos de Multivalor

Surge cuando un atributo puede tener ms de un valor para cada instancia. Su notacin
es por medio del smbolo que se muestra en el ejemplo siguiente:

CARGAS_FAM.

En este caso un empleado en particular (una instancia de la entidad EMPLEADO), puede


tener varias cargas familiares.

En todo caso, durante etapas posteriores del modelamiento, se normalizan las entidades
eliminando estos atributos colocndolos en entidades separadas o en una relacin.

5.5. Relacionamientos (Asociacin)

Un relacionamiento es aquella por medio de la cual se unen los componentes del modelo
ER, o sea, una asociacin entre las instancias de una o ms entidades. Su notacin es
por medio del smbolo presentado en el ejemplo a continuacin:

T IE N E P A C IE N T E
H O S P IT A L

De esta manera se quiere representar la relacin que existe entre la entidad HOSPITAL y
la entidad PACIENTE de esta forma: un Hospital puede tener muchos pacientes.

Los smbolos que acompaan a las lneas de unin en la relacin, sern explicados ms
adelante.

Aunque es loable destacar que su omisin es considerada correcta siempre y cuando se


deje el nombre de la relacin sobre la lnea que une a las diferentes entidades. Es
recomendable que para nombrar la relacin se use un nombre corto y descriptivo.
PROVEEDOR PART E
NUMERO_PROVEEDOR <pi > I <M> NUMERO_PART E <pi > I <M>
SOLICIT AR
NOMBRE A10 DESCRIPCION A10
DIRECCION A20 COST O I
NUMERO_PROVEEDOR <pi > ST OCK I
NUMERO_PART E <pi >

Grado de un relacionamiento
Es el nmero de entidades que participan en una relacin; as por ejemplo, si en una
relacin participan dos entidades, entonces su grado es dos. Las ms comunes
relaciones del ER son:
unaria (grado 1),
binaria (grado 2),
ternaria (grado 3),
n-aria.

Profesor. Oscar Saavedra Rodrguez 21


Por supuesto que la posibilidad de grados mayores est abierta, aunque no es frecuente
encontrarlos en los modelos ER.

Relacin Unaria: tambin llamada relacin recursiva, es una relacin entre las
instancias de una entidad; esta relacin puede ser 1:1, 1:m, m:n ( se lee cantidad es
a cantidad). Por ejemplo, la representacin de esposo(a) puede ser:
ES-ESPOSO

PERSONA

Notar que esta relacin es 1:1, ya que una persona slo puede tener un esposo a la vez
(excluyendo la bigamia).

Y la de jefe:
ES-JEFE

TRABAJADORES

Notar que la relacin es 1:m, ya que un jefe puede tener a su cargo a varios trabajadores.

Relacin Binaria: es la relacin entre instancias de dos entidades, tambin


prevalece que la relacin puede ser entre una entidad y ella misma, entre una
entidad y otra(s) distinta(s), o entre muchas entidades con otras muchas. As
por ejemplo:

TIENE PACIENTE
HOSPITAL

Como nota al margen, se destaca que este es el tipo de relacin que con ms frecuencia
se encuentra en el proceso de modelamiento.

Relacin Ternaria: se define como una relacin simultnea entre instancias de tres
entidades tipo, como se explicaba anteriormente. Un ejemplo sera como el que sigue
a continuacin, en el que se muestra la relacin que debe existir ante un pedido de
productos por parte de los clientes y por medio de una orden de compra
P E T IC IO N ORDEN DE
PR O D UC TO
COMPRA

BODEGA

Profesor. Oscar Saavedra Rodrguez 22


Gerundios

Tambin llamado entidad compuesta, es una relacin entre una entidad y muchas otras
(1:m) que se ha cambiado por una entidad con varias relaciones 1:m asociadas. La
notacin que usa como simbologa es la que se muestra a continuacin.

El gerundio al ser una entidad, posee tambin todas las caractersticas de las entidades.
Este componente es tremendamente til en lo que se refiere a las relaciones ternarias y
binarias (sobre todo en las ternarias).

En general, para relaciones ternarias o de mayor orden, en donde cualquier lado de la


relacin es una muchos, podemos mostrar la relacin como una entidad.

Conectividad (Cardinalidad) en el relacionamiento

Se define la CONECTIVIDAD de una relacin como el nmero de instancias de dicha


entidad que pueden ser asociadas por cada instancia de otra entidad. As es como
surgen los trminos 1:1, 1:m, m:n; en todo caso, esta notacin ya fue introducida
anteriormente para que pueda introducirse una definicin intuitiva del significado. La
simbologa usada para representar dichas relaciones es:

ES A UNA
ES A MUCHAS

Cardinalidad Mnima y Mxima


La cardinalidad mnima de una relacin se define como el mnimo nmero de instancias
de dicha entidad que pueden ser asociadas con cada instancia de otra entidad. El caso
contrario a la definicin de la cardinalidad mxima, es decir, el mximo nmero de
instancias que pueden relacionarse con cada una de las instancias de otra entidad.

La notacin que representa a estos conceptos, se deben colocar sobre la lnea que une a
las entidades (lnea que representa a la relacin), con uno de los siguientes tres
I MINIMA (EXCLUYENDO EL CERO)
MINIMA (INCLUYENDO EL CERO)
II MAXIMA
smbolos:

Por ejemplo el siguiente ER define las entidades HOSPITAL y PACIENTE, que se


relacionan con diferente conectividad (cardinalidad).

Profesor. Oscar Saavedra Rodrguez 23


HO S P IT A L A TIE N D E P A C IE NT E

En el caso de que la cardinalidad mxima sea un nmero conocido, este se coloca cerca
del smbolo que representa la cardinalidad mxima.

Dependencia de Existencia
Es el concepto que explica el que una instancia perteneciente a una entidad no pueda
existir a menos que exista una instancia en otra entidad previamente definida. En el
ejemplo anterior si la entidad PACIENTE tuviera atributos tales como nro_hospital y
nro_cama, entonces una instancia de esta entidad no podra existir sino existen las
correspondientes instancias en la entidad HOSPITAL.

Este concepto es tambin aplicable a las entidades por lo cual existiran entidades
dependientes de otras. Ocurre frecuentemente que la entidad dependiente de otra no
tiene un identificador o clave candidata. Para esto, la clave primaria de la entidad de la
cual depende es generalmente usada como parte de la clave primaria de ella misma.

De Existencia: Indica cuando debe existir la relacin, dada la existencia de una


ocurrencia de las Entidades involucradas en la relacin.

A 1 0 B

Significa que: Dado un B Dado un A, puede haber 0, 1, o ms


debe estar amarrado a un A. B asociados.

Ejemplo: Cliente - Factura


Empleado - Carga

Comentarios sobre el Relacionamiento

a) Entre dos Entidades puede haber ms de un relacionamiento


Fecha Emisin Factura
Vencimiento
Prometido - Pago
Pago

Condicin: Cada relacin debe decir algo distinto.

b) Una relacin puede involucrar a ms de dos Entidades.

Profesor. Oscar Saavedra Rodrguez 24


Resumen
Concepto Representacin
Entidades
Regular
Dbil

Relacin

Atributo
Atributo

Entidad Dominio

Este concepto ayuda mucho a:


Integridad de datos: ya que la existencia de unos datos depende de la
existencia de otro.
Fcil acceso a la entidad dependiente.

Esta figura representa una asociacin exclusiva, por


ejemplo:

Tarea Este ejemplo se entiende de manera que una tarea puede ser
desarrollada por un Ingeniero o por un Tcnico pero no por ambos.

desarrollado por

Ingeniero Tcnico

Profesor. Oscar Saavedra Rodrguez 25


5.6 Modelamiento de atributos multivalor

Los atributos de multivalor pueden ser eliminados despus de varios pasos en el diseo
conceptual, como se mencion anteriormente (seccin Atributos de Multivalor). Esto se
logra cuando cada atributo multivalor es convertido a una entidad separada que contenga
sus propios atributos.

GRUPOS REPETIDOS
Un conjunto de dos o ms atributos de multivalor que estn lgicamente relacionados
forman, como consecuencia de lo anterior, un grupo repetido. Por ejemplo para una
instancia de la entidad EMPLEADO se tendr muchos valores para el atributo
nombre_carga, que formarn un grupo repetido.

Ahora bien, estos grupos repetidos pueden ser eliminados y reemplazados por una nueva
entidad que rena a los atributos; y adems, esta nueva entidad es relacionada con la
entidad original de donde se sacaron los atributos. Para el ejemplo anterior se tendra
una nueva entidad llamada CARGAS, que estara relacionada con la entidad EMPLEADO
de la forma Un EMPLEADO tiene muchas CARGAS. La nueva entidad cumple con todas
las normas que rigen a las entidades, como lo es definir un atributo como identificador,
cardinalidad, etc.

Ejemplo:
La entidad FUNCIONARIO tiene los siguientes atributos:
Nombre
Apellido
Rut
Direccin
Telfono
Cargas
Nombres de cargas
Edad de Cargas
Empleos Anteriores
Cargos_desempeados
Duracin del Empleo Anterior

En el ejemplo se puede notar que los grupos repetidos corresponden a aquellos


relacionados con Cargas y Empleos Anteriores. Se pueden crear por tanto, dos nuevas
entidades que agrupen estos grupos:

La entidad CARGAS, que poseera los atributos:


Nombre de cargas
Edad de cargas
Rut_Funcionario (para no perder la relacin con la entidad de origen)
La entidad EMPLEOS_ANTERIORES, con los atributos:
Nombre_Empresa
Cargo_desempeado
Duracin_Empleo
Rut_Funcionario

Profesor. Oscar Saavedra Rodrguez 26


La entidad FUNCIONARIO, con los atributos:
Nombre
Apellido
Rut_Funcionario
Direccin
Telfono

5.7. Datos Dependientes del Tiempo

Los contenidos de las bases de datos varan con el tiempo, un ejemplo muy didctico para
explicar esta idea es el registrar la temperatura diaria de un paciente hospitalizado;
conceptualizando esto, se podra crear una entidad llamada TEMPERATURA DIARIA que
contenga los atributos DA, HORA, IDENTIFICACIN_PACIENTE y TEMPERATURA.
Como esto ltimo es un grupo repetido, se puede separar en otra entidad llamada
TEMPERATURA DIARIA POR HORAS que los contenga.

Grficamente lo anterior sera como lo mostrado en el siguiente modelo ER.

DIA IIDENTIFICACIN_PACIENTE

HORA TEMPERATURA TEMPERATURA


DIARIA

DIA IDENTIFICACIN_PACIENT DIA IIDENTIFICACIN_PACIENT

TIENE TEMPERATURA
TEMPERATURA II DIARIA
DIARIA POR
HORAS

TEMPERATURA HORA

As, el valor del atributo temperatura se le estampa en el tiempo una hora una fecha y el
nombre de un paciente. Una estampa en el tiempo (time stamp) es un valor en el tiempo
(tal como la fecha, la hora y el nombre del paciente) que es asociada a un valor de algn
dato que cambia durante el transcurso de su vida. De esta manera, se puede registrar
cualquier variacin de los datos.
Esta herramienta es muy til cuando se trata con datos variables en el tiempo; y en este
punto fue donde existi la gran debilidad del antiguo modelo ER, del cual se habl en el
punto anterior, pues para datos dependientes del tiempo este modelo era inadecuado.
Esto incentiv el desarrollo de un modelo con conceptos orientados a objetos que
permitiera un mayor manejo de datos variables.

Profesor. Oscar Saavedra Rodrguez 27


5.8. Generalizacin - Especializacin

Los humanos al ser seres racionales poseen la habilidad de clasificar los objetos y
generalizar sus propiedades; por ejemplo un gorrin y un cndor son clasificados sin
mayor titubeo bajo el nombre AVE, generalizndolos y obviando el que uno tenga, y
carezcan atributos del otro. Con este ejemplo se introducen los conceptos de
generalizacin y categorizacin.

Generalizacin es el concepto que involucra el que algunas cosas (entidades) son


subtipos de otras cosas ms generales; y como no puede existir un SI sin un NO,
especializacin es el concepto opuesto, en donde una entidad tiene varios subtipos. A
continuacin se bosquejan un ejemplo para cada concepto:
Generalizacin : un IBM es un subtipo de computador.
Especializacin : automviles tienen los subtipos sedan, deportivos,
convertibles, etc.

La generalizacin como estructura formal fue estudiada en el rea de la inteligencia


artificial, y hasta hace poco estaba limitada a la semntica y a modelos orientados a
objetos; hoy en da se incorpor al modelo ER y surgi el modelo EER.

Subtipos Y Supertipos
Una de las mayores dificultades del modelamiento de datos es reconocer y representar
claramente las entidades que comparten propiedades, pero tienen una o ms distintas
que las distinguen de las otras entidades. Ante situaciones como sta se proponen tres
posibilidades:

Definir una entidad que rena todos los atributos de las otras entidades; aunque
esto tiene la desventaja de que al contener todos los atributos, alguno de ellos
adopte el valor vaco al no ocuparse diariamente.
Definir una entidad separada para cada una de las entidades existentes, y que
adems rena los atributos que son comunes a todas las entidades. Este
mtodo tiene la desventaja de que los usuarios deben ser cuidadosos en elegir
la entidad correcta cuando usen el sistema.
Definir un supertipo que rena los atributos comunes, y subtipos que contengan
cada uno de los restantes atributos. En otras palabras, es dejar las entidades
originales, pero se les extraen los atributos que son comunes entre ellas, y se
renen en una sola entidad llamada supertipo.

Esto hace aparecer los conceptos de supertipo y subtipo. Supertipo es una entidad
genrica que es dividida en subtipos. Un subtipo es un subconjunto de supertipo que
comparten atributos o relaciones distintas desde otros subconjuntos. Cabe mencionar que
tanto los supertipos como los subtipos cumplen con las normas de las entidades; eso si
que el atributo usado como clave primaria (identificador) del supertipo debe coincidir con
la clave primaria de los subtipos.

La relacin entre cada supertipo y subtipo es llamada relacin ISA, su notacin usa el
siguiente smbolo

Profesor. Oscar Saavedra Rodrguez 28


PROFESOR
RUT <pi > A10 <M>
RUT <pi >

IS_A

PRO_JOR_COMPLET A PROF_PARCIAL PRO_HORA

Por ejemplo:
Esta relacin es leda desde el subtipo al supertipo.
La relacin desde el subtipo al supertipo es siempre del tipo obligatorio; es decir,
simblicamente:
II

esta cardinalidad es as, pues una instancia de un subtipo es siempre una instancia de un
supertipo, y por el otro lado de la relacin, el supertipo con respecto al subtipo es
opcionalmente cero o uno.

Por lo general, el smbolo usado para la relacin ISA es obviado.


A esta relacin ISA se le suma otro smbolo en forma de curva como se muestra a
continuacin:
PACIENTE

ISA ISA

PACIENTE PACIENTE
PENSIONADO SIN PENSIN

Cuyo significado es el de relacin exclusiva. Esta relacin involucra que varios subtipos
son mutuamente exclusivos, y que exactamente uno, y no ms de uno, se requiere para
cada una de las instancias del supertipo.
Cuando usar un subtipo es una decisin que depende de cada circunstancia, aunque se
dan dos criterios que pueden ayudar a tomar dicha decisin:

Diferentes atributos son usados para describir cada entidad subtipo.

Profesor. Oscar Saavedra Rodrguez 29


Tema VI: Enfoque de Bases de Datos en el Diseo de Sistemas

1. Estrategia de Diseo de la Base de Datos

1.1. Diagrama de las fases del enfoque de bases de datos

PLANIFICACIN y ANLISIS
REQUERIMIENTOS Y
USUARIO MODELO CORPORATIVO DATOS

MODELO
MODELO ENTIDAD
MODELO RELACIN
INICIAL
INICIALDE
DEDATOS
DATOS EXTENDIDO

PROCESO
PROCESO
NORMALIZACIN
NORMALIZACIN FORMAS
NORMALES

MODELO
MODELOCONCEPTUAL
CONCEPTUAL
CANONICO
CANONICO

REGLAS
REGLAS
DETRANSFORMACIN
DE TRANSFORMACIN
MODELO
MODELO
LGICO
LGICO MODELO
DATOS MODELO
DATOS MODELOFSICO
FSICO RELACIONAL
DE
DEDATOS
DATOS

DAD GENERACIN
LAM GENERACIN
INTERFAZ
BASE
BASE
DATOS
B.D-R
DATOS
PROGRAMA
PROGRAMA
COMPUTACIONAL
COMPUTACIONAL

FASE I: Generacin del Modelo Conceptual


La generacin del modelo conceptual de datos se obtiene como una simplificacin de un
Diagrama de Clases a travs del uso de la herramienta CASE.

Dado que el modelo conceptual es una simplificacin, slo contempla las relaciones de
asociacin y las de generalizacin entre las clases, las cuales pasan a convertirse en
entidades. Las entidades, a diferencia de las clases slo conservan la estructura de datos,
perdiendo las operaciones que se definieron en el Diagrama de Clases.

Las relaciones especiales de un diagrama de clases (Agregacin, Composicin y


dependencia) deben ser convertidas a relaciones de asociacin normales, manteniendo
sus correspondencias previamente establecidas en el otro modelo.

Profesor. Oscar Saavedra Rodrguez 30


FASE II: Generacin del Modelo Conceptual Cannico
Obtencin del Modelo Conceptual Cannico a partir del Modelo Conceptual.
Qu es una forma cannica del modelo?
Significa que es un modelo con una estructura simple.

Por qu se refina el modelo hasta llegar a la forma cannica?


Por razones de mantencin futura del modelo y por facilidades de comprensin, a
travs de su documentacin es que se refina el modelo.

Cul es la estructura del modelo en la forma cannica?


La estructura es de tipo estrella.

Cmo se obtiene una estructura tipo estrella o modelo cannico?


Aplicando normalizacin a los datos
- 1 Forma Normal
- 2 Forma Normal
- 3 Forma Normal
Proceso de Normalizacin
Primera Forma Normal (1 FN):
Se identifican grupos de atributos repetitivos que existen o pueden existir en cada
entidad.
A continuacin, se separan estos grupos de la entidad y pasan a constituir una
nueva Entidad.

Sin perder la informacin de la llave de identificacin de la entidad que le dio origen.

Ejemplo: 1. - Entidad: Orden - Pedido


Entidad: Orden - Pedido - Producto

2. - Entidad: Personal
Entidad: Personal - Carga

Ventaja: Eliminar la redundancia


- actualizacin
- mantencin
- almacenamiento

Profesor. Oscar Saavedra Rodrguez 31


Desventaja: Puede perder claridad el modelo o la individualidad de las
entidades.
Asegurado Beneficio
* Rut, Nombre, Direc. * Rut. , Nombre, Direc.

Persona
Segunda forma normal (2 FN)
Identificar aquellos atributos de la entidad que dependen parcialmente de la
llave de identificacin de sta.
Estos pasan a constituir una nueva entidad

A B C D

Identificador de la Entidad El atributo D, depende


del atributo B, nicamente.

2 FN

A B C B D

Ejemplo: Entidad: Orden - Pedido - Producto


Entidad: Orden - Pedido
Entidad: Producto

Tercera forma normal (3 FN)


Eliminar la dependencia transitiva de los atributos de una entidad.

E F G H

E F G G H

Una Entidad est en 3FN, cuando est en 2FN y cada atributo NO-PRIMO de la
Entidad es dependiente no transitivamente de cada identificador posible de la
Entidad.

Relaciones muchos a muchos


Una relacin mucho es a muchos se debe transformar en una relacin uno a
muchos, uno a muchos creando un NUB artificial.
NUB Natural

Profesor. Oscar Saavedra Rodrguez 32


Eliminacin de Relaciones Redundantes (o loop)
Estas relaciones redundantes corresponden a loop o trayectoria cerrada.

Una relacin es redundante s:


Al eliminar sta, se puede establecer a travs de otra trayectoria de bsqueda sin
perder informacin.

En caso de que loop no sea redundante:


Relaciones del tipo M : N (normalizadas o no)

Relaciones en que hay entidades evento y sujeto. Por lo tanto, hay relaciones entre
distinto tipo de entidades.

Entidad: Factura
Entidad: Producto
Entidad: Factura - Producto
Relaciones Redundantes
La redundancia que debe eliminarse al buscar el M.D. cannico es: la redundancia
en las relaciones.
Dos relaciones son redundantes, si ambas entregan la misma informacin. Aunque,
una sea relacin directa entre dos entidades, y la otra una relacin indirecta.

Ejemplo: A

C D

Profesor. Oscar Saavedra Rodrguez 33


Es posible encontrar relaciones redundantes en trayectorias cerradas, donde todas las
relaciones de las trayectorias sean de la misma naturaleza (digan lo mismo), y no
existan dos o ms relaciones M : N (normalizadas o sin normalizar).
llega a
Ejemplo: Embarque Puerto

va en Puerto/Barco

va al

Barco

Cmo se analiza, si existen redundancias en las relaciones?


Se ve si hay dos o ms relaciones M : N, o si las relaciones son de distinta naturaleza.
Si el resultado es: si no hay redundancia
no se debe hacer la revisin, relacin por relacin, analizando s
alguna se puede eliminar.

Ejemplo: Caso anterior: Hay dos relaciones M : N (embarque y puerto/barco), no es de la


misma naturaleza.

no se sigue con paso siguiente.

Ejemplo: Gerencia

Depto.

Empleado Carga - Familiar

Existe solo una relacin M : N que es Carga - Familiar. Las relaciones son de la misma
naturaleza.
Si se ha pasado el 1 Test se revisan una a una las relaciones analizando:
- Si alguna se puede eliminar
- Se elimina la relacin directa, ojal la menos obvia o clara (la que aporte menos)
y si la relacin eliminada en ambos sentidos, es decir, se recorre de arriba hacia
abajo y tambin hacia arriba.

Gerencia

Depto.

Empleado Carga - Familiar

Profesor. Oscar Saavedra Rodrguez 34


Herencia
Es la propiedad por la cual todos los atributos de un supertipo se traspasan como
atributos a un subtipo proveniente de ste; esto es porque los atributos no son
explcitamente puestos en los subtipos, a excepcin de la clave primaria.

Esta es la Semntica de Agregacin y se representa en el ejemplo siguiente, en el cual se


muestra la clase o supertipo PERSONA que posee la subclase o subtipo FUNCIONARIO,
de la siguiente manera:

PERSONA

FUNCIONARIO

SUBTIPO EXHAUSTIVO
Indican que no existen otros subtipos adicionales a los modelados, ejemplo, para el
Hospital se puede definir dos tipos de funcionarios: con contrato de tiempo completo y con
contrato por horas. Entonces un funcionario puede ser un funcionario contratado tiempo
completo o un funcionario contratado por horas y no existe otro tipo de contrato para los
funcionarios.

SUBTIPOS EXCLUSIVOS
Cada instancia de un supertipo debe ser una instancia de solo uno de los subtipos, es
decir, se trata de un OR exclusivo, por ejemplo, un funcionario puede tener un solo tipo de
contrato.

Fase III: Modelo de Procesos de Datos

En este modelo se representa la forma en que los Requerimientos de Informacin


(Requerimientos requeridos por un usuario final o una persona que toma decisiones en la
Organizacin y hace uso de la base de datos) acceden a la estructura de datos y utiliza
sus trayectorias de bsqueda.

Para construir el modelo de procesos, se utiliza el modelo de datos conceptual cannico y


se carga con los requerimientos de informacin de modo que:

1. Queden definidos los puntos de entrada a la estructura de datos;


2. Queden definidas las trayectorias de bsquedas seguidas al navegar para
satisfacer todos y cada uno de los requerimientos de informacin.

Existen dos formas de entrar en la estructura de datos:

1. Accesos directo o selectivo: buscando por una llave de bsqueda.


Ejemplo: Recuperar en pantalla los datos de un determinado cliente (se debe conocer
el identificador del cliente.

Profesor. Oscar Saavedra Rodrguez 35


Crut Clientes
CRut

2. Acceso secuencial o por recorrido.


Ejemplo: Recuperar en pantalla los datos de todos los clientes, ordenados por apellido
y que pertenecen a la zona = norte.

Clientes
CRut
S-Apellidos CApellidos
CNombre
CZona

De acuerdo a la lista de Requerimientos de Informacin, se debe solicitar la


estructura de datos.

Ejemplo:
1. R1.- Recuperar en pantalla los datos de un determinado cliente (se debe
conocer el identificador del cliente)
2. R2.- Recuperar en pantalla los datos de todos los clientes, ordenados por
apellido y que pertenecen a la zona = norte.
3. R3.- Recuperar en pantalla los datos de todos los clientes atendidos por un
vendedor determinado (se debe conocer el identificador del vendedor)
4. R4.- Recuperar en pantalla los datos de las ltimas 10 compras de un cliente
determinado (se debe conocer el identificador del cliente)
5. R5.- .............

CRut VCodigo
Clientes Facturas Vendedores
CRut FNumero VCodigo
FACCLIENTE FACVENDEDOR
S-Apellidos CApellidos
CNombre
CZona

Revisin del modelo de datos de acuerdo a los Requerimientos de Informacin:

1. Revisar uno por uno los Requerimientos de Informacin y ver si los satisface el
modelo de datos.
Cada vez que se utiliza una relacin o trayectoria de bsqueda, se da un
nombre (y un ordenamiento s es necesario)
Si un requerimiento no se puede satisfacer, hay que volver a la Fase I de la
estrategia de diseo. Para agregar las Entidades o Relacionamientos que
faltan e indicar los puntos de acceso entrada y nuevas trayectorias de
bsqueda.
2. Eliminar las entidades y relacionamientos que quedan sin nombres (no son
utilizadas). Porque son irrelevantes.
3. Reestructurar el modelo para lograr eficiencia.
Profesor. Oscar Saavedra Rodrguez 36
Analizar en detalle los requerimientos de informacin, de acuerdo a: frecuencia
y periodicidad; tiempo de respuesta; nivel de complejidad; volumen; masivo o
selectivo.
Desnormalizar, agregar relaciones redundantes que acerquen las entidades en
trayectorias de bsquedas muy largas. Sacar o incorporar atributos a una
entidad (tercera forma normal).

Ejemplo de desnormalizacin:

1. Agregar relacionamientos: con esto se optimiza la consulta, porque la trayectoria de


bsqueda es ms corta, pero se pueden afectar los procesos de actualizacin.
R3.- Recuperar en pantalla los datos de todos los clientes atendidos por un vendedor
determinado (se debe conocer el identificador del vendedor).

Atender

LOOP

CRut VCodigo
Clientes Facturas Vendedores
CRut FNumero VCodigo
FACCLIENTE FACVENDEDOR
S-Apellidos CApellidos
CNombre
CZona

2. Agregar atributos a una entidad. Al dejar los atributos en la entidad, se tiene la ventaja
que al acceder a esta tenemos toda la informacin inmediatamente. Pero no se puede
utilizar como punto de entrada a la estructura.

En el modelo de proceso se debe especificar dos tipos de procesos computacionales:

1. Procesos bsicos: insertar un nuevo registro en la estructura; modificar un dato; o


eliminar un registro de la estructura. Procesos mantenedores de las tablas base;
2. Procesos de consulta: de acuerdo a los Requerimientos de Informacin se especifica
como se debe proveer esta informacin, al usuario final.

Para cada proceso computacional se debe establecer un LAM (Mapa de Acceso Lgico) y
una ESP (Especificacin del Proceso).

El LAM es la representacin grfica asociada a un proceso especfico, es decir, se


presentan las entidades y relacionamientos utilizados en el proceso.

EL ESP es la especificacin de cmo funciona el proceso. Utilizando un lenguaje de alto


nivel. Y estructuras bsicas de especificacin.

Las estructuras bsicas de especificacin son:


1. Secuencia;
Profesor. Oscar Saavedra Rodrguez 37
2. Seleccin (Si <condicin> entonces operacin ... Sino operacin ... Finsi);
3. Iteracin (Mientras <condicin> hacer operacin... Finmientras;
(Repetir operacin .... Hasta que <condicin>).

Una operacin puede ser simple (leer, grabar, calcular, etc.) o compleja (seleccin,
iteracin).

Ejemplos:
1. Proceso bsico, insertar un nuevo cliente en la estructura:

LAM:
Atender

LOOP

CRut Vendedores
Clientes VCodigo
CRut PROFESION
S-Apellidos CApellidos Carga1
CNombre Carga2
CZona

ESP:
Leer VRut
Leer Clientes
Si <Cliente existe> entonces enviar mensaje Cliente existe ir Finsi
Sino
Leer Datos Clientes
Leer VCodigoVendedor
Leer Vendedores
Si <Vendedor Existe> entonces grabar Clientes
Sino enviar mensaje Vendedor no existe
Finsi
Finsi.

2. Recuperar en pantalla los datos de las ltimas 10 compras de un cliente


determinado (se debe conocer el identificador del cliente).
LAM:
CRut
Clientes Facturas
CRut FNumero
CApellidos FFecha
FACCLIENTE
CNombre FTotal
CZona

ESP:
Leer VRut
Leer Clientes
Si <Cliente existe> entonces
Mientras <Clientes.CRut = Facturas.RutCliente AND Conta <= 10> Hacer
Leer Facturas
Incrementar Conta
Profesor. Oscar Saavedra Rodrguez 38
Presentar en Pantalla Datos Cliente y Facturas
Finmientras
Sino enviar mensaje Cliente no existe
Finsi

Entidad Resumen: es informacin redundante, pero puede facilitar la respuesta a


Requerimientos de Informacin muy exigentes. En general, esta se puede representar
como una entidad desconectada de la estructura de datos y es actualizada por
procesos especiales.

Historia Ventas
Monto Vendido
Ao
Mes

Profesor. Oscar Saavedra Rodrguez 39


2. Modelo Relacional

2.1. Tablas
Es la forma de estructurar los datos en filas o registros y columnas o atributos.
2.2. Relacin
Es la asociacin que se efecta entre entidades. Por ejemplo la relacin entre las
entidades facturas emitidas y clientes.
2.3. Tablas relacionales
Son tablas que cumplen los siguientes requisitos:

Cada fila debe ser nica, es decir no pueden existir filas duplicadas.
Cada columna debe ser nica
Los valores de las columnas deben pertenecer al dominio de cada atributo
Debe tener un solo tipo de fila, cuyo formato est definido por el esquema de tabla o la
relacin.
El valor de la columna para cada fila debe ser nico.
No puede contener columnas duplicadas.
2.4. Claves
En una tabla relacional a veces es necesario poder determinar una tupla (registro)
concreta, lo cual es posible mediante la clave. Se debe elegir la clave entre los atributos,
de forma que no puedan existir valores duplicados (la clave puede contener uno o ms
atributos).
2.5. Operaciones sobre Tablas
Todas las operaciones que podamos realizar sobre las tablas, vistas o elementos de ellas,
estn integradas en el SGDBR (Sistema Gestor de Bases de Datos Relacional) como
rutinas. Ejemplos de operaciones son:
Seleccin.
Obtiene un subconjunto de filas de la tabla o vista, que cumplen una determinada
condicin.

Proyeccin.
Obtiene un subconjunto de columnas de todas las filas de la tabla.
Unin: Realizamos la unin de varias tablas, cuyo resultado ser el conjunto de todas las
filas de las tablas origen. Las columnas respectivas de dichas tablas deben ser iguales
entre s.

Diferencia.
Inversa a la anterior, devuelve las filas que estn en una tabla y no pertenezcan a una
segunda tabla. Deben por tanto ser iguales tambin las columnas respectivas entre s.

Profesor. Oscar Saavedra Rodrguez 40


Producto cartesiano.
El resultado ser una fila por cada combinacin entre cada fila de una tabla y todas las de
la otra. Los valores de ambas filas se concatenarn.
Interseccin: Obtiene aquellas filas que sean idnticas en ambas tablas.

Join.
Es la operacin de unir filas de dos tablas a travs de algn campo comn (normalmente
la clave), dando como resultado filas con la suma de columnas de ambas tablas cuando
se cumpla la condicin del Join a travs del campo (o campos) relacionados.

Proceso de Transformacin del Modelo EER al Modelo Relacional


C L IE N T E

R u t
N o m b re
D ir e c c i n
F o no
G ir o

CLIENTE
RUT NOMBRE DIRECCIN FONO GIRO

Tablas en el Modelo Relacional

Nombre Tabla: CLIENTE


Nombre RUTCL NOMBRE DIRECCIN FONO GIRO SITUACIN
Columna
Tipo Primary Key
Clave PK
Nulo/ Unico NN, U NN NN
Tipo Dato char(10) char(20) varchar(25) Numeric(8) char(20) char(20)
Datos 6.876.251-9 Oscar Arturo Leon 789090 Comerciante Buen Cliente
Ejemplo Saavedra 678, Valpo
7.765.765-7 Olga Daz Avda. Matta 212121 Vendedora Regular
1545, Stgo Cliente
10.456.897-K Daniel Salas Ancoa 789 22161616 Comerciante Mal Cliente
Stgo

Nombre Tabla: CUENTA CORRIENTE CLIENTE


Nombre NUMERO DEBE HABER SALDO RUTCL
Columna
Tipo Primary Key Foreing Key
Clave PK FK
Nulo/ Unico NN, U NN NN
Tipo Dato Numeric(5) Numeric(8) Numeric(8) Numeric(10) char(10)
Datos 7010 300.000 300.000 6.876.251-9

Profesor. Oscar Saavedra Rodrguez 41


Ejemplo
7020 400.000 400.000 7.765.765-7
7080 100.000 100.000 10.456.897-K

3.1. Reglas De Transformacin

PASO 1
Transformar cada entidad en una relacin, la cual contiene los conjuntos de valores
de los identificadores (claves) y descriptores (no claves)
Cada entidad en una jerarqua de generalizacin o jerarqua de subconjunto es
transformada en una relacin. Cada una de estas relaciones contiene la clave de la
entidad genrica. La relacin de la entidad genrica contiene los atributos
descriptivos (no claves) especficos a cada subtipo de entidad. Otra opcin es incluir
todos los atributos de subtipos en el supertipo (entidad genrica) y permitir valores
nulos.

PASO 2
Transformar cada relacionamiento binario (o unario) de conectividad mucho-a-
mucho en una relacin con las claves de las entidades y atributos del
relacionamiento.

PASO 3
Transformar cada relacionamiento ternario (o ms alto n-ario)en una relacin
utilizando las reglas que se dan a continuacin.

Profesor. Oscar Saavedra Rodrguez 42


3.2. REGLAS DE TRANSFORMACIN DE RELACIONAMIENTO UNARIO
Entidad Representacin Ejemplos
Vendedor, cada vendedor Vendedor (arut, nombre,
tiene exactamente uno de los direccin, zona,
otros vendedores como VENDEDOR rut-compaero)
compaero de zona

Compaero-de
Empleado, un empleado Empleado (arut, nombre,
puede tener a otro empleado Empleado direccin, rut-esposo)
como su esposo(a)
Valores nulos (V.N)
rut.esposo permitido en
empleado

Vendedor, los vendedores Vendedor (arut, nombre,


son divididos en grupos para Vendedor direccin, zona, rut.jefe)
ciertas zonas.
Cada grupo tiene un jefe. V.N rut. Jefe permitido en
vendedor

Jefe de
Vendedor (arut, nombre,...
Vendedor, un vendedor Vendedor rut.dirige)
dirige a uno de los otros
vendedores. V.N rut.dirige no permitidos
Uno debe ser dirigido por a vendedor
otro vendedor

Dirige
Producto, cada producto Producto (acdigo, precio,
puede ser parte de (o ser Producto descripcin, stock)
componente) muchos otros
productos Componente(acdigo,
acdigo. compo)
Proporcin)

Formar

Profesor. Oscar Saavedra Rodrguez 43


3.3. REGLAS DE TRANSFORMACIN DE RELACIONAMIENTO BINARIO
Entidad Representacin Ejemplos
Cliente, cta. corriente cl. Cliente (arut, nombre,
Cada cliente tiene una Cliente direccin, fono, giro)
cuenta corriente y cada
cuenta tiene un cliente. Cta. corriente
cliente(anmero, debe,
haber, saldo, RUTCL)
Tiene
V.N. RUTCL no permitidos
en cuenta corriente cliente
Cuenta
Corriente

Cliente, cta. corriente cl. Cliente (arut, nombre,


Un cliente puede tener una Cliente direccin, fono, giro)
cuenta corriente y cada
cuenta pertenece a un Cta. corriente
cliente. cliente(anmero, debe,
haber, saldo, RUTCL)
Tiene
V.N. RUTCL permitido en
cuenta corriente cliente
Cuenta
Corriente

Vendedor, PC. Vendedor (arut, nombre, ...)


Un PC puede ser asignado a Vendedor
un vendedor, pero no PC(nmero, Tipo,
necesariamente a todos. Descripcin, RutVend)
Tiene
V. N RutVend permitidos en
Asignado PC

PC

Cliente, Factura. Cliente(arut, nombre, ... )


Cada cliente tiene una o Cliente
muchas facturas y cada Factura(nmero, fecha,
factura pertenece a un nico neto, IVA, Descuento,
cliente RutCl)

V. N RutCl permitidos

Factura

Profesor. Oscar Saavedra Rodrguez 44


Vendedor, Factura. Vendedor(arut, nombre, ... )
Cada Vendedor puede Vendedor
generar varias facturas, una Factura(nmero, ... RutVD)
factura es generada por un
vendedor V. N, RutVD
No permitidos
Genera

Factura

Factura, Producto. Factura(nmero, fecha, ... )


Factura
Cada factura tiene a lo Producto(cdigo,
menos un producto, y cada Tiene descripcin, ... )
producto puede estar en
muchas facturas, o no. Factura.Producto(nmeroF
Esta en A, cdigoPR, cantidad).

Producto

3.4. REGLAS DE TRANSFORMACIN DE RELACIONAMIENTO TERNARIO


Entidad Representacin Ejemplos
Vendedor, PlanVta, Estrategia. Vendedor
Vendedor(arut, nombre, ... )
Un vendedor usar una
estrategia en un PlanVta(nmero, meta,
PlanVta.diferentes vendedores Uso Estrategia localizacin)
usarn diferentes estrategias
para el mismo PlanVta. Estrategia(cdigo,
Vendedores no usarn la Plan Vta Estrategia descripcin)
misma estrategia para
diferentes PlanVta, pero Uso.Estrategia(RutVD,
diferentes vendedores pueden nmero, cdigo)
usar la misma estrategia para
diferentes PlanVta.

Profesor. Oscar Saavedra Rodrguez 45


Tema VII: Lenguaje de programacin SQL
Conceptual Data Model
Project : MODELO DE VENTAS
Model : Model_CONCEPTUAL DE VENTAS
JEFE_DE
Author : Version 28-07-02

CLIENTES VENDEDORES
CRUT VRUT
CAPELLIDOS VAPELLIDO_PATERNO
CNOMBRE VAPELLIDO_MATERNO
CDIRECCION FACTURAS VNOMBRES
CCIUDAD FNUMERO VDIRECCION
CPAIS VMAIL
FFECHA
CFONO FNETO GENERA
VMETASEMESTRAL
CFONOMOVIL POSEER VMETAANUAL
FIVA
CMAIL FDESCUENTO VSUELDO
CGIRO VCOMISION
FTOTAL
CSITUACION VTIPO
CACTIVOS VFECHA_CONTRATO
CPASIVOS VCIUDAD
CSALDO
TENER
CLIMITECREDITO
CTIPO

DETALLE
DENUMERO
DECODIGOPRODUCTO VENDEDOR NACIONAL VENDEDOR INTERNACIONAL
DECANTIDAD VNFONO VICODIGO POSTAL
DESUBTOTAL VNFONO_MOVIL VISEGUROS
VNANEXO VIFAX
VNZONA VIASIGNACION
ESTAR

PRODUCTOS
PCODIGO
PDESCRIPCION ASIGNADO
PPRECIO_VENTA
PEXISTENCIA
PSTOCKMINIMO
PESPECIFICACION
PCOLOR PAIS
PPESO PACODIGO
PANOMBRE
PAPOBLACION
PAUBICACION
PATAMAO_MERCADO

PRODUCTO NACIONAL PRODUCTO IMPORTADO


PNCOSTO PICIF
PIFOB
PISEGUROS
PICOSTO
PIORIGEN

Profesor. Oscar Saavedra Rodrguez 46


VRUT = VEN2_VRUT

FACTURAS
FNUMERO integer VENDEDOR_INTERNACIONAL
CRUT varchar(10) VRUT varchar(10)
VRUT varchar(10) PACODIGO integer
CRUT = CRUT VEN_VRUT varchar(10) VEN_VRUT varchar(10)
FFECHA date VEN2_VRUT varchar(10)
FNETO integer VAPELLIDO_PAT varchar(25)
FIVA integer VAPELLIDO_MAT varchar(25)
FNUMERO = FNUMERO FDESCUENTO integer VRUT = VEN_VRUT
VNOMBRES varchar(10)
FTOTAL integer VDIRECCION varchar(25)
CLIENTES
VCIUDAD varchar(20)
CRUT varchar(10)
VMAIL varchar(20)
CAPELLIDOS varchar(25)
VMETASEMESTRAL integer
CNOMBRE varchar(25)
VMETAANUAL integer
CDIRECCION varchar(25)
VSUELDO integer
CCIUDAD varchar(15)
VCOMISION integer
CPAIS varchar(15)
VTIPO varchar(10)
CFONO integer
VFECHA_CONTRATO date
CFONOMOVIL smallint
VICODIGO_POSTAL varchar(20)
CMAIL varchar(20)
VISEGUROS integer
CGIRO varchar(10)
VIFAX integer
CSITUACION varchar(10) VRUT = VRUT VIASIGNACION integer
CACTIVOS integer
CPASIVOS integer
CLSALDO integer
CLIMITECREDITO integer
CTIPO varchar(10)
VRUT = VEN_VRUT

DETALLE
VENDEDOR_NACIONAL
FNUMERO integer
PCODIGO integer VRUT varchar(10)
PRO_PCODIGO integer VEN_VRUT varchar(10)
DECANTIDAD integer VAPELLIDO_PAT varchar(25)
DESUBTOTAL integer VAPELLIDO_MAT varchar(25)
VNOMBRES varchar(10)
VDIRECCION varchar(25)
PACODIGO = PACODIGO
VCIUDAD varchar(20)
VMAIL varchar(20)
VMETASEMESTRAL integer
VRUT = VEN_VRUT
VMETAANUAL integer
VSUELDO integer
VCOMISION integer
VTIPO varchar(10)
PCODIGO = PRO_PCODI GO VFECHA_CONTRATO date
PCODIGO = PCODIGO VNFONO integer
VNFONO_MOVIL integer
VNANEXO integer
PRODUCTO_NACIIONAL VNZONA varchar(10)
PCODIGO integer
PDESCRIPCION varchar(30)
PPRECIO_VENTA integer
PEXISTENCIA integer
PAIS
PSTOCKMINIMO integer
PESPECIFICACION varchar(20) PACODIGO integer
PCOLOR varchar(20) PANOMBRE varchar(20)
PPESO integer PAPOBLACION integer
PNCOSTO integer PAUBICACION varchar(20)
PATAMANO_MERCADO integer
PRODUCTO_IMPORTADO
PCODIGO integer
PDESCRIPCION varchar(30)
PPRECIO_VENTA integer
PEXISTENCIA integer
PSTOCKMINIMO integer
PESPECIFICACION varchar(20)
PCOLOR varchar(20)
PPESO integer
PICIF integer
PIFOB integer
PISEGUROS integer
PICOSTO integer
PIORIGEN varchar(20)

Profesor. Oscar Saavedra Rodrguez 47


Utilizando como referencia el modelo conceptual de ventas anterior, se definirn los
comandos del Lenguaje de programacin SQL.

SQL es un lenguaje declarativo de cuarta generacin y tiene tres funcionalidades


bsicas.

DDL (Data Definition Language), son los comandos que permiten definir la estructura
de la base de datos relacional, como por ejemplo: Crear tablas, indexes, Alterar
Tablas, Crear Vistas.

DML (Data Manipulation Language), son los comandos que permiten insertar nuevos
registros, modificar registros en la base de datos y eliminar registros, adems, de la
recuperacin de la informacin. Los comandos son: Insert, Update y Select.

DCL (Data Control Language), son los comandos de control y seguridad del sistema.

1. Ejemplo de comandos DDL.


create table CLIENTES
( CRUT varchar(10) not null,
CAPELLIDOS varchar(25) ,
CNOMBRE varchar(25) ,
CDIRECCION varchar(25) ,
CCIUDAD varchar(15) ,
CPAIS varchar(15) ,
CFONO integer ,
CFONOMOVIL smallint ,
CMAIL varchar(20) ,
CGIRO varchar(10) ,
CSITUACION varchar(10) ,
CACTIVOS integer ,
CPASIVOS integer ,
CLSALDO integer ,
CLIMITECREDITO integer ,
CTIPO varchar(10) ,
primary key (CRUT)
);
%% Table: VENDEDORES
%% ============================================================
create table VENDEDORES
(
VRUT varchar(10) not null,
VEN_VRUT varchar(10) not null,
VAPELLIDO_PAT varchar(25) ,
VAPELLIDO_MAT varchar(25) ,
VNOMBRES varchar(10) ,
VDIRECCION varchar(25) ,
VMAIL varchar(20) ,
VMETASEMESTRAL integer ,
VMETAANUAL integer ,
VSUELDO integer ,
VCOMISION integer ,
VTIPO varchar(10) ,
VFECHA_CONTRATO date ,
VCIUDAD varchar(20) ,
primary key (VRUT));
Profesor. Oscar Saavedra Rodrguez 48
%% ============================================================
%% Table: PAIS
%% ============================================================
create table PAIS
(
PACODIGO integer not null,
PANOMBRE varchar(20) ,
PAPOBLACION integer ,
PAUBICACION varchar(20) ,
PATAMANO_MERCADO integer ,
primary key (PACODIGO)
);
%% ============================================================
%% Table: PRODUCTOS
%% ============================================================
create table PRODUCTOS
(
PCODIGO integer not null,
PDESCRIPCION varchar(30) ,
PPRECIO_VENTA integer ,
PEXISTENCIA integer ,
PSTOCKMINIMO integer ,
PESPECIFICACION varchar(20) ,
PCOLOR varchar(20) ,
PPESO integer ,
primary key (PCODIGO)
);
%% ============================================================
%% Table: FACTURAS
%% ============================================================
create table FACTURAS
(
FNUMERO integer not null,
CRUT varchar(10) not null,
VRUT varchar(10) not null,
FFECHA date ,
FNETO integer ,
FIVA integer ,
FDESCUENTO integer ,
FTOTAL integer ,
primary key (FNUMERO)
);
%% ============================================================
%% Table: VENDEDOR_NACIONAL
%% ============================================================
create table VENDEDOR_NACIONAL
(
VRUT varchar(10) not null,
VEN_VRUT varchar(10) not null,
VAPELLIDO_PAT varchar(25) ,
VAPELLIDO_MAT varchar(25) ,
VNOMBRES varchar(10) ,
VDIRECCION varchar(25) ,
VMAIL varchar(20) ,
VMETASEMESTRAL integer ,
VMETAANUAL integer ,
VSUELDO integer ,
VCOMISION integer ,
VTIPO varchar(10) ,
VFECHA_CONTRATO date ,
Profesor. Oscar Saavedra Rodrguez 49
VCIUDAD varchar(20) ,
VNFONO integer ,
VNFONO_MOVIL integer ,
VNANEXO integer ,
VNZONA varchar(10) ,
primary key (VRUT)
);
%% ============================================================
%% Table: VENDEDOR_INTERNACIONAL
%% ============================================================
create table VENDEDOR_INTERNACIONAL
(
VRUT varchar(10) not null,
PACODIGO integer not null,
VEN_VRUT varchar(10) not null,
VAPELLIDO_PAT varchar(25) ,
VAPELLIDO_MAT varchar(25) ,
VNOMBRES varchar(10) ,
VDIRECCION varchar(25) ,
VMAIL varchar(20) ,
VMETASEMESTRAL integer ,
VMETAANUAL integer ,
VSUELDO integer ,
VCOMISION integer ,
VTIPO varchar(10) ,
VFECHA_CONTRATO date ,
VCIUDAD varchar(20) ,
VICODIGO_POSTAL varchar(20) ,
VISEGUROS integer ,
VIFAX integer ,
VIASIGNACION integer ,
primary key (VRUT)
);
%% ============================================================
%% Table: DETALLE
%% ============================================================
create table DETALLE
(
FNUMERO integer not null,
PCODIGO integer not null,
DECANTIDAD integer ,
DESUBTOTAL integer ,
primary key (FNUMERO, PCODIGO)
);
%% ============================================================
%% Table: PRODUCTO_NACIIONAL
%% ============================================================
create table PRODUCTO_NACIIONAL
(
PCODIGO integer not null,
PDESCRIPCION varchar(30) ,
PPRECIO_VENTA integer ,
PEXISTENCIA integer ,
PSTOCKMINIMO integer ,
PESPECIFICACION varchar(20) ,
PCOLOR varchar(20) ,
PPESO integer ,
PNCOSTO integer ,
primary key (PCODIGO)
);
Profesor. Oscar Saavedra Rodrguez 50
%% ============================================================
%% Table: PRODUCTO_IMPORTADO
%% ============================================================
create table PRODUCTO_IMPORTADO
(
PCODIGO integer not null,
PDESCRIPCION varchar(30) ,
PPRECIO_VENTA integer ,
PEXISTENCIA integer ,
PSTOCKMINIMO integer ,
PESPECIFICACION varchar(20) ,
PCOLOR varchar(20) ,
PPESO integer ,
PICIF integer ,
PIFOB integer ,
PISEGUROS integer ,
PICOSTO integer ,
PIORIGEN varchar(20) ,
primary key (PCODIGO)
);

alter table VENDEDORES


add foreign key FK_VENDEDOR_JEFE_DE_VENDEDOR (VEN_VRUT)
references VENDEDORES (VRUT) on update restrict on delete restrict;

alter table FACTURAS


add foreign key FK_FACTURAS_POSEER_CLIENTES (CRUT)
references CLIENTES (CRUT) on update restrict on delete restrict;

alter table FACTURAS


add foreign key FK_FACTURAS_GENERA_VENDEDOR (VRUT)
references VENDEDORES (VRUT) on update restrict on delete restrict;

alter table VENDEDOR_NACIONAL


add foreign key FK_VENDEDOR_INHR_VEND_VENDEDOR (VRUT)
references VENDEDORES (VRUT) on update restrict on delete restrict;

alter table VENDEDOR_INTERNACIONAL


add foreign key FK_VENDEDOR_ASIGNADO_PAIS (PACODIGO)
references PAIS (PACODIGO) on update restrict on delete restrict;

alter table VENDEDOR_INTERNACIONAL


add foreign key FK_VENDEDOR_INHR_VEND_VENDEDOR (VRUT)
references VENDEDORES (VRUT) on update restrict on delete restrict;

alter table DETALLE


add foreign key FK_DETALLE_TENER_FACTURAS (FNUMERO)
references FACTURAS (FNUMERO) on update restrict on delete restrict;

alter table DETALLE


add foreign key FK_DETALLE_ESTAR_PRODUCTO (PCODIGO)
references PRODUCTOS (PCODIGO) on update restrict on delete restrict;

alter table PRODUCTO_NACIIONAL


add foreign key FK_PRODUCTO_INHR_PROD_PRODUCTO (PCODIGO)
references PRODUCTOS (PCODIGO) on update restrict on delete restrict;

alter table PRODUCTO_IMPORTADO


add foreign key FK_PRODUCTO_INHR_PROD_PRODUCTO (PCODIGO)
references PRODUCTOS (PCODIGO) on update restrict on delete restrict;
Profesor. Oscar Saavedra Rodrguez 51
2. Ejemplo de comandos DML.
Procesos bsicos o de mantencin de las tablas de la base de datos.

El lenguaje de manipulacin de datos SQL incluye tres operaciones de actualizacin:


UPDATE (actualizar en el sentido de alterar o modificar), DELETE (eliminar) e INSERT
(insertar).

2.1. INSERT.

Se usa para insertar una fila (ver format 1) o una seleccin de filas desde cualquier parte
de la base de datos (ver format 2) en una tabla.

Format 1:
INSERT INTO [ owner.]table-name [( column-name, ... )]... VALUES ( expression | DEFAULT,
..)

Format 2:
INSERT INTO [ owner.]table-name [( column-name, ... )] . select-statement

Permissions: Must have INSERT permission on the table.

En el primer formato se inserta en tabla una fila con los valores especificados en
los campos especificados (el isimo literal en la lista de literales corresponde al
isimo campo en la lista de campos). En el segundo formato, se evala la
subconsulta y se inserta una copia del resultado (casi siempre varias filas) en
tabla; la isima columna de ese resultado corresponde al isimo campo en la lista
de campos. En ambos casos, omitir la lista de campos equivale a especificar una
lista con todos los campos de la tabla, en orden de izquierda a derecha (como en
el caso de SELECT*).

Insercin de un solo registro.

"Aadir el producto nacional a la tabla Producto.


INSERT INTO producto_naciional (pcodigo, pdescripcion,
pprecio_venta, pexistencia, pstockminimo, pespecificacion, pcolor,
ppeso, pncosto )
VALUES ( 30, 'computador personal',700,5,2,'de
marca','negro',10,650;

Se crea un nuevo registro de producto con el nmero de producto, el precio, costo


y el peso, etc. especificados. (Suponemos, en este ejemplo, que estos campos no
se definieron NOT NULL en la proposicin CREATE TABLE con la cual se cre la
tabla Producto). El orden de izquierda a derecha con el cual se nombran los
campos en la proposicin INSERT no es por fuerza el mismo con el que se
especificaron en la proposicin CREATE TABLE (o ALTER TABLE).

Profesor. Oscar Saavedra Rodrguez 52


Insercin de un solo registro, omitiendo nombres de campos.

"Aadir el producto 80 (descripcin, video; precio, 100; existencia, 50;


stockminimo, 10; color, negro; peso, 14; costo, 20) a la tabla Producto Nacional.
INSERT INTO producto_naciional
VALUES ( 80,' video', 100, 50, 10,'monocromatico', 'gris', 14,
20);

Omitir la lista de campos equivale a especificar una lista con todos los campos de
la tabla, en el orden de izquierda a derecha con el cual se definieron en la
proposicin CREATE TABLE. Como en el caso de SELECT*, esta forma corta
quiz sea conveniente en SQL interactivo, pero puede ser peligrosa en SQL
embebido (o sea, SQL dentro de un programa de aplicacin) porque la lista de
campos supuesta puede cambiar si el programa se religa y ha cambiado
entretanto la definicin de la tabla.

Insercin de un solo registro.

"Insertar una nueva compra con cdigo de producto 20 y cantidad 10.

INSERT INTO Detalle (Pcodigo, Fnumero, DECantidad, DESubtotal)


VALUES (20, 111, 10, 1000);

Al igual que UPDATE y DELETE, INSERT puede provocar problemas de integridad


referencial (si no existen controles adecuados). En el presente caso, DB
rechazar el intento de insercin, porque no existe la factura 111 en la tabla
Facturas ni el producto 20 en la tabla Productos.

Profesor. Oscar Saavedra Rodrguez 53


2.2. UPDATE (ACTUALIZAR)

Se usa para modificar datos en la base de datos.

UPDATE table-list
... SET column-name = expression, ...
... [ FROM table-list ]
... [ WHERE search-condition ]
... [ ORDER BY expression [ ASC | DESC ] ,... ]

Todos los registros de tabla que satisfagan condicin sern modificados de acuerdo
con las asignaciones (campo = expresin-escalar) de la clusula SET (establecer).

Permisos: se debe terner un permiso de UPDATE para las columnas que han de
modificarse.

Modificacin de un solo registro.

"Cambiar a blanco invierno el color del producto nacional 30, aumentar su peso en 5 e
indicar que su especificacin es desconocida (NULL)".

UPDATE producto_nacional
SET pcolor = 'blanco invierno', ppeso = ppeso + 5, pespecificacion =
null
where pcodigo = 30;

Para cada uno de los registros que se van a modificar (es decir, cada registro que
satisface la condicin WHERE, o todos los registros si se omite la clusula WHERE), las
referencias en la clusula SET a campos dentro de ese registro representan los valores
que tienen esos campos antes de ejecutarse cualquiera de las asignaciones de esa
clusula SET.

Modificacin de varios registros.


"Duplicar la meta de todos los vendedores nacionales situados en Santiago".

UPDATE vendedor_nacional
SET vmetasemestral = vmetasemestral * 2
where vciudad = 'Santiago'

2.3. DELETE (ELIMINAR)


Se usa para eliminar filas de una base de datos.

DELETE [FROM] [ owner.]table-name


... [FROM table-list]
... [WHERE search-condition]

Profesor. Oscar Saavedra Rodrguez 54


Must have DELETE permission on the table.

Se eliminarn todos los registros de tabla que satisfagan condicin.

Eliminacin de un solo registro.

"Eliminar el producto nacional cuyo cdigo es 10".

DELETE
FROM producto_naciional
WHERE pcodigo = 10;

En general, la eliminacin de un producto puede llegar a provocar una violacin de


la integridad referencial (si la base de datos incluye envos de ese producto;
comprese con el ejemplo anterior).

Eliminacin de varios registros.

"Eliminar todos las ventas cuya cantidad sea mayor que 300.

DELETE
FROM Detalle
WHERE DECantidad > 300;

Eliminacin de varios registros.

"Eliminar todos las ventas".


DELETE
FROM Detalle;

Detalle es todava una tabla conocida (eliminar todos los registros no equivale a
desechar (DROP) la tabla), pero ahora est vaca.

Eliminar todas las facturas con fecha antes del 1999.

DELETE
FROM Facturas
WHERE Ffecha < 1999;

Profesor. Oscar Saavedra Rodrguez 55


3. Ejemplo de comandos DML.
Procesos de Consultas de las tablas de la base de datos.

Se usa para obtener informacin de la base de datos.

3. SELECT [ ALL | DISTINCT ] select-list


...[ INTO { host-variable-list | variable-list } ]
...[ FROM table-list ]
...[ WHERE search-condition ]
...[ GROUP BY column-name, ... ]
...[ HAVING search-condition ]
...[ ORDER BY { expression | integer } [ ASC | DESC ], ... ]

- Resultado de consulta es otra tabla


- Modelo relacional es un sistema cerrado bajo los operadores de recuperacin de
datos de SQL

1. - Obtener los apellidos, nombre, direccin y la situacin de todos los clientes.

Select capellidos, cnombre, cdireccion, csituacion


From clientes;

Apellidos Nombre Direccin Situacin


Saavedra Daz Ivn Matta 1212 Buen cliente
Vergara Lpez Omar Placeres 2121 Regular

2. - "Obtener los cdigos de productos de todos los productos vendidos".

Select pcodigo
From Detalle;

Pcodigo
10
20
30
40
50
60
10
20
30
60

Obsrvese la repeticin de cdigos en el resultado. SQL no elimina filas repetidas, si el


usuario no se lo pide de manera explcita mediante la palabra clave DISTINCT:
Profesor. Oscar Saavedra Rodrguez 56
Select distinct Pcodigo
From Detalle;

- SQL no elimina filas repetidas del resultado.


- Se debe pedir explcitamente mediante la palabra clave Distinct (distinto)
Eliminar filas repetidas

3. - Recuperacin de valores calculados.

"Obtener, para todos los productos nacionales, el cdigo del producto y su peso en
gramos (en la tabla estn en libras).
Select Pcodigo, 'Peso en gramos = ', ppeso * 454
From producto_nacional;

Pcodigo
10 Peso en gramos = 4566
20 Peso en gramos = 7712
20 Peso en gramos = 7712
30 Peso en gramos = 6576
40 Peso en gramos = 8626

4. - "Obtener datos completos de todos los vendedores nacionales"

Select *
From Vendedor_nacional;

Resultado: una copia de toda la tabla de Vendedores nacionales.

5. - Recuperacin calificada.

" Obtener el RUT de los vendedores nacionales de la zona Santiago Centro cuyo sueldo
sea mayor que 400.000"
Select vrut as Nmero
From vendedor_nacional
Where vnzona = Santiago Centro
AND vsueldo > 400.000;

Nmero
4078990-5
2099999-8

Condicin que sigue a Where, puede incluir operadores:


Comparacin =, <>, >, >=, <, y <=
booleanos AND, OR y NOT.
Usar parntesis para orden de evaluacin.
6. - Recuperacin con ordenamiento.
" Obtener rut vendedor, apellidos y nombre de vendedor de la Zona Norte, en orden
descendente por meta.
Profesor. Oscar Saavedra Rodrguez 57
Select vapellidos as Apellidos, vnombres as Nombre, vrut as Rut
From vendedor_nacional
Where vnzona = Norte
Order by vmetasemestral desc,

Apellidos Nombre Rut


Prez Soto Juan 10.435.675-9
Salinas Lorca Pedro 80.987.999-7

- ASC es por omisin.


Order by apellido, meta

7. - Consultas de reunin.

La posibilidad de reunir 2 ms tablas en 1 sola es una de las caractersticas ms


poderosas de los sistemas relacionales. Distingue a los sistemas relacionales de los no
relacionales.

7.1 Equirreunin
"Obtener todas las combinaciones de informacin de clientes y vendedores tales que el
cliente y el vendedor en cuestin estn situados en la misma ciudad".

Select cliente.* , vendedor_nacional.*


From cliente c, vendedor_nacional v
Where c.cciudad = v.vciudad;

Las referencias a campos en clusula Where deben calificarse con los nombres de las
tablas correspondientes (pues de lo contrario seran ambiguas).
- El resultado de esta consulta es una reunin de tablas con base en valores de
ciudad iguales.
- No es obligatorio emplear la igualdad como operador de comparacin en una
condicin de reunin.
- Si el operador es la igualdad la reunin recibe el nombre de equirreunin. Se produce
un resultado con 2 columnas idnticas.
- Si se elimina una de esas columnas una reunin natural.

Select c.crut, c.capellidos, c.cnombre, c.cciudad


v.vrut, v.vapellidos, v.vnombre
From cliente as c, vendedor as v
Where c.cciudad = v.vciudad;

Una UNION reduce el conjunto de resultados basados en el tipo de union y en la


condicin de unin. Los tipos de unin se describen abajo y la condicin de unin se
especifica despues de la palabra ON.

Profesor. Oscar Saavedra Rodrguez 58


Los parntesis tambin pueden usarse para unir una tabla con ms de una tabla. Por
ejemplo:
A JOIN (B,C)
Une la tabla A a las tablas B y C.

Las expresiones de Tablas pueden ser arbitrariamente complejas. Por ejemplo:


A JOIN B JOIN C
A JOIN ( B, C JOIN D ).

Las uniones naturales y las uniones de claves se generan uniendo condiciones: esto es,
la palabra CLAVE o NATURAL indica una restriccin en los resultados de la unin.

Para una unin natural, la condicin de unin generada se basa en los nombres de las
columnas en las tablas unidas; para unin de claves, la condicin se basa en una relacin
de foreign key entre dos tablas.

Una UNION DE CLAVES restringe el conjunto de resultados basados en una relacin de


foreign key entre las dos tablas. Una condicin de unin puede, opcionalmente, ser
especificada para restringir los resultados de la unin. Una unin de claves es vlida si
excatamente una foreign key es identificada entre las dos tablas; de otro modo, se reporta
un error que indica ambigedad.

La forma ms simple de una condicin de unin es usarla en vez de una unin de claves
o una unin natural. En la base de datos de muestra, las siguientes son equivalentes:

SELECT * FROM facturas


JOIN clientes
ON factura.crut = clientes.crut

SELECT * FROM facturas


KEY JOIN clientes

Las siguientes dos tambin son equivalentes:


SELECT * FROM vendedor_nacional
JOIN facturas
ON vendedor_nacional.vrut = facturas.vrut

SELECT * FROM vendedor_nacional


NATURAL JOIN facturas

Si se usa el mismo nombre de correlacin dos veces para la misma tabla enuna expresin
de tablas, dicha tabla es tratada como si hubiese sido listada slo una vez. Por ejemplo,
en:

SELECT * FROM facturas


KEY JOIN detalle, facturas
KEY JOIN clientes
Las dos instancias de la tabla FACTURA son tratadas como una instancia, y es
equivalente a:

SELECT * FROM facturas


Profesor. Oscar Saavedra Rodrguez 59
KEY JOIN facturas
KEY JOIN clientes

7.2 Reunin mayor-que:


"Obtener todas las combinaciones de informacin de cliente y vendedor nacional donde la
ciudad del cliente siga a la ciudad del vendedor en el orden alfabtico".

Select cliente.*, vendedor.*


From cliente, vendedor_nacional
Where cliente.cciudad > vendedor_nacional.vciudad;
7.3.- Consulta de reunin con una condicin adicional.
"Obtener todas las combinaciones de informacin de cliente y vendedor, donde el cliente y
el vendedor en cuestin estn cosituados, pero omitiendo a los vendedores cuya sueldo
sea > 400.000"

Select c.*, v.*


From cliente as c, vendedor_nacional as v
Where (c.cciudad = v.vciudad) AND (vsueldo > 400.000);

7.4.- Recuperacin de campos especficos de una reunin.


"Obtener todas las combinaciones de nombre de cliente y nombre de vendedor, tales que
el cliente y el vendedor estn cosituados"
Select Cliente.nombre, Vendedor.Nombre
From Cliente, Vendedor
Where cliente.cnombre = vendedor.vnombre;

cnombre Vombre
Juan Mario
Olga Mario
Omar Mario
Luis Pablo
Ivn Daz Pablo Cceres

7.5.- Reunin de tres tablas.


"Obtener todas las facturas de un cliente y el vendedor que realiz la venta".

Select f.fnumero, f.ffecha, f.fneto, c.cnombre, c.crut, v.nombre


From cliente as c, factura as f, vendedor_nacional as v
Where (f.crut = c.crut) AND (f.vrut = v.vrut) AND (c.crut = '8.786.999-7');

Numero Fecha Neto Nombre Rut Nombre


7 10/11/97 500.000 Juan 8.786.999-7 Mario
10 12/12/97 3000.000 Juan 8.786.999-7 Mario

Profesor. Oscar Saavedra Rodrguez 60


7.6.- Reunin de una tabla consigo misma.
"Obtener todos los nombres de clientes tales que los clientes en cuestin estn
cosituados".

Select primera.cnombre , segunda.cnombre


From Cliente primera, Cliente segunda
Where (primera.cciudad = segunda.cciudad) AND (primera.crut < segunda.crut);

Para distinguir entre dos referencias, se introduce las variables de recorrido arbitrarias
Primera y Segunda, cada una de las cuales recorre la tabla Cliente. En todo momento,
Primera representa alguna fila de la "primera" copia de Cliente, y Segunda representa
alguna fila de la "segunda" copia de Cliente. El resultado de la consulta se obtiene
examinando todas las posibles parejas de valores Primera/Segunda y probando la
condicin Where en cada caso. La condicin primera.rut < segunda.rut es doble: a)
elimina parejas de nombre de clientes de la forma (x,x); b) garantiza la aparicin de slo
una de las parejas (x,y), y (y,x).

8.- Funciones de agregados.

Count() - nmero de valores en la columna


Sum() - suma de los valores de la columna
Avg() - promedio de los valores de la columna
Max() - valor ms grande de la columna
Min() - valor ms pequeo de la columna

En el caso de Sum y Avg la columna debe contener valores numricos. En general, el


argumento de una funcin puede ir precedido de manera opcional por la palabra clave
Distinct para indicar que los valores repetidos deben eliminarse antes de que se aplique la
funcin.

8.1.- "Obtener el nmero total de clientes".

Select count(*)
From Cliente;

8.2.- "Obtener el nmero de ventas del producto 10".

Select count(*)
From detalle
Where d.pcodigo = 10;

8.3.- "Obtener la cantidad de ventas del producto 10".

Select sum(d.dcantidad)
From detalle as d
Where d.dcodigo = 10;

Profesor. Oscar Saavedra Rodrguez 61


8.4.- Empleo de Group By (Agrupar por).
"Obtener las ventas de los productos, es decir, para cada producto obtener el cdigo y su
venta".
Select d.pcodigo, sum(d.dcantidad)
From detalle as d
Group By d.pcodigo;

pcodigo
10 600
20 1000
30 500
50 2000

8.5.- Empleo de Having


"Obtener los cdigos de los productos compradas por ms de un cliente".
Select d.pcodigo
From detalle as d
Group By d.pcodigo
Having Count(*) > 1;

Having es a los grupos lo que Where es a las filas (s se especifica Having, deber
especificarse tambin Group By).

9.- Recuperacin de datos con LIKE.


"Obtener todos los clientes cuyos nombres comiencen con la letra J".
Select Cliente.*
From Cliente
Where Cliente.nombre LIKE 'J%';

Tiene su opuesto NOT LIKE.

10.- Recuperacin de datos con subconsultas.


"Obtener los nombres de los clientes que compraron el ltimo mes"
Select c.cnombre
From Cliente c
Where c.crut IN
(Select f.crut
From Factura f
Where f.ffecha > '27/07/02');

Una subconsulta es una expresin Select ... From ... Where ... Group By ... Having
anidada dentro de otra expresin del mismo tipo. Las subconsultas se utilizan por lo
regular para representar el conjunto de valores en el cual se realizar una bsqueda
mediante una condicin IN (en). Para evaluar la consulta completa, el sistema evala
primero la subconsulta anidada.

Profesor. Oscar Saavedra Rodrguez 62


La consulta anterior se puede expresar tambin como una consulta de reunin:

Select c.cnombre
From Cliente c, Factura f
Where (c.crut = f.crut)
AND f.ffecha > '27/07/02');
Subconsulta con operador de comparacin distinto de IN.
"Obtener el nombre de los clientes situados en la misma ciudad que el vendedor Rut
12.888.999-0"
Select c.cnombre
From Cliente c
Where c.cciudad =
(Select v.vciudad
From vendedor v
Where v.vrut = '12.888.999-0');

Si el usuario sabe que el resultado de una subconsulta determinada ser exactamente un


valor, puede utilizar un operador de comparacin escalar sencillo (como =, >, etc.) en vez
del IN.

Funcin de agregados en una subconsulta.


"Obtener los nmeros de facturas cuyo valor neto sea superior al valor neto promedio"
Select f.fnumero
From Factura as f
Where f.fneto >
(Select Avg(fneto)
From Factura);

11.- Consulta con EXIST (existe).


"Obtener los nombres de los clientes que compraron el ltimo mes"
Select c.cnombre
From Cliente c
Where Exist
(Select *
From Factura f
Where c.crut = f.crut
AND f.ffecha > '31/07/02');

EXIST representa el cuantificador existencial. La expresin "Exist (Select ... From ..)" da
como
resultado un valor verdadero si y slo si el resultado de evaluar la subconsulta no es un
subconjunto vaco.

Cualquier consulta en la cual se utilice IN siempre se podr reformular a modo de utilizar


EXIST, lo opuesto, no se cumple.

12.- Consulta con NOT EXIST.

"Obtener los nombres de los clientes que no compraron el ltimo mes"


Profesor. Oscar Saavedra Rodrguez 63
Select c.cnombre
From Cliente c
Where Not Exist
(Select *
From Factura f
Where c.crut = f.crut
AND f.ffecha > '31/07/02');
Select c.cnombre
From Cliente c
Where c.crut NOT IN
(Select f.crut
From Factura f
Where f.ffecha > '31/07/02');

13.- Modificacin con subconsulta.


"Poner en ceros la cantidad transada por todos los vendedores de Valparaso".

UPDATE Detalle
SET DEcantidad = 0
WHERE Valparaso =
(SELECT v.vCIUDAD
FROM Vendedor_nacional as v
WHERE v.vrut = de.rut);

13.1. - Modificacin de varias tablas.

"Cambiar el rut del vendedor 10.888.777-8 a 7.999.777-9".

UPDATE Vendedor
SET v.vrut = 7.999.777-9
WHERE v.vrut = 10.888.777-8;

UPDATE Facturas
SET f.rutvend = 7.999.777-9
WHERE f.rutvend = 10.888.777-8;

Como por definicin las operaciones UPDATE (y DELETE e INSERT) modifican la base
de datos, existe siempre la posibilidad de alterarla en alguna forma incorrecta y violar con
ello la integridad de los datos. El ejemplo ilustra este punto: la primera proposicin
UPDATE (si fuera aceptada) hara inconsistente a la base de datos incluira algunos
envos para los cuales no existira el proveedor correspondiente- y permanecera en ese
estado en tanto no se ejecutara la segunda proposicin UPDATE. (En este ejemplo
pasamos por alto el hecho de que, en la prctica, DB Relacional rechazaran de todos
modos la primera modificacin, precisamente por este problema de integridad). De
hecho, el ejemplo ilustra un tipo muy especfico de violacin de la integridad, a saber, una
violacin de la integridad referencial.

14.- Eliminacin con subconsulta.


"Eliminar todas las ventas de los vendedores situados en Santiago".
Profesor. Oscar Saavedra Rodrguez 64
DELETE
FROM Detalle
WHERE Santiago =
( SELECT v.vciudad
FROM Vendedor v
WHERE v.vrut = de.vrut) ;

15.- Insercin de varios registros.

"Para cada parte suministrada, obtener el nmero de parte y la cantidad total


suministrada, y guardar el resultado en la base de datos".

CREATE TABLE TEMP


( P# CHAR(6) NOT NULL,
CANTTOTAL INTEGER NOT NULL,
PRIMARY KEY ( P# );
CREATE UNIQUE INDEX XT ON TEMP ( P# );
INSERT
INTO TEMP ( P# , CANTTOTAL )
SELECT P# , SUM(CANT)
FROM SP
GROUP BY P# ;

Se ejecuta la proposicin SELECT, igual que en una seleccin ordinaria, pero el


resultado, en vez de presentarse al usuario, se copia a la tabla TEMP. Ahora el usuario
puede hacer lo que desee con esa copia: consultarla, imprimirla, y hasta modificarla;
ninguna de esas operaciones afectar en absoluto a los datos originales. Cuando ya no
se necesite, la tabla TEMP podr desecharse:

DROP TABLE TEMP;

El ejemplo anterior es una ilustracin perfecta de la importancia de la propiedad de


cerradura en los sistemas relacionales (mencionada en la introduccin de la seccin). El
ejemplo funciona precisamente porque el resultado de una proposicin SELECT es otra
tabla. No funcionara si el resultado fuera algo distinto.

Por cierto, no es indispensable que la tabla est vaca antes de efectuar una insercin de
varios registros, aunque s lo est en el ejemplo anterior. Si no est vaca, los nuevos
registros simplemente se agregarn a los ya presentes.

Profesor. Oscar Saavedra Rodrguez 65


Con respecto a las cardinalidades, estas se transforman de las siguiente manera:

Normal Dbil
0..1

0..* *

1..1 1

1..*

Figura: Ejemplo de Modelo Conceptual.


Cliente
rut cl <pi> TXT <M>
nombre cl TXT
direccion cl TXT
fono cl I
rut cl <pi>

solicita

Proyecto Consultor
numero pr <pi> I <M> rut con <pi> TXT <M>
descripcion gral pr TXT genera
nombre con TXT
fecha D apellido con TXT
costo pr N fono con I
valor pr N
rut con <pi>
numero pr <pi>

contiene

DetalleProyecto
cantidad recurso I
cantidad equipo I
subtotal N
IVA N
Total N

Fuente: Elaboracin Propia.

Profesor. Oscar Saavedra Rodrguez 66


Figura 6.3. Ejemplo de Modelo Fsico de Datos Obtenido del Modelo Conceptual.
Cliente
rut cl NOTE <pk>
nombre cl NOTE
direccion cl NOTE
fono cl INTEGER

FK_PROYECTO_SOICITA_CLIENTE

Proyecto
numero pro INTEGER <pk> Consultor
rut cl NOTE <fk1>
rut con NOTE <fk2> FK_PROYECTO_GENERA_CONSULTO rut con NOTE <pk>
descripcion gral pr NOTE nombre con NOTE
fecha pr NUMERIC apellido con NOTE
costo pr NUMERIC fono con INTEGER
valor pr NUMERIC

FK_DETALLEP_CONTIENE_PROYECTO

DetalleProyecto
numero pro INTEGER <pk,fk>
cantidad recurso INTEGER
cantidad equipo INTEGER
subtotal NUMERIC
IVA NUMERIC
Total NUMERIC

Fuente: Elaboracin Propia.

Profesor. Oscar Saavedra Rodrguez 67


1. Tecnologas Web para el Desarrollo de Sistemas de Informacin

La utilizacin de sistemas de informacin en conjunto con la red Internet ha permitido a


las Organizaciones contar con la informacin justa en el momento preciso y de forma
constante, pero adems, desde cualquier lugar y en forma expedita. Es por esta razn
que el uso de tecnologas Web ha incrementado la utilidad de las Tecnologas de la
Informacin y Comunicacin (TIC) como apoyo al proceso de toma de decisiones.

Las tecnologas Web consideran el diseo y construccin de sitios y pginas Web como
un aspecto base, al cual se incorporan tecnologas que potencian la funcionalidad y el
diseo como son las aplicaciones java y el uso de sistemas de bases de datos en lnea a
travs de su vinculacin con pginas dinmicas.

1.1. Lenguaje de Hipertexto Basado en Marcas (HTML)

El Lenguaje de Hipertexto basado en Marcas, mejor conocido como HTML1 es el


lenguaje ms utilizado en la creacin de pginas Web. Consiste en un conjunto de
etiquetas que permiten describir documentos de texto y vnculos de hipertexto que
permiten desplazarse a otros documentos, independiente de la mquina que se utilice. Su
facilidad de uso y el no ser propiedad de nadie es lo que ha hecho a HTML un medio ideal
para compartir informacin en Internet.

En un principio se contaba con una determinada cantidad de etiquetas que marcaban la


informacin de acuerdo a su significado, y la visualizacin de formato del documento
quedaba en manos del navegador o browser. Sin embargo, con el paso del tiempo se
fueron aadiendo ms etiquetas con el fin de evitar problemas de formato en la
visualizacin de los documentos en diferentes navegadores, haciendo que HTML se
volviera un lenguaje orientado al control de la presentacin. Esta evolucin del lenguaje
permiti la salida al mercado de aplicaciones dedicadas a la creacin y construccin de
pginas Web basadas en el diseo como son los populares FrontPage de Microsoft y
Dreamweaver de Macromedia.

La aparicin de estas aplicaciones del tipo WYSIWYG2, las cuales pueden ser
consideradas como herramientas de modelado visual, permite que usuarios no
interiorizados con el lenguaje en s, puedan crear por propia iniciativa sus documentos de
pginas Web en forma simple y rpida.

La evolucin del lenguaje HTML ha permitido establecer vnculos con otro tipo de
documentos como son archivos de imgenes, vdeo, audio, aplicaciones, con lo cual ha
aumentado su funcionalidad y potencialidad en el desarrollo de documentos en la World
Wide Web.

1
Hyper Text Markup Language
2
Abreviacin para What You See Is What You Get (Lo que ves es lo que obtienes).
Profesor. Oscar Saavedra Rodrguez 68
1.1.1. Pginas Estticas y Dinmicas
En la medida que el uso de Internet se fue haciendo ms popular como Sistema de
Informacin, surgi la necesidad de incorporar un mayor dinamismo a la pginas Web que
muestran la informacin estticamente. Debido a esto, se desarrollaron las pginas Web
dinmicas, las cuales permiten establecer un cierto nivel de interaccin con los usuarios.
De este modo, los documentos de pginas Web se pueden clasificar en los siguientes
tipos:

Pginas Estticas. Corresponden a un documento Web cuyo autor determina su


contenido al momento de escribirlo, y por ende, ste no cambia. Cada vez que se emite
una solicitud a un documento esttico se recibe siempre la misma respuesta.
Pginas Dinmicas. Corresponden a documentos creados por el servidor Web cuando un
usuario lo solicita. El servidor Web, al recibir la solicitud, ejecuta un programa de
aplicacin que crea el documento dinmico y devuelve al solicitante el documento en
cuestin. El contenido del documento puede variar de solicitud en solicitud.
Pginas Activas. Un documento activo no es especificado completamente por el servidor,
ya que consta de un programa que entiende la forma de calcular y presentar valores.
Cuando un visualizador o usuario solicita un documento activo, el servidor regresa una
copia del programa que deber ejecutarse localmente. Por lo tanto, el contenido de un
documento activo nunca es fijo.

Tabla 7.1. Cuadro Comparativo de los Tres Tipos de Pginas.


Pgina Ventajas Desventajas
Esttica Sencillez. Inflexibilidad. Debe ser modificada cada
Confiabilidad. vez que cambie el contenido.
Desempeo. Los cambios requieren de tiempo y
Pueden ser presentadas con correcciones.
relativa rapidez por un navegador.
Dinmic Reportan informacin actualizada. Mayor costo de desarrollo.
a Incapaz de presentar informacin
cambiante mientras se visualiza el
documento en el navegador.
Activa Capaces de actualizar Costos extras de creacin y ejecucin.
continuamente la informacin.
Fuente: Sitio Web de SALNET S.A.

1.1.2. Herramientas para la Construccin de Pginas Web


Las principales herramientas para el diseo y construccin de pginas Web se clasifican
en tres tipos: Editores, Navegadores y Programas de Tratamiento de Imgenes.

Los editores de pginas Web son aquellas aplicaciones que permiten la creacin de
documentos HTML, la cual puede llevarse a cabo a travs de la de creacin y edicin de
cdigo por medio de los denominados Editores HTML; o bien, por medio de edicin de la
vista de diseo utilizando Editores WYSIWYG.

Profesor. Oscar Saavedra Rodrguez 69


Los editores HTML son recomendados para personas experimentadas que tienen
conocimiento del lenguaje y que quieren tener control total sobre el cdigo de sus
pginas. Los editores HTML ms utilizados son:

HTML-Kit. Posee autocompletado de cdigo y gran cantidad de asistentes.


Cute HTML. Posee una interfaz sencilla y fcil de utilizar. Recomendado para
principiantes.
Aracnophilia. Editor HTML gratuito y bastante popular. Permite la importacin de
documentos de MS Office a HTML.

Por otra parte, los editores WYSIWYG son utilizados por usuarios que desean crear y
editar pginas del mismo modo como lo hacen con un procesador de palabras. Adems,
los editores WYSIWYG son altamente empleados por usuarios ya sean principiantes, o
bien, que tienen poco o ningn conocimiento del cdigo. Los editores WYSIWYG ms
populares son:
Dreamweaver. Es un editor visual de pginas Web que ha alcanzado un alto nivel de
sofisticacin sin perder simplicidad, convirtindolo en la opcin ideal. Permite el manejo
de capas, efectos de HTML dinmico, entre otras herramientas profesionales. Tambin
posee la opcin de edicin y vista de cdigo, por lo que tambin puede ser utilizado como
un editor HTML.
FrontPage2000. Es un programa pensado para aprovechar la gran cantidad de temas que
se pueden incorporar a un sitio Web. Es ideal para aquellos usuarios que buscan realizar
un diseo rpido. Al igual que Dreamweaver, posee la opcin de edicin y vista de cdigo.
HotMetal Pro. Es una herramienta bastante cmoda para profesionales, aunque con un
uso bastante limitado en sus acciones.
Adobe Golive. Es una aplicacin que posee muchas funciones y ayudas. Se caracteriza
por su facilidad de uso. Tambin posee la opcin de edicin y vista de cdigo.

Los navegadores o browsers son utilizados para ver los resultados de las pginas que se
crean. Sin embargo, dadas las caractersticas del lenguaje HTML, se recomienda no
utilizar un solo navegador para la visualizacin de los documentos de pginas Web, ya
que muchas veces el navegador est a cargo de la visualizacin de los detalles, por lo
que dos navegadores pueden presentar de manera diferente un documento HTML.

Tal como ya se ha visto, el diseo y creacin de una pgina Web considera la creacin de
un cdigo. Sin embargo, la creacin del cdigo no es lo nico que se debe tomar en
cuenta. En la mayora de los casos est la incorporacin de imgenes, las cuales deben
ser creadas o editadas. Para ello se debe contar con programas de tratamiento de
imgenes. Algunos de los programas ms populares en el tratamiento de imgenes se
encuentran: Fireworks, Paint Shop Pro, Corel Draw, Adobe PhotoShop.

Adems de los tres tipos de herramientas necesarias para la creacin y edicin de


pginas Web, existe otro tipo de aplicaciones que aportan valor a las pginas tanto desde
la perspectiva del diseo como de la funcionalidad. Dichas aplicaciones se caracterizan
por la posibilidad de crear animaciones adjuntas a los documentos HTML e incorporando
aspectos multimediales que le brindan un mayor atractivo al visualizador de la pgina o
sitio Web. La herramienta ms popular de este tipo es Flash de Macromedia, la cual
permite desarrollar animaciones como entornos interactivos que complementan a las
Profesor. Oscar Saavedra Rodrguez 70
pginas creadas en HTML. En la actualidad, los archivos Flash se han vuelto un estndar
y pueden ser visualizados a travs de cualquier navegador.

1.2. Lenguaje de Marcas Extensibles (XML)

El lenguaje HTML ha sido, y sigue siendo, muy exitoso en mostrar documentos en la Web.
El crecimiento y desarrollo explosivo que ha sufrido Internet, as como los intereses
comerciales de las organizaciones ha requerido que el lenguaje evolucione para satisfacer
las continuas necesidades de funcionalidad y diseo de las pginas. Sin embargo, el
lenguaje sigue siendo bastante rgido. Esto llev a los desarrolladores de HTML a
estructurar un nuevo lenguaje denominado XML3, ms flexible que HTML, pero capaz de
aprovechar sus ventajas.

XML no es slo un simple lenguaje, sino que corresponde a un metalenguaje, ya que


permite definir un propio lenguaje de etiquetas para mltiples tipos de documentos. Las
marcas ms utilizadas tienden a ser descritas por textos caractersticos encerrados entre
los signos < y >, existiendo una marca al principio y otra al final, como lo es por
ejemplo <TITULO>Investigacin de Operaciones</TITULO>, la cual describe que
Investigacin de Operaciones corresponde a un ttulo, posiblemente de un curso o un
texto, pero no se refiere a una serie de contenidos. Esta es una de las ventajas de XML
sobre HTML, ya que las etiquetas de HTML slo describen el tipo de formato del
documento, pero no lo que contienen stas. En cambio, XML permite identificar el
contenido que est etiquetando. No obstante, XML no corresponde a una versin
mejorada de HTML sino que corresponde a un metalenguaje ms rico y complementario a
HTML. Dicho esto, se pueden mencionar las ventajas que posee XML sobre HTML:

Los diseadores pueden crear sus propios tipos de documentos, los cuales pueden ser
hechos a medida al poder crear etiquetas propias.

XML puede entregar ms y mejores facilidades para la representacin en los


visualizadores, permitiendo que la informacin contenida sea ms rica y fcil de utilizar, lo
cual otorga una mayor flexibilidad al lenguaje.

La informacin se vuelve ms accesible y reusable, ya que la flexibilidad de las etiquetas


de XML pueden emplearse sin tener que ajustarse a las reglas especficas de HTML.

El uso de etiquetas personalizadas de XML permite organizar la informacin en una


estructura de tipo rbol, es decir como un componente formado por otros componentes,
donde cada uno de estos ltimos puede contener texto o ms componentes.

La presentacin se lleva cabo mediante una hoja de estilo, la cual corresponde a una
descripcin de cmo debe visualizarse una informacin en un medio determinado. Segn
sea la conveniencia para la presentacin de un mismo documento, se pueden emplear

3
Extensible Markup Language
Profesor. Oscar Saavedra Rodrguez 71
diferentes hojas de estilo. Es decir, se puede emplear una hoja de estilo para presentar el
documento como pgina Web, otra para presentarlo como texto imprimible, etc.

XML se utiliza mucho en la actualidad para el establecimiento de la comunicacin entre


varias partes que desean dialogar entre s, proveyendo una forma para definir el
vocabulario a emplear, las interfaces entre dichas partes que vayan evolucionando en el
tiempo. Por ejemplo, cuando se habla de un sitio de compras en lnea que se comunica
con una empresa de tarjetas de crdito.

XML describe una clase de objetos de datos denominados documentos XML, y


parcialmente describe el comportamiento de programas que pueden procesarlos.
Adems, los documentos XML estn formados por unidades de almacenamiento llamadas
entidades, las cuales contienen datos procesados o sin procesar. Los datos procesados
estn hechos de caracteres, algunos de los cuales conforman datos de carcter y otros
conforman marcas. Las marcas codifican la descripcin del esquema de almacenamiento
y estructura lgica del documento.

La creacin de documentos XML se puede realizar por medio de editores de texto,


aunque es recomendable el uso de editores especializados. Dentro de stos existen dos
tipos: los que representan el fichero en forma de rbol y permiten construir el documento
trabajando sobre este rbol y formularios adicionales; y los que representan el documento
XML en su formato original y que normalmente son editores de ficheros de texto con
facilidades para XML.

Para que un documento XML sea vlido debe cumplir con los siguientes requisitos:
El documento debe estar bien estructurado.
El elemento raz debe coincidir con el nombre que proporcione la declaracin del tipo de
documento.
El documento debe tener una Definicin de Tipo de Documento (DTD) que declare todos
los elementos, atributos y entidades que se utilicen en el documento.
El documento debe adherirse a la gramtica que establezca la DTD.

En un documento XML se distinguen dos estructuras: fsica y lgica. La estructura fsica


est dada por una o ms unidades de almacenamiento virtual denominadas entidades.
Todas estas unidades tienen contenido y estn identificadas por un nombre. Cada
documento XML contiene una entidad llamada entidad documento, la cual sirve como
punto de inicio para el procesador XML y puede contener el documento completo.

Las entidades pueden ser de dos tipos: analizadas o sin analizar. El contenido de una
entidad analizada tambin es conocido como texto de reemplazo y es parte integrante del
documento. En cambio, las entidades no analizadas son recursos cuyo contenido puede
ser texto o no. Las entidades se invocan a travs de su nombre; en el caso de las
entidades analizadas la invocacin se lleva a cabo a travs de su referencia a entidad, y
en el caso de las entidades no analizadas, se realiza a travs de sus atributos de entidad.

Por otra parte, la estructura lgica est determinada por los elementos que hay en dicho
documento junto con las relaciones que hay entre ellos. Los elementos estn delimitados
por etiquetas de comienzo y de final. Cada elemento tiene un tipo identificado por un

Profesor. Oscar Saavedra Rodrguez 72


nombre, denominado identificador genrico, y puede tener un conjunto de
especificaciones de atributos.

Cada especificacin de atributo tiene un nombre y un valor, y no restringen la semntica,


el uso o los nombres de los tipos de los elementos y los atributos, con excepcin de los
nombres que comienzan por XML, los cuales se reservan para estandarizar etiquetas o
atributos en versiones posteriores. Una analoga a la estructura fsica y lgica de un
documento XML es la estructura fsica y lgica de una base de datos relacional, la cual
emplea campos y tablas en el aspecto lgico, y archivos binarios en el aspecto fsico.

1.3. Herramientas para Pginas Web Personales (PHP)

La herramienta PHP4 naci como un analizador sintctico de un nmero limitado de


comandos. Posteriormente se dise y desarroll un sistema para el procesamiento de
formularios. Con el rpido avance que sufri Internet, se incorporaron nuevas
funcionalidades como soporte a nuevos protocolos de Internet y el soporte a una gran
cantidad de bases de datos comerciales.

PHP se caracteriza por presentar varias virtudes que corroboran su alta funcionalidad y
utilidad, especialmente para el trabajo con sistemas de gestin en lnea basados en
pginas Web dinmicas con conexiones a bases de datos tanto dentro de una Intranet
como en Internet. Las caractersticas de PHP consideran:

Software Libre. Se distribuye gratuitamente en la Web.


Soportado en diversos tipos de plataformas.
Presenta un soporte para bases de datos, dentro de las cuales pueden mencionarse:
Interbase, mSQL, MySQL, Oracle, Informix, PosgreSQL, entre otras.

PHP presenta la posibilidad de llevar a cabo una serie de tareas tiles en la gestin de
sistemas de informacin en lnea, como son:

El envo de correo a una persona o a una lista parametrizando toda una serie de aspectos
tales como e-mail de procedencia, el asunto, persona a responder, entre otras.
La generacin de interfaces para acceder a bases de datos comerciales y por ODBC, a
partir de las cuales se puede editar el contenido de un sitio en forma sencilla.
La realizacin de funciones de administrador FTP para la gestin de archivos a partir de
sentencias en el cdigo para el cual PHP ha previsto una gran cantidad de funciones
adems de las estndares (crear, borrar, mover, modificar, etc.).
El uso de PHP facilita la realizacin de operaciones tales como el uniformar el tamao de
imgenes o la creacin de platillas Web donde slo se modifican contenidos con el uso de
libreras de funciones grficas.

4
Personal Home Page
Profesor. Oscar Saavedra Rodrguez 73
1.4. MySQL

MySQL es sistema de gestin de bases de datos implementada como arquitectura cliente


servidor con la cual se puede agregar, acceder y procesar datos grabados en una base de
datos. Trabaja con bases de datos relacionales implementadas a travs de SQL
(Lenguaje Estructurado de Consultas), el cual se caracteriza por ser un lenguaje de fcil y
rpido aprendizaje, fundamentado en lgebra relacional, trabaja con conceptos simples
que involucran a tablas (filas y columnas), es un lenguaje estndar y flexible para efectos
de consultas.

MySQL es un software accesible para cualquiera, ya sea para uso o modificacin. Se ha


convertido en una aplicacin muy til debido a su rapidez, flexibilidad, robustez, facilidad
de uso tanto para volmenes de datos grandes como pequeos. La conectividad,
velocidad y seguridad hace de MySQL una herramienta altamente conveniente para el
acceso a bases de datos en Internet a travs de la interaccin entre el sistema
administrador de base de datos y el uso de pginas Web dinmicas. Sin embargo, la alta
rapidez de MySQL es a costa de no implementar ciertos aspectos de SQL como son los
Triggers y la Lgica Transaccional.

Los Triggers corresponden a una porcin de cdigo almacenado que se dispara o


ejecuta cuando se realiza una operacin con la base de datos. La comprobacin de la
existencia del disparador y su ejecucin consume recursos y tiempo y es la nica razn
por la que no se encuentran implementados en esta herramienta.

Por otra parte, un aspecto muy importante para cualquier base de datos relacional es la
consistencia de las tablas que la componen, y para conseguir esto de una forma
relativamente fcil se utiliza la Lgica Transaccional, donde ser el mismo gestor de base
de datos el que proporcione mecanismos de bloqueo de ficheros y consolidacin o
retroceso en las operaciones con las tablas. No obstante, tal como se mencion, MySQL
no soporta las transacciones en favor de la velocidad y slo permite la utilizacin de
comandos de bloqueo y desbloqueo de tablas, impidiendo que otros usuarios puedan
acceder a ellas, pero sin la posibilidad de deshacer las operaciones realizadas con los
datos.

1.5. Java

Java es un lenguaje totalmente orientado a Internet, cuyas aplicaciones generadas


buscan lograr la ejecucin independientemente del hardware y del sistema operativo. Por
lo tanto, las aplicaciones Java pueden instalarse en Internet y ser ejecutadas en mquinas
clientes, en cualquier entorno que lo soporte sin la necesidad de crear una aplicacin en
cada entorno.

Java se caracteriza por brindar la construccin de aplicaciones distribuidas y de agentes


de software con facilidad, permitir que las aplicaciones sean interactivas cuando se
utilizan a travs de la Web, debido a que permite la escritura fiable de programas en
Profesor. Oscar Saavedra Rodrguez 74
mltiples plataformas, as como la distribucin de aplicaciones a travs de la red; esto la
convierte en una herramienta potente para el desarrollo de aplicaciones para la red. Sin
embargo, a pesar de ser compatible con muchas plataformas, no lo es con todas; el
problema de compatibilidad no slo se presenta en la plataforma de software y hardware,
sino que tambin con versiones de Java. Adems puede se puede dar que Java no
alcance las exigencias de rendimiento de las aplicaciones en las que la velocidad de
ejecucin es de vital importancia, como es el caso de las aplicaciones de tiempo real.
Finalmente, si bien Java se caracteriza por ser un lenguaje simple, requiere de un cierto
tiempo de aprendizaje para que los programadores puedan aprovechar su potencial.

El lenguaje Java se utiliza principalmente en la creacin de applets, los cuales


corresponden a programas escritos en Java que se transfieren junto a una pgina HTML
desde donde se le llama, desde un servidor Web y que se ejecuta localmente en un
browser. Se emplean para proporcionar mayor interactividad y dinamismos a los
servidores Web. Los applets se caracterizan por tener restricciones de seguridad ya que
provienen de cualquier servidor Web y se ejecutan localmente y pueden provocar daos
al sistema o brechas en la seguridad. Sin estas restricciones, los applets podran
programarse para contener virus. Las restricciones sobre lo que un applet realiza incluyen
las siguientes:
No se puede leer o escribir en el sistema de archivo donde se ejecuta el browser, a
excepcin de directorios especficos.
Por lo general, no pueden comunicarse con un servidor distinto del que tena almacenado
el applet original.
No se puede ejecutar programas en el sistema donde se ejecuta el browser.
No se pueden volver a cargar programas residentes en el sistema donde se ejecuta el
browser, incluidas las DLL.

Las aplicaciones de Java pueden ser autnomas, de red o distribuidas. La diferencia entre
cada una de stas se centra en el uso de los recursos. Para el caso de las aplicaciones
autnomas, el programa se ejecuta por medio de los recursos de un solo computador; en
el caso de las aplicaciones de red, se utilizan los recursos disponibles en la red; mientras
que en el caso de las aplicaciones distribuidas, stas estn formadas por objetos que se
ejecutan en mltiples computadores.

Profesor. Oscar Saavedra Rodrguez 75


2. Aplicacin de UML en el Modelado de un Sistema de Informacin de Gestin del
Recurso Humano

2.1. Contexto de la Situacin

En las Organizaciones es cada vez ms importante saber y conocer las habilidades y


capacidades del personal que se desempea en las distintas reas. Un jefe o gerente de
rea necesita informacin de su personal a cargo para decidir formar los equipos de
trabajo ms adecuados para el desarrollo de proyectos y actividades de la institucin.
Tambin es importante mantener informacin de la evaluacin y desarrollo del personal
en la unidad de trabajo. Frente a nuevas necesidades o requerimientos de proyectos, el
gerente de rea debe decidir mover personal de su unidad o recurrir a seleccionar
candidatos (postulantes) externos.

Por estas razones, es necesario disear un eficiente sistema de informacin que refleje
los siguientes procesos: el proceso se inicia cuando un jefe o gerente de unidad debe
enfrentar el desarrollo de un nuevo e importante proyecto y requiere personal; por tal
motivo se determina el perfil del personal a contratar o asignar. Con estos antecedentes
se comienza el proceso de reclutamiento de personal. Esta actividad debe difundir los
requerimientos de personal al mercado laboral y revisar las bases de datos internas de la
unidad, a travs de distintos medios (contactos en las Universidades, peridico, radio,
etc.). Una vez que llegan los antecedentes de los postulantes se inicia el proceso de
seleccin (entrevistas, pruebas, tests, etc.). Este proceso puede ser con postulantes
externos y personal interno que desea una promocin. En este momento se actualiza la
base de datos de personal con la informacin del postulante (Rut, nombre, fecha de
nacimiento, direccin, estado civil, nacionalidad, estudios bsicos, estudios universitarios,
ttulo profesional, habilidades personales, experiencia, trabajo anterior, recomendacin,
personas recomendacin, capacidad fsica, capacidad intelectual, etc.).

Una vez terminado el proceso de seleccin, el personal aceptado pasa por un proceso de
socializacin (se dan a conocer las normas y procedimientos de la Organizacin, el
puesto que desempear, colegas, etc.), en este momento se actualiza nuevamente la
base de datos con la informacin del cargo (nmero, nombre, descripcin, funciones y
responsabilidades, dependencia y cargos, subordinados), el contrato (nmero, fecha
contrato, tipo contrato, sueldo bruto, beneficios mdicos, AFP, descuentos especiales,
asignaciones especiales, sueldo neto, etc.).

El personal cuando desempea su actividad en la empresa debe pasar por procesos de


capacitacin y entrenamiento, para mejorar sus capacidades y habilidades. Una vez
terminados estos procesos, nuevamente es necesario actualizar la base de datos de
personal con informacin de cursos (cdigo, nombre, fecha inicio, fecha trmino,
resultados, valor del curso, habilidades desarrolladas, etc.). Estos antecedentes son un
elemento importante en el momento de la evaluacin del personal.

Otro proceso importante es el proceso de evaluacin del personal, el cual se debera


desarrollar peridicamente. En este proceso, utilizando indicadores y variables
desarrolladas con esta finalidad, el jefe y colegas del personal realizan una evaluacin
Profesor. Oscar Saavedra Rodrguez 76
personal basada en los resultados de las actividades desarrolladas por las personas en
sus equipos de trabajo y los resultados su capacitacin. Esta informacin es ingresada a
la base de datos de personal, la evaluacin contiene la informacin de la persona
evaluada (Rut, nombre, cargo, fecha de evaluacin, tipo, conocimiento, participacin,
relaciones interpersonales, trabajo en equipo, liderazgo, etc.) y del evaluador (Rut,
nombre, cargo, responsabilidad).

Si una persona de la Organizacin tiene un desempeo inadecuado o presenta un


comportamiento que no est acorde con las reglas de la Organizacin, se abre un
expediente disciplinario. Esta informacin tambin debe ser ingresada a la base de datos
de personal (nmero expediente, fecha, motivo, unidad, responsable, recomendaciones,
etc.). Estos expedientes tambin pueden ser por un buen desempeo en esta situacin, y
con estos antecedentes se puede asignar un beneficio o incentivo al personal.

En base a los antecedentes de desempeo del personal en su puesto de trabajo


(evaluacin) y a los resultados de la capacitacin y entrenamiento del personal se realizan
los procesos de mantenimiento del personal, es decir, se revisa el contrato, los beneficios
sociales, cargas familiares y en general, todos los beneficios asociados, y se determina un
mejoramiento o mantener la situacin actual del personal, dependiendo de la informacin
obtenida de la base de datos de personal. Si se produce algn cambio esto debe ser
reflejado en la base de datos.

Una vez transcurrido un tiempo, una persona en la empresa pasa a un proceso de retiro o
separacin de la unidad; esto puede ser por renuncia, jubilacin o despido. En este
momento se calculan todos los indicadores de acuerdo a los antecedentes en la base de
datos de personal y se realiza el proceso respectivo.

2.2. Modelo de Proceso de Negocios

Una vez que se conoce el contexto de la situacin se ha procedido a realizar el modelado


del Proceso de Negocios de la unidad. En el cual se han identificado cuatro procesos
principales que se pueden llevar a cabo de forma paralela, aunque mantienen un vnculo
entre ellos dado por la informacin que se entrega y solicita.

El primer proceso de negocio consiste en el reclutamiento y contratacin o ascenso de


nuevo personal a travs de las postulaciones de personas externas o de personal interno
a la organizacin a partir de la identificacin de necesidades de nuevo recurso humano
para el desarrollo de proyectos y actividades.

El segundo proceso identificado, corresponde a la definicin de personal que debe ser


enviado a capacitacin para adquirir y desarrollar determinadas capacidades requeridas
en ciertas actividades en las que se ver involucrado dentro de la organizacin. La
imparticin de los cursos de capacitacin est considerada como de tipo externa, es decir,
existe una determinada cantidad de centros de estudios encargados de dicha labor, por lo
que stas quedan fuera del dominio del problema solucin del sistema.

Profesor. Oscar Saavedra Rodrguez 77


El tercer gran proceso dice relacin con la evaluacin de desempeo del personal cargo
de un equipo o comisin conformada por el mismo jefe de rea y otros empleados de la
misma. Realizada la evaluacin se procede con la generacin o actualizacin del
expediente del empleado en particular.

El cuarto proceso hace referencia a la promocin y el despido de personal de acuerdo a


revisin de los expedientes obtenidos resultado de las evaluaciones, lo cual consiste en
trminos globales en un proceso de mantencin del recurso humano de la organizacin. A
continuacin se presentan los diagramas de proceso de negocio para el caso en estudio.

Figura 8.1. Modelo de Procesos de Negocios Global.

Seleccion y contratacin de personal

Depto de RRHH

Cargo Contrato

Personal

Capacitar personal
Mantener Personal

Evaluacin

Evaluar Personal

Expediente

Cursos capacitacin

Fuente: Elaboracin Propia

Profesor. Oscar Saavedra Rodrguez 78


Cada uno de los procesos globales presentados, se vinculan entre s a travs de los
requerimientos de informacin existentes entre ellos, as como por otra parte, stos
pueden ser explicados individualmente como un procesos paralelos, pero relacionados, tal
como se presenta en las figuras siguientes.

Figura 8.2. Subdiagrama de Proceso de Negocios: Seleccin y Contratacin de RR.HH

De fi n i r p e rfi l Je fe d e A re a
De p to d e RRHH

P e rfi l d e p e rso n a l P e rfi l d e p e rso n a l

Re vi sa r i n fo rm a ci n e n B D d e p e rso n a l Di fu n d i r a m e rca d o l a b o ra l

Re ci b i r a n te ce d e n te s d e p o stu l a n te s

A n te ce d e n te s d e P o stu l a n te s E xte rn o s

P o stu l a n te E xte rn o A l m a ce n a r a n te ce d e n te s p o stu l a n te s e xte rn o s


[S I]

[NO ]
Re a l i za r e n tre vi sta i n i ci a l

P o stu l a n te s

P e rso n a l

E n tre vi sta a p ro b a d a
[NO ]

[S I]
Ca rg o
Re a l i za r te sts

T e sts a p ro b a d o s
[NO ]

[S I]

Re a l i za r e n tre vi sta fi n a l

[S I] [NO ]
E n tre vi sta a p ro b a d a

Co n tra to
S e l e cci o n a r p o stu l a n te

Fuente: Elaboracin Propia.


Profesor. Oscar Saavedra Rodrguez 79
Figura 8.3. Subdiagrama de Proceso de Negocios: Capacitacin de Personal.

De p to d e RRHH S e l e cci o n a r cu rso d e ca p a ci ta ci n

De si g n a r p e rso n a l a ca p a ci ta r

Cu rso s ca p a ci ta ci n

P e rso n a l
O b te n e r re su l ta d o s d e ca p a ci ta ci n

Re su l ta d o s ca p a ci ta ci n

Re g i stra r re su l ta d o s d e ca p a ci ta ci n

Je fe d e A re a

Fuente: Elaboracin Propia.

Figura 8.4. Subdiagrama de Proceso de Negocios: Evaluacin de Personal.

Profesor. Oscar Saavedra Rodrguez 80


Conformar Equipo evaluador

Cursos capacitacin

Evaluar empleado

Evaluacin de desempeo
Personal

Evaluacin
Archivar Evaluacin

Crear Expediente Disciplinario


Expediente

Jefe de Area

Fuente: Elaboracin Propia.


Figura 8.5. Subdiagrama de Proceso de Negocios: Mantencin de Personal.

Profesor. Oscar Saavedra Rodrguez 81


Personal

Cursos capacitacin

Recopilar antecedentes Expediente

Revisar Contrato
Contrato
Evaluacin

Promover empleado Promover empleado


[SI]

[NO]

Cargo

Jefe de Area
[SI]
Despedir Empleado Remover empleado

[NO]

Mantaner situacin actual del empleado

Depto de RRHH

Fuente: Elaboracin Propia.

Cada uno de los diagramas presentados muestra los detalles del proceso de negocios del
rea en estudio, teniendo en cuenta cmo se lleva cabo las cuatro principales tareas, es
posible obtener los requisitos necesarios para el modelado del problema y la delimitacin
de su dominio y solucin.

Una vez terminado el modelado del sistema de acuerdo a esta metodologa, se analiza el
sistema desde una perspectiva estructural a travs de la utilizacin del enfoque de base
de datos. Con este propsito y el apoyo de herramientas CASE, se puede continuar con el
modelado del sistema, efectuando una conversin del diagrama de clases a un modelo
conceptual de datos, en el cual se definen los identificadores que permitirn distinguir un
registro de otro, para luego llevar a cabo el proceso de normalizacin de datos.

La siguiente figura muestra el modelo conceptual de datos obtenido para el sistema en


estudio.
Figura 8.15. Modelo Conceptual de Datos para el Sistema de Informacin de RR.HH.

Profesor. Oscar Saavedra Rodrguez 82


Postulante
rut <pi> A9 <M>
nombres TXT CursoCapacitacion
apellidoPaterno TXT codigoCurso <pi> I <M>
apellidoMaterno TXT nombreCurso TXT
fechaNacimiento D fechaInicio D
direccion TXT fechaTermino D
estadoCivil TXT resultados N
estudiosBasicos TXT valorCurso N
estudiosUniversitarios TXT habilidadesDesarrolladas TXT
tituloProfesional TXT
codigoCurso <pi>
habilidades TXT
experiencia TXT
trabajoAnterior TXT Contrato
recomendacion TXT
numeroContrato <pi> I <M>
capacidadFisica TXT
Realiza fecha D
capacidadIntelectual TXT tipoContrato TXT
rut <pi> sueldoBruto N
beneficiosMedicos TXT
AFP TXT
Es
descuentosEspeciales N
asignacionesEspeciales N
firma sueldoNeto N
numeroContrato <pi>
Externo
(D)
fechaPostulacion D Empleado
Cargo
antiguedad I codigoCargo <pi> I <M>
nombreCargo TXT
ejecuta
descripcion TXT
ExpedienteDisciplinario (D) funciones TXT
pertenece responsabilidades TXT
numeroExpediente <pi> I <M>
fechaExpediente D conforma dependencia TXT
motivo TXT subordinados TXT
unidad TXT codigoCargo <pi>
responsable TXT
recomendaciones TXT EquipoEvaluador
numeroExpediente <pi> codigoEquipo <pi> I <M>
numeroIntegrantes I
genera
Evaluacion codigoEquipo <pi>
fechaEvaluacion D
tipoEvaluacion TXT
conocimiento TXT
participacion TXT
relacionesInterpersonales TXT
trabajoEquipo TXT
liderazgo TXT

Fuente: Elaboracin Propia.

Una vez generado el modelo conceptual de datos, y sus posteriores correcciones de


redundancias, se ha generado un modelo fsico de datos con la utilizacin de la
herramienta CASE PowerDesigner. El modelo fsico que se genera presenta las tablas
que se implementar en la construccin del sistema de base de datos, as como la
definicin de las claves primarias y forneas que permitirn la compilacin de informacin
de varias tablas al definir consultas de informacin por medio de sentencias en SQL.

Figura 8.16. Modelo Fsico de Datos para el Sistema de Informacin de RR.HH.

Profesor. Oscar Saavedra Rodrguez 83


Postulante CursoCapacitacion
rut CHAR(9) <pk> codigoCurso INTEGER <pk>
nombres NOTE nombreCurso NOTE
apellidoPaterno NOTE fechaInicio DATE
apellidoMaterno NOTE fechaTermino DATE
fechaNacimiento DATE resultados NUMERIC
direccion NOTE valorCurso NUMERIC
estadoCivil NOTE habilidadesDesarrolladas NOTE
estudiosBasicos NOTE
estudiosUniversitarios NOTE Contrato
tituloProfesional NOTE FK_REALIZA_REALIZA_CURSOCAP
habilidades NOTE numeroContrato INTEGER <pk>
experiencia NOTE rut CHAR(9) <fk>
trabajoAnterior NOTE fecha DATE
Realiza tipoContrato NOTE
recomendacion NOTE
capacidadFisica NOTE rut CHAR(9) <pk,fk1> sueldoBruto NUMERIC
capacidadIntelectual NOTE codigoCurso INTEGER <pk,fk2> beneficiosMedicos NOTE
AFP NOTE
descuentosEspeciales NUMERIC
asignacionesEspeciales NUMERIC
FK_EXTERNO_ES_POSTULAN sueldoNeto NUMERIC
FK_REALIZA_REALIZA_EMPLEADO

FK_EMPLEADO_ES_POSTULAN
FK_CONTRATO_FIRMA_EMPLEADO

Externo Empleado
rut CHAR(9) <pk,fk> rut CHAR(9) <pk,fk2>
fechaPostulacion DATE codigoCargo INTEGER <fk1>
antiguedad INTEGER

FK_EXPEDIEN_PERTENECE_EMPLEADO FK_EMPLEADO_EJECUTA_CARGO
Cargo
FK_CONFORMA_CONFORMA_EMPLEADO
codigoCargo INTEGER <pk>
ExpedienteDisciplinario nombreCargo NOTE
numeroExpediente INTEGER <pk> descripcion NOTE
rut CHAR(9) <fk> conforma funciones NOTE
fechaExpediente DATE responsabilidades NOTE
motivo NOTE codigoEquipo INTEGER <pk,fk1> dependencia NOTE
unidad NOTE rut CHAR(9) <pk,fk2> subordinados NOTE
responsable NOTE
recomendaciones NOTE
FK_CONFORMA_CONFORMA_EQUIPOEV
FK_EVALUACI_GENERA_EXPEDIEN

EquipoEvaluador
Evaluacion
codigoEquipo INTEGER <pk>
numeroExpediente INTEGER <pk,fk> numeroIntegrantes INTEGER
fechaEvaluacion DATE
tipoEvaluacion NOTE
conocimiento NOTE
participacion NOTE
relacionesInterpersonales NOTE
trabajoEquipo NOTE
liderazgo NOTE

Fuente: Elaboracin Propia.

A travs de las herramientas CASE, se puede llevar a cabo la creacin de una base de
datos para algn DBMS5 deseado y llevar a cabo la conexin del modelo fsico obtenido
a partir del modelo conceptual, generando una aplicacin utilizable en una forma mucho
ms ptima y rpida. En la siguiente figura se presenta el modelo fsico implementado en
el DBMS MS Access, generado automticamente con la Herramienta CASE a partir de los
modelos desarrollados. Tambin se muestra una interfaz de la base de datos diseada en
MS Access para el ingreso de datos de los empleados.
Figura 8.17. Modelo Fsico de Datos Implementado en MS Access.

5
Database Management System: Sistema Administrador de Base de Datos
Profesor. Oscar Saavedra Rodrguez 84
Fuente: Elaboracin Propia.

Figura 8.18. Interfaz de Ingreso de Datos para los Empleados (MS Access).

Fuente: Elaboracin Propia.

Profesor. Oscar Saavedra Rodrguez 85

You might also like