lunes, 23 de enero de 2012

Bases de datos orientadas a Objetos


Orientación a objetos

El desarrollo del paradigma orientado a objetos aporta un gran cambio en el modo en que vemos los datos y los procedimientos que actúan sobre ellos. Tradicionalmente, los datos y los procedimientos se han almacenado separadamente: los datos y sus relaciones en la base de datos y los procedimientos en los programas de aplicación. La orientación a objetos, sin embargo, combina los procedimientos de una entidad con sus datos. Esta combinación se considera como un paso adelante en la gestión de datos. Las entidades son unidades auto contenidas que se pueden reutilizar con relativa facilidad. En lugar de ligar el comportamiento de una entidad a un programa de aplicación, el comportamiento es parte de la entidad en si, por lo en cualquier lugar en el que se utilice la entidad, se comporta de un modo predecible y conocido.
El modelo orientado a objetos tambi´en soporta relaciones de muchos a muchos, siendo el primer modelo que lo permite. Aun así se debe ser muy cuidadoso cuando se diseñan estas relaciones para evitar p´erdidas de información.

El modelo orientado a objetos también soporta relaciones de muchos a muchos, siendo el primer modelo que lo permite. Aun as1 se debe ser muy cuidadoso cuando se diseñan estas relaciones para evitar perdidas de información. Por otra parte, las bases de datos orientadas a objetos son navegacionales: el acceso a los datos es a través de las relaciones, que se almacenan con los mismos datos. Esto se considera un paso atrás. Las bases de datos orientadas a objetos no son apropiadas para realizar consultas ad hoc, al contrario que las bases de datos relacionales, aunque normalmente las soportan. La naturaleza navegacional de las bases de datos orientadas a objetos implica que las consultas deben seguir relaciones predefinidas y que no pueden insertarse nuevas relaciones “al vuelo”

Los objetos han entrado en el mundo de las bases de datos de formas: SGBD orientados a objetos puros: son SGBD basados completamente en el modelo orientado a objetos.
SGBD h´ıbridos u objeto–relacionales: son SGBD relacionales que permiten almacenar3 objetos en sus relaciones (tablas).
Tipos de metodos. Hay varios tipos de m´etodos que son comunes a la mayor´ıa de las
clases:
Constructores. Un contructor es un m etodo que tiene el mismo nombre que la clase. Se ejecuta cuando se crea un objeto de una clase. Por lo tanto, un constructor contiene instrucciones para inicializar las variables de un objeto.
Destructores. Un destructor es un metodo que se utiliza para destruir un objeto.
No todos los lenguajes orientados a objetos poseen destructores.
Accesores. Un accesor es un metodo que devuelve el valor de un atributo privado de otro objeto. Ası es c omo los objetos externos pueden acceder a los datos encapsulados.
Mutadores. Un mutador es un metodo que almacena un nuevo valor en un atributo. De este modo es como objetos externos pueden modificar los datos encapsulados.
Ademas, cada clase tendra otros metodos dependiendo del comportamiento especıfico que deba poseer.

Encapsulamiento 

Hay muchos datos que no tiene porque conocerlo aquel que este usando la clase Persona; ya que son inherentes al objeto y solo controlan su funcionamiento interno; por ejemplo, cuando alguien te ve puede saber inmediatamente si eres hombre o mujer (propiedad) o puede hablarte y obtener una respuesta procesada (metodo); tambien puede conocer el color de tu cabello y ojos. En cambio, jamas sabra que cantidad de energia exacta tienes o cuantas neuronas te quedan, ni siquiera preguntandote ya que ninguna de tus propiedades externas visibles o funciones de comunicación al publico te permiten saber esos datos.
Esto es la encapsulación u ocultación; hacer las variables que son innecesarias para el tratamiento del objeto pero necesarias para su funcionamiento privadas, asi como las funciones que no necesitan interacción del usuario o que solo pueden ser llamadas por otras funciones dentro del objeto (Como por ejemplo, palpitar)
La encapsulación es muy conveniente y nos permite (Si programamos bien) colocar en funcionamiento nuestro objeto en cualquier tipo de sistema, de una manera modular y escalable (algunas de las reglas de la ingenieria del software).
Formas de encapsular  [editar]Estándar (Predeterminado)

