viernes, 28 de septiembre de 2012

EL PROBLEMA DE LA FRAGMENTACIÓN

Este modelo consiste en que solo hay una copia de cada elemento, pero la información está distribuida a través de los nodos. En cada nodo se aloja uno o más fragmentos disjuntos de la base de datos. Como los fragmentos no se replican esto disminuye el costo de almacenamiento, pero también sacrifica la disponibilidad y fiabilidad de los datos. Algo que se debe tomar en cuenta cuando se desea implementar este modelo es la granularidad de la fragmentación. La fragmentación se puede realizar también de tres formas:
  • Horizontal: Los fragmentos son subconjuntos de una tabla (análogo a un restringir), Consiste del particionamiento en tuplas de una relación global en subconjuntos, donde cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operación de selección sobre la relación global.
  • Vertical: Los fragmentos son subconjuntos de los atributos con sus valores (análogo a un proyectar), La fragmentación vertical es la subdivisión de atributos en grupos. Los fragmentos se obtienen proyectando la relación global sobre cada grupo. La fragmentación es correcta si cada atributo se mapea en al menos un atributo del fragmento.
  • Mixto: Se almacenan fragmentos producto de restringir y proyectar una tabla. En la que respecto a la fragmentación híbrida, esta consiste en aplicar la fragmentación vertical seguida de la fragmentación horizontal o viceversa.
Una ventaja significativa de este esquema es que las consultas (SQL) también se fragmentan por lo que su procesamiento es en paralelo y más eficiente, pero también se sacrifica con casos especiales como usar JUNTAR o PRODUCTO, en general casos que involucren varios fragmentos de la BDD.
Para que una fragmentación sea correcta esta debe cumplir con las siguientes reglas:
  • Debe ser Completa: Si una relación R se fragmenta en R1,R2, ... , Rn, cada elemento de la data de R debe estar en algún Ri.
  • Debe ser Reconstruible: Debe ser posible definir una operación relacional que a partir de los fragmentos obtenga la relación.
  • Los fragmentos deben ser Disjuntos: Si la fragmentación es horizontal entonces si un elemento e está en Ri este elemento no puede estar en ningún Rk (para k distinto a i). En el caso de fragmentación vertical es necesario que se repitan las llaves primarias y esta condición solo se debe cumplir para el conjunto de atributos que no son llave primaria.
INVESTIGAR

Como configurar  el servidor y el cliente para mysql Y Como crear usarios y asignarlos a las base de datos en mysql

Los programas cliente de MySQL espera por lo general que usted especifique los parámetros de conexión cuando quiere acceder a un servidor MySQL:
  • El nombre de la máquina donde se está ejecutando el servidor MySQL
  • Su nombre de usuario
  • Su password
Por ejemplo, el cliente mysql puede ejecutarse desde un prompt de línea de comandos (indicado aquí por shell>) de la siguiente manera:
shell> mysql -h nombre_host -u nombre_usuario -p su_clave
Las sintaxis alternativas de las opciones -h-u, y -p son --host=nombre_host--user=nombre_usuario, y --password=su_clave. Nótese que no hay espacios entre -p o --password= y la clave que le sigue.
Si utiliza una opción -p o --password pero no especifica un valor para la clave, el programa cliente le pedirá que introduzca la clave. La clave no se mostrará mientras la introduce. Esto es más seguro que especificar la clave en la línea de comandos. Cualquier usuario de su sistema podría ser capaz de ver la clave especificada en la línea de comandos ejecutando un comando como ps auxww. Consulte 
Los programas clientes de MySQL utilizan valores por defecto para cualquier parámetro que no se especifique:
  • El nombre de servidor por defecto es localhost.
  • El nombre de usuario por defecto es ODBC en Windows y su nombre de usuario de Unix en Unix.
  • No se aplica ninguna clave si -p no está especificado.
