Diseño de Software e Integración de Sistemas
BASES DE DATOS AVANZADAS LABORATORIO N° 04
Modelado de datos en MongoDB use
Alumno(s):
Felix Arturo Garcia M estas
Nota
Grupo:
Ciclo: III
Criterio de Evaluación
Diseña el modelo E/R para una base de datos Implementa una base de datos en MongoDB desde el modelo E/R Implementa bases de datos empleando documentos embebidos o utilizando referencias entre colecciones Manipula información de documentos en las bases de datos implementadas Es puntual y redacta el informe adecuadamente
Excelente (4pts)
Bueno (3pts)
Requiere mejora (2pts)
No acept. (0pts)
Puntaje Logrado
Bases de Datos Avanzadas
Laboratorio 4: Modelado de datos en MongoDB Objetivos: Al finalizar el laboratorio laboratorio el estudiante estudiante será capaz capaz de: Adicionar documentos a la base de datos MongoDB Modificar documentos de la base de datos MongoDB Eliminar documentos de la base de datos MongoDB Consultar documentos de la base de datos MongoDB •
•
•
•
Equipos y Materiales:
•
Una computadora con: Windows 7 o superior Conexión a la internet •
•
Procedimiento: Lab Setup 1. Inicio del equipo virtual virtual 1.1. Encender el equipo 1.2. Inicie el Shell Shell de de MongoDB MongoDB y y crear una base de datos de nombre: Lab04 Lab04 2. DESCRIPCION DEL CASO DE ESTUDIO: Tecsup desea implementar un sistema que permita llevar un control de los cursos que se ofertan al público en general por el área de capacitación continua (PCC). A continuación se resumen los requerimientos identificados por el personal del área interesada: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
12. 13.
Se debe tener un registro de los diferentes departamentos que se tienen en Tecsup así como a cada uno de los programas que integran dichos departamentos. Es necesario identificar a los jefes de departamento, asi como a los planners de cada programa para poder coordinar con ellos los temas relacionados a los cursos a ofertar Tener un registro de los docentes tanto a tiempo completo como a tiempo parcial, que serán los encargados de dictar los cursos de capacitación continua Tener un registro de cada persona que se inscribe en los cursos de capacitación capacitac ión continua Tener un registro de cada matricula que se realice en los cursos de capacitación capacitac ión continua De los Departamentos es necesario registrar: nombre, jefe de departamento, programas que lo integran. De cada Jefe de Departamento es necesario registrar: nombre, apellidos, anexo y celular De cada Programa es necesario registrar: nombre, abreviatura, planer De cada Planer es necesario registrar: nombres, apellidos, anexo y celular De cada Docente es necesario registrar: nombres, apellidos, celular, estado, tipo (TP/TC Tiempo Completo/Tiempo Parcial), departamento al que pertenece De cada Curso programado es necesario registrar: nombre, abreviatura, duración (hrs), capacidad, nro de inscritos, costo, aula para teoría, aula para laboratorio, fecha de inicio, fecha de fin, docente a cargo, programa al que pertenece el curso, resultado de encuesta del curso, resultado de encuesta del docente, resultado de encuesta del material entregado al alumno, estado actual del curso. De cada Persona que se inscribe en un curso es necesario registrar: nombres, nombres, apellidos, DNI, dirección, teléfono fijo, celular, sexo, fecha de nacimiento, email y estado De cada Matricula es necesario neces ario registrar: Fec Fecha ha de matrícula, Nro de documento de dell comprobante entregado por Tecsup, monto de pago, curso al que se ha matriculado, Persona que se ha matriculado. Al finalizar el curso, deberá consignarse el porcentaje de asistencias del participante, la nota final que obtuvo en el curso y el estado actual del registro de matrícula. (algunas veces un participante decide anular la matricula)
Guía de Laboratorio No 4
Pág. 2
Bases de Datos Avanzadas
3. Diagrama entidad relación Departamentos - nombre - jefe - programas
Programas - nombre - abreviatura - planer
Matriculas - fecha_mat - nro_doc - monto - curso - persona - asistencias - nota_final - estado
Docentes - nombres - apellidos - celular - estado - tipo - departamento
4. Estructura de la base de datos en MongoDB
Departamentos - nombre - jefe Programas - nombre - abreviatura Planers - nombres
- apellidos - anexo - celular
Planers - nombres - apellidos - anexo - celular
Cursos - nombre - abreviatura - duración - capacidad - inscritos - costo - aula_teoria - aula_lab - fecha_inicio
- fecha_fin - docente - programa - enc enc curs curso o .. ....
Matriculas - fecha_mat - nro_doc - monto - curso - persona - asistencias - nota_final - estado
Docentes - nombres
- apellidos - celular - estado - tipo - departamento
Personas - nombres - apellidos - dni - dirección - teléfono - celular - sexo - fecha_nac - email - estado
Personas - nombres - apellidos - dni - dirección - teléfono - celular - sexo - fecha_nac
- email - estado
5. Creación de la base de datos en MongoDB 5.1. Solicite al instructor instructor el el archivo archivo de script Lab04.js Lab04.js
Guía de Laboratorio No 4
Pág. 3
Bases de Datos Avanzadas 5.2. Ejecute el script anterior para crear las colecciones en la base de datos Lab04 Lab04 creada al inicio del laboratorio Resultado
{ "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 1, "1": "1" : 2, "2": "2" : 3, "3": "3" : 4 } } 5.3.
Implementar una Departamentos:: Departamentos Nombre Departamento
sentencia
que
permita
obtener
la
siguiente
información
sobre
Nombre de Jefe de Departamento
Código:
db. .Departamentos Departamentos. .find find( ( db {}, {nombre: nombre:1 1,'jefe.nombre' 'jefe.nombre': :1} ); Resultado:
[ { "_id": 1, "_id": "nombre": "nombre" : "Mecanica" "Mecanica", , "jefe": "jefe" : { "nombre": "nombre" : "Juan" "Juan" } }, { "_id": "_id" : 2, "nombre": "nombre" : "Electrotecnia" "Electrotecnia", , "jefe": "jefe" : { "nombre": "nombre" : "Henry" "Henry" } }, { "_id": "_id" : 3, "nombre": "nombre" : "Informatica" "Informatica", , "jefe": "jefe" : { "nombre": "nombre" : "Alfredo" "Alfredo" } } ]
Guía de Laboratorio No 4
Pág. 4
Bases de Datos Avanzadas 5.4.
Implementar una Departamentos:: Departamentos Nombre Departamento
sentencia
que
permita
Nombre de Jefe de Departamento
obtener
la
siguiente
información
sobre
Nombre de Programas que lo integran
Código:
db db. .Departamentos Departamentos. .find find( ( {}, {nombre: nombre:1 1,'jefe.nombre' 'jefe.nombre': :1,'programas.nombre' 'programas.nombre': :1} ); Resultado: [ { "_id": 1, "_id": "nombre": "nombre" : "Mecanica" "Mecanica", , "jefe": "jefe" : { "nombre": "nombre" : "Juan" "Juan" }, "programas": "programas" : [ { "nombre": "nombre" : "Mantenimien "Mantenimiento to }, { "nombre": "nombre" : "Mantenimien "Mantenimiento to } ] }, { "_id": "_id" : 2, "nombre": "nombre" : "Electrotecnia" "Electrotecnia", , "jefe": "jefe" : { "nombre": "nombre" : "Henry" "Henry" }, "programas": "programas" : [ { "nombre": "nombre" : "Electrotecn "Electrotecnia ia }, { "nombre": "nombre" : "Electronica y }, {
de Maquinaria de Planta" Planta"
de Maquinaria Pesada" Pesada"
Industrial" Industrial"
Automatizacion Industrial" Industrial"
"nombre": : "Instalaciones Electrotecnicas" Electrotecnicas" } "nombre" ] }, { "_id": "_id" : 3, "nombre": "nombre" : "Informatica" "Informatica", , "jefe": "jefe" : { "nombre": "nombre" : "Alfredo" "Alfredo" }, "programas": "programas" : [ { "nombre": "nombre" : "Redes y Comunicaciones de Datos" Datos" }, { "nombre": "nombre" : "Diseno de Software e Integracion de Sistemas" Sistemas" } ] ]
}
Guía de Laboratorio No 4
Pág. 5
Bases de Datos Avanzadas
5.5. Implementar una Departamentos:: Departamentos Nombre Departamento
sentencia
que
permita
Nombre de Jefe de Departamento
obtener ob tener
la
si siguiente guiente
Nombre de Programas que lo integran
información info rmación
sobre
Nombre del Planer de cada Programa
Código:
db db. .Departamentos Departamentos. .find find( ( {}, {nombre: nombre:1 1, 'jefe.nombre': 'jefe.nombre' :1, 'programas.nombre': 'programas.nombre' :1, 'planer.nombre': 'planer.nombre' :1 } ); Resultado:
[ { "_id": 1, "_id": "nombre": "nombre" : "Mecanica" "Mecanica", , "jefe": "jefe" : { "nombre": "nombre" : "Juan" "Juan" }, "programas": "programas" : [ { "nombre": "nombre" : "Mantenimiento de Maquinaria de Planta" Planta" }, { "nombre": "nombre" : "Mantenimiento de Maquinaria Pesada" Pesada" } ] }, { "_id": "_id" : 2, "nombre": "nombre" : "Electrotecnia" "Electrotecnia", , "jefe": "jefe" : { "nombre": "nombre" : "Henry" "Henry" }, "programas": "programas" : [ { "nombre": "nombre" : "Electrotecnia Industrial" Industrial" }, { "nombre": "nombre" : "Electronica y Automatizacion Industrial" Industrial" }, { "nombre": "nombre" : "Instalaciones Electrotecnicas" Electrotecnicas" } ] }, { "_id": "_id" : 3, "nombre": "nombre" : "Informatica" "Informatica", , "jefe": "jefe" : { "nombre": "nombre" : "Alfredo" "Alfredo" }, "programas": "programas" : [ { "nombre": "nombre" : "Redes y Comunicaciones de Datos" Datos" }, { "nombre": "nombre" : "Diseno de Software e Integracion de Sistemas" Sistemas" } } ] ]
Guía de Laboratorio No 4
Pág. 6
Bases de Datos Avanzadas 5.6. Implementar una sentencia que permita adicionar un curso nuevo: Código:
db. .Cursos Cursos. .insert insert ([ ([ db { _id: _id: , nombre: nombre: 'Implementacion de I.A.', I.A.', abreviatura:'I.A.' abreviatura: 'I.A.', , _id_prog: _id_prog: 5, duracion: duracion: 70, 70 , capacidad: capacidad: 12 12, , inscritos: 7, inscritos: costo: costo: 870, 870 , aula_teoria: aula_teoria: 'E9' 'E9', , aula_lab: aula_lab: 'E9', 'E9' , id_docente: id_docente: 2, fecha_inicio:'2016-10-09' fecha_inicio: '2016-10-09', , fecha_fin: fecha_fin: '2017-01-07' '2017-01-07', , enc_curso: enc_curso: 0, enc_docente: enc_docente: 0, enc_material:0 enc_material: 0, estado: estado: 'A' 'A' }, ]); Resultado: { "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 3 } } 5.7. Implementar una sentencia que permita adicionar un docente nuevo: Código:
db db. .Docentes Docentes. .insert insert([ ([ { _id: _id: 3, apellidos: apellidos: 'Garcia' 'Garcia', , nombres: nombres: 'Felix', 'Felix' , _id_dep: _id_dep: 1, tipo: tipo: 'E9', 'E9' , celular: celular: '918308309', '918308309' , estado: estado: 'A' 'A' }, ]); Resultado:
{ "acknowledged": "acknowledged" : true true, , "insertedIds": { "insertedIds": "0": "0" : 3 } } Guía de Laboratorio No 4
Pág. 7
Bases de Datos Avanzadas 5.8. Implementar una sentencia que permita adicionar una nueva matricula (de una persona existente): Código:
db. .Matriculas Matriculas. .insert insert([ ([ db { _id: _id: 5, _id_curso: _id_curso: 3, _id_persona: _id_persona: 5, fecha_mat: fecha_mat: '2016-03-10' '2016-03-10', , nro_doc: nro_doc: '002-1001', '002-1001' , monto: monto: 850, 850 , asistencias: asistencias: 1, nota_final: nota_final: 0, estado: estado: 'A' 'A' } ]); Resultado:
{ "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 3 } } 5.9. Implementar una sentencia que permita adicionar una nueva matricula (de una persona nueva, que no existe en la colección Personas): Código:
db db. .Matriculas Matriculas. .insert insert([ ([ { _id: _id: 5, _id_curso: _id_curso: 3, _id_persona: _id_persona: 5, fecha_mat: fecha_mat: '2016-03-10' '2016-03-10', , nro_doc: nro_doc: '002-1001', '002-1001' , monto: monto: 850, 850 , asistencias: 1, asistencias: nota_final: nota_final: 0, estado: estado: 'A' 'A' } ]); Resultado:
{ "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 5 } }
Guía de Laboratorio No 4
Pág. 8
Bases de Datos Avanzadas 6. CASO PROPUESTO: RESERVA DE AMBIENTES Tecsup desea implementar un sistema que permita llevar un control de las reservas de ambientes que realiza el personal de la institución, para ello es necesario tener en cuenta lo siguiente: 1. 2. 3. 4. 5. 6. 7. 8.
Se debe tener un registro de los diferentes departamentos que se tienen en Tecsup así como a cada uno de los programas que integran dichos departamentos. Tener un registro del personal de la institución instituc ión que son quienes solicitaran reservar un ambiente Tener un registro de los ambientes que se tienen en Tecsup, considerando que cada ambiente puede ser Aula, Laboratorio o Taller Tener un registro de cada reserva que se realice. De Departamentos es n necesario ecesario registrar: nombre, programas que lo integran. De los los Ambientes es necesario registrar: nombre, tipo (Teoria, Laboratorio, Taller), capacidad, departamento al que pertenece. De cada Persona es necesario registrar: nombres, apellidos, departamento al que pertenece, cargo, DNI, dirección, teléfono fijo, celular, sexo, fecha de nacimiento, email y estado De cada Reserva es necesario registrar: fecha de la reserva, ambiente, hora de inicio, hora de fin, persona que hace la reserva, una descripción para conocer para que se hizo la reserva, estado final de la reserva (Pendiente, cancelada, otras …)
Actividades a realizar: •
Elaborar el modelo E/R de la base de datos relacional
Sedes
- Id - Departamento - Inauguración
Ambientes
- Nombre - Capacidad - Abreviatura - Tipo
Guía de Laboratorio No 4
Reservas
- Fecha_R - Ambiente - H_Inicio - H_Fin - Nombre - Info - Estado
Personas
- Id - Nombre - Sexo - Celular - Fecha_N - Email - Estado - DNI - Sede
Pág. 9
Bases de Datos Avanzadas •
Elaborar la estructura de la base de datos MongoDB Código: db.Personas db. Personas. .insert insert([ ([ { fecha_r:"2022-11-10" fecha_r: "2022-11-10", , ambiente:"patio" ambiente: "patio", , h_inicio:"08:00" h_inicio: "08:00", , h_fin:"10:00" h_fin: "10:00", , nombre:"Felix" nombre: "Felix", , info:"asdsaasdasdsaddasdasd" info: "asdsaasdasdsaddasdasd", , estado:"A" estado: "A" }, { fecha_r:"2022-11-10" fecha_r: "2022-11-10", , ambiente:"clase" ambiente: "clase", , h_inicio:"12:00" h_inicio: "12:00", , h_fin:"10:00" h_fin: "10:00", , nombre:"Daniel" nombre: "Daniel", , info:"" info: "", , estado:"A" estado: "A" }, { fecha_r:"2022-11-10" fecha_r: "2022-11-10", , ambiente:"clase" ambiente: "clase", , h_inicio:"12:00" h_inicio: "12:00", , h_fin:"02:00" h_fin: "02:00", , nombre:"Adrie" nombre: "Adrie", , info:"fasfaskfjasjdasldmas" info: "fasfaskfjasjdasldmas", , estado:"A" estado: "A" }, { fecha_r:"2022-11-10" fecha_r: "2022-11-10", , ambiente:"patio" ambiente: "patio", , h_inicio:"08:00" h_inicio: "08:00", , h_fin:"10:00" h_fin: "10:00", , nombre:"Elias" nombre: "Elias", , info:"asdasdsadasdasdsdad" info: "asdasdsadasdasdsdad", , estado:"A" estado: "A" }, { fecha_r:"2022-11-10" fecha_r: "2022-11-10", , ambiente:"clase" ambiente: "clase", , h_inicio:"09:30" h_inicio: "09:30", , h_fin:"11:30" h_fin: "11:30", , nombre:"Andrea" nombre: "Andrea", , info:"asddasadasdasdasdad" info: "asddasadasdasdasdad", , estado:"A" estado: "A" } ]);
Guía de Laboratorio No 4
Pág. 10
Bases de Datos Avanzadas
Resultado; { "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : { "$oid": "$oid" : "63254166866ddcc4561c6f48" "63254166866ddcc4561c6f48" }, "1": "1" : { "$oid": "$oid" : "63254166866ddcc4561c6f49" "63254166866ddcc4561c6f49" }, "2": "2" : { "$oid": "$oid" : "63254166866ddcc4561c6f4a" "63254166866ddcc4561c6f4a" }, "3": "3" : { "$oid": "$oid" : "63254166866ddcc4561c6f4b" "63254166866ddcc4561c6f4b" }, "4": "4" : { "$oid": "$oid" : "63254166866ddcc4561c6f4c" "63254166866ddcc4561c6f4c" } } }
Código: db db. .Personas Personas. .insert insert([ ([ {_id: _id:010 010, , nombre:"Felix" nombre: "Felix", ,apellidos: apellidos:"Garcia" "Garcia", ,sexo: sexo:"M" "M", ,celular: celular:"965483225" "965483225", ,fecha_n: fecha_n:" " 1995-0610", 10" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73639471" "73639471", ,sede: sede:"Arequipa" "Arequipa" }, {_id: _id:011 011, , nombre:"Dereck" nombre: "Dereck", ,apellidos: apellidos:"Bautista" "Bautista", ,sexo: sexo:"M" "M", ,celular: celular:"987825554" "987825554", ,fecha_ n:"2004-08n: "2004-0830", 30" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73696541" "73696541", ,sede: sede:"Arequipa" "Arequipa"} } , {_id: _id:012 012, , nombre:"Daniela" nombre: "Daniela", ,apellidos: apellidos:"Rodriguez" "Rodriguez", ,sexo: sexo:"F" "F", ,celular: celular:"928768554" "928768554", ,fech a_n:"2000-09a_n: "2000-0914", 14" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"7332471" "7332471", ,sede: sede:"Trujillo" "Trujillo"}, }, {_id: _id:013 013, , nombre:"Andrea" nombre: "Andrea", ,apellidos: apellidos:"Guerra" "Guerra", ,sexo: sexo:"F" "F", ,celular: celular:"954254371 "954254371 ",fecha_n: fecha_n:"1998-02"1998-0201", 01" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"78422585" "78422585", ,sede: sede:"Lima" "Lima"}, }, {_id: _id:014 014, , nombre:"Denis" nombre: "Denis", ,apellidos: apellidos:"Madera" "Madera", ,sexoa: sexoa:"M" "M", ,celular: celular:"974856123" "974856123", ,fecha_n: "2001-0105", 05" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73479471" "73479471", ,sede: sede:"Trujil "Trujil lo"}, lo" }, {_id: _id:015 015, , nombre:"Elias" nombre: "Elias", ,apellidos: apellidos:"Rigio" "Rigio", ,sexo: sexo:"M" "M", ,celular: celular:"944736258" "944736258", ,fecha_n: fecha_n:"2 "2 003-0717", 17" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"52684863" "52684863", ,sede: sede:"Arequipa" "Arequipa"}, }, {_id: _id:016 016, , nombre:"Sally" nombre: "Sally", ,apellidos: apellidos:"Torres" "Torres", ,sexo: sexo:"F" "F", ,celular: celular:"971846812" "971846812", ,fecha_n: fecha_n:" " 1995-03-
Guía de Laboratorio No 4
Pág. 11
Bases de Datos Avanzadas 20",email: 20", email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73186671" "73186671", ,sede: sede:"Lima" "Lima"}, }, {_id: _id:017 017, , nombre:"Adrie" nombre: "Adrie", ,apellidos: apellidos:"Rojas" "Rojas", ,sexo: sexo:"F" "F", ,celular: celular:"965842651" "965842651", ,fecha_n: fecha_n:"2 "2 005-0624", 24" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73679471" "73679471", ,sede: sede:"Lima" "Lima"} } , ]);
Resultado: { "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 8, "1": "1" : 9, "2": "2" : 10 10, , "3": "3" : 11 11, , "4": "4" : 12 12, , "5": "5" : 13 13, , "6": "6" : 14 14, , "7": "7" : 15 15 } }
Código: db db. .Sedes Sedes. .insert insert([ ([ {_id: _id:1 1,departamento: departamento:"Arequipa" "Arequipa", ,inauguracion: inauguracion:"2009-02"2009-0212", 12" ,ambientes: ambientes:[ [ {nombre: nombre:"A1" "A1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"AT1" "AT1", ,tipo: tipo:"Teoria" "Teoria"}, }, {nombre: nombre:"A5" "A5", ,capcidad: capcidad:"45" "45", ,abreviatura: abreviatura:"AL5" "AL5", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"B1" "B1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"BL1" "BL1", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"A3" "A3", ,capcidad: capcidad:"30" "30", ,abreviatura: abreviatura:"AT3" "AT3", ,tipo: tipo:"Teoria" "Teoria"}, }, {nombre: nombre:"A2" "A2", ,capcidad: capcidad:"38" "38", ,abreviatura: abreviatura:"AT2" "AT2", ,tipo: tipo:"Taller" "Taller"}, }, {nombre: nombre:"C1" "C1", ,capcidad: capcidad:"40" "40", ,abreviatura: abreviatura:"CC1" "CC1", ,tipo: tipo:"Cafeteria "Cafeteria "} ]}, {_id: _id:2 2,departamento: departamento:"Lima" "Lima", ,inauguracion: inauguracion:"2005-11-19" "2005-11-19", ,ambientes: ambientes:[ [ {nombre: nombre:"C2" "C2", ,capcidad: capcidad:"40" "40", ,abreviatura: abreviatura:"Ct2" "Ct2", ,tipo: tipo:"Taller" "Taller"}, }, {nombre: nombre:"A1" "A1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"AT1" "AT1", ,tipo: tipo:"Teoria" "Teoria"}, }, {nombre: nombre:"A5" "A5", ,capcidad: capcidad:"45" "45", ,abreviatura: abreviatura:"AL5" "AL5", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"B1" "B1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"BL1" "BL1", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"A3" "A3", ,capcidad: capcidad:"30" "30", ,abreviatura: abreviatura:"AT3" "AT3", ,tipo: tipo:"Teoria" "Teoria"}, }, {nombre: nombre:"A2" "A2", ,capcidad: capcidad:"38" "38", ,abreviatura: abreviatura:"AT2" "AT2", ,tipo: tipo:"Taller" "Taller"}, }, {nombre: nombre:"C1" "C1", ,capcidad: capcidad:"40" "40", ,abreviatura: abreviatura:"CC1" "CC1", ,tipo: tipo:"Cafeteria "Cafeteria "} ]}, Guía de Laboratorio No 4
Pág. 12
Bases de Datos Avanzadas
{_id: _id:3 3,departamento: departamento:"Trujillo" "Trujillo", ,inauguracion: inauguracion:"2012-05"2012-0505", 05" ,ambientes: ambientes:[ [ {nombre: nombre:"A1" "A1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"AT1" "AT1", ,tipo: tipo:"Teoria" "Teoria"}, }, {nombre: nombre:"A5" "A5", ,capcidad: capcidad:"45" "45", ,abreviatura: abreviatura:"AL5" "AL5", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"B1" "B1", ,capcidad: capcidad:"60" "60", ,abreviatura: abreviatura:"BL1" "BL1", ,tipo: tipo:"Laborator "Laborator io"}, io" }, {nombre: nombre:"A2" "A2", ,capcidad: capcidad:"38" "38", ,abreviatura: abreviatura:"AT2" "AT2", ,tipo: tipo:"Taller" "Taller"}, }, ]} ]) Resultado { "acknowledged": true "acknowledged": true, , "insertedIds": "insertedIds" : { "0": "0" : 1, "1": "1" : 2, "2": "2" : 3 } }
•
Elaborar un script conteniendo sentencias que permitan adicionar algunos documentos a la base de datos Código: db.Personas db. Personas. .insert insert([ ([ {_id: _id:018 018, , nombre: nombre:"Arti" "Arti", , apellidos: pellidos:"Aragon" "Aragon", ,sexo: sexo:"" "", ,celular: celular:"965483225" "965483225", ,fecha_n: fecha_n:"1995-06"1995-0610", 10" ,email: email:"
[email protected]" "
[email protected]", ,estado: estado:"A" "A", ,dni: dni:"73639471" "73639471", ,sede: sede:"Ar "Ar equipa"}, equipa" }, ]); Resultado: { "acknowledged": "acknowledged" : true true, , "insertedIds": "insertedIds" : { "0": "0" : 18 18 } }
•
Elaborar algunas instrucciones en MongoDB que permitan manipular la información de la base de datos. Código: db.Personas db. Personas. .update update( ( {_id: _id:12 12}, }, {$set: $set:{ { sexoa:"M" sexoa: "M", ,
Guía de Laboratorio No 4
Pág. 13
Bases de Datos Avanzadas
celular:"564856123", celular:"564856123" , email:"
[email protected]" email: "
[email protected]", , estado:"B" estado: "B" } }); Resultado: { "acknowledged": true "acknowledged": true, , "insertedId": "insertedId" : null null, , "matchedCount": "matchedCount" : 1, "modifiedCount": "modifiedCount" : 1, "upsertedCount": "upsertedCount" : 0 }
Conclusiones: Indicar las conclusiones que llegó después de los temas tratados de manera práctica en este laboratorio.
Se concluye Que gracias al de Grama de relación se puede hacer una visualización mucho más clara y simple de las tablas y sus tablas y sus relaciones entre sí, el diagrama entidad relación no tiene límite para la relación de tablas ni la cantidad de tablas que se gráfica, las tablas no pueden estar relacionadas si están en diferentes bases de datos.
Guía de Laboratorio No 4
Pág. 14