Entradas

Mostrando entradas de abril, 2020

Curso de programacion en python3 : 10 - Administrando una BD desde python

Imagen
Esta entrada requiere conocimiento en DBA que he escrito aqui , y es parte del curso de python que empieza aquí Hola buenas tardes, vengo bastante hater, tengo mas de cuatro días intentando que funcione pymysql y no voy a ser nada benevolente con la librería que tengo que usar, no hay otra librería y el equipo de mariadb desarrolla una que esta en beta, tiene todo el sentido del mundo que estén trabajando en una propia. No hay documentación sobre pymysql, pregunté un asunto no trivial por medio de github puesto que no es normal el comportamiento que demostrada el modulo , puesto que no está escrito en la " documentación " del proyecto, lo único que han asociado es un ejemplo escueto de un caso concreto, el desarrollador en vez de decirme que podía ayudar a ampliar la documentación o simplemente aclarar las dos condiciones mutuamente excluyentes que causaban el problema, me dijo que buscara en google, claro que después de tres días de búsqueda intensiva donde no hay document

Curso de Administracion de Bases de Datos Relacionales: 07 - SQL y sus cuatro operaciones basicas

Imagen
Hola buenas tardes, ahora estaremos aplicando las cuatro sentencias básicas de SQL(inserción, selección, actualización y eliminación), estas sentencias forman el núcleo del lenguaje de manipulación de datos(Data Manipulation Languaje, DML), para mas informacion recomiendo estudiar el material de w3schools , totalmente gratuito y constantemente actualizado, en cada operación voy a estar linkeando a la sesión respectiva de esa web. insert into : Esta sentencia nos permite insertar un registro en una tabla, si y solo sí, el formato es correcto, se cumplen las referencias de tablas dependientes y el formato de los datos es compatible, también se puede cambiar el orden de las columnas que vamos a ingresar colocando el nombre de la tabla y entre paréntesis las columnas en el orden que vamos a enviar los datos. insert into Personas values(0, "0","0","0","0", "2020-1-1" ); insert into Personas values(1, "1","1","

Curso de Administracion de Bases de Datos Relacionales: 04 - Tercera forma normal

Imagen
Hola bastante mas tarde, la tercera forma normal requiere que las tablas estén en 2FN y además que ningún atributo que no sea llave primaria tenga dependencias transitivas hacia cualquier atributo de la tabla. Con lógica proposicional se busca que ninguna columna dependa de algo que no sea una llave primaria, un ejemplo imaginario sería que en la matricula existiera un aula y un numero de asientos, dentro de una misma matrícula debería guardarse el numero de aula y el numero de asientos, si el aula tiene su tamaño definido, es ilegal que para algunos matriculados el numero de asientos cambie, por que el aula es la misma, pero los datos no estarán actualizados para todos los matriculados, aquí se requiere una tabla que almacene el numero de aula y los asientos de la misma. Conociendo esto, pasemos a analizar nuestra tabla punto a punto en búsqueda de reiteración de datos y errores de integridad referencial. Personas: Hay espacio para el nombre completo de una persona y su fecha

Curso de Administracion de Bases de Datos Relacionales: 06 - Definiendo tipos de dato, creando bases de datos y tablas

Imagen
Hola buenas tardes, sabiendo como conectarnos a nuestro servidor de bases de datos (sea local o remoto, un SGBD nos permite ambas cosas) ahora nos resta administrar ese servidor para que sea útil, ya he definido una carpeta en el repositorio de proyectos en python donde estará el modelo de la base de datos, es un script completo y ordenado para ejecutarlo una vez y que se genere tanto la base de datos como las tablas automáticamente, en esta entrada vamos a leer el script y entender un poco de SQL en lo que respecta al lenguaje de definición de datos(DDL). La palabra reservada create, como su traducción nos hace suponer, funciona para crear cosas, la primera linea del script es la creación de la BD Universidad y hacer que el intérprete de código SQL la utilice, esto es muy importante, si no estamos en una base de datos elegida, podríamos estar alterando la base de datos por defecto, cometer errores en bases de datos es muy sencillo y resolverlos es muy complejo, ahora la siguien

Curso de Administracion de Bases de Datos Relacionales: 05 - Motor de bases de datos

Imagen
Hola buenas tardes, como ya he dicho antes voy a utilizar un motor de bases de datos llamado MariaDB , que es una versión libre de MySQL , es por mucho uno de los motores de bases de datos relacionales mas versátiles, se puede usar Microsoft SQL Server o cualquier otro por que se supone que SQL es un estándar y mi idea es mostrar lo mas básico de SQL. Una vez elegido e instalado el motor, en MySQL tenemos la posibilidad de instalar MySQL Workbench, un controlador gráfico para la instancia del motor, en MariaDB podríamos buscar MySQL Workbench o cualquier opción libre como lo es phpMyAdmin , como ahora soy hipster, pretendo usar SQL directamente sobre la linea de comandos para esta lección y al empezar a hacer las tablas, phpMyAdmin para hacerlo todo mas visual, por lo general es el gestor de bases de datos mas utilizado por ser liviano y funcionar desde el navegador como una web. Si la instalación se ha realizado correctamente, en los procesos hemos definido un usuario y una contr

Curso de Administracion de Bases de Datos Relacionales: 03 - Segunda forma normal

Imagen
Hola buenas tardes, la segunda forma normal(2FN) requiere cumplir las 5 condiciones de la 1FN y que todos los elementos de la tabla dependan enteramente de la llave primaria, matemáticamente buscamos que haya dependencia funcional y no transitiva, buscamos eliminar las dependencias a medias, buscamos que cada registro pueda ser asociado con una única llave primaria, en ocasiones requerimos una llave compuesta, pero son excepciones a la regla generadas por la lógica del negocio. Aquí tenemos una dependencia transitiva, tenemos un espacio para correo/teléfono dentro de la persona, aunque el dato le pertenece, no es correcto un campo en la tabla que ya posee una llave primaria, para retirar ese problema necesitamos hacer una tabla pivote, aquella que asocia la llave primaria de ambas tablas, no es necesario que una persona tenga numero de teléfono, pero se necesita que dos personas puedan compartir uno, eso nos genera una relación de muchas personas con muchos teléfonos, cosa que deb

Curso de Administracion de Bases de Datos Relacionales: 02 - Primera forma normal

Imagen
Hola buenas tardes, la primera forma normal(1FN) nos garantiza una propiedad llamada isomorfismo, si P y Q son registros de una tabla, deberán ser similares por que comparten columnas, estas características permiten que al buscar usando cualquier columna, el resultado nos pueda devolver tanto P como Q, solo P o solo Q, no siempre obtener un único resultado es lo que necesitamos, estas propiedades nos garantizan esa posibilidad y sabemos que utilizando una llave primaria, tenemos la garantía de obtener solo P o Q, se necesitan 5 condiciones para que una tabla esté en 1FN, estas condiciones son: No debe ser necesario que los registros estén ordenados. No debe ser necesario que las columnas estén ordenadas. No deben haber filas duplicadas. Cada intersección de fila y columna, contiene solo un valor(atomicidad). No hay registros con columnas especiales(todos deben apegarse a la estructura de la tabla). Si no se cumple una de las condiciones, podemos afirmar que la tabla no está en

Curso de Administracion de Bases de Datos Relacionales: 01 - Reglas de normalizacion, conceptualizando tablas

Imagen
Hola buenas tardes, para evitar el aburrimiento vamos a conceptualizar la normalización con un ejemplo y así entendemos las 3 formas normales mas frecuentes de forma gráfica, según la teoría de conjuntos hay caminos cortos que podemos utilizar para minimizar la redundancia de datos(que no existan copias del mismo valor), proteger la integridad de datos, disminuir información basura y asegurar que el crecimiento de las tablas sea constante o incluso que cada vez sea mas lento. Para empezar es necesario tener en claro los elementos que conforman una tabla y como funcionan los procesos que se pueden llevar a cabo con una serie de principios indispensables en bases de datos conocidas como reglas de normalización. En primer lugar debemos tener claro que las columnas serán como una variable, cada fila(Registro) será un objeto que hemos ingresado a la BD, cada tabla deberá cumplir una única función en el conjunto de datos que vamos a almacenar, habrá una o más columnas que sea clave

Curso de Administracion de Bases de Datos Relacionales: 00 - Introduccion y conceptos básicos

Imagen
Hola buenas tardes, aprovechando mis renovadas fuerzas, creo que es buena hora de compilar la información que tengo sobre bases de datos, mi primer problema es que el curso lo llevé hace bastante tiempo, el segundo es que no volví a necesitar bases de datos y el tercero es que quiero añadirle valor al curso de python, con esa suma, lo mejor es empezar a estudiar de nuevo. Una base de datos(BD a partir de ahora) se puede definir como una colección organizada de información, intenta que la búsqueda, escritura y lectura de los datos sea eficiente, raras veces una base de datos requiere del borrado, es una practica común ocultar los datos muy antiguos y utilizarlos con fines estadísticos(DataWarehouse y minería de datos) pero esto va a estar fuera del alcance de este curso. Una base de datos según su variabilidad puede ser estática, cuya función es analizar datos históricos que son archivados de otras bases de datos para la toma de decisiones(normalmente para Data Warehouse y minería d

Curso de programacion en python3 : 09 - PySide2, añadir una GUI en sencillos pasos

Imagen
Esta entrada es parte de una serie, puedes ver la primera  aquí Hola buenas tardes, después de tomarme mi tratamiento por dos días, he encontrado hasta que punto la buena diabetes puede afectar a quien la padece, continuando con el ejemplo de orientación a objetos anterior, se me ha ocurrido la brillante idea de crear una Graphical User Interface(GUI, interfaz gráfica de usuario), hasta hace unos meses intenté utilizar TKinter, no negaré que funciona, pero el propio Guido van Rossum ha declarado que fue un grave error integrar TKinter como GUI por defecto para python. Es bastante agradable como se ven las GUI creadas con Qt, haciendo un barrido durante días, encontré que existe un paquete bien licenciado que nos permite programar tal cual como se hace en Qt, pero de forma nativa y bajo licencia LGPL, aunque se le hace mas publicidad a PyQt, esta tiene un doble licenciamiento y por tanto en proyectos comerciales hay que pagar una licencia, resumiendo y revisando todo lo que se ha esc