Sei sulla pagina 1di 15

UNIVERSIAD NACIONAL EXPERIMENTAL DE

G UAYANA
VICERECTORADO ACADEMICO
COORDINACIN GENERAL DE PREGRADO
COORDINACIN DE INGENEIERA INFORMTICA
BASES DE DATOS 2

JSON

AUTORES
HAROLD, BERNAOLA
C.I.24702391

CONTENIDO

GESTIN DE BASES DE
D AT O S E N J S O N
1.1. Definicin de JSON
Acrnimo de JavaScript Object Notation, es un formato ligero para
el intercambio de datos. JSON es un subconjunto de la notacin literal
de objetos de Java Script que no requiere el uso de XML.
1.2. Usos de JSON
Bsicamente JSON describe los datos con una sintaxis dedicada
que se usa para identificar y gestionar los datos. JSON naci como una
alternativa a XML, el fcil uso en javascript ha generado un gran
numero de seguidores de esta alternativa. Una de las mayores ventajas
que tiene el uso de JSON es que puede ser ledo por cualquier
lenguaje de programacin. Por lo tanto, puede ser usado para el
intercambio de informacin entre distintas tecnologas.
1.3. Caractersticas
JSON est constitudo por dos estructuras:

Una coleccin de pares de nombre/valor. En varios lenguajes esto es


conocido como un objeto, registro, estructura, diccionario, tabla hash,
lista de claves o un arreglo asociativo.

Una lista ordenada de valores. En la mayora de los lenguajes, esto se


implementa como arreglos, vectores, listas o sequencias.

1.4. Sintaxis de JSON


La sintaxis de JSON realmente no es nada ms que la mezcla de
literales de objeto y matrices para almacenar datos. JSON representa

solamente datos ->No incluye el concepto de variables, asignaciones o


igualdades.

1.5. Tipos de Datos


