Bases de datos relacionales

domingo, 15 de marzo de 2015



Bases de datos relacionales

Así como en la orientación a objetos, algunas clases se relacionan con otras, ya sea a través de la herencia o la composición, cuando nuestros objetos deben guardar un almacén de datos, esa relación, debe conservarse también en la base de datos de nuestra aplicación.
Si te fijas el siguiente esquema, puede entenderse como dos objetos con sus propiedades y a la vez, como dos tablas, relacionadas entre sí:






Read more ...

Motores de Bases de Datos Relacionales

domingo, 15 de marzo de 2015
 
 Hoy en día existen muchas empresas y sitios web que necesitan mantener de forma eficiente un gran volumen de datos. Muchos de ellos optan por soluciones comerciales (Oracle Database o IBM DB2 entre otras ), aunque muchas otras confían en el software libre optando por una solución como PostGreSQL o MySQL. Cabe mencionar que un motor de BD relacional (BDR) es equivalente a un SGBDR.
Es muy común la pregunta, entre las personas que se adentran por primera vez en el mundo de las bases de datos libres, ¿Qué motor de bases de datos debo usar? ¿MySQL o PostGreSQL?. A continuación se verán algunos detalles de ambos motores.

PostGreSQL

PostGreSQL es un sistema de gestión de bases de datos objeto-relacional basado en el proyecto POSTGRES, de la Universidad de Berkeley. El director de este proyecto es el profesor Michael Stonebraker, patrocinado por Defense Advanced Research Projects Agency (DARPA), Army Research Office (ARO), National Science Foundation (NSF), y ESL, Inc.

Un poco de historia
PostGreSQL fue derivado del proyecto Postgres, lleva más de una década de desarrollo, siendo hoy en día, el sistema libre más avanzado, soportando la gran mayoría de las transacciones SQL, control concurrente y un variado conjunto de “language bindings” como por ejemplo C, C++, Java, Python, PHP y muchos más.
La implementación de Postgres DBMS comenzó en 1986, y no hubo una versión operativa hasta 1987. La versión 1.0 fue liberada en Junio de 1989 a unos pocos usuarios, tras la cual se liberó la versión 2.0 en Junio de 1990 debido a fuertes críticas sobre el sistema de integridad referencial, que obligó a su reimplementación. La versión 3.0 apareció en el año 1991.
En 1994, Andrew Yu y Jolly Chen añadieron un intérprete de SQL a este gestor. Postgres95, como así se llamó fue liberado a Internet como un proyecto libre (OpenSource). Estaba escrito totalmente en C, y la primera versión fue un 25% más pequeña que Postgres, y entre un 30 y un 50% más rápida. A parte de la corrección de algunos bugs, se mejoró el motor interno, se añadió un nuevo programa monitor, y se compiló usando GNU Make y el compilador gcc.
En 1996, los desarrolladores decidieron cambiar el nombre al SGDB, y lo llamaron PostGreSQL para reflejar la relación entre Postgres y las versiones recientes de SQL.

Características
  • Implementación del estándar SQL92/SQL99.
  • Licencia BSD.
  • Por su arquitectura de diseño, escala muy bien al aumentar el número de CPUs y la cantidad de RAM.
  • Soporta transacciones y desde la versión 7.0, claves foráneas (con comprobaciones de integridad referencial).
  • Tiene mejor soporte para triggers y procedimientos en el servidor.
  • Incorpora una estructura de datos array.
  • Incluye herencia entre tablas (aunque no entre objetos, ya que no existen), por lo que a este SGBD se le incluye entre los gestores objeto-relacionales.
  • Implementa el uso de rollback’s, subconsultas y transacciones, haciendo su funcionamiento mucho más eficaz.
  • Se pueden realizar varias operaciones al mismo tiempo sobre la misma tabla sin necesidad de bloquearla.

MySQL

