MODELAMIENTO DE BASE DE DATOS


INTRODUCCION

   En el proceso de desarrollo de sistemas informáticos, orientados a producir software que apoye a las actividades empresariales, así como a sus procesos, se tienen que respetar ciertas fases propias de las metodologías del análisis de información, de la metodología de procesos de negocios (IDEF) hoy en día se emplea la metodología orientada a objetos, sin embargo, para el desarrollo de software es primordial el manejo del análisis y diseño de sistemas, para el análisis tenemos herramientas de recopilación de información, mientras que para la fase de diseño de sistemas, tenemos las llamadas herramientas ‘CASE’, que son el apoyo informático de todo diseñador de sistemas para plasmar todo el análisis de requerimientos previos en diagramas, conocidos como ‘MODELOS’,las   herramientas de diseño de sistemas más empleado es el Platinum Erwin, que es la que emplearemos para el curso.

SISTEMAS DE INFORMACION
   Conjunto de actividades que regulan el comportamiento y distribución de información para una mejor administración del negocio.



 
 
BASE DE DATOS
   Una Base de Datos es un contenedor de objetos como tablas, vistas, procedimientos, etc., almacenados en una plataforma denominada Sistema Gestor de Base de Datos, viene a ser un servidor como SQL Server, Oracle, DB2, MySQL, etc. Dicho de otra forma, una base de datos contiene las tablas y componentes sobre las que se almacenada información de todos los procesos del negocio. Y nos permite generar información y ser compartida por distintos usuarios.
CARACTERISTICAS DE UN SGBDR
   El SGBDR es el software que almacenará nuestra base de datos, por la cual es la que no va a permitir acceder a la información por medio de lenguajes como SQL. Tienen la capacidad de responder a múltiples usuarios en forma concurrente a los datos, lo que se llama ‘Arquitectura Cliente – Servidor’.
*      Escalabilidad: Se refiere de la organización, mejorando su performance.
-          Horizontal: Crecimiento de los usuarios.
-          Vertical:      Se refiere al crecimiento del servidor de datos.

*      Rendimiento: Característica de brindar respuestas a los múltiples requerimientos de los usuarios como consultas, actualización, recuperación de datos, etc.

*      Portabilidad: Característica de transportar con facilidad el producto de una plataforma a otra incluyendo toda la data contenida.

*   Universalidad: Característica de manejar múltiples tipos de datos como caracteres, numéricos, de fecha, multimedia, etc.

*     Disponibilidad: Debe ser permanente e ininterrumpida, factor crucial del servicio de la base de datos que da apoyo a las aplicaciones (programas) de los negocios.

ARQUITECTURA CLIENTE – SERVIDOR
-          Actual arquitectura para sistemas de base de datos.
-          Distribución de aplicaciones y/o datos en una red.
-          Sinónimo de computación abierta, permite utilización de hardware y software sin dependencia de un solo proveedor.
-          Comprende la utilización de los recursos informáticos tanto para los  administradores y usuarios finales como jefes de área o proyecto, analistas, programadores, etc.

ADMINISTRADOR DE BASE DE DATOS
   Es el profesional informático responsable de diseñar la estructura de la base de datos, así como del mantenimiento y seguridad tanto de la información como del servidor de datos. Su denominación es DBA (Database Administrator), entre sus funciones principales tenemos:
-          Definición de la estructura de tablas, y componentes.
-          Asignación y administración de permisos de acceso a los usuarios.
-          Responsable de la seguridad de toda la información, por medio de copias de seguridad de datos (backups).


LA ARQUITECTURA DE DATOS

ARQUITECTURA ANSI
Esta arquitectura comprende de tres niveles de datos, cuyo objetivo es la de separar los programas de aplicación de la base de datos física, éstos niveles en realidad son descripciones de los mismos datos pero con distintos niveles de abstracción (acceso), los únicos datos que realmente existen están en el nivel físico, pero es importante especificar que tipos de usuarios y en que nivel de acceso se encuentran disponibles para el manejo de la información.
ABSTRACCION DE DATOS
RDBMS (RELATION DATABASE MANAGMENT SYSTEM)
SGBDR (SISTEMA GESTOR DE BASE DE DATOS RELACIONAL)
Está compuesto de un software de BD y un conjunto de aplicaciones (programas) para poder acceder y administrar datos, crea un ambiente adecuado para poder administrar, manipular y recuperar información de manera oportuna y eficiente.

 
 NIVEL EXTERNO