1.Abierto : Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y 2.cualquier parte del programa.
3.Protegido : Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4.Cerrado : Solo es accesible desde la Clases.
En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.[8]
-ejemplos:
Objetos: encapsulamiento

 Porción visible: interfaz (protocolo)
 Contrato público de comportamiento
 Descripción de operaciones: información de entrada y de salida
 Porción oculta: implementación
 Estructura de datos para almacenar la información
 Código que se ejecuta para realizar las operaciones[4]
Persistencia
La persistencia es una de las características que los SGBDOO heredan tanto de los SGBD como del modelo de objetos. La diferencia está en que la persistencia proporcionada por el SGBD tradicional, se refiere únicamente a la conservación de los datos, mientras que la persistencia heredada del modelo de objetos hace referencia no sólo a la conservación del estado de un objeto, si no también a la conservación de la clase, que debe trascender a cualquier programa individual, de forma que todos los programas interpreten de la misma manera el estado almacenado.
Se puede distinguir entre:
ŒPersistencia en el espacio, que hace referencia al hecho de que los objetos creados en una máquina puedan llevarse a otra, y que incluso puedan tener representaciones diferentes en diferentes máquinas.
Persistencia en el tiempo, hace referencia a la cualidad de los objetos de sobrevivir a la ejecución del proceso que los creó
http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf
http://damian02.wordpress.com/encapsulamiento-poo/


HERENCIA
Una de las herramientas disponibles en lenguajes orientados a objetos más potente es la herencia. Esta propiedad permite a los objetos ser construidos a partir de otros objetos. El objetivo final es la reutilizabilidad o reutilización, es decir, reutilizar código anteriormente ya desarrollado.
La herencia supone una clase base y una jerarquía de clases que contiene las clases derivadas de la clase base. Las clases derivadas pueden heredar el código y los datos de su clase base, añadiendo su propio código especial y datos a ellas, incluso cambiar aquellos elementos de la clase base que necesita sean diferentes.
Clase Base
Clase derivada Clase derivada Clase derivada
HERENCIA SIMPLE (Herencia jerárquica)

En esta jerarquía cada clase tiene como máximo una sola superclase. La herencia simple permite que una clase herede las propiedades de su superclase en una cadena jerárquica.
HERENCIA MÚLTIPLE (Herencia en malla)

Una malla o retícula consta de clases, cada una de las cuales puede tener una o más superclases inmediatas. Una herencia múltiple es aquella en la que cada clase puede heredar métodos y variables de cualquier número de superclases.
La clase C tiene dos superclases, A y D. Por consiguiente, la clase C hereda las propiedades de las clases A y D. Evidentemente, esta acción puede producir un conflicto de nombres, donde la clase C hereda las mismas propiedades de A y D.

Herencia repetida
Otro de los problemas graves que produce la herencia múltiple es la herencia repetida. Este tipo de herencia se produce cuando una clase hereda de dos o más superclases que a su vez heredan de la misma superclase. La mayoría de los lenguajes de programación no permiten la duplicación estática de la superclase, pero eso no se producirá siempre, y así se puede dar el caso de que el compilador duplique la clase que se hereda dos o más veces.

Jerarquía de clases.
    En una base de datos existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo. Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables.
    Así que básicamente las bases de datos orientadas por objetos tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en otra clase.
    Por ejemplo: Retomemos la relación alumno-cursa-materia agregándole la entidad maestro; donde los atributos considerados para cada uno son alumno: Nombre, Dirección, Teléfono, Especialidad, Semestre, Grupo; Maestro: Nombre, Dirección, Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos, Clave.
    Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y maestro, así que podemos agrupar estos elementos para formar la clase Persona con dichos campos. Quedando por separado en alumno: Especialidad, semestre, Grupo. Y en maestro: Número económico, Plaza y RFC; la materia no entra en la agrupación (Clase persona) ya que la clase específica los datos de solo personas, así que queda como clase materia.

http://html.rincondelvago.com/poo_11.html

Manifiesto Malcolm Atkinson: características de un BDOO
En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos el cual propuso trece características obligatorias para un SGBDOO y cuatro opcionales. Las trece características obligatorias estaban basadas en dos criterios: debía tratarse de un sistema orientado a objetos y un SGBD(Sistema Gestor de Bases de Datos Orientadas a Objetos (SGBDOO): El gestor de una base de datos orientada a objetos).
Características obligatorias de orientación a objetos:
  • Deben soportarse objetos complejos
  • Deben soportarse mecanismos de identidad de los objetos
  • Debe soportarse la encapsulación
  • Deben soportarse los tipos o clases
  • Los tipos o clases deben ser capaces de heredar de sus ancestros
  • Debe soportarse el enlace dinámico
  • El DML debe ser computacionalmente complejo
  • El conjunto de todos los tipos de datos debe ser ampliable


