Вы находитесь на странице: 1из 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

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

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
Base de Datos (BD)

Definicin
Un grupo de archivos (tablas) relacionados puede constituir una BD. Un grupo de registros del mismo tipo.

Ejemplo
BD Estudiantes: Archivo Curso; Archivo Notas; Archivo Asignaturas

Archivos

Registro Campo

Byte

Bit ----------------------------------Entidad

Atributo

Archivo Curso: Nombre; Cdigo; Fecha; O Taylor Ind401 F20-03-23 K Vincen Ind305 F20-04-21 S Watt Ind405 F20-05-27 Un grupo de campos relacionados Nombre; Cdigo; Fecha O Taylor Ind401 F20-03-23 Una agrupacin de caracteres en O Taylor (Nombre campo) una palabra, grupo de palabras o nmero completo. Carcter individual, puede ser un 10101010 (letra J en ASCII) nmero, una letra o cualquier otro smbolo. Unidad ms pequea de datos que 1 la computadora puede manejar. -------------------------------------------------------------------Es una persona, lugar, concepto, Cuenta Corriente: es una entidad cosa o hecho sobre el que se tpica en un sistema financiero o crdito. conserva informacin. 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

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

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

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

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

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

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 97PS087

R am B haw an A lic e 97PS086

A1 A2 A1 A2

M e e ra B h a w a n A n ith a

M e e ra B h a w a n Jose

97PS085

A1

In g e n ie ra C o m e rc ia l

A 2 In g e n ie ra C iv il In d u s tria l

A1

In g e n ie ra C o m e rc ia l