Describe una parte de la base de datos que interesa a un grupo de usuarios y ocultándola a otro de grupo de usuarios, aquí se encuentran las vistas (interfaces), que será el único medio de acceso de estos usuarios hacia la información almacenada en el servidor de datos (el SGBDR).
Ejemplo: A través de un formulario de acceso, el usuario podrá acceder al sistema.
 NIVEL LOGICO
   Es aquel nivel que describe la estructura de la base de datos, realizada en la fase de diseño del sistema, satisface los requerimientos de los usuarios, se representa mediante un modelo de datos, ocultando los detalles de almacenamiento físico.


NIVEL INTERNO
Este nivel describe la estructura física de almacenamiento de la base de datos, aquí se encuentra realmente los únicos datos existentes, es decir, la BD.
MODELAMIENTO DE DATOS

   Concluida la fase de análisis de requerimientos, y definidos los procedimientos del negocio por intermedio de herramientas de análisis, lo que corresponde a continuación es capturar formalmente toda la información relevante en un medio físico, una representación que refleje las soluciones a los requerimientos establecidos, para ello utilizamos la técnica de modelamiento de datos, que será la base para estructurar nuestra BD. La información que se almacenará debe cumplir con todas las exigencias propias del sistema.

CARACTERISTICAS DE LA INFORMACION
*     Oportuna: La información debe estar disponible al momento de requerirse.
*     Segura: La información debe ser segura y asegurar a las transacciones.
*     Precisa: La información debe ser confiable, exacta y concisa.
*     Completa: La información debe contener los datos completos, no a medias.
*     Significativa: La información debe ser significativa para la empresa.

TIPOS DE MODELOS

MODELO CONCEPTUAL
Luego de haber recopilado la información necesaria para definir los requerimientos de los usuarios, las problemáticas y necesidades del negocio que se está modelando, el primer paso es crear un modelo conceptual que refleje la realidad del negocio, entonces esta es la primera fase del diseño de datos, aunque generalmente se suele obviar este paso para ir de frente al diseño de entidades y atributos. Fue creado por Peter Chen a finales de los 60’s.
MODELO LOGICO
Los modelos lógicos contienen entidades, atributos y relaciones entre sus elementos, totalmente normalizadas partiendo del modelo conceptual, es la segunda fase del diseño de datos y refleja mas detalladamente la futura estructura de la base de datos. Creado por el doctor Edgard F. Cood en 1970 en base a lo hecho por Peter Chen, representa el modelo relacional de datos, es por ello que se denomina Modelo Entidad-Relación al producto final, es el modelo más utilizado por los diseñadores de sistemas. Cood también diseño el sistema de Normalización de datos que veremos mas adelante. El modelo Entidad-Relación se compone de 3 partes:

-          Estructura de datos: Básicamente se compone de relaciones.
-         Manipulación de datos: Operadores para recuperar, derivar o modificar datos almacenados.
-         Integridad de datos: Colección de reglas que definen la consistencia de la base de datos.

MODELO FISICO
   Es un modelo lógico instanciado en un específico producto RDBMS (Oracle, SQL Server, Informix, MySQL, etc.). Depende del tipo de plataforma y versión en donde esta contenida, refleja integridad referencial, claves alternas, índices, tipos de datos, etc. Es la tercera fase del diseño de datos, parte del modelo Entidad-Relación.


MODELO ENTIDAD-RELACION  

   El modelo Entidad-Relación (MER) a un nivel conceptual, tiene como únicos elementos correspondientes sólo:
-          Entidad.
-          Relación

ENTIDAD
   Una entidad es un objeto, instancia, persona, o cosa puramente conceptual o real sobre el cual se desea guardar información por ser de relevancia para una organización. Una entidad es aquello que mas adelante se convertirá en un elemento de nuestra base de datos, por lo mismo contendrá información propia que será manipulado por los usuarios del sistema.
¿Cómo identifico una entidad?
Una entidad puede ser identificada como un sustantivo dentro de la narración de un proceso de negocio dentro de la organización.
Una entidad en el modelo conceptual se representa por un rectángulo:


