domingo, 31 de marzo de 2019

UNIDAD 2

Conexion de Django a MySQL

Iniciamos creando un proyecto con django como anteriormente lo habiamos hecho, con el comando django-admin startproject Conexion

Una vez creado el proyecto,necesitamos de un archivo que hara la conexion entre MySQL y Django.
https://drive.google.com/open?id=1CkQEMMJs63YDupFxmvE9d4_ha8v2ZCJs

Una vez que ya tengas este archivo, vas a colocarlo dentro de la carpeta que se genera al hacer tu proyecto, y despues vamos a instalar este mismo archivo desde el cmd

Una vez en el cmd, copiamos el nombre del archivo y con pip comenzamos a instalar lo necesario para la conexion con mysql


Una vez que ya se haya instalado correctamente, creamos con MySQL una base de datos. En mi caso usare el IDE de MySQL para que se pueda apreciar la sintaxis y su ejecucion de mejor manera, aunque se puede hacer todo desde la consola de comandos.


Ejecutamos la primera linea de esas tres sintaxis para que se cree la base de datos que vamos a utilizar. Posteriormente, vamos a editar el archivo de nuestro proyecto en Django con el nombre de 'Settings' para integrar la base de datos que hemos creado.


Una vez que se haya configurado esta parte, vamos de regreso a nuestro cmd a ejecutar una migracion para que nos cree las tablas de nuestro proyecto.


Al hacer esto, automaticamente dentro de la base de datos que antes habiamos creado se integraran las tablas correspondientes a lo que es el proyecto.
Volviendo a MySQL, corremos una instruccion de show tables para poder ver que efectivamente s encuentran ahi las tablas.




Caracteristicas de un DBMS

Un sistema de gestión de bases de datos (SGBD; en inglés, Database Management System: DBMS) es un conjunto de programas que permite a los usuarios crear y mantener una base de datos.
Si bien, no es imprescindible contar con un SGBD para implementar una base de datos, este software de uso general facilita el proceso de definir, construir y manipular bases de datos para diversas aplicaciones.

Algunas de sus caracteristicas son:
  • Control de redundancia
  • Restriccion de accesos no autorizados
  • Cumplimiento de las restricciones de integridad
  • Respaldo y recuperacion,etc.

RESTRICCIÓN DE LOS ACCESOS NO AUTORIZADOS.
Cuando muchos usuarios comparten una misma base de datos, es probable que no todos tengan la autorización para tener acceso a toda la información que contiene. El SGBD debe contar con un subsistema de seguridad y autorización que permita al DBA crear cuentas y especificar restricciones para ellas.

CUMPLIMIENTO DE LAS RESTRICCIONES DE INTEGRIDAD.

La mayor parte de las aplicaciones de base de datos tienen ciertas restricciones de integridad que deben cumplir los datos. El SGBD debe ofrecer recursos para definir tales restricciones y hacer que se cumplan.

RESPALDO Y RECUPERACIÓN

Todo SGBD debe contar con recursos para recuperarse de fallos de hardware o de software. Para ello está el subsistema de respaldo y recuperación del SGBD. Por ejemplo, si el sistema falla mientras se está ejecutando un complejo programa de actualización, el subsistema de recuperación se encargará de asegurarse de que la base de datos se restaure al estado en el que estaba antes de que comenzara la ejecución del programa.

CONTROL DE REDUNDANCIA
En la creación tradicional de programas de archivos, cada grupo de usuarios mantiene sus propios archivos para manejar sus aplicaciones de procesamiento de datos. Supongamos la situación para una base de datos de un supermercado. Los grupos involucrados serían, entre otros, el de finanzas y el de reposición. Con el enfoque tradicional, cada sector mantendría archivos independientes para los proveedores, cada uno con un objetivo distinto. Buena parte de los datos se almacenarían dos veces.
 
Para esto es que, dentro del DBMS podemos crear o usar las ayudas que se tienen para detener este tipo de problemas.