De esta manera, para un usuario de Unix con un nombre de usuario de jose, todos los siguientes comandos son equivalentes:
shell> mysql -h localhost -u jose
shell> mysql -h localhost
shell> mysql -u jose
shell> mysql
Otros clientes MySQL se comportan de manera similar.
Puede especificar valores diferentes para que se utilicen cuando se realiza una conexión de manera que no tenga que introducirlos en la línea de comandos cada vez que invoca un programa cliente. Esto puede llevarse a cabo de diversas maneras:
  • Puede especificar los parámetros de conexión en la sección [client] de un archivo de opciones. La sección relevante del archivo debería tener el siguiente aspecto:
    [client]
    host=nombre_servidor
    user =nombre_usuario
    password=su_clave
    

  • Puede especificar algunos parámetros de conexión utilizando variables de ambiente. El nombre del servidor para mysql puede ser especificado utilizando MYSQL_HOST. El nombre de usuario MySQL puede especificarse mediante USER  (esto es para Windows y Netware únicamente). La clave se puede especificar utilizando MYSQL_PWD, aunque esto es inseguro; consulte Sección Guardar una contraseña de forma segura. Para ver la lista de variables, consulte Apéndice E, Variables de entorno.

    Como manipular los privilegios de los usuario en la base de datos en mysql
    La información sobre los privilegios de las cuentas está almacenada en las tablas userdbhosttables_privcolumns_priv, y procs_priv de la base de datos mysql. El servidor MySQL lee el contenido de estas tablas y lo almacena en memoria cuando se inicia, y lo relee bajo ciertas circunstancias indicadas en Cuándo tienen efecto los camios de privilegios. Las decisiones de control de acceso se basan en la copia en memoria de las tablas grant.
    Los nombres utilizados en las sentencias GRANT y REVOKE para referirse a privilegios se muestran en la siguiente tabla, junto al nombre de columna asociado con cada privilegio en las tablas grant y el contexto en que el privilegio se aplica.

    como conectarse a una base de datos  que esta en un servido remoto en mysql

    Si, es posible, sigue estas simples instrucciones para conectar tu ordenador a la base de datos.
    Antes de conectarte a mySQL, tienes que habilitar el acceso a tu computador a través de Internet. Quizás le parezca confuso, pero es muy fácil de hacerlo desde su panel de control CPanel.

    Primero, Acceda a su panel de control. (sudominio.com/cpanel). Una vez dentro del panel de control:

    1. Acceda a la sección MySQL
    2. Haga Scroll en esta ventana hasta encontrar la sección que dice "Acceso remoto" o "Access Hosts". Aquí podrás ver la lista de direcciones IP que tienen acceso a tu servidor de base de datos. Como defecto, veras que esta "localhost" . Justo debajo encontraras el mensaje "Host (% wildcard is allowed):" y al lado un campo de texto donde podras introducir la IP de tu conexión a internet de tu computador. Después de añadir tu IP  el sistema estará preparado para que ordenador acceda a la base de datos ya que estarás dando permiso de acceder a tu base de datos.

jueves, 6 de septiembre de 2012

BDD en diversos sectores productivos

Para cualquier organización que está operando en el sector productivo de un país, es indispensable contar con medios para el control de la información, ya que de ello depende en gran medida que se lleguen a tomar decisiones en momentos de crisis económica o problemas legales.
A diferencia de las bases de datos los sistemas de archivos no tienen niveles de seguridad competentes, al ser organizados simplemente en carpetas de nivel jerárquicos muy similar a como lo hacen los sistemas operativos.Aunque de igual manera destacan la falta de protección de la red local de la organización y el propio personal encargado de administrar la información.
El modelo planteado por Codd funciono de acuerdo a las expectativas plateadas y la primera empresa en comercializar software de base de datos fue Oracle. Su producto fue ampliamente aceptado, a tal grado que prácticamente todas las empresas tanto gubernamentales como privadas cambiaron al uso de software de base de datos, ya que les brindaba niveles de administración y seguridad mayores al de los sistemas de archivos, el modelo de Codd se convirtió en el pilar para las mejoras de las bases de datos actuales, que ahora se disponen más sofisticadas como las orientadas a objetos, jerárquicas, de red, multidimensionales, etc. 
El impacto de las bases de datos tanto en el sector privado como gubernamental, ha sido tan grande que prácticamente todas las empresas desde las PyMES hasta las multinacionales  (de gobierno o privadas) hacen uso de las bases de datos, por citar empresas importantes que hacen uso a diario de este tipo de software están los bancos, solo imagine la cantidad de operaciones que debe realizar con los clientes, empresas particulares y otros bancos, la cantidad información que deben manejar es realmente sorprendente ya que tienen que revisar la información de millones de celdas de las distintas tablas que integran una base de datos y la información que consultan prácticamente no debe tener margen de error (es la meta que buscan las bases de datos tener margen de error nulo, aunque la realidad en escasas ocasiones si llegan a tener errores).
Es fácil apreciar la importancia que tienen las bases de datos en todos los sectores productivos, tanto de gobierno como privados, ya que garantizan la integridad de los datos en niveles de aislamiento complejos que solo las personas autorizadas pueden acceder. Sin duda, estos tipos de software han hecho un importante aporte a la seguridad y administración de los datos de los distintos países en el mundo.
Transparencia de los datos

