Diseño de base de datos moo

933 visualizaciones

Publicado el

Publicado en: Internet
1 comentario
2 recomendaciones
Estadísticas
Notas
Sin descargas
Visualizaciones
Visualizaciones totales
933
En SlideShare
0
De insertados
0
Número de insertados
6
Acciones
Compartido
0
Descargas
31
Comentarios
1
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Diseño de base de datos moo

  1. 1. Por: Ing. Edwin Calle Terrazas Versión 1.1
  2. 2. El diseño de una base de datos se descompone en diseño conceptual, diseño lógico y diseño físico. Diseño Conceptual Diseño Lógico Diseño Físico Mapeo Normalización ANALISIS DISEÑO Análisis de los requisitos Ing. Edwin Calle Terrazas 2
  3. 3. DIAGRAMA DE CLASES Un diagrama de clases presenta un conjunto de clases, interfaces, colabo- raciones y las asociaciones entre ellas. Los diagrama de clases son los mas utilizados en el modelado de sistemas orientados a objetos. Los diagramas de clases se utilizan para describir la vista de diseño estática de un sistema. Un diagrama de clases está compuesto por los siguientes elementos: • Clase: atributos y métodos. • Relaciones: Asociación, Herencia, Composición y Agregación OBJETO Es cualquier cosa del mundo real que tiene existencia física o conceptual posee características y comportamiento. CLASE Conjunto de objetos que comparten los mismos atributos, métodos relaciones y comportamiento. Todo objeto es una instancia de una clase que tiene las mismas características. El diagrama de clases de UML representa el modelo orientado a objetos como herramienta de Modelado Conceptual de datos en la fase de diseño de una base de datos. MODELO ORIENTADO A OBJETOS 3
  4. 4. <Nombre Clase> <Atributos> <Métodos> Un alumno posee como características: código, nombres, paterno, materno teléfono y dirección. Muestran su comportamiento a través de los métodos: modificarAlumno() y BuscarAlumno() 4 class DiagramAlumno- codigo- nombres- paterno- materno- telefono- direccion+ modificarAlumno(int) + buscarAlumno(int)
  5. 5. ASOCIACIONES ENTRE CLASES Adorno Semántica 0..1 Cero ó 1 1 Exactamente 1 0..* Cero ó más * Cero ó más 1..* Uno ó mas 1..6 Uno a Seis 1..3, 7..10, 20..* 1 a 3 ó 7 a 10 ó 20 a muchos n Número fijo Ing. Edwin Calle Terrazas 5
  6. 6. class Diagram Persona - ci - nombres - paterno - materno - telefono - direccion CertificadoNacimiento - id_certificado - fechaRegistro - nombrePadre - nombreMadre - fechaNacimiento - lugarNacimiento 1 Tiene 1 Significa que a cada objeto de la clase Persona, puede pertenecer un objeto de la clase CertificadoNacimiento y a cada objeto de la clase CertificadoNacimiento le pertenece un objeto de la clase Persona. class Diagram Recibo - nro_recibo - fecha - monto Factura - nro_factura - fecha - NIT - Monto 1 Tiene 0..1 Asociaciones de Uno a uno Significa que a cada objeto de la clase Recibo, puede o no pertenecer un objeto de la clase Factura y a cada objeto de la clase Factura le pertenece un objeto de la clase recibo. 6
  7. 7. Cada objeto de la clase Cliente se puede relacionar con uno o muchos objetos de la clase NotaVenta, y cada objeto de la clase NotaVenta puede estar relacionado con un objeto de la clase Cliente. El otro ejemplo vemos que a cada objeto de la clase UnidadMedida le corresponde uno o más objetos de la clase Producto, pero a cada objeto de la clase Producto le corresponde un objeto de la clase UnidadMedida. Asociaciones de Muchos a muchos cada objeto de la clase Alumno se puede relacionar con uno o muchos objetos de la clase Matero, y cada objeto de la clase Materia puede estar relacionado con uno o muchos objetos de la clase Alumno. class diagram Alumno - codigo - nombre - paterno - materno Materia - sigla 1..* - nombre pasa 1..* Asociaciones de Uno a muchos class Diagram Cliente - id_cliente - nombre - telefono - direccion NotaVenta - id - fecha - monto 1 pide 1..* class Diagram UnidadMedida - id_unidad - nombre - abreviatura Producto - codigo - descripcion - precio 1 pertenece 1..* 7
  8. 8. RELACIÓN DE COMPOSICIÓN Es un tipo de relación todo-parte, en la que el todo se puede componer de muchas partes. Se llama relación estática, donde el tiempo de vida del objeto Incluido «parte» es dependiente del que lo Incluye «todo». Las partes son miembros de un único compuesto . Dicho de otra forma: cada parte tiene dependencia de existencia del todo. 8 En este ejemplo el «todo» es PlanPago que se compone de la «parte» Cuota. Decimos que cada objeto de la clase Cuota no puede existir sin un PlanPlago. También podemos decir que esta relación es «indivisible» donde cada Cuota no se puede separar de un PlanPago. Según la multiplicidad, un PlanPago tiene muchas Cuotas, pero cada Cuota debe pertenecer a un solo PlanPago. class Diagram PlanPago - id_plan - fecha - montoTotal - plazo Cuota - id_cuota - fecha - monto 1..* 1 Ing. Edwin Calle Terrazas
  9. 9. 9 class Diagram NotaVenta - id_venta - fecha - monto DetalleVenta - id_detal le - precioVenta - cantidad 1..* 1 class Diagram Gestion - id_gestion - nombre - fecha_inicio - fecha_fin Periodo - id_periodo - nombre - fecha_inicio - fecha_fin 1..* 1 En este otro ejemplo vemos que el «todo» es NotaVenta que se compone de la «parte» DetalleVenta. Cada objeto de la clase DetalleVenta está obligado a pertenecer a una NotaVenta, (es decir que cada detalleVenta no puede existir sino esta asociada a una NotaVenta) De la misma forma el último ejemplo. El «todo» es Gestión que se compone de la «parte» Periodo. Cada objeto de la clase Periodo no puede existir sino esta asociada a una Gestión.
  10. 10. RELACIÓN DE AGREGACIÓN Es un tipo de relación dinámica, en donde el tiempo de vida del objeto Incluido (parte) es independiente del que lo Incluye (todo). Es decir que cada parte no tiene existencia de dependencia del todo (las partes pueden separarse del todo). Es una relación normal entre objetos, donde se usa para indicar las partes que corresponden a un todo. class Diagram Mueble - id - nombre - tipo Casa - nro - zona - uv - ubicacion 0..1 1..* 10 En el ejemplo vemos que el «todo» es Casa que se compone de la «parte» Mueble. Cada objeto de la clase Mueble puede existir sino esta asociada a una Casa. Dicho de otra forma: El Mueble se puede separar (divisible) de una Casa. En el otro ejemplo vemos que los Periféricos son partes de una Computadora, pero estos periféricos pueden existir o no para el funciona-miento del Computador. Donde también decimos que hay Periféricos que Que ni siquiera saben que son parte de una computadora. class Diagram Computadora - id_pc - procesador - memoria - discoDuro - tarjetaMadre Perifericos - codigo - nombre 0..1 0..*
  11. 11. RELACIÓN DE GENERALIZACIÓN / ESPECIALIZACIÓN Es la actividad de identificar elementos comunes (del mismo tipo) entre los conceptos y definir las relaciones de superclase (concepto general) y subclase (concepto especializado). Indica que una subclase hereda los métodos y atributos especificados por una superclase. Las subclases además de poseer sus propios atributos y métodos, poseerá también las características y atributos visibles de la superclase. Las subclases se ajustan a las reglas ES UN tipo de la superclase. Ing. Edwin Calle Terrazas 11 (superclase) (subclases) class Diagram Vehiculo - placa - marca - modelo - color Camion - nroEjes - capacidad Auto - nroPasajeros Camión ES UN tipo de Vehículo y de la misma forma Auto.
  12. 12. TIPOS DE ESPECIALIZACIÓN DISJUNTA.- Los objetos de las superclases pertenecen a una subclase. SOLAPAMIENTO.- Los objetos de las superclases pertenecen a una o ambas Subclases. PARTICIPACIÓN COMPLETA E INCOMPLETA Si un objeto de la superclases está obligado en cualquier subclase o en ambas, se denomina Completa (total). En el caso que exista un objeto de la superclase que no se encuentra en las subclases, se denomina Incompleta (parcial). Ing. Edwin Calle Terrazas 12 Camión y Auto heredan de Vehículo, es decir Camión posee las características de Vehículo (placa, marca, modelo y color). Además el Camión posee como propia particularidad nroEjes y Capacidad. Auto también hereda las características de la clase Vehículo y tiene como particularidad propia nroPasajeros.
  13. 13. class Diagram Vehiculo - placa - marca - modelo - color Camion - nroEjes - capacidad Auto - nroPasajeros 13 Participación En el caso que cada objeto de Vehículo este obligado a ser Camión o Auto se denomina Completa (total), pero si existe algún objeto de Vehículo que no sea ni Camión ni Auto se denomina Incompleta (parcial). Tipo de Especialización Un Vehículo es solo Auto ó solo Camión no puede ser las dos cosas al mismo tiempo, en este caso se le denomina DISJUNTA
  14. 14. En este ejemplo vemos que Secretaria hereda las características de Empleado y además tiene un atributo como particularidad propia velocidad_tipeo, de la misma manera Técnico con su atributo propio nivel. class Diagram Empleado - ci - nombres - paterno - materno - telefono Secretaria - velocidad_tipeo Tecnico - nivel Tipo de Especialización El Empleado puede ser Secretaria o Técnico, solamente uno de ellos no ambos, dando lugar al concepto de Disjunta. Participación Si cada objeto de Empleado está obligado a ser Secretaria o Técnico, se denomina Completa (total), pero si existe algún objeto de Empleado que no sea ni Secretaria ni Técnico se denomina Incompleta (parcial).
  15. 15. Tipo de Especialización Una Empleado puede ser solo Docente, solo Administrativo ó ambos al mismo tiempo, dando lugar al concepto de Solapamiento. 15 class Diagram Empleado - id_emp - nombre - paterno - materno Docente Administrativo En este ejemplo vemos que Docente y Administrativo heredan las características de Empleado. Participación Si cada objeto de Empleado está obligado a ser Docente, Administrativo o ambos, se denomina Completa (total), pero si existe algún objeto de Empleado que no sea ni Docente ni Administrativo se denomina Incompleta (parcial).
  16. 16. Tipo de Especialización Una persona puede ser solo Cliente, solo Vendedor ó ambos al mismo tiempo, dando lugar al concepto de Solapamiento. 16 class Diagram Persona - ci - nombre - apellidos - direccion - telefono Cliente - limite_credito Vendedor - porcentaje En forma general vemos que la Participación se da: si los objetos de la superclase están obligados en cualquier subclase o en ambas es Completa (total), en el caso que no exista un objeto de la superclase que no se encuentre en las subclases, se denomina Incompleta (parcial).
  17. 17. RELACIONES RECURSIVAS Existen casos donde las asociaciones se realizan sobre la misma clase. En este caso es necesario utilizar roles para diferenciar los objetos que pertenecen a la misma clase. Ing. Edwin Calle Terrazas 17 class Diagram Cuenta - codigo - nombre cuenta_padre 0..* cuenta_hijo Tiene 0..1 Un empleado (subordinado) tiene un Jefe o ninguno y un Empleado (jefe) tiene a uno o muchos empleados subordinados. Una cuenta (padre) tiene ninguna o muchas cuentas hijas y una cuenta (hija) tiene o pertenece a una o ninguna cuenta padre. class Modelo de clases Empleado - id_emp - nombre - paterno - materno - telefono - sueldo jefe 1..* subordinado tiene 0..1
  18. 18. 18 class Diagram Materia - sigla - nombre 0..* prerrequisi to 0..* tiene es class Diagram Parte - cod_parte - nombre parte_mayor 0..* parte_menor compone 0..* Una materia tiene ninguna o muchas materias como Prerrequisitos y una Materia es Prerrequisito de ninguna o muchas materias. Una parte mayor puede estar compuesta por ninguna o muchas partes menores y una parte menor puede pertenecer a ninguna o muchas partes mayores.
  19. 19. CLASE ASOCIACIÓN Una clase asociación puede crearse cuando existe una relación muchos a muchos entre dos clases, esta clase no solamente conecta dos clases, sino que define un conjunto de características que pertenecen a la propia asociación, es decir que una clase asociación puede tener atributos propios, métodos y otras relaciones. class Diagram Producto - codigo - descripcion - precio Almacen - nro_almacen - nombre ProductoAlmacen - cantidad 1..* 1..* class Diagram Persona - ci - nombres - paterno - materno Empresa - id_empresa - nombre - direccion Trabaja - sueldo 1..* 0..* En el primer ejemplo vemos que una persona puede trabajar en muchas o ninguna empresas y en una empresa pueden trabajar una o muchas personas. Si queremos queremos registrar el sueldo que gana una persona en una empresa, este atributo no podemos ponerlo en la persona ni en la empresa, porque es el sueldo que gana una persona en una determinada empresa, por lo tanto este atributo es propio de la asociación. En el segundo ejemplo vemos también que la clase asociación ProductoAlmacen tiene un atributo propio que es cantidad, la cual indica la cantidad de productos que existen en un determinado almacén . 19
  20. 20. PRACTICA 1 Una tienda que vende productos necesita registrar las ventas de sus productos. Un producto tiene características propias como (código,descripción,precio,stock) y estos pueden pertenecer a una categoría (id_categoria, nombre). Las ventas se realizan a través de notas de ventas de las cuales debemos registrar id_venta, fecha y monto. En una nota de venta se pueden vender varios productos, al mismo tiempo la nota de venta es para un solo cliente, del que es necesario registrar su datos personales (id_cliente, nombre, teléfono, dirección). Ing. Edwin Calle Terrazas 20 class Modelo de clasesCliente- id_cliente- nombre- telefono- direccionNotaVenta- id_venta- fecha- montoCategoria- id_categoria- nombreProducto- id_producto- descricion- precio- stockDetalleVenta- cantidad- preciov11..*1..* 10..*1..*
  21. 21. PRACTICA 2 Un video club necesita almacenar su información en una base de datos. Esta es la información. Una película se caracteriza por su título, nacionalidad, productora y fecha (ej. “RAMBO”, Estados Unidos, MGM, 1990). En una película pueden participar varios actores (nombre, apellidos nacionalidad, sexo, etc.) Una película está dirigida por un director (nombre, apellidos, nacionalidad). De cada película se dispone de uno o varios ejemplares diferenciados por un número de ejemplar y caracterizados por su estado de conservación. Un cliente (ci, nombres, paterno materno, dirección, teléfono) puede pedir que le alquilen varios ejemplares. Se desea almacenar la nota de alquiler con los siguientes datos: nro, fecha_inicio del alquiler y fecha_devolución del alquiler. Hacer el Diagrama de Clases. PRACTICA 3 Se quiere diseñar una base de datos para almacenar información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que los identifica y corresponde a un solo cliente, del asunto se debe almacenar sobre el periodo: la fecha de inicio y fecha de archivo (finalización), su estado (en trámite, archivado, …) . Los datos personales de los clientes son: ci, nombre, pa- terno, materno, teléfono. Los asuntos pueden ser llevados por uno o varios abo- gados de los que también nos interesa sus datos personales. 21
  22. 22. 22 PRACTICA 4 En una empresa existen 3 tipos de empleados, Técnicos, Secretaria e Ingeniero, los técnicos reparan muchos equipos, las secretarias manejan programas y los Ingenieros trabajan en muchos proyectos. Un empleado subordinado es supervisado por un empleado jefe y el empleado jefe tiene a cargo a muchos empleados subordinados. Los empleados pertenecen solamente a un departamento. PRACTICA 5 Se desea crear una base de datos que permita registrar el árbol genealógico de una persona (quien fue su padre y madre), así también registrar los hijos que puede tener. Por ejemplo: Adán y Eva engendraron a Caín y Abel, Caín y su pareja engen draron a …, etc. La base de datos deber ser capaz de registrar a los hijos reconocidos y no recono- cidos por su padre, por su madre, ambos o ninguno de ellos.
  23. 23. 23 PRACTICA 6 Crear una base de datos para registrar los prestamos que solicitan los estudiantes en una biblioteca. Existen tres tipos de documentos (libro, informe, cd), los cuales tienen muchas copias. Los documentos son publicados por muchos autores. En un préstamo pueden haber muchas copias. Cada copia esta ubicada en una posición de una respectiva fila de un estante.
  24. 24. TRANSFORMACIÓN DEL DISEÑO CONCEPTUAL AL DISEÑO LÓGICO 24 Ing. Edwin Calle Terrazas
  25. 25. Asociación entre dos clases: Uno a Uno Ambas participación Completa (total) 1 1 a) Tablas : A(a# ,….......) B (b# ,…....,a#) Valores de a# not null en la tabla B PK PK FK ó también Tablas : A (a# ,.........,b#) B (b#,...........) Valores de b# not null en la tabla A PK FK PK A B REGLAS DE MAPEO b) Tabla : A (a# ,...............,b#,..............) Una sola tabla PK Escogemos una de las clases colocando su llave con su atributos, y traemos todos los atributos de la otra clase. 25 Ing. Edwin Calle Terrazas
  26. 26. a)Tablas : A (a# ,............) B (b#,.............,a#) Valores de a# not null en la tabla B PK PK FK b) Una sola tabla y cuando existan pocos valores nulos de b# en la tabla A Tablas : A (a# ,................b#,...................) PK Valores nulos permitidos en la tabla A 1 0..1 A B Asociación entre dos clases: Uno a Uno Participación Completa (total) en un solo lado 26
  27. 27. a) Tablas : A (a#,.............) B (b#,..........,a#) Valores nulos de a# permitidos en la tabla B PK PK FK ó también Tablas : A (a#,............,b#) B (b#,............) Valores nulos de b# permitidos en la tabla A PK FK PK 0..1 0..1 A B Asociación entre dos clases: Uno a Uno Participación Incompleta (parcial) en ambos lados 27
  28. 28. a)Tablas: A(a#,..........) B(b#,...........,a#) PK PK FK Valores de a# not null en la tabla B 1 0..* A B Asociación entre dos clases: Uno a muchos Participación Completa (Total) del lado muchos hacia el uno 28
  29. 29. A) Tablas : A (a#,...........) B (b# ,..........,a#) PK PK FK Valores nulos de a# permitidos en la tabla B 0..1 1..* A B Asociación entre dos clases: Uno a muchos Participación Completa (Total) en el lado uno e Incompleta en el lado muchos 29
  30. 30. a)Tablas: A(a#,........) B(b#,...........,a#) PK PK FK Valores de a# not null en la tabla B 1 1..* A B Asociación entre dos clases: Uno a muchos Participación Completa (Total) en ambos lados 30
  31. 31. a) Tablas : A (a#,............) B (b #,.............,a#) PK PK FK Valores nulos de a# permitidos en la tabla B b) Caso poco común: En tres tablas cuando existan pocos objetos obligados entre ambas clases. Porque existirían muchos valores nulos al crear las dos tablas, por tanto. Tablas : A (a#,….....) B(b#,........) R(a#,b#,.......) PK PK PK Valores a#, b# not null en la tabla R 0..1 0..* A B Asociación entre dos clases: Uno a muchos Participación Incompleta (parcial) en ambos lados 31
  32. 32. a) Participación completa (total) en ambos b) Participación incompleta (parcial) en ambos 1..* 1..* A B 0..* 0..* A B Asociación entre dos clases: Muchos a muchos 32
  33. 33. c) Participación incompleta (parcial) en un lado y completa (total) en el otro. PARA TODOS LOS CASOS Tablas : A(a#,........) B(b#,........) R(a#, b#,.......) PK PK PK 1..* 0..* A B 0..* 1..* A B 33
  34. 34. MAPEO PRACTICA 1: Venta de productos Cliente (id_cliente,………….) Categoria (id_categoria,……….) Producto (codigo,……….., id_categoria) Ing. Edwin Calle Terrazas 34 PK PK PK FK class Modelo de clases Cliente - id_cliente - nombre - telefono - direccion NotaVenta - id_venta - fecha - monto Categoria - id_categoria - nombre Producto - id_producto - descricion - precio - stock DetalleVenta - cantidad - preciov 1 1..* 1..* 1 0..* 1..*
  35. 35. 35 NotaVenta (nro_venta,……………,id_cliente) DetalleVenta (nro_venta, codigo,…………) FK PK PK FK FK
  36. 36. MAPEO PARA LA COMPOSICIÓN Id_plan Fecha MontoTotal Plazo 1 02/04/2013 5000 90 días 2 18/04/2013 2000 30 días Id_plan Id_cuota Fecha Monto 1 1 12/04/2013 1500 1 2 20/05/2013 1500 1 3 27/05/2013 1000 1 4 27/06/2013 1000 2 1 24/04/2013 1500 2 2 27/05/2013 500 PlanPago (id_plan,………….) Cuota (id_plan, id_cuota,………..) 36 PlanPago Cuota class Diagram PlanPago - id_plan - fecha - montoTotal - plazo Cuota - id_cuota - fecha - monto 1..* 1 PK PK FK Ing. Edwin Calle Terrazas
  37. 37. 37 MAPEO PARA LA AGREGACIÓN Por ser una relación pasiva, el mapeo de la agregación es como si fuera una relación normal. Computadora (id_pc,………….) Perifericos (codigo,………., id_pc) class Diagram Computadora - id_pc - procesador - memoria - discoDuro - tarjetaMadre Perifericos - codigo - nombre 0..1 0..* PK PK FK Ing. Edwin Calle Terrazas
  38. 38. 38 Id_emp nombre paterno materno telefono sueldo Id_jefe 1 Edwin Calle Terrazas 73133740 7000 2 Daniel Zurita Castro 77012345 9000 3 María Torrico Chávez 70934567 4000 1 4 Mariela Romero Ramírez 60812322 4500 1 5 Marioly López Choque 33465457 8000 1 6 Enrique Calderón Ramos 71034512 5000 2 7 Ernesto Núñez Cabrera 70823122 3000 2 8 Mario Añez Añez 60812345 2000 3 MAPEO EN ASOCIACIONES RECURSIVAS Empleado(id_emp,………, id_jefe) En una empresa se desea registrar a los empleados jefes tienen a cargo a muchos empleados subordinados, y los empleados subordinados pertenecientes a un jefe. Nota: En este caso los empleados que son jefes se supervisan así mismos. PK FK Ing. Edwin Calle Terrazas class Modelo de clasesEmpleado- id_emp- nombre- paterno- materno- telefono- sueldojefesubordinado1..* tiene0..1
  39. 39. 39 Codigo Nombre CuentaPadre 1.00.00 Activo 1.01.00 Activo Corriente 1.00.00 1.01.01 Caja M/N 1.01.00 1.01.02 Caja M/E 1.01.00 1.02.00 Activo no Corriente 1.00.00 2.00.00 Pasivo Cuenta (codigo,….……, cuentaPadre) Cuenta class Diagram Cuenta - codigo - nombre cuenta_padre 0..* cuenta_hijo Tiene 0..1 Se desea registrar el plan de cuentas que tendrá una empresa la cual administra Su contabilidad a través de un Sistemas Contable. Nota: Las cuentas de grupos mayores: Activo, Pasivo, Patrimonio, Ingreso y Egreso no tienen una cuenta padre y las cuentas de movimiento no tienen cuentas hijas. PK FK
  40. 40. class Diagram Materia - sigla - nombre 0..* prerrequisito 0..* tiene es Sigla Sigla_Prerrequisito INF120 INF110 MAT102 MAT101 FIS102 FIS100 MAT103 INF119 LIN101 LIN100 INF210 INF120 INF210 MAT103 MAT207 MAT102 FIS200 FIS102 INF211 INF120 INF211 FIS102 Sigla Nombre INF110 Introducción a la Informática MAT101 Cálculo I FIS100 Física I INF119 Estructuras Discretas LIN100 Inglés Técnico I INF120 Programación I MAT102 Cálculo II FIS102 Física II MAT103 Algebra Lineal LIN101 Inglés Técnico II INF210 Programación II MAT207 Ecuaciones Diferenciales FIS200 Física III ADM100 Administración INF211 Arquitectura de Computadoras Materia Prerrequisito Materia (sigla, …………) Prerrequisito (sigla , siglaPrerrequisito,.…..…) Realizar el registro de las materias con sus respectivos prerrequisitos. FK PK FK PK
  41. 41. ci Nombres Paterno Materno Telefono Tipo 3868977 Ricardo Suárez Suárez 73147828 T 2244123 María Sánchez Paz 70812312 S 4123123 Jorge Soliz Días 70078799 T ci Velocidad_tipeo 2244123 60 ci Nivel 3868977 Superior 4123123 Medio class Diagram Empleado - ci - nombres - paterno - materno - telefono Secretaria - velocidad_tipeo Tecnico - nivel Empleado Secretaria Técnico Empleado(ci,……,tipo) Secretaria(ci,…….) Tecnico(ci,………..) MAPEO EN LA HERENCIA a) Disjunto caso general Ing. Edwin Calle Terrazas 41 PK PK PK FK FK
  42. 42. Ing. Edwin Calle Terrazas 42 ci Nombres Paterno Materno Telefono Velocidad_tipeo Nivel Tipo 3868977 Ricardo Suárez Suárez 73147828 Superior T 2244123 María Sánchez Paz 70812312 60 S 4123123 Jorge Soliz Días 70078799 Medio T b) Disjunto de otra manera, en una sola tabla Empleado Empleado (ci,…………..,velocidad_tipeo, nivel, tipo) PK
  43. 43. Ing. Edwin Calle Terrazas 43 Ci Nombre Apellidos Dirección Teléfono Limite_credito Porcentaje TC TV 3838383 Eduardo Vargas Suárez 73147828 2000 1 0 2244123 Ricardo Sánchez Paz 70812312 10 0 1 4123123 Jorge Soliz Días 70078799 5000 15 1 1 3847689 Miguel García Núñez 73120200 3000 1 0 c) Solapamiento en una sola tabla class Diagram Persona - ci - nombre - apellidos - direccion - telefono Cliente - limite_credito Vendedor - porcentaje Persona(ci,…………..,limite_credito, porcentaje, tc, tv) PK
  44. 44. Ing. Edwin Calle Terrazas 44 LENGUAJE ESTRUCTURADO DE CONSULTAS (SQL) Presentamos el lenguaje estructurado de consultas (structured query language) que permite al usuario crear y manipular una base de datos. Utilizaremos este lenguaje para modelar el diseño físico de la base de datos.
  45. 45. Ing. Edwin Calle Terrazas 45 create table cliente( id_cliente int primary key, nombre varchar(30) not null, telefono int, direccion varchar(50) ); create table categoria( id_categoria int primary key, nombre varchar(30), ); create table producto( codigo varchar(10) primary key, descripcion varchar(50) not null, precio float not null, id_categoria int not null, foreign key(id_categoria) references categoria(id_categoria) on delete cascade on update cascade ); CREACIÓN DE TABLAS DE LA PRACTICA 1: Venta de productos class diagram Cliente - id_cliente - nombre - telefono - direccion NotaVenta - nro_venta - fecha - monto Producto - codigo - descripcion - precio Categoria - id_categoria - nombre DetalleVenta - cantidad - preciov 0..* 1..* 1..* 1 1 1..* on delete cascade y on update cascade se coloca para cumplir la integridad referencial, que dice si un atributo o conjunto de atributos se define como una llave foránea, sus valores deben existir en la tabla en que ese atributo es llave principal. Es decir que los datos de la tabla en que el atributo es llave primaria puede ser modificado o eliminado y causará efecto en los registros de la tabla donde el atributo es foráneo.
  46. 46. Ing. Edwin Calle Terrazas 46 create table notaventa( nro_venta int primary key, fecha date not null, monto float not null, id_cliente int not null, foreign key(id_cliente) references cliente(id_cliente) ); create table detalleventa( nro_venta int not null, codigo varchar(10) not null, cantidad int not null, previov float not null, primary key(nro_venta, codigo), foreign key (nro_venta) references notaventa(nro_venta), foreign key (codigo) references producto(codigo) );
  47. 47. Ing. Edwin Calle Terrazas 47 Creación de tablas para la composición create table PlanPagos( id_plan int primary key, fecha date not null, montoTotal float not null, plazo varchar(50) not null ); create table Cuota( id_plan int not null, id_cuota int not null, fecha date not null, monto float not null, primary key(id_plan, id_cuota), foreign key(id_plan) references PlanPagos(id_plan) ); class DiagramPlanPagos- id_plan- fecha- montoTotal- plazoCuota- id_cuota- fecha- monto1..* 1
  48. 48. Ing. Edwin Calle Terrazas 48 class Diagram Materia - sigla - nombre 0..* prerrequisito 0..* tiene es Creación de tablas recursivas create table Materia( sigla varchar(10) primary key, nombre varchar(30) not null ); create table Prerrequisito( sigla varchar(10), sigla_prerrequesito varchar(10), primary key(sigla, sigla_prerrequisito), foreign key(sigla) references Materia(sigla), foreign key(sigla_prerrequisito) references Materia(sigla) ); tiene class Diagram Cuenta - codigo - nombre 0..* cuenta padre 0..1 es create table Cuenta( codigo varchar(20) primary key, nombre varchar(40) not null, cuenta_padre varchar(20), foreign key(cuenta_padre) references Cuenta(codigo) );
  49. 49. 49 Creación de tablas para la herencia Especialización: Disjunta (caso general) class Diagram Empleado - ci - nombres - paterno - materno - telefono Secretaria - velocidad_tipeo Tecnico - nivel create table empleado( ci int primary key, nombres varchar(30) not null, paterno varchar(30) not null, materno varchar(30), telefono int, tipo char(10) not null, ); create table secretaria( ci int primary key, velocidad_tipeo int not null, foreign key(ci) references empleado(ci) on delete cascade on update cascade ); create table tecnico( ci int not null, nivel varchar(20) not null, primary key(ci), foreign key(ci) references empleado(ci) on delete cascade on update cascade ); Ing. Edwin Calle Terrazas
  50. 50. 50 create table empleado( ci int primary key, nombres varchar(30) not null, paterno varchar(30) not null, materno varchar(30), telefono int not null, velocidad_tipeo int, nivel varchar(20), tipo char not null ); Especialización: Disjunta (Una sola tabla) Ing. Edwin Calle Terrazas
  51. 51. 51 class Diagram Persona - ci - nombre - apellidos - direccion - telefono Cliente - limite_credito Vendedor - porcentaje Creación de tablas para la herencia Especialización: Solapamiento (en una sola tabla) create table persona( ci int primary key, nombre varchar(30) not null, apellidos varchar(30) not null, direccion varchar(50), telefono int not null, limite_credito int, porcentaje float, tc tinyint, tv tinyint );

×