Está en la página 1de 20

FIREBASE

PUETO QUE UTILIZA utiliza la nube de Google Cloud Platform


AÑO DE CREACION fue creada en el año 2011

firebase ya no tiene webservices solo es tener un poco de logica y conocimie


de base de datos es asi de facil para poder crear un crud . Con respecto a m
es una gran ventaja

firebase no se maneja tablas, se manja por medio de colleciones que hace m


mas facil el manejo.

firebase maneja consulta en tiempo real, que no necesida de recargar la pag


5 ventajas con respecto a Mysql para que salgan los datos como lo hace mysql

Almacenado en la nube tan fácilmente disponible en todas partes.

Ellos alojan los datos.- ¡Significando que si almacena una gran cantidad de d
no tiene que preocuparse por el hardware!

firebaseno no puede hacer operaciones de datos

firebase se limita en la cantidades de usuarios en la vercion gratuitas y mysq


tiene niguna limitacionaes
4 desventajas con respecto a
Mysql
4 desventajas con respecto a
Mysql

Las herramientas de informes no estarán cerca de las de SQL estándar.

Usted no aloja los datos, Firebase lo hace.Y dependiendo del servidor al que
pongas, ver el tiempo allí parece haber muchas interrupciones últimamente.

agregar: db.collection("users").add({
})
.then(function(docRef) {
})
.catch(function(error) {
console.error("Error adding document: ", error);
});