Algunas otras características:


  • Independencia física: El nivel físico puede ser modificado independientemente del nivel conceptual. Esto significa que el usuario no puede ver todos los componentes de hardware de la base de datos, que es simplemente una estructura transparente para representar la información almacenada.

  • Independencia lógica: El nivel conceptual debe poder modificarse sin alterar el nivel físico. En otras palabras, el administrador de la base de datos debe poder introducir mejoras sin afectar la experiencia de los usuarios

  • Facilidad de uso: Las personas que no estén familiarizadas con la base de datos deben poder describir su consulta sin hacer referencia a los componentes técnicos de la base de datos.
  • Acceso rápido: El sistema debe poder responder a las consultas lo más rápido posible. Esto requiere algoritmos de búsqueda rápidos.

  • Administración centralizada: El DBMS debe permitirle al administrador manipular los datos, agregar elementos y verificar su integridad de manera centralizada.

  • Redundancia controlada: El DBMS debe poder evitar la redundancia de datos siempre que sea posible, tanto para minimizar los errores como para prevenir el desperdicio de memoria.

  • Verificación de integridad: Los datos deben ser internamente coherentes y, cuando algunos elementos hacen referencia a otros, estos últimos deben estar presentes.

  • Uso compartido de datos: El DBMS debe permitir que múltiples usuarios accedan simultáneamente a la base de datos.

  • Seguridad de los datos: El DBMS debe poder administrar los derechos de acceso a los datos de cada usuario.
Se le han realizado algunas modificaciones a lo que originalmente teniamos como la aplicacion de datos_per. Hasta ahora, la configuracion se puede ver algo como esto:


En si, lo que se ha hecho hasta ahora es agregar al campo de num_cont un atributo llamado verbose_name. Esto nos funciona para cambiar la forma en que se mostrara el nombre del campo en nuestra aplicacion.
Es decir, en lugar de ver num cont en la aplicacion, veremos lo que se le ha asignado con el parametro verbose_name.

En el campo de sexo, hemos limitado la opcion a dos: Masculino o Femenino.
Esto por medio de un arreglo que contenga ambos sexos y por medio del parametro choices damos de alta ese arreglo que antes se habia creado.
Por otro lado, tenemos tambien el parametro default,que simplemente nos sirve para asignar un valor predeterminado segun las preferencias del programador de la aplicacion.

Posteriormente, en edad asignamos un mensaje al usuario por medio del parametro hepl_text. Esto nos permite dar un mensaje al usuario para que sepa que este campo tiene ciertas restricciones que debe considerar antes de llenarlo.

Y finalmente, de igual manera hemos creado un arreglo en donde ingresamos varias carreras para su elección por medio de una lista desplegable como en el campo sexo.
Aqui a diferencia de el otro campo, colocamos como valor predeterminado alguna de las carreras que se han dado de alta en nuestro arreglo.
Para que estos cambios sean aplicados a nuestro modelo original, corremos los siguientes comandos en la pantalla del cmd.



Finalmente, podemos correr el servidor de nuestro proyecto y ver los cambios que se han realizado:

Aqui podemos ver la lista desplegable del campo sexo(y el valor por defecto que le hemos dado) y el texto de ayuda en edad


La lista de carreras que hemos dado de alta


Registro de una nueva entrada con los cambios ya realizados

CAMPOS EN MODELOS
CAMPODESCRIPCION
CharFieldTipo de campo para cadena de caracteres alfanumericos
TextFieldSe usa para cadenas de longitud grande o arbitraria.
IntegerFieldCampo para almacenar vaores de numeros enteros y para validar los valores introducidos como enteros en los formularios
DataField y DataTimeFieldSe utilizan para guardar/representar fechas e informacion de fecha/hora.
EmailFieldSe usa para validar direcciones de correo electronico
FileField e ImageFieldSe usan para subir ficheros e imagenes. Solo ImageField añade una validacion adicional de que el fichero subido es una imagen
AutoFieldTipo de campo especial de IntegerField que se incrementa automaticamente. Cuando no especificamos una clave primaria para el modelo, se añade automaticamente una de este tipo
ForeignKeySe utiliza para especificar una relacion uno a muchos con otro modelo de la base de datos
ManyToManyFieldSe usa para especificar una relacion muchos a muchos.
BinaryFieldUn campo para guardar datos binarios. Solo soporta asignacion de bytes
BooleanFieldCampo de verdadero/falso
CommaSeparatedIntegerFieldCampo de enteros separados por comas. Asi como en el campo CharField, se requiere el argumento max_length
DecimalFieldUn campo preciso de numeros decimales, representado en python como una instancia decimal. Requiere los argumentos max_digits y decimal_places.
FilePathFieldUn CharField que sus opciones son limitadas a los nombres de archivos en ciertas direcciones en el sistema.
SlugFieldSlug es un termino de periodico. Un Slug es una etiqueta corta para algo, conteniendo solo letras, numeros,guiones bajos o guiones. Son usados generalmente en las URLs
URLFieldCampo de tipo CharField para una URL.
OneToOneFieldUna relacion de uno a uno. Conceptualmente, esto es similar a una ForeignKey con el argumento unique=True.



