Sistemas de Base de Datos
Concepto y Objetivos
Cuando los datos de un sistema de información se almacenan en una única estructura, se llama base de datos.
Una base de datos es una colección de datos almacenados en un soporte informático permanente de forma que sea posible obtener la relación entre los datos a través de un esquema conceptual que oculte la física real de los datos.
El objetivo es que las aplicaciones puedan acceder a los datos sin necesidad de conocer exactamente cómo están almacenados los datos. Esto se consigue con un esquema conocido como esquema conceptual. Cualquier desarrollador que conozca ese esquema puede acceder a los datos desde cualquier aplicación.
BASE DE DATOS MOVIL
Es portable y físicamente independiente del servidor corporativo de base de datos, pero es capaz de comunicarse con ese servidor desde sitios remotos, permitiendo la comparación de datos corporativos.
Los Sistemas Gestores de Bases de Datos móviles.
Los móviles son capaces de informarse con los principales SGBD relacionales. Estos SGBD móviles son los que se adaptan a expedientes unidades móviles que proporcionan muchas funcionalidades:
Realizan la Información con el servidor centralizado de base de datos con información inalámbrica.
Replicación de fundamentos hacia el servidor centralizado de base de datos en los dispositivos móvil.
Gestión de datos en el dispositivo móvil.
Comparación de informes acopiados en el dispositivo móvil.
COMPONENTES DE UN ENTORNO DE UNA BASE DE DATOS MOVIL
Servidor de base de datos corporativo y SGBD que gestiona y almacena los datos corporativos y proporciona aplicaciones corporativas.
Base de datos remota y SGBD que gestiona y almacena los datos móviles.
Plataforma de base de datos móvil, que puede ser una computadora portátil, un PDA u otro dispositivo de acceso Internet.
Enlaces de comunicación bidireccionales entre el SGBD y el SGBD móvil
1. SISTEMA GESTOR DE BASE DE DATOS
PARA MOVILES Y DIFERENCIA ENTRE
LAS BASES DE DATOS RELACIONALES Y
LAS NO RELACIONALES
CURSO:ADMINISTRACION DE BASE DE DATOS
DOCENTE: EDDIE MALCA
ALUMNO:ALBERTO JAVIER HUAMANI RUIZ
2. Los Sistemas Gestores de Bases
de Datos móviles.
Los móviles son capaces de informarse con los principales SGBD
relacionales. Estos SGBD móviles son los que se adaptan a expedientes
unidades móviles que proporcionan muchas funcionalidades:
Realizan la Información con el servidor centralizado de base de datos con
información inalámbrica.
Replicación de fundamentos hacia el servidor centralizado de base de
datos en los dispositivos móvil.
Gestión de datos en el dispositivo móvil.
Comparación de informes acopiados en el dispositivo móvil.
COMPONENTES DE UN ENTORNO DE UNA BASE DE DATOS MOVIL
Servidor de base de datos corporativo y SGBD que gestiona y almacena los
datos corporativos y proporciona aplicaciones corporativas.
Base de datos remota y SGBD que gestiona y almacena los datos móviles.
Plataforma de base de datos móvil, que puede ser una computadora
portátil, un PDA u otro dispositivo de acceso Internet.
Enlaces de comunicación bidireccionales entre el SGBD y el SGBD móvil
3. FUNCIONALIDADES DE LOS SGBD
MÓVILES
Comunicarse con el servidor centralizado de base de datos utilizando técnicas tales como la
comunicación inalámbrica o el acceso a Internet.
Replicar los datos en el servidor de base de datos centralizado y en el dispositivo móvil.
Sincronizar los datos del servidor de base de datos centralizado y del dispositivo móvil.
Capturar datos de varias fuentes, como por ejemplo, de Internet.
Gestionar los datos en el dispositivo móvil.
Analizar los datos almacenados en un dispositivo móvil.
Crear aplicaciones móviles personalizadas.
SMBD Moviles
Ademas de las características de un SGDB tradicional debe incluir y/o permitir:
>Comunicación con el servidor centralizado de BD usando redes inalámbricas y acceso a
Internet.
>Replicar los datos en servidor central y móvil.
>Sincronizacion de datos entre servidor y móvil.
>Captura de datos de varias fuentes (ej:internet).
>Gestionar datos en el dispositivo móvil.
>Analizar los datos almacenados en móvil.
>Crear aplicaciones móviles personalizadas.
5. SQL
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los
sistemas relacionales y permite así gran variedad de operaciones.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte
base teórica y su orientación al manejo de conjuntos de registros —y no a registros
individuales— permite una alta productividad en codificación y la orientación a objetos. De
esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en
un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes
características:
>Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición
de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de
relación.
>Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de
consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.
>Integridad: El LDD de SQL incluye comandos para especificar las restricciones de
integridad que deben cumplir los datos almacenados en la base de datos.
>Definición de vistas: El LDD incluye comandos para definir las vistas.
>Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de
una transacción.
>SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de
SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
>Autorización: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.
6. Tipos de Datos
Algunos de los tipos de datos básicos de SQL son:
>Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día.
>Time: La hora del día en horas minutos segundos (el valor predeterminado es 0).
>Timestamp: la combinación de Date yTime.
Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden
alfabético:
>DB2
>Firebird
>HSQL
>Informix
>Interbase
>MariaDB
>Microsoft SQL Server
>MySQL
>Oracle
>PostgreSQL
>PervasiveSQL
>SQLite
>Sybase ASE
7. NoSQL
Las bases de datos NoSQL son sistemas de almacenamiento de información que
no cumplen con el esquema entidad–relación.Tampoco utilizan una estructura de
datos en forma de tabla donde se van almacenando los datos sino que para el
almacenamiento hacen uso de otros formatos como clave–valor, mapeo de
columnas o grafos (ver epígrafe ‘Tipos de bases de datos NoSQL’).
Ventajas de los sistemas NoSQL
Esta forma de almacenar la información ofrece ciertas ventajas sobre los modelos
relacionales. Entre las ventajas más significativas podemos destacar:
Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia de los
sistemas basados en SQL, no requieren de apenas computación, por lo que se
pueden montar en máquinas de un coste más reducido.
Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas
simplemente se consigue añadiendo más nodos, con la única operación de indicar
al sistema cuáles son los nodos que están disponibles.
Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una
estructura distribuida, en muchos casos mediante tablas Hash.
No genera cuellos de botella: El principal problema de los sistemas SQL es que
necesitan transcribir cada sentencia para poder ser ejecutada, y cada sentencia
compleja requiere además de un nivel de ejecución aún más complejo, lo que
constituye un punto de entrada en común, que ante muchas peticiones puede
ralentizar el sistema.
8. Principales diferencias con las
bases de datos SQL
Algunas de las diferencias más destacables que nos podemos encontrar
entre los sistemas NoSQL y los sistemas SQL están:
No utilizan SQL como lenguaje de consultas. La mayoría de las bases de
datos NoSQL evitan utilizar este tipo de lenguaje o lo utilizan como un
lenguaje de apoyo. Por poner algunos ejemplos, Cassandra utiliza el
lenguaje CQL, MongoDB utiliza JSON o BigTable hace uso de GQL.
No utilizan estructuras fijas como tablas para el almacenamiento de los
datos. Permiten hacer uso de otros tipos de modelos de almacenamiento
de información como sistemas de clave–valor, objetos o grafos.
No suelen permitir operaciones JOIN. Al disponer de un volumen de
datos tan extremadamente grande suele resultar deseable evitar los JOIN.
Esto se debe a que, cuando la operación no es la búsqueda de una clave, la
sobrecarga puede llegar a ser muy costosa. Las soluciones más directas
consisten en desnormalizar los datos, o bien realizar el JOIN mediante
software, en la capa de aplicación.
Arquitectura distribuida. Las bases de datos relacionales suelen estar
centralizadas en una única máquina o bien en una estructura máster–
esclavo, sin embargo en los casos NoSQL la información puede estar
compartida en varias máquinas mediante mecanismos de tablas Hash
distribuidas.
9. Grandes compañías que utilizan
este tipo de bases de datos
Son muchas las grandes empresas que hacen uso de
este tipo de bases de datos no relacionales, como:
Cassandra: Facebook,Twitter…
HBase:Yahoo, Adobe…
Redis: Flickr, Instagram, Github…
Neo4j: Infojobs…
MongoDB: FourSquare, SourceForge,CERN…
10. La diferencia "existencial" entre SQL y NoSQL es que resuelven
escenarios completamente diferentes y EXCLUYENTES (para lo que
es ideal SQL no lo es NoSQL y al revés).
Una forma de entender las diferencias podría ser mediante
contrastes:
* SQL permite combinar de forma eficiente diferentes tablas para
extraer información relacionada (ej. aquellos Empleados cuya
Empresa tenga más de x Pedidos), mientras que NoSQL no lo
permite o de forma MUY limitada.
* NoSQL permite fácilmente distribuir grandes cantidades de
información, mientras que distribuir bases de datos relacionales
(SQL) requiere una cuidadosa planificación (ej. segregar el
subsistema de consultas de la parte transaccional de negocio).
* SQL permite gestionar los datos junto con las relaciones
existentes entre ellos (ej. es común implementar ciertas reglas de
negocio mediante herramientas de SQL como restricciones,
triggers, claves ajenas, etc...), en NoSQL no suele (no puede) haber
este tipo de utilidades.
* NoSQL permite un escalado horizontal (por la propia capacidad
de distribución) sin problemas, mientras que escalar SQL (sino tiene
un diseño distribuido) es muy complicado (o imposible), escalar SQL
suele implicar comprar un servidor más potente.