Powered By Blogger

miércoles, 6 de noviembre de 2013


2013

MODELAMIENTO DE BASE DE DATOS











INTEGRANTES:
MIGUEL AHUMADA
ENRIQUE OLIVARES
JAVIER VERGARA
















Contenido










 





INTRODUCCION


            La estructura del contenido sigue un orden lógico y jerárquico de ideas, aunque para fines didácticos se ha realizado una separación entre los elementos físicos que componen un computador (hardware) y las colecciones de programas (Software) básicos necesarios para el funcionamiento del mismo. Pese a esta separación, se busca, en todo momento, que el estudiante comprenda e identifique las relaciones que involucran ambos componentes, para que obtenga una visión global e integradora de lo que sería un entorno de trabajo digital. La práctica directa sobre el computador es una de las mejores alternativas para lograr este propósito; por lo que deben ser incluidas, sobre todo, en lo referente a software.
El objetivo es que se evalúe mediante la presentación de ideas concretas para que el estudiante pueda identificar distintos elementos y/o conceptos
asociados a esta unidad Unidad.




 

 

 

 


Diseño base de datos


            El diseño de una base de datos no es un proceso sencillo. Habitualmente, la complejidad de la información y la cantidad de requisitos de los sistemas de información hacen que sea complicado.

            Por lo tanto, conviene descomponer el proceso del diseño en varias etapas; en cada una se obtiene un resultado intermedio que sirve de punto de partida de la etapa siguiente, y en la última etapa se obtiene el resultado deseado.
            De acuerdo con el Instituto Nacional Estadounidense de Estándares (ANSI) un modelo de datos se puede interpretar como un esquema:
·        Modelo conceptual: que especifica las expresiones permitidas por el modelo mismo, comunica las reglas y definiciones esenciales de los datos a los usuarios.
·         Modulo lógico: que describe la semántica de tablas y columnas, clases orientadas a objetos, etcétera, representada por una tecnología de manipulación en particular (como ser el lenguaje SQL)
·        Modelo físico: que detalla los medios en los que se almacena la información, como ser particiones de disco
 






Como realizar un modelo de datos


            Para realizar un modelo de datos básico a partir de los requerimientos del usuario debemos seguir los siguientes pasos:

1) Identificar las categorías (nombres)

2) Identificar los componentes de las categorías o atributos (agregación)

3) Identificar las claves

4) Verificar generalización entre categorías.

5) Identificar  asociaciones entre categorías

6) Identificas las restricciones:
a. Dominio
b. Cardinalidad
c. Explícito (adicional al modelo)

7) Identificar y describir las operaciones.



Las personas socias de la biblioteca disponen de un código de socio y además necesitar almacenar su rut, dirección, teléfono, nombre y apellidos.

La biblioteca almacena libros que presta a los socios y socias, de ellos se almacena su título, editorial, el año en el que se escribió el libro, el nombre completo del autor( o autores), el año en que se editó y en que editorial fue, cada libro es único( no ahí mas de un ejemplar disponible).

Necesitamos poder indicar si un volumen en la biblioteca esta deteriorado o no