PARAMETROS EN MODELOS
PARAMETRODESCRIPCION
max_lengthEstablece la longitud maxima del valor de este campo
help_textProporciona una etiqueta de texto para mostrar que ayuda a los usuarios a saber que colocar en el campo
verbose_nameModifica el nombre del campo a mostrar
defaultValor por efecto para el campo. Puede ser un valor o un callable object(objeto que puede ser llamada como una funcion)
nullSi es True, Django guardara valores en blanco o vacios como NULL. Por defecto es FALSE
blankSi es True, se permite que el campo quede en blanco en los formularios. El valor por defecto es False, lo que significa que la validacion de formularios de Django te forzara a instroducir un valor.
choicesUn grupo de valores de seleccion para este campo
primary_keySi es True, establece el campo actual como clave primaria para el modelo. Si no se especifica ningun campo como clave,Django añadira automaticamente un campo para este proposito
editableSi es falso, el campo no se desplegara en el apartado de admin o en cualquier otra forma. Tambien se saltara durante la validacion del modelo. Por defecto es True
uniqueSi es True, el campo debera ser unico en toda la tabla
auto_now_addse utiliza con DataField y DataTimeField para establecer solo la fecha cuando se crea el modelo por primera vez
auto_nowSi es True, establece en el campo la fecha actual cada vez que se guarda el modelo. Se utiliza con DataField o DataTimeField
set_nullEstablece un campo como NULL
on_deleteDefine que ocurre cuando un registro asociado se borra. Se utiliza con MannyToManyField
pathRequerido en FilePathField. La direccion de donde el campo obtendra sus opciones "/hime/images"



martes, 29 de enero de 2019

UNIDAD l

CREACIÓN DE UN PROYECTO Y APLICACIÓN CON DJANGO EN CMD

Instalar Django 

Abrimos el CMD y tecleamos lo siguiente: 

Python pip install Django




En mi caso ya lo tengo, probablemente te pedirá actualizar el pip, por lo tanto el mismo CMD te da un comando para actualizarlo:


python -m pip install --upgrade pip



Una vez hecho esto, procedemos a crear nuestra aplicación :



Para crear un proyecto es la misma sintaxis que en una aplicación, la única diferencia es que en lugar de "startapp" seria "startproject":




Con el comando DIR 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.

Continuando con las instrucciones, dentro de nuestro proyecto podemos correr un runserver para activar el servidor del proyecto que hemos creado, usando el archivo manage.py

Tecleamos lo siguiente:




Una vez que hemos hecho esto, dentro de lo que la consola nos manda es una dirección ip de nuestro proyecto. Ingresando esta pagina al navegador de su preferencia, nos mostrara algo como esto.



Como nuestro proyecto/aplicación esta vacía porque aun no hemos creado nada, la pagina misma nos muestra un par de instrucciones de como iniciar alguna aplicación que hemos creado y no ha sido mostrada en esta pagina.
Al agregar a la dirección anterior "/admin" nos enviara a una pagina para ingresar un usuario y contraseña que aun no se han creado, pero gracias a Django podemos hacer esto dentro de nuestro proyecto/aplicación en unas entradas mas adelante.





Si bien, al ingresar a cualquiera de estas dos paginas dentro de la consola nos ira mostrando actividades de lo que hemos realizado al entrar a dichas paginas en linea.




Originalmente cuando corremos el servidor con runserver y el archivo manage.py, nos aparecía un mensaje como recomendación para hacer la migración de los archivos de nuestro proyecto o aplicación. Esto se realiza de una manera muy sencilla. Saliendo del servidor con ctrl + c, nos regresa a nuestro cmd en donde ingresaremos lo siguiente y asi comenzara la migración de los archivos y datos.




Al hacer esto, cuando se ingrese de nueva cuenta al servidor ya no nos aparecerá la recomendación de hacer la migración de los archivos.





Administrador de base de datos (DBA)

DBA es la persona encargada de la operación del sistema, y el responsable en decidir:
  • los datos que se deben almacenar en las bases de datos
  • la política de mantenimiento, tratamiento de datos y seguridad de la información
Un administrador de base de datos es un especialista en bases de datos e informática que conoce las herramientas de gestión de la base de datos, así como la forma de desarrollar los planes de administración de datos. Así mismo, decide la política de copias de seguridad, duplicación de la información, filtros de acceso de usuarios que aseguren los niveles de seguridad deseados, tanto frente a la perdida de información como frente al acceso no autorizado.
¿Porque se necesita un DBA?

Toda organización que maneje grandes cantidades de datos requiere un sistema gestor de bases de datos (DBMS). El grupo de personas o personas encargada de administrar, supervisar y asegurar el uso adecuado de los datos dentro del BDMS son los DBA.