ENTIDAD
 




Ejemplo de entidades:
Los alumnos tienen cursos nuevos en este semestre, los profesores dictarán las clases desde el día de hoy.
Entidades: alumnos, cursos, profesores. Son entidades porque son los sustantivos que me representan algo de la cual puedo guardar información.

RELACION
   Las entidades se relacionan de acuerdo a algo que tengan en común, entonces diremos que una relación o interrelación es la asociación o correspondencia entre dos o más entidades, en el nivel conceptual se refleja por una línea, y el verbo de la relación dentro de un rombo.







Ejemplo: Del ejm. anterior, relacionemos las entidades alumno, curso y profesores.







                                                                                                                                
EJERCICIOS
1) Identificar las entidades y sus relaciones en el siguiente caso:
-       En una concesionaria de automóviles, se venden autos de marcas Honda, Volvo y Mercedes Benz, los clientes son atendidos por personal de ventas especializados en el tema de automóviles, si la venta se lleva a cabo, se le entrega los documentos correspondientes al cliente.
Resolviendo:
Entidades: auto, cliente, personal de venta, documentos, porque son los sustantivos del cual se requiere información, no Honda ni Volvo ni Mercedes Benz, éstas son elementos de una entidad auto, no confundir entidad y elementos, mas adelante detallaré este punto. Graficando en el modelo conceptual:











2) Relacione las siguientes entidades:
- Personas – Distrito





- Cliente – Pedido





- Transportista – Guía de Remisión





- Persona – Estado Civil





- Personal - Área






TIPOS DE ENTIDADES
  •       ENTIDAD FUERTE: También conocida como entidad Padre, es aquella entidad cuya existencia no depende de la existencia de alguna otra entidad, es identificada fácilmente dentro de un proceso y da lugar a la posibilidad de otras entidades.
  •         ENTIDAD DEBIL: También conocida como entidad Hijo, es aquella cuya existencia depende de la existencia de otra entidad, en este caso de una entidad fuerte, tiene sus propias características aunque está ligada a la entidad fuerte.
  •       SUB-ENTIDAD (Sub-Tipo): Es aquella que depende totalmente de la entidad padre, su existencia parte de la entidad fuerte que la originó, la dependencia es total y sus elementos son similares a las de la entidad padre. La entidad generada es la entidad sub-tipo mientras que la entidad principal será súper-tipo.
En el ejemplo anterior, diremos que las entidades Cliente, Auto y Personal son fuertes, mientras que Documentos es débil ya que no se generará elemento alguno de esa entidad sin la existencia de las otras tres.

EJERCICIO
Identificar las entidades fuertes y débiles:
1.      PlanCtas                     F                                 Boucher          D
2.      Asistencia                   D                                Personal          F
3.      Alumno                      F                                 Nota                D
4.      Factura                       D                                Cliente             F
5.      Pedido                        D                                Proveedor       F
6.      Cotización                  F                                 Producto         F
7.      Alumno                      F                                 Curso              F
8.      Producto                    F                                 OrdenCpra      F
9.      Orden Compra           D                                Proveedor       F
10.  Personal                      D                                Cargo              F


MODELO ENTIDAD-RELACION

   El MER a un nivel lógico, comprende otros elementos asociados a las entidades y sus interrelaciones:
-       Atributos
-       Claves o Llaves
-       Tipos de relaciones
-       Cardinalidad

ATRIBUTOS
   Los atributos son aquellos que caracterizan a una entidad, son las propiedades que posee cada entidad y que la hacen distinta ante las otras entidades, no existe entidad que no tenga al menos un atributo.
Por ejemplo, los atributos propios para una persona serían su nombre, dirección, edad, salario, peso, talla, color, religión, etc. Para un objeto sería su textura, tamaño, material, utilidad, tipo, etc.
TIPOS DE ATRIBUTOS
1)      ATRIBUTOS SIMPLES: Son aquellos atributos que son fáciles de identificar, inherentes a la entidad y no pueden seguir descomponiéndose.