No se debe exigir a los usuarios de los sistemas distribuidos de base de datos que conozcan la ubicación física de los datos ni el modo en que se puede tener acceso a ellos en un sitio local concreto.
Esta característica denominada transparencia de los datos puede adoptar varias formas:

TRANSPARENCIA DE LA FRAGMENTACIÓN: No se exige a los usuarios que conozca el modo en que se ha fragmentado la relación.

TRANSPARENCIA DE LA RÉPLICA: Los usuarios ven cada objeto de datos como lógicamente único. Puede que el sistema distribuido replique los objetos para incrementar el rendimiento del sistema p la disponibilidad de los datos. Los usuarios no deben preocuparse por los objetos que se hayan replicado ni por la ubicación de esas réplicas.

TRANSPARENCIA DE LA UBICACIÓN: No se exige a los usuarios que conozcan la ubicación  física de los datos. el sistema distribuido de bases de datos debe poder hallar los datos siempre que la transacción del usuario facilite el identificador de los datos.

Fragmentación de los datos
Si la relacióm se fragmenta , R se divide en varios fragmentos r1, r2, ......,rn. Estos frafmentos contienen suficiente información coma para permitir la reconstrucción de la relación original r.
Hay dos diferentes de fragmentación de las relaciones: fragmentación horizontal y fragmentación vertical. La fragmentación horizontal divide la relación asignada cada tupla de r en uno o mas fragmentos. la fragmentación vertival divide la relación descomponiendo el esquema R de la relación r. Estos enfoques se ilustrarán fragmentando la relación cuenta con el esquema
esquema-cuenta=(numero-cuenta,nombre-sucursal,saldo).

martes, 4 de septiembre de 2012

RESUMEN: TIPOS DE ARQUITECTURA EN LAS BASE DE DATOS


ARQUITECTURA DE BD CENTRALIZADO

- La arquitectura centralizada es la más clásica: 
En ella, el SGBD está implantado en una sola plataforma u ordenador desde donde se gestiona directamente, de modo centralizado, la totalidad de los recursos. Es la arquitectura de los centros de proceso de datos tradicionales. Se basa en tecnologías sencillas, muy experimentadas y de gran robustez.

Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.  





CLIENTE/SERVIDOR

INTRODUCCIÓN
Con el aumento de la velocidad y potencia de las computadoras personales y el decremento en su precio, los sistemas se han ido distanciando de la arquitectura centralizada. Los terminales conectados a un sistema 
central han sido suplantados por computadoras personales. De igual forma, la interfaz de usuario, que solía estar gestionada directamente por el sistema central, está pasando a ser gestionada cada vez más por las computadoras personales. Como consecuencia, los sistemas centralizados actúan hoy como sistemas servidores que satisfacen las peticiones generadas por los sistemas clientes.

La computación cliente/servidor es la extensión lógica de la programación modular. El supuesto principal de la programación modular es la división de un programa grande en pequeños programas (llamados módulos), siendo más fáciles el desarrollo y la mantenibilidad (divide y vencerás).

Cualquier LAN (red de área local) puede ser considerada como un sistema cliente/servidor, desde el momento en que el cliente solicita servicios como datos, ficheros o imprimir desde el servidor. Cuando un usuario se conecta a Internet, interactuan con otros computadores utilizando el modelo cliente/servidor. Los recursos de Internet son proporcionados a través de computadores hoost, conocidos como servidores.

