Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introdu
Introducci
cci´on
ón 2. ¿Queé´ es Postgres NoSQL?
¿Qu
Las bases de datos relacionales han sido las herramientas La nueva versión
versi´on de la base de datos de c´
código
odigo abierto
por excelencia
excelencia para el alma almacenam
cenamiento
iento de la infor informaci
maci´on
ón Post
Postgr
greS
eSQLQL,, se ha ido ido evol
evoluc
ucioiona
nand
ndo o y adop
adopttáandose
´ ndose
en los sis sistemtemasas inform´
informáti aticos
cos des
desdede su surgim
surgimien iento to en las al amp
amplia
liamen
mentete usa
usado
do for
format
matoo de int interc
ercamb
ambioio de datosdatos
decad
é´ cadas
as dedell 70 y el 80 80.. No obst
obstanante
te,, la
lass babase
sess de datodatoss JS
JSON
ON,, esto
esto ap apun
unta
ta al cr crec
ecie
ient
ntee me
mercrcad
ado
o No NoSQ
SQL L de
NoSQL,
NoS QL, com como o tenden
tendencia cia,, han venid
venido o ganganand
ando o esp
espaci
acio o almacenes de datos no relacionales, Postgres NoSQL es la
es
espe peci
cial
alme
ment ntee po
porr la esca escala
labi
bili
lida
dadd y ve velo loci
cida
dad d en sus sus poderosa combinaci´
combinació on
n de tecnolog
tecnolog´ı́ıas
as de bases de datos no
tie
tiempomposs de res respue
puesta
stas, s, sup
superi
eriore
oress a los de los sistem sistemas as estructurados y relacionales en un solo sistema de gestion ó´ n
relacionales. Este tipo de bases de datos no garantizan las de bases de dato. Postgres NoSQL proporciona la libertad,
propiedade
propi edadess ACID ACID (Atom(Atomicida icidad,
d, Consistenc
Consistencia,aI ia,aIslam
slamient
iento o la flex
flexibi
ibilid
lidad
ad y el renrendim
dimien
iento
to de la man manipu
ipulac ó´ n de
laciion
y Durabi
Durabilid lidad)
ad) en ar ar´éeas
as de potpotenc
enciar
iar el renrendim
dimien iento
to y la datos no estrestructur
ucturados
ados y semisemi-est
-estructu
ructurados
rados,, conserva
conservando ndo
escalabilidad, bas´ basandose
ándose en el teorema CAP (Consistencia, su viabilidad a largo plazo.
Dispon
Dis ponibi
ibildaldadd y la tol toleraeranci
nciaa a partic
particion
iones)es),, que pla plante
nteaa Postgres posee todas las caracter´
caracterı́sticas
ısticas de una base de datos
que un sistema no puede contar con m´ m as
á s de dos de estas relacional con la capacidad de manejar bases de datos del
tres propiedades a la vez. tipo documento y de clave/valor proporcionan las ventajas
El movimovimi mien entoto No
NoSQ SQL L no es nu nuev
evo,o, se iniciniciioó´ a finfinal
ales
es de las nuevas tecnolog´
tecnologıas
ı́as NoSQL adem´ademas ás de la posibilidad
de los los 90 cuan cuandodo lalass ba base
sess de dadatotoss XM
XML L come
comenz nzar
aron
on de integrarlos en las infraestructuras tradicionales de datos
a ganar
ganar espaci
espacio o con ex excel
celent
entes
es propue
propuesta stas,
s, sobre
sobre tod todo o corporativos sin silos de datos, la complejidad operativa, la
ofreciendo
ofrec iendo la posib posibilid
ilidad ad de consultas
consultas sobre datos XML. pérdida
p´erdida de la integridad de los datos, y el riesgo.
Caracter´ısti
Caracter ı́ stica
ca qu quee post
poster erio
iorm
rmen
ente
te lalass ba basesess de dato datoss
3. ¿ACID
¿ACID o BASE?
BASE? HSTORE pro
HSTORE prove veee la funcio
funcional
nalida
idad
d de ind
indexa
exarr en vario
varioss
tipos
Posgre
PosgreSQL
SQL es una bace de datosdatos 100
100%% AC
ACID,
ID, posee Operadores GIN GIST
control de concurrencia multiversiónes
multiversi´ones con un sistema sosti- Creació
Creaci´
on n Lento Rapido
á´ pido
ficado que previene a los lectores de bloquear a los escritores Consultas ´ p i do
Ráap Lento
y vic
vicev
evers
ersaa com
comoo es el MVC
MVCC C (Co
(Contr
ntrol
ol de Con
Concur
curren
ren-- Actualizació
Actualizaci´ onn Lento Rapido
á´ pido
cia Multi-Versiones), posee un WAL (Write-ahead logging) Memoria 2x máas ´s Poca
conocido
conoc ido tambien
tambien como log, tiene sopor
soporte
te compl
completo
eto para
Otros tipos de indices son:
claves forneas, uniones, vistas, disparadores y procedimien-
•
tos almacenados, soporte de tipos de datos documentos. BTREE
• HASH
Ejemplo del m´ mó
odulo
dulo HStore en PostgreSQL:
Primer Paso: Antes de trabajar con el tipo de datos hstore,
necesita habilitar la extensin hstore, que carga el mdulo para
habilitar la extensi´
extension
ón hstore PostgreSQL
Segund
Segundoo pas
paso:
o: cre
crear
ar una tab
tabla
la con una colum
columna
na del
tipo de dato HStore. Para este ejemplo, Creamos una tabla
llamada libros que tiene tres columnas:
• id es la clave pri
principa
ncipall que identifi
identifica
ca el libro.
•
ttul
ttuloo es el ttulo de las ti
tiendas
endas de product
productos
os
• att
attrr atributo
atributoss del lib
libro
ro como el ISBN, el peso,
peso, el
pape
papell de de devo
volu
luci
cin,
n, et
etc.
c. El ti
tipo
po de da
dato
toss de la
columna de attr es hstore.
Figure 1. Capacidades de Postgres para cargas de trabajo NoSQL [1].
4. Clave/v
Clave/valor
alor - HStore
HStore
El mó odulo
´ dulo HStore, que permpermite
ite almacenar
almacenar pares clave
/ valor dentro de una sola columna, permite a los usuarios
crea
crearr un alma
almaccen
é´ n de clav
claves
es/v
/val
alor
or si
sin
n esqu
esquem
ema.
a. Pero
Pero a
dif
difere
erenci
nciaa de las soluci
solucione
oness NoS
NoSQLQL puros,
puros, un alm
almac
ac´en
én
de claves-valor creado en Postgres es compatible con ACID.
HStor
HStoree es un
unaa he
herr
rram
amie
ient
ntaa pa
part
rtic
icul
ular
arme
ment
ntee ú
util
´ til pa
para
ra
Tercer paso: Insertar datos, Nosotros usamos la instruc-
lo
loss de desa
sarr
rrol
olla
ladodore
ress web
web o al algu
guie
ienn ququee cons
constr
truy
uyee ununaa cin INSERT para insertar datos en la columna de la hstore
aplicación
aplicaci´ on que requiere la propiedad ACID, Hstore anterior
de la siguiente manera, pero usted puede usar otro comando:
a muc muchos
hos avances
avances NoSQL. Fue int introd
roduci
ucido
do en v8. v8.22 de
NOTA: Los datos que insertamos en la columna de la hstore
Po
Post stgr
gres
es en el a˜ año
no 20 200606,, ante
antess de much
muchos os av
avan
ancecess de
es una lista separadas por comas usando los pares de claves
otr
otros os gestor
gestores
es NoSQL.
NoSQL. Su pop popula
ularid
ridad
ad aum
aument
ent´o
ó en los
=¿ valor
valor.. Tanto
anto las claves
claves y los valor
valores
es estn
estn exp
expres
resado
adoss
ú´ ltimos a˜
ultimos anos
ños con nuevas demandas para trabajar con datos
usando comillas (”).
semi-estructurados.
Hs
Hsto tore
re no es jer ´ rquic
jeráarqu ica,
a, pe
pero ro el ti tipo
po de datodatoss HStor
HStoree
ofrecee ava
ofrec avanzada
nzada soporte de inde indexaci
xaci´ó
on,
n, lo que hace
hace qu quee
seaa la solu
se soluci
ci´ó
on n de el elec
ecci
ci´on
ó n parparaa muc
muchoshos aplica
aplicacio
ciones
nes..
Es parti
particular
cularment
mentee ú util
´ til para
para los datos con baja den densid
sidad
ad
ejemplo, esto es muy util
por ejemplo, ú´ til para el almacenam
almacenamient ientoo de
produc
pro ductos
tos con m´ múlti
ultiples
ples descripc
descripcione ioness en una sola tabl tabla,
a,
donde
don de cad
cadaa pro
producducto,to, com
compar partete alguna
algunass atrib
atributo
utos,s, como
como
el nomnombrebre,, precio
precio y pes peso,
o, pero
pero tienen
tienen mucmuchos
hos difere
diferententess
atrib
atributoutoss basado
basadoss en el tip tipo o de proproduc
ducto,
to, tales
tales como
como el
tamaño,
tama˜ no, la presentacion, entre otros.
Cuarto Paso: Realizar una consulta
JSON JSONB
Re-interpretacion
Re-interpretaci´ ón de
No necesita re-interpretar
diccionario
Operaciones toman ms
á´ s espacio en disco
Mas
tiempo
Pres
Preser
erv
va el or orde
denn No pr
pres
eser
erv
va el or
orde
den
n
Sin
Sin ´
ı́ın
ndices Soporta ´
ı́ndices
ındices
JSON (notac
JSON ó´ n de ob
(notaciion obje
jeto
toss JavJavaS
aScr
crip
ipt)
t) es unauna de la
mayorı́a
mayor´ ıa de los formatos de datos intercambiados populares
á´ cticamente cualquier lenguaje
en la web. Es apoyado por pr acticamente
de programac
programaci´ ión
on en uso hoy en dı́a, d´ıa, y sig
sigue
ue aument
aumentand
andoo
la atracci´
atraccióonn por el uso de JSON por la la introducci on ó´ n de
nuevas tecnologı́as
tecnolog´ıas de apoyo tales como el motor JavaScript
V8, tam
tambibi´en
é n apo
apoyadyado
o en Pos
Postgrtgres
es a trav
travées
´ s de PL / V8, Segundo Paso: Insetar datos JSON.
Node.j
Nod e.jss y alguno
algunoss sis
sistem
temas
as NoSNoSQL,
QL, comcomo o Mon
MongoD
goDB B y
CouchDB.
Post
Postgr
gres
es of
ofre
rece
ce sopo
soport
rtee robu
robust
sto
o para
para JSON.
JSON. Po Post
stgr
gres
es
tie
tiene
ne un conjunto
conjunto de dat
datos os de tip
tipoo JSO
JSON,
N, lo que valida
valida
y alm
almace
acena
na el te
texto
xto JSO
JSON N y propor
proporcio
ciona
na fun
funciociones
nes par
paraa
extr
extrae
aerr elem
elemen
ento
toss de lo
loss vavalo
lore
ress de JSON
JSON y ofre ofrece
ce la
posibilidad de codificar fácilmente
f´acilmente conjuntos de resultados
de la consultas que se pueden utilizarse. Esta ultima
ú´ ltima pieza
de fun
funcio
cional
nalida
idad
d es par
partic
ticula
ularme
rmente
nte import
important
ante, e, ya que
sig
signifi
nifica
ca que las aplica aplicacio
ciones
nes que pre prefier
fieren en trabaj
trabajar ar de
forma nativa con JSON puede obtener fácilmente f´acilmente sus datos
de Pos
Postgr
tgres
es en JSON.
JSON. Ade Ademmas
á´ s de
dell ti
tipo
po de da dato
toss nanati tivo
vo
JSON
JS ON,, PoPoststgr
gres
es v9
v9.3
.3 a˜
aña
nade
de un JSON JSON analanaliz izad
adoror y un unaa
varie
variedad
dad de fun funcio
ciones
nes JSON.
JSON. Est Esto
o sig
signifi
nifica ca aplaplica
icaci ci´on
ón
web, los desar
desarrolla
rolladores
dores no necesitan
necesitan capas de tradu traducci cci´on
ón Tercer paso: Realizar una consulta
en el c´codigo
ó digo entre las base de datos y el marco web que
utiliza
utiliza JSON, los datos pueden ser env enviados
iados direct
directament
amentee
a la base de datos PostgreSQL, donde no s ó olo
´ lo almacenar
almacenar
los datos,
datos, perperoo adecua
adecuadam
dament
entee valid
validarl
arlo o tam tambibi´éen.
n. Con Con
funciones
funci ones JSON, Postg Postgres
res puede
pueden n leer datos relacional
relacionales es
de un
unaa tatabl
blaa y de
devo
volv
lver
erlo
lo a la apliaplica
caci
ci´on
ó n como
como validos á´ lidos
cadenas de formato JSON. Y, los datos relacionales pueden
ser devueltos como JSON, ya sea para un unico ú´ nico valor o un
registro completo.
La
Lass ba
base
sess de da
dato
toss de ti
tipo
po docu
docume
ment
ntoo ms popopu
pula
lare
ress
son
son Co
Couc
uchD
hDB
B y Mo
MongngoD
oDB
B segn
segn el si
siti
tio
o db
db-e
-eng
ngin
ines
es,, el
6. Post
Postgr
gres
es vs Mong
MongoD
oDB
B - Pr
Prue
ueba
bass de de-
de-
sempe ˜
sempe ˜
no
ñ˜ o
Antes de entrar en detalle sobre la prueba de desempe no
es importante conocer las caracteristicas de ambas bases de
datos.
La tabla en la figura 2, compara las caracteristicas mas
importante de una base de datos NoSQL Orientada a Doc-
umento (como MongoDB) contra las caractersticas de una
base de datos relacional (como Postgres):
6.1. Caracter
Caracter´ısticas
ı́sticas del experimento
6.2. ¿Por
¿Por que escogimos
escogimos este estudio
estudio y no otro?
• Las inser
insercione
cioness en la base de datos, toma
tomaron
ron aprox
aprox--
6.5. Conclusi
Conclusi´on
ón del experimento