Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
GROHMANN
Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera en Informtica y
Sistemas
SQL y NOSQL
Presentada por:
Jhira Berthzal Roque Crdenas
Roco Elizabeth Paria Paredes
Grunddy Kenyu Yaipen Chiro
William Rufino Ramos Mendoza
Docente:
Ing. Gianfranco Mlaga Tejada
Ing. Porfirio Chata Ramrez
TACNA - PER
Mayo del 2016
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
TABLA DE CONTENIDO
INTRODUCCIN_______________________________________________________2
OBJETIVOS___________________________________________________________3
PROBLEMTICA_______________________________________________________4
Por qu surge la pregunta: cul es el mejor??_____________________________4
CAPTULO 1. MARCO TERICO__________________________________________6
1.1. Base de Datos______________________________________________________6
1.2. Modelos de Base de Datos_____________________________________________6
1.2.1. Modelo Relacional________________________________________________7
1.2.2. Modelo Entidad-Relacin___________________________________________7
CAPTULO 2. SQL______________________________________________________9
CAPTULO 3. NOSQL___________________________________________________12
3.1. Principales Caractersticas___________________________________________14
3.2. Retos de seguridad en bases de datos NoSQL_____________________________15
3.3. Punto Dbil______________________________________________________17
CAPTULO 4. SQl vs NOSQL_____________________________________________18
4.1. No relacional vs. Relacional__________________________________________20
4.2. Distribuida vs. Centralizada__________________________________________21
4.3. Cdigo abierto vs. Cerrado___________________________________________21
4.4. Horizontalmente escalable vs. Verticalmente______________________________22
CAPTULO 4. RECOMENDACIONES______________________________________23
Cundo usar SQL?____________________________________________________23
Cundo usar NoSQL?__________________________________________________24
CAPTULO 5. PRUEBA__________________________________________________25
CONCLUSIONES______________________________________________________28
BIBLIOGRAFA_______________________________________________________29
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
INTRODUCCIN
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
OBJETIVOS
GENERALES:
ESPECFICOS:
NOSQL.
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
PROBLEMTICA
Por qu surge la pregunta: cul es el mejor??
Es difcil dar una respuesta inmediata, Hacer y darnos cuenta que en realidad lo que
estn realizando es una comparacin de ambas tecnologas y colocando en una balanza
lo que pueden y no pueden hacer, pero nunca terminan decidiendo lo que realmente
importa: Cul es el mejor?.
ste patrn es normal y a veces muy til, permitiendo al lector sacar sus propias
conclusiones y dejando que l mismo tome una decisin o postura al respecto, pero al
tratar con tecnologas como SQL (que son de factor en un desarrollo actual), y NoSQL
que desde su nombre es algo confuso, como explica Martin Fowler debemos tener
muchsimo cuidado a la hora de realizar comparaciones, no slo porque sean diferentes,
sino por la educacin que se ha impartido a travs de los aos en todos los
desarrolladores y estudiosos del campo de la informtica.
Ahora bien, partiendo del hecho que SQL es y ha sido considerado un estndar defacto
en la manera en que se deben tratar y administrar todos los datos de una aplicacin,
podemos comenzar a dar un bosquejo del porqu surge la pregunta que tenemos en
cuestin: El miedo a lo desconocido. As, tal cual.
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Entidad: Objeto del mundo real distinguible de otros objetos. Una entidad se
describe usando un conjunto de atributos.
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
CAPTULO 2. SQL
SQL fue desarrollado a partir de las ideas del Dr. Edgar F. Codd, de IBM, el cual
colabor en el desarrollo del modelo relacional cuando trabajaba en los laboratorios de
investigacin de IBM en los aos 70. Una primera versin completa estuvo lista a
mediados de los 70 comenzando as el trabajo en sistemas multi-tabla.
Las versiones multiusuario fueron probadas por los usuarios en 1978 y 1979, a la par
que el lenguaje SQL haba sido estandarizado. A partir de ese momento IBM lanz el
desarrollo de una versin de produccin de System R., conocido como SQL/DS, y
posteriormente como Database 2 (DB2).
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
de Datos.
Manipulacin de Datos.
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
interno de la base de datos. Por este motivo, estas sentencias sern utilizadas
normalmente por el administrador de la base de datos.
Ejercer un control sobre los datos tal como la asignacin de privilegios de acceso a los
datos (GRANT/REVOKE)
La gestin de transacciones (COMMIT/TROLLBACK)
Una transaccin se puede definir como un conjunto de acciones que se tienen que
realizar todas o ninguna para preservar la integridad de la base de datos.
Las instrucciones que gestionan las autorizaciones sern utilizadas normalmente por el
administrador mientras que las otras, referentes a proceso de transacciones sern
utilizadas tambin por los programadores. No todos los sistemas disponen de ellas.
El DML se compone de las instrucciones para el manejo de los datos, para insertar
nuevos datos, modificar datos existentes, para eliminar datos y la ms utilizada, para
recuperar datos de la base de datos. Una sola instruccin de recuperacin de datos es tan
potente que permite recuperar datos de varias tablas a la vez, realizar clculos sobre
estos datos y obtener resmenes.
El DML interacta con el nivel externo de la base de datos, por lo que sus instrucciones
son muy parecidas, por no decir casi idnticas, de un sistema a otro, el usuario solo
indica lo que lo que quiere recuperar no cmo se tiene que recuperar, no influye el cmo
estn almacenados los datos.
11
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
CAPTULO 3. NOSQL
NoSQL es el acrnimo de No solo SQL. Con los sistemas NoSQL se busca una
forma de almacenamiento de la informacin ms gil y dinmica. Se utiliza una
escalabilidad horizontal donde se agregan ms nodos a un sistema. Se realiza una
desnormalizacin del modelo, no se impone la estructura relacional de tablas y se
pierden determinadas caractersticas (transacciones de operaciones entre colecciones
de datos, consultas anidadas, etc.). (Ruano, 2014)
El trmino fue acuado por Calor Strozzi en 1998 y resucitado ms tarde por Eric Evans
(un empleado de Rackspace,) en 2009. ste ltimo, adems, sugiri que se denominaran
a estas bases de datos como Big Data. La contribucin ms grande al desarrollo de los
productos NOSQL fueron la serie de trabajos publicados por Google en 2003, 2004 y
2006 sobre cmo construir una infraestructura escalable para el procesamiento paralelo
de grandes (enormes) cantidades de datos. Ms tarde, en 2007 Amazon pblico su
historia sobre Dynamo el almacenamiento clave/valor de alta disponibilidad.
12
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Basic Availble: el almacn funciona la mayora del tiempo incluso ante fallos
gracias al almacenamiento distribuido y replicado
Soft state: Los almacenes no tienen por qu ser consistentes ni sus rplicas en
todo momento.
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Este modelo de bases de datos han hecho su aparicin para desbancar al modelo
imperante en IT, las bases de datos relaciones. NoSQL es idnea para muchos tipos de
aplicaciones que hasta ahora se implementaban sobre el modelo relacional. NoSQL
aporta una serie de caractersticas nuevas que permiten cubrir carencias del modelo
relacional. No es que sea mejor o peor, sencillamente permite hacer las cosas de otra
manera. (Mora, J. J.)
14
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Al no tener una definicin de atributos fija, cada uno de los registros puede
almacenar diferente informacin cada vez, adaptndose a cada uno de los casos
posibles.
Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atencin a las
debilidades genricas de estos modelos y, en cada caso particular aplicar las medidas
necesarias en cada implementacin particular. Comparando con las bases de datos
relacionales podemos resumir los siguientes campos de seguridad:
Autenticacin
La fortaleza de la autenticacin es uno de los campos de batalla donde muchas
implementaciones NoSQL muestran debilidad. Es comn encontrar que la las
bases de datos NoSQL incorporen credenciales por defecto, o incluso sin
autenticacin necesaria o deshabilitada (por ejemplo, Redis). En muchos casos
se basan en entornos de confianza en lugar de autenticacin de usuario.
15
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Auditora de datos
La mayora de bases de datos NoSQL carecen de mecanismos propios y robustos
de auditora de datos, de gran peso a la hora de detectar posibles ataques
mediante la observacin de eventos sobre registros concretos tal y como se hace
en bases de datos relacionales.
16
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
NoSQL est cada vez ms presente en las tecnologas actuales de bases de datos y
afronta grandes retos para lidiar con los problemas de seguridad que tarde o temprano
deber reforzar.
La consistencia de los datos es otro tema y para nada menor. De hecho, uno de los
puntos que ms debates concita en torno a los sistemas NoSQL, es que mientras ofrecen
la gestin de un mayor volumen y variedad de datos con mayor agilidad, no
necesariamente brindan garantas de la fiabilidad de los datos. Puntualmente, su mayor
desventaja se presenta en que al priorizar la disponibilidad y la inmediatez de los datos
para el usuario, trabajan con datos distribuidos y a veces replicados. Si los datos son
muy voltiles, puede generar inconsistencia o distintas versiones.
Bajar el nivel fiabilidad en pro de una mejor disponibilidad de los datos ante una
consulta, es razonable ya que para un sistema no transaccional, no es tan vital contar
17
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
con la ltima actualizacin del dato como s lo es, disponer de un sistema con alta
disponibilidad, sin cadas.
SQL
NOSQL
Modelo de
almacenamiento de
datos
clave-valor
funcionan
de
guarda
un
pedazo SQL,
pero
slo
tienen
dos
18
hoja
pretenden
el
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
clculo.
Tipos
de
valores jerrquicamente.
demanda.
significativa
se
requiere generalmente.
Modelo de desarrollo Mezcla de cdigo abierto Cdigo abierto.
(Postgres, MySQL) y de
cdigo
cerrado
(Oracle
Database)
Soporte de
transacciones
Las
pueden
actualizaciones
configurar
se En determinadas circunstancias y
para en ciertos niveles (por ejemplo,
19
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
absoluto.
Manipulacin de
datos
de base de datos)
usando
Select, objetos.
Insert y Update.
Consistencia
consistencia
eventual
(Cassandra).
Tolerancia a fallos
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
SELECT mltiple en la no relacional se tendra que recorrer la nica tabla varias veces
para devolver todos la informacin debido a duplicidad en ciertos datos.
21
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
22
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
CAPTULO 4. RECOMENDACIONES
Consideramos que una base de datos relacional puede ser usada en estos mbitos:
23
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Consideramos que las tecnologas NoSQL pueden ser usadas en los siguientes mbitos:
24
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
CAPTULO 5. PRUEBA
Figura 1 - Mysql
25
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Figura 2 - MongoDB
26
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
27
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
CONCLUSIONES
28
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
Suponemos que como en todo, habr veces que ser mejor usar bases de datos NoSQL y
en otras no. Eso sin quitar ese toque que ltimamente tienen tantas cosas en ingeniera
software y desarrollo de volver a poner de moda cosas que tienen ya sus aos, como
algo nuevo, pero con cambio de nombre.
Que la base de datos SQL son ms para si se desea seguir usando un estndar
establecido el cual es fcil de aprender pero si desean hacer algo nuevo te limita en
algunos aspectos como bsquedas grandes.
Las base de datos NOSQL son ms para romper con el estndar y crear tu propia forma
de gestionar tu base de datos creando tu propia estructura as como google que trabajan
con base de datos NOSQL para realizar mejores bsquedas.
BIBLIOGRAFA
29
INGENIERA DE SOFTWARE I
TRABAJO ENCARGADO: SQL & NOSQL
sequence=1
https://www.incibe.es/blogs/post/Seguridad/BlogSeguridad/Articulo_y_comenta
rios/Bases_de_datos_NoSQL
http://academica-e.unavarra.es/bitstream/handle/2454/10203/629103.pdf?
sequence=1
http://www.internetria.com/blog/2013/05/08/nosql/
30