MySQL es un sistema de gestión de bases de datos relacional, licenciado bajo GPL de la GNU. Su diseño multihilo permite soportar una gran carga de forma muy eficiente. MySQL fue creado por la empresa sueca MySQL AB, que mantiene el copyright del código fuente del servidor SQL, así como también de la marca.
Aunque MySQL es software libre, MySQL AB distribuye una versión comercial, que no se diferencia de la versión libre más que en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de no ser así, se vulneraría la licencia GPL.
Un poco de historia
MySQL surgió como un intento de conectar el gestor mSQL a las tablas propias de MySQL AB, usando sus propias rutinas a bajo nivel. Tras unas primeras pruebas, vieron que mSQL no era lo bastante flexible para lo que necesitaban, por lo que tuvieron que desarrollar nuevas funciones. Esto resultó en una interfaz SQL a su base de datos, con una interfaz totalmente compatible a mSQL.
No se sabe con certeza de donde proviene su nombre. Por un lado dicen que sus librerías han llevado el prefijo ‘my’ durante los diez últimos años. Por otro lado, la hija de uno de los desarrolladores se llama My. No saben cuál de estas dos causas (aunque bien podrían tratarse de la misma), han dado lugar al nombre de este conocido gestor de bases de datos.
Características
  • Lo mejor de MySQL es su velocidad a la hora de realizar las operaciones, lo que le hace uno de los gestores que ofrecen mayor rendimiento.
  • Consume muy pocos recursos ya sea de CPU como así también de memoria.
  • Licencia GPL y también posee una licencia comercial para aquellas empresas que deseen incluirlo en sus aplicaciones privativas.
  • Dispone de API’s en gran cantidad de lenguajes (C, C++, Java, PHP, etc).
  • Soporta hasta 64 índices por tabla, una mejora notable con respecto a la versión 4.1.2.
  • Mejor integración con PHP.
  • Permite la gestión de diferentes usuarios, como también los permisos asignados a cada uno de ellos.
  • Tiene soporte para transacciones y además posee una característica única de MySQL que es poder agrupar transacciones.




Read more ...

Bases de datos orientadas a objetos (BDOO)

domingo, 15 de marzo de 2015
 
¿Qué es O.O.?
En esos mundos OO, el conocimiento se descentraliza en todos los objetos que lo componen, cada objeto sabe hacer lo suyo y no le interesa saber cómo el vecino hace su trabajo, pero sabe que lo hace y qué es lo que puede hacer. Como bien lo definió Dan Ingalls de Smalltalk con las siguientes palabras:
"La orientación a objetos proporciona una solución que conduce a un Universo de Objetos 'bien educados' que se piden de manera cortés, concederse mutuamente sus deseos".
¿Por qué O.O.?
La meta es dejar la etapa en la que la construcción del software es una labor de artesanos, y pasar a la etapa en la que se pueda tener fábricas de software, con gran capacidad de reutilización de código y con metodología eficientes y efectivas que se apliquen al proceso de producción.
¿Qué es una BDOO?
A finales de los 80's aparecieron las primeras BDOO, es una base de datos inteligente. Soporta el paradigma orientado a objetos almacenando datos y métodos, y no sólo datos. Está diseñada para ser eficaz, desde el punto de vista físico, para almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los métodos almacenados en ella. Es más segura ya que no permite tener acceso a los datos (objetos); esto debido a que para poder entrar se tiene que hacer por los métodos que haya utilizado el programador.
Un Modelo Conceptual Unificado
Las técnicas OO utilizan los mismos modelos conceptuales para el análisis, diseño y construcción. La tecnología de las BDOO da un paso más hacia la unificación, el modelo conceptual de la base de datos OO es igual al del resto del mundo OO, en lugar de utilizar tablas por relación independientes como SQL.
El uso del mismo modelo conceptual para todos los aspectos del desarrollo simplifica éste, particularmente con las herramientas CASE OO; mejora la comunicación entre usuarios, analistas y programadores, además de que reduce las posibilidades de error.
Para ver las figuras faltantes haga click en el menú superior "Bajar Trabajo"
Arquitectura de Una BDOO
En la siguiente (TablaNo1) se muestran algunos de los principales productos de BDOO y sus vendedores.
Los primeros se diseñaron como una extensión de los lenguajes de programación como Smalltalk ó C++. El LMD ( lenguaje para el manipulación de datos; también conocido como DML) y el LDD (lenguaje para la definición de los datos; también conocido como DDL) construían un lenguaje OO común.
El diseño de las BDOO actuales debe aprovechar al máximo él CASE e incorporar métodos creados con cualquier técnica poderosa, incluyendo enunciados declarativos, generadores de códigos e inferencias con base en reglas.
Para ver la tabla faltante haga click en el menú superior "Bajar Trabajo"