2)      ATRIBUTOS COMPUESTOS: Son aquellos atributos que tienen 2 o más atributos simples que lo componen, llamados también atributos concatenados, ya que se forman por la unión de dos atributos simples.
Digamos que el nuevo atributo Apellido se compone así: AP + AM.
3)      ATRIBUTOS MULTIVALUADOS: Son aquellos atributos que tienen un conjunto de valores para un solo registro de datos, éstos atributos son capaces de generar inclusive una nueva entidad del tipo Sub-Entidad.
Digamos que el cliente de nuestra empresa, en realidad tenga varios números telefónicos donde ubicarlo, entonces estamos ante un atributo ‘Teléfono’ con varios valores posibles, entonces podría generar una nueva entidad.


4)      ATRIBUTO DERIVADO: Es aquel que puede ser generado por otros atributos de la misma entidad e inclusive por atributos de otra entidad.

5)      ATRIBUTO CLAVE: Es aquel atributo que identifica unívocamente a la entidad, es decir, son aquellos atributos cuyos valores no se repetirán jamás para otra entidad, inclusive en la misma entidad, no existirán dos registros con el mismo valor para ese atributo, a propósito de este tipo de atributo hablaremos de los índices o claves de las entidades.
                                                                         
CLAVES O LLAVES (IDENTIFICADORES)
   Una clave es un atributo especial que identifica de manera única cada ocurrencia de la entidad, es decir, es el que identifica a la entidad como única e irrepetible en el universo que es el proceso de negocio. No puede existir dos valores iguales para clave de la entidad, ya que se estaría infringiendo la integridad referencial de los datos (más adelante detallaré este punto).

TIPOS DE CLAVES:
CLAVE PRIMARIA (PRIMARY KEY – PK)
   Una clave primaria es aquella clave candidata que el diseñador eligió como principal arbitrariamente, es decir, esta será la que identifique los elementos de cada entidad de manera única e irrepetible.
Recomendaciones del profesor al momento de asignar claves primarias:
-       Para entidades que representen personas u objetos, generalmente se utilizan códigos o ID’s para identificarlos en el modelo.
-       Si la entidad representa productos manufacturados o artefactos, también puede utilizarse el código de fabricación o # de serie para identificarlos.
-       Para documentos, lo recomendable es identificarlos por el número del documento que fue generado por sistema.
-       Para entidades que representen cosas abstractas, puede elegirse cualquiera de las opciones anteriores.


CLAVE FORANEA (FOREIGN KEY – FK)
   Es la llave primaria de la entidad padre que fue agregada a la entidad hijo por medio de la relación entra ambas, vale decir que en la entidad fuerte sigue siendo clave primaria, pero al pasar a la entidad débil, pasa como clave secundaria o foránea, pero sólo en la entidad débil será foránea.
CLAVE ALTERNA (AK)
   Las claves alternas son simplemente aquellas claves candidatas losa cuales no fueron seleccionadas como clave primaria, exactamente alguna de esas claves es seleccionada como PK y las restantes si existe alguna son llamadas claves alternas, pero pueden servir para identificar en una consulta de datos a la entidad en un momento dado.
Ejemplo: para un cliente de nuestra empresa le asignamos como PK un código que será único para cada cliente registrado en el sistema, sin embargo también es cierto que como personas civiles que son, tiene DNI que es único por cada persona, entonces éste puede ser otro identificador del cliente cuando se requiera consultar a los clientes del negocio, es entonces una AK.
Otras AK pueden ser: teléfono, lote, número de serie, la composición del nombre mas el primer apellido, etc.

TIPOS DE RELACIONES
RELACION IDENTIFICADA (Obligatoriedad)
   Una relación identificada representa la obligatoriedad de la existencia de una entidad (fuerte) para que se produzca ocurrencia de elementos en otra entidad (débil), acá se trabajan con las claves para relaciones los registros de ambas entidades, cada registro representa una ocurrencia de la entidad
La PK de la entidad padre se agrega a la entidad hijo como FK, dentro de la zona de claves y con línea de relación continua.


RELACION NO IDENTIFICADA (No obligatoriedad)
   En una relación no identificada no es obligatoria identificar la PK de la entidad padre para identificar algún elemento de la entidad hijo, se representa con una línea discontinua.
La PK de la entidad padre se agrega a la entidad hijo como FK fuera de la zona de claves.