FUNCIONES DE UN DBA

Dentro de la gran cantidad de funciones que puede realizar un administrador de base de datos, podemos mencionar las siguientes:

Gestión general de base de datos. El DBA es la persona con mas conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás. 
Modelado de datos y diseño de base de datos. Un DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario para obtener modelos de datos conceptuales y lógicos. Esta tarea es mas difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógicos proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad. 
Auditoria. Una de las tareas de un DBA es identificar que usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuando. Una auditoria no solo podría ser necesaria por un tiempo limitado, para usuarios o datos específicos. También puede ser requerida a toda hora para todos los datos que se introduzcan en el DBMS. 
Integración con aplicaciones. La mayoría de las empresas hoy en día utilizan aplicaciones de terceros, muy pocas de estas aplicaciones funcionan de manera aislada. En otras palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. A menudo, los DBAs se involucran en los procesos de integrar las aplicaciones existentes con las bases de datos que administran. 
Resguardo y recuperación de datos. Uno de los aspectos mas importantes en el trabajo de un DBA es la protección de los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional. 
Inteligencia de negocios y almacenamiento de datos. Una de las áreas de mayor aprendizaje para el DBA es la inteligencia de negocios(BI) y almacenamiento de datos. Esto se debe a que mas organizaciones están tratando de extraer toda la información que puedan con el fin de tomar mejores decisiones de negocios. 
Planificación de capacidad. Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados para administrarlos. Esto incluye también la gestión de la parte del hardware donde son almacenados los datos. 
Administración de cambios. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS, esto debido a la configuración del servidor y muchas otras facetas del ecosistema de aplicaciones que cambian con el tiempo.

MANEJADORES DE BASES DE DATOS 
( TOP 10).

Oracle Database



Resultado de imagen para oracle database
Este sistema es desarrollado por Oracle Corporation. Es uno de los ejemplos de SGBD más completos y robustos del mercado. Trabaja con objetos relacionales o RDBMS (Relational Data Base Management System)

Para algunas empresas, es considerado el mejor gestor de bases de datos gracias a la estabilidad, escalabilidad, multiplataforma y el soporte de transacciones. Es de los más caros y tiene estabilidad con otras aplicaciones.


Para usuarios personales o pequeñas instalaciones hay una versión gratuita.


Microsoft SQL Server
Resultado de imagen para Microsoft SQL Server



Este SGBD utiliza un lenguaje Transact-SQL. Por otro lado, solo está disponible para sistemas operativos Windows. De manera simultánea pone a disposición muchos datos a cada uno de sus usuarios.

Sus principales características son:

*Seguridad, escalabilidad y estabilidad.
*Soporte de transacciones.
*Tiene un poderoso entorno gráfico de administración. 
*También permite comandos DDL y DML.

*Permite administrar información de otros servers.




PostgreSQL

Resultado de imagen para PostgreSQL

Es un sistema gestor de bases de datos orientada a objetos. Además es de código abierto. Y esta publicada bajo la licencia BSD. Tiene una excelente comunidad de desarrolladores conocida como PGDG (PostgreSQL Global Development Group).


MySQL
Imagen relacionada

Cuenta con más de 6 millones de descargas. Utiliza un sistema gestor de bases de datos relacional, multiusuario y además multihilo.


Ademas MYSQL es de los principales sistemas gestores de bases de datos libres. Y tiene licencia dual. Si eres empresa, debes comprar una licencia específica. Los anteriores, son los gestores de base de datos más utilizados.



SQLite

Resultado de imagen para SQLite logo

Es un SGBD compatible con ACID. Esta contenida en una relativamente pequeña biblioteca en C. Entre las principales características se destaca el hecho de ser un proyecto para el público.

Una de sus principales ventajas es su interfaz, el costo y el buen rendimiento. La desventaja es la falta de claves foránea y desde luego la documentación esta solo en ingles.


DB2
Resultado de imagen para db2

Es un sistema gestor de bases de datos de la propiedad de IBM. Además, como motor gráfico utiliza XML. Por otro lado, no utiliza el modelo relacional, en cambio usa el tipo jerárquico.

Entre las principales ventajas se destacan, el permitir agilizar el tiempo de respuesta de la consulta. También cuenta con tabla de resumen, replicadas y uniones hash.

Otro gestor de la propiedad de IBM es el DB2 express-C. Su principal característica es su compatibilidad con SQL. También tiene mejoras en seguridad.