Características obligatorias de SGBD:
  • Debe proporcionarse persistencia a los datos
  • El SGBD debe ser capaz de gestionar bases de datos de muy gran tamaño
  • El SGBD debe soportar a usuarios concurrentes
  • El SGBD debe ser capaz de recuperarse de fallos hardware y software
  • El SGBD debe proporcionar una forma simple de consultar los datos.
http://zarza.fis.usal.es/~fgarcia/docencia/poo/99-00/bdoo.pdf TIPOS.




UN SGBDOO ES UN SGBD QUE SOPORTA UN MODELO BASADO EN EL PARADIGMA ORIENTADO A OBJETOS:
ALMACENA OBJETOS Y SU ESQUEMA (PERSISTENCIA).
LENGUAJE PARA DEFINICIÓN Y MANIPULACIÓN.
POR SER GESTOR:
INCLUYE MECANISMOS PARA OPTIMIZAR EL ACCESO (INDEXACIÓN Y CLUSTERING), EL CONTROL DE CONCURRENCIA, SEGURIDAD Y GESTIÓN DE USUARIOS, FACILIDAD DE CONSULTA Y RECUPERACIÓN ANTE FALLOS.
POR SER OO:
CARACTERÍSTICAS DE IDENTIDAD, ENCAPSULACIÓN,
HERENCIA, POLIMORFISMO Y CONTROL DE TIPOS.



Conceptos avanzados de modelo de datos

Diferencias entre el modelo ER y el modelo ER extendido (EER)


 En primera instancia, el modelo ER extendido (EER) permite modelar ciertas características de forma más sencilla. Estas características son la especialización /generalización y la agregación.


·         Modelo Entidad-Relación (ER):

En el modelo E/R se parte de una situación real a partir de la cual se definen entidades y relaciones entre dichas entidades.

Entidad: Objeto del mundo real sobre el que queremos almacenar información  (Ej: una persona). Las entidades están compuestas de atributos que son los datos que definen el objeto (para la entidad persona serían DNI, nombre, apellidos, dirección...).
Relación: Asociación entre entidades, sin existencia propia en el mundo real que estamos modelando, pero necesaria para reflejar las interacciones existentes entre entidades. Las relaciones pueden ser de tres tipos:
-Relaciones 1-1
-Relaciones 1-n
-Relaciones n-n
·         Modelo Entidad-Relación Extendido(EER):

Varios modelos ER extendidos (EER) han aparecido en la literatura reciente. En general, su contribución es añadir la abstracción de generalización al modelo original.Detrás de las diferencias sintácticas de varias extensiones está el enriquecimiento semántico acerca de las relaciones entre las entidades. Por ejemplo, muchos de los cambios sintácticos propuestos giran alrededor de la generalización/especialización, una clara indicación de las mejoras semánticas. En el EER se añaden los conceptos de generalización, agregación, clase y subclase.






 Modelado de las clases, superclases,  la especialización, y de retícula

¿Qué es una clase?

Una clase es un conjunto de instrucciones que se utiliza como un modelo para crear objetos de ese mismo tipo. Normalmente a los objetos provenientes de este "modelo" se les nombre: una clase del tipo (por ejemplo) estudiante.

¿Qué es una SuperClase?

Una Superclase es una clase de la cual se heredan todas las demás clases. Es decir, es el padre.

¿Qué es la Especialización?

Es el proceso de definir un conjunto de subclases a partir de una entidad tipo.
Un claro ejemplo de esto es: que una SuperClase Empleado puede derivar en las subclases: {Ingeniero, Administrador, Secretaria}.

*Nota: la clase de la cual se hereda se llama SuperClase y la que hereda se llama SubClase.

¿Qué es una Retícula?

También llamada Retícula de Especializacion, es una cualidad que nos dice que un subtipo puede ser parte de varias relaciones tales como SuperClase o Subclase. Además, que una SubClase puede tener más de una SuperClase.
En esta imagen podemos observar que un Becario puede ser un Estudiante o un Empleado.






Modelado de la generalización, agregación y asociación

