miércoles, 6 de marzo de 2019

EXPOSICIONES: MANEJADORES DE BASE DE DATOS

GRUPO A





PRÁCTICA #2 DJANGO GIRLS


Sitio web: https://tutorial.djangogirls.org/es/django_start_project/

1. Creación del proyecto

Anteriormente ya se había mostrado como se creaba un proyecto con DJango desde el cmd. De igual manera mostrare como he creado yo mi proyecto.



Después de haber creado nuestro proyecto vamos a correr una migración con el comando: 

python manage.py migrate

Y a partir de eso iniciara una migración de datos para nuestro proyecto.

Una vez finalizando las migraciones, vamos a correr el servidor prácticamente como el proyecto que cree en la práctica anterior, utilizando el comando:

python manage.py runserver 


Finalizando estos dos procesos, podremos ingresar a la pagina que nuestro proyecto ha creado.

2. Modelos Django

Lo que queremos crear ahora es algo que almacene todas las entradas de nuestro blog.

Sabiendo qué es un objeto, podemos llevar a cabo la creación de nuestro modelo.
Un modelo en Django es un tipo especial de objeto que se guarda en la base de datos. Una base de datos es una colección de datos. Es un lugar en el cual almacenarás la información sobre usuarios, tus entradas de blog, etc.
Vamos a crear una aplicación llamada "blog" dentro del proyecto djangogirls que ya hemos creado.

Una vez creada la aplicación, regresamos a los archivos de nuestro proyecto en PyCharm y nos vamos al archivo de "setting". Una vez ahí, buscaremos el apartado de installed apps en donde tenemos que dar de alta nuestra nueva aplicación blog para poder visualizarla mas adelante.


3. Creación de un modelo en la aplicación "blog"

Dentro de los archivos que se crean al momento de hacer nuestra aplicación, iremos al apartado de "models" en donde borraremos todo y copiaremos el siguiente código para crear nuestro primer modelo.



Una vez hecho esto,entraremos a la pagina que nos da nuestro proyecto: http://127.0.0.1:8000/admin/

Dentro de la pagina, nos pedirá un usuario y contraseña como se muestra.
Para poder acceder a todo lo que ya hemos creado en nuestro proyecto, crearemos un superusuario el cual tendrá acceso a cualquier tipo de información dentro del proyecto.

Para crearlo, vamos a nuestro cmd de nuevo y ejecutamos el comando:

 python manage.py createsuperuser .


Nos pedirá el nombre, correo y contraseña de dicho usuario.

NOTA: al poner la contraseña no saldrá ningún carácter por motivo de seguridad de django.


Una vez realizado todo esto corremos nuestro servidor de nuevo y  agregamos el usuario y contraseña que hemos creado anteriormente en el cmd.





martes, 19 de febrero de 2019

FRAMEWORKS

1.RAILS ON RUBY


Rails fue creado en 2003 por David Heinemeier Hansson.

Rails es un framework de desarrollo de aplicaciones web escrito en el lenguaje de programación Ruby. Esta diseñado para hacer que la programación de aplicaciones web sea mas fácil, haciendo supuestos sobre lo que cada desarrollador necesita para comenzar. Te permite escribir menos código realizando mas que muchos otro lenguajes y frameworks. Ademas, expertos desarrolladores en Rails reportan que hace que el desarrollo de aplicaciones web sea mas entretenido.

Ventajas:

  • Cuenta con código libre.
  • Tiene una extensa comunidad detrás de el que la respalda.
  • Favorece en el ahorro de lineas de código.
  • Tiene una forma mas fácil de interactuar.
Desventajas:
  • Se debe aprender el lenguaje de Ruby.
  • No es un lenguaje muy conocido.

2. SYMFONY


Symfony es uno de los frameworks PHP mas populares entre los programadores y empresas, ya que permite que los programadores sean mucho mas productivos a la vez que crean código de mas calidad y mas fácil de mantener. Symfony es maduro, estable,profesional y esta muy bien documentado.

Symfony sigue la estela de Rails para simplificar al máximo el desarrollo de aplicaciones web profesionales con PHP, utilizando las mejores practicas y los patrones de diseño mas importantes. Symfony incorpora muchas de las ideas del RAD("Desarrollo rapido de aplicaciones") para conseguir que la programación de las aplicaciones sea lo mas productiva, correcta y entretenida posible.

Ventajas:
  • Productividad.
  • Organización clara.
  • Convencion con otros frameworks(facil integrar trabajos de otros frameworks).
  • Documentación.
  • Seguridad.
  • Comunidad.
  • Mejor rendimiento.