La principal ventaja del gestor de base de datos DB2 express-C está en que no hay límites de datos. Y no hay límites de conexiones.


Apache Derby

Imagen relacionada


Es un SGBD escrito en Java y utilizado en aplicaciones desarrolladas en Java. Además, para procesos de transacciones online. Es un proyecto open source, bajo la licencia Apache 2.0.


Entre sus principales ventajas se destaca el hecho de poder configurarlo como cliente-servidor. Uno de los retos seria saber programar o conocer sobre código para crear bases de datos.

Visual FoxPro
Imagen relacionada

Este gestor de bases de datos le permite a los programadores desarrollar excelente grupos de aplicaciones de bases de datos tanto para escritorio, tablets, pc o para la web. Una de sus principales ventajas es el costo.

Por otro lado, tiene un entorno Windows que sera muy cómodo y sencillo de usar. De las principales esta su seguridad, integridad y poca capacidad de procesamiento.

Microsoft Access
Imagen relacionada



Este gestor de bases de datos es modificado y creado por Microsoft. Es de uso personal para empresas que están empezando. Tiene grandes ventajas que permiten crear tablas para almacenar los datos.

Por otra parte, podrás ver los formularios, agregar y actualizar cada uno de los datos de las tablas. Su principal desventaja está en la limitación de procesamiento de las búsquedas.


Finalmente, podemos decir que los anteriores 10 ejemplos de sistemas manejadores de base de datos son muy importantes. Conocerlos te permitirá gestionar de forma correcta los datos de cualquier tipo de base de datos.



EXPOSICIONES


Resumen: equipo 2



 SQLITE Y REDIS

sqlite


orientado a paginas web y aplicaciones moviles
herramienta de software libre para equipos de pocas capacidades pda o celular
Trabajo de desarrollo de la fuerza naval, se comenzó a desarrollar en 2000
Después del uso de varios manejadores el empezó a fabricar este manejador para que fuera una manera mas sencilla de usar una base de datos.
algunas características
  • la base de datos completa en un solo archivo
  • puede funcionar enteramente en memoria
  • totalmente autocontenida
  • cuenta con librerias de acceso para muchos lenguajes de programacion

ventajas de sqlite
tiene una pequeña memoria y una unica biblioteca es necesaria para acceder a bases de datos
reliza operaciones de manera eficiente y es mas rapido que mysql y postgresql
ejecuta en muchas plataformas y sus bases de datos pueden ser facilmente portadas sin ninguna configuracion o administracion
cuenta con diferentes interfaces del API
es de dominio publico y por lo tanto libre de utilizar para cualquier proposito
base de datos que cumple con ACID
incorpora triggers

Desventajas
no hay soporte completo a triggers
limitaciones en Where: esta limitacion esta dada por el soporte para clausulas anidadas
falta de clave foranea cando se realice la creacion de la tabla desde el modo consola.

uso de sqlite
  • adobe photoshop elements
  • mozilla firefox
  • varias aplicaciones de apple utilizan SQlite
  • navegador web opera

download, precompiled binaries for windows la version de 64 bits(ultimo archivo x86 )
3 archivos dentro del archivo zip
Variable de entorno: entrar al disco local,crear una carpeta de sqlite3 ahi y meter los tres archivos ahi.
copiar la direccion de la carpeta y vamos a la configuracion de las variables de entorno
ir al apartado variables de entorno, en path agregar la direccion que se copio ahi y aceptar.
abrir el cmd,escribir sqlite3 y el nombre de la base de datos con la que se va a trabajar(se puede acceder a una carpeta para que la base de datos se guarde ahi)
dentro de la consola sqlite .databases para que aparecan las bases de datos y .exit para salir
Se pueden crear diferentes bases de datos con otro formato que sea compatible con sqlite (mysql,postgresql etc)
.help para poder ver todas las funciones que usa o comandos para el manejo de la base de datos
.tables para que aparescan las tablas de la base de datos

Interfaz gráfica que se puede descargar para SQLite


Redis 


Muy usado en twitter,hulu,flicker y paginas webs. Ademas que es uno de os manejadores mas rapidos
Motor de base de datos que carga todos sus datos a la memoria ram (sistema gestor No SQL)
Fue desarrollado a principio de los 2000, para acelerar un proyecto antes creado.
Tiene las caracteristicas de que: soporta python y ruby,php,c++ etc
No maneja tablas ni relaciones. Básicamente se basa en manejar tipos de datos(cadenas,tablas de haash, listas y conjuntos)
Ofrece ciertas habilidades:
sistemas de expiraciones (los datos se cargar por cierto tiempo)
Maneja operaciones atomicas y transacciones
Es de tipo ACID
maestro-esclavo, se usa en combinación con mysql o postgresql (se jalan los datos de este tipo de bases de datos)