Asociaciones
  • Una asociación implica que dos elementos del modelo tienen una relación – usualmente implementada como una variable de instancia de una clase. Este conector puede incluir roles nombrados en cada extremo, cardinalidad, dirección y restricciones. Una asociación es el tipo de relación general entre elementos. Para más de dos elementos, un elemento de la caja de herramientas de representación diagonal también se puede usar. Cuando se genera código para diagramas de clase, las asociaciones se convierten en variables de instancia en la clase de destino.


Generalizaciones
  • Una generalización se usa para indicar herencia. Dibujada desde un clasificador especifico a un clasificador general, la implicación general es que el origen hereda las características del destino. El siguiente diagrama muestra una clase padre generalizando una clase hijo. Implícitamente, un objeto instanciado de la clase Circulo tendrá atributos x_position, y_position y radius y un método display(). Tener en cuenta que la Forma de clase es abstracta, mostrada por el nombre en itálica.

Agregaciones
  • Las agregaciones se usan para describir elementos que están compuestos de componentes más pequeños. Las relaciones de agregación se muestran por una punta de flecha con forma de diamante apuntando hacia el destino o clase padre.

  • Una forma más fuerte de agregación – una agregación compuesta – se muestra por una flecha con forma de diamante negro y se usa donde los componentes se pueden incluir en un máximo de una composición a la vez. Si el padre de una agregación compuesta se elimina, usualmente todas sus partes se eliminan con el mismo; sin embargo una parte puede ser individualmente eliminada desde una composición sin tener que eliminar toda la composición. Las composiciones son relaciones transitivas, asimétricas y pueden ser recursivas. 

  • El siguiente diagrama ilustra la diferencia entre agregaciones fuertes y débiles. Un libro de direcciones esta conformado de múltiples contactos y grupos de contacto; un contacto se puede incluir en más de un grupo de contacto. Si elimina un libro de direcciones, todos los contactos y grupos de contactos se eliminarán también; si elimina un grupo de contacto, ningún contacto se eliminará.



http://www.sparxsystems.com.ar/resources/tutorial/uml2_classdiagram.html


Modelado de datos con especialización y generalización


RELACIONES DE GENERALIZACIÓN-ESPECIALIZACIÓN
En una relación de generalización-especialización existe una jerarquía de tipos en la que se definen sucesivos niveles de subtipos que se especializan de manera incremental, heredando los atributos y el comportamiento de un ancestro común denominado supertipo, extendiendo su definición agregando nuevos atributos y métodos, o redefiniendo los métodos heredados de sus ancestros. Esta jerarquía de tipos provee un alto nivel de complejidad para un modelo determinado.  


Fig. 1: Relación de Generalización-Especialización 
En el ejemplo de la Figura 1 se asume que los conjuntos de Estudiante y Profesor son disjuntos, y que en el universo de 
información que se quiere representar existen objetos de los tres tipos: personas, estudiantes y profesores, para contrastarlo con la posibilidad de que sólo existan profesores y estudiantes. 


http://www.unne.edu.ar/Web/cyt/com2004/6-Biologia/B-057.pdf




 Categorías y la categorización


Las categorías son las clasificaciones más básicas de conceptualización, y se refieren a clases de objetos de los que puede decirse algo específicamente. (Carlos Thiebaut, Conceptos fundamentales de la Filosofía, Alianza Editorial, Madrid, 1998.)  Desde el diccionario, categorías: Clase, división; en filosofía: uno, de un conjunto posiblemente exhaustivo de clases, entre los que todas las cosas pueden ser distribuida.; Del griego: Kategoría.  Desde Aristóteles hasta Kant, las categorías han tenido un importante papel en la historia de la Filosofía.  Son las últimas –en el sentido de las más básicas, elementales-- estructuras lógicas desde las que clasificamos nuestros juicios. (Diccionario de Filosofía)
En la metodología cualitativa, los datos recogidos necesitan ser traducidos en categorías con el fin de poder realizar comparaciones y posibles contrastes, de manera que se pueda organizar conceptualmente los datos y presentar la información siguiendo algún tipo de patrón o regularidad emergente.