Desventajas:
  • Curva inicial de aprendizaje.
  • Convención (muchas veces para algunos programadores es una desventaja).
  • Sensación de bala de plata(Se piensa que es el mejor framework una vez que se acostumbra a su uso y se cae en una zona de confort).

3. ANGULARJS

AngularJS es Javascript. Es un proyecto de código abierto, realizado en Javascript que contiene un conjunto de librerías útiles para el desarrollo de aplicaciones web y propone una serie de patrones de diseño para llevarlas a cabo. En pocas palabras, es lo que se conoce como un framework para el desarrollo, en esta caso sobre el lenguaje Javascript con programación del lado del cliente.

Este Javascript pretende que los programadores mejoren el HTML que hacen. Que puedan producir un HTML que, de manera declarativa, genere aplicaciones que sean fáciles de entender incluso para alguien que no tiene conocimientos profundos de informática. El objetivo es producir un HTML altamente semántico, es decir, que cuando lo leas entiendas de manera clara qué es lo que hace o para qué sirve cada cosa.


Ventajas:
  • Angular ofrece más opciones de serie, ayudando a arrancar sin intimidarte por la toma de decisiones.
  • Consistencia en la documentación.
  • Mejor y mas fácil mantenimiento.
  • Un componente en Angular es una porción de código que es posible reutilizar en otros proyectos de Angular sin apenas esfuerzo, lo que permite un desarrollo de aplicaciones mucho más ágil.
  • Gran soporte de herramientas.
Desventajas:
  • Nomenclatura(usa conceptos fáciles de comprender,pero los llama por un nombre poco convencional)
  • Sus filtros no funcionan correctamente
  • Falta de documentación de sus funciones
4. REACT




React (también llamada React.js o ReactJS) es una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y la comunidad de software libre, han participado en el proyecto más de mil desarrolladores diferentes.


React intenta ayudar a los desarrolladores a construir aplicaciones que usan datos que cambian todo el tiempo. Su objetivo es ser sencillo, declarativo y fácil de combinar.


Ventajas:
  • Fácil saber cómo se representa un componente, que acaba de observar la función de render.
  • JSX facilita la lectura del código de sus componentes. También es muy fácil ver el diseño o cómo los componentes se enchufan/combinan entre sí.
  • Puede procesar React en el lado del servidor.
  • Es fácil de probar, y también puede integrar algunas herramientas como broma.
  • Garantiza la legibilidad y facilita el mantenimiento.
  • Puede usar Reaccionar con cualquier marco (Backbone.js, Angular.js) ya que solo es una capa de vista.
Desventajas:
  • Es solo una capa de vista, todavía tiene que conectar su código para solicitudes de Ajax, eventos, etc. Algunas personas se sorprenden por eso.
  • La biblioteca en sí es bastante grande.
  • La curva de aprendizaje puede ser pronunciada.

5. CAKEPHP



CakePHP es un marco de desarrollo rápido para PHP, libre, de código abierto. Se trata de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones Web. Su principal objetivo es que se pueda trabajar de forma estructurada y rápida, sin pérdida de flexibilidad. CakePHP empezó en 2005, cuando Ruby On Rails estaba ganando popularidad y utiliza muchos de sus conceptos. Desde entonces la comunidad creció y generó muchos sub-proyectos.


Ventajas:
  • Fácil de aprender.
  • Implementacion rápida.
  • Migración entre entornos.
  • Plugins(Herramientas para lo que se necesite programar).
Desventajas:
  • Malos consejos a la hora de realizar algún procedimiento(recomendaciones).
  • Tamaño de los ficheros, demasiado pesados.
  • Exceso de consultas.

6. ASP.NET


ASP.NET es un entorno para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

Ventajas:
  • Control de los recursos del sistema.
  • Velocidad y seguridad en el código.
Desventajas:
  • Consumo elevado de recursos innecesarios
  • La ejecución de las aplicaciones requiere el uso de mas recursos innecesarios.
  • No es de código abierto.

7.NODE




Node.js es una forma de ejecutar JavaScript en el servidor, además de mucho más. Node.js es un entorno Javascript del lado del servidor, basado en eventos. Node ejecuta javascript utilizando el motor V8, desarrollado por Google para uso de su navegador Chrome. Aprovechando el motor V8 permite a Node proporciona un entorno de ejecución del lado del servidor que compila y ejecuta javascript a velocidades increíbles. 