A 2 In g e n ie ra 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 Industrial Civil

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 NUMEROPROVEEDOR. 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 DIRECCIONPROVEEDOR.

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 adhoc, 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 En redes Relacional Alta Media-alta Baja pero mejorando Baja Baja-media Alta Baja Baja moderada Alta 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 EntidadRelacionamiento (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 Lugar Evento : EMPLEADOS, PACIENTES, etc. : ESTADOS, REGIN, etc. : VENTAS, COMPRAS, etc.

Su notacin corresponde al smbolo:


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

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; Eventos; Personas; Ej. : Productos, Materias Primas. Ej. : Compras, Ventas, Salidas de Bodega. Ej. : Proveedores, Clientes, Empleados.
18

Profesor. Oscar Saavedra Rodrguez

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 Entidad Evento : Si su existencia no depende fundamentalmente del tiempo. : 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 Atributos (identificador)

: Cotizacin Previsional : Rut. Afiliado Mes - de - pago Nombre, Direccin, ...


PART E I A10 A20 <M> NUMERO_PART E DESCRIPCION COST O ST OCK NUMERO_PART E <pi> I A10 I I <M>

PROVEEDOR NUMERO_PROVEEDOR <pi> NOMBRE DIRECCION NUMERO_PROVEEDOR <pi>

<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:
H O S P IT A L T IE N E P A C IE N T E

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 NUMERO_PROVEEDOR NOMBRE DIRECCION NUMERO_PROVEEDOR <pi > I A10 A20 <M> SOLICIT AR PART E NUMERO_PART E DESCRIPCION COST O ST OCK NUMERO_PART E <pi > I A10 I I <M>

<pi >

<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:

HOSPITAL

TIENE

PACIENTE

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
PR O D UC TO P E T IC IO N ORDEN DE 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 debe estar amarrado a un A. Ejemplo: Cliente - Factura Empleado - Carga Comentarios sobre el Relacionamiento

Dado un A, puede haber 0, 1, o ms B asociados.

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
Entidades Regular Dbil

Representacin

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
26

Profesor. Oscar Saavedra Rodrguez

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 DIARIA

TEMPERATURA

DIA

IDENTIFICACIN_PACIENT

DIA

IIDENTIFICACIN_PACIENT

TEMPERATURA DIARIA

II

TIENE

TEMPERATURA 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 RUT <pi > <pi > IS_A A10 <M>

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 PENSIONADO

PACIENTE 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

REQUERIMIENTOS USUARIO

PLANIFICACIN y ANLISIS Y MODELO CORPORATIVO DATOS MODELO ENTIDAD RELACIN EXTENDIDO

MODELO MODELO INICIAL DE DATOS INICIAL DE DATOS

PROCESO PROCESO NORMALIZACIN NORMALIZACIN MODELO CONCEPTUAL MODELO CONCEPTUAL CANONICO CANONICO REGLAS REGLAS DE TRANSFORMACIN DE TRANSFORMACIN MODELO FSICO MODELO FSICO DE DATOS DE DATOS

FORMAS NORMALES

MODELO MODELO LGICO LGICO DATOS DATOS

MODELO RELACIONAL

DAD LAM INTERFAZ PROGRAMA PROGRAMA COMPUTACIONAL COMPUTACIONAL

GENERACIN GENERACIN BASE BASE DATOS DATOS

B.D-R

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

D El atributo D, depende del atributo B, nicamente.

Identificador de la Entidad

2 FN A Ejemplo: B C B D

Entidad: Orden - Pedido - Producto Entidad: Orden - Pedido Entidad: Producto

Tercera forma normal (3 FN) Eliminar la dependencia transitiva de los atributos de una entidad.

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 B 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 CRut

Clientes

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 CApellidos CNombre CZona

S-Apellidos

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 Clientes S-Apellidos CRut CApellidos CNombre CZona
FACCLIENTE

VCodigo Facturas FNumero Vendedores VCodigo


FACVENDEDOR

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 Clientes S-Apellidos CRut CApellidos CNombre CZona


FACCLIENTE

VCodigo Facturas FNumero Vendedores VCodigo


FACVENDEDOR

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 Clientes S-Apellidos CRut CApellidos CNombre CZona Vendedores VCodigo PROFESION Carga1 Carga2

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 CRut CApellidos CNombre CZona Facturas FNumero FFecha FTotal

FACCLIENTE

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 Columna Tipo Clave Nulo/ Unico Tipo Dato Datos Ejemplo RUTCL Primary Key PK NN, U char(10) 6.876.251-9 7.765.765-7 10.456.897-K NOMBRE DIRECCIN FONO GIRO SITUACIN

NN char(20) Oscar Saavedra Olga Daz Daniel Salas

varchar(25) Arturo Leon 678, Valpo Avda. Matta 1545, Stgo Ancoa 789 Stgo

Numeric(8) 789090 212121 22161616

NN char(20) Comerciante Vendedora Comerciante

char(20) Buen Cliente Regular Cliente Mal Cliente

Nombre Tabla: CUENTA CORRIENTE CLIENTE


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

Numeric(8) 300.000

Numeric(8)

NN Numeric(10) 300.000

Profesor. Oscar Saavedra Rodrguez

41

Ejemplo 7020 7080 400.000 100.000 400.000 100.000 7.765.765-7 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-amucho 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
Vendedor, cada vendedor tiene exactamente uno de los otros vendedores como compaero de zona

Representacin
VENDEDOR

Ejemplos
Vendedor (arut, direccin, zona, rut-compaero) nombre,

Compaero-de
Empleado, un empleado puede tener a otro empleado como su esposo(a)
Empleado

Empleado (arut, nombre, direccin, rut-esposo) Valores nulos (V.N) rut.esposo permitido empleado

en

Vendedor, los vendedores son divididos en grupos para ciertas zonas. Cada grupo tiene un jefe.

Vendedor

Vendedor (arut, nombre, direccin, zona, rut.jefe) V.N rut. Jefe permitido en vendedor

Jefe de

Vendedor, un vendedor dirige a uno de los otros vendedores. Uno debe ser dirigido por otro vendedor

Vendedor

Vendedor (arut, nombre,... rut.dirige) V.N rut.dirige no permitidos a vendedor

Dirige

Producto, cada producto puede ser parte de (o ser componente) muchos otros productos

Producto

Producto (acdigo, precio, descripcin, stock) Componente(acdigo, acdigo. compo) Proporcin)