leer datos: db.collection("users").onSnapshot((querySnapshot) => {


tabla.innerHTML='';
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${doc.data().nombre}`);
tabla.innerHTML+=``
});
});

Sentencias para hacer el crud


(consultar, agregar, modificar y
eliminar)
Sentencias para hacer el crud modificar: return washingtonRef.update({
(consultar, agregar, modificar y })
eliminar) .then(function() {
})
.catch(function(error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});

eliminar: db.collection("users").doc(id).delete().then(function() {
console.log("Document successfully deleted!");
}).catch(function(error) {
console.error("Error removing document: ", error);
});

Aplicaciones con interfaz de


la aplicación para ejecutar interface de usuaria se llama Cloud Firestore
usuario para su ejecución

la plataforma que mas utiliza es google


Software o plataformas reconocidas
que lo utilicen hoy en día.
Cómo crear Funciones

.then(funtion(){}) o para crear la carpecta de funciones es con el comando npm inst


firebase-tools
const db = firebase.database();
const usuer = db.child('users/js');
const pais = db.child('pais/js');
const productos = db.child('productos/js');
const pedido = db.child('pedido/js');
users.on('value',snap =>{

});
pais.on('value',snap =>{
hacer un ejemplo de una consulta });
manejando mínimo 4 tablas / productos.on('value',snap =>{
colleciones
para: });
pedido.on('child_added',snap =>{

});
CUADRO COMPARTIVO PARA LA CON
FIREBASE MONGO
utiliza la nube de Google Cloud Platform mongo utiliza el puerto 20017
fue creada en el año 2011 fue creada en el año 2009

o tiene webservices solo es tener un poco de logica y conocimiento


La escalabilidad y su carácter descentralizado hacen
atos es asi de facil para poder crear un crud . Con respecto a mysql
soporten estructuras distribuidas.
entaja

Permiten realizar sistemas mas abiertos y flexibles d


e maneja tablas, se manja por medio de colleciones que hace mucho
su fácil adaptación de nuevase voluciones de nuestra
manejo.
aplicaciones web.

eja consulta en tiempo real, que no necesida de recargar la pagina No se requieren potentes recursos para poder trabaj
an los datos como lo hace mysql bases de datos NoSQL.

Optimización en las consultas en base de datos para


en la nube tan fácilmente disponible en todas partes.
grandes cantidades de datos almacenados.

os datos.- ¡Significando que si almacena una gran cantidad de datos,


Menor tiempo de recuperación ante fallas
preocuparse por el hardware!

Problemas con sentencias SQL ya que no admiten e


puede hacer operaciones de datos
de las consultas existentes.

Los sistemas de bases de datos NoSQL carecen de


interfaces gráficas para su uso y por tanto es posible
mita en la cantidades de usuarios en la vercion gratuitas y mysql no
veamos obligados a trabajar mediante la consola de
imitacionaes
comandos.
Falta de estandarización entre las diferentes bases d
ntas de informes no estarán cerca de las de SQL estándar.
NoSQL.

a los datos, Firebase lo hace.Y dependiendo del servidor al que te


Aún es una tecnología joven
l tiempo allí parece haber muchas interrupciones últimamente.

ollection("users").add({

(docRef) {

n(error) {
r("Error adding document: ", error);

agregar:
db.micoleccion.insert({"nombre":"Agustin","apellido":"Ra
omicilio":"Tabasco"})

b.collection("users").onSnapshot((querySnapshot) => {
TML='';
hot.forEach((doc) => {
g(`${doc.id} => ${doc.data().nombre}`);
rHTML+=``

leer datos: db.micoleccion.find()


urn washingtonRef.update({

() {

n(error) {
ment probably doesn't exist.
r("Error updating document: ", error);

modificar:
db.micoleccion.update({"_id":ObjectId("56c9a1ffbb6e739
1a")},{$set:{"apellido":"Ramos Escalante"}})

ollection("users").doc(id).delete().then(function() {
g("Document successfully deleted!");
tion(error) {
ror("Error removing document: ", error);

db.micoleccion.remove({"_id":ObjectId("56c9a1ffbb6e73
1a")})

la aplicancion para ejecutar la interfas de usurio se ll


para ejecutar interface de usuaria se llama Cloud Firestore
mongo 3t

que mas utiliza es google la plataforma mas utilizada es facebook

de esta manera se hace las funciones mongo:


db.js.save({id_suma:"sum"
value:function(x,y){return x+y}});
db.eval("return suma(2,3);");

{}) o para crear la carpecta de funciones es con el comando npm install -g


base.database(); db.guiamongo.insert({"nombre": "camilo", "edad":"25",
db.child('users/js'); "genero":"Femenino" }); db.guiamongo.insert({"nombre"
b.child('pais/js'); "Pedro", "edad":"32", "genero":"Masculino", "pais":"Ecua
os = db.child('productos/js'); db.guiamongo.insert({"nombre": "Ramon", "edad":"18",
db.child('pedido/js'); "genero":"Masculino", "pais":"Honduras" });
e',snap =>{ db.guiamongo.insert({"nombre": "John", "edad":"22",
"genero":"Masculino", "pais":"Argentina" });
db.guiamongo.find({“genero”:”masculino”});
snap =>{

value',snap =>{

d_added',snap =>{
UADRO COMPARTIVO PARA LA CONVOCATORIA
MONGO POSGREST
mongo utiliza el puerto 20017 posgrest utiliza el puerto 5432
fue creada en el año 2009 fue creada en el año 1996
Estabilidad y confiabilidad: Tiene más de 20 años de desarrollo activo y
en constante mejora. No se han presentado nunca caídas de la base de
datos. Ésto es debido a su capacidad de establecer un entorno de Alta
disponibilidad y gracias a Hot-Standby, que nos permite que los clientes
ad y su carácter descentralizado hacen que puedan realizar consultas de solo lectura mientras que los servidores
ucturas distribuidas. están en modo de recuperación o espera. Así podemos hacer tareas de
mantenimiento o recuperación sin bloquear completamente el sistema.

pgAdmin: Se trata de una herramienta gráfica con la que podemos


izar sistemas mas abiertos y flexibles debido a administrar nuestras bases de datos de forma fácil e intuitiva. Podemos
ación de nuevase voluciones de nuestras ejecutar sentencias SQL, e incluso crear copias de seguridad o realizar
web. tareas de mantenimiento.

Estándar SQL: implementa casi todas las funcionalidades del estándar


en potentes recursos para poder trabajar con ISO/IEC 9075:2011, así pues, resulta sencillo realizar consultas e incluir
scripts de otros Motores de Bases de Datos.
os NoSQL.

Potencia y Robustez: PostgreSQL cumple en su totalidad con la


característica ACID Compliant. ACID es un acrónimo de Atomicity,
Consistency, Isolation y Durability (Atomicidad, Consistencia,
en las consultas en base de datos para Aislamiento y Durabilidad en español). Por ello permite que las
dades de datos almacenados. transacciones no interfieran unas con otras. Con ello se garantiza la
información de las Bases de Datos y que los datos

Extensibilidad: tenemos a nuestra disponibilidad una gran variedad de


extensiones distribuidas por el grupo de desarrolladores de
PostgreSQL. También por terceros o incluso nosotros mismos podemos
crear nuestras propias extensiones. Éstas extensiones pueden ser
o de recuperación ante fallas lenguajes de programación, tales como, Perl, Java, Python, C++ y
muchos más.

Es relativamente lento en inserciones y actualizaciones en bases de


datos pequeñas, PostgreSQL está diseñado para ambientes de alto
n sentencias SQL ya que no admiten el 100% volumen. Ésto hace que la velocidad de respuesta pueda parecer lenta
as existentes. en comparación con bases de datos de pequeño tamaño.

Soporte oficial: No cuenta con un soporte en línea o telefónico.


PostgreSQL cuenta con foros oficiales donde los usuarios pueden
de bases de datos NoSQL carecen de exponer sus dudas que responden otros usuarios de la comunidad.
ficas para su uso y por tanto es posible que nos También, disponemos soporte empresarial como EnterpriseDB o
ados a trabajar mediante la consola de TodoPostgreSQL. Cabe resaltar que la comunidad de usuarios
PostgreSQL es una de las más activas en el mercado.
La sintaxis de algunos de sus comando o sentencias puede llegar a no
ndarización entre las diferentes bases de datos ser intuitiva si no tienes un nivel medio de conocimientos en lenguaje
SQL.

ecnología joven Consume más recursos que MySQL

n.insert({"nombre":"Agustin","apellido":"Ramos","d agregar: INSERT INTO usuario(nombre,apellido) VALUE ('camilo','narvaez')


asco"})

leer datos: SELECT *


FROM usuario

micoleccion.find()
modicar: UPDATE usuario SET nombre='nombre' apellido='apellido'
n.update({"_id":ObjectId("56c9a1ffbb6e73925f958b
WHERE id_usuario=id_usuario;
pellido":"Ramos Escalante"}})

n.remove({"_id":ObjectId("56c9a1ffbb6e73925f958b
eleminar: DELETE FROM usuario WHERE id_usuario='id_usuario'

para ejecutar la interfas de usurio se llama


la apliacacion para ejecuta interfas de usuario se llama PGADMIN

mas utilizada es facebook la plataforma que utilizada es paypal

a se hace las funciones mongo:


suma:"sum" CREATE FUNCTION dbo.ufn_FindReports (@InEmpID INTEGER)
function(x,y){return x+y}}); RETURNS @retFindReports TABLE
n suma(2,3);"); (
EmployeeID INT PRIMARY KEY NOT NULL,
FirstName NVARCHAR(255) NOT NULL,
LastName NVARCHAR(255) NOT NULL,
JobTitle NVARCHAR(50) NOT NULL,
RecursionLevel INT NOT NULL
)
.insert({"nombre": "camilo", "edad":"25",
enino" }); db.guiamongo.insert({"nombre":
d":"32", "genero":"Masculino", "pais":"Ecuador" });
.insert({"nombre": "Ramon", "edad":"18",
culino", "pais":"Honduras" });
.insert({"nombre": "John", "edad":"22",
culino", "pais":"Argentina" });
.find({“genero”:”masculino”});
SELECT us.nombre,pa.ciudad,co.contienete,pro.producto
FROM usuario us,pais pa,contiente co,producto pro
WHERE us.id_pais=pa.id_pais
AND us.id_continete=co.id_continete
AND us.id_producto=pro.id_producto
POSGREST GrahQL
posgrest utiliza el puerto 5432 grahQL utiliza el mismo pureto que utiliza mysql 3306
fue creada en el año 1996 fue creado en el año 2012
confiabilidad: Tiene más de 20 años de desarrollo activo y
mejora. No se han presentado nunca caídas de la base de
s debido a su capacidad de establecer un entorno de Alta
y gracias a Hot-Standby, que nos permite que los clientes
ar consultas de solo lectura mientras que los servidores
o de recuperación o espera. Así podemos hacer tareas de GraphQL es un lenguaje de consulta para las API
o o recuperación sin bloquear completamente el sistema.

trata de una herramienta gráfica con la que podemos


uestras bases de datos de forma fácil e intuitiva. Podemos
encias SQL, e incluso crear copias de seguridad o realizar envia datos por api y optiene exatamente lo que se va
ntenimiento. nesecitar.

L: implementa casi todas las funcionalidades del estándar


5:2011, así pues, resulta sencillo realizar consultas e incluir grahql es muy rapido comparado a las consulta de api rest
os Motores de Bases de Datos.
con my sql

obustez: PostgreSQL cumple en su totalidad con la


ACID Compliant. ACID es un acrónimo de Atomicity,
Isolation y Durability (Atomicidad, Consistencia,
Durabilidad en español). Por ello permite que las Las aplicaciones que utilizan GraphQL pueden ser rápidas
s no interfieran unas con otras. Con ello se garantiza la incluso en conexiones de red móviles lentas.
e las Bases de Datos y que los datos

d: tenemos a nuestra disponibilidad una gran variedad de


distribuidas por el grupo de desarrolladores de
También por terceros o incluso nosotros mismos podemos
s propias extensiones. Éstas extensiones pueden ser Acceda a todas las capacidades de los datos desde un único
programación, tales como, Perl, Java, Python, C++ y punto de conexión.

nte lento en inserciones y actualizaciones en bases de


as, PostgreSQL está diseñado para ambientes de alto
o hace que la velocidad de respuesta pueda parecer lenta
ón con bases de datos de pequeño tamaño. no es una base detos

l: No cuenta con un soporte en línea o telefónico.


cuenta con foros oficiales donde los usuarios pueden
dudas que responden otros usuarios de la comunidad.
ponemos soporte empresarial como EnterpriseDB o
SQL. Cabe resaltar que la comunidad de usuarios nomane consulta por medio de tablas
es una de las más activas en el mercado.
algunos de sus comando o sentencias puede llegar a no
no tienes un nivel medio de conocimientos en lenguaje

s recursos que MySQL

$userMutations = [
'addUser' => [
'type' ?> $userType,
'args' => [
'first_name' ?> Tipo::nonNull(Tipo::string()),
'last_name' ?> Tipo::nonNull(Tipo::string()),
'email' ?> Tipo::nonNull(Tipo::string()),
],
'resolve' ?> función($root, $args) {
$usuario : nuevo usuario([
'first_name' á> $args['first_name'],
'last_name' á> $args['last_name'],
T INTO usuario(nombre,apellido) VALUE ('camilo','narvaez') 'email' ?> $args['email'],
]);
$usuario->guardar();
devolver $usuario->toArray();
}
],

ECT *

Query: {
authors(_, { query }) {
if (!query) {
return authors;
}
return authors.filter(author => {
return
author.name.toLowerCase().includes(query.toLowerCase());
});
},
modifyUser' => [
'type' ?> $userType,
'args' => [
'id' ?> Tipo::nonNull(Tipo::int()),
'first_name' ?> Tipo::cadena(),
'last_name' ?> Tipo::cadena(),
'email' ?> Tipo::string()
],
'resolve' ?> función($root, $args) {
$usuario - Usuario::encontrar($args['id']);
$usuario->first_name de isset($args['first_name']) ?
$args['first_name'] : $usuario->first_name;
$usuario->last_name de isset($args['last_name']) ?
ATE usuario SET nombre='nombre' apellido='apellido' $args['last_name'] : $usuario->last_name;
ario=id_usuario; $usuario->correo electrónico - isset($args['email']) ?
$args['email'] : $usuario->correo electrónico;
$usuario->guardar();

devolver $usuario->toArray();
}
],

deleteUser' => [
'type' ?> $userType,
'args' => [
'id' ?> Tipo::nonNull(Tipo::int())
],
'resolve' ?> función($root, $args) {
$usuario - Usuario::encontrar($args['id']);
TE FROM usuario WHERE id_usuario='id_usuario' $usuario->eliminar();
devolver $usuario->toArray();
}
],

para ejecuta interfas de usuario se llama PGADMIN no tiene

la plataforma que utilizada es paypal esta es utilizada en facebook

TION dbo.ufn_FindReports (@InEmpID INTEGER)


tFindReports TABLE
export const typeDefs = `
INT PRIMARY KEY NOT NULL, type Query {
VARCHAR(255) NOT NULL, authors(query: String): [Author!]!
VARCHAR(255) NOT NULL, books: [Book!]!
RCHAR(50) NOT NULL, reviews: [Review!]!
vel INT NOT NULL }
{
libros{
nombre
ahutores{
nombre
pais{
pais
ciudad
}
mbre,pa.ciudad,co.contienete,pro.producto }
us,pais pa,contiente co,producto pro personaje{
pais=pa.id_pais nombrepersonaje
tinete=co.id_continete }
ducto=pro.id_producto
}
}
GrahQL
utiliza el mismo pureto que utiliza mysql 3306
fue creado en el año 2012

un lenguaje de consulta para las API

or api y optiene exatamente lo que se va

y rapido comparado a las consulta de api rest

nes que utilizan GraphQL pueden ser rápidas


nexiones de red móviles lentas.

as las capacidades de los datos desde un único


exión.

se detos

ulta por medio de tablas


s=[
[
$userType,

me' ?> Tipo::nonNull(Tipo::string()),


me' ?> Tipo::nonNull(Tipo::string()),
> Tipo::nonNull(Tipo::string()),

> función($root, $args) {


o : nuevo usuario([
name' á> $args['first_name'],
name' á> $args['last_name'],
' ?> $args['email'],

o->guardar();
r $usuario->toArray();

query }) {

hors;

ors.filter(author => {

oLowerCase().includes(query.toLowerCase());
>[
$userType,

po::nonNull(Tipo::int()),
me' ?> Tipo::cadena(),
me' ?> Tipo::cadena(),
> Tipo::string()

> función($root, $args) {


o - Usuario::encontrar($args['id']);
o->first_name de isset($args['first_name']) ?
me'] : $usuario->first_name;
o->last_name de isset($args['last_name']) ?
me'] : $usuario->last_name;
o->correo electrónico - isset($args['email']) ?
$usuario->correo electrónico;
o->guardar();

r $usuario->toArray();

[
$userType,

po::nonNull(Tipo::int())

> función($root, $args) {


o - Usuario::encontrar($args['id']);
o->eliminar();
r $usuario->toArray();

a en facebook

ypeDefs = `

ry: String): [Author!]!


k!]!
view!]!
d

{
personaje

También podría gustarte