Ventajas:
  • Escalabilidad de manera sencilla.
  • Rendimiento.
  • Gestión de paquetes.
  • "Popularidad".

Desventajas:
  • API inestable.
  • Falta de una librería estándar.
  • Falta de librerías en general.
  • No hay suficiente documentación.

8.YII


Yii es un framework PHP basado en componentes de alta performance para desarrollar aplicaciones Web de gran escala. El mismo permite la máxima reutilización en la programación web y puede acelerar el proceso de desarrollo.

Yii también es un framework genérico de programación Web que puede ser utilzado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado con soluciones de cacheo sofisticadas, es adecuado para desarrollar aplicaciones de gran tráfico como portales, foros, sistemas de administración de contenidos (CMS), Sistemas de comercio electrónico (e-commerce), etc.

Ventajas:
  • Esta diseñado específicamente para trabajar con aplicaciones web de trafico alto.
  • Manejo de permisos a usuarios.
  • Eficiencia y variedad de funcionalidades.
  • Clara documentación(ingles).
  • Seguro.

Desventajas:
  • Perdida de control sobre lo que se esta haciendo.
  • Generador de código basura.

9.METEOR




Meteor JS es una nueva infraestructura de JavaScript que tiene como objetivo automatizar y simplificar el desarrollo de aplicaciones web que actúan en tiempo real.

Usa la comunicación en tiempo real mediante un protocolo llamado Distributed Data Protocol (DDP), que es soportado por navegadores modernos que usan WebSockets.

Meteor JS es parte de una nueva ola de frameworks y tecnologías que buscan desafiar el status quo haciendo webs reactivas y en tiempo real.

Ventajas:
  • Mejor proceso de comunicación y actualización con las bases de datos.
  • Fácil de aprender.
  • Respuesta rápida
  • Gran comunidad activa.
Desventajas:
  • Meteor viene incluido solo con MongoDB.
  • El sistema de paquetes esta cerrado a la comunidad por ahora.

10.LARAVEL




Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP de forma elegante y simple, evitando el "código espagueti"(Codigo que no tiene logica o es incomprensible para el programador) . Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET


Ventajas:
  • Desarrollo rápido.
  • Hace la aplicación mas segura.
  • Fácil mantenimiento.
  • Gran comunidad.
Desventajas:

  • Lenta ejecución.
  • Soluciones generales para problemas específicos.
  • Tiempo para aprender y dominar el framework.
  • Visibilidad y control limitado.

RELACIÓN DEL DBA CON OTRAS ÁREAS DE LA SISTEMAS. 

En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos.

El rendimiento es una de las mayores motivaciones de los DBA para coordinarse con los especialistas de otras áreas del sistema fuera de las líneas burocráticas tradicionales. Uno de los deberes menos respetados por el administrador de base de datos es el desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran como la responsabilidad más importante de un DBA. 

Las actividades de soporte incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos; consultar a los programadores respecto al desempeño; y hacer cambios a los diseños de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos para las funciones de los programas.

miércoles, 6 de febrero de 2019

PRACTICA #1 INSTALACIÓN DJANGO Y CREACIÓN PÁGINA WEB CON DJANGO

En esta practica lo que haremos es la creación de un proyecto con Django de Python, pero para poder llevar a cabo esto, primero tenemos que hacer la instalación de Django, en este caso yo hice lo instalé desde el cmd como se muestra a continuación.

Para hacer la instalación de Django ingresamos al cmd y el comando principal para instalarlo es:

               python pip install Django




Una vez instalado Django, iniciamos la creación de nuestro proyecto.



Terminado de crear nuestro proyecto en el cmd, podemos verificar sí se creo con éxito por medio de PyCharm, como lo muestra la siguiente imagen.



Con la instrucción dir/p podemos revisar lo que django nos ha creado en la carpeta con el nombre del proyecto, ya sea para la aplicación y para el proyecto.

Dentro de proyecto podemos correr Runserver para activar el servidor del proyecto que hemos creado insertando el código python manage.py runserver






martes, 29 de enero de 2019

U1.- 1.2 MANEJADORES DE BASES DE DATOS


Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management System (DBMS) es una colección de software muy específico, cuya función es servir de interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas.

Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management System (DBMS) es una colección de software muy específico, cuya función es servir de interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas.

10 DBMS (Manejadores de Bases de Datos).


MYSQL.

Es un sistema de administración de base de datos que nos permite administrar bases de datos relacionales. Es un software de código abierto respaldado por Oracle. A pesar de que MySQL es un software de código abierto, puede comprarse una versión de licencia comercial de Oracle para obtener servicios de soporte premium.