Queremos controlar cada  préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver ( que son  15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro











Modelo entidad/relación


            Para este problema creamos el siguiente modelo entidad relación, identificando cada uno de las entidades y sus respectivos atributos, además de las llaves primarias y las respectivas cardinalidades.









Modelo entidad/relación


            Para este problema creamos el siguiente modelo entidad relación, identificando cada uno de las entidades y sus respectivos atributos, además de las llaves primarias y las respectivas cardinalidades.





Modelo entidad/relación en Data Modeler


El modelo lógico realizado en SQL Developer es el siguiente:








Generación del diccionario de datos


El código DLL generado por este modelo es el siguiente:


-- Generado por Oracle SQL Developer Data Modeler 3.1.0.699
--   en:        2013-11-04 20:15:43 CLST
--   sitio:      Oracle Database 10g
--   tipo:      Oracle Database 10g



CREATE TABLE Libros
    (
     id_Codigo INTEGER  NOT NULL ,
     Titulo VARCHAR2 (30)  NOT NULL ,
     Editorial VARCHAR2 (25)  NOT NULL ,
     AñoInscripcion DATE  NOT NULL ,
     NombreAutor VARCHAR2 (40)  NOT NULL ,
     AñoEdicion DATE ,
     id_CodigoSocio INTEGER  NOT NULL
    )
;



ALTER TABLE Libros
    ADD CONSTRAINT "biblioteca PK" PRIMARY KEY ( id_Codigo ) ;



CREATE TABLE Prestamos
    (
     IdCodigo INTEGER  NOT NULL ,
     FechaInicioPrestamo DATE  NOT NULL ,
     FechaTope DATE  NOT NULL ,
     FechaDevolucion DATE ,
     id_CodigoSocio INTEGER  NOT NULL
    )
;



ALTER TABLE Prestamos
    ADD CONSTRAINT "Prestamos PK" PRIMARY KEY ( IdCodigo ) ;



CREATE TABLE Socios
    (
     id_CodigoSocio INTEGER  NOT NULL ,
     Rut VARCHAR2 (10)  NOT NULL ,
     Nombres VARCHAR2 (30)  NOT NULL ,
     Apellidos VARCHAR2 (30)  NOT NULL ,
     Direccion VARCHAR2 (30)  NOT NULL ,
     Telefono INTEGER
    )
;



ALTER TABLE Socios
    ADD CONSTRAINT "Socios PK" PRIMARY KEY ( id_CodigoSocio ) ;




ALTER TABLE Prestamos
    ADD CONSTRAINT solicita FOREIGN KEY
    (
     id_CodigoSocio
    )
    REFERENCES Socios
    (
     id_CodigoSocio
    )
;


ALTER TABLE Libros
    ADD CONSTRAINT tiene FOREIGN KEY
    (
     id_CodigoSocio
    )
    REFERENCES Socios
    (
     id_CodigoSocio
    )
;



-- Informe de Resumen de Oracle SQL Developer Data Modeler:
--
-- CREATE TABLE                             3
-- CREATE INDEX                             0
-- ALTER TABLE                              5
-- CREATE VIEW                              0
-- CREATE PACKAGE                           0
-- CREATE PACKAGE BODY                      0
-- CREATE PROCEDURE                         0
-- CREATE FUNCTION                          0
-- CREATE TRIGGER                           0
-- ALTER TRIGGER                            0
-- CREATE STRUCTURED TYPE                   0
-- CREATE COLLECTION TYPE                   0
-- CREATE CLUSTER                           0
-- CREATE CONTEXT                           0
-- CREATE DATABASE                          0
-- CREATE DIMENSION                         0
-- CREATE DIRECTORY                         0
-- CREATE DISK GROUP                        0
-- CREATE ROLE                              0
-- CREATE ROLLBACK SEGMENT                  0
-- CREATE SEQUENCE                          0
-- CREATE MATERIALIZED VIEW                 0
-- CREATE SYNONYM                           0
-- CREATE TABLESPACE                        0
-- CREATE USER                              0
--
-- DROP TABLESPACE                          0
-- DROP DATABASE                            0
--
-- ERRORS                                   0
-- WARNINGS                                 0




            CONCLUSION


             Las bases de datos nos ayudan a almacenar la información que usará un sistema de información solicitado.

            Según las necesidades y los requisitos de los usuarios finales de este sistema de información, por lo cual debemos tomar en cuenta adecuadamente de las decisiones anteriores.

             El diseño de una base de datos consiste en definir la estructura de los datos que debe tener la base de datos de un sistema de información determinado. En el caso relacional, esta estructura será un conjunto de esquemas de relación con sus atributos, dominios de atributos, claves primarias, claves foráneas, etc.

            El programa SQL developer es una excelente herramienta para realizar y construir una base de datos.


miércoles, 9 de octubre de 2013

Objetivo: Comprender uso de modelo SQL developer.

1)Modelo Entidad / Relación (Conceptual)
2)Pasar a relacional(Retocar)
3)Generar Script(DDL). Ejemplo de DDL es create table.
4)Agregar -drop - insert
5)Guardar proyecto.
6) Recuperar.


Realizamos ejercicio en SQL Developer.





sábado, 7 de septiembre de 2013

tarea Modelos Entidad Relación

Ejercicio 1. Biblioteca 

Crear un diseño entidad relación (estando prohíbido utilizar símbolos del modelo extendido) que permita gestionar los datos de una biblioteca de modo que

  • Las personas socias de la biblioteca disponen de un código de socio y además necesitar almacenar su dni, dirección, teléfono, nombre y apellidos
  • La biblioteca almacena libros que presta a los socios y socias, de ellos se almacena su título, su editorial, el año en el que se escribió el libro, el nombre completo del autor (o autores), el año en que se editó y en qué editorial fue y el ISBN.
  • Necesitamos poder indicar si un volumen en la biblioteca está deteriorado o no
  • Queremos controlar cada préstamo que se realiza almacenando la fecha en la que se realiza, la fecha tope para devolver (que son 15 días más que la fecha en la que se realiza el préstamo) y la fecha real en la que se devuelve el libro

