Nothing Special   »   [go: up one dir, main page]

2 AF Gestionar Información Sobre Concepto Elementos y Ejemplo de Los Temas 4.1 - 4.6 Parte01

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 38

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO SUPERIOR DE CALKINÍ EN


EL ESTADO DE CAMPECHE

ING. SISTEMAS COMPUTACIONALES

INGENIERÍA DE SOFTWARE
DRA.
MARLENE
AF:
MENDEZ
MORENO
Gestionar
información
sobre,
concepto,
6 SEMESTRE A

CAUICH RODRÍGUEZ
NATANAEL JESÚS 6340
Contenido
LENGUAJES PARA EL DESARROLLO DE SOFTWARE.............................................................................4
LENGUAJE DE PROGRAMACIÓN PHP..............................................................................................4
PERL...............................................................................................................................................5
JAVA................................................................................................................................................6
C++.................................................................................................................................................8
C#...................................................................................................................................................9
PYTHON........................................................................................................................................10
JAVASCRIPT...................................................................................................................................11
SWIFT...........................................................................................................................................13
R...................................................................................................................................................14
RUST.............................................................................................................................................16
MANEJADORES DE BASES DE DATOS................................................................................................18
SISTEMAS GESTORES DE BASES DE DATOS RELACIONALES (SQL).................................................18
MySQL..........................................................................................................................................18
MARIADB......................................................................................................................................20
SQLITE..........................................................................................................................................21
POSTGRESQL................................................................................................................................23
MICROSOFT SQL SERVER..............................................................................................................24
ORACLE.........................................................................................................................................26
SISTEMAS GESTORES DE BASES DE DATOS NO RELACIONALES (NOSQL)..........................................27
MONGODB...................................................................................................................................28
REDIS............................................................................................................................................29
APACHE CASSANDRA....................................................................................................................30
CONSTRUCCIÓN DE SOFTWARE.......................................................................................................31
MINIMIZAR LA COMPLEJIDAD......................................................................................................32
ANTICIPAR CAMBIOS....................................................................................................................33
CONSTRUCCIÓN SEGÚN MODELOS DE DESARROLLO...................................................................33
PLANIFICACIÓN DE LA CONSTRUCCIÓN........................................................................................33
MEDICIÓN DE LA CONSTRUCCIÓN................................................................................................33
DISEÑO DE LA CONSTRUCCIÓN....................................................................................................34
LENGUAJE DE CONSTRUCCIÓN.....................................................................................................34
RE-USO.........................................................................................................................................34
REFERENCIAS....................................................................................................................................35
LENGUAJES PARA EL DESARROLLO DE SOFTWARE

LENGUAJE DE PROGRAMACIÓN PHP

PHP, acrónimo recursivo en inglés de


PHP: Hypertext Preprocessor
(preprocesador de hipertexto), es un
lenguaje de programación de
propósito general de código del lado
del servidor originalmente diseñado
para el desarrollo web de contenido
dinámico. Fue uno de los primeros
lenguajes de programación del lado
del servidor que se podían incorporar directamente en un documento HTML en
lugar de llamar a un archivo externo que procese los datos. El código es
interpretado por un servidor web con un módulo de procesador de PHP que
genera el HTML resultante.
PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de
comandos que puede ser usada en aplicaciones gráficas independientes. Puede
ser usado en la mayoría de los servidores web al igual que en muchos sistemas
operativos y plataformas sin ningún costo.
Fue creado originalmente por Rasmus Lerdorf en el año 1995. Actualmente el
lenguaje sigue siendo desarrollado con nuevas funciones por el grupo PHP.2 Este
lenguaje forma parte del software libre publicado bajo la licencia PHPv3_01, una
licencia Open Source validada por Open Source Initiative. La licencia de PHP es
del estilo de licencias BSD, sin la condición de copyleft asociada con la Licencia
Pública General de GNU.
PHP es de código abierto muy usado en el desarrollo web, ya que puede
incrustarse en HTML. El código se ejecuta en el servidor, genera HTML y se lo
envía al cliente.

 Muy fácil de usar si estás empezando en esto de la programación, pero


muy completo para los programadores profesionales.
 Se orienta al desarrollo de aplicaciones web dinámicas.
 Es un código seguro y confiable, ya que el código fuente está oculto para el
navegador y cliente.
 Licencia abierta de uso.
 Las últimas versiones hacen que PHP sea un lenguaje orientado a
objetos muy potente y con un rendimiento muy mejorado.
 Necesitas un servidor web para ejecutar una aplicación, aunque las últimas
versiones traen un servidor incorporado.
 Debes tener un conocimiento genérico de HTML para trabajar con PHP o
con JSON.
“Gracias a la curva de aprendizaje y flexibilidad que nos ha aportado PHP hemos
construido un gran abanico de aplicaciones tanto para nuestros clientes como
para de uso interno. Por ejemplo: con PHP hemos construido nuestra web,
el Panel de Control, la API Pública o el sistema de facturación.”

PERL

Perl es un lenguaje de
programación diseñado por Larry
Wall en 1987. Perl toma
características del lenguaje C, del
lenguaje interpretado bourne shell
(sh), AWK, sed, Lisp y, en un grado
inferior, de muchos otros lenguajes
de programación.
Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK,
y fue ampliamente adoptado por su destreza en el procesado de texto y no tener
ninguna de las limitaciones de los otros lenguajes de script.
Perl se simboliza generalmente por un camello de una sola joroba (camello
arábigo o dromedario), que fue la imagen elegida por el editor O'Reilly para la
cubierta de Programming Perl, que por consiguiente adquirió el nombre de El Libro
del Camello.4 O'Reilly es propietario de este símbolo como marca registrada, pero
dice que usa sus derechos legales solo para proteger la "integridad e impacto de
este símbolo".5O'Reilly permite el uso no comercial del símbolo, y ofrece logos
Programming Republic of Perl y botones Powered by Perl.
Desde hace unos años, y para evitar este tipo de problemas con la licencia
comercial, la Fundación Perl elaboró nuevos logotipos basados en una cebolla, a
raíz de las conferencias anuales que Larry Wall ofrece con el título: State of the
Onion ("Estado de la Cebolla") Onion se pronuncia muy parecido a Union, por lo
que suena parecido a State of the Union ("Estado de la Unión"), evento en el cual
el Presidente de los Estados Unidos informa a los ciudadanos del estado en que
se encuentra su país.
El uso de Perl está extendido en la construcción de aplicaciones CGI para la
web. Se trata de un lenguaje muy práctico para extraer información de archivos de
texto y generar informes a partir de su contenido. También es de licencia abierta.

 Es uno de los lenguajes de programación más sencillos que existen.


 Muy eficiente y de elevado rendimiento a la hora de tratar un gran volumen
de datos.
 Puede usarse tanto en desarrollo web como en otros entornos.
 No necesitas hacer instalaciones a posteriori, ya que el intérprete viene por
defecto.
 Un mismo código corre en multitud de distribuciones sin necesidad de que
toques una sola línea.
 Puede ser lento comparado con otras herramientas, ya que se compila al
principio de su ejecución.
 Su código es difícil de leer.
 Al no disponer de control de excepciones es complicado encontrar algunos
errores.
“En dinahosting llevamos usando Perl desde nuestra puesta en marcha, tanto en
la administración de servidores como en las órdenes que ejecutan nuestros
clientes desde sus paneles.”

JAVA

Java es un lenguaje de programación


