Professional Documents
Culture Documents
LIMA-PER, 2010
Contenido
UNIDAD 1................................................................................................................................4 INTRODUCCIN A LOS SISTEMAS DE BASE DE DATOS Y AL DISEO DE BASE DE DATOS .....................................................................................................................................4 Leccin 1.................................................................................................................................. 5 Introduccin a los Sistemas de Base de Datos ........................................................................ 5
1.1 1.2 1.3 1.4 1.5 1.6 Sistema de Archivos .................................................................................................................... 5 Sistema de Base de Datos ........................................................................................................... 6 Base de Datos .............................................................................................................................. 7 Sistema de gestin de base de datos .......................................................................................... 8 Arquitectura de tres niveles ........................................................................................................ 9 Independencia de datos............................................................................................................ 10
Resumen ................................................................................................................................ 17 Lectura................................................................................................................................... 18 Actividades ............................................................................................................................ 19 Autoevaluacin...................................................................................................................... 19 Exploracin On-Line.............................................................................................................. 20 Referencias Bibliogrficas ..................................................................................................... 20 UNIDAD 2..............................................................................................................................21 EL MODELO ENTIDAD-RELACIN (MER) ..........................................................................21 Leccin 3................................................................................................................................ 22 Conceptos asociados al MER ................................................................................................. 22
3.1 3.2 3.3 3.4 Qu es el MER? ....................................................................................................................... 22 Entidad y Atributo ..................................................................................................................... 22 Tipo de Entidad, Atributo Identificador y Conjunto de valores ................................................ 23 Relacin y Tipo de Relacin....................................................................................................... 25
Referencias Bibliogrficas ..................................................................................................... 46 UNIDAD 3..............................................................................................................................48 EL MODELO RELACIONAL (MR) .........................................................................................48 Leccin 6................................................................................................................................ 49 Definicin y elementos del MR.............................................................................................. 49
4.1 4.2 4.3 Definicin .................................................................................................................................. 49 Elementos ................................................................................................................................. 49 Reglas ........................................................................................................................................ 51
Resumen ................................................................................................................................ 66 Actividades ............................................................................................................................ 67 Referencias Bibliogrficas ..................................................................................................... 69 GLOSARIO .............................................................................................................................70 BIBLIOGRAFA GENERAL ....................................................................................................71
1.1
Sistema de Archivos
Tradicionalmente, para almacenar los datos, se utilizaban los llamados sistemas de archivos. En este enfoque, los archivos se diseaban para cada programa de aplicacin destinado a apoyar las actividades de un departamento especfico. Cada departamento era responsable de crear y mantener los datos en sus propios archivos a travs de sus programas de aplicacin. Por ejemplo, en la figura 1.1 se aprecia que el Dpto. de Ventas es responsable de los datos de Empleados y Clientes; el Dpto. de Personal, de los datos de Empleados y Nominas, y el Dpto. de Contabilidad, de los datos de Empleados, Clientes y Nminas.
Figura 1.1 Organizacin de los datos mediante archivos
Como se aprecia, esta forma de organizacin implicaba que los archivos por departamento podran contener informacin duplicada (redundancia de informacin), que ocasionaba uso inadecuado de espacio en disco y posibles inconsistencias porque un mismo dato podra reflejar diferentes valores. Asimismo, se generaba dependencia de los datos respecto del soporte fsico y los programas, que conlleva a falta de flexibilidad frente a cambios. Adicionalmente, los sistemas de archivos no eran apropiados para sistemas de ayuda a la toma de decisiones.
En lo sucesivo, en este libro, si las figuras, imgenes o tablas no consignan fuente, es porque son de propia elaboracin.
1.2
La idea de los sistemas de base de datos es mantener los datos en un repositorio centralizado (base de datos) evitando los inconvenientes generados por los sistemas de archivos. Cada departamento crea, mantiene y recupera la informacin de este repositorio centralizado, no de sus propios archivos (figura 1.2). Para lograr este objetivo, los sistemas de base de datos tienen un componente software, llamado sistema de gestin de base de datos (SGBD), que permite administrar este repositorio. Cada programa de aplicacin interacta con el sistema de gestin de base de datos para crear, mantener o recuperar datos de la base de datos. El SGBD se constituye en la interfaz entre los programas de aplicacin y la base de datos.
Figura 1.2 Organizacin de los datos mediante base de datos
1.2.1 Definicin
Un sistema de base de datos es una coleccin de datos interrelacionados, almacenados en conjunto, sin redundancias perjudiciales o innecesarias. Su finalidad es servir a una aplicacin o ms de la mejor manera posible. Los datos se almacenan de modo que resulten independientes de los programas que los usan. Se emplean mtodos bien definidos para incluir nuevos datos y para modificar o extraer los datos almacenados (Martin, 1975, p.19). De acuerdo con Elmasri (1997, p.3), podemos decir que un sistema de base de datos est formado por la base de datos y el sistema de gestin de la base de datos (SGBD). En la figura 1.3, podemos ver un entorno simplificado de un sistema de base de datos. Los usuarios acceden a la base de datos almacenada a travs de programas de aplicacin o consultas interactivas. El Software SGBD atiende y gestiona las solicitudes de acceso a la base de datos (repositorio). Estas solicitudes pueden incluir aadir, borrar, cambiar o consultar los datos del repositorio.
Figura 1.3 Entorno simplificado de un Sistema de Base de Datos
PROGRAMAS
SGBD Usuarios
CONSULTAS
Base de Datos
1.3
Base de Datos
La base de datos se constituye en el repositorio de los datos de la empresa, o de un dominio particular, que debe permanecer en el tiempo con el propsito de brindar informacin requerida para apoyar las actividades de la organizacin.
1.3.1 Definicin
Una base de datos consiste en alguna coleccin de datos persistentes e independientes, usados por una organizacin determinada (Date, 1995, p.10). En la base de datos, los datos deben estar organizados de tal manera que refleje la realidad del dominio o de la empresa en el contexto de informacin requerida. Esto implica que adems de los datos, se deben guardar las relaciones que existen entre los datos. Por ejemplo, en el dominio de la gestin de matrcula en una institucin educativa, los datos de los alumnos, asignaturas y docentes son necesarios; pero, adems es necesario guardar la relacin entre alumno con asignatura para saber las asignaturas que un alumno est llevando. Asimismo, la relacin entre docente y asignatura. Una base de datos es una coleccin de datos relacionados, y una descripcin de estos datos, diseados para cumplir con las necesidades de informacin de una organizacin (Connolly, 2008, p.17). La base de datos tambin incluye la descripcin de los datos almacenados. Dicho de otra forma, se almacena tambin la estructura de los datos. Por ejemplo, para alumno, se almacena el tipo y tamao de sus atributos: cdigo, nombre, etc. Entonces, tenemos dos mbitos dentro de la base de datos: las descripciones de los datos y los propios datos almacenados. Para ilustrar ambos aspectos, en la figura 1.4, se muestra un ejemplo de descripcin de datos de alumno, y en la figura 1.5, los datos almacenados de cuatro alumnos. Tanto la descripcin como los datos se almacenan en la base de datos.
Figura 1.4 Descripcin datos Alumno
Table ALUMNO ( Cdigo numeric (09) not null, Apellidos varchar(30), Nombres (varchar(30), Edad numeric (02), Gnero char(01) default (M, N), Primary key (cdigo) );
1.3.2 Aplicaciones
Toda base de datos se disea, construye y puebla con datos para un propsito especifico. Est dirigida a un grupo de usuarios y tienen ciertas aplicaciones preconcebidas que interesan a dicho usuarios (Elmasri, 1997, p.2). Algunas aplicaciones son las siguientes: En la banca, para almacenar informacin de los clientes, cuentas y prstamos y transacciones bancarias. En Lneas areas, para reservas e informacin de planificacin. Las lneas areas fueron las primeras en usar las bases de datos de forma distribuida geogrficamente (los terminales situados en todo el planeta accedan al sistema de bases de datos centralizado a travs de las lneas telefnicas y otras redes de datos). En Universidades, para informacin de los estudiantes, matrculas de las asignaturas y cursos. En Transacciones de tarjetas de crdito, para compras con tarjeta de crdito y generacin mensual de extractos. En Telecomunicaciones, para guardar un registro de las llamadas realizadas, generacin mensual de facturas manteniendo el saldo de las tarjetas telefnicas de prepago y para almacenar informacin sobre las redes de comunicaciones. En Finanzas, para almacenar informacin sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsa y bonos. En Ventas, para informacin de clientes, productos y compras. En Produccin, para la gestin de la cadena de produccin y para el seguimiento de la produccin de elementos en las factoras, inventarios de elementos en almacenes y pedidos de elementos. En Recursos humanos, para informacin sobre los empleados, salarios, impuestos y beneficios, y para la generacin de las nminas.
1.4
1.4.1 Definicin
Un Sistema de Gestin de Base de Datos (SGBD) o Data Base Management System (DBMS) es el conjunto de programas que permite a los usuarios crear y mantener una base de datos. Es decir, el SGBD facilita el proceso de definir, construir y manipular base de datos para diversas aplicaciones (Elmasri, 1997, p.2). Definir una base de datos significa especificar los tipos de datos, las estructuras y las restricciones de los datos que se almacenarn en ella. Construir una base de datos se refiere al proceso de poblar (crear y guardar) los datos en un medio de almacenamiento controlado por el SGBD. Manipular la base de datos es realizar funciones como: consultar la base de datos para obtener datos especficos, actualizar (aadir, modificar o eliminar) la base de datos para reflejar los cambios del mbito o espacio del problema (mundo real) y generar informes a partir de estos datos.
1.4.2 Usuarios
El sistema de gestin de base de datos se constituye en la interfaz entre los usuarios y la base de datos. Los usuarios pueden ser: usuarios finales o usuarios informticos. Los usuarios finales son aquellos que utilizan servicios de programas previamente preparados para realizar consultas o actualizaciones a la base de datos. Los usuarios informticos pueden ser: administrador de la base de datos, diseador y analista/programador. El administrador de la base de datos (Data Base Administrator, DBA) es responsable de la confidencialidad, disponibilidad, seguridad e integridad de los datos almacenados en la base de datos; vigila el buen funcionamiento del sistema de base de datos. El diseador identifica los datos que han de estar contenidos en la base de datos y determina las estructuras ms apropiadas. El analista/programador desarrolla los programas para los usuarios finales.
1.4.3 Funciones
Las funciones de un SGBD se pueden agrupar en funcin de definicin de datos, funcin de manipulacin de datos y funcin de control. La funcin de definicin de datos permite describir los elementos de datos, su estructura, sus interrelaciones y sus validaciones o restricciones a tres niveles (interno, conceptual y externo) a travs del lenguaje de definicin de datos (DDL). La funcin de manipulacin permite: consultar (Sobre la totalidad o selectiva), aadir, suprimir, modificar; lo cual supone definir normas de seguridad (administrador), definir un criterio de seleccin (usuario), definir la estructura externa a recuperar (usuario) y acceder a la estructura fsica (sistema) a travs del lenguaje de manipulacin de datos (DDL). La funcin de control rene las interfaces de los usuarios y suministra procedimientos para el administrador. Algunas funciones son: cambiar la capacidad de los ficheros, obtener estadsticas de utilizacin, obtener copias de seguridad, etc.
1.5
Se ha establecido una arquitectura de tres niveles, llamada tambin arquitectura de tres esquemas (Elmasri, 1997, p.25). En la figura 1.6, se muestra esta arquitectura, cuyo objetivo es lograr independencia de los datos respecto de los programas de aplicacin y del almacenamiento fsico. En el nivel interno, se establece la organizacin fsica de almacenamiento de los datos, es decir la estructura de datos en disco y las rutas de acceso a los mismos considerando la velocidad en responder los requerimientos del usuario y el uso eficiente del espacio en disco. Formalmente, el artefacto en el que se define la organizacin interna de los datos se conoce como esquema interno. En el nivel conceptual, se define la estructura lgica de almacenamiento de los datos de toda la base de datos considerando que esta estructura debe reflejar los aspectos conceptuales (se omiten detalles de almacenamiento fsico), de los requerimientos de informacin del mbito o espacio de problema global (mundo real). Formalmente, el artefacto en el que se define la estructura lgica de la base de datos completa se conoce como esquema conceptual. En el nivel externo, se define la estructura lgica de la porcin de la base de datos (vista) requerida por un grupo particular de usuarios. Formalmente, a esta descripcin lgica parcial de la base datos se conoce como esquema externo.
USUARIOS FINALES
NIVEL EXTERNO
ESQUEMA EXTERNO 1
ESQUEMA EXTERNO n
NIVEL CONCEPTUAL
ESQUEMA CONCEPTUAL
1.6
Independencia de datos
Los sistemas de base de datos deben mantener la coherencia entre los esquemas interno, conceptual y externo, y lograr la independencia de los datos. Los datos en la base de datos se organizan independientemente de los programas que lo van a usar (independencia lgica) y del dispositivo de almacenamiento fsico (independencia fsica).
10
2.1
El diseo de base de datos es el proceso mediante el cual se define la estructura lgica y fsica de una base de datos que cubra los requerimientos de informacin de los usuarios en una organizacin (Elmasri, 1997). La estructura lgica es la descripcin de los datos que se almacenarn en la base de datos sin considerar aspectos de implementacin. La estructura fsica es la descripcin de los datos considerando el SGBD especfico y detalles de almacenamiento fsico. En la estructura lgica, se define que se almacenar, en la estructura fsica se define como se almacenar.
2.2
El diseo de base de datos es un proceso complejo que considera decisiones en diversos niveles. La literatura sobre base de datos descompone el proceso de diseo de base de datos en tres fases (figura 2.1): Diseo Conceptual, Diseo Lgico y Diseo Fsico.
Figura 2.1 Fases del Diseo de Base de datos REQUERIMIENTOS DE DATOS DISEO CONCEPTUAL ESQUEMA CONCEPTUAL DISEO LGICO ESQUEMA LGICO DISEO FSICO ESQUEMA FSICO
11
2.3
Consideremos una porcin pequea de requerimientos de informacin del dominio de gestin acadmica de una Universidad. Se necesita mantener informacin de las Facultades y de los alumnos que pertenecen a ellas. En la fase de diseo conceptual, se elabora el esquema conceptual. En este ejemplo, se usa la notacin del modelo entidad relacin de Chen (1976). En la figura 2.2, se aprecia el modelo entidad relacin para reflejar los requerimientos sealados. Figura 2.2 Ejemplo de MER
APELLIDOS CODIGO NOMBRE
(1,1) (1,n)
CODIGO
NOMBRES
FACULTAD
TIENE
ALUMNO
12
En la fase de diseo lgico, se transforma el esquema conceptual a esquema lgico. En este ejemplo, usaremos el esquema relacional. A continuacin se aprecia el esquema lgico relacional:
FACULTAD ALUMNO
(CDIGO, NOMBRE); CLAVE PRIMARIA= CDIGO (CDIGO, APELLIDOS, NOMBRES, CDIGO, FACULTAD); CLAVE PRIMARIA=CDIGO CLAVE FORNEA = CDIGO, FACULTAD
En la fase de diseo fsico se define las tablas usando la sintaxis de SQL, como se aprecia a continuacin:
CREATE TABLE FACULTAD ( CODIGO CHAR (02) NOT NULL, NOMBRE VARCHAR (40), PRIMARY KEY (CODIGO) ); CREATE TABLE ALUMNO ( CODIGO NUMERIC (09) NOT NULL, NOMBRES VARCHAR (40), APELLIDOS VARCHAR (60), CODIGO_FACULTAD CHAR (02), PRIMARY KEY (CODIGO), FOREING KEY (CODIGO_FACULTAD) REFERENCES FACULTAD (CDIGO) );
2.4
Modelos de Datos
Durante el proceso de diseo de base de datos, se utilizan modelos de datos, en diversos niveles, para representar los requerimientos de los usuarios.
2.4.1 Definicin
De acuerdo con De Miguel (1999), un modelo de datos describe, en base a conceptos y reglas, los datos de una porcin del mundo real. En otras palabras, un modelo de datos es un conjunto de conceptos y reglas que permiten describir, a distintos niveles de abstraccin, la estructura de una base de datos, a la cual denominamos esquema.
2.4.2 Tipos
De acuerdo con las fases del proceso de diseo, los modelos de datos se pueden clasificar en: conceptuales, lgicos y fsicos. Los modelos de datos conceptuales se enfocan en describir el mundo real con independencia del tipo de SGBD y de detalles de implementacin en la mquina. 13
Los modelos de datos lgicos se orientan a representar los datos segn la implementacin del tipo SGBD especfico, pero sin detalles de implementacin de la mquina. Los modelos de datos fsicos se orientan a representar los datos considerando detalles de implementacin en la mquina. Otra forma de clasificar a los modelos de datos es segn los niveles de abstraccin de la arquitectura de tres niveles: Externo, Global e Interno. El modelo de datos externo representa el punto de vista de cada usuario en particular. El modelo de datos global representa el punto de vista del conjunto de usuarios de la empresa. El modelo de datos interno representa el punto de vista de la maquina.
2.4.3 Notaciones
Existen diversas notaciones para el modelo de datos. La eleccin de una depende de las condiciones en que se realizar el proceso de diseo de la base de datos y el ambiente de la organizacin. Se puede mencionar: Notacin CHEN (1976), para modelos de datos conceptuales que da especial nfasis a las relaciones entre entidades representndolas con un rombo (figura 2.3). Figura 2.3 Modelo conceptual Notacin CHEN
APELLIDOS CODIGO NOMBRE
(1,1) (1,n)
CODIGO
NOMBRES
FACULTAD
TIENE
ALUMNO
Notacin IE (Information Engineering) desarrollada inicialmente por Clive Finkelstein (1992) quien, luego, la refin con el apoyo de James Martin. Aunque es clara e intuitiva, sirve solo para modelos de alto nivel de abstraccin (modelos conceptuales y lgicos), pues no permite modelar los atributos de las entidades (Figura 2.4). Figura 2.4 Modelo conceptual Notacin IE
FACULTAD CODIGO NOMBRE ALUMNO CODIGO NOMBRES APELLIDOS
TIENE
Notacin UML (Unified Modeling Language): si bien es un lenguaje de modelado objetual, se puede extender a travs de perfiles para soportar otro tipo de modelos, como el modelo de datos (Booch, 1999) (figura 2.5).
14
Modelado y Diseo de Base de datos Figura 2.5 Modelo conceptual Notacin UML
2.5
Abstracciones de datos
El modelado de datos se realiza en base a abstracciones. La abstraccin consiste en seleccionar caractersticas relevantes de un conjunto de objetos o elementos del dominio del problema y excluir otras no pertinentes. A travs de ellas se establecen vnculos entre los elementos del modelo. Se puede establecer los siguientes tipos de abstracciones: Clasificacin, Asociacin, Generalizacin y Agregacin.
2.5.1
Abstraccin de Clasificacin
Mediante la clasificacin se abstrae las caractersticas comunes a un conjunto de elementos u objetos del mundo real para crear una categora (clase o tipo) a la cual pertenecen dichos elementos. Se corresponde con el concepto de pertenencia a un conjunto. Se utiliza para definir un concepto como una clase de objetos de la realidad caracterizados por propiedades comunes. Por ejemplo, considere los siguientes elementos u objetos del dominio de Gestin Acadmica de una Universidad: Anlisis de Sistemas, Base de datos I, Matemtica I, Fsica I y Fundamentos de informtica; todas ellas pertenecen a una clase o tipo que podemos llamar: ASIGNATURA (Figura 2.6).
Figura 2.6 Proceso de clasificacin
Anlisis de Sistemas
Fsica I
CLASIFICACIN ASIGNATURA
Los mismos objetos admiten clasificaciones distintas. Por ejemplo, podemos clasificar las asignaturas de varias maneras: obligatorias / electivas, de primer ciclo, segundo ciclo, etc., tericas / prcticas, etc.
objetos a partir de un conjunto de clases (otras, no necesariamente distintas) que representan sus partes componentes. Por ejemplo: CPU, Teclado, Mouse, Monitor son partes de Computadora (figura 2.7). En otras palabras, una Computadora est compuesta por Mouse, CPU, Teclado y Monitor. Figura 2.7 Proceso de agregacin
CPU MONITOR
MOUSE
AGREGACIN COMPUTADORA
TECLADO
EMPLEADO
16
Resumen
Introduccin a los sistemas de base de datos
Un Sistema de base de datos est formado por: la base de datos y el sistema de gestin de base de datos. Una base de datos consiste en alguna coleccin de datos persistentes e independientes, usados por una organizacin determinada. Un sistema de gestin de base de datos (SGBD) o Data Base Management System (DBMS) es el conjunto de programas que permite a los usuarios crear y mantener una base de datos. Los usuarios pueden ser usuarios finales y usuarios informticos. Los usuarios finales usan los programas preparados previamente para consultas o actualizar la base de datos. Los usuarios informticos pueden ser administrador de la base de datos, diseador de base de datos y anlisis programador de aplicaciones. Las funciones de un SGBD son: definicin de datos, manipulacin de datos y control. La funcin de definicin permite describir los elementos de datos. La funcin de manipulacin permite consultar y actualizar la base de datos. La funcin de control est dirigida a la administracin de la base de datos. La arquitectura de tres niveles considera: nivel interno, nivel conceptual y nivel externo. En el nivel interno se establece la organizacin fsica de almacenamiento de los datos, conocido como esquema interno. En el nivel conceptual se define la estructura lgica de almacenamiento de los datos de toda la base de datos, conocido como esquema conceptual. En el nivel externo se define la estructura lgica de la porcin de la base de datos (vista) requerida por un gripo particular de usuarios, conocido como esquema externo. La Independencia Lgica, permite que los cambios en el esquema conceptual no afectan fuertemente en el esquema externo ni el programa de aplicacin. La Independencia Fsica, permite que los cambios en el esquema interno no afectan el esquema conceptual ni a los esquemas externos.
17
Lectura
Oficina Estatal de Licencias y Registro de Vehculo (*) Ahora consideremos una aplicacin aun mayor de las tecnologas de base de datos: una oficina estatal de licencias y registro de vehculo. Tiene 52 centros de pruebas de manejo, expedicin de licencias para conductores, renovacin de licencias de manejo, y tambin 37 oficinas que expiden registros de vehculos. El personal tiene acceso a una base de datos para realizar su trabajo. Antes que a las personas se les otorgue o renueve su licencia de conducir, hay que verificar su registro en la base de datos para buscar posibles infracciones de trnsito, accidentes o arrestos. Estos ltimos datos se utiliza para determinar si la licencia debe o no ser renovada, o si se debe otorgar con ciertas limitaciones. De igual manera, el personal del departamento de registro de automviles tiene acceso a la base de datos para determinar si un auto ha sido registrado antes y, si es as, quien lo registro, o si existe algn asunto importante que impide expedir el registro. Esta base de datos tiene ciento de usuarios, incluyendo no solo al personal de las licencias y registros, sino al del departamento tal de contribuciones y del departamento jurdico. No es de extraar que la base de datos sea grande y compleja, con ms de 40 diferentes tablas de datos, muchas de las cuales contienen cientos de miles de filas. La base de datos de las grandes organizaciones, como la oficina de licencias y registros, fueron las primeras aplicaciones de este tipo de tecnologa. Estos sistemas han existido durante 20 o 30 aos y se han modificado para satisfacer los cambios que ocurrieron durante ese periodo. Otros ejemplos de bases de datos organizacionales se relacionan con el procesamiento de cuentas en bancos e instituciones financieras, sistemas de produccin y de suministro de material en fbricas grandes, procesamiento de registros mdicos en hospitales, y en compaas de seguros y agencias gubernamentales. Actualmente muchas organizaciones estn adaptando sus aplicaciones de bases de datos para permitir a los clientes tener acceso, e incluso cambiar sus datos, por medio de internet. Si usted llegar a trabajar en una gran organizacin importante, probablemente le podran asignar ese proyecto.
(*) Fuente: (Kroenke, 2003, p.8)
18
Actividades
1. Realice una bsqueda en internet, ubique un sistema de gestin de base de datos LIBRE y descrguelo. 2. Descargue de internet un software libre para modelar base de datos.
Autoevaluacin
1. Con respecto al concepto de Sistema de Base de Datos, entre los parntesis de la siguiente lista, marque V=Verdadero o F=Falso, segn corresponda: a. ( ) Est compuesto por base de datos y SGBD. b. ( ) Est formado por base de datos y DBA c. ( ) Solo es un repositorio donde se almacenan los datos d. ( ) Es el conjunto de usuarios y programas para hacer consultas e. ( ) Es el software que atiende a las solicitudes de acceso a la base de datos. Con respecto al concepto de Base de Datos, entre los parntesis de la siguiente lista, marque V=Verdadero o F=Falso, segn corresponda: a. ( ) Esta compuesto por programas y datos b. ( ) Es una coleccin de datos temporales usados por una organizacin c. ( ) Es un conjunto de datos persistentes requeridos por una organizacin d. ( ) Es un almacn que guarda datos y las relaciones entre los datos. e. ( ) Guarda datos, relaciones y la descripcin de los datos y relaciones. Respecto al concepto de SGBD, marque V=Verdadero o F=Falso segn corresponda: a. ( ) Conjunto de usuarios b. ( ) Conjunto de programas c. ( ) Permite crear la base de datos d. ( ) Permite compilar los programas para los usuarios finales e. ( ) Es el conjunto de datos almacenados sin redundancias perjudicial Con respecto a la arquitectura de tres niveles, entre los parntesis de la siguiente lista coloque I=Nivel Interno, C=Nivel conceptual o E=Nivel Externo, segn corresponda: a. ( ) Estructura lgica de almacenamiento de toda la base de datos b. ( ) Su descripcin se llama esquema externo c. ( ) Estructura lgica de una porcin de la base de datos d. ( ) Considera detalle de implementacin e. ( ) Considera el uso eficiente de espacio en disco Establezca la relacin de concepto y su descripcin, colocando la letra de la descripcin en la celda a la derecha del Concepto: Concepto Descripcin del concepto. 1. Independencia a) Su resultado es el esquema conceptual obtenido a partir de los Lgica requerimientos de informacin de los usuarios 2. Independencia b) Descripcin de la estructura de la base de datos considerando el Fsica tipo de SGBD 3. Diseo c) Si hay cambio de versin en el SGBD no afecta a esquema Conceptual conceptual ni a las aplicaciones 4. Diseo Lgico d) Depende del SGBD para elabora el esquema fsico 5. Diseo Fsico 6. Esquema Conceptual e) Descripcin de los datos considerando detalles de implementacin f) Los cambios en el esquema conceptual no afecta a los programas de aplicacin
2.
3.
4.
5.
19
g)
Con respecto a los tipos de abstraccin, entre los parntesis de la siguiente lista coloque C=Abstraccin de Clasificacin, A=Abstraccin de Agregacin, G=Abstraccin de Generalizacin o V=Abstraccin de Asociacin, segn corresponda: a. b. c. d. e. 1. 2. 3. 4. 5. 6. ( ( ( ( ( ) Csar Luza, Pedro Carpio y Pedro Alvarado son Personas ) Docente, Alumno y Empleado son Personas ) Pas est formado por Departamentos ) Profesor asignado a Facultad ) Proveedor y Cliente son tipos de Agente Comercial
Respuestas de Control
a = V, b = F, c = F, d = F, e = F a = F, b = F, c = V, d = V, e = V a = F, b = V, c = V, d = F, e = V a = C, b = E, c = E, d = I, e = I 1 = f, 2 = c, 3 = a, 4 = g, 5 = d, 6 = h, 7 = b, 8 = e a = C, b = G, c = A, d = V, e = G
Exploracin On-Line
Microsoft SQL Server 2008 http://www.microsoft.com/latam/sqlserver/ Oracle : http://www.oracle.com/index.html MySQL http://www.mysql.com/
Referencias Bibliogrficas
1. 2. 3. 4. 5. 6. 7. 8. 9. Booch, G., Rumbaugh, J. y Jacobson, I. (1999) El lenguaje unificado de modelado. Madrid. Addison Wesley Iberoamericana. Chen, Peter (1976), The entety-relationship model:Towards a unified view of data. ACM Trans. Database systems 1 (1) 9-36 Connolly, Thomas y Begg, Carolyn. (2008) Database Solutions. 5ta. Ed. Massachusetts. Addison Wesley. Date, C. (1995) An introduction to data base systems. 5ta. Ed. Massachusetts. Addison Wesley. De Miguel A. y Piattini M., (1999) Fundamentos y Modelos de Base de datos. 2da. Ed. Madrid. Alfa y Omega. Elmasri, Ramez y Shamkant Navathe (1997) Sistemas de Bases de Datos. Conceptos fundamentales. Segunda Edicin, Madrid, Addison-Wesley Iberoamericana. Finkelstein, C. (1992) Strategic systems development. Sydney: Addison-Wesley. Kroenke, David M. (2003) Procesamiento de base de datos. Fundamentos, diseo e implementacin. Mxico. Pearson Educacin. Martin, James. (1975) Computer Data Base Organization. New Jersey. Prentice Hall.
20
21
3.2
Entidad y Atributo
3.2.1 Entidad
El elemento bsico en el MER es la entidad. Una Entidad es una persona, lugar, cosa, concepto o suceso, real o abstracto, de inters para la empresa (ANSI2, 1977). Una entidad es una cosa u objeto en el mundo real que es distinguible de otros objetos (Korth, 2002, p.5). Por ejemplo, una persona, un alumno, el libro Anlisis de sistemas, un empleado, una asignatura, la asignatura Base de datos 1, un viaje, etc. En la figura 3.1, se representa una entidad persona.
Figura 3.1 Una Persona
3.2.2 Atributo
Cada entidad tiene propiedades especficas llamadas atributos que la describen. Un atributo es una propiedad o caractersticas de una entidad. Una entidad particular es descrita por los valores de sus atributos dentro del tipo de entidad. Por ejemplo, una entidad PERSONA puede describirse por su DNI, Nombre, Apellidos, Gnero, Estatura, Peso, Fecha de nacimiento. Una persona particular tendr un valor para cada uno de sus atributos. As dos entidades Persona con sus valores para cada atributo son: 06111988, CSAR, LUZA MONTERO, M, 1,70 m., 76 kg, 06-02-1959. 05879997, PEDRO, CARPIO FARFN, M, 1,76 m., 76 kg, 03-03-1959. Otro ejemplo: Considere el Tipo de entidad ALUMNO con los siguientes atributos: Cdigo. Nombre, Edad, Ciclo; a continuacin se muestra una porcin del conjunto de alumnos:
2
22
Modelado y Diseo de Base de datos (21-223333-23, Sofa, 18 aos, 2) (21-333333-44, Josefa, 19 aos, 5) (21.555555-55, Gabriela, 20 aos, 2)
Cada una de las entidades pertenecientes a este conjunto se diferencia de las dems por el valor de sus atributos. Ntese que dos o ms entidades diferentes pueden tener los mismos valores para algunos de sus atributos, pero nunca para todos.
3.3
Un Tipo de entidad define un conjunto de entidades que poseen los mismos atributos (Elmasri, 1997). Por ejemplo, el conjunto de entidades personas forman el tipo de entidad PERSONA (Figura 3.2).
Figura 3.2 Conjunto de personas, tipo de entidad PERSONA
Otros ejemplos de tipo de entidad son: LIBRO, EMPLEADO, ASIGNATURA, VIAJE. Desde el punto de vista de la abstraccin de clasificacin, el tipo de entidad describe un conjunto de entidades como resultado de la clasificacin, cada entidad es un elemento del tipo de entidad. En la figura 3.3, se observa cinco entidades que se clasifican en el tipo de entidad Asignatura.
Figura 3.3 Entidades y Tipo de entidad por abstraccin de clasificacin
Anlisis de Sistemas
Fsica I
CLASIFICACIN ASIGNATURA
Un tipo de entidad est formado por un conjunto de entidades, a los elementos de este conjunto tambin se le conoce como instancias de tipo de entidad. Por ejemplo, anlisis de sistemas es una instancia del tipo de entidad ASIGNATURA.
23
En la figura 3.6, se observa algunos ejemplos de tipos de entidad para un sistema acadmico:
Figura 3.6 Ejemplos de Tipo de entidad
ALUMNO PROFESOR ASIGNATURA
MATRICULA
AULA
HORARIO
24
3.4
3.4.1 Relacin
Una Relacin, tambin llamada interrelacin, es una asociacin, vnculo o correspondencia entre entidades relacionadas de alguna manera en un contexto determinado. Ejemplos: El profesor Jos Cruz ensea la asignatura Fundamentos de informtica El profesor Cesar Luza ensea la asignatura de Base de datos I El cliente Juan Prez realiza el pedido 34677 El cliente Jos Quiroz realiza el pedido 17450 El producto Tornillo se almacena en el almacn Central
La notacin Chen (1976) para un tipo de relacin es un rombo que une a los tipos de entidades asociadas (figura 3.9).
Figura 3.9 Notacin de tipo de relacin segn Chen (1976)
En la figura 3.11, se observa algunos ejemplos de tipo de relacin para un sistema acadmico.
Figura 3.11 ejemplos de tipo de relacin
Entre dos tipos de entidades puede establecer ms de un tipo de relacin. En la figura 3.12, se observa dos relaciones entre persona y edificio. El tipo de relacin Persona USA Edificio significa que una persona es usuaria del edificio. El tipo de relacin Persona POSEE Edificio 25
significa que la persona es propietaria del edificio. Ambas relaciones se modelan porque es de inters la informacin de quien es el propietario y quines son los usuarios.
Figura 3.12 Dos tipos de relacin entre dos tipos de entidad
26
Notacin IE
DECANO
DIRIGE
FACULTAD
El Tipo de correspondencia 1 a N (Uno a Muchos) significa que una instancia de un tipo de entidad est vinculada a lo ms con varias instancias del otro tipo de entidad asociada. Por ejemplo el tipo de relacin FACULTAD tiene ALUMNO es de Uno a Muchos, porque una Facultad tiene muchos Alumnos, adems un Alumno pertenece solo a una Facultad (Figura 3.18).
Figura 3.18 Ejemplo Tipo de Relacin Uno a Muchos
FACULTAD
T IENE
ALUMNO
27
El Tipo de correspondencia M a N (Muchos a Muchos) significa que una instancia de un tipo de entidad est vinculada a lo ms con varias instancias del otro tipo de entidad asociada, y viceversa. Por ejemplo el tipo de relacin ALUMNO lleva ASIGNATURA es de Muchos a Muchos, porque un Alumno lleva varias Asignaturas, adems una Asignatura es llevada por varios Alumnos (Figura 3.19).
Figura 3.19 Ejemplo Tipo de Relacin Muchos a Muchos
ALUMNO
LLEVA
ASIGNATURA
ACTOR
PELICULA
28
FACULTAD
T IENE
ALUMNO
Ahora, consideremos la relacin Alumno lleva Asignatura, un alumno como mnimo lleva cero asignaturas (puede no matricularse en un semestre), como mximo puede llevar muchas asignaturas; adems, una asignatura como mnimo tiene cero alumnos (cuando la asignatura se cancela o no se programa) y como mximo muchos alumnos (figura 3.21).
Figura 3.21 Otros ejemplo Razn de participacin
ALUMNO
LLEVA
ASIGNATURA
29
4.2
Entidades dbiles
En ocasiones, una entidad no tiene por s misma datos suficientes como para poder identificarla. Por ejemplo, las aulas de una Facultad se pueden identificar por nmero de aula, pero los nmeros podran repetirse en otra Facultad. En este caso diremos que el tipo de entidad AULA es dbil respecto de FACULTAD (entidad fuerte).
4.2.1 Definicin
Una entidad dbil es aquella que no tiene atributo identificador propio. Su existencia depende de otra entidad (fuerte) que la posee y la identifica inequvocamente. Ejemplo: Provincia es entidad dbil de departamento, para identificar una provincia se necesitar el nombre de la provincia y del departamento. En el contexto de la planilla de una empresa, FAMILIAR depende de EMPLEADO, Familiar es entidad dbil porque depende de Empleado.
4.2.2 Notacin
Una entidad dbil se representa con un rectngulo de doble lnea, con el nombre al interior. En la figura 4.1 se muestra la entidad dbil familiar que depende de Empleado.
Figura 4.1 Notacin de entidad dbil
EMPLEADO
(1,1)
E Tiene dependientes
(0,n)
FAMILIAR
EMPLEADO
T IENE_DEPEDIENT ES
FAMILIAR
4.3
Generalizacin o Especializacin
4.3.1 Definicin
La generalizacin es caso especial de relacin entre un tipo de entidad y varios otros tipos de entidad. La jerarqua o relacin que se establece entre uno y otros corresponde a la nocin de es_un o de es_un_tipo_de. Estas jerarquas pueden formarse por especializacin o bien por generalizacin. Por ejemplo: Un ANIMAL es un FELINO, es una jerarqua obtenida por Especializacin, de arriba hacia abajo. Un REPTIL es un tipo de ANIMAL; Un INSECTO es un tipo de ANIMAL son jerarquas obtenidas por Generalizacin. El proceso de generalizacin se caracteriza por el nfasis en las similitudes de los subtipos y cada instancia del supertipo es tambin una instancia de algunos de los subtipos.
30
El proceso de especializacin se caracteriza por las diferencias de los subtipos y alguna instancia del supertipo puede no ser instancia de ningn subtipo.
4.3.2 Notacin 4
La generalizacin o especializacin se representa con un triangulo, en la figura 4.2, representa que Secretario es un tipo de Empleado, de igual forma Gerente y Comercial son tipos de Empleados.
Figura 4.2 Notacin de generalizacin
EMPLEADO
SECRETARIO
GERENTE
COMERCIAL
31
Precio
(1,n)
(0,1) SIDECAR
CAM ION
NumEjes
NumPuertas
32
Los Subtipos son solapados si una instancia del supertipo puede ser, a la vez, miembro de ms de un subtipo. Es la opcin por defecto. En la figura 4.7, una instancia de Persona puede pertenecer a Empleado y a estudiante a la vez.
Figura 4.7 Ejemplo de Solapamiento
33
La Especializacin parcial indica que es posible que alguna instancia del supertipo no pertenezca a ninguno de los subtipos. Es la opcin por defecto. La unin de las extensiones de los subtipos no es la extensin del supertipo en su totalidad. En la figura 4.9, existen algunas instancias del supertipo Alimento que no pertenecen a ninguno de los subtipos representados.
Figura 4.9 Ejemplo de Parcialidad
34
5.1
Para identificar los tipos de entidad, es muy importante considerar el contexto o dominio del problema descrito en la especificacin de requerimientos de informacin. En general, se puede seleccionar como tipo de entidad los nombres o sustantivos que aparecen en la especificacin de requerimiento, por ejemplo Cliente, Aula, Alumno. Se sugiere, tambin, seleccionar objetos importantes como personas, lugares o conceptos de inters, excluyendo aquellos nombres que slo son propiedades de otros objetos, por ejemplo, se pueden agrupar el nmero de empleado y el nombre de empleado en un tipo de entidad denominada Empleado, y agrupar nmero de inmueble, direccin del inmueble y nmero de habitaciones en otro tipo de entidad denominada Inmueble. Una de las decisiones cruciales del diseo conceptual es determinar si un objeto o concepto se modela como un tipo de entidad o no. Por ejemplo, el color es habitualmente un atributo de una entidad (color de un auto), pero en una fbrica de pinturas probablemente sera apropiado modelar el color como una entidad con sus propios atributos. No siempre es obvio saber si un objeto es una entidad, una relacin o un atributo. Por ejemplo cmo se podra clasificar matrimonio? Pues de cualquiera de las tres formas. El anlisis es subjetivo, por lo que distintos diseadores pueden hacer distintas interpretaciones, aunque todas igualmente vlidas. Todo depende de la opinin y la experiencia de cada uno. Los diseadores de bases de datos deben tener una visin selectiva y clasificar las cosas que observan dentro del contexto de la empresa u organizacin. A partir de unas especificaciones de usuario es posible que no se pueda deducir un conjunto nico de entidades, pero despus de varias iteraciones del proceso de anlisis, se llegar a obtener un conjunto de entidades que sean adecuadas para el sistema que se ha de construir.
5.2
Identificar Atributos
Para identificar atributos, al igual que con las entidades, se buscan nombres en las especificaciones de requisitos. Son atributos los nombres que identifican propiedades, cualidades, identificadores o caractersticas de entidades o relaciones.
35
Otra forma sencilla para identificar atributos es preguntarse qu informacin se quiere saber de cada entidad? La respuesta a esta pregunta se debe encontrar en las especificaciones de requisitos. Cuando se estn identificando los atributos, se puede descubrir alguna entidad que no se ha identificado previamente, por lo que hay que volver al principio introduciendo esta entidad y viendo si se relaciona con otras entidades.
5.3
Para identificar los tipos de relaciones se suelen buscar las expresiones verbales (por ejemplo: oficina tiene empleados, empleado gestiona inmueble, cliente visita inmueble). Si las especificaciones de requisitos reflejan estas relaciones es porque son importantes para la empresa y, por lo tanto, se deben reflejar en el esquema conceptual. Slo interesan las relaciones que son necesarias. En el ejemplo anterior, se han identificado las relaciones empleado gestiona inmueble y cliente visita inmueble. Se podra pensar en incluir una relacin entre empleado y cliente: empleado atiende a cliente, pero observando las especificaciones de requisitos no parece que haya inters en modelar tal relacin. La mayora de las relaciones son binarias (entre dos entidades), pero no hay que olvidar que tambin puede haber relaciones en las que participen ms de dos entidades, as como relaciones recursivas. Una vez identificadas todas las relaciones, hay que determinar la cardinalidad mnima y mxima con la que participa cada entidad en cada una de ellas. Si la relacin es de muchos a muchos es importante asegurarse si tiene o no atributos. De este modo, el esquema representa de un modo ms explcito la semntica de las relaciones.
5.4
Cada entidad tiene al menos un identificador. En este paso, se trata de encontrar todos los identificadores de cada una de las entidades. Los identificadores pueden ser simples o compuestos. De cada entidad se escoger uno de los identificadores como clave primaria en la fase del diseo lgico. Cuando se determinan los identificadores es fcil darse cuenta de si una entidad es fuerte o dbil. Si una entidad tiene al menos un identificador, es fuerte (otras denominaciones son padre, propietaria o dominante). Si una entidad no tiene atributos que le sirvan de identificador, es dbil (otras denominaciones son hijo, dependiente o subordinada)..
5.5
En este paso hay que observar los tipos de entidades que se han identificado hasta el momento. Si es necesario reflejar las diferencias entre distintas ocurrencias de un tipo sw entidad, con lo que surgirn nuevos subtipos de esta entidad genrica; o bien, si hay entidades que tienen caractersticas en comn y que realmente son subtipos de una nueva entidad genrica.
5.6
Antes de finalizar el diseo conceptual, se debe revisar el esquema conceptual con el usuario. Este esquema est formado por el diagrama entidad-relacin y toda la documentacin que describe el esquema. Si se encuentra alguna anomala, hay que corregirla haciendo los cambios oportunos, por lo que posiblemente haya que repetir alguno de los pasos anteriores.
36
Este proceso debe repetirse hasta que se est seguro de que el esquema conceptual es una fiel representacin de la parte de la empresa que se est tratando de modelar.
5.7
Casos de ejemplo
AGENCIA
GARAJE
Identificando Atributos:
DNI
NOMBRE
NUMERO
FECHA_INICIO
FECHA_FIN
NRO_PLACA
RESERVA
AUTO
DIRECCION
CAPACIDAD
AGENCIA
GARAJE
37
CLIENTE
REALIZA
RESERVA (0,n)
REALIZADA
INVOLUCRA
AUTO PLACA
ASIGNADO
38
SOLUCIN
DEMARCACION CODIGO NOMBRE NUM_HABITANTES NUM_VEHICULOS NUM_CONDUCTORES
SE_PRODUCE
ACCIDENTE ESTADO_VEHICULO
AFECT A
APLICADA
INVOLUCRA
VEHICULO
REGIST RA
MATRICULA
PROPIETARIO NUM_TARJETA_PROP
COMPRADO
39
Resumen
Un MER es un modelo conceptual, basado en Tipos de entidad, Tipos de relacin y atributos. Sus extensiones consideran entidades dbiles, generalizacin, etc. Una entidad es una persona, lugar, cosa, concepto o suceso, real o abstracto, de inters para la empresa. Un atributo es una propiedad de la entidad. Un tipo de entidad define un conjunto de entidades con los mismos atributos. Un atributo identificado permite distinguir una entidad de otra. Una relacin es una asociacin entre dos entidades. Un tipo de relacin es un conjunto de relaciones existentes entre entidades. El grado de una relacin es el numero de entidades que participa en la relacin Los roles ayudan a explicar el significado de una relacin, se usa relaciones unarias La razn de cardinalidad o tipo de correspondencia es una restriccin definida por el nmero mximo de instancias de un tipo de entidad que puede estar relacionada con una instancia del otro tipo de entidad asociada. Puede ser: uno a uno, uno a muchos y muchos a muchos. Un atributo de una relacin es propio de la relacin. La Razn de Participacin o cardinalidad mnima y mxima de una relacin, son los nmeros mnimo y mximo de instancias de tipo de relacin en las que puede intervenir una instancia del tipo de entidad participante. Una entidad dbil es aquella que no tiene atributo identificador propio. Su existencia depende de otra entidad (fuerte) que la posee y la identifica inequvocamente. La generalizacin es una relacin entre un tipo de entidad (padre) y varios otros tipos de entidad (hijos), donde la jerarqua o relacin que se establece entre uno y otros corresponde a la nocin de es_un o de es_un_tipo_de.
40
Lectura
El Lenguaje de Modelado Unificado UML (*)
Los diagramas entidad-relacin ayudan a modelar el componente de representacin de datos de un sistema software. La representacin de datos, sin embargo, slo forma parte de un diseo completo de un sistema. Otros componentes son modelos de interaccin del usuario con el sistema, especificacin de mdulos funcionales del sistema y su interaccin, etc. El lenguaje de modelado unificado (UML, Unified Modeling Language) es un estndar propuesto para la creacin de especificaciones de varios componentes de un sistema software. Algunas de las partes de UML son: Diagrama de clase. Un diagrama de clase es similar a un diagrama E-R. Ms adelante en este apartado se mostrarn algunas caractersticas de los diagramas de clase y cmo se corresponden con los diagramas E-R. Diagrama de caso de uso. Los diagramas de caso de uso muestran la interaccin entre los usuarios y el sistema, en particular los pasos de las tareas que realiza el usuario (tales como prestar dinero o matricularse de una asignatura). Diagrama de actividad. Los diagramas de actividad describen el ujo de tareas entre varios componentes de un sistema. Diagrama de implementacin. Los diagramas de implementacin muestran los componentes del sistema y sus interconexiones tanto en el nivel del componente software como el hardware. Aqu no se intentar proporcionar un tratamiento detallado de las diferentes partes de UML. Vanse las notas bibliogrficas para encontrar referencias de UML. En su lugar se ilustrarn algunas caractersticas de UML mediante ejemplos. La Figura 2.28 muestra varios constructores de diagramas E-R y sus constructores equivalentes de los diagramas de clase UML. Ms abajo se describen estos constructores. UML muestra los conjuntos de entidades como cuadros y, a diferencia de E-R, muestra los atributos dentro del cuadro en lugar de como elipses separadas. UML modela realmente objetos, mientras que E-R modela entidades. Los objetos son como entidades y tienen atributos, pero adems proporcionan un conjunto de funciones (denominadas mtodos) que se pueden invocar para calcular valores en trminos de los atributos de los objetos, o para modificar el propio objeto. Los diagramas de clase pueden describir mtodos adems de atributos. Los conjuntos de relaciones binarias se representan en UML dibujando simplemente una lnea que conecte los conjuntos de entidades. Se escribe el nombre del conjunto de relaciones adyacente a la lnea. Tambin se puede especificar el papel que juega un conjunto de entidades en un conjunto de relaciones escribiendo el nombre del papel en un cuadro, junto con los atributos del conjunto de relaciones, y conectar el cuadro con una lnea discontinua a la lnea que describe el conjunto de relaciones. Este cuadro se puede tratar entonces como un conjunto de entidades, de la misma forma que una agregacin en los diagramas E-R puede participar en relaciones con otros conjuntos de entidades. La relaciones no binarias no se pueden representar directamente en UML .se deben convertir en relaciones binarias. Las restricciones de cardinalidad se especifican en UML de la misma forma que en los diagramas E-R, de la forma i..h, donde i denota el mnimo y h el mximo nmero de relaciones en que puede participar una entidad. Sin embargo, se debera ser consciente que la ubicacin de las restricciones es exactamente el inverso de la ubicacin de las restricciones en los diagramas E-R, como muestra la Figura 2.28. La restriccin 0..* en el lado E2 y 0..1 en el lado E1 41
significa que cada entidad E2 puede participar a lo sumo en una relacin, mientras que cada entidad E1 puede participar en varias relaciones; en otras palabras, la relacin es varios a uno de E2 a E1. Los valores como 1 o * se pueden escribir en los arcos; el valor 1 sobre un arco se trata equivalentemente como 1..1, mientras que * es equivalente a 0..*. La generalizacin y especializacin se representan en el diagrama E-R conectando conjuntos de entidades por una lnea con un tringulo al final correspondiente al conjunto de entidades ms general. Por ejemplo, el conjunto de entidades persona es una generalizacin de cliente y empleado. Los diagramas UML tambin pueden representar explcitamente las restricciones de generalizaciones disjuntas y solapadas. La Figura 2.28 muestra generalizaciones disjuntas y solapadas de cliente y empleado a persona. Recurdese que la generalizacin de cliente / empleado a persona es disjunta, y significa que ninguna entidad puede ser a la vez un cliente y un empleado. Una generalizacin solapada permite que una persona sea tanto cliente como empleado.
42
Actividades
Elaborar el MER para los siguientes casos 1. Empresa de venta de productos
Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes: DNI, nombre, apellidos, direccin y fecha de nacimiento. Cada producto tiene un cdigo y un nombre as como un precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios clientes. Se debe tener en cuenta que un producto solo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el RUC, nombre y direccin.
2. Institucin Educativa
Se desea elabora una base de datos para el administrador de una institucin educativa, que brinda cursos de informtica, quien manifiesta lo siguiente: Enseamos muchos cursos, cada uno de los cuales tiene un cdigo, un nombre y un precio. Dos de nuestros cursos ms populares son: Introduccin a Internet y Programacin Java. Los cursos se dictan entre uno a cuatro das. Un instructor puede ensear varios cursos. Registramos el nombre y nmero de telfono de los profesores. Cada curso es enseado por slo un instructor. Creamos un curso y luego le asignamos un profesor. Los estudiantes pueden tomar varios cursos a la vez, y muchos de ellos lo hacen. Tambin registramos el nombre y telfono de cada estudiante. Algunos de nuestros estudiantes e instructores no nos dan sus nmeros telefnicos."
4. Compaa de Videos
Soy el propietario de una pequea tienda de videos. Tenemos alrededor de 3.000 cintas de las cuales necesitamos mantener su estado. Cada uno de nuestras cintas tiene un nmero de identificacin. Para cada pelcula, necesitamos conocer su ttulo y categora (comedia, suspenso, drama, accin, guerra, etc.)Tenemos mltiples copias de muchas de nuestras pelculas. A cada pelcula le asignamos un identificador y le asociamos la cinta que la contiene. Una cinta puede ser formato Beta o VHS. Siempre tenemos al menos una cinta para cada pelcula que nosotros rastreamos, y cada cinta es siempre una copia de una nica pelcula. Nuestras cintas son de larga duracin y no tenemos pelculas que requieran mltiples cintas. Frecuentemente nos preguntan por pelculas con actores populares especficos. As que deseamos registrar las pelculas donde estn los actores de moda. No todas nuestras pelculas tienen actores famosos o de moda. Clientes desean conocer de cada actor su nombre real y fecha de cumpleaos. Slo registramos los actores que aparecen en pelculas de nuestro inventario.
43
Tenemos cientos de clientes. Slo arrendamos videos a gente asociada a nuestro video-club. Para cada socio, registramos su nombre, apellido, telfono, direccin. Y, por supuesto cada socio tiene su nmero de socio. Luego, necesitamos conocer que cinta ha retirado cada cliente. Un cliente puede retirar varias cintas al mismo tiempo. Slo registramos los arriendos actuales, no los histricos.
5. Empresa Bancaria
Un banco brinda cuentas corrientes y cuentas de ahorro. Un cliente tiene al menos una cuenta, aunque puede tener varias cuentas de cualquiera de los dos tipos. Cada cuenta pertenece a un nico cliente. Los clientes tienen un nombre, una direccin y se identifican por su cdigo. Los clientes son personas reales u organizaciones. Las personas tienen fecha de nacimiento y sexo; en cambio las organizaciones tienen un tipo de organizacin (empresa, institucin pblica, etc.), un representante y un total de empleados. Cada cuenta se identifica por un cdigo, formado por el nmero de la sucursal y el n de la cuenta (dentro de dicha sucursal). Todas las cuentas tienen un saldo actual y un saldo medio, pero el tipo de amortizacin slo lo tienen las cuentas de ahorro (que slo suponen el 5% del total de cuentas existentes). Cada sucursal se identifica por su nmero. Adems tiene una direccin, un cdigo postal y una ciudad. Los empleados del banco se identifican por su DNI. Tambin interesa conocer su nombre, fecha de nacimiento, sexo y la sucursal en la que trabajan (aunque hay empleados que no trabajan en ninguna sucursal).
44
Autoevaluacin
1. Con respecto al concepto de MER, entre los parntesis de la siguiente lista, marque V=Verdadero o F=Falso, segn corresponda: a. ( ) Es un modelo de datos lgico b. ( ) Es un modelo de datos conceptual c. ( ) Incluye detalles de implementacin d. ( ) Incluye tipos de entidades y tipos de relacin e. ( ) Es un software para representar datos Establezca la relacin de concepto y su descripcin, colocando la letra de la descripcin en la celda a la derecha del Concepto: Concepto 1. Entidad 2. Tipo de entidad 3. Atributo 4. Atributo Identificador 5. Relacin 6. Tipo de Relacin 7. Grado de Tipo Relacin 8. Rol 3. a) Descripcin del concepto. Cdigo, nombre, edad de alumno; DNI, nombre de persona
2.
b) Cesar alquila un video; Juan lleva base de datos 1 c) d) Juan Prez, Pedro Miranda, Ayudan a explicar el significado de una relacin y se usa en relaciones unarias
e) DNI de una persona, Cdigo de una Asignatura f) g) Numero de tipos de entidad que participan en un tipo de relacin Alumno, Persona
A continuacin se listan una serie de supuestos semnticos y una serie de diagramas entidad relacin, establezca la correspondencia correcta colocando la letra del diagrama en la casilla DERal costado del supuesto semntico: Supuesto semnticos 1. 2. 3. 4. Un promotor vende uno o ms productos y un producto es vendido por solo un promotor. Un promotor puede vender muchos productos (al menos uno) y un producto puede ser vendido por muchos promotores. Un promotor vende uno y solo un producto, un producto puede ser vendido por solo un promotor. Hay promotores que no venden ningn producto. Un promotor vende uno y solo un producto, pero un producto puede ser vendido por muchos promotores Diagramas Entidad Relacin a)
PROMOTOR
VEN DE
DER
PRODUCTO
b)
PROMOTOR
VEN DE
PRODUCTO
45
PRODUCTO
d)
PROMOTOR
VEN DE
PRODUCTO
4.
PRESTAMO
PERSONA
EMPRESA
Entre los parntesis de la siguiente lista, marque V=Verdadero o F=Falso, segn corresponda: a. b. c. d. e. ( ( ( ( ( ) Una persona puede solicitar prstamo ) Un prstamo puede ser solicitado solo por un cliente persona, no por empresas ) Un cliente es un tipo de empresas ) Una empresa es un tipo de cliente ) Una persona es un tipo de cliente
Respuestas de Control
1. 2. 3. 4. a = F, 1 = c, 1 = c, a = V, b = V, 2 = g, 2 = d, b = F, c = F, 3 = a, 3 = a, c = F, d = V, e = F 4 = e, 5 = b, 6 = h, 7 = f, 8 = d 4= b d = V, e = V
Exploracin On-Line
Herramienta de modelado dbdesigner http://fabforce.net/dbdesigner4/ Herramienta de modelado DIA for Windows http://dia-installer.de/index_en.html
Referencias Bibliogrficas
1. ANSI (1977): The ANSI/X3/SPARC DBMS Framework. Report on the Study Group on Database Management Systems. D. Tsichiritzis y A. Klug (eds). Montvalle, N.J.: AFIP Press. 46
2. Chen, Peter (1976), The entety-relationship model:Towards a unified view of data. ACM Trans.Sistemas de bases de datos 1 (1) 9-36. 3. De Miguel A. y Piattini M., (1999) Fundamentos y Modelos de Base de datos. 2da. Ed. Madrid. Alfa y Omega. 4. Elmasri, Ramez y Shamkant Navathe (1997) Sistemas de Bases de Datos. Conceptos fundamentales. Segunda Edicin. Madrid. Addison-Wesley Iberoamericana. 5. Finkelstein, C. (1992) Strategic systems development. Sydney: Addison-Wesley. 6. Korth, H., Silberschatz, A., Sudarschan, S. (2002) Fundamentos de base de datos. 4ta. Ed. Madrid. McGrawHill/Interamericana.
47
48
Leccin 6
Modelo Entidad-Relacin
4.1
Definicin
El Modelo Relacional, es un modelo de datos lgico, fue introducido por Codd (1970). Es el FACTURA modelo ms utilizado en la actualidad para modelar y administrar datos. En el modelo relacional los datos se representan como una coleccin de Relaciones o Tablas (Figura 6.1). Una Relacin es un conjunto de datos.
Figura 6.1 OrganizacinBase Datos Relacional tablas de datos como relaciones o
FACTURA cod fecha id_t
Datos Jerarquica
FACTURA
ITEM 1
ITEM 1 ITEM cod cant prod PRODUCTO 2 PRODUCTO cod desc stock
RODUCTO 1
Este modelo de datos persegua una serie de objetivos que se resumen en: Independencia fsica, Independencia lgica, Flexibilidad, Uniformidad. Sencillez. FACTURA PROD1 Con la Independencia fsica PROD2 el modo en que se almacenan los datos no influye en su manipulacin lgica y por tanto, los usuarios que acceden a esos datos no tienen que modificar sus programas por cambios en el almacenamiento fsico.
ITEM1 ITEM2 Con la Independencia lgica el aadir, eliminar o modificar objetos de la base de datos no repercute en los programas y usuarios que estn accediendo a subconjuntos parciales de los mismos (vistas).
Con la Flexibilidad se pretende presentar a cada usuario los datos de la forma en que ste prefiera. Con la Uniformidad las estructuras lgicas de los datos presentan un aspecto uniforme, lo que facilita la concepcin y manipulacin de la base de datos por parte de los usuarios. Con la Sencillez las caractersticas anteriores, as como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo de datos relacional sea fcil de comprender y de utilizar por parte del usuario final.
4.2
Elementos
4.2.1 Relacin
De manera simple, una relacin representa una tabla, que no es ms que un conjunto de filas y columnas. Cada fila es un conjunto de atributos, el conjunto de atributos se conoce como cabecera o esquema de la relacin y cada atributo representa un valor que interpretado describe el mundo real (Figura 6.2).
49
Cada fila tambin se puede denominar tupla o registro y a cada columna tambin se le puede llamar campo o atributo.
Figura 6.2 Elementos de una relacin
Modelado y Diseo de Base de datos FACULTADES (Cdigo, Nombre) ALUMNOS (Cdigo, Nombre, Edad, Facultad), ASIGNATURAS (Cdigo, Descripcin), DOCENTES (DNI, Nombre)
El estado de la base de datos es la data actualmente en la base de datos. En la figura 6.3 se muestra un ejemplo de estado de base de datos en un momento determinado.
FACULTADES Cdigo Nombre 21 17 11 SISTEMAS INDUSTRIAL ADMINISTRACIN Figura 6.3 Estado de una base de dato ALUMNOS Cdigo Nombre Edad Facultad 21 19 18 17 21 21 21-990101 JUAN 21-872342 MARA 21-765349 ALBERTO DOCENTES Cdigo 6222888 3490023 8674444 Nombre CARPIO CRUZ LUZA
ASIGNATURAS Cdigo Nombre BD01 BASE DE DATOS 1 ANLISIS DE AS99 SISTEMAS LP03 CC00 LENGUAJE CIRCUITOS DIGITALES
OM00 ORGANIZACIN
4.3
Reglas
El modelo relacional considera una serie de reglas o restricciones para estar completamente definida. 51
52
7.1
Para transformar un tipo de entidad a relacin (esquema relacional) se se crea una relacin por cada entidad; los atributos de la entidad se transforman en atributos de la relacin; el identificador del tipo de entidad se transforma en la clave primaria de la relacin. Por ejemplo, el siguiente tipo de entidad
CODIGO
DESCRIPCION
CATEGORIA
7.2
Las reglas bsicas de transformacin de tipo de relacin a esquema relacional se puede resumir segn el tipo de correspondencia en:
(0,1) ALUM NO
(0,n)
Es_tutor_de
ii.
FACULTAD
(1,1)
TIENE
(0,n)
ALUMNO
Se transforma en los siguientes esquemas relacionales: FACULTAD (CDIGO, DESCRIPCIN) PK = CDIGO ALUMNO (CDIGO, APELLIDO, NOMBRE, CODIGO_FACULTAD) PK = CDIGO FK = CODIGO_FACULTAD de AFACULTAD
ALUM NO
(0,n)
LLEVA
(0,n)
ASIGNATURA
Se transforma en los siguientes esquemas relacionales: ALUMNO (CODIGO, APELLIDO, NOMBRE) PK= CODIGO ASIGNATURA (CODIGO, NOMBRE) PK = CODIGO LLEVA (CODIGO_ALUMNO, CODIGO_ASIGNATURA) PK = (CODIGO_ALUMNO, CODIGO_ASIGNATURA) FK = CODIGO_ALUMNO de ALUMNO FK = CODIGO_ASIGNATURA de ASIGNATURA Se ha creado una nueva relacin llamada LLEVA, cuyo PK est formado por la combinacin de los atributos: CodigoAlumno y CodigoAsignatura, cada uno de estos atributos es clave fornea independientemente. 54
DECANO
(0,1)
Se transforma en los siguientes esquemas relacionales, se ha intercambiado los atributos identificadores de ambas entidades:. DECANO (DNI, APELLIDOS, NOMBRES, CODIGO_FACULTAD)) PK = DNI FK = CODIGO_FACULTAD de FACULTAD FACULTAD (CODIGO, NOMBRE, DNI_DECANO) PK = CODIGO FK = DNI_DECANO de DECANO
7.3
Para transformar una entidad dbil, se crea una relacin para cada entidad dbil incluyendo todos sus atributos. Se aade una clave ajena a la entidad de la que depende. Para ello, se incluye la clave primaria de la relacin que representa a la entidad fuerte en la nueva relacin creada para la entidad dbil. A continuacin, determinar la clave primaria de la nueva relacin. Por ejemplo, el siguiente MER que incluye entidad dbil:
Cod_Articulo Fecha Nro_Fac (1,1)
E TIENE
Condicin
Nro_Det
Cantidad
FACTURA
(1,n)
DETALLE
Se transforma en: FACTURA (NroFac, Fecha, Condicin) PK = NroFac DETALLE (NroFac, NroDet, CodArticulo, Cantidad) PK = (NroFac, NroDet) FK = NroFac de FACTURA
7.4
Transformacin de generalizaciones
Para transformar una generalizacin se crear una relacin por cada entidad. Las relaciones de las entidades hijo heredan como clave primaria la de la entidad padre. Por lo tanto, la clave 55
primaria de las entidades hijo es tambin una clave ajena al padre. Esta opcin sirve para cualquier tipo de jerarqua, total o parcial y exclusiva o superpuesta. Por ejemplo, la siguiente jerarqua:
Codigo Ape llidos Nombre s
Se transforma en: ESTUDIANTE (Cdigo, Apellidos, Nombres) PK = Cdigo GRADUADO (Cdigo, FechaGraduacin)) PK = Cdigo FK = Cdigo de ESTUDIANTE NO_GRADUADO (Cdigo, FechaInspcripcin)) PK = Cdigo FK = Cdigo de ESTUDIANTE
7.5
Caso Ejemplo
Codigo Descripcin
CATEGORIA (1,1) INCLUYE Cantidad (0,n) Codigo PRODUCTO (1,n) (1,1) Nombre E TIENE (0,n) REA LIZADO (1,1) FechaCompra RUC (0,n) PEDIDO NUMERO FECHA
VENDIDO
(1,n)
Apellidos
Nombres
Descripcin
PERSONA
56
SOLUCIN CATEGORA (Cdigo, Descripcin); PK = Cdigo PRODUCTO (Cdigo, Nombre, CodigoCategoria); PK = Cdigo, FK = CodigoCategoria de CATEGORIA PRESENTACIN (CodigoProducto, Nmero, Descripcin, Cantidad, LimiteInf, LimiteSup); PK = (CodigoProducto, Nmero); FK = CodigoProducto de PRODUCTO CLIENTE (RUC, FechaCompra); PK = RUC EMPRESA (RUC, RaznSocial, Contacto); PK = RUC FK = RUC de CLIENTE PERSONA (RUC, Apellidos, nombres); PK = RUC FK = RUC de CLIENTE PEDIDO (Nmero, Fecha, RUC); PK = Nmero FK = RUC de CLIENTE VENDIDO (CodigoProducto, NmeroPedido, Cantidad); PK = (CodigoProducto, NumeroPedido) FK = CodigoProducto de PRODUCTO FK = NumeroPedido de PEDIDO
57
Leccin 8 Normalizacin
8.1 Definicin
La normalizacin de base de datos relacional es considerada un proceso formal para asegurar un buen diseo de base de datos relacional. A travs de este proceso, se descompone las relaciones (tablas) en otras de menor cantidad de columnas con el objetivo de evitar anomalas que pueden ocurrir en las operaciones de actualizacin de las mismas. La teora asociada al concepto de normalizacin fue introducida por E.D. Codd (1970). Se basa en el concepto matemtico de dependencias funcionales, y se expresa como reglas conocidas como formas normales.
8.2
Dependencias funcionales
Informalmente, el concepto de dependencia funcional se puede explicar de la siguiente manera: Un dato depende funcionalmente de otro, si este ltimo siempre lo identifica, es decir que conociendo su valor podemos identificar al primero. Por ejemplo, conociendo el valor de fecha de nacimiento podemos conocer el valor de Edad, entonces, se dice que Edad depende funcionalmente de fecha de nacimiento, y se representa: Fecha de Nacimiento Edad Formalmente, la dependencia funcional se puede definir de la siguiente manera: Sean A y B atributos de una relacin R. Se dice que B es funcionalmente dependiente de A (A B) si todo posible valor de A tiene asociado un nico valor de B. A y B pueden ser atributos simples o compuestos. Veamos otro ejemplo, consideremos la siguiente tabla: MATRICULA
Alumno Jos Prez Luis Adonis Jos Prez Lucas Len Asignatura Base de datos I Base de datos I Anlisis de Sistemas Organizacin y Mtodos Direccin Bolvar 180. Pueblo Libre Junn 300. Jess Mara Bolvar 180. Pueblo Libre Quiones 780. San Miguel Nota 18 16 19 17
Se observa que en las filas correspondientes a un mismo Alumno, existe el mismo valor para la Direccin. En otras palabras, en todas las filas con el mismo valor del atributo Alumno, el atributo Direccin tendr tambin el mismo valor. Entonces, se dice que el esquema cumple una dependencia funcional, y que el atributo Direccin depende funcionalmente de Alumno o que Alumno determina funcionalmente a Direccin y se denota: Alumno Direccin Tambin se observa que: Nota depende funcionalmente de Alumno y Asignatura juntos. (Alumno, Asignatura) Nota
58
Se observa que (Alumno, Asignatura) ==> Nota es una dependencia funcional completa. En cambio: (Alumno, Asignatura) Crditos no es una dependencia funcional completa, porque Asignatura Crditos.
Se observa que: Alumno Distrito, Distrito --/ Alumno (no determina funcionalmente), y Distrito Distancia, Entonces, Alumno --- distancia (Alumno determina transitivamente a distancia).
8.3
Formas normales
Las Formas Normales son reglas que permiten estructurar las relaciones (tablas) de tal manera que los datos de la base de datos permanezcan organizados y sea fcil realizar cambios sin efectos secundarios. Las formas normales bsicas son conocidas como: Primera Forma normal, Segunda Forma Normal y Tercera Forma Normal. Cada una se basa en el conjunto precedente de reglas, por lo que los datos que se encuentran en la Tercera Forma Normal, estn automticamente en las Primera y Segunda formas Normales, tambin.
Modelado y Diseo de Base de datos Por ejemplo, consideremos la siguiente relacin: MATRICULA
Alumno Jos Prez Luis Adonis Lucas Len Asignatura Base de datos I Base de datos I Organizacin y Mtodos Distrito Pueblo Libre Jess Mara San Miguel
Se observa que la relacin no esta en 1FN, porque el atributo telfono es multivalorado (permite varios valores). Las siguientes relaciones si estn en 1FN: MATRICULA
Alumno Jos Prez Luis Adonis Lucas Len Asignatura Base de datos I Base de datos I Organizacin y Mtodos Distrito Pueblo Libre Jess Mara San Miguel Telfono1 4519089 5490878 9876523 Telfono2 93009877 8762552
MATRICULA
Alumno Jos Prez Jos Prez Luis Adonis Lucas Len Lucas Len Asignatura Base de datos I Base de datos I Base de datos I Organizacin y Mtodos Organizacin y Mtodos Distrito Pueblo Libre Pueblo Libre Jess Mara San Miguel San Miguel Telfono 4519089, 93009877 5490878 9876523 8762552
Se observa que Alumno y Asignatura forman la clave primaria compuesta, mientras que Direccin y Nota son atributos no primarios (no forma parte de la clave primaria). Adems, (Alumno, Asignatura) ==> Nota es una dependencia funcional completa. Pero, (Alumno, Asignatura) Direccin no es una dependencia funcional completa, porque Alumno Direccin (Direccin solo depende de Alumno). Por lo tanto: La relacin MATRICULA, no esta en 2FN, porque, hay atributos no primarios que no depende completamente de la clave primaria.
60
Modelado y Diseo de Base de datos Las siguientes relaciones si estn en 2FN: MATRICULA
Alumno Jos Prez Luis Adonis Jos Prez Lucas Len Asignatura Base de datos I Base de datos I Anlisis de Sistemas Organizacin y Mtodos Nota 18 16 19 17
ALUMNO
Alumno Jos Prez Luis Adonis Jos Prez Lucas Len Direccin Bolvar 180. Pueblo Libre Junn 300. Jess Mara Bolvar 180. Pueblo Libre Quiones 780. San Miguel
Se observa que: Alumno Distrito, Distrito --/ Alumno (no determina funcionalmente), y Distrito Distancia, eEntonces, Alumno --- distancia (Alumno determina transitivamente a distancia). Por lo tanto: la relacin ALUMNO, no est en 3FN. Las siguientes relaciones si estn en 3FN: ALUMNO
Alumno Jos Prez Luis Adonis Jos Prez Lucas Len Edad 15 20 15 18 Distrito Pueblo Libre Jess Mara Pueblo Libre San Miguel
DISTRITO
Alumno Pueblo Libre Jess Mara Pueblo Libre San Miguel Distancia 200 100 200 300
8.4
Proceso de Normalizacin
La normalizacin involucra varias fases que se realizan en orden. La realizacin de la 2da fase supone que se ha concluido la 1ra y as sucesivamente. Tras completar cada fase se dice que la relacin esta en: Primera Formal Normal (1FN), Segunda Forma Normal (2FN) o Tercera Forma Normal (3FN), en ese orden. Para ejemplificar el proceso de normalizacin, consideremos la siguiente relacin, que muestra los datos asociados a los pedidos de productos realizados por los clientes de una determinada compaa: 61
ID_CLIENTE NOMCLI
010 E.METALICAS
246
13/10/2008
020
M.SOLDADURA P9 P8
280
5/12/2008
010
E.METALICAS P12
El anlisis de la organizacin de datos en esta tabla de pedido de productos nos permite observar las siguientes anomalas que se presentan cuando se realizan operaciones de actualizacin: Si se desea registrar a un nuevo cliente, se tendra que registrar, como consecuencia, un pedido ficticio. Es decir, no se puede registrar a un cliente sin un pedido. Si se desea actualizar algn dato de un cliente, se tendra que actualizar, como consecuencia, en mas de una fila. Si se desea anular un pedido de un cliente, se tendra, como consecuencia la eliminacin del cliente. Estas anomalas corresponden a un mal diseo, procedamos a normalizar para evitar estas anomalas.
62
Observamos que NOMBRE_PROD depende de ID_PRODUCTO, (Hay dependencia parcial), entonces, no esta 2FN. Procedemos a formar otra relacin que tendr como llaves este subconjunto, a esta nueva relacin le llamamos PRODUCTO, como se muestra a continuacin: PRODUCTO
ID_PRODUCTO P2 P4 P9 P2 P9 P8 P12 NOMBRE_PROD LIC. CONTA LIC. PLAN MTO. ANUAL LIC. CONTA MTO ANUAL MTO ANUAL X LOTUS
63
Modelado y Diseo de Base de datos Y la relacin DETALLE_PEDIDO quedar como sigue: DETALLE_PEDIDO
ID_PEDIDO 123 123 123 246 246 280 280 ID_PRODUCTO P2 P4 P9 P2 P9 P8 P12 CANT 20 5 1 10 1 1 5
Para pasar a 3FN, deber formarse una NUEVA relacin con este dato. Esta relacin deber tener como llave a ID_CLIENTE. A esta nueva tabla le llamamos CLIENTE: CLIENTE
ID_CLIENT E 010 020 010 NOMBRE_CLI E. METALICAS M .SOLDADURA E. METALICAS
64
Modelado y Diseo de Base de datos Finalmente, el esquema normalizado es: CLIENTE (ID_CLIENTE, NOMBRE_CLI) PEDIDO (ID_PEDIDO, FECHA, ID_CLIENTE) PRODUCTO (ID_PRODUCTO, NOMBRE_PROD)
8.5
Normalizacin Avanzada
Con las tres formas normales bsicas se pueden realizar diseo adecuados de base de datos relacionales. Sin embargo, hay casos especiales que requieren otras reglas de normalizacin, estas son: la Forma Normal de Boyce-Codd (FNBC), la Cuarta (4FN) y la Quinta Forma (5FN).
65
Resumen
El modelo relacional es un modelo de datos lgico. Los datos son representados como tablas. Una relacin o tabla es un conjunto de filas y columnas. Cada fila es un conjunto de atributos (esquema o cabecera de la relacin). El estado o contenido de la relacin es el conjunto de filas. El dominio de un atributos es el conjunto de valores que el atributo puede tomar. La Clave Candidata es un conjunto no vacio de atributos que identifican univoca y mnimamente cada tupla que cumple un esquema de relacin. Una Clave Primaria (Primary Key) es una clave candidata elegida, mediante algn criterio, para este fin. Una Clave Fornea (Foreign Key) es una combinacin de atributos cuyos valores estn basados en los valores de la clave primaria de otra tabla o de la misma tabla. La normalizacin es un proceso que permite asegurar un buen diseo de base de datos relacionalesr. Los pasos del proceso de normalizacin son los siguientes: o Representar en una nica relacin todos los atributos o Determinar las llaves candidatas y seleccionar la llave primaria o Aplicar la 2FN o Aplicar la 3FN o Analizar las relaciones obtenidas para optimizarlas Al aplicar la 2FN a una relacin, puede ser necesario crear varias tablas, ya que puede haber diferentes conjuntos de atributos no llaves que dependan, cada uno, de diferentes subconjuntos de la llave primaria y, por lo tanto, habr que hacer una tabla por cada subconjunto diferente de la llave primaria que determine a los distintos conjuntos de atributos no llaves. Los subconjuntos de la llave primaria pueden ser simples o compuestos. Al aplicar la 3FN pueden derivarse tambin varias tablas, si hay distintos conjuntos de atributos no llaves que dependen transitivamente de la llave primaria a travs de diferentes atributos ( o conjunto de atributos) no llaves primarias Al aplicar la normalizacin a un determinado fenmeno, puede ocurrir que no haya que aplicar una determinada forma normal, es decir puede ocurrir que, al encontrar bien la llave y por lo tanto tener la relacin en 1FN, ya este tambin en 2 FN o que, al llevar una relacin a 2 FN, ya este tambin en 3 FN. Puede haber varias llaves candidatas para una relacin. De estas, se escoge como llave primaria, en general, la que resulte ms cmoda para trabajar Al aplicar la normalizacin a una relacin que tiene ms de una llave candidata, independientemente de la llave primaria que se haya escogido, se obtienen modelos de datos equivalentes. Puede ocurrir que, aplicar la 3FN a una relacin, alguna de las que se deriven de ella no est aun en 3FN y, entonces es necesario aplicar nuevamente la 3FN a esta relacin resultante. En la mayora de casos, bastara con normalizar los datos hasta FNBC, tambin deber tener en cuenta algunas de nuestras advertencias o recomendaciones vertidas en esta unidad.
66
Actividades
1. Transformar los siguientes MER a MR
a)
nombre Nacionalidad (1,1) Titulo (1,n) Productora Ao (1,n) Nombre Nacionalidad (1,n)
DIRECTOR
DIRIGE
PELICULA (1,1)
PARTICIPA
ACTOR
Sexo AVAL
TIENE (1,n) EJEM PLAR (0,n) (1,1) SOCIO (0,n) (0,n) SOLICITA FecDevolucion DNI Nombre Direccin FecSolicitud Numero Estado
Sexo
b)
Nombre Codigo EM PLEADO (0,1)
S
Direccin
NomDe pto
(1,n)
PERTENECE
DEPARTAM ENTO
FecAsignacin
(0,1) (0,1)
FecCe se
ADM INISTRATIVO
TECNICO
(1,n)
TRABAJA
(0,n)
PROYECTO
67
ASIGNADO
(1,n)
EM PLEADO (1,1)
(0,n)
Estudios Nombre CONSUM E Cantidad E TIENE Pare nte sco (0,n) RECURSO Nombre CodRe curso BENEFICIARIO Dire ccin
(1,n)
De scripcin
Fe cNacimie nto
Se xo
68
Referencias Bibliogrficas
1. Codd, E.F. (1970) "A Relational Model of Data for Large Shared Data Banks") Communications of the ACM, Vol 13 Num. 6. 2. Fagin R. (1977) Multi-Valued Dependencies and a New Normal Form for relationa data bases. ACM TODS 2 . No 3 (Septiembre) 3. Korth, H., Silberschatz, A., Sudarschan, S. (2002) Fundamentos de base de datos. 4ta. Ed. Madrid. McGrawHill/Interamericana.
69
GLOSARIO
1. DBA: Data Base Administrator, persona responsable de la confidencialidad, disponibilidad, seguridad e integridad de los datos almacenados en la base de datos; vigila el buen funcionamiento del sistema de base de datos. 2. DBMS: Data Base Management System, Sistema de Gestin de de Base de Datos 3. Arquitectura ANSI/x3/SPARC: Arquitectura de tres niveles (externo, conceptual e interno) que permite la independencia de datos. 4. SQL: Structured Query Language, Lenguaje de Consultas estructurado, formado por DDL, DML y DCL. 5. DDL: Data Definition Language, Lenguaje de definicin de datos 6. DML: Data Manipulation Language, Lenguaje de manipulacin de datos 7. DCL: Data Control Language, Lenguaje de Control de los datos
70
BIBLIOGRAFA GENERAL
1. ANSI (1977): The ANSI/X3/SPARC DBMS Framework. Report on the Study Group on Database Management Systems. D. Tsichiritzis y A. Klug (eds). Montvalle, N.J.: AFIP Press. 2. Booch, G., Rumbaugh, J. y Jacobson, I. (1999) El lenguaje unificado de modelado.
71