GRADO DE LA RELACION: Se refiere al número de entidades participantes en una relación, digamos que si tenemos dos entidades participantes en la relación se trata de una relación binaria, si tenemos tres entidades participantes en la relación, se trata entonces de una relación ternaria, y así sucesivamente.

RELACION RECURSIVA
   En un tipo de relación muy especial, en donde los elementos de la misma entidad participan más de una vez en la relación con distintos papeles, esto se da por medio de la PK de la entidad, se denomina Recursividad de datos. Este tipo de relación en realidad es opcional, se utiliza para representar la dependencia de los elementos de la entidad con otros elementos de la misma entidad.

CODIGO_EMP
NOMBRE
CARGO
JERARQUIA
E0001
PEDRO
VENDEDOR
SUBORDINADO
E0002
JOSE
GERENTE_VENTA
JEFE DE AREA
E0003
MARIA
ASISTENTE
SUBORDINADO

Tenemos que cada empleado tiene una jerarquía asociado a su cargo y área, si definimos que cada jefe tiene un subordinado, diremos que existen elementos de la entidad que están relacionados con otros elementos de la misma entidad, estamos ante una relación recursiva.
CARDINALIDAD: Para tratar este punto, debemos ampliarlo de acuerdo a lo que se conoce como Integridad Referencial de los datos, para ello debemos tener en cuenta que cada relación tiene un tipo específico para clasificarlo.

INTEGRIDAD REFERENCIAL (Cardinalidad)

   La unión de dos entidades da como producto un conjunto relación cuyos elementos son denominados como ‘TUPLAS’, cada tupla representa la relación entre los elementos de las entidades participantes, estas tuplas reflejan la Cardinalidad de la relación, de acuerdo a ello diremos que existe 2  clases de cardinalidades:
  •       Cardinalidad mínima: Es la mínima cantidad de tuplas que cada elemento de la entidad A puede tener con elementos de la entidad B.
  •       Cardinalidad máxima: Es la máxima cantidad de tuplas que cada elemento de la entidad A puede tener con elementos de la entidad B.
 
TIPOS DE CARDINALIDADES
RELACION DE UNO A UNO
   En este tipo de relaciones, cada instancia o elemento de la entidad A está asociado solamente a un elemento de la entidad B. Se recomienda que cuando se identifique una relación de este tipo, se una ambas entidades formando una sola, salvo casos especiales.
RELACION DE UNO A MUCHOS

1
 
   En este tipo de relaciones, cada instancia o elemento de la entidad A está asociado a varios elementos de la entidad B, entonces la clave que forma el vínculo entre ambas entidades, pasa hacia la entidad que tiene el mayor grado de Cardinalidad, es decir el que posee la denominación ‘muchos’.
RELACION DE MUCHOS A MUCHOS
   En este tipo de relación, los elementos de la entidad A están asociados a varios elementos de la entidad B, y los elementos de la entidad B están asociados a varios elementos de la entidad A, cuando sucede esto, se genera una nueva entidad denominada ‘Entidad Asociada’, generalmente toma el nombre de ambas entidades participantes o la denominación del verbo de la relación. La entidad asociada se grafica sólo en el modelo físico de datos, en el nivel lógico se representa la relación muchos a muchos.


A TENER EN CUENTA:
-       Las entidades asociadas heredan las PK’s de las entidades padres que la generaron, ambas forman la clave principal de la entidad asociada, lo que se conoce como ‘CLAVES COMPUESTAS’, es otro tipo de claves que se dan en este tipo de casos.
-       La Cardinalidad mínima se representa con el número 0 o 1, mientras que la Cardinalidad máxima se representa con el 1 0 M.
-       La variante ‘0’ se da cuando exista la posibilidad de que algún elemento de la entidad A no esté necesariamente asociado a un elemento de la entidad B.
-       En el modelo conceptual las claves se representan como pequeñas circunferencias que sobresalen de los rectángulos que representan a la entidad.
EJERCICIOS

Relacione las entidades indicando: Tipo de relación, Cardinalidad mínima y máxima, claves y atributos.

3)      Resolver: En un negocio de alquiler de autos, cada cliente puede solicitar el alquiler de un vehículo por cada vez, se le entrega un comprobante de alquiler por medio del representante de ventas, indicando fecha y hora de entrega del vehículo. Grafique el modelo conceptual y lógico del negocio.