de propósito general, concurrente,
orientado a objetos, que fue diseñado
específicamente para tener tan pocas
dependencias de implementación
como fuera posible. Su intención es
permitir que los desarrolladores de
aplicaciones escriban el programa una
vez y lo ejecuten en cualquier
dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que
quiere decir que el código que es ejecutado en una plataforma no tiene que ser
recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de
programación más populares en uso, particularmente para aplicaciones de cliente-
servidor de web, con unos diez millones de usuarios reportados.23
El lenguaje de programación Java fue originalmente desarrollado por James
Gosling, de Sun Microsystems (constituida en 1982 y posteriormente adquirida el
27 de enero de 2010 por la compañía Oracle),4 y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis
deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que
cualquiera de ellos. Las aplicaciones de Java son compiladas a bytecode (clase
Java), que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar
la arquitectura de la computadora subyacente.
La compañía Sun desarrolló la implementación de referencia original para los
compiladores de Java, máquinas virtuales y librerías de clases en 1991, y las
publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento de las
especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la
mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU.
Otros también han desarrollado implementaciones alternas a estas tecnologías de
Sun, tales como el Compilador de Java de GNU y el GNU Classpath.
Es uno de los lenguajes de programación de código abierto más
populares. Java fue comercializado por primera vez 1995 por Sun Microsystems.
Está detrás de muchas webs y aplicaciones, de consolas y súper ordenadores, de
móviles y de hasta Internet.
De hecho, no sé si sabes que Java es quien impulsa Android, el sistema operativo
más usado del mundo.
 Lenguaje multiplataforma, ejecutable en la mayoría de los sistemas
operativos.
 Software de distribución libre.
 Lenguaje completo y dispone de una librería y utilidades amplias.
 Lenguaje de ejecución lenta al ser interpretado.
 Difícil de aprender debido a su compleja sintaxis.
C++

C++ es un lenguaje de programación diseñado en


1979 por Bjarne Stroustrup. La intención de su
creación fue extender al lenguaje de programación C
mecanismos que permiten la manipulación de objetos.
En ese sentido, desde el punto de vista de los
lenguajes orientados a objetos, el C++ es un lenguaje
híbrido.
Posteriormente se añadieron facilidades de
programación genérica, que se sumaron a los
paradigmas de programación estructurada y
programación orientada a objetos. Por esto se suele
decir que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido la
mayoría de los fabricantes de compiladores más modernos. Existen también
algunos intérpretes, tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder
crear nuevos tipos que se comporten como tipos fundamentales.
El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el
lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se
había usado el nombre "C con clases". En C++, la expresión "C++" significa
"incremento de C" y se refiere a que C++ es una extensión de C.
C++ permite la manipulación de objetos y tiene como base el lenguaje C. Se le
reconoce como uno de los lenguajes de programación multiparadigma
(programación orientada a objetos y estructurada). Es una de las herramientas
más populares por su versatilidad y potencia.
 Lenguaje muy didáctico, y a través del mismo puedes aprender otros como
C#, Java, PHP.
 Muy utilizado en la creación de sistemas operativos, utilidades,
bibliotecas…
 Permite programar con múltiples estilos, como los estructurados.
 Admite la compilación de nuestro código en múltiples plataformas.
 El uso de librerías dinámicas se hace muy complicado, ya que la carga y la
liberación de memoria de la librería corre a cargo de los programadores.
 No es muy usable para desarrollar páginas web.
 Complejo programar bases de datos.
 Más pesado que otros programas similares.
C#

C# (pronunciado si sharp en inglés) es un


lenguaje de programación orientado a objetos
desarrollado y estandarizado por Microsoft
como parte de su plataforma .NET, que
después fue aprobado como un estándar por
la ECMA (ECMA-334) e ISO (ISO/IEC 23270).
C# es uno de los lenguajes de programación
diseñados para la infraestructura de lenguaje
común.
Su sintaxis básica deriva de C/C++ y utiliza el
modelo de objetos de la plataforma .NET,
similar al de Java, aunque incluye mejoras
derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por el signo #, el cual se lee como sharp en
inglés para notación musical. Es un juego de palabras, pues '"C#" significa,
musicalmente hablando, "do sostenido", donde el símbolo # indica que una nota
(en este caso do, representada por C) debe ser un semitono más alta. Esto es una
metáfora de la superioridad de C# sobre su antecesor C++ y a su vez hace alusión
a la misma metáfora que se ideó para dar nombre a C++.1 Además, el símbolo #
puede ser imaginado como la unión de cuatro símbolos +, continuando así con el
sentido de progresión de los lenguajes C.
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C#
es un lenguaje de programación independiente diseñado para generar programas
sobre dicha plataforma. Ya existe un compilador implementado que provee el
marco Mono - DotGNU, el cual genera programas para distintas plataformas como
Windows Microsoft, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
C# es un lenguaje creado por Microsoft con seguridad de tipos y orientado a
objetos. Se diseñó para ejecutarse en la plataforma .NET. C# se usa para el
desarrollo de juegos, servicios web XML, componentes distribuidos, aplicaciones
cliente-servidor, etc. La sintaxis de C# es muy reconocida, por lo que si estás
familiarizado con Java o C++ no te será difícil aprenderlo.
 Lenguaje muy potente y flexible.
 Soporta la mayoría de paradigmas.
 Es complicado hacer portabilidades.
 Tiene una curva de aprendizaje bastante elevada.
 No existe una correcta documentación de la herramienta.
“En dinahosting, en la parte de Sistemas Windows, utilizamos programación a
bajo nivel en C y C#, lo que hace que nuestros sistemas internos vayan muy
rápido y necesiten pocos recursos para su ejecución. Esto se traduce en una
mayor funcionalidad de servicios como el Panel de Control, que usa en las
comunicaciones internas entre servidores un lenguaje como C.”

PYTHON

Python es un lenguaje de programación


interpretado cuya filosofía hace hincapié en
una sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación
multiparadigma, ya que soporta orientación a
objetos, programación imperativa y, en menor
medida, programación funcional. Es un
lenguaje interpretado, de tipado fuerte y
dinámico y multiplataforma.
Es administrado por la Python Software
Foundation. Posee una licencia de código
abierto, denominada Python Software
Foundation License,2 que es compatible con la Licencia pública general de GNU a
partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.
Python es un lenguaje de programación multiparadigma. Esto significa que más
que forzar a los programadores a adoptar un estilo particular de programación,
permite varios estilos: programación orientada a objetos, programación imperativa
y programación funcional. Otros paradigmas están soportados mediante el uso de
extensiones.
Python usa tipado dinámico y conteo de referencias para la administración de
memoria.
Una característica importante de Python es la resolución dinámica de nombres; es
decir, lo que enlaza un método y un nombre de variable durante la ejecución del
programa (también llamado enlace dinámico de métodos).
Otro objetivo del diseño del lenguaje es la facilidad de extensión. Se pueden
escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en
aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones
hostil a la programación funcional tradicional del Lisp, existen bastantes analogías
entre Python y los lenguajes minimalistas de la familia Lisp como puede ser
Scheme.
Python se crea a finales de los 80 y principios de los 90. Su programación se
orienta a objetos y se emplea para hacer aplicaciones genéricas (juegos, web o de
escritorio), en la informática científica y big data, que ahora está muy de moda. Su
código es de distribución libre, por lo que no tendrás que pagar licencias para
usarlo.
 Es escalable y flexible.
 Funciona en múltiples plataformas (Windows, Mac, Linux).
 Soporte de programación de interfaces gráficas de usuario.
 Conexión con las bases de datos más usadas.
 Se integra fácilmente con lenguajes como C, C++, y Java entre otros.
 No dispone de una buena documentación.
 Es más lento comparado con otros lenguajes como Java o C.
 Difícil de ejecutar múltiples hilos.