Un objeto es un conjunto desordenado de pares nombre/valor. Un
objeto comienza con { (llave de apertura) y termine con } (llave de
cierre). Cada nombre es seguido por : (dos puntos) y los pares
nombre/valor estn separados por , (coma).
Un arreglo es una coleccin de valores. Un arreglo comienza con
[ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se
separan por , (coma)
Un valor puede ser una cadena de caracteres con comillas
dobles, o un nmero, o true o false o null, o un objeto o un arreglo. Estas
estructuras pueden anidarse.
Una cadena de caracteres es una coleccin de cero o ms
caracteres Unicode, encerrados entre comillas dobles, usando barras
divisorias invertidas como escape. Un carcter est representado por
una cadena de caracteres de un nico carcter. Una cadena de
carateres es parecida a una cadena de caracteres C o Java
Un nmero es similar a un nmero C o Java, excepto que no se
usan los formatos octales y hexadecimales.
1.6. Creando Objetos en JSON
1.6.1. Creacin de un objeto vaco
Estos elementos se especifican utilizando corchetes ( [ y ] ) para
encerrar listas de valores.

1.6.2. Creacin de un objeto con new


Los literales de objeto se utilizan para almacenar informacin en
parejas nombre-valor para crear un objeto, Un literal de objeto se
define mediante llaves ({ y }) Dentro de estas, podemos colocar
cualquier nmero de parejas nombre-valor, definida mediante una
cadena, un smbolo de dos puntos y el valor. Cada pareja nombre-valor
deben estar separadas por coma.
2

1.7. Esquema
El esquema JSON puede permitir que en una misma ubicacin se
den varios tipos diferentes. Cuando esto ocurra, el componente de
MapForce presentar nodos distintos para todos los tipos bsicos que
puedan darse en esa ubicacin.
1.8. Comparativo entre JSON y XML
Veamos caractersticas importantes que distinguen a JSON frente al
formato XML:
1. JSON soporta dos tipos de estructuras, una de ellas son objetos que
contienen una coleccin de pares llave-valor y el otro tipo se trata de
arrays de valores. Esto proporciona una gran sencillez en las
estructuras.
2. JSON no tiene espacios de nombres, cada objeto es un conjunto de
claves independientes de cualquier otro objeto.
3. JSON no necesita ser extensible por que es flexible por s solo. Puede
representar cualquier estructura de datos pudiendo aadir nuevos
campos con total facilidad.
4. JSON es mucho mas simple que XML, el cual proporciona pesadas
tecnologas que le avalan (Scheme, XSLT, XPath).
5. JSON es optimista y no requiere de este tipo de tecnologas, confa en el
desarrollador.

1.9. Ejemplos
1.9.1. JSON con PHP
En cualquier instalacin estndar de PHP, desde la versin 5.2.0, se
incorpora de forma predeterminada la extensin JSON y es muy fcil
2

pasar los datos de un array a notacin en JSON. Aunque si no se


cuenta con esta extensin se puede construir la notacin JSON de
forma manual, es recomendable tenerla si vas a trabajar de forma
frecuente con datos en formato JSON.
Entre las funciones de la extensin JSON para PHP que nos
interesan, la ms imprescindible es la funcin json_encode(). Con esta
funcin podemos pasar nuestros datos a formado JSON rpida y
fcilmente. Slo es necesario tener los datos en forma de array u
objeto. Por ejemplo:
<?php
$jsondata = array();
if( isset($_GET['param']) ) {
if( $_GET['param'] == 'valor' ) {
$jsondata['success'] = true;
$jsondata['message'] = 'Hola! El valor recibido es
correcto.';
} else {
$jsondata['success'] = false;
$jsondata['message'] = 'Hola! El valor recibido no es
correcto.';
}
//Aunque el content-type no sea un problema en la mayora de
casos, es recomendable especificarlo
header('Content-type: application/json; charset=utf-8');
echo json_encode($jsondata);
exit();
}
?>

1.9.2. JSON con JAVA


Para leer el fichero, escribimos una programa java lee_json,
en el que utilizamos la clase com.google.gson.JsonParser. Esta
clase lee un fichero y devuelve un objeto del tipo
com.google.gsonJsonElement:
import
import
import
import
import
import
import

java.io.FileReader;
com.google.gson.JsonParser;
com.google.gson.JsonElement;
com.google.gson.JsonObject;
com.google.gson.JsonArray;
com.google.gson.JsonPrimitive;
java.util.Map.Entry;

public class lee_json {


public static void main(String args[]) throws
java.io.IOException {
JsonParser parser = new JsonParser();
FileReader fr = new FileReader("datos.json");
JsonElement datos = parser.parse(fr);
dumpJSONElement(datos);
}
public static void dumpJSONElement(JsonElement elemento) {
...
}
}

1.9.3. Ejemplo de JSON en bases de datos


<?php
$server = "localhost";
$user = "root";
$pass = "";
$bd = "demo_json";
//Creamos la conexin
$conexion = mysqli_connect($server, $user, $pass,$bd)
or die("Ha sucedido un error inexperado en la conexion de la base de datos");
//generamos la consulta
$sql = "SELECT * FROM clientes";
mysqli_set_charset($conexion, "utf8"); //formato de datos utf8
if(!$result = mysqli_query($conexion, $sql)) die();
$clientes = array(); //creamos un array
while($row = mysqli_fetch_array($result))
{
$id=$row['id'];
$nombre=$row['nombre'];
$edad=$row['edad'];
$genero=$row['genero'];
$email=$row['email'];
$localidad=$row['localidad'];
$telefono=$row['telefono'];
$clientes[] = array('id'=> $id, 'nombre'=> $nombre, 'edad'=> $edad, 'genero'=>
$genero,
'email'=> $email, 'localidad'=> $localidad, 'telefono'=> $telefono);
}
2

//desconectamos la base de datos


$close = mysqli_close($conexion)
or die("Ha sucedido un error inexperado en la desconexion de la base de datos");
//Creamos el JSON
$json_string = json_encode($clientes);
echo $json_string;
//Si queremos crear un archivo json, sera de esta forma:
/*
$file = 'clientes.json';
file_put_contents($file, $json_string);
*/
?>
2. Bases de datos Distribuidas
2.1. Concepto
Es un conjunto de mltiples bases de datos lgicamente
relacionadas las cuales se encuentran distribuidas en diferentes
espacios lgicos (pej. un servidor corriendo 2 mquinas virtuales) e
interconectados por una red de comunicaciones.
2.2. Uso
Un usuario en cualquier sitio puede acceder los datos en cualquier
parte de la red exactamente como si estos fueran accedidos de forma
local.
2.3. Arquitectura y modelos distribuidos
Una de las decisiones ms importantes que el diseador de bases
de datos distribuidas debe tomar es el posicionamiento de la data en el
sistema y el esquema bajo el cul lo desea hacer. Para esto existen
cuatro alternativas principales: centralizada, replicada, fragmentada, e
hbrida.
2.4. Replicacin y Fragmentacin
Fragmentada: Este modelo consiste en que solo hay una copia de
cada elemento, pero la informacin est distribuida a travs de los
nodos. En cada nodo se aloja uno o ms fragmentos disjuntos de la
base de datos. Como los fragmentos no se replican esto disminuye el

costo de almacenamiento, pero tambin sacrifica la disponibilidad y


fiabilidad de los datos
Replicacin: El esquema de BDD de replicacin consiste en que cada
nodo debe tener su copia completa de la base de datos. Es fcil ver que
este esquema tiene un alto costo en el almacenamiento de la
informacin. Debido a que la actualizacin de los datos debe ser
realizada en todas las copias, tambin tiene un alto costo de escritura,
pero todo esto vale la pena si tenemos un sistema en el que se va a
escribir pocas veces y leer muchas, y dnde la disponibilidad y fiabilidad
de los datos sea de mxima importancia.
2.5. Modelos y procesamiento de consultas
Sistema manejador de base de datos distribuida (DDBMS): Este sistema
est formado por las transacciones y los administradores de la base de
datos distribuidos. Un DDBMS implica un conjunto de programas que
operan

en

diversas

computadoras,

estos

programas

pueden

ser

subsistemas de un nico DDBMS de un fabricante o podra consistir de una


coleccin de programas de diferentes fuentes.
Administrador de transacciones distribuidas (DTM): Este es un programa
que recibe las solicitudes de procesamiento de los programas de consulta o
transacciones y las traduce en acciones para los administradores de la base
de datos. Los DTM se encargan de coordinar y controlar estas acciones.
Este DTM puede ser propietario o desarrollado en casa.
El manejador de transacciones es el encargado de definir la estructura
de las transacciones, mantener la consistencia en la base de datos cuando
se ejecuta una transaccin o se cancela la ejecucin de una, mantener
protocolos de fiabilidad, implementar algoritmos para el control de la
concurrencia

sincronizar

las

transacciones

que

se

ejecutan

simultneamente.
El manejador recibe solicitudes de procesamiento de transacciones y las
traduce en acciones para el calendarizador.

La operacin COMMIT seala el trmino exitoso de la transaccin: le


dice al manejador de transacciones que se ha finalizado con xito una
unidad lgica de trabajo, que la base de datos esta (o debera estar) de
nuevo en un estado consistente, y que se pueden hacer permanentes todas
las modificaciones efectuadas por esa unidad de trabajo.
La operacin ROLLBACK, en cambio, seala el trmino no exitoso de la
transaccin: le dice al manejador de transacciones que algo sali mal, que
la base de datos podra estar en un estado inconsistente y que todas las
modificaciones efectuadas hasta el momento por la unidad lgica de trabajo
deben retroceder o anularse.
Sistema manejador de base de datos (DBMS): Es un programa que procesa
cierta porcin de la base de datos distribuida. Se encarga de recuperar y
actualizar datos del usuario y generales de acuerdo con los comandos
recibidos de los DTM.
2.6. Modelo de concurrencia
El control de concurrencia y deteccin y manejo de bloqueos es un
rea de mucho estudio en las bases de datos distribuidas, a pesar de
esto no hay ningn algoritmo aceptado para solucionar el problema.
Esto se debe a varios factores de los cuales se consideran a los
siguientes tres los ms determinantes:
1. El dato puede estar duplicada en un BDD, por tanto, el manejador de la
BDD es responsable de localizar y actualizar la data duplicada.
2. Si un nodo falla o la comunicacin con un nodo falla mientras se realiza
una actualizacin, el manejador debe asegurarse de que los efectos se
reflejen una vez el nodo se recupere del fallo.
3. La sincronizacin de transacciones en sitios o nodos mltiples es difcil
ya que los nodos no pueden obtener informacin inmediata de las
acciones realizadas en otros nodos concurrentemente.

Para el control de bloqueos mutuos no se ha desarrollado ninguna


solucin viable y la forma ms simple y que la mayora de productos
utilizan es la implementacin de un tiempo mximo de espera en las
peticiones de bloqueos.

3. Almacenes de Datos (Data Warehouse)


3.1. Concepto
Un Datawarehouse es una base de datos corporativa que se
caracteriza por integrar y depurar informacin de una o ms fuentes
distintas, para luego procesarla permitiendo su anlisis desde infinidad
de pespectivas y con grandes velocidades de respuesta.
3.2. Uso
Desde el punto de vista tcnico, para implantar una solucin
completa y fiable de Business Intelligence.
La ventaja principal de este tipo de bases de datos radica en las
estructuras en las que se almacena la informacin (modelos de tablas en
estrella, en copo de nieve, cubos relacionales... etc). Este tipo de
persistencia de la informacin es homognea y fiable, y permite la
consulta y el tratamiento jerarquizado de la misma (siempre en un
entorno diferente a los sistemas operacionales).
3.3. Enfoques o mtodos
Heterogneas

de

integracin

de

Bases

de

datos

3.3.1. Ventajas y desventaja de cada enfoque

Traducci Enlazado
n de datos
de

METODO

CARACATERISTICA

VENTAJAS

Las entidades de
informacin
(sitios web,
instancias de una
BD entre otros)
Los datos
provenientes de
distintas bases de
datos se
transforman a un

Sencillez de uso,
ya que el usuario
slo ha de
utilizar

DESVENTAJAS

La mayora de los
enlaces son
unidireccionales
Las consultas estn
limitadas o predefinidas
Alto rendimiento Cuando los datos de la
y
fuente se modifican, es
control de los
necesario actualizar el
datos
repositorio centralizado
(seguridad,
Las traducciones

EJEMPLOS
Sistemas basados
en
hipertexto como
Internet
Bases de datos
Almacenes de
datos o
data
warehouses
(Kimball y Ross,

Esquemas
Esquemas
conceptual
Mediacin
conceptuales
es
pura
mltiples

Los mediadores y
envoltorios se
utilizan para
ejecutar las
consultas de los
Se utiliza una sola
conceptualizacin
global que
contiene
virtualmente toda
Distintos
esquemas virtuales
describen la
semntica de cada
BD integrada en el
sistema

Enfoque
hbrido

Se emplea un
vocabulario comn
para construir
ontologas que
actan como

Contienen la
Este enfoque es poco
informacin
intuitivo para los
necesaria para
usuarios ya que la
recuperar la
informacin de
informacin y
integracin est
Los resultados se Cualquier cambio en el
devuelven al
sistema (por ejemplo, la
usuario a nivel
inclusin o borrado de
conceptual, es
una BD) implica un
decir, como
cambio en el modelo
Resuelve el
No se puede asumir que
principal
esquemas individuales
problema
compartan el mismo
del enfoque
vocabulario
conceptual
Es difcil encontrar
simple
conceptos
Las consultas
semnticamente
similares
o equivalentes
Elpueden
uso de
Los esquemas
ontologas hace
conceptuales deben
ms intuitivo
desarrollarse utilizando
para
una misma ontologa de
los usuarios el

BACIIS (Miled et
al.,
2002)
TSIMMIS
(Chawathe
et al., 1994), SIMS
(Arens et al.,
1998),
OBSERVER
(Mena
et al., 2000)

MECOTA (Wache
et
al., 1999),
BUSTER
(Stuckenschmidt et

3.4. Funciones de un data warehouse


En un almacn de datos lo que se quiere es contener datos que
son necesarios o tiles para una organizacin, es decir, que se utiliza
como un repositorio de datos para posteriormente transformarlos en
informacin til para el usuario. Un almacn de datos debe entregar la
informacin correcta a la gente indicada en el momento ptimo y en el
formato adecuado
3.5. Sistemas OLAP y OLTP
3.5.1. Concepto y uso de cada uno
OLTP - On-Line Transactional Processing:
Los sistemas OLTP son bases de datos orientadas al procesamiento
de transacciones. Una transaccin genera un proceso atmico (que
debe ser validado con un commit, o invalidado con un rollback), y que
puede involucrar operaciones de insercin, modificacin y borrado de
datos. El proceso transaccional es tpico de las bases de datos
operacionales.

OLAP - On-Line Analytical Processing:


Los sistemas OLAP son bases de datos orientadas al
procesamiento analtico. Este anlisis suele implicar, generalmente, la
lectura de grandes cantidades de datos para llegar a extraer algn tipo
de informacin til: tendencias de ventas, patrones de comportamiento
de los consumidores, elaboracin de informes complejos etc. Este
sistema es tpico de los datamarts.
3.5.2. Ventajas y desventajas

3.5.3. Data Warehouse OLAP u OLTP? Explique

3.5.4. Tipos de servidores OLAP

3.5.5. Operaciones OLAP y funcionamiento de cada una

3.6. Esquemas
3.6.1. Concepto

3.6.2. Tipos

3.7. Particin
3.7.1. Concepto

3.7.2. Uso

3.7.3. Beneficios y/o importancia

3.8. Metadata
3.8.1. Concepto

3.8.2. Categoras

3.8.3. Rol de los metadatos

3.9. Data Mart


3.9.1. Concepto

3.9.2. Uso

3.9.3. Importancia de los Data Mart

Potrebbero piacerti anche