Formar

Profesor. Oscar Saavedra Rodrguez

43

3.3. REGLAS DE TRANSFORMACIN DE RELACIONAMIENTO BINARIO

Entidad
Cliente, cta. corriente cl. Cada cliente tiene una cuenta corriente y cada cuenta tiene un cliente.

Representacin
Cliente

Ejemplos
Cliente (arut, nombre, direccin, fono, giro) Cta. corriente cliente(anmero, debe, haber, saldo, RUTCL) V.N. RUTCL no permitidos en cuenta corriente cliente

Tiene

Cuenta Corriente
Cliente, cta. corriente cl. Un cliente puede tener una cuenta corriente y cada cuenta pertenece a un cliente.

Cliente

Cliente (arut, nombre, direccin, fono, giro) Cta. corriente cliente(anmero, debe, haber, saldo, RUTCL) V.N. RUTCL permitido en cuenta corriente cliente

Tiene

Cuenta Corriente
Vendedor, PC. Un PC puede ser asignado a un vendedor, pero no necesariamente a todos. Vendedor (arut, nombre, ...)
Vendedor

PC(nmero, Tipo, Descripcin, RutVend)


Tiene Asignado

V. N RutVend permitidos en PC

PC

Cliente, Factura. Cada cliente tiene una o muchas facturas y cada factura pertenece a un nico cliente

Cliente(arut, nombre, ... )


Cliente

fecha, Factura(nmero, neto, IVA, Descuento, RutCl) V. N RutCl permitidos

Factura

Profesor. Oscar Saavedra Rodrguez

44

Vendedor, Factura. Cada Vendedor puede generar varias facturas, una factura es generada por un vendedor

Vendedor(arut, nombre, ... )


Vendedor

Factura(nmero, ... RutVD) V. N, RutVD No permitidos

Genera

Factura

Factura, Producto.
Factura

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


Esta en

Cada factura tiene a lo menos un producto, y cada producto puede estar en muchas facturas, o no.

Tiene

Factura.Producto(nmeroF A, cdigoPR, cantidad).

Producto

3.4. REGLAS DE TRANSFORMACIN DE RELACIONAMIENTO TERNARIO

Entidad
Vendedor, PlanVta, Estrategia. Un vendedor usar una estrategia en un PlanVta.diferentes vendedores usarn diferentes estrategias para el mismo PlanVta. Vendedores no usarn la misma estrategia para diferentes PlanVta, pero diferentes vendedores pueden usar la misma estrategia para diferentes PlanVta.

Representacin
Vendedor

Ejemplos
Vendedor(arut, nombre, ... ) PlanVta(nmero, localizacin) Estrategia(cdigo, descripcin) Uso.Estrategia(RutVD, nmero, cdigo) meta,

Uso Estrategia

Plan Vta

Estrategia

Profesor. Oscar Saavedra Rodrguez

45

Tema VII: Lenguaje de programacin SQL


Conceptual Data Model Project : MODELO DE VENTAS Model : Model_CONCEPTUAL DE VENTAS Author : Version 28-07-02
JEFE_DE

CLIENTES CRUT CAPELLIDOS CNOMBRE CDIRECCION CCIUDAD CPAIS CFONO CFONOMOVIL CMAIL CGIRO CSITUACION CACTIVOS CPASIVOS CSALDO CLIMITECREDITO CTIPO

VENDEDORES VRUT VAPELLIDO_PATERNO VAPELLIDO_MATERNO VNOMBRES VDIRECCION VMAIL VMETASEMESTRAL VMETAANUAL VSUELDO VCOMISION VTIPO VFECHA_CONTRATO VCIUDAD

POSEER

FACTURAS FNUMERO FFECHA FNETO FIVA FDESCUENTO FTOTAL