La categorización (es decir, cerrar o establecer las categorías) facilita la clasificación de los datos registrados, y por consiguiente, propicia una importante simplificación.
La categorización consiste en la segmentación en elementos singulares, o unidades, que resultan relevantes y significativas desde el punto de vista de nuestro interés investigativo.  Categorización se realiza por unidades de registro, es decir, estableciendo una unidad de sentido (otra posible definición de categoría) en un texto registrado por algún medio (usualmente grabado), por lo tanto es textual y a la vez conceptual. (NOTA, Si la categorización es conceptual y textual, por contraposición, la codificación --de la investigación cuantitativa-- se realiza asignando unidades de numeración a los datos recogidos. Por lo que es Numérica o simbólica y por consiguiente manipulable según reglas matemáticas, usualmente, estadísticas. Ver Hernandez, Fernandez y Baptista, Metodología de Investigación, McGraw-Hill, Capítulo 9, Sección 7.)

http://www.lapaginadelprofe.cl/metodo/guiatesis/311categorizar.htm



viernes, 20 de enero de 2012

El modelo de datos Jerárquico


En un modelo jerárquico, los datos son organizados en una estructura parecida a un árbol, implicando un eslabón solo ascendente en cada registro para describir anidar, y un campo de clase para guardar los registros en un orden particular en cada lista de mismo-nivel. Las estructuras jerárquicas fueron usadas extensamente en los primeros sistemas de gestión de datos de unidad central, como el Sistema de Dirección de Información (IMS) por la IBM, y ahora describen la estructura de documentos XML. Esta estructura permite un 1:N en una relación entre dos tipos de datos. Esta estructura es muy eficiente para describir muchas relaciones en el verdadero real; recetas, índice, ordenamiento de párrafos/versos, alguno anidó y clasificó la información. Sin embargo, la estructura jerárquica es ineficaz para ciertas operaciones de base de datos cuando un camino lleno (a diferencia del eslabón ascendente y el campo de clase) también no es incluido para cada registro.
Una limitación del modelo jerárquico es su inhabilidad de representar manera eficiente la redundancia en datos. Los modelos de base de datos " el valor de atributo de entidad " como Caboodle por Swink están basados en esta estructura.



Vínculos virtuales padre - hijo
En la relación Padre-hijo: El hijo sólo puede tener un padre pero un padre puede tener múltiples hijos. Los padres e hijos son atados juntos por eslabones "indicadores" llamados. Un padre tendrá una lista de indicadores de cada uno de sus hijos.
El modelo jerárquico tiene problemas cuando se modelan ciertos tipos de vínculos. Entre ellos están los siguientes vínculos y situaciones:


  • Vínculos M:N
  • El caso en que un tipo de registro participa como hijo en mas de un tipo de VPH
  • Vínculos n-arios con mas de dos de registros participantes.
Restricciones del modelo de datos Jerárquico:


  • Si ningun registro esta relacionada con una ocurrencia de registro padre, con excepcion de los registros raiz, no puede existir.
  • No puede existir un registro hijo si no esta enlazado con un registro padre.
  • El registro hijo tiene que duplicarse si este tiene dos o mas registros padres.
  • Un registro hijo se puede eliminar independientemente de su padre; pero la eliminación de un padre causa automáticamente la eliminación de todos sus registros hijos y descendientes
  • Si el registro ijo tiene dos o mas padres, este slo puede tener uno real; todos los demas tienen que ser virtuales.

TRANSFORMACIÓN DE UN ESQUEMA E/R EN UN ESQUEMA 
 JERÁRQUICO

Ya se han señalado los inconvenientes que presenta el modelado del mundo real según esquemas jerárquicos, 
y también hemos indicado una técnica de diseño jerárquico que consiste en introducir redundancias. 


Se podría evitar la pérdida de simetrías introduciendo mucha mayor redundancia, como se muestra en la 
Figura , donde se presenta la transformación de un esquema E/R con dos entidades y una interrelación N:M es 
un esquema jerárquico en el que existen dos árboles, de modo que se conservan las simetrías naturales, ya que los 
algoritmos para dos preguntas simétricas, como son recuperar los alumnos de un profesor y recuperar los  10
profesores de un alumno, serían también simétricos. 
Soluciones de este tipo no son en absoluto eficientes. 
A partir del modelo E/R, vamos a analizar la forma de transformar algunos tipo, de interrelaciones al modelo 
jerárquico.

A) Interrelaciones 1:N con cardinalidad mínima 1 en la entidad padre. 
En este caso no existe ningún problema y el esquema jerárquico resultante será prácticamente el mismo que 
en el ME/R. 