JAVASCRIPT

JavaScript (abreviado comúnmente JS) es un


lenguaje de programación interpretado,
dialecto del estándar ECMAScript. Se define
como orientado a objetos, basado en
prototipos, imperativo, débilmente tipado y
dinámico.
Se utiliza principalmente en su forma del lado
del cliente (client-side), implementado como
parte de un navegador web permitiendo
mejoras en la interfaz de usuario y páginas
web dinámicas, aunque existe una forma de
JavaScript del lado del servidor (Server-side
JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo, en
documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es
también significativo.
Desde el 2012, todos los navegadores modernos soportan completamente
ECMAScript 5.1, una versión de javascript. Los navegadores más antiguos
soportan por lo menos ECMAScript 3. La sexta edición se liberó en julio del 2015.

JavaScript se diseñó con una sintaxis similar a C, aunque adopta nombres y


convenciones del lenguaje de programación Java. Sin embargo, Java y JavaScript
tienen semánticas y propósitos diferentes.
Todos los navegadores modernos interpretan el código JavaScript integrado en las
páginas web. Para interactuar con una página web se provee al lenguaje
JavaScript de una implementación del Document Object Model (DOM).
Tradicionalmente se venía utilizando en páginas web HTML para realizar
operaciones y únicamente en el marco de la aplicación cliente, sin acceso a
funciones del servidor. Actualmente es ampliamente utilizado para enviar y recibir
información del servidor junto con ayuda de otras tecnologías como AJAX.
JavaScript se interpreta en el agente de usuario al mismo tiempo que las
sentencias van descargándose junto con el código HTML.
Desde el lanzamiento en junio de 1997 del estándar ECMAScript 1, han existido
las versiones 2, 3 y 5, que es la más usada actualmente (la 4 se abandonó ). En
junio de 2015 se cerró y publicó la versión ECMAScript 6.
JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el
nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para
finalmente quedar como JavaScript. El cambio de nombre coincidió
aproximadamente con el momento en que Netscape agregó compatibilidad con la
tecnología Java en su navegador web Netscape Navigator en la versión 2.002 en
diciembre de 1995. La denominación produjo confusión, dando la impresión de
que el lenguaje es una prolongación de Java, y se ha caracterizado por muchos
como una estrategia de mercadotecnia de Netscape para obtener prestigio e
innovar en el ámbito de los nuevos lenguajes de programación web.89
«JAVASCRIPT» es una marca registrada de Oracle Corporation.10 Es usada con
licencia por los productos creados por Netscape Communications y entidades
actuales como la Fundación Mozilla.1112
Microsoft dio como nombre a su dialecto de JavaScript «JScript», para evitar
problemas relacionadas con la marca. JScript fue adoptado en la versión 3.0 de
Internet Explorer, liberado en agosto de 1996, e incluyó compatibilidad con el
Efecto 2000 con las funciones de fecha, una diferencia de los que se basaban en
ese momento. Los dialectos pueden parecer tan similares que los términos
«JavaScript» y «JScript» a menudo se utilizan indistintamente, pero la
especificación de JScript es incompatible con la de ECMA en muchos aspectos.
Es uno de los lenguajes de programación más importantes y según datos, lo
utilizan un 80% de los desarrolladores y un 95% de todos los sitios web. Las
ventajas de JavaScript se sitúan en el lado del front-end, y varios frameworks que
soporta como React y Angular JS tienen un gran potencial para mejorar la
experiencia del usuario en la web. Se trata en definitiva de un lenguaje ligero,
multiplataforma, estructurado y orientado a objetos y eventos.
 Es un lenguaje de programación seguro y fiable.
 De fácil uso y muy completo.
 Es ligero y permite la elaboración de múltiples aplicaciones web.
 Es compatible con la mayoría de navegadores.
 No proporciona muchos recursos.
 Soporta 3D, pero las opciones que ofrece son limitadas.
 Puede ser vulnerable, ya que el código de JavaScript está visible para todo
el mundo.
 Tienes que descargar completamente el código antes de procesarlo.

SWIFT

Swift es un lenguaje de programación


multiparadigma creado por Apple enfocado en
el desarrollo de aplicaciones para iOS y
macOS. Fue presentado en WWDC 2014 y
está diseñado para integrarse con los
Frameworks Cocoa y Cocoa Touch, puede
usar cualquier biblioteca programada en
Objective-C y llamar a funciones de C.
También es posible desarrollar código en Swift
compatible con Objective-C bajo ciertas
condiciones. Swift tiene la intención de ser un
lenguaje seguro, de desarrollo rápido y
conciso. Usa el compilador LLVM incluido en Xcode 6. Fue presentado como un
lenguaje propietario, pero en el año 2015, con la versión 2.2 pasó a ser de código
abierto con la Licencia Apache 2.0.
Swift es un lenguaje fuertemente tipado, aunque su declaración no siempre es
necesaria gracias a su capacidad de inferir tipos. Los tipos de datos se dividen
principalmente en dos grupos. Los Tipos de valor, y los Tipos por referencia, se
diferencian principalmente en cómo son asignados.
 Al asignar un Tipo de valor se guarda una copia de su contenido. Se
recomienda su uso cuando se requiere copiar su información o se vaya a
trabajar en múltiples hilos.
 Al asignar un Tipo por referencia se asigna una instancia compartida que es
mutable aún si son usadas en constantes, es decir modificar una instancia
se verá reflejado en todas las variables y constantes que la compartan. Se
recomienda su uso cuando se requiera compartir datos mutables.

Es uno de los lenguajes de programación más recientes y de más futuro y se


lanza en 2014 para los sistemas iOS y macOS. Es open source y puedes
encontrar toda la información necesaria para usarlo en su web o en su github.
 No es un lenguaje exclusivo de iOS y puedes usarlo en Linux también.
 Es más fácil de aprender y programar con él que otros lenguajes.
 Ofrece un código muy seguro ya que evita ciertas estructuras o
condiciones.
 Tareas como la encriptación se ejecutan más rápidamente.
 Cada vez que salga una nueva versión, tendrás que reprogramar tu app.
 Impone muchas reglas a hora de programar.

R es un entorno y lenguaje de programación con un


enfoque al análisis estadístico.
R nació como una reimplementación de software
libre del lenguaje S, adicionado con soporte para
alcance estático. Se trata de uno de los lenguajes
de programación más utilizados en investigación
científica, siendo además muy popular en el campo
de la minería de datos, la investigación biomédica,
la bioinformática y las matemáticas financieras. A esto contribuye la posibilidad de
cargar diferentes bibliotecas o paquetes con funcionalidades de cálculo y
graficación.
R es parte del sistema GNU y se distribuye bajo la licencia GNU GPL. Está
disponible para los sistemas operativos Windows, Macintosh, Unix y GNU/Linux.
Fue desarrollado inicialmente por Robert Gentleman y Ross Ihaka del
Departamento de Estadística de la Universidad de Auckland en 1993. Sin
embargo, si se remonta a sus bases iniciales, puede decirse que inició en los Bell
Laboratories de AT&T y ahora Alcatel-Lucent en Nueva Jersey con el lenguaje S.
Este último, un sistema para el análisis de datos desarrollado por John Chambers,
Rick Becker, y colaboradores diferentes desde finales de 1970. La historia desde
este punto es prácticamente la del lenguaje S. Los diseñadores iniciales,
Gentleman y Ihaka, combinaron las fortalezas de dos lenguajes existentes, S y
Scheme. En sus propias palabras: "El lenguaje resultante es muy similar en
apariencia a S, pero en el uso de fondo y la semántica es derivado desde
Scheme". El resultado se llamó R "en parte al reconocimiento de la influencia de S
y en parte para hacer gala de sus propios logros".
Su desarrollo actual es responsabilidad del R Development Core Team. Para
saber más al respecto y en el entorno del programa, puede teclearse
contributors(); en la lista desplegada aparecen los nombres de los autores iniciales
y los actuales pertenecientes al R Development Core Team (Equipo Central de
Desarrolladores R).
R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y
no lineales, tests estadísticos, análisis de series temporales, algoritmos de
clasificación y agrupamiento, etc.) y gráficas Una Herramienta Util.

