Documente Academic
Documente Profesional
Documente Cultură
CHALCO
ING. EN SISTEMAS COMPUTACIONALES
REFERENCIA:
ACADEMIC DEVELOPMENT CONTROL
CONTROL DE DESARROLLO ACADMICO
TESIS
QUE PARA OBTENER EL TITULO DE:
Ingeniero en Sistemas Computacionales
P R E S E N T A ( N ):
CORTINA CORTES DIANA PAOLA
GUTIRREZ HEREDIA ZARINA
RAMREZ TELLEZ GERARDO
OBJETIVO GENERAL
Desarrollar un sistema web que lleve un control del historial acadmico de los alumnos de la
Ingeniera en Sistemas Computacionales del Tecnolgico de Estudios Superiores de Chalco, el
cual facilite diagnosticar el estado acadmico en el que se encuentra cada alumno, este sistema se
encargar de enviar alertas a los profesores cuando estos consulten las estadsticas y s estas
sobrepasan los lmites estadsticos establecidos por el sistema.
OBJETIVOS ESPECFICOS
Generar una base de datos para llevar el control del historial acadmico de los alumnos de
cada semestre con la finalidad de que los puedan acceder a ello sin necesidad de pedirlo
en el Departamento de Control Escolar y tambin de que obtengan un conocimiento amplio
de las calificaciones que llevan hasta el momento.
Elaborar un sistema que sea dinmico para permitir a los usuarios (profesores y alumnos)
un fcil manejo y acceso, as como tambin obtener la informacin requerida (historial
acadmico, promedios, rezagos, deserciones, etc.).
Desarrollar un sistema el cual sea responsivo, para que sea adaptable a los diferentes
dispositivos electrnicos.
El sistema a desarrollar debe estar totalmente validado para que las alertas se generen
automticamente al actualizar la base de datos. Tambin validar las cuentas de usuario
para tener el control del acceso de acuerdo al tipo de usuario que ingrese (si es profesor o
alumno).
Efectuar la seguridad del sistema, esto con el fin de que si el usuario que intenta acceder al
sistema, no se encuentra registrado en la base de datos, el sistema deber negar el
acceso, por lo que tendr pedir su registro para poder acceder al sistema.
JUSTIFICACIN
El sistema ADC se llevar a cabo con el fin de que la divisin de Ingeniera en Sistemas
Computacionales del Tecnolgico de Estudios Superiores de Chalco lleve un mejor control del
historial acadmico de cada uno de sus alumnos a lo largo del desarrollo de su carrera, dicho
sistema dar acceso a los profesores y alumnos de esta divisin.
El sistema ADC deber ser capaz de mostrar los datos, estadsticas y alertas sobre la informacin
almacenada en la base de datos de los alumnos de la Ingeniera en Sistemas Computacionales (la
base de datos es administrada y gestionada nicamente por el departamento de Control Escolar).
Los datos que se podrn visualizar en este sistema sern todos los referentes al desarrollo
acadmico de cada estudiante, por ejemplo nmero de crditos con el que cuenta hasta el
momento, si es regular o irregular, semestre en el que se encuentra, entre otros. Las estadsticas
que manejar este sistema sern en base al ndice de reprobacin, rezagos, excelencia acadmica
y desercin, por mencionar algunas de ellas, dichas estadsticas son por cada grupo dentro de la
divisin ISC abarcando desde primer semestre hasta noveno semestre. El sistema mostrar alertas
a los profesores al momento de consultar las estadsticas, si estas indican que los porcentajes
determinados estn a punto de sobrepasar o han sobrepasado el porcentaje lmite, si es as dichas
alertas sern enviadas.
Las estadsticas sern mostradas por medio de grficas y reportes en formato PDF, a los cuales
slo tendrn acceso los profesores, ests herramientas sern de gran utilidad ya que les evitar
tener que calcularlos de manera manual y los arrojar de manera automtica.
La implementacin de alertas en este sistema servir para advertir a los docentes sobre los grupos
que muestren estadsticas que sobrepasen los porcentajes de por ejemplo el ndice de reprobados.
Las alertas podrn ser visualizadas por los profesores cuando estos realicen alguna consulta haca
la base de datos, estas se mostrarn a travs de un mensaje emitido automticamente.
Otro motivo por el cual se realizar este sistema es que a los alumnos de la ISC les ser de
mucha utilidad ya que podrn consultar su historial acadmico, es decir, cuntas materias y cules
han cursado hasta el momento, cuntos crditos llevan, que materias llevan reprobadas (en caso
de haber reprobado alguna), promedio general hasta el momento; esto con la finalidad de
ahorrarles tiempo en hacer filas en el departamento de Control Escolar al pedir una impresin de
dicho historial acadmico, ya que dicho departamento es el encargado de proporcionar al alumno
dicha informacin.
Cabe destacar que el sistema nicamente se limitar a dar las estadsticas y alertas a los
profesores como se mencion anteriormente ya que a ellos es a quien les interesa conocer esta
informacin y de esta manera puedan realizar estrategias para no sobrepasar el lmite de ndice de
reprobacin, en cuanto a los estudiantes nicamente les servir como medio de consulta de su
historial acadmico.
informacin a alumnos
docentes
de la carrera de
siguientes variables: 1) rendimiento acadmico de los estudiantes, 2) posibles bajas por nmero de
especiales que lleve el alumno y 3) nmero de materias recursadas.
Un historial acadmico es el documento que enlista y describe los grados cursados en una o varias
instituciones educativas.
El historial acadmico se expide por una institucin pblica o privada, pero debe estar ratificada por
la institucin educativa del estado, la cual le da validez oficial.
No existe un formato en especfico, por ello existen versiones electrnicas, e impresas diferentes,
pero deben cumplir con caractersticas que lo distinguen, tales como:
HIPOTSIS
El sistema Academic Development Control (ADC) reducir tanto tiempo como esfuerzo en los
profesores en un 90% al momento de consultar el nmero de alumnos que han aprobado o
reprobado la materia que imparten ya que este sistema arrojar reportes detallados que
contendrn dicha informacin
promedios por grupo, materia, semestre, etc.) por lo que los docentes se ahorrarn el tiempo de
pedir los reportes a control escolar, as como tambin el calcular manualmente el nmero de
alumnos ya sea regulares o irregulares, promedios e ndices de reprobacin, entre otras
estadsticas que les sean necesarias.
Determinacin de variables:
Variables independientes:
a) Docentes
b) Alumnos
Variables dependientes:
a)
b)
c)
d)
e)
f)
ndices de reprobacin
rezagos
promedios por alumno
materias cursadas
crditos obtenidos
bajas por materias reprobadas
Tamao de la muestra:
NpqZ
n=
d ( N1 )pq
Donde:
n = Tamao de la muestra
N = Tamao del universo o poblacin
p = Probabilidad de xito o proporcin esperada
q = Probabilidad de fracaso
Z = Es la desviacin del valor medio que aceptamos para lograr el nivel de confianza deseado.
d = Error mximo admisible en trminos de proporcin (Precisin).
Al aplicar la frmula nos queda de la siguiente manera:
7000.50.5(1.96)2
n=
=128.23
0.03 ( 7001 )0.50.5
Donde:
N = Se tom un universo de 700 usuarios ya que la carrera de ISC consta de aproximadamente
650 alumnos y 50 profesores.
p = Como se desconoce la proporcin esperada se utiliza el criterio conservador (p = q= 0.5).
q = Segn la frmula q =1 p, por lo tanto el resultado es 1 0.5 = 0.5.
Z = Se tom un valor de confianza del 95%.
d = El valor de error de precisin es del 3%
Por lo tanto, el resultado de la muestra consta de 128 personas.
Correlacin de Pearson:
Nmero de alumnos
Semestre actualmente cursado
Tabla de resultados:
Semestre
Primero
Segundo
Tercero
Cuarto
Quinto
Sexto
Sptimo
Octavo
Noveno
Alumnos
6
9
10
17
13
20
25
18
10
Cr =
x y . n
N
Donde:
Cr = Coeficiente de correlacin
dx = Es la desviacin tpica de la variable x.
dy = Es la desviacin tpica de la variable y.
dn = Desviacin estndar.
N= Nmero total de la poblacin.
Por lo tanto, la siguiente frmula nos servir para calcular la desviacin estndar de las variables:
( x x )2
=
; x =14.22
n
Donde:
= Promedio
614.22
914.22
1014.22
1714.22
1314.22
2014.22
2514.22
1814.22
1014.22
( xx )2
x=
=
n
= 2.37
Cr =
2.37
=0.01
128
En conclusin, podemos decir que la hiptesis puede llegar a ser aceptada ya que las variables
estn dbilmente relacionadas entre s.
Chi-Cuadrada
Una prueba de chi-cuadrado es una prueba de hiptesis que compara la distribucin observada de
los datos con una distribucin esperada de los datos.
Existen varios tipos de pruebas de chi-cuadrado:
Prueba de chi-cuadrado de bondad de ajuste: Se utiliza este anlisis para probar qu tan bien
una muestra de datos categricos se ajusta a una distribucin terica.
Pruebas de chi-cuadrado de asociacin e independencia: Los clculos para estas pruebas son
iguales, pero la pregunta que se est tratando de contestar puede ser diferente.
Prueba de asociacin: Esta prueba de asociacin sirve para determinar si una variable
est asociada a otra variable. Por ejemplo, determina si las ventas de diferentes colores de
RARA
ALGUNAS
CASI
VEZ
VECES
SIEMPRE
17
10
11
24
17
NUNCA
ACADMICO
Alumnos que han
reprobado
por
lo
SIEMPRE
TOTAL
45
15
15
17
65
25
22
22
110
ninguna
materia
TOTAL
De acuerdo a los datos de la tabla anterior, nos permiten afirmar que el desarrollo acadmico de
los alumnos depende de la frecuencia con la que repasan sus temas?
Para ello utilizaremos un nivel de significancia de 0.10.
Las hiptesis planteadas son las siguientes:
H0 (hiptesis nula): El desarrollo acadmico es independiente de la frecuencia con la que los
alumnos repasan los temas que les proporcionan los profesores en cada una de las materias.
H1 (hiptesis alterna): El desarrollo acadmico depende de la frecuencia con la que los alumnos
repasan los temas que les proporcionan los profesores en cada una de las materias.
Para comenzar con el clculo de la chi-cuadrada primero obtendremos las frecuencias esperadas
suponiendo que las variables fueran independientes, es decir, si fuera positiva la hiptesis nula,
estas se obtendrn de la distribucin de frecuencias del total de los casos, 45 alumnos de un total
de 110 han reprobado por lo menos una materia y 65 de 110 no han reprobado ninguna.
Nuestro siguiente paso es colocar estos valores en nuestra tabla anterior de la siguiente manera:
FRECUENCIA DE ESTUDIO (REPASO DE TEMAS)
DESARROLLO
RARA
ALGUNAS
CASI
VEZ
VECES
SIEMPRE
9.81
6.95
10.22
14.18
10.04
24
17
NUNCA
ACADMICO
Alumnos que han
reprobado
por
lo
SIEMPRE
TOTAL
9.0
9.0
45
14.77
13.0
13.0
65
25
22
22
110
ninguna
materia
TOTAL
Xo =
2
( O i Ei )
Ei
Donde:
Xo2= Prueba de chi-cuadrada
Oi = Frecuencia observada
Ei= Frecuencia esperada
Donde:
gl = Grados de libertad
Por lo tanto, en nuestra tabla tenemos 2 filas y 5 columnas, al aplicar la frmula de los grados de
libertad obtenemos el siguiente resultado:
gl=( 21 ) ( 51 )=4
En conclusin, debemos descartar la hiptesis nula y aceptar la hiptesis alternativa que plantea
que las variables Desarrollo Acadmico y
la Frecuencia de
alumnos son dependientes por lo que nuestro valor de la prueba estadstica es mayor a nuestro
valor crtico para la distribucin Xo2.
KOLMOGOROV-SMIRNOV
Planteamiento de la hiptesis.
Hiptesis alterna (Ha). Los valores observados de las frecuencias para la edad son diferentes de
las frecuencias tericas de una distribucin normal.
Hiptesis nula (Ho). Las diferencias entre los valores observados y los tericos de la distribucin
normal se deben al azar.
Nivel de significacin.
Para todo valor de probabilidad igual o menor que 0.05, se acepta Ha y se rechaza Ho.
Zona de rechazo.
Para todo valor de probabilidad mayor que 0.05, se acepta Ho y se rechaza Ha.
Tabla de 128 alumnos. Los valores X + s son 19 2.85.
EDADES
FA
18 A 20
21 A 23
24 A 26
27 A 29
TOTAL
45
50
20
13
128
45
95
115
128
Z 18=
X X 1819
=
=0.35
2.85
Z 20=
X X 2019
=
=0.35
2.85
Z 23=
X X 2319
=
=1.40
2.85
Z 26=
X X 2619
=
=2.45
2.85
Z 29=
X X 2919
=
=3.50
2.85
Valor Z de los
limites
-0.35
0.35
1.40
2.45
3.50
rea bajo la
curva
tipificada
-0.1368
0.1368
0.4192
0.4929
0.4998
Diferencias
entre las
clases
Diferencias
N(128) = F
Fa
0.2736
0.2824
0.0737
0.0069
2.73
2.82
7.37
6.9
19.82
2.7
5.55
12.92
19.82
1
2.7
128
45
128
2
5.55
128
95
128
3
12.92
128
115
128
4
19.82
128
128
128
Ft-fobs
-0.330
-0.698
-0.797
-0.845
D= Ft Fobs = -0.330
La diferencia mxima D es igual a -0.845.
1.36
=0.120
128
0.05=
METODOLOGA
Mtodo de anlisis-sntesis
Es un mtodo que consiste en la separacin de las partes de un todo para estudiarlas en forma
individual (Anlisis), y la reunin racional de elementos dispersos para estudiarlos en su totalidad.
(Sntesis).
Anlisis
Del griego analizas: descomposicin, fragmentacin de un cuerpo en sus principios constitutivos.
Mtodo que va de lo compuesto a lo simple.
Proceso cognoscitivo por medio del cual una realidad es descompuesta en partes para su mejor
comprensin.
Separacin de un todo en sus partes constitutivas con el propsito de estudiar stas por separado,
as como las relaciones que las unen.
Sntesis
Del griego sntesis: mtodo que procede de lo simple a lo compuesto, de las partes al todo, de la
causa a los efectos, del principio a las consecuencias. Composicin de un todo por la reunin de
sus partes.
Reunin de las partes o elementos para analizar, dentro de un todo, su naturaleza y
comportamiento con el propsito de identificar las caractersticas del fenmeno observado.
Las reglas del mtodo de anlisis-sntesis son:
Descomposicin. Anlisis
exhaustivo
de
todos los
detalles,
comportamientos
partes.
Enumeracin. Desintegracin de los componentes a fin de identificarlos, registrarlos y
ANLISIS FODAC
El anlisis FODAC para la elaboracin de este sistema es el siguiente:
FORTALEZAS
-
Previos conocimientos en
programacin web.
OPORTUNIDADES
-
Implementacin de una o ms
funciones en JavaScript complejas.
DEBILIDADES
AMENAZAS
ACCIONES:
-
funciones.
Investigar en libros, videos y artculos de cmo se llevan a cabo las sentencias en NoSQL
CAPTULO 2
MARCO TERICO
2.1 PHP
PHP es un acrnimo recursivo para PHP: Hypertext Preprocessor, originalmente Personal Home
Page, es un lenguaje interpretado libre, usado originalmente solamente para el desarrollo de
aplicaciones presentes y que actan en el lado del servidor , capaces de generar contenido
dinmico en la World Wide Web.
PHP es software libre, licenciado bajo la PHP License, una licencia incompatible con la GNU
General Public License (GPL) debido a las restricciones en los trminos de uno de PHP. Se trata
de un lenguaje extremadamente modularizado, lo que lo hace ideal para la instalacin y el uso en
servidores web. Diversos mdulos son creados con el repositorio de extensiones PECL (PHP
Extension Community Library) y algunos de estos mdulos son introducidos como patrn en
nuevas versiones del lenguaje. Es muy parecido, en tipos de datos, sintaxis y dems funciones,
con el lenguaje C y con C++ (Arias, 2013).
PHP es un lenguaje de programacin. Con una sintaxis similar a los lenguajes C y Perl, que se
interpreta por un servidor web Apache y genera cdigo HTML dinmico. Es decir, permite crear un
programa que se pueda ejecutar en el servidor desde un programa visualizador de pginas web y
dar respuestas en funcin de los datos que introduzca el usuario. El cliente nunca ver el cdigo
del programa PHP, slo le llegarn las pginas HTML que genere el programa. A diferencia de
JavaScript, que se ejecuta en las mquinas clientes, un programa PHP se ejecuta en el servidor
web (Muoz R.).
publicado bajo un nuevo nombre, que elimin la implicacin del uso limitado personal que el
nombre PHP/FI tena. Fue renombrado simplemente como 'PHP', con el significado de un acrnimo
recursivo - PHP: Hypertext Preprocessor.
Una de las mejores caractersticas de PHP 3.0 era su gran extensibilidad. Adems de proveer a los
usuarios finales de una interfaz madura para mltiples bases de datos, protocolos, y APIs, la
sencillez de ampliar el lenguaje mismo atrajo a docenas de desarrolladores que presentaron
variedad de mdulos. Podra decirse que esta fue la clave para el tremendo xito de PHP 3.0.
Otras caractersticas clave introducidas en PHP 3.0 incluan el soporte para programacin
orientada a objetos y una sintaxis de lenguaje mucho ms potente y consistente.
En junio de 1998, con muchos nuevos desarrolladores de todo el mundo unidos al esfuerzo, PHP
3.0 fue anunciado por el nuevo Equipo de Desarrollo de PHP como el sucesor oficial de PHP/FI
2.0. El desarrollo activo de PHP/FI 2.0, que estaba casi parado desde noviembre del ao anterior,
fue oficialmente finalizado. Despus de aproximadamente nueve meses de pruebas pblicas,
cuando el anuncio de la versin oficial de PHP 3.0 vino, ya estaba instalado en ms de 70,000
dominios de todo el mundo, y ya no estaba limitado a sistemas operativos compatibles con POSIX.
Una relativamente pequea parte de los dominios que tenan instalado PHP estaban albergados en
servidores que ejecutaban Windows 95, 98, y NT, y Macintosh. En este punto, PHP 3.0 estaba
instalado en aproximadamente el 10% de los servidores web de Internet.
En el invierno de 1998, poco despus del lanzamiento oficial de PHP 3.0, Andi Gutmans y Zeev
Suraski comenzaron a trabajar en una nueva versin del ncleo de PHP. Los objetivos de diseo
fueron mejorar la ejecucin de aplicaciones complejas y mejorar la modularidad del cdigo base de
PHP. Estas aplicaciones se hicieron posibles por las nuevas caractersticas de PHP 3.0 y el apoyo
de una gran variedad de bases de datos y APIs de terceros, pero PHP 3.0 no estaba diseado
para un mantenimiento tan complejo de aplicaciones eficientemente.
El nuevo motor, apodado 'Motor Zend' (proviene de sus nombres de pila, Zeev y Andi), alcanz
estos objetivos de diseo satisfactoriamente, y se introdujo por primera vez a mediados de 1999.
PHP 4.0, basado en este motor, y asociado con un gran rango de nuevas caractersticas
adicionales, fue oficialmente publicado en Mayo del 2000, casi dos aos despus que su
predecesor. Adems de la mejora de rendimiento de esta versin, PHP 4.0 inclua otras
caractersticas clave como el soporte para la mayora de los servidores Web, sesiones HTTP,
buffers de salida, formas ms seguras de controlar las entradas de usuario y muchas nuevas
construcciones de lenguaje.
PHP 5 fue lanzado en Julio del 2004 despus de un largo desarrollo y varios pre-releases. Est
bsicamente impulsado por su ncleo, Zend Engine 2.0 que contiene un nuevo modelo de objetos
y docenas de nuevas opciones.
PHP tambin cuenta con soporte para comunicarse con otros servidores usando protocolos tales
como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Tambin se
pueden crear sockets puros e interactuar usando cualquier otro protocolo. PHP soporta WDDX
para el intercambio de datos entre lenguajes de programacin web.
PHP tiene tiles caractersticas de procesamiento de texto, las cuales incluyen las Expresiones
Regulares Compatibles de Perl (PCRE), muchas extensiones, y herramientas para el acceso y
anlisis de documentos XML. PHP estandariza todas las extensiones XML sobre el fundamento
slido de libxml2, y extiende este conjunto de caractersticas aadiendo soporte para SimplXML,
XMLReader y XMLWriter (Eslava Muoz, 2013).
Proteccin del cdigo. Al tener el cdigo ejecutable albergado en cliente servidor, este cdigo est
protegido tanto de la manipulacin de los usuarios como de la presencia de virus.
Facilidad de aprendizaje. Es realmente fcil aprender a programar en PHP. Cualquier persona que
sepa algn lenguaje de programacin puede aprender los fundamentos de PHP en un breve
espacio de tiempo (Muoz R.).
Bibliotecas en PHP
PHP incorpora, sin necesidad de ningn tipo de instalacin ni habilitacin extras, una gran cantidad
de bibliotecas, por lo cual contaremos con mltiples funciones para comenzar a desarrollar sitios
profesionales. Entre estas extensiones se encuentran:
Para que los cambios (en este caso, la habilitacin o deshabilitacin de extensiones) tengan efecto,
habr que reiniciar el servidor web.
Instrucciones
Las instrucciones en PHP finalizan con un ; (punto y coma), y tambin se reconoce como
equivalente la etiqueta de fin de bloque (?>).
Variables
Una variable es un lugar reservado para almacenar valores. Cada una est identificada por un
nombre, generalmente referido al tipo de dato que almacenar, y comienza con el signo $ seguido
de su nombre, el cual deber empezar con una letra o un guion bajo y, a continuacin, cualquier
nmero de letras, guiones bajos, y nmeros.
Tambin, dentro del lenguaje, contamos con funciones para saber si una variable pertenece a un
tipo especfico o no. Todas devuelven verdadero si corresponden al tipo o falso en caso de no
pertenecer:
Constantes
Las contantes en PHP se generan a travs de la funcin define, que recibe como argumentos un
nombre y un valor para la constante. Una constante, a diferencia de lo que sucede con una
variable, no puede modificar su valor a lo largo del script.
Expresiones
PHP soporta el pre y el post incremento y decremento. Entre las expresiones de comparacin se
cuentan, entre muchas otras, con las siguientes opciones:
Una expresin se evala como verdadera si es verdadera, o distinta de falso. Segn PHP, algo es
falso cuando es nulo, cero, vaco, etctera.
Ms all de las variables creadas por los usuarios, PHP provee ciertos arrays especiales a partir de
los cuales podemos acceder a variables predefinidas. Los arrays disponibles son los siguientes:
$GLOBALS permite acceder a cualquier variable del script actual desde cualquier mbito.
$_SERVER almacena variables definidas por el servidor web, por ejemplo, nombre de la
operativo, etctera.
$_REQUEST da la posibilidad de llegar a las variables contenidas en $_GET, $_POST, y
$_COOKIES.
$_SESSION almacena variables de sesin, que son aquellas que mantienen su valor aun
cuando el usuario salta de una pgina a otra. Tipos de datos
PHP pone a disposicin de los programadores distintos tipos de datos para definir el contenido
de las variables:
Tipo booleano (boolean) puede tomar uno de dos valores: verdadero (true) o falso
(false).
Enteros (integer) pone a disposicin una serie de notaciones en distintas bases:
Estructuras de Control
PHP cuenta con construcciones que permite realizar tarea variadas, por ejemplo, tomar una accin
u otra dependiendo del valor de una expresin, o repetir instrucciones un nmero N de veces
(Minera, 2008).
Durante el 2007, con la aparicin de Dynamo por parte de Amazon, se marca un momento
importante dentro de la historia de las bases de datos NoSQL.
A principios del 2008 se inicia otro proyecto importante en bases de datos NoSQL, Cassandra, el
cual es un sistema de bases de datos NoSQL, que se caracteriza por la gran disponibilidad, ste
fue implementado por Facebook y luego sustituy a MySQL como base de datos en Twitter.
(Escobar, 2013).
En 2013, contina el despliegue de las bases de datos NoSQL unido al progreso de Hadoop.
Ambas tecnologas avanzarn en las infraestructuras de TI de las organizaciones, y seguirn
saliendo al mercado soluciones de software abierto y propietario, por lo que ser preciso que los
directores de sistemas de informacin, CIO, perfilen estrategias para conseguir su implementacin
dentro de las compaas y la consecucin de la mxima productividad posible. El ao de 2013,
inici con la presentacin de algunas novedades o actualizacin de las ltimas versiones de
diferentes proveedores. Veamos las presentaciones ms sobresalientes:
Apache Cassandra 1.2: La base de datos NoSQL de cdigo abierto, Cassandra, mejora sus
capacidades para gestionar grandes volmenes de datos sin comprender el rendimiento de los
sistemas, y aumenta su popularidad. La fundacin Apache anunci a primeros de enero de 2013 su
ltima versin, Cassandra 1.2.
Oracle NoSQL Database 2.0: A finales de diciembre de 2012, Oracle present la nueva versin de
la base de datos NoSQL Database 2.0 que aade ms escalabilidad y menor latencia. De entre las
novedades destacables se encuentra la alta escalabilidad y la baja latencia para dar respuesta en
tiempo real a las cargas de trabajo que se producen con los grandes volmenes de informacin.
Figura 8. Oracle NoSQL Database proporciona un modelo de transaccin poderosa y flexible que
simplifica enormemente el proceso de desarrollo de una aplicacin basada en NoSQL.
Intel entra en NoSQL: Intel ha decidido entrar en el capital de la compaa IOgen, empresa que
desarrolla la base de datos NoSQL basada en cdigo abierto, MongoDB.
Google BigTable contina creciendo con NoSQL: Google BigTable sigue siendo una de las
bases de datos tabulares (por columnas) de mayor influencia en la industria, pero no est
disponible para uso comercial fuera de Google que la utiliza en su oferta de Plataforma como
Servicio, Google App Engine. El crecimiento continuo de popularidad de Hadoop y HBase potencia
a BigTable. HBase es una base de datos inspirada en el trabajo de Google y Hadoop ofrece la
misma funcionalidad map reduce introducida en BigTable.
Figura 10. NoSQL es especialmente til cuando una empresa necesita acceder y analizar
grandes cantidades de datos no estructurados o datos que se almacenan de forma
remota en varios servidores virtuales en la nube.
Las bases de datos NoSQL (si bien existen muchos seguidores de NoSQL que prefieren llamarlas
simplemente herramientas NoSQL) han sido diseadas para manipular grandes volmenes de
datos de manera muy rpida, y no siguen el modelo entidad-relacin tpico de las bases de datos
tradicionales.
Las bases de datos relacionales, aunque tienen unas caractersticas muy potentes para el manejo
de tipos de datos mediante el lenguaje SQL, su funcionamiento se ralentiza considerablemente
cuando aumenta el volumen de datos por manipular. Las bases de datos tradicionales basan su
funcionamiento en tablas, joins, y transacciones ACI, mientras que las bases de datos NoSQL no
requieren una estructura de datos en forma de tablas y relaciones entre ellas, y no imponen un
esquema prefijado de tablas. Las bases de datos NoSQL son ms flexibles, ya que suelen permitir
informacin en otros formatos como clave-valor, mapeado de columnas, documentos o grafos.
Las bases de datos NoSQL difieren del modelo clsico de sistemas de gestin de bases de datos
relacionales (SGBDR) en aspectos importantes; entre ellos, el ms notable es que no utilizan SQL
como lenguaje de consultas.
Los datos almacenados no requieren estructuras fijas como tablas, normalmente no soportan
operaciones join ni garantizan las caractersticas diferenciadoras ACID (atomicidad, coherencia,
aislamiento
durabilidad),
aunque
al
final
terminan
cumpliendo
estas
caractersticas.
Habitualmente son muy escalables en sentido horizontal, tanto para recursos como para usuarios.
Figura 11. NoSQL no prohbe el lenguaje estructurado de consultas (SQL). Es cierto que algunos
sistemas NoSQL son totalmente no-relacionales, otros simplemente evitan funcionalidades
relacionales.
La tpica base de datos relacional (Oracle, DB2, MySQL) utiliza tablas y esquemas (agrupaciones
de tablas), donde cada tabla tiene filas y columnas; las columnas son el tipo de datos que se desea
guardar y las filas son, en s, cada conjunto de datos.
Las bases de datos NoSQL no utilizan SQL, y no existen las tablas tal como se conoce en las
bases de datos relacionales, sino que la informacin se almacena de modo distinto (clave-valor, por
documentos, grafos). Las caractersticas principales de las bases de datos NoSQL son:
1.
2.
3.
4.
Figura 13. Las grandes redes sociales como Facebook, Twitter o LinkedIn, o buscadores
como Google o Yahoo, utilizan NoSQL como soporte fundamental de almacenamiento de
datos.
Ninguna base de datos NoSQL implementa aislamiento de datos, pero son tolerantes a fallos y
redundancia en sus datos. Mejoran el rendimiento al no realizar una traduccin SQL de cada
sentencia para ser ejecutadas (Borja, 2012).
MongoDB es una base de datos de documentos, NoSQL, muy utilizada (algunas estadsticas la
consideran la nmero uno del mundo), diseada para reemplazar a las SQL tradicionales de uso
general. Es de cdigo abierto y escrita en C++. Actualmente, est disponible para Windows, Linux y
otros sistemas operativos.
Figura 14. Las organizaciones ms sofisticadas del mundo, desde las startups de ltima
generacin hasta las corporaciones ms grandes, utilizan MongoDB para crear aplicaciones
que no eran posibles hasta ahora.
Procede del ingls humongous (enorme) y es un sistema de base de datos NoSQL orientado a
documentos. Al ser de tipo documentos, las estructuras de datos se guardan en documentos con
un esquema dinmico pero siguiendo la notacin de JSON, estas estructuras dinmicas que son
denominadas por MongoDB como BSON, lo que implica que no exista un esquema predefinido,
pudiendo un documento no tener todos los campos definidos para ese documento lo que lo hace
que la integracin de los datos en ciertas aplicaciones sea ms fcil y rpida.
Los almacenes de documentos abarcan una amplia coleccin de formatos y codificacin binaria.
Los formatos de marcacin estndar tales como XML y JSON se combinan con formatos
propietarios como PDF de Adobe o Word de Microsoft.
documentos se conoce con el nombre de coleccin, que en base de datos SQL se las conoce
como tabla.
Ahora teniendo una idea de lo que es un documento y una coleccin se puede decir que:
Figura 17. JSON naci como una alternativa a XML, el fcil uso en JavaScript ha
generado un gran nmero de seguidores de esta alternativa.
MongoDB presenta una serie de caractersticas, las cuales le han ayudado a posicionarse como
una base de datos preferencial por las compaas, debido a dichas caractersticas MongoDB se
adeca perfectamente para los usos de:
Juegos en lnea
Comercio electrnico
Solucin de problemas con grandes volmenes de informacin
Sistemas de manejo de documentos y contenidos
Almacenamiento de datos operacionales de un sitio web
Almacenamiento de votaciones
Registros y perfiles de usuarios
Estadsticas en tiempo real
Manejo de bitcoras
Es importante resaltar que las bases de datos NoSQL al no manejar ACID no son recomendables
para manejar transacciones monetarias importantes o cuentas bancarias, sin embargo, en el caso
de MongoDB, hay empresas que la han utilizado en la implementacin de transacciones de esa
ndole (Escobar, 2013).
MongoDB cuenta con una serie de herramientas que permiten trabajar con la base de datos desde
diferentes perspectivas, y tratar con ella para diferentes propsitos, destacan entre ellas:
Las bases de datos NoSQL hacen gala de una alta escalabilidad horizontal, que en resumidas
cuentas supone la capacidad de adaptacin de un sistema al aumento de informacin con los que
trabajar. MongoDB presenta una arquitectura que facilita la ejecucin de esta importante tarea, y
presenta un mtodo para dividir los datos entre los mltiples servidores que pudiera presentar una
solucin escalada: el Sharding. El principal punto fuerte de este mtodo es que se ejecuta de forma
automtica, permitiendo siempre una gil distribucin de datos entre todos los equipos que se
encuentren trabajando.
Replicacin
Para dotar de consistencia a nuestro sistema, y particularmente a una base de datos NoSQL como
MongoDB, resulta muy aconsejable el uso de la replicacin, y la propuesta estudiada aporta
buenas soluciones a tal cuestin.
MongoDB, es ms flexible que las bases de datos relacionales, y por ello menos restrictivo, lo que
puede presentar en ocasiones problemas de volatilidad. Esto es del todo indeseable en las bases
de datos.
MongoDB manda los documentos escritos a un servidor maestro, que sincronizado a otro u otros
servidores mandar esta misma informacin replicada, a estos esclavos. Hay muchas opciones
para trabajar con esta utilidad, por lo que podremos escribir todo o parte segn nuestras
necesidades. De especial importancia es el hecho de que si el servidor maestro cae, uno de los
esclavos puede ocupar su lugar y permitir as que el servicio contine.
Escalabilidad Horizontal
Las bases de datos relacionales comerciales con capacidad distribuida suelen tener unas licencias
realmente costosas, por lo que resulta interesante buscar alternativas eficientes y de bajo coste
para nuestro sistema.
Cuando se trabaja con una base de datos en un solo equipo, el nmero de estados posibles se
reduce a Up, o Down, pero cuando se tiene un sistema de bases de datos distribuido, el nmero de
opciones aumenta, en tanto en cuanto existen dependencias entre los nodos que llevar a trabajar
con un mayor nmero de opciones; puede ocurrir que uno de los servidores caiga, o que no haya
comunicacin entre algunos nodos, o que la comunicacin sea muy lenta.
El hecho de meter mayor nmero de nodos conlleva un aumento de la complejidad de la solucin;
por suerte, las soluciones NoSQL han sido pensadas para reducir al mnimo este nmero de
inconvenientes, y hacer que la tarea de distribuir las bases de datos no sea excesivamente ardua.
En este contexto, MongoDB resulta ser una excelente eleccin, que por el hecho de ser open
source ya supone un ahorro considerable en cuanto a coste de herramientas comerciales para la
distribucin de bases de datos.
Una vez se ha llegado a la conclusin de que necesitamos un clster, hemos de meternos en
materia para conocer cmo funciona con MongoDB y cmo llevarlo a cabo.
En primer lugar, decir que un clster es un conjunto de servidores distribuidos para un propsito
comn, en nuestro caso, una base de datos.
Sharding
MongoDB utiliza el Sharding como mtodo para dividir los datos a lo largo de los mltiples
servidores de nuestra solucin. Las bases de datos relacionales tambin hacen tareas similares a
sta, si bien de forma diferente. Tal vez el rasgo ms destacable en MongoDB pasa porque realiza
estas tareas de manera automtica.
A continuacin se hablar de clster habitualmente, para lo que habra que indicar que se trata de
un conjunto de equipos que trabajan conjuntamente ofreciendo una imagen de equipo nico al
exterior.
Una vez se ha indicado a MongoDB que se va a distribuir la base de datos, aadiendo un nuevo
nodo al clster, ste se encarga de balancear los datos, (distribuir los datos de forma eficiente entre
todos los equipos), entre los servidores de forma automtica. Los objetivos del Sharding en
MongoDB pasan por:
1. Un clster transparente: Nos interesa que a la hora de presentar el trabajo sea indiferente
si se trabaja con uno o varios servidores. Para satisfacer esto, MongoDB hace uso de un
proceso de enrutamiento, al que llaman mongos. Los mongos se colocan frente al clster, y
de cara a cualquier aplicacin, parece como si estuviera delante de un servidor individual
MongoDB. Mongos reenva la consulta al servidor o servidores correctos, y devuelve al
cliente la respuesta que ste ha proporcionado.
2. Disponibilidad para lecturas y escrituras: Siempre que no existan causas de fuerza mayor,
(como cada masiva de la luz), debemos asegurar la disponibilidad de escritura y lecturas
en nuestra base de datos. Antes de que se degrade excesivamente la funcionalidad del
sistema, el clster debe permitir fallar tantos nodos como sean necesarios. MongoDB hace
que algunos de los procesos del clster tengan redundancia en otros, de forma que si cae
un nodo, otro puede continuar con estos procesos.
3. Crecimiento gil: Nuestro clster debe aadir o reducir capacidad cuando lo necesite.
Un shard es uno o varios servidores de un clster que son responsables de un subconjunto de
datos del mismo, (un clster con 1.000.000 de documentos, un shard por ejemplo con 200.000). En
el caso de que el shard est compuesto por ms de un servidor, cada uno de estos tendr una
copia idntica del subconjunto de datos.
Balanceo
El balanceador es un proceso de MongoDB para equilibrar los datos en nuestro sistema. Mueve
porciones de datos de un shard a otro, de manera automtica, lo que supone una ventaja
apreciable. Si el administrador no quisiera que esto se llevara a cabo, habra que deshabilitar dicha
opcin.
Para que existan particiones debemos crear datos de al menos 2GB, aunque podemos modificar
esto con el comando, chunksize N, donde N es el tamao en MB.
Actualizaciones
La forma ms sencilla de actualizacin es a travs del comando Update, que toma dos
argumentos, uno de los cuales ser el selector que indicar dnde que modificar, y el otro ser el
campo que hay que modificar, con el valor concreto.
Consistencia.
A la hora de aplicar consistencia sobre los datos de una base de datos, nos encontramos con dos
modelos de actuacin, pesimista u optimista. El primero, previene los conflictos, es decir, el sistema
posee bloqueos de escritura que va dando para que slo se pueda ejecutar una operacin. El
segundo, sirve para detectar y solucionar los conflictos que se produzcan. En este modelo se
informa de los errores de consistencia dando la posibilidad de intentar de nuevo hacer cambios
sobre la base de datos.
Al hablar de varios servidores y varios nodos, el confirmar la consistencia se complica, teniendo
que asegurar que se cumple la consistencia secuencial donde las operaciones se aplican en el
mismo orden.
Existen otras formas de trabajar, como la posibilidad de guardar las actualizaciones y registros que
entren en conflicto y de alguna manera combinar los resultados o trabajar con algn lenguaje de
programacin para corregir posibles errores entre los registros.
Aunque parezca que la versin pesimista es ms cmoda, puede que este enfoque disminuya la
capacidad de respuesta del sistema y aumenta el peligro de errores de concurrencia.
La replicacin hace que estos errores de escritura persistan, ya que si diferentes nodos tienen
diferentes copias de los datos actualizados de manera independiente, pueden seguir ocurriendo
conflictos de escritura. El uso de un nico nodo como destino de todas las escrituras de los datos
hace que sea mucho ms fcil de mantener la coherencia en las actualizaciones. Nuestros datos y
nuestra base de datos deben tener una coherencia lgica, donde todo el conjunto de datos que se
pueda suministrar tenga coherencia en conjunto.
Adems, para asegurar la consistencia en sistemas replicados debemos asegurar que los datos
tienen el mismo valor cuando son ledos desde cualquiera de las rplicas. Ese tiempo que tardan
las rplicas en actualizar los cambios debe ser el menor posible para evitar las inconsistencias de
replicacin.
Estas ventanas de inconsistencia suelen ser problemticas cuando afectan al mismo usuario que
est haciendo la actualizacin de los datos. Al trabajar con diferentes nodos, puede ser que la
actualizacin de los datos vaya a un nodo distinto y necesite un cierto tiempo para que esos datos
se repliquen. Una forma de asegurar que no ocurra esto es utilizando una consistencia de sesin,
es decir, dentro de la sesin de un usuario se confirma la consistencia. Para poder confirmar esta
consistencia se utiliza una sticky sesin o session affinity. Esta sesin confirma que, siempre y
cuando se mantenga la coherencia en un nodo, en la sesin tambin. Como se puede comprobar,
esta tcnica reduce la capacidad de equilibrar la carga de trabajo.
Otro enfoque utilizado para la coherencia dentro de las sesiones es Version Stamps, que asegura
que cada vez que se interacte con la base de datos se incluir un sello de la ltima versin vista
de una sesin. Cuando se solicitan datos al servidor, ste debe asegurarse que todos los cambios
que tienen esa marca de sesin estn consistentes.
Existe la necesidad de saber cuntos nodos son necesarios para tener una fuerte consistencia. En
operaciones de escritura el nmero de nodos involucrados debe ser mayor que la mitad de los
nodos de replicacin. En operaciones de lectura necesitamos saber el nmero de nodos
disponibles para estar seguros que los datos ledos estn completamente actualizados. Este caso
es un poco ms complicado, ya que si se han necesitado dos nodos para escritura, se necesitarn
dos nodos para la lectura, pero si se ha necesitado un nodo para la escritura se necesitar, al
menos, tres nodos para garantizar la consistencia de los datos en la lectura. La suma de los nodos
necesarios para lectura y escritura debe ser mayor que los nodos involucrados en la particin.
Teorema CAP
CP: Se ejecutan las operaciones de forma consistente tolerando la particin del sistema,
maestro, pero no va a replicar en un directorio local. Mientras tanto, el resto del sistema elige un
nuevo maestro para que est disponible para leer y escribir. Por lo tanto, el estado del antiguo
maestro y el estado del nuevo maestro se vuelven inconsistentes hasta que el sistema repare los
errores y utilice el directorio anterior para reconciliar los estados.
Tcnicamente, cuando hay una particin, MongoDB no se adapta a la definicin de CAP de
disponibilidad. Sin embargo, en el contexto de PACELC, porque una particin causa ms
problemas de consistencia que problemas de disponibilidad, MongoDB puede ser clasificado como
un sistema PA / EC.
Por ltimo, indicar que algunas de las bases de datos documentales estn situadas del lado AP
donde se centran en la disponibilidad y en la tolerancia de particiones, como por ejemplo CouchDB,
pero tambin tenemos algunas bases de datos documentales que se sitan del lado CP donde
prima la consistencia y la tolerancia de particiones, como por ejemplo MongoDB.
Map-Reduce
Los clster permiten analizar cmo cambiar la forma de almacenamiento de los datos. Si la base
de datos est centralizada, existe el dilema de si ejecutar la lgica de procesamiento en el servidor
o en la mquina cliente. Si se hace lo segundo, se nos abre un abanico de posibilidades a la hora
de pensar en el lenguaje de programacin a utilizar. En cambio, si en las operaciones se involucran
gran cantidad de datos, es lgico realizar la operacin del lado del servidor.
Cuando se trabaja con un clster se tienen muchas mquinas para realizar los clculos. La
cantidad de datos que se transfiere por la red debe ser reducida, por lo que se debe procesar la
mayor cantidad de informacin en ese nodo del clster.
Con el patrn map-reduce se persigue organizar el procesamiento de la informacin haciendo uso
de diferentes mquinas en el clster manteniendo tanto el procesamiento y los datos que necesita
juntos en la misma mquina.
Se debe empezar definiendo el mapa. Se trata de una funcin que tiene como entrada una
coleccin y como salida un grupo de pares clave-valor. Cada una de las implementaciones de la
funcin del mapa es independiente de las otras funciones, esto permite que sean paralelizables.
Todos los resultados de los mapas que se ejecutan en varios nodos son concatenados y enviados
a la funcin reduce, para que a partir de la clave y el conjunto de valores pueda reducir los
resultados. Esta tcnica permite crear tareas eficientes para cada nodo.
Para aumentar el paralelismo se debe particionar la salida de los mapas. Como hemos hablado,
cada funcin reduce genera resultados a travs de una nica clave. En un principio esto no
permite operar con varias claves, siendo una limitacin, pero permite ejecutar varias funciones
reduce en paralelo.
Para poder ejecutar varias funciones reduce en paralelo, se dividen los resultados de los mapas
en los nodos en funcin de la clave, donde mltiples claves son agrupadas en la misma particin
(buckets o regions). Se toman todos los datos de una particin, se combinan en un nico grupo
y se envan a la funcin reduce. Si varias funciones reduce trabajan en paralelo en la misma
particin, el resultado final ser la combinacin de sus resultados (shuffling). Despus, se ejecuta
la funcin de combinacin que toma los pares clave-valor que tienen la misma clave y los combina
en un solo valor. En ocasiones, este paso se suele incluir dentro de la funcin reduce.
Todos estos pasos se pueden ejecutar, adems de en paralelo, en serie. Es decir, reducir la misma
particin en diferentes momentos y lugares. Es posible empezar a combinar mapas antes de que
hayan terminado.
La salida intermedia de cada uno de los pasos puede ser til para otras salidas, consiguiendo
llegar a la reutilizacin, ahorrando tiempo en programacin y ejecucin.
Estos registros intermedios son almacenados formando vistas materializadas. En las primeras
fases de map-reduce se forman mapas con gran cantidad de informacin que puede ser
reutilizada en usos futuros. Esos mapas generados deben ser lo ms genricos posibles, nunca
pensando en programacin para que puedan ser reutilizados el mayor nmero de veces posible
(Vzquez, 2014).
2.3 Debian
Ian Murdock fund oficialmente el proyecto Debian el 16 de agosto de 1993, despus de haber
estudiado en la Universidad de Purdue. Hasta ese momento, el concepto de una distribucin de
Linux era nuevo. Ian pretendi que Debian fuera una distribucin realizada de forma abierta,
siguiendo el espritu de Linux y GNU. La creacin de Debian fue patrocinada por el proyecto GNU
de la FSF durante un ao (noviembre de 1994 a noviembre de 1995) (Silva, 2007) .
En 1996, Bruce Perens substituyo a Ian Murdock como el lder del proyecto. En la sugerencia del
desarrollador Ean Schuessier, el dirigi el proceso de actualizacin de contrato social de Debian y
de las pautas del software de Debian libremente, definiendo los puntos fundamentales para el
desarrollo de la distribucin. El tambin inicio la creacin de la licencia de software legal de la
organizacin.
Bruce Perens se retir en 1998, antes del lanzamiento de la primera versin de Debian basada en
glibc, bautizada como Debian 2.0. Las primeras distribuciones de Linux basadas en Debian, Corel
Linux y la Stormixs, fueron comenzadas en 1999 (Debian, 2016).
Debian ha tenido varios lderes desde sus comienzos en el ao 1993.
-
Ian Murdock fund Debian en agosto de 1993 y lo condujo hasta marzo de 1996.
Bruce Perens condujo Debian desde abril de 1996 hasta diciembre de 1997.
Ian Jackson condujo Debian desde enero de 1998 hasta diciembre de 1998.
Wichert Akkerman condujo Debian desde enero de 1999 hasta marzo del 2001.
Ben Collins condujo Debian desde abril del 2001 hasta abril del 2002.
Bdale Garbee condujo Debian desde abril del 2002 hasta abril del 2003.
Martin Michlmayr fue elegido en marzo del 2003 y es el lder de proyecto en la actualidad.
Debian 0.93R6 (noviembre de 1995): Aparece dselect. Esta fue la ltima publicacin de Debian que
utilizaba el formato binario a.out. En este momento haba cerca de 60 desarrolladores. Bdale
Garbee construy el primer servidor master.debian.org y HP lo aloj en paralelo con la publicacin
de 0.93R6. La utilizacin de un servidor maestro especfico en el cual los desarrolladores de
Debian podan construir cada publicacin llev directamente a la formacin de una red de
servidores espejos, e indirectamente al desarrollo de la mayora de las directrices y procedimientos
utilizados para manejar actualmente el proyecto.
La versin 1.0 nunca fue publicada: Accidentalmente Infomagic, un proveedor de CDs, lanz una
versin de desarrollo de Debian y la titul como 1.0. El 11 de diciembre de 1995, Debian e
Infomagic anunciaron conjuntamente que esta versin fue equvoca. Bruce Perens explica que la
informacin colocada en 5 CDs de "Recurso para el Desarrollador de Linux Infomagic" de
noviembre de 1995, como "Debian 1.0" no es la versin 1.0 de Debian, ms bien era una versin
de desarrollo temprana que est solo parcialmente en formato ELF, que probablemente no iniciar
o no se ejecutar correctamente, y no representar la calidad de un sistema Debian publicado.
Debian 1.1 Buzz (17 de junio de 1996): Esta fue la primera versin de Debian con un nombre en
cdigo. Fue tomado, como todos los dems hasta ahora, de un personaje de las pelculas de Toy
Story, en este caso, Buzz Lightyear. En esa ocasin, Bruce Perens tom la direccin del proyecto
desde Ian Murdock, y Bruce estaba trabajando en Pixar, la compaa que produce la pelcula. Esta
versin estaba completamente en formato ELF, usado en el kernel Linux 2.0, y contena 474
paquetes.
(12
de
diciembre de 1996) Nombrada como el dinosaurio de plstico de la pelcula. Esta versin consisti
en 848 paquetes a cargo de 120 desarrolladores.
Debian 2.1 Slink (9 de marzo de 1999): El nombre por el perrito de la pelcula. Se agregaron dos
arquitecturas ms, Alpha y SPARC. Con Wichert Akkerman como lder del proyecto, esta versin
consista en 2250 paquetes y requera 2 CDs en el paquete oficial. La clav tcnica de la
innovacin fue la introduccin deapt, una nueva interface para la administracin de paquetes.
Mundialmente usado, apt condujo las cuestiones resultantes del continuo crecimiento de Debian, y
estableci un nuevo paradigma para la adquisicin de paquetes y la instalacin de sistemas
operativos Open source.
Debian 2.2 Potato (15 de agosto del 2000): El nombre por el Mr Potato Head de la pelcula. Esta
versin agreg soporte para las arquitecturas PowerPC y ARM. Con Wichert como lder del
proyecto todava, esta versin consisti en ms de 3900 paquetes binarios derivados de ms de
2600 paquetes fuentes a cargo de ms de 450 desarrolladores de Debian.
Debian 3.0 woody (19 de julio del 2002): El nombre por el personaje principal de la pelcula:
Woody el vaquero. An ms arquitecturas fueron agregadas en esta versin: IA-64, HP PA-RISC,
MIPS (big endian), MIPS (little endian) y S/390. Esta es tambin la primera versin que incluye
software criptogrfico debido a las restricciones para la exportacin que estaban siendo iniciadas
en EEUU, y tambin la primera en incluir KDE, ahora que los problemas de licencia con QT fueron
resueltas. Con Bdale Garbee recientemente designado como lder del proyecto, y ms de 900
desarrolladores de Debian, esta versin contena alrededor de 8500 paquetes binarios y 7 CDs
binarios en el paquete oficial (Graham Williams, 1995-2014).
Potato: La versin potato fue estable el 15 de agosto de 2000, conto con soporte para 6
arquitecturas, incluia 3900 paquetes y se le dio soporte hasta abril de 2004.
Woody: La versin de Woody fue estable el 19 de julio de 2002, conto con soporte para 11
arquitecturas, incluia 8500 paquetes y se le dio soporte hasta agosto de 2006
Sarge: Sarge fue estable el 6 de junio de 2005, conto con soporte para 11 arquitecturas, incluia
15400 paquetes y se le dio soporte hasta octubre de 2008.
Etch: Etch fue estable el 8 de abril de 2007, conto con soporte para 11 arquitecturas, incluia
18000 paquetes y se le dio soporte hasta diciembre de 2010.
Lenny: Lenny fue estable el 14 de febrero de 2009, conto con soporte para 12 arquitecturas,
incluia 23000 paquetes y se le dio soporte hasta febrero de 2012.
Squeeze: Squeeze fue estable desde el 6 de febrero de 2011 hasta el 4 de mayo de 2013.
Conto con soporte para 9 arquitecturas, incluyo 29000 paquetes. Se le dio soporte hasta el 4
de mayo de 2014.
Wheezy: Wheezy inicio su fase estable el 4 de mayo de 2013, cuenta con soporte para 11
arquitecturas, incluye 37493 paquetes y se le ha seguido dando soporte hasta el 2015, con
actualizaciones de seguridad hasta 2016.
Jessie: Jessie inicio su fase estable el 25 de abril de 2015, incluye systemd como arranque por
defecto, a pesar de las crticas por parte de la comunidad. Ahora soporta dos nuevas
arquitecturas basadas en x64 (debian, 2016).
Todas las versiones de Debian son tomados de la pelcula Toy Story. Hasta la fecha ha habido
trece versiones estables (con sus respectivas revisiones), siendo la actual la 8.0 Jessie.
La versin testing actual se denomina Stretch.
Versin
Nombre
Freeze
Fecha
Arquitectura
en clave
1.1
s
17 de junio
Buzz
474
1996
848
1996
974
1997
~ 1500
1998
~ 2250
2000-02
~ 3900
2003-04
11
~ 8500
2006-08
11
~ 15400
2008-10
11
~ 18000
2010-12
12
~ 23000
2012-02
9+2
~ 29000
2016
11+2
~ 36000
de 1996
12 de
1.2
Paquetes Soporte
Rex
diciembre
de 1996
1.3
Bo
2.0
Hamm
2.1
Slink
2 de junio
de 1997
24 de julio
de 1998
9 de marzo
de 1999
15 de
2.2
Potato
agosto
de 2000
3.0
Woody
3.1
Sarge
4.0
Etch
19 de julio
de 2002
6 de junio
de 2005
8 de abril
de 2007
14 de
5.0
Lenny
febrero
de 2009
6 de
6.0
Squeeze
febrero de
2011
7.0
8.0
4 de mayo
Wheezy
Jessie
de 2013
5 de
25 de abril
noviembre
de 2015
de 2014
5 de
9.0
Stretch
febrero de
2017
Versiones de desarrollo
~ 43000
Los paquetes de software en desarrollo son subidos a unas ramas llamadas inestable (unstable) y
experimental. Normalmente, los paquetes de software son subidos a inestable por el desarrollador
original de la aplicacin, pero con el empaquetado y otras modificaciones especficas de Deban
introducidas por los desarrolladores.
El software que se considera inestable y no se encuentra todava listo para la rama inestable se
pone tpicamente en experimental (Wiltshire, 2015).
Debian soporta una variedad de ARM basado en NAS dispositivos. El NSLU2 fue apoyado por el
instalador de Debian 4.0 y 5.0, y Martin Michlmayr est proporcionando instalacin bolas de
alquitrn desde la versin 6.0. Otros dispositivos NAS propuestos son los Buffalo Kurobox
Pro, GLAN Tank, Thecus N2100 y las estaciones de QNAP Turbo.
Los dispositivos basados en el Kirkwood sistema en un chip (SoC) son compatibles tambin, como
el SheevaPlug equipo enchufe y productos OpenRD. Se estn realizando esfuerzos para ejecutar
Debian en los dispositivos mviles, pero esto no es un objetivo en el edificio sin embargo, desde el
Debian mantenedores del ncleo de Linux no se aplican los parches necesarios. Sin embargo, hay
paquetes para sistemas con recursos limitados.
Hay esfuerzos para apoyar a Debian en los puntos de acceso inalmbricos. Debian es conocido
para ejecutarse en los decodificadores. Se est trabajando para apoyar el procesador AM335x, que
se utiliza en el punto de servicio electrnico de soluciones. Debian puede ser personalizado para
ejecutar en los cajeros automticos.
BeagleBoard, una placa computadora de hardware de cdigo abierto de bajo consumo (fabricado
por Texas Instruments) ha cambiado a Debian Linux precargado en el flash de su junta
BEAGLEBONE Negro (Debian, 2016).
Debian es un sistema operativo (SO) libre para su ordenador. Un sistema operativo es un conjunto
bsico de programas y utilidades que hacen que un ordenador funcione.
Debian usa el ncleo Linux (el ncleo es el corazn de un SO), pero la mayora de las
herramientas bsicas del SO provienen del proyecto GNU. Por lo tanto, nos referimos a Debian
como el sistema operativo Debian GNU/Linux, dando crdito a todas las fuentes. Debian
GNU/Linux proporciona mucho ms que un simple SO: incluye un amplio rango de programas.
Concretamente ofrece ms de 37.500 paquetes pre compilados distribuidos en un formato que
hace ms sencilla la instalacin en un ordenador (John Goerzen, 1999).
Algol 68
BASIC
C / C ++
Erlang
Fortran
GTK
Java
Objective-C, Objective-C ++
OCaml
Perl
PHP
Python
Ruby
Qt
Tcl / Tk
C#
.NET
VENTAJAS
Distribucin libre y gratuita, tanto del Sistema Operativo como de las actualizaciones del
mismo.
Es uno de los Sistemas Operativos ms estables En la actualidad.
Casi no existen los malware o virus para este Sistema Operativo.
No es necesario piratear, ni crackear nada ya que el software el gratuito.
Una de las grandes ventajas de Debian, es que posee miles de paquetes pre-compilados
estables.
Su kernel se puede configurar por cualquier persona que sepa hacerlo. (El kernel es el
ncleo del sistema operativo.) Esto podr ser til, por ejemplo, para optimizar el
funcionamiento de Linux con un procesador o CPU de una marca particular. Esto no puede
hacerse en Windows (Roland, 26 de septiembre de 2016).
DESVENTAJAS
Se necesita un previo conocimiento en Linux para poder usar con comodidad el Sistema
Operativo.
Es largo el tiempo que transcurre entre lanzamientos de versiones estables.
La instalacin es difcil para un usuario sin conocimiento en Linux.
Los dispositivos externos como pendrives, etc. tienen que ser montados por el usuario.
Resulta incmodo el uso de Debian para los usuarios de Windows, ya que Debian la
mayora de las aplicaciones se realizan a travs de la Shell de comando (McCarty, 1999).
CARACTERSTICAS
Coste: Deban es un sistema operativo (S.O.) de libre distribucin (es decir sin coste alguno).
Multiusuario: Permite a varios usuarios acceder al mismo tiempo a travs de terminales, y
distribuye los recursos disponibles entre todos.
Multiplataforma: Puede correr en la mayora de plataformas del mercado (procesadores de la
gama Intel y AMD, Motorola, Sun, Sparc, etc.).
Kernel: Los sistemas Debian actualmente usan el ncleo de Linux.
Memoria: La memoria se gestiona como un recurso unificado para los programas de usuario y
para el cach de disco, de tal forma que toda la memoria libre puede ser usada para cach y sta
puede a su vez ser reducida cuando se ejecuten grandes programas.
Licencia: Debian nace como una apuesta por separar en sus versiones el software libre del
software no libre, para esto debe respetar 4 libertades:
1- Libertad para usarlo.
2- Libertad para modificarlo.
3- Libertad para copiarlo.
4- Libertad para distribuir las modificaciones.
Estabilidad: Debian es una distribucin que ha probado su estabilidad y utilidad, muchos
desarrolladores la han tomado para crear otras nuevas como: Knoppix, Ubuntu, Sidux, etc.
Seguridad: Los problemas de seguridad se solucionan rpidamente con parches de seguridad que
se actualizan en internet.
Curva de Aprendizaje: Debian puede ser usado por cualquier persona que sepa qu es Linux,
que haya tenido un Linux instalado, que sepa configurar las cosas bsicas, que no se rinda ante las
primeras dificultades.
Facilidad de Uso: Este sistema operativo no es aconsejable para aquellas personas procedentes
de Windows, que quieren instalarse Linux porque han odo hablar muy bien de l, pero que quieren
una instalacin lo ms parecida a Windows.
Soporte: No se ofrece soporte ni garantas mercantiles en software libre. Sin embargo, podrs
contratar algunas versiones de paga de Linux de algunas empresas y recibir soporte, asistencia
tcnica y una capacitacin, dependiendo de tu pliza
Aplicaciones: No todos los programas comerciales y profesionales tienen versiones para Linux,
afortunadamente, existen muchas versiones de programas gratuitos con funciones parecidas.
Versiones: Debian toma el nombre en clave de sus distintas versiones de los personajes de la
pelcula de animacin Toy Story, del estudio Pixar.
Todos los nombres son asignados cuando se crea una nueva versin de pruebas (Testing), y se
conservan cuando sta pasa a ser estable (Stable). La nica excepcin a dicha norma es la versin
inestable (Unstable), cuyo nombre en clave es Sid de forma fija, en honor al vecino torturador de
juguetes de dicha pelcula (Krafft, 2005).
2.4 JavaScript
JavaScript es un lenguaje interpretado basado en guiones que son integrados directamente en el
cdigo HTML. El cdigo es transferido al cliente para que este lo interprete al cargar la pgina. Con
JavaScript no pueden crearse programas independientes.
Es un lenguaje interpretado.
No necesita compilacin.
Multiplataforma.
Lenguaje de alto nivel.
A diferencia de Java, JavaScript no dispone de elementos para crear interfaces de usuario propias
para los programas y tiene que utilizar para ello los formularios de HTML a travs de los
denominados manejadores de eventos (Cobo, 2001).
persona. En cambio hoy, gracias al uso de la tecnologa AJAX, el control se realiza en un segundo
plano al mismo tiempo que el usuario complementa la ficha. Es innegable que JavaScript
contribuye mucho a la facilidad de uso de un sitio web e incrementa adems la fidelidad de usuario.
Los bloques de cdigo de JavaScript pueden estar directamente presentes en el cdigo fuente de
la pgina HTML entre dos etiquetas (una de inicio y otra de fin) o escritos en un archivo JavaScript
con la extensin .js, de manera totalmente independiente del cdigo HTML de la pgina. El primer
caso se conoce como JavaScript interno en contraposicin al segundo llamado JavaScript externo.
De manera especfica, el script se redacta en un documento especial mediante un editor de texto y
se guarda sin formatear bajo la extensin .js. Si el editor no propone por defecto esta extensin,
basta con agregarla en el momento de guardar el documento. Se recomienda nombrar de manera
explcita el papel que juega su script en la pgina HTML de manera que sea ms fcil encontrarlo
en otra ocasin (Gutierrez, 2009).
Las validaciones van desde correo electrnico, telfono y URL, hasta llamadas ms complejas
como procesamiento ajax o funciones personalizadas de JavaScript. Incluidas en muchos locales,
las indicaciones de error se pueden traducir al idioma que elijas (Jonathan Chaffer, 2013).
2.6 Jpgraph
JpGraph es una librera PHP para crear imgenes de grficas dinmicas desde pginas PHP.
Es una librera que existe hace aos, el sistema est muy depurado y soporta multitud de
funcionalidades, por lo que seguramente encontraremos solucin a casi cualquier necesidad en el
mbito de creacin de grficas. Se pueden crear grficas lineales, grficas de barras, tartas, etc.
Adems, la mayora de las configuraciones de las grficas vienen con opciones por defecto, as
que resulta bastante sencillo obtener resultados rpidamente.
2.7 Datatable
Tablas de datos es una tabla de mejora de plug-in para el jQuery JavaScript Library, la adicin de
clasificacin, las capacidades de paginacin y filtrado de tablas HTML plano con un mnimo
esfuerzo. El objetivo declarado de DataTables es:
Para los desarrolladores DataTables proporciona una amplia gama de opciones sobre
cmo se deben obtener, mostrar y actuar los datos, junto con una extensa API para
acceder y manipular la tabla.
Los usuarios finales. Para aquellos que utilizan la interfaz de DataTables presenta, las
acciones para obtener el mximo de la informacin contenida en las tablas, tales como
clasificacin y filtrado, junto con paginacin y desplazamiento de los datos en la tabla, son
fciles de usar, intuitiva y rpida (Ltd, 2007-2016).
2.8 FPDF
FPDF es una clase PHP que permite generar archivos PDF con PHP puro, es decir sin usar la
librera PDFlib. F de FPDF significa Free: puede usarlo para cualquier tipo de uso y modificarlo
para adaptarlo a sus necesidades.
FPDF tiene otras ventajas: funciones de alto nivel. Aqu est una lista de sus caractersticas
principales:
Colores
Enlaces
compresin de pgina
FPDF no requiere extensin (excepto Zlib para habilitar la compresin y GD para soporte GIF). La
ltima versin requiere al menos PHP 5.1.
Qu idiomas puedo usar?
La clase puede producir documentos en muchos idiomas distintos a los de Europa occidental:
centroeuropeo, cirlico, griego, Bltico y tailandesa, siempre que tenga las fuentes TrueType o Type
1 con el juego de caracteres deseado. Soporte UTF-8 tambin est disponible.
Qu pasa con el rendimiento?
Por supuesto, la velocidad de generacin del documento es menor que con PDFlib. Sin embargo,
la penalizacin de rendimiento se mantiene muy razonable y se adapta a la mayora de los casos,
a menos que sus documentos sean particularmente complejos o pesados (Adobe, 2008).
Probablemente el cdigo ms popular del mundo para enviar correo electrnico desde
PHP!
Utilizado por muchos proyectos de cdigo abierto: WordPress, Drupal, 1CRM, SugarCRM,
Yii, Joomla! y muchos ms
Correo electrnico multipart / alternativo para clientes de correo que no leen correo
electrnico HTML
Mucho ms!
Muchos desarrolladores de PHP utilizan correo electrnico en su cdigo. La nica funcin de PHP
que soporta este es el mail() funcin. Sin embargo, no proporciona ninguna ayuda para hacer uso
de caractersticas populares como correos electrnicos y archivos adjuntos basados en HTML.
El PHP mail() la funcin normalmente enva a travs de un servidor de correo local, por lo general
liderada por un sendmailbinario en plataformas Linux, BSD y OS X, sin embargo, Windows por lo
general no incluye un servidor de correo local; La implementacin SMTP integrada de PHPMailer
permite el envo de correo electrnico en plataformas Windows sin un servidor de correo local.
Licencia
Este software se distribuye bajo la 2.1 LGPL licencia. Lea la LICENCIA para obtener informacin
sobre la disponibilidad y distribucin del software.
Historia
PHPMailer fue escrito originalmente en 2001 por Brent R. Matzelle como un proyecto
SourceForge.
Jim y Marcus deciden unir sus fuerzas y utilizar GitHub como el repo cannico y oficial para
PHPMailer.
REFERENCIAS
1. Adobe. (julio de 2008). fpdf. Obtenido de http://www.fpdf.org
2. Aguilar, L. J. (2013). Big Data, Anlisis de grandes volmenes de datos en organizaciones.
Alfaomega Grupo Editor.
3. Arias, M. (2013). Introduccin a PHP. IT Campus Academy. Recuperado el 2016
26. Silva, I. A. (2007). Debian GNU/Linux Para El Usuario Final. Grupo ICCO.
27. Vzquez, F. J. (2014). Anlisis y Desarrollo de MongoDB y Redis en JAVA.
28. Wiltshire, J. (5 de agosto de 2015). Debian. Obtenido de https://lists.debian.org/debiandevel-announce/2014/11/msg00003.html