CARACTERÍSTICAS DE UN SISTEMA CLIENTE/SERVIDOR

Un sistema cliente/servidor es aquel en el que uno o más clientes y uno o más servidores, conjuntamente con un sistema operativo subyacente y un sistema de comunicación entre procesos, forma un sistema compuesto que permite cómputo distribuido, análisis, y presentación de los datos. Si existen múltiples servidores de procesamiento de base de datos, cada uno de ellos deberá procesar una base de dato distinta, para que el sistema sea considerado un sistema cliente/servidor. Cuando dos servidores procesan la misma base de datos, el sistema ya no se llama un sistema cliente/servidor, sino que se trata de un sistema de base de datos distribuido.

 Las principales características de la arquitectura cliente/servidor son: 
- El servidor presenta a todos sus clientes una interfaz única y bien definida. 
- El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa. 
- El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.  
- Los cambios en el servidor implican pocos o ningún cambio en el cliente.  

PARTES DE UN SISTEMA CLIENTE/SERVIDOR

Los principales componentes de un sistema cliente/servidor son: 
- El núcleo (back-end o sección posterior). Es el SGBD propiamente (servidor). 
- El  interfaz (front-end o sección frontal). Aplicaciones que funcionan sobre el SGBD (cliente).  


BASES DE DATOS DISTRIBUIDAS

Definición: Base de datos cuyo software y datos residen en diferentes computadoras interconectadas entre sí. Cada nodo interconectado puede tener una configuración HW-SW diferente,incluso DBMS´s diferentes de cada maquina, un usuario final o una aplicación de la base de datos distribuida NO debe percibirla como tal, sino que el hecho de la distribución debe aparecer transparente.

Ventajas:
-Buena adaptación a la organización de la empresas
-Comparación de la información: cada nodo controla su información y puede compartirla con el resto de los nodos.
-Confiabilidad-disponibilidad: cuando se produce un fallo, los nodos que no han sido afectados por el fallo pueden seguir su trabajo y hay, por lo tanto, mayor disponibilidad de la información.
-Resolución de consultas: se puede aprovechar la distribución de los datos para la ejecución paralela de consultas.
-Crecimiento modular: es posible ampliar las capacidades de la base de datos distribuida añadiendo nodos.

Inconvenientes:
-Aumento considerable de la complejidad:

  • Costo de desarrollo del software
  • mayor posibilidad de fallos
  • tiempo perdido en la comunicación a través de la red 
-Problemas de seguridad al trabajar en red
-Dificultades añadidas al diseño y gestión de la base de datos

Concepto de la transparencia:
-Es el grado en el que el sistemas puede ocultar los detalles de distribución de la información en la red. Máxima transparencia equivale a base de datos centralizada
-Transparencia en cuanto a:

  • localización: ver mas adelante
  • transacción: sincronización de subtransacciones locales atómicas
  • ejecución: procesador de consultas decide el plan a ejecutar minimizando costo de comunicación
  • DBMS:  correspondencias entre modelos de datos de cada DBMS (estructuras y lenguajes)
Concepto de autonomía local
-Grado en el que el funcionamiento de cada nodo es independiente del resto de los nodos
-Problema: asignación de nombres únicos:

  • lista de nombres en nodo central: perdida de autonomía local
  • esquema nombre_nodo.nombre_objeto: perdida de la transparencia


° Factores en la colocación de la información (REPLICACIÓN)
-Localidad en las referencias
      * Fragmentos cerca de donde más se utilicen.
      * Fragmentos en nodos donde se usen.
-Contabilidad y disponibilidad
-Ejecución
      * Intentar evitar la sobre carga o la infrautilización de los recursos de cada nodo.
-Coste de almacenamiento
-Costo de comunicación
      * Menor cuanto mayor sea la localidad en las referencias
      * Mayor cuanto menor sea el número de réplicas a actualizar

  •      Estrategias de colocación de la información
-Centralización
-Partición: base de datos se divide en fragmentos disjuntos y cada uno se envía a un nodo
-Replicación completa: base de datos replicada en cada nodo
-Replicación selectiva
  • Combinación de las técnicas anteriores
  • Solución de compromiso buscando las ventajas de cada técnica