Al igual que S, se trata de un lenguaje de programación, lo que permite que los


usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de
las funciones de R están escritas en el mismo R, aunque para algoritmos
computacionalmente exigentes es posible desarrollar bibliotecas en C, C++ o
Fortran que se cargan dinámicamente. Los usuarios más avanzados pueden
también manipular los objetos de R directamente desde código desarrollado en C.
R también puede extenderse a través de paquetes desarrollados por su
comunidad de usuarios.
R hereda de S su orientación a objetos. La tarea de extender R se ve facilitada por
su permisiva política de lexical scoping.5
Además, R puede integrarse con distintas bases de datos y existen bibliotecas que
facilitan su utilización desde lenguajes de programación interpretados como Perl y
Python.
Otra de las características de R es su capacidad gráfica, que permite generar
gráficos con alta calidad. R posee su propio formato para la documentación
basado en LaTeX.
Regresión y su análisis somero en R versión 3.2.2 y en el sistema operativo
Windows
R también puede usarse como herramienta de cálculo numérico, campo en el que
puede ser tan eficaz como otras herramientas específicas tales como GNU Octave
y su equivalente privativo: MATLAB.6Se ha desarrollado una interfaz, RWeka7
para interactuar con Weka que permite leer y escribir ficheros en el formato arff y
enriquecer R con los algoritmos de minería de datos de dicha plataforma.
R está aumentando su popularidad debido al Big Data y del número creciente de
trabajos de minería de datos, por lo que te vendrá muy bien aprender este
lenguaje. Forma parte de un proyecto colaborativo y abierto y funciona mediante
comandos. Ofrece una amplia gama de herramientas estadísticas con los que
podrás generar gráficos de gran calidad.
 Es software libre de código abierto, por lo que tendrás una gran comunidad
detrás apoyándote en caso de dudas.
 Multiplataforma. Funciona en Mac, Windows…
 Los gráficos son de gran calidad.
 Es difícil encontrar información específica dada la amplia documentación
que circula.
 Los mensajes de error que nos muestra no concretan los fallos.
 Si no sabes mucho de programación, es complejo de usar.

RUST

Rust es un lenguaje de programación compilado,


de propósito general y multiparadigma que está
siendo desarrollado por Mozilla. Ha sido diseñado
para ser "un lenguaje seguro, concurrente y
práctico”. Es un lenguaje de programación
multiparadigma, soporta programación funcional
pura, por procedimientos, imperativa y orientada a
objetos.
El lenguaje surgió de un proyecto personal
desarrollado por Graydon Hoare (trabajador de
Mozilla), quien empezó a trabajar en él en 2006;
Mozilla se involucró en este proyecto en 2009 y lo dio a conocer oficialmente en
2010. Ese mismo año, el trabajo pasó del compilador inicial (escrito en OCaml) al
compilador autocontenido, escrito en sí mismo. Conocido como rustc, en 2011 se
compiló a sí mismo. El compilador autocontenido usa LLVM como su back-end.
La primera versión alfa numerada del compilador de Rust apareció en enero de
2012. La versión 1.0 fue lanzada el 15 de mayo de 2015.
Según la política de Mozilla, Rust es desarrollado de forma totalmente abierta y
busca la opinión y contribución de la comunidad. El diseño del lenguaje se ha ido
perfeccionando a través de las experiencias en el desarrollo del motor de
navegador Servo, y el propio compilador de Rust. Aunque es desarrollado y
patrocinado por Mozilla y Samsung, es un proyecto comunitario. Una gran parte de
las contribuciones proceden de los miembros de la comunidad.
El objetivo de Rust es ser un buen lenguaje para la creación de grandes
programas del lado del cliente y del servidor que se ejecuten en Internet. Esto ha
llevado a un conjunto de características con un énfasis en la seguridad, el control
de distribución de la memoria y la concurrencia. Se espera que el rendimiento de
código seguro sea más lento que C++, si el rendimiento es la única consideración,
pero si lo comparamos con el código C++ hecho para que tome precauciones
comparables a las que toma Rust, este último puede ser incluso más rápido.18
La sintaxis de Rust es similar a la de C y C++, con bloques de código delimitados
por llaves y estructuras de control de flujo tales como if, else, do, while y for. No
todas las estructuras de C y C++ están presentes, además, otras (como la palabra
clave match para ramificación multidireccional) serán menos familiares para
programadores que vienen de estos lenguajes.
El sistema está diseñado para tener un acceso seguro a la memoria, y no permite
punteros nulos o punteros colgantes.1920 Los valores de los datos sólo se pueden
inicializar a través de un conjunto fijo de formas, las cuales requieren que sus
entradas hayan sido ya inicializadas.
Aunque es de nicho, su popularidad está aumentando según datos de Google
Trends y forma parte de esos nuevos lenguajes de programación. Lo fundaron
ingenieros de Mozilla y permite desarrollar software de sistemas, donde la
interacción con el usuario es escasa. Es apropiada para aplicaciones con el
modelo cliente-servidor.
 Lenguaje rápido y seguro (gestión automática del guardado y el manejo de
la memoria).
 Basado en expresiones.
 No puedes utilizar un valor que no haya sido inicializado previamente.
 Necesitamos por lo menos una función de inicio (la función main).
 Es más complejo de aprender que otros lenguajes, ya que algunas de sus
reglas son diferentes a las habituales.
MANEJADORES DE BASES DE DATOS

Un Sistema Gestor de Base de Datos (SGBD) o DataBase Managenent System


(DBMS) es un sistema que permite la creación, gestión y administración de bases
de datos, así como la elección y manejo de las estructuras necesarias para el
almacenamiento y búsqueda de información del modo más eficiente posible.
En la actualidad, existen multitud de SGBD y pueden ser clasificados según la
forma en que administran los datos en:
 Relacionales (SQL)
 No relacionales (NoSQL)

SISTEMAS GESTORES DE BASES DE DATOS RELACIONALES (SQL)

Desde que se comenzó a usar el modelo de bases de datos relacionales, en 1970,


ha ido sufriendo una serie de transformaciones hasta convertirse, hoy en día, en
el modelo más utilizado para administrar bases de datos.
Este modelo se basa fundamentalmente en establecer relaciones o vínculos entre
los datos, imaginando una tabla aparte por cada relación existente con sus propios
registros y atributos.
Los principales Sistemas gestores de bases de datos relacionales (SGBD SQL)
actualmente son:

MySQL

MySQL es un sistema de gestión