GENERA

TENER

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

ESTAR

PRODUCTOS PCODIGO PDESCRIPCION PPRECIO_VENTA PEXISTENCIA PSTOCKMINIMO PESPECIFICACION PCOLOR PPESO

ASIGNADO

PAIS PACODIGO PANOMBRE PAPOBLACION PAUBICACION PATAMAO_MERCADO

PRODUCTO NACIONAL PNCOSTO

PRODUCTO IMPORTADO PICIF PIFOB PISEGUROS PICOSTO PIORIGEN

Profesor. Oscar Saavedra Rodrguez

46

VRUT = VEN2_VRUT

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

VRUT = VRUT

VRUT = VEN_VRUT

VRUT VEN_VRUT VAPELLIDO_PAT VAPELLIDO_MAT VNOMBRES VDIRECCION VCIUDAD VMAIL VMETASEMESTRAL VMETAANUAL VSUELDO VCOMISION VTIPO PCODIGO = PRO_PCODI GO VFECHA_CONTRATO VNFONO PCODIGO = PCODIGO VNFONO_MOVIL VNANEXO VNZONA PRODUCTO_NACIIONAL PCODIGO PDESCRIPCION PPRECIO_VENTA PEXISTENCIA PSTOCKMINIMO PESPECIFICACION PCOLOR PPESO PNCOSTO integer varchar(30) integer integer integer varchar(20) varchar(20) integer integer PRODUCTO_IMPORTADO PCODIGO PDESCRIPCION PPRECIO_VENTA PEXISTENCIA PSTOCKMINIMO PESPECIFICACION PCOLOR PPESO PICIF PIFOB PISEGUROS PICOSTO PIORIGEN integer varchar(30) integer integer integer varchar(20) varchar(20) integer integer integer integer integer varchar(20)

DETALLE FNUMERO PCODIGO PRO_PCODIGO DECANTIDAD DESUBTOTAL

integer integer integer integer integer

VENDEDOR_NACIONAL varchar(10) varchar(10) varchar(25) varchar(25) varchar(10) varchar(25) PACODIGO = PACODIGO varchar(20) varchar(20) integer VRUT = VEN_VRUT integer integer integer varchar(10) date integer integer integer varchar(10)

PAIS PACODIGO PANOMBRE PAPOBLACION PAUBICACION PATAMANO_MERCADO

integer varchar(20) integer varchar(20) integer

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 From capellidos, cnombre, cdireccion, csituacion clientes;

Apellidos
Saavedra Daz Vergara Lpez Ivn Omar

Nombre

Direccin
Matta 1212 Placeres 2121

Situacin
Buen cliente 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 20 20 30 40 Peso en gramos = Peso en gramos = Peso en gramos = Peso en gramos = Peso en gramos = 4566 7712 7712 6576 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 From Where AND Nmero
4078990-5 2099999-8

vrut as Nmero vendedor_nacional vnzona = Santiago Centro vsueldo > 400.000;

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 From Where Order by Apellidos


Prez Soto Salinas Lorca

vapellidos as Apellidos, vnombres as Nombre, vrut as Rut vendedor_nacional vnzona = Norte vmetasemestral desc, Nombre
Juan Pedro 10.435.675-9 80.987.999-7

Rut

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 From Where c.crut, c.capellidos, c.cnombre, c.cciudad v.vrut, v.vapellidos, v.vnombre cliente as c, vendedor as v 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 Juan Olga Omar Luis Ivn Daz

Vombre Mario Mario Mario Pablo 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
7 10

Fecha
10/11/97 12/12/97

Neto
500.000 3000.000

Nombre
Juan Juan

Rut
8.786.999-7 8.786.999-7

Nombre
Mario 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() Sum() Avg() Max() Min() nmero de valores en la columna suma de los valores de la columna promedio de los valores de la columna valor ms grande de la columna 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 20 30 50 600 1000 500 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 SET WHERE Detalle DEcantidad = 0 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 SET WHERE UPDATE SET WHERE Vendedor v.vrut = 7.999.777-9 v.vrut = 10.888.777-8; Facturas f.rutvend = 7.999.777-9 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
0..1 0..* *