Ejercicio 2. Academia de clases

Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo estas premisas:
  • Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono y la edad
  • Además de los que trabajan necesitamos saber el CIF, nombre, teléfono y dirección de la empresa en la que trabajan
  • Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, apellidos, dirección y teléfono
  • Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos y en cada cual obtendrá una nota. 


Ejercicio 3. Geografía

Crear un diseño entidad relación que permita almacenar datos geográficos referidos a España:
  • Se almacenará el nombre y población de cada localidad, junto con su nombre y los datos de la provincia a la que pertenece la localidad, su nombre, población y superficie.
  • Necesitamos también conocer los datos de cada comunidad autónoma, nombre, población y superficie y por supuesto las localidades y provincias de la misma
  • Para identificar a la provincia se usarán los dos primeros dígitos del código postal. Es decir 34 será el código de Palencia y 28 el de Madrid
  • Necesitamos saber qué localidad es la capital de cada provincia y cuáles lo son de cada comunidad

Ejercicio 4. Empresa de software

Realizar un esquema entidad/relación que permita modelar el sistema de información de una empresa de software atendiendo las siguientes premisas
  • La empresa crea proyectos para otras empresas. De dichas empresas se almacena el CIF, nombre, dirección y teléfono así como un código interno de empresa.
  • Los proyectos se inician en una determinada fecha y finalizan en otra. Además al planificarle se almacena la fecha prevista de finalización (que puede no coincidir con la finalización real)
  • Los proyectos los realizan varios trabajadores, cada uno de ellos desempeña una determinada profesión en el proyecto (analista, jefe de proyecto, programador,…), dicha profesión tiene un código de profesión. En el mismo proyecto puede haber varios analistas, programadores,…
  • Todos los trabajadores tienen un código de trabajador, un dni, un nombre y apellidos. Su profesión puede cambiar según el proyecto: en uno puede ser jefe y en otro un programador
  • Se anota las horas que ha trabajado cada trabajador en cada proyecto.
  • Puede haber varios proyectos que comiencen el mismo día.
  • A todas las empresas les hemos realizado al menos un proyecto
  • Todos los trabajadores han participado en algún proyecto
  • En la base de datos, la profesión “administrador de diseño” no la ha desempeñado todavía ningún trabajador o trabajadora 

Ejercicio 5. Empresa de comidas

Crear un diseño entidad/relación para una empresa de comidas. En la base de datos tienen que figurar:
  • El nombre y apellidos de cada empleado, su dni y su número de SS además del teléfono fijo y el móvil
  • Algunos empleados/as son cocineros/as. De los cocineros y cocineras anotamos (además de los datos propios de cada empleado) sus años de servicio en la empresa.
  • Hay empleados/as que son pinches. De los y las pinches anotamos su fecha de nacimiento.
  • La mayoría de trabajadores no son ni pinches ni cocineros/as
  • En la base de datos figura cada plato (su nombre como “pollo a la carloteña”, “bacalo al pil-pil”,…), el precio del plato junto con los ingredientes que lleva. Anotamos también si cada plato es un entrante, un primer plato, segundo plato o postre
  • De los ingredientes necesitamos la cantidad que necesitamos de él en cada plato y en qué almacén y estantería del mismo le tenemos.
  • Cada almacén se tiene un nombre (despensa principal, cámara frigorífica A, cámara frigorífica B…), un número de almacén y una descripción del mismo.
  • Cada estante en el almacén se identifica con dos letras y un tamaño en centímetros. Dos almacenes distintos pueden tener dos estantes con las mismas letras.
  • Necesitamos también saber qué cocineros son capaces de preparar cada plato.
  • Cada pinche está a cargo de un cocinero o cocinera.
  • La cantidad de ingredientes en cada estantería de un almacén se actualiza en la base de datos al instante. SI cogemos dos ajos de un estante, figurará al instante que tenemos dos ajos menos en ese estante. Es necesario por lo tanto saber los ingredientes (cuáles y en qué número) que tenemos en cada estante.

Ejercicio 6. Red social

