04.07.2013 Views

hayBusiness Tecnología y Emprendizaje

Es una revista de jóvenes emprendedores para jóvenes emprendedores, mayoritariamente de habla hispana, que cuenta con la colaboración de un variado grupo de expertos en tecnología, economía y emprendizaje, activos en diferentes mercados internacionales.

Es una revista de jóvenes emprendedores para jóvenes emprendedores, mayoritariamente de habla hispana, que cuenta con la colaboración de un variado grupo de expertos en tecnología, economía y emprendizaje, activos en diferentes mercados internacionales.

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6<br />

forma eficiente.<br />

El modelo de datos de MongoDB<br />

se basa en conjunto de colecciones.<br />

Una colección (collection)<br />

es un término equivalente a una<br />

tabla en una base de datos relacional,<br />

con la diferencia de que<br />

una colección no tiene esquema<br />

de datos predefinido. Cada colección<br />

contiene una serie de conjuntos<br />

de documentos indexados.<br />

Un documento (document)<br />

puede ser pensado como una fila<br />

en una colección, capad de contener<br />

estructuras complejas como<br />

listas u otros documentos. Los<br />

documentos tienen un esquema<br />

dinámico, lo que significa que<br />

los documentos de una misma<br />

colección no tienen porqué tener<br />

la misma estructura, y campos<br />

comunes en documentos de una<br />

colección pueden tener tipos de<br />

datos diferentes.<br />

MongoDB tiene su propio lenguaje<br />

para realizar consultas<br />

(Mongo Query Language) así<br />

ESQUEMA GENERAL<br />

{<br />

_id : integer,<br />

a_type : string,<br />

profesor : {<br />

pid : integer,<br />

name : string,<br />

dob : Date,<br />

área : string<br />

}<br />

}<br />

<strong>hayBusiness</strong>.net | Julio 2013<br />

como APIs y drivers para los lenguajes<br />

de programación más<br />

extendidos como: Java, PHP, C/<br />

C++, Ruby, Python, C#, etc. Su<br />

potencia es una de las principales<br />

diferencias frente a otras bases<br />

de datos NoSQL, y su simplicidad<br />

viene dada por su modelo<br />

de datos basado en JavaScript<br />

Object Notation (JSON).<br />

Consideremos el problema de<br />

crear una base de datos para una<br />

escuela que contenga las asignaturas,<br />

estudiantes y profesores,<br />

con las restricciones siguientes<br />

(Figura 1):<br />

1. Una asignatura sólo puede<br />

ser impartida por un profesor y un<br />

profesor sólo puede impartir una<br />

asignatura (relación 1:1)<br />

2. A una asignatura pueden<br />

asistir varios estudiantes (relación<br />

1:n).<br />

Para crear la base de datos desde<br />

la Shell de MongoDB basta con<br />

utilizar el comando use seguido<br />

del nombre de la base de datos.<br />

Si la base de datos ya existe, use<br />

indicará a MongoDB que debe de<br />

utilizar la base de datos elegida a<br />

partir de entonces.<br />

> use school<br />

switched to school<br />

Una particularidad de MongoDB<br />

es que no soporta joins, de modo<br />

que, para definir el esquema de<br />

datos, debemos crear una colección<br />

que contenga como value<br />

estructuras complejas (embedding)<br />

[2]. Por ejemplo, consideremos<br />

que el usuario desea conocer<br />

qué profesor imparte la asignatura<br />

cuyo índice es 10. Usando<br />

SQL y un esquema relacional, la<br />

sentencia SQL sería:<br />

SELECT p_name FROM Subject,<br />

Professor WHERE a_id = 10<br />

AND p_name = a_pid;<br />

Como se ha dicho, MongoDB no<br />

admite joins, así que debemos de<br />

EJEMPLO DE UNA MUESTRA DE DATOS<br />

{<br />

_id : 10,<br />

a_type : theory,<br />

profesor : {<br />

pid : 2,<br />

name : Angel,<br />

dob : new Date(1980, 6, 10, 10, 10),<br />

área : [‘maths’]<br />

}<br />

}<br />

{<br />

_id: 11,<br />

a_type: theory,<br />

profesor : {<br />

pid: 4,<br />

name: Ivan,<br />

dob: new Date(1975, 5, 5, 5, 4),<br />

area: [‘literature’]<br />

}<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!