“NoSQL Database”
Students:
Jeimy Alejandra Chacón Núñez
Lina María Saboyá Escobar
Teacher:
José Fernando Sotelo
Universidad Cooperativa de Colombia
Systems Engineer
Sixth Semester
Bogotá D.C.
2019
NoSQL Database
As cloud computing continues to evolve, organizations are finding new ways to
store the massive amounts of big data that are collected. Big data storage often
require greater flexibility and scalability which can be provided by incorporating
NoSQL technologies. NoSQL (Not Only SQL) is quickly becoming a popular
approach to store large and unstructured data. (Madison)
For over decades, relational databases have been used to store what we know as
structured data. The data is sub-divided into groups, referred to as tables. The
tables store well-defined units of data in terms of type, size, and other constraints.
Each unit of data is known as column while each unit of the group is known as row.
The columns may have relationships defined across themselves, for example
parentchild, and hence the name relational databases. And because consistency is
one of the critical factors, scaling horizontally is a challenging task, if not
impossible. About a decade earlier, with the rise of large web applications,
research has poured into handling data at scale. One of the outputs of these
researches is non-relational database, in general referred to as NoSQL database.
One of the main problems that a NoSQL database solves is scale, among others.
The NoSQL movement began in the early years of the 21st century when the world
started its deep focus on creating web-scale database. By web-scale, I mean scale
to cater to hundreds of millions of users and now growing to billions of connected
devices including but not limited to mobiles, smartphones, internet TV, in-car
devices, and many more.
NoSQL what it literally means is, "I do not want to use SQL". To elaborate, "I want
to access database without using any SQL syntax". Why? We shall explore the in a
while.
Let us examine at what NoSQL
NoSQL is a generic term used to refer to any data store that does not follow the
traditional RDBMS model— specifically, the data is non-relational and it does not
use SQL as the query language. It is used to refer to the databases that attempt to
solve the problems of scalability and availability against that of atomicity or
consistency. (Vaish, pág. 24)
Each NoSQL solution seeks to address one or more of these problems:
The need to store large volumes of data about users, objects and products
The need to provide near-real-time transaction processing
The need to provide high-speed analytics on large volumes of data (big
data)
The need to support flexible data schemas for evolving business
environments
The need to scale applications horizontally with predictable hardware and
licensing cost structures
Document databases use key-value pairs tied to documents with formats including
XML (eXtensible Markup Language), JSON (JavaScript Object Notation) and
BSON (Binary JSON) (Moniruzzaman & Hossain, 2013). Values are stored in
these semi-structured data formats and each document may contain hundreds of
attributes with varying data types. Examples of document databases include
CouchDB and MongoDB. (Madison)
Marcos para el rescate
These frameworks implement the security features we wish were built into NoSQL
databases, including authentication, role-based access control, and encryption. For
example, the Spring security framework makes more than 20 capabilities available
to developers. These frameworks provide a quick, reliable, and usually well-tested
set of security features. Best of all, your developers don't need to reinvent the
wheel.
Here are the top security controls we recommend developers implement when
using a NoSQL back end:
Authentication. Unfortunately, even in 2012, most of the NoSQL installations
we see have no passwords and allow anyone to access the database. At
best, passwords are user-defined. If you can't use a built-in authentication
capability within the NoSQL database, make sure you at least use
authentication within the framework.
Input validation. While NoSQL databases don't normally suffer from the SQL
injection issues found in a conventional relational database management
system, they can still be injected using JavaScript attacks and string
concatenation. Filtering to remove JavaScript, or setting up the NoSQL
database to not allow JavaScript within the store at all, will eliminate this
attack vector.
Data validation. Most NoSQL databases store documents or other objects
that can contain dynamic structures. Leveraging the framework to validate
data being written to and read from the database can prevent problems,
such as when the system converts from one data type to another without the
developer realizing it. Data-type conversions can trigger denial-of-service
attacks.
Role-based access. Store information on which users have access to what
data outside the NoSQL database and have the application enforce these
roles.
Many developers argue that adding security decreases performance; that's the
most common excuse we hear for why NoSQL deployments use no authentication
or encryption. However, Owen O'Malley, a Hadoop engineer at Yahoo, says he
saw less than a 3% performance hit in Hadoop when additional security features,
such as ACLs and authentication, were enabled. That's well worth it, especially
compared with the alternative of cleaning up after a successful attack. (Davis)
Installation MongoDB
1. Buscamos la página principal para realizar la descarga
2. Indicamos que version deseamos instalar y para que sistema operative y le
damos click en descargar
3. Ahora podemos ver que lo está descargando y debemos esperar a que
termine
4. Le damos click al archivo una vez finalizada la descarga
5. Le damos click en extraer
6. Una vez extraemos el archivo le vamos doble click al instalador de
MongoDB
7. Nos sale esta ventana para realizar la instalación y le damos click a la
opción next
8. Le damos click en aceptar licencia y luego next
9. Le damos click en Custom
10. Le damos click en next
11. Le damos click en next
12. Le damos click en next
13. Le damos click en install MongDB Compass y luego next
14. Ahora le damos click en Install
15. Ahora esperamos
16. Ahora le damos click en finish
17. Ahora buscamos en nuestro pc lo que posteriormente instalamos
18. Ahora abrimos power Shell, abrimos una terminal donde ejecutaremos
MongoDB nos aparecerá un error porque no hemos creado las carpetas
donde se guardaran las bases de datos y sus respectivos datos.
19. Nos dirigimos al directorio C y creamos una carpeta nueva
20. Renombramos la carpeta en este caso le colocamos data
21. Y en data creamos otra carpeta llamada db, para almacenar los datos de las base de datos
22. Abrimos el cmd
23. En una ejecutamos el mongo
24. Ahora vamos a crear una base de datos usaremos el comando use
25. En este caso se llama trabajo
26. Ahora nos indica que hemos creado una base de datos y ahora colocamos el comando db
para introducir los datos
27. Ahora con el comando find vamos a buscarlo
Bibliography
Biblioteca Virtual Universidad Cooperativa de Colombia
Davis, M. A. (9 de abril de 2012). NoSQL es igual a NoSecurity. Información de la semana ;
Manhasset N.º 1330, 29-31.
Madison, M. (2015). NoSQL Database Technologies. San Bernadino, 1.
Vaish, G. (2013). NoSQL Starter. Chapter 1. An Overview of NoSQL : Packt Publishing Ltd.