Crear un diseño entidad/relación que permita modelar un sistema que sirva para simular el funcionamiento de una red social, teniendo en cuenta lo siguiente:
  • Los usuarios de la red social se identifican con un identificador y una contraseña. Además se almacena de ellos:
    • Su nombre, apellidos, dirección, teléfono (puede tener varios teléfonos) e e-mail (el e-mail no tiene que poder coincidir con el de otro usuario) y una foto
    • Si los usuarios son celebridades, de ellos no aparecerá ni el email ni la dirección ni el teléfono.
  • Los usuarios pueden tener una serie de contactos, que en realidad son otros usuarios. De cada contacto se puede almacenar un comentario que es personal y que sirve para describir al contacto.
  • Los usuarios pueden organizar sus contactos en grupos de los cuales se almacena un nombre y deberemos saber los contactos que contiene. El mismo contacto puede formar parte de varios grupos.
  • Además cada usuario puede tener una lista de usuarios bloqueados a fin de que no puedan contactar con él
  • Los usuarios pueden publicar en la red comentarios, los cuales se puede hacer que los vea todo el mundo, que los vea uno o varios de los grupos de contactos del usuario o bien una lista concreta de usuarios. Los comentarios pueden incluir un texto y una imagen.

Ejercicio 7. Inmuebles

Crear un diseño entidad/relación que permita modelar un sistema que sirva para gestionar una empresa que posee inmuebles.  Para ello
  • Se almacenan los clientes usando su DNI, Teléfono fijo, Móvil, Nombre y Apellidos.
  • Se almacenan los trabajadores y se almacenan los mismos datos. Ocurre además que un trabajador puede ser un cliente (porque puede alquilar o comprar mediante la inmobiliaria) a veces.
  • A cada cliente y trabajador se le asigna un código personal
  • Los clientes pueden comprar pisos, locales o garajes. En los tres casos se almacena un código de inmueble (único para cada inmueble), los metros que tienen, una descripción y su  dirección.
  • Los pisos tienen un código especial de piso que es distinto para cada piso.
  • En los locales se indica el uso que puede tener y si tienen servicio o no.
  • De los garajes se almacena el número de garaje (podría repetirse en distintos edificios) y la planta en que se encuentra (para el caso de garajes que están en varias plantas). Los garajes además pueden asociarse a un piso y así cuando se alquile el piso se incluirá el garaje.
  • La empresa prevé que podría haber inmuebles que podrían no ser ni locales, ni garajes, ni pisos
  • Los inmuebles se pueden comprar. Incluso varias veces. Se asigna un código de compra cada vez que se haga, la fecha y el valor de la compra. La compra puede tener varios titulares.
  • Cada inmueble se puede alquilar y en ese caso se asigna un número de alquiler por cada inmueble. Ese número se puede repetir en distintos inmuebles (es decir puede haber alquiler nº 18 para el inmueble 40 y el 35). Pero no se repite para el mismo inmueble.
  • Al alquilar queremos saber el nombre del agente de la empresa que gestionó el alquiler así como a qué persona (solo una) estamos alquilando el inmueble.
  • Cada pago de cada alquiler será almacenado en la base de datos, llevando el año, el mes y el valor del mismo.

Ejercicio 8. Menú diario

Crear un esquema Entidad/relación que represente un modelo para llevar los datos que maneja un restaurante de menús diarios. Teniendo en cuenta que:
  • Sólo interesa llevar los datos de los menús diarios a la hora de la comida, nada más del restaurante
  • Cada menús se compone de una serie de posibles platos. cada plato se puede repetir en diferentes días. Los platos pueden ser primer plato, segundo plato o postres.
  • De cada plato se almacena el nombre (por ejemplo Arroz negro con setas) y una pequeña descripción.
  • De los menús almacenamos la fecha en la que se ofrece el menú, el número de personas que han tomado menú ese día. Además almacenamos la cantidad de cada plato que se ha tomado ese día.
  • Se almacena también la temperatura que hacía el día del menú para así poder analizar las temperaturas y los platos exitosos


Ejercicio 9. Consecionario


A partir del siguiente supuesto diseñar el modelo entidad-relación:
“Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos:
La empresa dispone de una serie de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada coche.
Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y número de teléfono: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente cuando un cliente se da de alta en ella. Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente.
El concesionario también se encarga de llevar a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa automáticamente por cada revisión que se haga.
De cada revisión se desea saber si se ha hecho cambio de filtro, si se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los coches pueden pasar varias revisiones en el concesionario”.