de bases de datos relacional
desarrollado bajo licencia dual:
Licencia pública general/Licencia
comercial por Oracle Corporation
y está considerada como la base
datos de código abierto más
popular del mundo,2 y una de las
más populares en general junto a
Oracle y Microsoft SQL Server,
sobre todo para entornos de desarrollo web.
MySQL fue inicialmente desarrollado por MySQL AB (empresa fundada por David
Axmark, Allan Larsson y Michael Widenius). MySQL AB fue adquirida por Sun
Microsystems en 2008, y ésta a su vez fue comprada por Oracle Corporation en
2010, la cual ya era dueña desde 2005 de Innobase Oy, empresa finlandesa
desarrolladora del motor InnoDB para MySQL.
Al contrario de proyectos como Apache, donde el software es desarrollado por una
comunidad pública y los derechos de autor del código están en poder del autor
individual, MySQL es patrocinado por una empresa privada, que posee el
copyright de la mayor parte del código. Esto es lo que posibilita el esquema de
doble licenciamiento anteriormente mencionado. La base de datos se distribuye en
varias versiones, una Community, distribuida bajo la Licencia pública general de
GNU, versión 2, y varias versiones Enterprise, para aquellas empresas que
quieran incorporarlo en productos privativos. Las versiones Enterprise incluyen
productos o servicios adicionales tales como herramientas de monitorización y
asistencia técnica oficial. En 2009 se creó un fork denominado MariaDB por
algunos desarrolladores (incluido algunos desarrolladores originales de MySQL)
descontentos con el modelo de desarrollo y el hecho de que una misma empresa
controle a la vez los productos MySQL y Oracle Database.
Está desarrollado en su mayor parte en ANSI C y C++. Tradicionalmente se
considera uno de los cuatro componentes de la pila de desarrollo LAMP y WAMP.
MySQL es usado por muchos sitios web grandes y populares, como Wikipedia,
Google (aunque no para búsquedas), Facebook, Twitter, Flickr y YouTube.
Es el sistema gestor de bases de datos relacional por excelencia.
Es un SGBD multihilo y multiusuario utilizado en la gran parte de las páginas web
actuales. Además, es el más usado en aplicaciones creadas como software libre.
Se ofrece bajo la GNU GPL, aunque también es posible adquirir una licencia para
empresas que quieran incorporarlo en productos privativos (Desde la compra por
parte de Oracle se está orientando a este ámbito empresarial).
Las principales ventajas de este Sistema Gestor de Bases de datos son:
 Facilidad de uso y gran rendimiento
 Facilidad para instalar y configurar
 Soporte multiplataforma
 Soporte SSL
La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente
con bases de datos muy grandes que superan un determinado tamaño.
MARIADB

MariaDB es un sistema de gestión de


bases de datos derivado de MySQL con
licencia GPL (General Public License).
Es desarrollado por Michael (Monty)
Widenius —fundador de MySQL—, la
fundación MariaDB y la comunidad de
desarrolladores de software libre.
Introduce dos motores de
almacenamiento nuevos, uno llamado
Aria —que reemplaza a MyISAM— y otro llamado XtraDB —en sustitución de
InnoDB—. Tiene una alta compatibilidad con MySQL ya que posee las mismas
órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un
servidor por otro directamente.
Este SGBD surge a raíz de la compra de Sun Microsystems —compañía que
había comprado previamente MySQL AB— por parte de Oracle. MariaDB es una
bifurcación directa de MySQL que asegura la existencia de una versión de este
producto con licencia GPL. Widenius decidió crear esta variante porque estaba
convencido de que el único interés de Oracle en MySQL era reducir la
competencia que MySQL suponía para el mayor proveedor de bases de datos
relacionales del mundo, que es Oracle.
Hay bastantes paquetes privativos y libres de terceros diseñados para MySQL que
también están disponibles para integrarse con MariaDB. Algunos ejemplos son:
 DBEdit — una aplicación de administración libre para MariaDB y otras
bases de datos.
 dbForge Studio for MySQL — aplicación propietaria de gestión de bases de
datos MySQL compatible con MariaDB.
 Navicat — una serie de aplicaciones propietarias de gestión de bases de
datos para Windows, Mac OS X y Linux.
 SQLyog — aplicación propietaria de gestión de bases de datos MySQL
compatible con MariaDB para Windows y Linux.
 HeidiSQL — un cliente de fuente abierta y libre para MySQL, 100%
compatible con MariaDB, incluido con el paquete MSI para Windows de
MariaDB desde la versión 5.2.7.
 phpMyAdmin — una aplicación web de administración libre para MySQL
compatible con MariaDB.
Este SGBD es una derivación de MySQL que cuenta con la mayoría de
características de este e incluye varias extensiones.
Nace a partir de la adquisición de MySQL por parte de Oracle para seguir la
filosofía Open Source y tiene la ventaja de que es totalmente compatible con
MySQL.

Entre las principales características de este Sistema Gestor de Bases de datos


se encuentran:
 Aumento de motores de almacenamiento
 Gran escalabilidad
 Seguridad y rapidez en transacciones
 Extensiones y nuevas características relacionadas con su aplicación para
Bases de datos NoSQL.
No tiene desventajas muy aparentes salvo algunas pequeñas incompatibilidades
en la migración de MariaDB y MySQL o pequeños atrasos en la liberación de
versiones estables.

SQLITE

SQLite es un sistema de gestión de


bases de datos relacional compatible con
ACID, contenida en una relativamente
pequeña (~275 kiB) biblioteca escrita en
C. SQLite es un proyecto de dominio
público creado por D. Richard Hipp.
A diferencia del sistema de gestión de
bases de datos cliente-servidor, el motor
de SQLite no es un proceso
independiente con el que el programa principal se comunica. En lugar de eso, la
biblioteca SQLite se enlaza con el programa pasando a ser parte integral del
mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas
simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de
datos, debido a que las llamadas a funciones son más eficientes que la
comunicación entre procesos. El conjunto de la base de datos (definiciones,
tablas, índices, y los propios datos), son guardados como un solo fichero estándar
en la máquina host. Este diseño simple se logra bloqueando todo el fichero de
base de datos al principio de cada transacción.
En su versión 3, SQLite permite bases de datos de hasta 2 Terabytes de tamaño, y
también permite la inclusión de campos tipo BLOB.
El autor de SQLite ofrece formación, contratos de soporte técnico y características
adicionales como compresión y cifrado.
La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo
transacciones de base de datos atómicas, consistencia de base de datos,
aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas
complejas.
SQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna
como en la mayor parte de los sistemas de bases de datos SQL, los tipos se
asignan a los valores individuales. Por ejemplo, se puede insertar un string en una
columna de tipo entero (a pesar de que SQLite tratará en primera instancia de
convertir la cadena en un entero). Algunos usuarios consideran esto como una
innovación que hace que la base de datos sea mucho más útil, sobre todo al ser
utilizada desde un lenguaje de scripting de tipos dinámicos. Otros usuarios lo ven
como un gran inconveniente, ya que la técnica no es portable a otras bases de
datos SQL. SQLite no trataba de transformar los datos al tipo de la columna hasta
la versión 3.
Varios procesos o hilos pueden acceder a la misma base de datos sin problemas.
Varios accesos de lectura pueden ser servidos en paralelo. Un acceso de escritura
solo puede ser servido si no se está sirviendo ningún otro acceso
concurrentemente. En caso contrario, el acceso de escritura falla devolviendo un
código de error (o puede automáticamente reintentarse hasta que expira un tiempo
de expiración configurable). Esta situación de acceso concurrente podría cambiar
cuando se está trabajando con tablas temporales. Sin embargo, podría producirse
un interbloqueo debido al multihilo.[1] Este punto fue tratado en la versión 3.3.4,
desarrollada el 11 de febrero de 2006.
Existe un programa independiente de nombre sqlite que puede ser utilizado para
consultar y gestionar los ficheros de base de datos SQLite. También sirve como
ejemplo para la escritura de aplicaciones utilizando la biblioteca SQLite.
Más que un Sistema Gestor de bases de datos como tal, SQLite es
una biblioteca escrita en C que implementa un SGBD y que permite transacciones
sin necesidad de un servidor ni configuraciones.
Es una biblioteca utilizada en multitud de aplicaciones actuales ya que es open
source y las consultas son muy eficientes.
Las principales características de SQLite son:
 El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier
SGBD
 Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y
Durabilidad) logrando gran estabilidad
 Gran portabilidad y rendimiento
La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de
datos que sean muy grandes.

POSTGRESQL

PostgreSQL es un sistema de gestión de


bases de datos relacional orientado a objetos
y de código abierto, publicado bajo la licencia
PostgreSQL, similar a la BSD o la MIT.
Como muchos otros proyectos de código
abierto, el desarrollo de PostgreSQL no es
manejado por una empresa o persona, sino
que es dirigido por una comunidad de
desarrolladores que trabajan de forma desinteresada, altruista, libre o apoyados
por organizaciones comerciales. Dicha comunidad es denominada el PGDG
(PostgreSQL Global Development Group).
PostgreSQL no tiene un gestor de defectos, haciendo muy difícil conocer el estado
de sus defectos.
El uso de caracteres en mayúscula en el nombre PostgreSQL puede confundir a
algunas personas a primera vista. Las distintas pronunciaciones de "SQL" pueden
llevar a confusión. Los desarrolladores de PostgreSQL lo pronuncian /poːst ɡɹɛs
kjuː ɛl/; Es también común oír abreviadamente como simplemente "Postgres", el
que fue su nombre original. Debido a su soporte del estándar SQL entre la mayor
parte de bases de datos relacionales, la comunidad consideró cambiar el nombre
al anterior Postgres. Sin embargo, el PostgreSQL Core Team anunció en 2007 que
el producto seguiría llamándose PostgreSQL. El nombre hace referencia a los
orígenes del proyecto como la base de datos "post-Ingres", y los autores originales
también desarrollaron la base de datos Ingres.
PostgreSQL provee nativamente soporte para:
 Números de precisión arbitraria.
 Texto de largo ilimitado.
 Figuras geométricas (con una variedad de funciones asociadas).
 Direcciones IP (IPv4 e IPv6).
 Bloques de direcciones estilo CIDR.
 Direcciones MAC.
 Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que