Seis Productos de BDOO y sus Proveedores.
Algunas características son independientes de la arquitectura fundamental de una BDOO pero son comunes a la mayoría de ellas:
* Versiones.- La mayoría de los sistemas de bases de datos sólo permiten que exista una representación de un ente de la base de datos dentro de esta. Las versiones permiten que las representaciones alternas existan en forma simultánea.
* Transacciones compartidas.- Las transacciones compartidas soportan grupos de usuarios en estaciones de trabajo, los cuales desean coordinar sus esfuerzos en tiempo real, los usuarios pueden compartir los resultados intermedios de una base de datos. La transacción compartida permite que varias personas intervengan en una sola transacción
Desarrollo con Bases de Datos OO
Las BDOO se desarrollan al describir en primer lugar los tipos de objetos importantes del dominio de aquellos tipos de objetos. Estos tipos de objetos determinan las clases que conformarán la definición de la BDOO.
Por ejemplo: Una base de datos diseñada para almacenar la geometría de ciertas partes mecánicas incluiría clases como CILINDRO, ESFERA Y CUBO. El comportamiento de CILINDRO podría incluir información relativa a sus dimensiones, volumen área superficial:
Clase de CILINDRO{
ALTURA FLOTANTE ();
RADIO FLOTANTE ();
VOLUMEN FLOTANTE ();
AREA DE SUPERFICIE FLOTANTE ();
Se puede llegar a definiciones similares para el cubo y la esfera. En la definición anterior, ALTURA,RADIO y ÁREA representan los mensajes que se pueden enviar a un objeto CILINDRO .
La Implantación se lleva a cabo en el mismo lenguaje, escribiendo funciones correspondientes a las solicitudes OO:
CILINDRO::ALTURA () {RETORNA CILINDRO_ALTURA;}
CILINDRO::VOLUMEN () {RETORNA PI*RADIO ()*ALTURA ();}
En este caso, la Altura se almacena como un elemento de los datos, mientras que volume se calcula mediante la fórmula apropiada. Observe que la implantación interna de volume utiliza solicitudes para obtener altura y radio. Sin embargo, el aspecto más importante es la sencillez y uniformidad que experimentan los usuarios de CILINDRO. Sólo necesitan conocer la forma de enviar una solicitud y las solicitudes disponibles.
Tres Enfoques de Construcción de Bases de Datos OO
Las BDOO se pueden construir mediante alguno de los tres enfoques siguientes:
El Primero.- se puede utilizar el código actual altamente complejo de los sistemas de administración de las bases de datos, de modo que una BDOO se implante más rápido sin tener que iniciar de cero. Las técnicas orientadas a objetos se pueden utilizar como medios para el diseño sencillo de sistemas complejos. Los sistemas se construyen a partir de componentes ya probados con un formato definido para las solicitudes de las operaciones del componente.
* El Segundo: considera a la BDOO como una extensión de la tecnología de las bases de datos por relación. De este modo, las herramientas, técnicas, y vasta experiencia de la tecnología por relación se utilizan para construir un nuevo SABD. Se pueden añadir apuntadores a las tablas de relación para ligarlas con objetos binarios de gran tamaño (BLOB). La base de datos también debe proporcionar a las aplicaciones clientes un acceso aleatorio y por partes a grandes objetos, con el fin de que sólo sea necesario recuperar a través de la red la parte solicitada de los datos.
* El Tercero: reflexiona sobre la arquitectura de los sistemas de bases de datos y produce una nueva arquitectura optimizada, que cumple las necesidades de la tecnología OO. Las compañías como Versant, Objectivity, Itasca, etc. Utilizan esté enfoque y afirman que la tecnología de relación es un subconjunto de una capacidad más general. Además que las BDOO no de relación son aproximadamente dos veces más rápidas que las bases de datos por relación para almacenar y recuperar la información compleja. Por lo tanto, son esenciales en aplicaciones como CAD y permitirían que un depósito CASE fuera una facilidad de tiempo real en vez de una facilidad por lotes.
La Arquitectura de Versant está designada al soporte Cliente/Servidor con acercamiento a la computación distribuida; cualquier aplicación de Cliente el servidor la procesa, usa las EDT y las máquinas servidoras que pueden cooperar en una BD distribuida de Versant. Las BD pueden estar levantadas como un sistema m-Cliente/n-Servidor.
Un servidor en el medioambiente de Versant es una máquina que está corriendo los procesos del servidor, esta soporta accesos concurrentes por usuarios múltiples de una o más BD. Un cliente es un proceso de aplicación este tiene acceso a espacios de trabajo de BD persistentes privadas y en adición puede accesar diversas BD sobre servidores concurrentes con otras aplicaciones de cliente.





Read more ...

BASES DE DATOS MODELO RELACIONAL

domingo, 15 de marzo de 2015
Read more ...

Diseño de una base de datos relacional

domingo, 15 de marzo de 2015

  Una base de datos bien diseñada le brinda un completo acceso a lainformación deseada. Con un buen diseño dedicará menos tiempo a crear la base de datos y obtendrá resultados más exactos en menos tiempo.

Para el diseño se deben seguir los siguientes pasos:

1. Determinar el propósito de la base de datos. 2. Determinar las tablas necesarias. 3. Determinar los campos necesarios en cada tabla. 4. Determinar las relaciones. 5. Refinar el Diseño.

Sugerencias para determinar los campos

Para determinar los campos se debe tener en cuenta lo siguiente:

  • Asegurarse de que cada campo de una tabla esté directamente relacionado con el tema de la tabla.
  • No incluir datos derivados o calculados.
  • Incluir toda la información que se necesite.
  • Almacenar la información en sus partes lógicas más pequeñas.

Campos de clave principal

La potencia de un sistema de gestión de Access surge de su capacidad para buscar, localizar y combinar rápidamente información almacenada en distintas tablas para que Access funcione eficientemente, cada tabla de la base de datos debe incluir un campo o una serie de campos que identifique inequívocamente cada fila o registro individual almacenado en la tabla.
En la terminología de base de datos, esta información identificadora se denomina clave principal de la tabla, la cual permite asociar rápidamente datos de distintas tablas y poderlos presentar conjuntamente.

Para elegir los campos de clave principal se debe tener en cuenta

  • Access no permite la existencia de valores duplicados o nulos en un campo de clave principal.
  • Puede utilizar el valor del campo de clave principal para buscar registros, por lo que dicho campo no debe ser demasiado largo, y si fácil de recordar y escribir por lo que puede convenir que tenga un número limitado de letras o dígitos o que esté dentro de un determinado rango.
  • El tamaño de la clave principal influye en la velocidad de las operaciones en la base de datos por lo que para un máximo rendimiento, utilice el menor tamaño posible para que quepan los valores a almacenar en el campo.

  Determinar las relaciones
Access es un sistema de administración de base de datos relacionales lo que significa que es posible almacenar datos relacionados en distintas tablas de la base de datos.













  
Uso de complementos

Complementos que realizan funciones especiales

  •  Documentador de Base de Datos:Imprime un listado del contenido de toda una Base de Datos y las definiciones de los objetos de la misma que se seleccionen. Por ejemplo: se le puede imprimir una lista de todos los controles y formularios.
  •  Administrador de Adjuntos:Actualiza los vínculos con tablas adjuntas que se han movido o cuyo nombre se ha modificado.
  •  Importar Base de Datos:Importa todos los objetos de otra Base de Datos Access.
  •  Generador de Menús:Ayuda a crear un sistema de menús personalizado para una aplicación.
  •  Administrador de Complementos:Instala, elimina, personaliza y administra los complementos.

Compactar una base de datos

Cuando se hacen cambios en una Base de Datos, también se pueden agregar y eliminar objetos. Con este proceso puede fragmentarse y utilizar el espacio de forma no óptima. Las bases de datos deben compactarse periódicamente con el fin de desfragmentar el archivo. Debe cerrarse una base de datos antes de compactarla, puede sobreescribirla o crear un archivo distinto.

Codificar una base de datos

Permite que un archivo de Base de Datos Access sea completamente ilegible desde cualquier otra aplicación como puede ser un editor de texto esta característica forma parte de la seguridad de Access.

Recuperar una base de datos dañada

Si Access se cierra de forma inesperada, por ejemplo: debido a una caída de corriente, la base de datos puede quedar dañada, para poder utilizarla es necesario repararla, también es necesario cuando Access tenga un comportamiento impredecible al manipular una base de datos (MDB).






Read more ...

CONCEPTOS BASICOS DEL MODELO RELACIONAL

domingo, 15 de marzo de 2015













Read more ...

Bases de datos relacionales: qué son y qué aportan a la gestión de información

sábado, 14 de marzo de 2015

  Ficheros y registros
Un fichero es un conjunto de registros. Un registro es el equivalente informático a una ficha. Los registros se componen de campos, que son las zonas de información en las que se articula un registro. Los registros y los ficheros son unidades de trabajo básicas en informática, y no sólo en el terreno de las bases de datos. Los ficheros y los registros se usaban antes de que existieran aquellas y se usan, en general, en cualquier situación donde sea necesario estructurar conjuntos de datos. Por ello, hay aplicaciones informáticas que son capaces de crear y gestionar ficheros, es decir, que permiten definir estructuras de registros, dar registros de alta, recuperarlos, modificarlos, etc.
Por su parte, una base de datos es un conjunto de ficheros, aunque pueden existir bases de datos compuestas por un solo fichero. Desgraciadamente, en la literatura que genera la industria del software esta diferencia semántica se ha perdido, de manera que, de facto, los términos fichero y base de datos se utilizan como sinónimos en bastantes contextos.


















Ficheros planos
Algunos programas pueden trabajar solamente con un fichero a la vez (esto es, sólo pueden tener un fichero abierto y cargado en la memoria RAM a la vez), mientras que otros programas pueden trabajar con varios. Solamente estos últimos son, en rigor, sistemas de gestión de bases de datos (sgbd), mientras que los primeros son sistemas de gestión de ficheros (sgf).
Con ambas clases de programas se puede articular la información de la empresa en varios ficheros distintos, pero sólo los sgbd pueden cruzar datos entre ellos y generar nuevos ficheros con la información seleccionada.

Por qué se divide la información
La información se mantiene en ficheros separados porque ello facilita su mantenimiento: los datos son independientes de su utilización concreta y, así, los mismos datos pueden utilizarlos distintos departamentos de la empresa, sin necesidad de volver a entrarlos para cada proceso. De esa manera, puede existir un almacén de datos unificados a disposición de todos los departamentos de la empresa, aunque cada uno tenga una visión de ellos acorde con sus necesidades. La existencia de este almacén central de datos aporta muchas ventajas prácticas, porque además de facilitar mucho su utilización, evita la aparición de inconsistencias y hace más sencillo su mantenimiento.

Separar para integrar
En resumen, el punto crítico aquí es el siguiente: mantener información útil para toda la empresa implica que los datos deben articularse en distintos ficheros, pero, para poder obtener algo útil de todo ello se necesita un programa capaz de seleccionar datos de distintos ficheros.
Los sgbd son esa clase de programas y para realizar su función se han utilizado históricamente (y se utilizan aún) diferentes estructuras de ficheros, y, así, por ejemplo, antes del sistema relacional se utilizaban los modelos jerárquico y en red.

Los elementos del modelo
Los elementos conceptuales del modelo con los cuales se construyen bases de datos relacionales son los siguientes: los datos se organizan en ficheros, que se denominan tablas. Las tablas se consideran estructuras bidimensionales homogéneas (matrices) compuestas por filas y columnas. Cada tabla está formada por un número fijo de columnas y por un número variable de filas. Las filas se denominan tuplas, cada tupla es un registro, y cada registro representa a una entidad del mundo real; las columnas, por su parte, son los campos del registro, que representan a los diversos atributos de la entidad. El conjunto de los valores que puede adoptar una columna se denomina su dominio.

Formas normales de las tablas
El álgebra relacional especifica entonces las diversas operaciones que pueden realizarse con las tablas, las cuales generan nuevas tablas. La base para realizar operaciones con dos tablas (cruzar datos) radica en la existencia de por lo menos una columna en ambas tablas cuyos elementos pertenezcan al mismo dominio. Sin embargo, para que las operaciones relacionales se comporten de la forma prevista por el álgebra, las tablas deben estar construidas de acuerdo con unas especificaciones concretas, y de las tablas así construidas se dice que están normalizadas.





Read more ...