B) Interrelaciones 1:N con cardinalidad mínima 0 en el registro propietario. 
El problema es que podrían existir hijos sin padre, por lo que o se crea un padre ficticio para estos casos o se 
crean dos estructuras arborescentes. 

La primera estructura arborescente tendrá como nodo padre el tipo de registro A y como nodo hijo los 
identificadores del tipo de registro B. De esta forma no se introducen redundancias, estando los atributos de la 
entidad B en la segunda arborescencia, en la cual sólo existiría un nodo raíz B sin descendientes.

C) Interrelaciones N:M 
La solución es muy parecida, creándose también dos arborescencias.  11

La solución es independiente de las cardinalidades mínimas. Se podría suprimir, en la primera arborescencia 
o en la segunda, el registro hijo, pero no se conservaría la simetría.

D) Interrelaciones reflexivas 
La jerarquía a) se utilizaría siempre que se desee obtener la explosión. 
La aplicación de estas normas de diseño evita la introducción de redundancias, así como la pérdida de 
simetría, pero complica enormemente el esquema jerárquico resultante que estará constituido por más de un árbol, 
lo que no resulta fácilmente comprensible a los usuarios. 







El modelo de base de datos de red



Modelo de red

La mayor parte de bases de datos de objeto usan el concepto de navegación para proporcionar la navegación rápida a través de las redes de objetos, generalmente usando identificadores de objeto como indicadores "inteligentes" de objetos relacionados. 

El modelo de red organiza datos que usan dos fundamental construcciones, registros  y conjuntos. Los registros contienen campos (que puede ser organizado jerárquicamente, como en el lenguaje COBOL de lenguaje de programación). Los conjuntos (para no ser confundido con conjuntos matemáticos) definen de uno a varios relaciones entre registros: un propietario, muchos miembros.
 Un registro puede ser un propietario en cualquier número de conjuntos, y un miembro en cualquier número de conjuntos. El modelo de red es una variación sobre el modelo jerárquico, al grado que es construido sobre el concepto de múltiples ramas(estructuras de nivel inferior) emanando de uno o varios nodos (estructuras de nivel alto), mientras el modelo se diferencia del modelo jerárquico en esto las ramas pueden estar unidas a múltiples nodos. El modelo de red es capaz de representar la redundancia en datos de una manera más eficiente que en el modelo jerárquico. Las operaciones del modelo de red son de navegación en el estilo: un programa mantiene una posición corriente, y navega de un registro al otro por siguiente las relaciones en las cuales el registro participa. 

Los registros también pueden ser localizados por suministrando valores claves. Aunque esto no sea un rasgo esencial del modelo, las bases de datos de red generalmente ponen en práctica las relaciones de juego mediante indicadores que directamente. dirigen la ubicación de un registro sobre el disco. Esto da el funcionamiento de recuperación excelente, a cargo de operaciones como la carga de base de datos y la reorganización. 
La mayor parte de bases de datos de objeto usan el concepto de navegación para proporcionar la navegación rápida a través de las redes de objetos, generalmente usando identificadores de objeto como indicadores "inteligentes" de objetos relacionados. Objectivity/DB, por ejemplo, los instrumentos llamados 1:1, 1:muchos, muchos:1 y muchos:muchos, llamados relaciones que pueden cruzar bases de datos. Muchas bases de datos de objeto también apoyan SQL, combinando las fuerzas de ambos modelos.


En el modelo de red no existen restricciones, si queremos representar que un cliente puede tener varias cuentas, cada una de las cuáles sólo puede tener un titular, y cada cuenta ésta en una sola sucursal, que por supuesto puede ser compartida por varias cuentas, éste sería el esquema:
Cliente Cuenta Sucursal
Con el modelo relacional podríamos tener ambas entidades definidas de la siguiente forma:
Cliente = (Nº Cliente: Acceso Principal; Nombre, Dirección, Nº Cuenta: Acceso Ajeno)
Cuenta = (Nº Cuenta: Acceso Principal; Saldo)