Dbil

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 numero pr <pi> I <M> descripcion gral pr TXT fecha D costo pr N valor pr N numero pr <pi> genera

Consultor rut con <pi> TXT <M> nombre con TXT apellido con TXT fono con I rut con <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 nombre cl direccion cl fono cl NOTE <pk> NOTE NOTE INTEGER

FK_PROYECTO_SOICITA_CLIENTE

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

FK_DETALLEP_CONTIENE_PROYECTO

DetalleProyecto numero pro cantidad recurso cantidad equipo subtotal IVA Total INTEGER <pk,fk> INTEGER INTEGER NUMERIC NUMERIC 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 2

Hyper Text Markup Language 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 Esttica Ventajas Desventajas Inflexibilidad. Debe ser modificada cada vez que cambie el contenido. Los cambios requieren de tiempo y correcciones. Mayor costo de desarrollo. Incapaz de presentar informacin cambiante mientras se visualiza el documento en el navegador. Costos extras de creacin y ejecucin. Sencillez. Confiabilidad. Desempeo. Pueden ser presentadas con relativa rapidez por un navegador. Reportan informacin actualizada. Capaces de actualizar continuamente la informacin.

Dinmic a

Activa

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 especificaciones de atributos.

genrico,

puede

tener

un

conjunto

de

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.

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 Personal

Contrato

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 P e rfi l d e p e rso n a l

De p to d e RRHH P e rfi l d e p e rso n a l

Je fe d e A re a

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] Co n tra to S e l e cci o n a r p o stu l a n te

E n tre vi sta a p ro b a d a

[NO ]

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

Personal

Evaluacin de desempeo

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 Evaluacin

Contrato

Promover empleado

Promover empleado [SI]

[NO]

Cargo

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

Es firma Externo fechaPostulacion D

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 rut nombres apellidoPaterno apellidoMaterno fechaNacimiento direccion estadoCivil estudiosBasicos estudiosUniversitarios tituloProfesional habilidades experiencia trabajoAnterior recomendacion capacidadFisica capacidadIntelectual CHAR(9) <pk> NOTE NOTE NOTE DATE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE

CursoCapacitacion codigoCurso nombreCurso fechaInicio fechaTermino resultados valorCurso habilidadesDesarrolladas INTEGER <pk> NOTE DATE DATE NUMERIC NUMERIC NOTE Contrato FK_REALIZA_REALIZA_CURSOCAP numeroContrato rut fecha tipoContrato sueldoBruto beneficiosMedicos AFP descuentosEspeciales asignacionesEspeciales sueldoNeto INTEGER <pk> CHAR(9) <fk> DATE NOTE NUMERIC NOTE NOTE NUMERIC NUMERIC NUMERIC

Realiza rut CHAR(9) <pk,fk1> codigoCurso INTEGER <pk,fk2>

FK_EXTERNO_ES_POSTULAN

FK_REALIZA_REALIZA_EMPLEADO

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

FK_CONTRATO_FIRMA_EMPLEADO

FK_EXPEDIEN_PERTENECE_EMPLEADO

FK_EMPLEADO_EJECUTA_CARGO Cargo codigoCargo nombreCargo descripcion funciones responsabilidades dependencia subordinados INTEGER <pk> NOTE NOTE NOTE NOTE NOTE NOTE

FK_CONFORMA_CONFORMA_EMPLEADO ExpedienteDisciplinario numeroExpediente rut fechaExpediente motivo unidad responsable recomendaciones INTEGER <pk> CHAR(9) <fk> DATE NOTE NOTE NOTE NOTE conforma codigoEquipo INTEGER <pk,fk1> rut CHAR(9) <pk,fk2>

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

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.

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

Вам также может понравиться