Ventajas
Curva de aprendizaje baja
Varias cantidades de datos que puede manejar

Desventajas
no maneja nada de sql
Consume mucha escritura en disco o base de datos
incompatibilidad con consultas sql


Cuando usar redis
Manejo de cache de las paginas de internet
manejo de carritos de compra
manejo de cookies
contadores y estadisticas
chats y mensajeria

Sitio oficial de redis

Si se baja desde aqui hay ventajas y desventajas: Para descargarlo nos vamos a descargas y nos dan opciones de descargar versiones pasadas, versión actual y versiones que no son estables(La mayoria de las versiones son solo para el sistema de Linux).
Se tiene que instalar por medio de comandos para que funciones en el equipo.
para correr redis hay que abrir el servidor desde consola redis-server(para poder trabajar hay que abrir otra terminal donde se ejecutara el cliente).
redis-cli -> para abrir el cliente de redis y comenzar a trabajar
set ambrocio laureano -> creacion de una llave
get ambrocio -> para ver que valor tiene
set usuario 1234 ex 10 -> tiempo de expiracion de 10 seg (informacion disponible durante 10 seg en el cliente)
get usuario -> para ver su valor

lpush ->l insertar dato por la izquierda,push es para agregar un dato,
lpush Cusuario1 anillo ->Guarda un valor en la lista o en el "carrito"
lrange Cusuario1 0 -1  ->Muestra los elementos que hay en la lista o que se han agregado (desde que elemento hasta que elemento)
lpop Cusuario1 ->Elimina de la izquierda un elemento de la lista
rpop Cusuario1 ->Elimina de la derecha un elemento de la lista

hmset "creacion multiset de hashes" alumnos "nombre de la "tabla"" :16260626 "llave primaria" nombre ambrocio apellido lauriano ->Creacion de un registro con sus campos
Se manejan objetos, asi que cada objeto puede tener sus propias propiedades
hmset alumnos 16260626 nombre miguel apellido lauriano telefono 123456789
para mostrar todos los registros -> pendiente
hgetall alumnos: 16260626 ->Mostrara los datos de ese usuario
sadd profes: tec:isc yolys ->crea un conjunto y agrega una llave a un conjunto y los datos que tendra
sinter profes:tec:isc profes:tec:mec -> Especifica los profes que dan clases a ambas carreras.


interfaz grafica para trabajar con redis
Redis desktop manager


mediante comandos podemos instalar esta aplicación, en una de las consolas del sistema.
Nos ayudara con un ambiente mas gráfico para las bases de datos que tengamos y manejemos
para mostrar todos los registros que hay bajo una llave keys alumnos:*


Resumen: equipo 3


Informix


Es un gestor de base de datos que incluye un rdbms basado en sql, un lenguaje de cuarta generacion y herramientas para la inclusion de sql en programas de aplicacion
Fue diseñado en los años 70 y se utilizo como base de datos en los 80, en los 90 era algo popular como oracle.
2001 IBM compra informix, y de ahi en adelante fue lanzando versiones actualizadas de ese gestor de base de datos (por recomendación de waltmart)
No es de codigo abierto y tiene un costo
En la pagina de ibm en el apartado de descargas
ediciones de desarrollador,prueba,etc.
Se debe crear una cuenta en la pagina de IBM para su descarga

Ventajas
conversion de tipos de datos automaticamente
se inicia con null todos los valores que no se especifique

Desventajas
no tiene soporte para blobs(imagenes,etc)
aplicaciones con gran rendimiento no es recomendable

Framesworks que usa
.NET es el que utiliza (dato de la pagina de IBM)

Mongo DB

es un sistema de base de datos no sql orientado a documentos de codigo abierto
En lugar de guardar ls datos en tablas tal y como se hace en las bases de datos relacionales, mongo DB guarda estructuras de datos BSON
Ocupa lenguaje de c++,python y java,etc.
Realiza consultas por campos,sonsultas de rangos y expresiones regulares
indexacion: cualquier campo en un documento de mongo db puede ser indexado

ventajas
usa javascript para consultas
utiliza un sistema de archivos
el desarrollador elige una llave
la configuracion automatica se pueden agregar nuevas maquinas que lo ocupen

Desventajas
cada que hacen una escritura reduce su velocidad
retorna cuando no se ha escrito la informacion en el espacio de almacenamiento (puede hacer perdida de datos)
tiene problemas de rendimientos al superar 100gbs