Ventajas:
  • MySQL es de codigo abierto
  • Tiene una gran velocidad al realizar operaciones, lo que mejora su rendimiento
  • Facilidad de configuración e instalación
  • Soporta gran variedad de sistemas operativos
  • Su conectividad, velocidad y seguridad hacen de MySQL server altamente apropiado para acceder a bases de datos en Internet.
Desventajas:
  • Gran porcentaja de las utilidades de MySQL no estan documentadas
  • No es intuitivo como otros programas. Ejemplo: Access.
MICROSOFT SQL SERVER.
SQL Server es un sistema de administración de bases de datos relacionales desarrollado por Microsoft.Tambien es un ORDBMS, plataforma dependiente tanto de su interfaz gráfica como software basado en comandos y SQL language, que es producto de IBM.

Ventajas:
  • Es muy util para manejar y obtener datos de la red
  • Compatibilidad con la mayoría de las tareas administrativas de SQL Server.
  • Al trabajar una red social, permite agregar mas servidores de SQL Server y visualizar las bases de datos de otra persona.
Desventajas:
  • La acaparación de memoria RAM para intalaciones y manejo de software
  • Contiene muchas restricciones entre ellas
  • Bloqueos a nivel de pagina
  • Un tamaño fijo y demasiado pequeño al trabajar en la hoja
    ORACLE.

    Oracle data base RDBMS es un sistema de administracion de bases de datos relacionales de objetos de Oracle corporation.
    La base de datos de Oracle es la primera diseñada para la computacion grid empresarial, la cual proporciona la manera mas flexible y rentable de administrar la informacion y las aplicaciones.

    Ventajas:

    • Oracle es el motor de base de datos objeto-relacional mas usado a nivel mundial
    • Puede ejecutarse en todas las plataformas
    • Permite el uso de particiones para mejorar su eficiencia, de replicacion e incluso ciertas versiones admiten la administración de bases de datos distribuidas 
    • Oracle es la base de datos con mas orientacion a internet.
    Desventajas:
    • Se encuentran muchas versiones desde su lanzamiento original de version 8 con varias versiones posteriores con correcciones,hasta su estabilidad en la version 8.0.3. El motivo de estos errores fue, al parecer, la remodelacion del sistema de almacenamiento por causa de la introduccion de extensiones orientadas a objetos.
    • Su mayor inconveniente es su precio. Incluso las licencias de personasl Oracle son excesivamente caras.
    POSTGRE SQL. 

    Es un potente sistema de gestión de bases de datos relacionales de código abierto.
    PostgreSQL se ejecuta en todos los principales sistemas operativos, incluidos Linux, Unix y Windows.

    Diseñado para ambientes de alto volumen y nadie puede demandarlo por violar acuerdos de licencia, puesto que no hay costo asociado a la licencia de este software.

    Ventajas:
    • Su intalacion ilimitada
    • Facilidad al administrar 
    • Dispone de flexibilidad para hacer investigacion y desarrollo de sistemas sin necesidad de incurrir en costos adicionales
    Desventajas:
    • Es 3 veces mas lento que MySQL
    • La sintaxis de algunos comandos o sentencias no es nada intuitiva
    • Consume muchos recursos de la maquina.
    MONGODB.

    MongoDB es una base de datos multiplataforma y orientada a documentos que ofrece alto rendimiento, alta disponibilidad y escalabilidad facil. MongoDB trabaja en concepto de colección y documentación

    Ventajas:
    • MongoDB tiene la capacidad de realizar consultas utilizando javascript
    • Se utiliza un sistema de archivos, ya que cuenta con la capacidad para balancear la carga y recopilación de datos utilizando múltiples servidores de almacenamiento de archivo.
    Desventajas:

    • MongoDB bloquea la base de datos cada vez que se realiza una escritura, lo que reduce la concurrencia dramáticamente
    • Tiene problemas de rendimiento cuando el volumen de datos supera los 100 GB.
    BD2.
    Es un producto de base de datos de IBM.
    Sistema de gestión de base de datos relacional, diseñado para almacenar, analizar y recuperar los datos de manera eficiente.

    DB2 posee monitor gráfico el cual posibilita observar el tiempo de ejecución de una sentencia SQL y corregir detalles para documentar el rendimiento, asi como gestionar tanto datos relacionales convencionales como datos XML.

    Ventajas:
    • DB2 permite agilizar el tiempo de respuesta de una consulta
    • Recuperación utilizando accesos de solo indices
    • Posee tablas de resumen, tablas replicadas, uniones hash entre otras.
    Desventajas:
    • Lentitud al crear y ejecutar consultas
    • Utiliza mucha memoria RAM.
    CASSANDRA.

    Apache Cassandra es un sistema de administración de bases de datos distribuidas de fuente abierta y gratuita diseñado para manejar grandes cantidades de datos en muchos servidores de productos básicos. Proporciona un mecanismo para almacenar y recuperar datos que no sean las relaciones tabulares utilizadas en bases de datos relacionales.

    Ventajas:
    • Esta orientado a columnas familias
    • Tolerante a fallos, ya que replica los datos de forma automatica a multiples nodos
    • Almacenamiento de los datos tipo column family
    Desventajas:
    • No esta orientada a transacciones, el cual es su factor mas débil.
    • Este tipo de sistemas no se recomienda para transacciones y altas concurrencias, debido a la forma de almacenamiento de datos columna a columna.

    MICROSOFT ACCESS.
    Microsoft access es parte del conjunto de aplicaciones de Microsft Office, es un sistema de administración de bases de datos que combina el motor de base de datos Microsft jet relacional con una interfaz gráfica de usuario y herramientas de desarrollo software.

    Microsoft access almacena datos en su propio formato basado en el motor de bases de datos de access jet. También importa o vincula directamente a datos almacenados en otras aplicaciones y bases de datos.

    Ventajas:
    • Otorga capacidades para aprovechar la información sin necesidad de ser un experto en bases de datos
    • A través de bases de datos web recién agregados, Access amplia la eficacia de los datos, facilita el seguimiento, creación de informes y el uso de compartido con otros usuarios
    Desventajas:
    • No es funcional para bases de datos de gran calibre(en cuanto al volumen de datos o usuarios).
    • Su mayor inconveniente es que no es multiplataforma, pues solo se encuentra para sistema operativo de Microsoft.
    SQLITE.
    Es una biblioteca de software que implementa un motor de bases de datos SQL transaccional autónomo, sin servidor y de configuración cero.

    SQLite esta disponible para Unix(Linux, Mac OS-X, Android, IOS) y Windows.

    Una base de datos SQLite completa se almacena en un unico archivo de disco multiplataforma.
    SQLite se caracteriza por ser un motor de base de datos robusto y agil diseñado para ambientes de alto volumen.

    Ventajas:
    • No requiere una configuración y no necesita uso de servidor (proceso activo para atender peticiones)
    • Es multiplataforma y posee un acceso mucho mas rapido
    Desventajas:
    • SQLite posee deficiencias de la herramienta where, esta limitación esta dada por el soporte para clausulas anidadas, al igual que en claves foráneas.
    REDIS.

    Redis es un almacén de estructura de datos en memoria de código abierto, utilizado como base de datos, cache y agente de mensaje.
    Redis admite estructuras de datos tales como cadenas, hashes, listas, hiperlogalos,etc.

    Ventajas:
    • La principal ventaja de Redis es su velocidad. Guarda los datos en RAM, por lo que cuando el microprocesador le pide un dato, lo busca en la RAM sin tocar el disco duro
    Desventajas:
    • Aun así, la gran velocidad y el guardarlo en memoria RAM hace que nos encontremos con la desventaja de Redis que se traduce en no poder guardar tablas enteras ni muchos datos.
    MARIADB.
    MariaDB es un fork de MySQL que nace bajo la licencia GPL. Esto debido a que Oracle compro MySQL y cambio el tipo de licencia por un privativo, aunque mantuvieron MySQL community edition bajo licencia GPL.

    La compatibilidad con MySQL es prácticamente total y por si fuera poco tenemos mejoras de rendimiento y funcionalidad. MariaDB esta diseñada para reemplazar a MySQL directamente ya que mantiene las mismas ordenes, APIs y bibliotecas.

    Ventajas:
    • Nuevos motores de almacenamiento, para la mayoría de usuarios lo interesante es Aria, que viene a reeemplazar a MyISAM y también tenemos a XtraDB que reemplaza a InnoDB.
    • Mejora de velocidad sobre todo en consultas complejas
    • Se añaden nuevas tablas al sistema para almacenar estadísticas que nos pueden ayudar a optimizar la base de datos
    • El sistema para manejar las conexiones se ha mejorado
    Desventajas:
    • Uno de los escasisimos casos de incompatibilidad con MariaDB
    • El tener que desinstalar MySQL e instalar MariaDB(la migracion de datos es muy sencilla).