pueden ser por completo indexables gracias a la infraestructura GiST de
PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto
PostGIS.
Este sistema gestor de base de datos relacional está orientado a objetos y es libre,
publicado bajo la licencia BSD.
Sus principales características son:
 Control de Concurrencias multiversión (MVCC)
 Flexibilidad en cuanto a lenguajes de programación
 Multiplataforma
 Dispone de una herramienta (pgAdmin, https://www.pgadmin.org/) muy fácil
e intuitiva para la administración de las bases de datos.
 Robustez, Eficiencia y Estabilidad.
La principal desventaja es la lentitud para la administración de bases de datos
pequeñas ya que está optimizado para gestionar grandes volúmenes de datos.

MICROSOFT SQL SERVER

Microsoft SQL Server es un sistema de


gestión de base de datos relacional,
desarrollado por la empresa Microsoft.
El lenguaje de desarrollo utilizado (por línea
de comandos o mediante la interfaz gráfica
de Management Studio) es Transact-SQL
(TSQL), una implementación del estándar
ANSI del lenguaje SQL, utilizado para
manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas
(DDL).
Dentro de los competidores más destacados de SQL Server están: Oracle,
MariaDB, MySQL, PostgreSQL. SQL Server ha estado tradicionalmente disponible
solo para sistemas operativos Windows de Microsoft, pero desde 2016 está
disponible para GNU/Linux, y a partir de 2017 para Docker también.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la
primera instalación lleva generalmente el nombre del servidor, y las siguientes -
nombres específicos (con un guion invertido entre el nombre del servidor y el
nombre de la instalación).
Características
 Soporte de transacciones.
 Soporta procedimientos almacenados.
 Incluye también un entorno gráfico de administración, que permite el uso de
comandos DDL y DML gráficamente.
 Permite trabajar en modo cliente-servidor, donde la información y datos se
alojan en el servidor y los terminales o clientes de la red sólo acceden a la
información.
 Además, permite administrar información de otros servidores de datos.
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de
base de datos, pero orientado a proyectos más pequeños, que en sus versiones
2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma
gratuita.
Es común desarrollar proyectos completos empleando Microsoft SQL Server y
Microsoft Access a través de los llamados ADP (Access Data Project). De esta
forma se completa la base de datos (Microsoft SQL Server), con el entorno de
desarrollo (VBA Access), a través de la implementación de aplicaciones de dos
capas mediante el uso de formularios Windows.
En el manejo de SQL mediante líneas de comando se utiliza el SQLCMD, osql, o
PowerShell.
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft
SQL Server incluye interfaces de acceso para varias plataformas de desarrollo,
entre ellas .NET, pero el servidor sólo está disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a
partir de la versión 2008 R2.
Es un sistema gestor de bases de datos relacionales basado en el
lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios
grandes cantidades de datos de manera simultánea.
Es un sistema propietario de Microsoft. Sus principales características son:
 Soporte exclusivo por parte de Microsoft.
 Escalabilidad, estabilidad y seguridad.
 Posibilidad de cancelar consultas.
 Potente entorno gráfico de administración que permite utilizar comandos
DDL y DML.
 Aunque es nativo para Windows puede utilizarse desde hace ya un tiempo
en otras plataformas como Linux o Docker.
Su principal desventaja es el precio. Cuenta con un plan gratuito (Express) pero lo
normal es la elección de alguno de los planes de pago disponibles (Standard,
Developer, Enterprise o SQL Azure, la versión de SQL Server en la nube).

ORACLE

Oracle Corporation es una compañía


especializada en el desarrollo de soluciones
de nube y locales. Oracle tiene su sede en la
localidad californiana de Redwood City,
Estados Unidos. Según la clasificación
correspondiente al año 2006, ocupa el primer
lugar en la categoría de las bases de datos y
el séptimo lugar a nivel mundial de las
compañías de tecnologías de la información. La tecnología Oracle se encuentra
prácticamente en muchas industrias del mundo y en las oficinas de 98 de las 100
empresas Fortune 100.
Oracle (Nasdaq: ORCL) es la primera compañía de software de estereotipos que
desarrolla e implementa aplicaciones para empresas cien por ciento activado por
Internet a través de toda su línea de productos: base de datos, aplicaciones
comerciales y herramientas de desarrollo de aplicaciones y soporte de decisiones.
Oracle es el proveedor mundial de software para administración de información a
lo largo de todo el mundo, muy por delante de la segunda de su segmento,
Software AG.
Tradicionalmente, Oracle ha sido el SGBD por excelencia para el mundo
empresarial, considerado siempre como el más completo y robusto, destacando
por:
 Soporte de transacciones.
 Estabilidad.
 Escalabilidad.
 Multiplataforma.

La principal desventaja, al igual que SQL Server, es el coste del software ya que,
aunque cuenta con una versión gratuita (Express Edition o XE), sus principales
opciones son de pago.
Las opciones de pago disponibles son:

o 1. Standard Edition (SE)

o 2. Standard Edition One (SE1)


o 3. Standard Edition 2 (SE2)


o 4. Personal Edition (PE)

 5. Lite Edition (LE)


 6. Entreprise Edition (EE)

SISTEMAS GESTORES DE BASES DE DATOS NO


RELACIONALES (NOSQL)

Una base de datos no relacional (NoSQL) es aquella base de datos que:


 No requiere de estructuras de datos fijas como tablas
 No garantiza completamente las características ACID
 Escala muy bien horizontalmente.
Se utilizan en entornos distribuidos que han de estar siempre disponibles y
operativos y que gestionan un importante volumen de datos.
Para la administración de este tipo de bases de datos, actualmente los principales
sistemas gestores de bases de datos (SGBD NoSQL) son:
MONGODB

MongoDB (del inglés humongous,


"enorme") es un sistema de base de
datos NoSQL orientado a documentos
de código abierto.
En lugar de guardar los datos en
tablas, tal y como se hace en las
bases de datos relacionales,
MongoDB guarda estructuras de
datos BSON (una especificación
similar a JSON) con un esquema dinámico, haciendo que la integración de los
datos en ciertas aplicaciones sea más fácil y rápida.
MongoDB es una base de datos adecuada para su uso en producción y con
múltiples funcionalidades. Esta base de datos se utiliza mucho en la industria,
contando con implantaciones en empresas como MTV Network, Craiglist, BCI o
Foursquare.
El código binario está disponible para los sistemas operativos Windows,
GNU/Linux, OS X y Solaris.
Estamos ante el Sistema Gestor de Bases de Datos no relacionales (SGBD
NoSQL) más popular y utilizado actualmente.
MongoDB es un SBGD NoSQL orientado a ficheros que almacena la información
en estructuras BSON con un esquema dinámico que permite su facilidad de
integración.
Empresas como Google, Facebook, eBay, Cisco o Adobe utilizan MongoDB como
Sistema Gestor de Bases de datos.

Las principales características de MongoDB son:


 Indexación y replicación
 Balanceo de carga
 Almacenamiento en ficheros
 Consultas ad hoc
 Escalabilidad horizontal
 Open Source
Como desventaja principal, MongoDB no es un SGBD adecuado para realizar
transacciones complejas.

REDIS

Redis es un motor de base de datos


en memoria, basado en el
almacenamiento en tablas de
hashes (clave/valor) pero que
opcionalmente puede ser usada
como una base de datos durable o
persistente. Está escrito en ANSI C
por Salvatore Sanfilippo, quien es
patrocinado por Redis Labs. Está
liberado bajo licencia BSD por lo
que es considerado software de código abierto.
El modelo de datos de Redis se basa en la estructura de datos del tipo diccionario
o tabla de hashes que relaciona una llave a un contenido almacenado en un
índice. La principal diferencia entre Redis y otros sistemas similares es que los
valores no están limitados a ser de tipo string, otros tipos de datos están
soportados:
 Listas (Lists) de strings
 Sets de strings (colecciones de elementos desordenados no repetidos)
 hashes donde la llave y el valor son del tipo string
El tipo de valor determina las operaciones (los comandos) que son disponibles.
Redis soporta operaciones atómicas de alto nivel del lado del servidor, como
inserciones, unions, y diferencias entre sets y listas ordenadas. Desde la versión
2.6, liberada a finales de octubre de 2012, se introduce una funcionalidad clave, la
posibilidad de ejecutar Scripts en el servidor Redis, escritos en lenguaje Lua.
Redis normalmente guarda la información en la memoria RAM, pero en versiones
superiores a la 2.4 se puede configurar para utilizar Memoria virtual, pero ahora
esto está desactualizado. Se puede hacer que los datos sean persistentes de dos
formas, una es hacer snapshots (capturas), aunque no sería realmente durable ya
que estos son asíncronos al transferir la memoria al disco cada cierto tiempo.
Desde la versión 1.1 la mejor alternativa es usar un archivo del tipo appendonly
gracias a un sistema de Journaling el cual escribe en este archivo cada
modificación que se realice sobre los datos en memoria pudiendo regenerar los
datos. Esto genera un costo en el rendimiento, pero se puede configurar de dos
formas, always, que escribirá cualquier cambio en el instante, o everysec que lo
hará segundo tras segundo.

Redis está basado en el almacenamiento clave-valor. Podríamos verlo como un


vector enorme que almacena todo tipo de datos, desde cadenas, hashses, listas,
etc.
El principal uso de este SGBD es para el almacenamiento en memoria caché y la
administración de sesiones.
Las características principales son:
 Atomicidad y persistencia
 Gran velocidad
 Simplicidad
 Multiplataforma

APACHE CASSANDRA

Apache Cassandra es una base de


datos NoSQL distribuida y basada en un
modelo de almacenamiento de «clave-
valor», de código abierto que está escrita
en Java. Permite grandes volúmenes de
datos en forma distribuida. Por ejemplo,
lo usa Twitter para su plataforma. Su
objetivo principal es la escalabilidad
lineal y la disponibilidad. La arquitectura
distribuida de Cassandra está basada en una serie de nodos iguales que se
comunican con un protocolo P2P con lo que la redundancia es máxima. Está
desarrollada por Apache Software Foundation.
Cassandra ofrece soporte robusto para múltiples centros de datos,1 con la
replicación asincrónica sin necesidad de un servidor maestro, que permiten
operaciones de baja latencia para todos los clientes.
Cassandra también ofrece un gran rendimiento. En 2012, investigadores de la
Universidad de Toronto que estudian los sistemas NoSQL concluyeron que "En
términos de escalabilidad, hay un claro ganador a través de nuestros
experimentos. Cassandra logra el más alto rendimiento para el número máximo de
nodos en todos los experimentos", aunque "esto tiene como precio una alta
latencia de escritura y lectura".
El modelo de datos de Cassandra consiste en particionar las filas, que son
reorganizadas en tablas. Las claves primarias de cada tabla tiene un primer
componente que es la clave de partición. Dentro de una partición, las filas son
agrupadas por las columnas restantes de la clave. Las demás columnas pueden
ser indexadas por separado de la clave primaria.
Las tablas se pueden crear, eliminar y alterar en tiempo de ejecución sin bloquear
actualizaciones y consultas.
Cassandra no soporta joins o subqueries, sino que enfatiza en la desnormalización
a través de características como colecciones.
En las versiones iniciales utilizaba un API propia para poder acceder a la base de
datos. En los últimos tiempos están apostando por un lenguaje denominado CQL
(Cassandra Query Language, no confundir con Contextual Query Language) que
posee una sintaxis similar a SQL, aunque con muchas menos funcionalidades.
Esto hace que iniciarse en el uso de la misma sea más sencillo. Permite acceder
en Java desde JDBC.
Al igual que Redis, Cassandra también utiliza almacenamiento clave-valor. Es un
SGBD NoSQL distribuido y masivamente escalable.

Facebook, Twitter, Instagram, Spotify o Netflix utilizan Cassandra.


Dispone de un lenguaje propio para las consultas denominado CQL (Cassandra
Query Languaje).
Las principales características de este SGBD NoSQL son:
 Multiplataforma
 Propio lenguaje de consultas (CQL)
 Escalado lineal y horizontal
 Es un SGBD distribuido
 Utiliza una arquitectura peer-to-peer

CONSTRUCCIÓN DE SOFTWARE
El término Software Construction (Construcción del software) se refiere a la
creación de software productivo y significativo a través de los procesos de
codificación, verificación, pruebas unitarias, pruebas de integración y depuración
de errores.
El área del conocimiento de la 'construcción del software' está íntimamente
relacionada a las otras áreas del conocimiento del software como lo son: el diseño,
las pruebas, la gestión de configuraciones, la calidad y las herramientas y
métodos.
Los límites entre el diseño y la construcción variaran dependiendo del proceso de
ciclo de vida del software utilizado en el proyecto. Aunque ciertas tareas de diseño
puedan ser desarrolladas antes del proceso de construcción, gran parte del trabajo
de diseño es realizado en sí, durante el proceso de construcción.
Software que se construye deberá ser validado y verificado, en esta área suelen
emplearse pruebas de software, mostrando, así como la salida de la construcción
será la entrada de las pruebas.
Los ingenieros del software suelen realizar pruebas unitarias y pruebas de
integración, demostrando así la cercanía que existen entre el área de
conocimiento de la 'construcción del software' y el área de las 'pruebas del
software'.
Típicamente la 'construcción del software' produce el mayor volumen de ítems
configurables que necesitan ser manejados en un proyecto de software (código
fuente, contenido, casos de uso, etc). Es por ello que el área de 'construcción del
software' también está íntimamente relacionada con el 'gerencia de
configuraciones del software'.
Mientras la calidad del software es importante en todas las áreas del
conocimiento, el código es uno de los entregables primordiales en un proyecto de
software, y por lo tanto la 'calidad del software' está muy ligada a la 'construcción
del software'.
Desde que la 'construcción del software' depende altamente en las herramientas y
métodos, y es probablemente el área de conocimiento que haga el uso más
intensivo de herramientas. Esto demuestra el enlace tan fuerte que tiene el área
de 'construcción del software' con el área de 'herramientas y métodos del software’
La ingeniería de software dentro del área de la construcción busca, minimizar la
complejidad, anticipar los cambios, construir teniendo en cuenta la verificación,
construir usando estándares.
MINIMIZAR LA COMPLEJIDAD
La necesidad de reducir la complejidad aplica esencialmente a cada aspecto de la
'construcción del software', y es particularmente crítica en el proceso de
verificación y pruebas. La reducción de la complejidad se consigue haciendo
énfasis en que el código creado tiene que ser sencillo y legible más que
inteligente. La aplicación de las buenas prácticas del lenguaje que se esté
empleando, así como estándares de desarrollo suele ayudar a reducir la
complejidad. Se debe considerar que la legibilidad y sencillez de código puede
afectar el rendimiento de la aplicación, es por ello que resulta conveniente siempre
evaluar los requisitos tanto funcionales como no funcionales en aras de establecer
un balance entre legibilidad y mantenibilidad contra rendimiento y tiempos de
respuesta y saber en dónde es conveniente mantener más de uno que otro.
ANTICIPAR CAMBIOS
La naturaleza de los proyectos de software hace que en su gran mayoría sean
desarrollos un gran número de cambios y nuevos requerimientos que van
surgiendo durante la ejecución del mismo. Es por ello que los ingenieros del
software deben ser capaces de prever este tipo de situaciones y planificar y
gestionar el proyecto de forma tal que sea posible reaccionar a tiempo a estos
cambios, donde quien se ve mayor mente afectada es la fase de construcción
quien puede tener que re implementar funcionalidades o generar nuevas antes no
contempladas. Este es uno de los motivos por los cuales es importante desarrollar
sistemas que puedan ser mantenibles, ya que facilita estos procesos de
modificación y actualización.
CONSTRUCCIÓN SEGÚN MODELOS DE DESARROLLO
Lo que es considerado como 'construcción' dependerá en cierto grado del modelo
de software utilizado. Mientras más linear sea el enfoque más se tiende a enfatizar
en las actividades que preceden al proceso de construcción. Otros modelos son
más iterativos y tienden a tratar el proceso de construcción como una actividad
que ocurre concurrentemente con otras actividades del desarrollo del Software.
PLANIFICACIÓN DE LA CONSTRUCCIÓN
La elección del método de construcción afecta en cierta forma como son
realizados los prerrequisitos de la construcción, afecta la habilidad del proyecto de
disminuir la complejidad, anticipar el cambio, y la construcción en función de la
verificación. Cada uno de estos objetivos puede también ser considerados en el
nivel del proceso, requerimientos o diseño; pero también pueden ser influenciados
por la elección del método de construcción. La planificación de la construcción
puede definir el orden en que los componentes del Software son creados e
integrados, los procesos de gestión de calidad del Software, el posicionamiento de
las asignaciones a los ingenieros del software, y otras tareas, de acuerdo
obviamente al método elegido.
MEDICIÓN DE LA CONSTRUCCIÓN
Numerosas actividades de la construcción y ciertos artefactos deben ser medidos,
incluyendo el código desarrollado, el código modificado, el código re-usado, el
código destruido, la complejidad del código, las estadísticas del código, búsqueda
y eliminación de errores, esfuerzo y calendario. Estas medidas pueden ser útiles
para los propósitos de la gerencia de la construcción, asegurando la calidad
durante la construcción, mejorando también el proceso de construcción. La
construcción es una actividad en la cual el Software tiene que lidiar con las
restricciones arbitrarias y caóticas provenientes del mundo real, y cumplirlas
exactamente. Debido a la proximidad con las restricciones del mundo real, la
construcción es manejada por consideraciones del orden práctico, y en medida
muchas que otras áreas del conocimiento, y por lo tanto la ingeniería del software
es quizás mucho más artesanal en el área de 'construcción del software.'
DISEÑO DE LA CONSTRUCCIÓN
Algunos proyectos suelen colocar más actividades de diseño en la construcción,
otros tienden a tener una fase exclusivamente a diseño. Sin importar cuál es el
carácter exacto, varios trabajos de diseño ocurrirán en la construcción, y ese
trabajo de diseño se regirá por los límites impuestos por el problema de la vida
real que está buscando resolver el software.
LENGUAJE DE CONSTRUCCIÓN
Los lenguajes de construcción incluyen todas las formas de comunicación por las
cuales el ser humano puede implantar una solución ejecutable al computador.
Se pueden dividir en:
 'lenguaje de configuración',
 Toolkits
 Lenguajes de programación.
RE-USO
Implementar el re-uso del software involucra mucho más que crear librerías.
Requiere formalizar la práctica del re-uso al integrar procesos de re-uso y
actividades dentro del ciclo de vida del software. Sin embargo, el re-uso es lo
suficientemente importante en la construcción del software que es incluido como
un tópico.
REFERENCIAS
Los 10 lenguajes de programación más usados. (17/08/2918) Dinahosting.
https://blog.dinahosting.com/los-10-lenguajes-de-programacion-mas-usados/

PHP. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/PHP

Perl. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Perl

Java. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci


%C3%B3n)

