Json

UNIVERSIAD NACIONAL EXPERIMENTAL DE G UAYANA VICERECTORADO ACADEMICO COORDINACIÓN GENERAL DE PREGRADO COORDINACIÓN DE IN

Views 53 Downloads 1 File size 334KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIAD NACIONAL EXPERIMENTAL DE G UAYANA VICERECTORADO ACADEMICO COORDINACIÓN GENERAL DE PREGRADO COORDINACIÓN DE INGENEIERÍA INFORMÁTICA BASES DE DATOS 2

JSON

AUTORES HAROLD, BERNAOLA C.I.24702391

CONTENIDO

2

GESTIÓN DE BASES DE D AT O S E N J S O N 1.1. Definición de JSON Acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de Java Script que no requiere el uso de XML. 1.2. Usos de JSON Básicamente 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 fácil 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 leído por cualquier lenguaje de programación. Por lo tanto, puede ser usado para el intercambio de información entre distintas tecnologías. 1.3. Características JSON está constituído por dos estructuras: 

Una colección 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 mayoría 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 más que la mezcla de literales de objeto y matrices para almacenar datos. JSON representa

2

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 están separados por , (coma). Un arreglo es una colección 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 número, o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse. Una cadena de caracteres es una colección de cero o más caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carácter está representado por una cadena de caracteres de un único carácter. Una cadena de carateres es parecida a una cadena de caracteres C o Java Un número es similar a un número C o Java, excepto que no se usan los formatos octales y hexadecimales. 1.6. Creando Objetos en JSON 1.6.1. Creación de un objeto vacío Estos elementos se especifican utilizando corchetes ( [ y ] ) para encerrar listas de valores.

1.6.2. Creación de un objeto con new Los literales de objeto se utilizan para almacenar información en parejas nombre-valor para crear un objeto, Un literal de objeto se define mediante llaves ({ y }) Dentro de estas, podemos colocar cualquier número de parejas nombre-valor, definida mediante una cadena, un símbolo 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 ubicación se den varios tipos diferentes. Cuando esto ocurra, el componente de MapForce presentará nodos distintos para todos los tipos básicos que puedan darse en esa ubicación. 1.8. Comparativo entre JSON y XML Veamos características importantes que distinguen a JSON frente al formato XML: 1. JSON soporta dos tipos de estructuras, una de ellas son objetos que contienen una colección 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 añadir nuevos campos con total facilidad. 4. JSON es mucho mas simple que XML, el cual proporciona pesadas tecnologías que le avalan (Scheme, XSLT, XPath). 5. JSON es optimista y no requiere de este tipo de tecnologías, confía en el desarrollador.

1.9. Ejemplos 1.9.1. JSON con PHP En cualquier instalación estándar de PHP, desde la versión 5.2.0, se incorpora de forma predeterminada la extensión JSON y es muy fácil 2

pasar los datos de un array a notación en JSON. Aunque si no se cuenta con esta extensión se puede construir la notación JSON de forma manual, es recomendable tenerla si vas a trabajar de forma frecuente con datos en formato JSON. Entre las funciones de la extensión JSON para PHP que nos interesan, la más imprescindible es la función json_encode(). Con esta función podemos pasar nuestros datos a formado JSON rápida y fácilmente. Sólo es necesario tener los datos en forma de array u objeto. Por ejemplo:

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;

2

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

2. Bases de datos Distribuidas 2.1. Concepto Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 máquinas 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 más importantes que el diseñador de bases de datos distribuidas debe tomar es el posicionamiento de la data en el sistema y el esquema bajo el cuál lo desea hacer. Para esto existen cuatro alternativas principales: centralizada, replicada, fragmentada, e híbrida. 2.4. Replicación y Fragmentación Fragmentada: 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

2

costo de almacenamiento, pero también sacrifica la disponibilidad y fiabilidad de los datos Replicación: El esquema de BDD de replicación consiste en que cada nodo debe tener su copia completa de la base de datos. Es fácil ver que este esquema tiene un alto costo en el almacenamiento de la información. Debido a que la actualización de los datos debe ser realizada en todas las copias, también 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 dónde la disponibilidad y fiabilidad de los datos sea de máxima 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 podría consistir de una colección 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 transacción o se cancela la ejecución de una, mantener protocolos de fiabilidad, implementar algoritmos para el control de la concurrencia

y

sincronizar

las

transacciones

que

se

ejecutan

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

2

La operación COMMIT señala el término exitoso de la transacción: le dice al manejador de transacciones que se ha finalizado con éxito una unidad lógica de trabajo, que la base de datos esta (o debería estar) de nuevo en un estado consistente, y que se pueden hacer permanentes todas las modificaciones efectuadas por esa unidad de trabajo. La operación ROLLBACK, en cambio, señala el término no exitoso de la transacción: le dice al manejador de transacciones que algo salió mal, que la base de datos podría estar en un estado inconsistente y que todas las modificaciones efectuadas hasta el momento por la unidad lógica de trabajo deben retroceder o anularse. Sistema manejador de base de datos (DBMS): Es un programa que procesa cierta porción 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 detección y manejo de bloqueos es un área de mucho estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar el problema. Esto se debe a varios factores de los cuales se consideran a los siguientes tres los más 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 comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo. 3. La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente.

2

Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la forma más simple y que la mayoría de productos utilizan es la implementación de un tiempo máximo 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 información de una o más fuentes distintas, para luego procesarla permitiendo su análisis desde infinidad de pespectivas y con grandes velocidades de respuesta. 3.2. Uso Desde el punto de vista técnico, para implantar una solución 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 información (modelos de tablas en estrella, en copo de nieve, cubos relacionales... etc). Este tipo de persistencia de la información es homogénea 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 métodos Heterogéneas

de

integración

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 información (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 sólo ha de utilizar

DESVENTAJAS

La mayoría de los enlaces son unidireccionales Las consultas están 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

2

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

Esquemas Esquemas conceptual Mediación conceptuales es pura múltiples

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

Enfoque híbrido

Se emplea un vocabulario común para construir ontologías que actúan como

Contienen la Este enfoque es poco información intuitivo para los necesaria para usuarios ya que la recuperar la información de información y integración está Los resultados se Cualquier cambio en el devuelven al sistema (por ejemplo, la usuario a nivel inclusión 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 difícil encontrar simple conceptos Las consultas semánticamente similares o equivalentes Elpueden uso de Los esquemas ontologías hace conceptuales deben más intuitivo desarrollarse utilizando para una misma ontología 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 almacén de datos lo que se quiere es contener datos que son necesarios o útiles para una organización, es decir, que se utiliza como un repositorio de datos para posteriormente transformarlos en información útil para el usuario. Un almacén de datos debe entregar la información 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 transacción genera un proceso atómico (que debe ser validado con un commit, o invalidado con un rollback), y que puede involucrar operaciones de inserción, modificación y borrado de datos. El proceso transaccional es típico de las bases de datos operacionales.

2

OLAP - On-Line Analytical Processing: Los sistemas OLAP son bases de datos orientadas al procesamiento analítico. Este análisis suele implicar, generalmente, la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones de comportamiento de los consumidores, elaboración de informes complejos… etc. Este sistema es típico 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

2

3.6. Esquemas 3.6.1. Concepto

3.6.2. Tipos

3.7. Partición 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. Categorías

3.8.3. Rol de los metadatos

3.9. Data Mart 3.9.1. Concepto

3.9.2. Uso

2

3.9.3. Importancia de los Data Mart

2