guía de laboratorio n° 6 - bases de datos.pdf

19
UNIVERSIDAD DE EL SALVADOR ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS HERRAMIENTAS DE PRODUCTIVIDAD BASES DE DATOS MODELADO DE BASES DE DATOS

Upload: krmencita-klles

Post on 09-Nov-2015

20 views

Category:

Documents


3 download

TRANSCRIPT

  • UNIVERSIDAD DE EL SALVADORESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSHERRAMIENTAS DE PRODUCTIVIDAD

    BASES DE DATOS

    MODELADO DE BASES DE DATOS

  • EL MODELO CONCEPTUAL

    Uno de los productos finales del modelado UML es el diagrama de clases. Este diagrama describe los atributos de las clasesde entidad de un sistema de consulta de clnicas. Este modelo ser la base de nuestro modelado de datos.

    Para convertir el modelo de clases UML en un modelo conceptual de datos y posteriormente en un modelo lgico de base dedatos, es necesario que se tomen en cuenta las siguientes consideraciones:

    1. Las relaciones de herencia sern tratadas como una relacin de uno a uno entre las entidades del modelo de datos.Por ejemplo, una persona solo puede estar registrado como mdico una vez.

    2. Las interfaces se toman en cuenta para el modelo de datos nicamente si incorporan atributos para la clase que losimplementa. Los atributos son incorporados en la entidad anloga a la clase.

    3. La navegabilidad de las relaciones no tiene un impacto en la conversin del modelo. Al igual que la relacin entrePaciente y Aseguradora, la relacin entre Medico y Especialidad es de muchos a muchos. La relacin entre Medicoy Especialidad establece que un mdico puede tener 0 o varias especialidades, y que lgicamente una especialidadpuede ser parte de la formacin de varios mdicos. En este caso, aunque en el modelo de clases, la navegabilidadoculte la relacin para la entidad Especialidad, en el modelo de datos esto ser representado por una entidadintermediaria.

    Power Designer permite crear modelos UML, que posteriormente pueden ser convertidos automticamente por laherramienta a modelos de base de datos. Sin embargo, en este laboratorio no utilizaremos esta funcin, sino queconvertiremos manualmente el modelo UML presentado a un modelo conceptual de datos (Modelo EntidadRelacin).

    Comenzaremos por crear un modelo conceptual de base de datos. Para ello hay que abrir el programa Power Designer, yelegimos Create Model.

  • En la categora del modelo, elegir Information y elegir un el tipo de diagrama Conceptual Data.

    Asignamos el nombre del modelo y clic en Ok.

    Cambiamos el nombre del diagrama por un nombre ms descriptivo del modelo, en este caso a clinica.

  • Para agregar entidades al modelo, haremos uso del cuadro de herramientas que se sita a la derecha de la pantalla.

    Para agregar una entidad al modelo, elegir el cono entidad y hacer clic sobre el rea de trabajo.

    Una vez agregada la entidad al diagrama, podemos modificar sus propiedades haciendo doble clic en el elemento. En elatributo Name de la pestaa General asignamos el nombre de la entidad.

  • Entidad: Aseguradora

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    codigo Characters 5 X X

    nombre_asegurado Variable characters 50 X

    Entidad: Consulta

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    num_consulta Integer X X

    consulta_por Variable characters 500 X

    diagnostico Variable characters 500

    fecha Timestamp X

    Entidad: Especialidad

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    codigo Characters 1 X X

    especialidad Variable characters 50 X

  • Entidad: Medico

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    num_registro Characters 10 X X

    cod_empleado Characters 5 X

    tarifa Decimal 10,2 X

    Entidad: Sexo

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    codigo Characters 1 X X

    sexo Variable characters 10 X

    Entidad: Paciente

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    num_expediente Characters 10 X X

    Entidad: Persona

    NOMBRE TIPO LONGITUD MANDATORIO LLAVE

    documento_identidad Characters 10 X X

    nombre Variable characters 50 X

    apellidos Variable characters 50 X

    fecha_nacimiento Date X

    En la pestaa Attributes asignamos los atributos de la entidad. Para todos los casos, Power Designer le asigna un cdigo acada atributo de forma automtica.

  • Para asignar el tipo de dato podemos hacer clic en el botn con el smbolo de igualdad (=) en el campo Data Type. Esto nosmostrar una ventana de tipos estndar de datos.

    En el modelo conceptual no es obligatorio especificar las claves principales (llaves primarias) de las entidades. Sinembargo, con un modelo de clases, podemos advertir las llaves primarias a priori en el modelo conceptual de base de datos.

    Los atributos obligatorios son aquellos que para insertar un registro en la tabla debe especificarse ese atributo, y en ausenciade l, la base de datos devolver un error. Para especificar que un atributo es obligatorio, se debe seleccionar el check boxde la columna Mandatory.

  • Una vez agregado los atributos, la entidad Persona en el diagrama del modelo conceptual queda de la siguiente manera.

    Para los atributos con nombre Codigo y Nombre se deber de especificar un cdigo diferente al nombre, ya que de locontrario Power Designer asumir que se trata del mismo atributo en ambas entidades.

  • Una vez que hemos agregado las entidades, podemos indicar las relaciones entre ellas. Para ello, hacemos clic en el conoRelationship del cuadro de herramientas, y hacer clic en la entidad origen y luego clic en la entidad destino.

    Para las relaciones entre las entidades de Medico y Especialidad, Paciente y Aseguradora especificaremos una relacin demuchos a muchos. Para ello, hacemos clic en la relacin y cambiamos la cardinalidad a Many-Many.

    Dado que la entidad consulta no tiene por si misma una llave primaria, usaremos la tcnica de modelado con llavescompuestas. Para ello, es necesario en las relaciones entre Mdico y Consulta, y Paciente y Consulta especificamos que hayuna dependencia de Consulta a Mdico.

  • Ntese que el modelo resultante es equivalente al modelo de clases UML.

    Ntese que aun cuando hemos definido que las relaciones de herencia las convertiremos a relaciones de 1 a 1, hemos creadouna relacin de 1 a muchos entre persona y medico. En el modelo fsico nos aseguraremos que la relacin sea de 1 a 1.

  • MODELO LOGICO

    Para convertir el modelo de clases UML en un modelo conceptual de datos y posteriormente en un modelo lgico de base dedatos, es necesario que se tomen en cuenta las siguientes consideraciones:

    1. Las relaciones de 1 a muchos entre dos entidades sern tratadas de la misma forma en el modelo ER. La relacinentre Persona y Sexo establece que una persona nicamente puede tener asignado un sexo. Evidentemente, gneropude ser aplicado a varias persona, es por eso que la multiplicidad en Persona es de 1..*.

    2. Las relaciones de muchos a muchos entre dos entidades del modelo de clases requerirn de una entidadintermediaria (tabla de relacin) para soportar esa relacin. Por ejemplo, la relacin entre Aseguradora y Pacienteestablece que un paciente puede tener varios contratos de seguro para cubrir los gastos. Lgicamente, variosclientes pueden tener contrato con la misma aseguradora. Para dar soporte a esta relacin en el modelo de datos, esnecesario agregar una tabla de relacin a la que normalmente se le asigna el nombre de la relacin.

    3. Las clases de asociacin sern tratadas como tablas de relacin. Por ejemplo, la relacin Consulta establece quetanto un mdico como un paciente participan en una consulta. Un mdico puede atender varias consultas y unpaciente puede consultar muchas veces.

    Power Designer provee de una herramienta para generar un modelo lgico a partir de una modelo conceptual. Para ellohacer clic en la opcin Tools del men principal y elegir la opcin Generate Logical Data Model.

  • En la pestaa Detail puede observarse que para la generacin del modelo lgico Power Designer realizar una verificacindel modelo conceptual.

    Al generar el modelo, Power Designer nos mostrar una lista de resultados en la que podremos encontrar los erroresresultantes de la verificacin del modelo conceptual.

    Estos errores son el resultado del hecho de que Power Designer verificar que los atributos de las entidades no se repitan. Esdecir, aunque el cdigo de la entidad Sexo y el cdigo de la entidad Aseguradora se refieren a atributos diferentes, estopuede generar un modelo poco claro o inconsistente. Para evitar eso, modificaremos el modelo y cambiaremos los nombredel modelo de acuerdo al diagrama que se presenta.

  • Ahora podemos ejecutar de nuevo la generacin del modelo lgico y obtendremos un diagrama lgico.

    Ntese que en el diagrama lgico genera dos nuevas entidades intermediarias: tiene y financia. Adems, incorpora las llavesforneas del modelo y en el caso de la entidad Consulta incorpora la llave primaria a partir de los campos heredados.

  • MODELO FISICO

    Para general un modelo fsico a partir del modelo lgico, seleccionar la opcin Tools del men principal y elegir la opcinGenerate Physical Data Model. En las opciones de generacin, elegiremos el Sistema Gestor de Base de Datos (SGBD oDBMS) PostgreSQL 9x y hacemos clic en Ok.

    Si no hay ningn error en el modelo lgico, Power Designer generar el modelo fsico.

  • Podemos verificar que las entidades ahora se refieren a una tabla de una base de datos.

    Para asegurarnos que la relacin entre persona y mdico sea de 1 a 1, al igual que la relacin entre persona y paciente,agregaremos una restriccin de unicidad al campo documento_identidad.

    Conceptualmente esto significa que no puede haber ms de un mdico o un paciente con el mismo documento de identidad.Esto es, en otras palabras; una relacin de 1 a 1.

    Para configurar un campo como nico se debe crear un ndice asociado al campo e indicar el tipo de ndice como UNIQUE.Para ello, en la pestaa Columns de las propiedades de la tabla, nos posicionamos el campo para al que se desea crear unndice (en este caso documento_identididad) y presionamos el botn Create Index.

  • Power Designer nos mostrar una nueva ventana donde debemos especificar el nombre y el tipo de ndice que se estcreando.

  • Repetimos el procedimiento para la tabla persona.

  • GENERAR SCRIPT SQL

    Para generar el Sript SQL, seleccionamos la opcin Database del men principal y elegir la opcin Generate Database.

    Especificamos que el formato de archivo que se debe generar es UTF-8.

  • Conctese desde PgAdmin III al servidor que tiene como direccin 192.168.104.237 y ejecute el script en la base de datosque tiene como nombre su nmero de carnet.

    EL MODELO CONCEPTUALMODELO LOGICOMODELO FISICOGENERAR SCRIPT SQL