Frameworks
  • phalcon
  • drupal
  • laravel
  • yii
  • kohana
  • symfony


Resumen: equipo 4



SQL Server

En 1988 Microsoft se unió a Ashton-Tate y Sybase para crear una variante de Sybase SQL Server para IBM OS / 2 (entonces desarrollado conjuntamente con Microsoft), que fue lanzado el año siguiente.
Que es? sistema de manejo de bases de datos en entornos hibridos. Se considera una de las mejores bases de datos en el mundo.
Es uno de los manejadores de bases de datos mas seguros debido a la calidad que tienen los productos de microsoft.
Posee una version enterprise,bussness inteligent,estandar para menos prestaciones.
Para poder utilizarse de manera completa se necesita dar un pago ya que ninguna de las versiones te va a dar todas las herramientas que se tienen.

FuncionesRespaldo en operaciones
Compresion de tablas
Alta disponibilidad
Programacion de tareas.
*Su IDE es muy intuitivo debido a que hace mas fácil la forma de trabajar y crear las bases de datos.

Caracteristicas principalesCertificacion SAP
Maxima flexibilidad para que pueda trabajar en la nube
Rendimiento mejorado gracias a la funcionalidad in memory
Cifrado de datos (protege la integridad de los datos)

Ventajas
Útil para manejar datos de las redes
En red social nos permite agregar mas servidores
Nos olvidamos de os ficheros
permite administrar permisos a todos
se permite la conexión del sql de otro

Desventajas
Utiliza mucha memoria RAM
No puede utilizar como practicas porque se prohiben muchas cosas
La relacion calidad-precio esta muy debajo comparado con Oracle
Tiene muchos bloqueos a nivel de pagina, un tamaño de pagina fijo y demasiado pequeño

Permite trabajar en IDE y desde consola, pero en consola debe de estar conectado al IDE para que se pueda implementar.

SQLite
Surgio por necesidad propia del creador.
Despues de pasar por muchos manejadores de bases de datos para su trabajo, se dio a la tarea de comenzar a crear su propio DBMS.

¿Qué es sqlite?SQLite es una biblioteca en lenguaje C que implementa un motor de base de datos SQL pequeño , rápido , autónomo , de alta fiabilidad y completo . SQLite es el motor de base de datos más utilizado en el mundo. Está integrado en todos los teléfonos móviles y en la mayoría de las computadoras, y se incluye en muchas otras aplicaciones que la gente usa todos los días.

Caracteristicas
Transacciones de tipo ACID
No requiere configuracion
Fuentes de dominio publico
Multiplataforma
API facil de manejar

Ventajas
No requiere configuracion
No requiere de un servidor

Desventajas
Sqlite posee deficiencias en la herramienta where


SQLITE


Surgio por necesidad propia del creador.
Despues de pasar por muchos manejadores de bases de datos para su trabajo, se dio a la tarea de comenzar a crear su propio DBMS.

¿Qué es sqlite?SQLite es una biblioteca en lenguaje C que implementa un motor de base de datos SQL pequeño , rápido , autónomo , de alta fiabilidad y completo . SQLite es el motor de base de datos más utilizado en el mundo. Está integrado en todos los teléfonos móviles y en la mayoría de las computadoras, y se incluye en muchas otras aplicaciones que la gente usa todos los días.

Caracteristicas
Transacciones de tipo ACID
No requiere configuracion
Fuentes de dominio publico
Multiplataforma
API facil de manejar

Ventajas
No requiere configuracion
No requiere de un servidor

Desventajas
Sqlite posee deficiencias en la herramienta where

POSTGREE SQL

Potente motor manejador de bases de datos,complemento de mysql.

Caracteristicas
soporta diferentes tipos de datos
Creacion de tipos de datos propios
Incluye herencia de tablas, por lo que es un gestor objeto-relacional
Copia de seguridad(online)
Caracteres internacionales
Multi-version concurrency control: Mediante su sistema permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de permiso.

Limitaciones
Punto de recuperación entre transacciones
Su orientación a objetos es una simple extensión, que no ofrece un servicio completo
Muy lento, ya que esta dirigido a bases de datos grandes.

ventajas
ampliamente popular e ideal para tecnologías web
fácil de administrar
su sintaxis es fácil de aprender y mysql estándar
Multiplataforma
Capacidad de replicacion de datos: se pueden duplicar datos

desventajas
es comparación es mas lento que otros dbms
no hay soporte oficial de postgresql
la sintaxis de algunos de sus comandos o sentencias no es nada intuitiva