C++. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/C%2B%2B

C Sharp. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/C_Sharp

Phyton. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Python

JavaScript. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/JavaScript

Swift. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Swift_(lenguaje_de_programaci


%C3%B3n)

R. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/R_(lenguaje_de_programaci


%C3%B3n)

Rust. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci


%C3%B3n)

Los gestores de bases de datos más usados en la actualidad. (19/04/2019)


Revista Digital. https://revistadigital.inesem.es/informatica-y-tics/los-gestores-de-
bases-de-datos-mas-usados/

MySQL. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/MySQL

MariaDB. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/MariaDB

SQLite. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/SQLite

PostgreSQL. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/PostgreSQL

Microsoft SQL Server. (S.F.) Wikipedia.


https://es.wikipedia.org/wiki/Microsoft_SQL_Server

Oracle Corporation. (S.F.) Wikipedia.


https://es.wikipedia.org/wiki/Oracle_Corporation
MongoDB. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/MongoDB

Redis. (S.F.) Wikipedia. https://es.wikipedia.org/wiki/Redis

Apache Cassandra. (S.F.) Wikipedia.


https://es.wikipedia.org/wiki/Apache_Cassandra

Construcción del Software. (S.F.) Scribd.


https://es.scribd.com/document/330753332/3-3-Construccion-Del-Sistema

También podría gustarte