Se puede diseñar una base de datos de red el cual se  parte de un esquema de entidad de relacion (ER).
Los Pasos pueden ser:
  • Trabajar con entidades normales y por cada entidad crear un tipo de registros con muchos o todos sus atributos cuyos campos pueden ser simples o compuestos. 
  • Trabajar con entidades como comunes, las cuales son entidades que dependen de otra para poder existir.
  • Para cada entidad débil se crea un tipo de regsitro que lo represente. Además debemos relacionarla con la entidad de la que depende, para ello la entidad fuerte de la qeu depende la débil viene ser propietario y la débil, miembro.
  • Trabajar con vínculos de uno-uno (1:1) y uno-muchos no recursivos. En el caso de la relación de uno a uno se elige cualquiera de los dos registros como propietario y al otro como miembro.
  • Si la relación es de muchos (1:N) se escoge como propietario al registro que representa a la entidad que está al lado 1 de la relación y como miembro al registro que representa a la entidad que esta al lado N de la relación.
  • Trabajar con relaciones de muchos a muchos (N:M). Por lo que se tiene que crear un tipo de registro, el cual sera miembro de los dos registros que representan a las entidades de la relación.
  • Trabajar con vínculos recursivos con vínculos de 1:1 o 1:N. Para ambos casos se crea un nuevo registro. El cual se unirá al registro que representa la entidad a través de tipo de conjuntos .
  • Por ultimo se trabaja con los vículos que relacionan a más de dos entidades.Por lo que  se tiene que crea un nuevo tipo de registro, el cual será el registro miembro de los registros que representan a las entidades; los cuales vendrían a ser los registros propietarios.

La programación facilita realizar una o varias tareas, tales como buscar, leer, insertar, eliminar y modificar los registros. Por lo que es necesario el uso del programa de manipulación de datos (DML). El genera órdenes de registro por registro incorporadas en un lenguaje de programación de aplicación general, se llama lenguaje anfitrión.

Para poder comprender perfectamente es necesario entender algunos términos.

  • Registros actuales: Son registros específicos identificados de la base da datos.
  • Indicadores de actualidad, los cuales son los responsables de  llevar el control de varios registros y ocurrencias; existen tres tipos de indicadores de actualidad.
    • Actual de tipo de registros
    • Actual de tipo de conjuntos
    • Actual de unidad de ejecución
  • Área de trabajo del usuario: Es el conjunto de variables locales las cuales tienen diferentes tipos de registros para que el programa anfitrión pueda manipularlos.








http://www.monografias.com/trabajos14/tecnolcomp/tecnolcomp2.shtml
http://ict.udlap.mx/people/carlos/is341/bases02.html



jueves, 19 de enero de 2012

Pasos de la normalización desde la 1FN hasta la 4FN


Con todas las formas normales aprendidas, se podrá visualizar de como una tabla presenta relaciones de 1fn hasta 4fn.




Cuarta forma normal


Para lograr la cuarta forma normal (4FN) es necesario que este en 1FN, 2FN y 3FN.
Las 4FN se da cuando existen relaciones de uno a muchos (dependencia multivalor)
Hay dos maneras de proceder, una de ellas es cuando la cantidad de atributos es indefinida, se establece la clave primaria con ambos datos. Y la otra se da cuando la cantidad de atributos es determinada, en este caso, se establece la clave primaria y los atributos se enumeran.



Fallas 


Las fallas de la cuarta forma normal es que no reduce completamente la redundancia en la base de datos  relacionales que guardan hechos multivalores, además que cada dependencia de unión no implica necesariamente  las claves candidatas, es decir, no siguen los criterios de las claves. 





Ejemplo 1:
Columna1 Columna2 Columna3
C_Niño N_Enfermera N_Medico
Bebe1 Eguzquiza Parraga
Bebe1 Ramirez Astocondor
Bebe1 Eguzquiza Salas
Bebe1 Eguzquiza Parraga



Columna1 Columna2
C_Niño N_Medico
Bebe1 Parraga
Bebe1 Astocondor
Bebe1 Salas



Columna1 Columna2
C_Niño N_Enfermera
Bebe1 Eguzquiza
Bebe1 Ramirez


Ejemplo 2:


Clave Especialidad Curso
458 Sistema Natacion
458 Bioquimica Danza
458 Sistemas Natacion
478 Bioquimica Guitarra
356 Civil Natacion
Clave Especialidad
458 Sietmas
478 Bioquimica
356 Civil
Clave Curso
458 Natacion
458 Danza
478 Guitarra
356 Natacion


Ejemplo 3:


C_Restaurante Local1 Local2 Local3
4586 Surco Ate San Isidro
4515 La Molina Santa Anita San Borja
5698 San Isidro Surco Lurin
C_Restaurante Local
4586 Surco
4515 La Molina
5698 San Isidro