Trabaja con roles en lugar de usuarios. Sin roles no puede hacer nada en la base de datos
psql -> comando para ingresar a postgresql
help -> igual que sqlite, para ver los demás comandos
\h ->comandos de mysql para manejar en postgresql


Resumen

" Que se DEBE considerar para el uso de un DBMS?"

Actualmente, con el crecimiento de las empresas y los pequeños empresarios que comienzan en el mundo de la industria es necesario tener un conocimiento aunque sea básico del manejo de datos dentro de una base de datos, y necesariamente un manejador que permita que a tarea de administrar dichos sea mas sencilla.
De las exposiciones que mis compañeros presentaron, destacare algunos puntos que se me hicieron importantes en un manejador de base de datos y cual creo que podría ser un buen manejador.
Hay ciertas cosas que podrían considerarse a la hora de elegir un manejador de base de datos, entre ellas podemos encontrar:
  • La cantidad de datos que voy a manejar
  • Que nivel de seguridad requiero para mis datos
  • La necesidad de datos actualizados en tiempo real, sin errores a la hora de actualizarlos
  • Quienes van a manejar los datos y que hará cada una de esas personas
  • Respaldos, transacciones,etc
Podría enlistar muchos puntos mas, pero para mi creo que estos son los mas importantes en cuanto a la elección de un manejador.

De los muchos manejadores que se vieron, podría destacar la seguridad de Microsoft sql server. Aunque, no es muy usado en la actualidad cuenta con una capacidad de asegurar la integridad de sus datos, ya que se le considera como el manejador mas seguro de todos. Aunque, por otra parte en sus versiones de paga nunca se cuenta con el acceso a todas sus funcionalidades, incluso con la version mas cara en el mercado.
Por otra parte, tenemos al manejador de bases de datos mas usado y conocido que la mayor parte de los otros DBMS son basados en el, MySQL es uno de los principales manejadores ya que su uso es muy sencillo y ofrece una gran variedad de funcionalidades, ademas de la gran demanda que ha tenido en el mercado y uso como DBMS. Un sistema con transacciones que son ACID, asi como el manejo de cualquier tamaño de base de datos, hacen a MySQL server uno de los favoritos de la comunidad.

Otro manejador que podría mencionar, no solo porque yo fui una de las personas que presento informacion de ello, sino porque PostgreSQL contiene una gran cantidad de funcionalidades y facilidades para el manejo de una base de datos. A diferencia de MySQL, postgreSQL esta orientado a un mayor flujo de datos lo cual es perfecto para empresas que requieran transacciones entre una gran cantidad de informacion. Por otra parte, contamos con respaldos en linea para que la información que se ha actualizado pueda ser guardada sus versiones anteriores en caso de algun error entre otras cosas.

Contamos con entornos graficos para el manejo mas sencillo de la base de datos, migracion de bases de datos de otros manejadores a nuestro manejador PostgreSQL sin necesidad de cambiar algun tipo de informacion. Al igual que otros manejadores, postgre utiliza las sentencias que comúnmente se utilizan en MySQL, a excepcion de una que otra. Por lo que yo considero que es facil de comenzar a usar y aprender a sacar el mayor provecho de este.
Mencionando por otro lado, SQLite tambien es muy buen manejador de base de datos. A diferencia de sus otras competencias, sqlite esta mas orientado al uso de base de datos que se encuentren en linea o para aplicaciones moviles ya que cuenta con un acceso libre a muchos lenguajes de programacion en donde puede aprovecharse y administrar una base de datos para un proyecto en la web.


Ademas de eso, sqlite no requiere de una configuracion para su uso, no consume muchos recursos en cuanto a memoria, es mucho mas rapido que postgresql y mysql ya que sus datos los carga en memoria cache y sus bases de datos pueden ser facilmente portadas sin ninguna configuracion o administracion a otro manejador. Podria mencionar muchas cosas de sqlite, pero principalmente destaco el que este orientado para aplicaciones moviles y paginas web, ya que por su rapidez es necesario para el mejor rendimiento de dicho proyecto, sea pagina en linea o una app.

Creo que despues de todo este analisis entre DBMS's, podria decir que para mi postgresql y mysql son los dos principales manejadores que deberian utilizarse.
Por todas las cosas que ya he mencionado, pero principalmente MySQL ya que actualmente podria decirse que se considera como un estandar en cuanto a comandos para el uso de la consola en base de datos. Por otro lado, postgre lo considero uno de los mejores por la cualidad de poder migrar bases de datos sin la necesidad de alterar su estructura, hasta tablas que tengamos en excel pueden ser adaptadas a postgre con un archivo .csv