Django permite acceder – mediante su ORM – a distintas bases de datos. De serie, Django soporta PostgreSQL, MySQL, SQLite, Oracle y existen “backends” (es decir drivers) no oficiales para IBM DB2, Microsoft SQL Server , Firebird y bases de datos ODBC.
Pero... ¿qué pasa si nuestros datos están en una base de datos para la que no existe – todavía – un backend? ¿cómo de fácil o difícil es escribir nuestro propio backend para esa base de datos?
En esta charla compartiremos nuestra experiencia escribiendo un backend para una base de datos analítica (EXASol DB): ¿cómo lo hemos hecho? ¿qué documentación o referencias hay disponibles? ¿cómo nos aseguramos de que el acceso a los datos es correcto?
El documento describe los diferentes tipos de usuarios de una base de datos, incluyendo: usuarios finales, desarrolladores de aplicaciones, administradores de base de datos (DBA), usuarios ingenuos, usuarios sofisticados, programadores de aplicaciones, y usuarios especializados. Cada tipo de usuario interactúa con la base de datos de manera diferente y tiene diferentes niveles de acceso y capacidades.
El documento explica los pasos para conectar una página web creada en PHP con una base de datos MySQL. Estos pasos incluyen 1) conectarse al servidor MySQL, 2) seleccionar la base de datos, 3) ejecutar consultas SQL para recuperar datos, 4) extraer los resultados en variables PHP, y 5) cerrar la conexión. También proporciona ejemplos de código PHP para implementar cada paso.
¿No consigues expresar tus consultas con el ORM de Django? Si ves la necesidad de usar el método extra() casi cada vez que tienes que expresar una query, si aún no tienes claro para qué sirven Q() y F() o si, una vez te has desesperado, acabas escribiendo tus consultas en SQL plano y usando cursores, es probable que esto te interese.
Este documento describe cómo convertir un diagrama de clases UML a código Java. Presenta las clases Vehículo y Persona, explicando cómo los atributos y relaciones del diagrama se convierten en atributos de clase en Java. También incluye información sobre la creación de proyectos y clases en Eclipse, y ofrece ejemplos adicionales de conversión de diagramas de clases a código.
Este documento compara tres sistemas de gestión de bases de datos: MySQL, Oracle y PostgreSQL. Describe las ventajas y desventajas de cada uno, como el bajo costo pero falta de características avanzadas de MySQL, el alto rendimiento pero alto costo de Oracle, y la escalabilidad y compatibilidad con SQL estándar de PostgreSQL. Concluye que cada base de datos tiene fortalezas diferentes y es más adecuada para diferentes tipos de aplicaciones.
La herencia permite declarar nuevas clases a partir de clases existentes, proporcionando reutilización de código. El polimorfismo permite que objetos se comporten de diferentes maneras dependiendo de su tipo, lo que se implementa a través de la herencia. Por ejemplo, una clase Forma puede tener subclases Círculo y Cuadrado que redefinen el método DisplayName, logrando polimorfismo cuando se pasan objetos de estas clases a una función que espera un objeto Forma.
Este documento describe cuatro tipos de usuarios de una base de datos: usuarios normales que interactúan a través de formularios, usuarios sofisticados que usan lenguajes de consulta, programadores de aplicaciones que crean interfaces, y administradores de base de datos que controlan y mantienen la base de datos.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 1. Introducción a una BD ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno detalla la arquitectura de la base de datos Oracle y configura la conexión de un cliente remoto a través del archivo tnsnames.ora. Asimismo manipula la información mediante la herramienta SQL*PLUS y gestiona una instancia de base de datos.
Temario
1.1 Tema 1: INTRODUCCIÓN AL SGBD ORACLE
1.1.1 Introducción a una DB relacional y a la arquitectura Oracle
1.1.2 Interactuando con la base de datos: Conexión y SQL*PLUS
1.1.3 Componentes de la Arquitectura de una BD Oracle
1.2 Tema 2: GESTIÓN DE UNA INSTANCIA ORACLE
1.2.1 Inicio de la instancia
1.2.2 Apertura de la Base de Datos
1.2.3 Cierre de la Base de Datos
1.2.4 Configuración de un cliente Oracle
El documento describe los diferentes tipos de usuarios de una base de datos, incluyendo: usuarios finales, desarrolladores de aplicaciones, administradores de base de datos (DBA), usuarios ingenuos, usuarios sofisticados, programadores de aplicaciones, y usuarios especializados. Cada tipo de usuario interactúa con la base de datos de manera diferente y tiene diferentes niveles de acceso y capacidades.
El documento explica los pasos para conectar una página web creada en PHP con una base de datos MySQL. Estos pasos incluyen 1) conectarse al servidor MySQL, 2) seleccionar la base de datos, 3) ejecutar consultas SQL para recuperar datos, 4) extraer los resultados en variables PHP, y 5) cerrar la conexión. También proporciona ejemplos de código PHP para implementar cada paso.
¿No consigues expresar tus consultas con el ORM de Django? Si ves la necesidad de usar el método extra() casi cada vez que tienes que expresar una query, si aún no tienes claro para qué sirven Q() y F() o si, una vez te has desesperado, acabas escribiendo tus consultas en SQL plano y usando cursores, es probable que esto te interese.
Este documento describe cómo convertir un diagrama de clases UML a código Java. Presenta las clases Vehículo y Persona, explicando cómo los atributos y relaciones del diagrama se convierten en atributos de clase en Java. También incluye información sobre la creación de proyectos y clases en Eclipse, y ofrece ejemplos adicionales de conversión de diagramas de clases a código.
Este documento compara tres sistemas de gestión de bases de datos: MySQL, Oracle y PostgreSQL. Describe las ventajas y desventajas de cada uno, como el bajo costo pero falta de características avanzadas de MySQL, el alto rendimiento pero alto costo de Oracle, y la escalabilidad y compatibilidad con SQL estándar de PostgreSQL. Concluye que cada base de datos tiene fortalezas diferentes y es más adecuada para diferentes tipos de aplicaciones.
La herencia permite declarar nuevas clases a partir de clases existentes, proporcionando reutilización de código. El polimorfismo permite que objetos se comporten de diferentes maneras dependiendo de su tipo, lo que se implementa a través de la herencia. Por ejemplo, una clase Forma puede tener subclases Círculo y Cuadrado que redefinen el método DisplayName, logrando polimorfismo cuando se pasan objetos de estas clases a una función que espera un objeto Forma.
Este documento describe cuatro tipos de usuarios de una base de datos: usuarios normales que interactúan a través de formularios, usuarios sofisticados que usan lenguajes de consulta, programadores de aplicaciones que crean interfaces, y administradores de base de datos que controlan y mantienen la base de datos.
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 1. Introducción a una BD ORACLE
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno detalla la arquitectura de la base de datos Oracle y configura la conexión de un cliente remoto a través del archivo tnsnames.ora. Asimismo manipula la información mediante la herramienta SQL*PLUS y gestiona una instancia de base de datos.
Temario
1.1 Tema 1: INTRODUCCIÓN AL SGBD ORACLE
1.1.1 Introducción a una DB relacional y a la arquitectura Oracle
1.1.2 Interactuando con la base de datos: Conexión y SQL*PLUS
1.1.3 Componentes de la Arquitectura de una BD Oracle
1.2 Tema 2: GESTIÓN DE UNA INSTANCIA ORACLE
1.2.1 Inicio de la instancia
1.2.2 Apertura de la Base de Datos
1.2.3 Cierre de la Base de Datos
1.2.4 Configuración de un cliente Oracle
1) El documento habla sobre la herencia en Java. La herencia permite que una clase herede atributos y métodos de otra clase llamada superclase.
2) Las subclases heredan la funcionalidad de la clase padre y pueden extenderla redefiniendo métodos.
3) Java solo permite herencia simple, es decir, una clase puede heredar de una única superclase.
El documento contiene varios ejercicios sobre el uso de hilos en Java. El primer ejercicio crea tres hilos que imprimen su nombre después de un retardo aleatorio. El segundo ejercicio muestra cómo crear un hilo para actualizar un contador en un applet Java. Los ejercicios posteriores presentan ejemplos más complejos de hilos para simular cajeras atendiendo clientes y animales compitiendo en una carrera.
Diapositiva con una muy buena introduccion al manejo de bases de datos a través del lenguaje de Programación Java. Contiene además una introducción a Mysql, y además expica muy bien qué es el driver JDBC
El documento explica las interfaces en Java, indicando que son clases abstractas cuyos métodos deben ser implementados por las clases que las usen. Detalla que las interfaces simulan herencia múltiple y permiten que una clase herede de múltiples interfaces. Finalmente, concluye que las interfaces definen lo que una clase puede hacer sin especificar cómo, y que son útiles para compartir características entre clases diferentes.
El documento describe las tablas y campos de una base de datos para un sistema de hotel. Define tablas para habitaciones, servicios, comidas, bebidas, internet, hotel, dirección, forma de pago, disponibilidad, mobiliario, tipo de habitación y cliente, especificando los campos, tipos de datos y validaciones de cada tabla.
Un disparador es un objeto de base de datos con nombre que se asocia a una tabla, y se activa cuando ocurre un evento en particular para la tabla. Algunos usos para los disparadores es verificar valores a ser insertados o llevar a cabo cálculos sobre valores involucrados en una actualización.
Aqui les dejo un ejemplo de Trigger, que puede servir de referencia, como elemento Accounting, de seguridad para algunas tablas de sus bases de Datos
Taller: Prueba Unitaria con JUnit en NetBeansEmerson Garay
Este documento describe cómo crear pruebas unitarias con JUnit en NetBeans para validar funciones en clases Java. Inicialmente se crean dos clases, Validar y Util, con métodos de validación y utilidad. Luego, se generan clases de prueba JUnit para cada clase aplicando aserciones y validando que los resultados coinciden con los esperados. Finalmente, se muestran técnicas avanzadas como pruebas parametrizadas y suites de pruebas para ejecutar varias pruebas de forma agrupada.
La serialización en Java permite convertir objetos en una representación binaria para poder almacenarlos o transmitirlos. Implementar la interfaz Serializable es suficiente para serializar la mayoría de objetos. Los objetos compuestos también se pueden serializar siempre que todos sus componentes sean serializables. Es posible extender la serialización para personalizar la conversión. La serialización tiene limitaciones como sufrir problemas ante cambios en las clases o no ser adecuada para grandes volúmenes de datos.
El documento describe el modelo de entidad-relación para bases de datos. Explica que el modelo consiste en entidades (como objetos del mundo real), atributos de las entidades, y relaciones entre las entidades. Describe los tipos de relaciones (uno a uno, uno a muchos, muchos a muchos), y cómo se representan en un diagrama de entidad-relación. También explica los pasos para construir un diagrama de este tipo.
La integridad de datos en una base de datos se refiere a la corrección y completitud de la información almacenada y consiste en tres categorías: integridad de entidad, integridad de dominio e integridad referencial. La integridad de entidad define cada fila como única, la integridad de dominio restringe los tipos y valores de datos permitidos por columna, e integridad referencial mantiene la coherencia entre las tablas relacionadas.
Code::Blocks es un IDE de código abierto multiplataforma que soporta múltiples lenguajes como C, C++ y Fortran. Permite crear y compilar proyectos, depurar código, y cuenta con características como resaltado de sintaxis, autocompletado, depuración paso a paso y más. Es personalizable a través de complementos y está licenciado bajo GPL.
El estándar TIA 942 provee directrices para el diseño e instalación de centros de datos y los clasifica en 4 niveles o "Tiers" según su grado de disponibilidad y redundancia. Los Tiers van desde el nivel 1 con una disponibilidad del 99.671% hasta el nivel 4 con una disponibilidad del 99.995%, siendo este último el que mayor redundancia requiere en sus sistemas eléctricos, de enfriamiento y otros componentes.
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
El documento describe la estructuración de un proyecto en 3 capas para conectarse a una base de datos y almacenar registros. La capa DAL se encarga de la conexión a la base de datos. La capa BL implementa la lógica del negocio y comunica entre la GUI y la base de datos al almacenar datos temporalmente en objetos y ejecutar consultas SQL. La capa GUI contiene la interfaz gráfica desarrollada en HTML.
SISTEMA DE FACTURACION (Ejemplo desarrollado)Darwin Durand
The document describes the creation of a database in SQL Server to manage invoices and receipts. It includes tables for clients, employees, document headers, and document details. Stored procedures are created to insert data and a form is developed in Visual Studio .NET to manage documents. The form allows searching for clients and employees, adding product details, and printing reports using Crystal Reports.
Este documento resume las principales características de seguridad en SQL Server. Comienza explicando la arquitectura de seguridad en SQL Server 2000, incluyendo autenticación, autorización, integridad y privacidad. Luego cubre la creación y gestión de inicios de sesión y roles, así como la asignación de permisos a través de roles, sentencias y objetos específicos. Finalmente, presenta algunas estrategias de seguridad como el uso de vistas, funciones y procedimientos almacenados.
El documento describe los métodos propios de clase y cómo implementarlos para resolver los requerimientos funcionales de una aplicación para el manejo de datos de empleados. Se definen las clases Empleado y Fecha con sus atributos. Se proporcionan ejemplos de métodos como asignar fecha actual, calcular diferencia entre fechas y un constructor de Fecha a partir de un String. Finalmente, se indica cómo invocar estos métodos desde la clase Principal.
Este documento presenta un manual de ejercicios sobre programación orientada a objetos. Incluye ejemplos de programas que ilustran conceptos como estructuras de control, funciones, clases, herencia, composición y polimorfismo. El documento está dividido en tres capítulos que cubren conceptos básicos, clases, herencia y más conceptos avanzados de POO.
Objetivo: Crear bases de datos relacionales y diagramas de entidad relación sobre un sistema gestor de bases de datos o DBMS usando técnicas de modelamiento para almacenar la información de una organización, entidad o proceso
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
Este documento resume los patrones de escalabilidad en Microsoft Azure SQL Database. Ofrece varias opciones para escalar el rendimiento de forma vertical u horizontal. La escalabilidad vertical se logra cambiando entre los diferentes niveles de servicio (Básico, Estándar y Premium), mientras que la horizontal se logra agregando o eliminando bases de datos. También describe las opciones de sharding para escalar hasta miles de bases de datos y el uso de consultas multi-shard para procesar consultas a través de múltiples shards.
1) El documento habla sobre la herencia en Java. La herencia permite que una clase herede atributos y métodos de otra clase llamada superclase.
2) Las subclases heredan la funcionalidad de la clase padre y pueden extenderla redefiniendo métodos.
3) Java solo permite herencia simple, es decir, una clase puede heredar de una única superclase.
El documento contiene varios ejercicios sobre el uso de hilos en Java. El primer ejercicio crea tres hilos que imprimen su nombre después de un retardo aleatorio. El segundo ejercicio muestra cómo crear un hilo para actualizar un contador en un applet Java. Los ejercicios posteriores presentan ejemplos más complejos de hilos para simular cajeras atendiendo clientes y animales compitiendo en una carrera.
Diapositiva con una muy buena introduccion al manejo de bases de datos a través del lenguaje de Programación Java. Contiene además una introducción a Mysql, y además expica muy bien qué es el driver JDBC
El documento explica las interfaces en Java, indicando que son clases abstractas cuyos métodos deben ser implementados por las clases que las usen. Detalla que las interfaces simulan herencia múltiple y permiten que una clase herede de múltiples interfaces. Finalmente, concluye que las interfaces definen lo que una clase puede hacer sin especificar cómo, y que son útiles para compartir características entre clases diferentes.
El documento describe las tablas y campos de una base de datos para un sistema de hotel. Define tablas para habitaciones, servicios, comidas, bebidas, internet, hotel, dirección, forma de pago, disponibilidad, mobiliario, tipo de habitación y cliente, especificando los campos, tipos de datos y validaciones de cada tabla.
Un disparador es un objeto de base de datos con nombre que se asocia a una tabla, y se activa cuando ocurre un evento en particular para la tabla. Algunos usos para los disparadores es verificar valores a ser insertados o llevar a cabo cálculos sobre valores involucrados en una actualización.
Aqui les dejo un ejemplo de Trigger, que puede servir de referencia, como elemento Accounting, de seguridad para algunas tablas de sus bases de Datos
Taller: Prueba Unitaria con JUnit en NetBeansEmerson Garay
Este documento describe cómo crear pruebas unitarias con JUnit en NetBeans para validar funciones en clases Java. Inicialmente se crean dos clases, Validar y Util, con métodos de validación y utilidad. Luego, se generan clases de prueba JUnit para cada clase aplicando aserciones y validando que los resultados coinciden con los esperados. Finalmente, se muestran técnicas avanzadas como pruebas parametrizadas y suites de pruebas para ejecutar varias pruebas de forma agrupada.
La serialización en Java permite convertir objetos en una representación binaria para poder almacenarlos o transmitirlos. Implementar la interfaz Serializable es suficiente para serializar la mayoría de objetos. Los objetos compuestos también se pueden serializar siempre que todos sus componentes sean serializables. Es posible extender la serialización para personalizar la conversión. La serialización tiene limitaciones como sufrir problemas ante cambios en las clases o no ser adecuada para grandes volúmenes de datos.
El documento describe el modelo de entidad-relación para bases de datos. Explica que el modelo consiste en entidades (como objetos del mundo real), atributos de las entidades, y relaciones entre las entidades. Describe los tipos de relaciones (uno a uno, uno a muchos, muchos a muchos), y cómo se representan en un diagrama de entidad-relación. También explica los pasos para construir un diagrama de este tipo.
La integridad de datos en una base de datos se refiere a la corrección y completitud de la información almacenada y consiste en tres categorías: integridad de entidad, integridad de dominio e integridad referencial. La integridad de entidad define cada fila como única, la integridad de dominio restringe los tipos y valores de datos permitidos por columna, e integridad referencial mantiene la coherencia entre las tablas relacionadas.
Code::Blocks es un IDE de código abierto multiplataforma que soporta múltiples lenguajes como C, C++ y Fortran. Permite crear y compilar proyectos, depurar código, y cuenta con características como resaltado de sintaxis, autocompletado, depuración paso a paso y más. Es personalizable a través de complementos y está licenciado bajo GPL.
El estándar TIA 942 provee directrices para el diseño e instalación de centros de datos y los clasifica en 4 niveles o "Tiers" según su grado de disponibilidad y redundancia. Los Tiers van desde el nivel 1 con una disponibilidad del 99.671% hasta el nivel 4 con una disponibilidad del 99.995%, siendo este último el que mayor redundancia requiere en sus sistemas eléctricos, de enfriamiento y otros componentes.
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
El documento describe la estructuración de un proyecto en 3 capas para conectarse a una base de datos y almacenar registros. La capa DAL se encarga de la conexión a la base de datos. La capa BL implementa la lógica del negocio y comunica entre la GUI y la base de datos al almacenar datos temporalmente en objetos y ejecutar consultas SQL. La capa GUI contiene la interfaz gráfica desarrollada en HTML.
SISTEMA DE FACTURACION (Ejemplo desarrollado)Darwin Durand
The document describes the creation of a database in SQL Server to manage invoices and receipts. It includes tables for clients, employees, document headers, and document details. Stored procedures are created to insert data and a form is developed in Visual Studio .NET to manage documents. The form allows searching for clients and employees, adding product details, and printing reports using Crystal Reports.
Este documento resume las principales características de seguridad en SQL Server. Comienza explicando la arquitectura de seguridad en SQL Server 2000, incluyendo autenticación, autorización, integridad y privacidad. Luego cubre la creación y gestión de inicios de sesión y roles, así como la asignación de permisos a través de roles, sentencias y objetos específicos. Finalmente, presenta algunas estrategias de seguridad como el uso de vistas, funciones y procedimientos almacenados.
El documento describe los métodos propios de clase y cómo implementarlos para resolver los requerimientos funcionales de una aplicación para el manejo de datos de empleados. Se definen las clases Empleado y Fecha con sus atributos. Se proporcionan ejemplos de métodos como asignar fecha actual, calcular diferencia entre fechas y un constructor de Fecha a partir de un String. Finalmente, se indica cómo invocar estos métodos desde la clase Principal.
Este documento presenta un manual de ejercicios sobre programación orientada a objetos. Incluye ejemplos de programas que ilustran conceptos como estructuras de control, funciones, clases, herencia, composición y polimorfismo. El documento está dividido en tres capítulos que cubren conceptos básicos, clases, herencia y más conceptos avanzados de POO.
Objetivo: Crear bases de datos relacionales y diagramas de entidad relación sobre un sistema gestor de bases de datos o DBMS usando técnicas de modelamiento para almacenar la información de una organización, entidad o proceso
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
Este documento resume los patrones de escalabilidad en Microsoft Azure SQL Database. Ofrece varias opciones para escalar el rendimiento de forma vertical u horizontal. La escalabilidad vertical se logra cambiando entre los diferentes niveles de servicio (Básico, Estándar y Premium), mientras que la horizontal se logra agregando o eliminando bases de datos. También describe las opciones de sharding para escalar hasta miles de bases de datos y el uso de consultas multi-shard para procesar consultas a través de múltiples shards.
Este documento proporciona una introducción a SQL Server 2008 para desarrolladores. Explica conceptos clave como las bases de datos, las sentencias DDL, DCL y DML de SQL, los nuevos tipos de datos como DATE y DATETIME2, el uso de variables, los procedimientos almacenados, los parámetros de tipo tabla y la nueva sentencia MERGE. También incluye ejemplos de código T-SQL para ilustrar estos conceptos.
CodeIgniter es un potente framework PHP para crear aplicaciones web de forma simple y elegante. Utiliza el patrón MVC con clases como la DatabaseClass que implementa Active Record para realizar operaciones en la base de datos de forma sencilla, como seleccionar, insertar y actualizar datos con uno o dos líneas de código. También incluye clases para enviar correo electrónico, validar formularios, crear tablas HTML, paginación, sesiones y más.
PostgreSQL es un sistema de gestión de base de datos objeto-relacionales robusto y de código abierto que sigue la norma ACID. Usa el modelo cliente-servidor y el control de concurrencia multi-versión para permitir múltiples transacciones concurrentes. Almacena los datos en páginas de memoria y usa índices como B-trees para mejorar el rendimiento de las consultas. Ofrece funciones como vaciado y copias de seguridad para optimizar el espacio en disco y recuperar la base de datos.
Rendimiento en aplicaciones web con Symfony2Asier Marqués
Este documento proporciona consejos sobre el rendimiento web y el rendimiento de bases de datos. Resalta la importancia de diseñar aplicaciones de forma escalable y optimizada desde el principio. Recomienda evitar consultas innecesarias, usar índices adecuados, particionar tablas grandes y almacenar en caché resultados cuando sea posible. También analiza herramientas para medir el rendimiento como Varnish y sugiere opciones alternativas como NoSQL para ciertos casos.
Este documento presenta una introducción a los tipos de datos, tablas, vistas y procedimientos almacenados en SQL Server. Explica los diferentes tipos de datos y sus categorías. Luego, describe cómo crear tablas, incluidas las llaves primarias y columnas nulas. También explica cómo crear vistas y los beneficios de su uso. Finalmente, detalla los procedimientos almacenados, incluidas sus propiedades y cómo mejoran el rendimiento de las aplicaciones.
El documento proporciona información sobre PostgreSQL, incluyendo su historia, características, tipos de datos, arquitectura, instalación, configuración, conexión y administración. Explica que PostgreSQL es un sistema de gestión de bases de datos de código abierto derivado de Postgres de Berkeley. Detalla los pasos para instalar, configurar y administrar PostgreSQL, así como para crear usuarios, bases de datos, esquemas y tablas.
Este documento describe los conceptos básicos de bases de datos, incluyendo bases de datos, modelos de datos, lenguajes de acceso como SQL, y sistemas gestores de bases de datos. También explica las API estándar para conectar aplicaciones a bases de datos, como JDBC para Java y ODBC para Microsoft.
Este documento describe los conceptos básicos de las bases de datos, incluyendo bases de datos, modelos de datos, lenguajes de acceso como SQL, y sistemas gestores de bases de datos. También explica JDBC, la interfaz estándar de Java para acceder a bases de datos, incluyendo cómo registrar controladores, conectarse a bases de datos, ejecutar consultas y actualizar datos.
Spark 2.0 estará entre nosotros en los próximos meses, nuestro amado Framework de procesamiento en paralelo va a sufrir un gran cambio y debemos estar preparados para afrontarlo.
Durante meses la comunidad y Databricks han estado trabajando en Spark para atender a todas las peticiones de usuarios, se han esforzado en desarrollar potentes utilidades y en continuar haciendo de Spark la herramienta numero uno de Big Data.
Conociendo los cambios de SQL Server a partir de 2012 a 2016Joseph Lopez
En la presente charla, les estare mostrando los cambios y mejoras mas relevantes que se generaron en el servidor de base de datos SQL Server de Microsoft a partir de la version 2012 hasta llegar a la version 2016 con faciles demostraciones para entender dichos cambios.
En esta presentación Guillermo Taylor, John Bulla y Julián Castiblanco, hablan sobre algunas de las mejores características de sQL Server 2016, como migrar a SQL Databas, características de sql database y en general varios tips para DBA's en arquitecturas híbridas
Presentación: Administración y programación de bases de datos relacionales.Angel Ladrero Gracia
Presentación de parte del temario de Administrador de bases de datos relacionales / Programador bases de datos relacionales. Formación continua 410 h.
Tecnología MS SQL Server
140 D Bcripto Protegiendo Datos En Aplicaciones Genexus WebGeneXus
Este documento presenta DBcripto, una solución para proteger datos confidenciales en aplicaciones GeneXus Web sin necesidad de cambios en la aplicación. DBcripto cifra y verifica la integridad de datos en la base de datos de manera eficiente y sencilla a través de una interfaz Web. Actualmente soporta Windows, Apache Tomcat y MySQL, pero pronto estará disponible para más plataformas y bases de datos.
Este documento presenta una introducción a Azure Data Warehouse. Explica la arquitectura tradicional de un data warehouse y cómo Azure Data Warehouse ofrece una solución en la nube. Detalla los componentes de la arquitectura de Azure Data Warehouse como las unidades de almacenamiento, modos de despliegue, distribución de tablas e índices. También cubre temas como la migración de datos y consideraciones al usar Azure Data Warehouse.
El documento describe cómo conectarse y realizar operaciones en bases de datos usando Java Database Connectivity (JDBC). JDBC permite que las aplicaciones Java se conecten a diferentes bases de datos relacionales y realicen consultas SQL. La API JDBC incluye clases como Connection, Statement y ResultSet que permiten establecer conexiones, ejecutar consultas y procesar resultados.
Este documento describe diversas herramientas para la administración de diferentes sistemas de gestión de bases de datos relacionales como MySQL, Oracle, SQL Server, PostgreSQL, MongoDB y SQLite. Se detallan aplicaciones gráficas como PhpMyAdmin, Oracle SQL Developer y PgAdmin para la administración de MySQL, Oracle y PostgreSQL respectivamente. También se mencionan herramientas de línea de comandos
El documento compara diferentes sistemas de gestión de bases de datos como Oracle, SQL Server, MySQL, PostgreSQL y Access. Explica las diferencias entre ellos en términos de rendimiento, características, ventajas y desventajas. También describe los componentes principales de un SGBD como el motor de base de datos, el sistema de definición de datos y el sistema de manipulación y gestión.
Presentación de la charla impartida en el meetup de Python Madrid sobre Asincronía en Python https://www.meetup.com/es-ES/python-madrid/events/268111847/
El documento presenta una charla sobre UX/UI para desarrolladores. Explica conceptos clave como affordances, gestalt, grids, colores, tipografía y heurísticas de diseño. También advierte sobre posibles errores como ignorar el modelo mental del usuario, usar vocabulario técnico o hacer interfaces poco amigables.
Slides for my talk in FrontFest 2018 (Madrid, Feb 17). It's a technical comparison of the change detection mechanism as implemented in AngularJS, React, Angular2 and VueJS
See demos at https://github.com/jabadia/frontfest-frameworks-demos
Las reglas que hay que romper para que tu equipo de desarrollo sea el más RÁPIDOJavier Abadía
El documento proporciona consejos para que un equipo de desarrollo sea más rápido, enfocándose en seis áreas clave: 1) enfocarse solo en lo necesario, 2) establecer claramente la dirección, 3) mejorar la coordinación entre el equipo, 4) identificar y reducir las cosas que roban tiempo, 5) asegurar que las cosas se hagan de manera efectiva, y 6) formar un equipo comprometido. El documento enfatiza la importancia de la transparencia, automatización, toma de decisiones por consenso,
Solución a 4 retos de programación de Advent of Code y Google Code Jam para ilustrar construcciones pythónicas de código y algunas utilidades poco conocidas del lenguaje.
Django + Vue, JavaScript de 3ª generación para modernizar DjangoJavier Abadía
Slides de la charla que di en la PyConEs 2017 en Cáceres, el 24 de Septiembre.
Explicaba cómo montar un entorno de desarrollo ágil con Django en el back, Vue en el front y webpack para empaquetar el front y proporcionar Hot Module Reloading
Vue.js + Django - configuración para desarrollo con webpack y HMRJavier Abadía
Presentación del meetup de Vue.js en Madrid, el 12/Sep/2017 donde explicamos cómo configurar Django y webpack para desarrollar SPAs con Vue.js y backend con Django: incluye configuración de Hot-Module-Reloading, autenticación, API y rutas.
El código de ejemplo se puede encontrar aquí: https://github.com/jabadia/gif_catalog
Anatomía de un Bot para Resultados ElectoralesJavier Abadía
Este documento describe cómo crear un bot de resultados electorales en Node.js. Explica la anatomía de un bot, incluyendo entender el lenguaje natural, procesar la intención del usuario, y responder. Luego discute opciones para la plataforma como Twitter, y desafíos como cuotas de tweets y usuarios impacientes. Finalmente, proporciona recursos para el procesamiento de lenguaje natural, bots, y módulos de Node.js.
La charla que dí en Codemotion 2015 sobre cómo resolver la noche electoral con AWS, Node.js, Angular.js, D3.js y Leaflet.js (http://2015.codemotion.es/agenda.html#5699289732874240/50504006)
Aplicación de las sentencias de control en telecomunicacionesambuludimateo2
if y switch son fundamentales en la programación moderna debido a su capacidad para controlar el flujo de ejecución y tomar decisiones basadas en condiciones específicas.
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Javier Martinez Seco
El 15 de junio de 2024 Javier Martínez Seco, director de Ecode, presentó en SEonthebeach 2024 una ponencia titulada "Casos de éxito en Negocios online - Estrategias WPO que funcionan". Javier compartió su experiencia de más de 15 años en el ámbito de las tecnologías web, destacando su especialización en desarrollo web a medida, SEO técnico y optimización del rendimiento web (WPO).
- Presentación inicial: Javier Martínez es ingeniero informático especializado en tecnologías web, con un historial que incluye la creación y mejora de más de 1000 sitios web y negocios online. Realiza auditorías, consultorías, formación a equipos de desarrollo y desarrollo a medida.
- Sitios web que funcionan bien desde el principio: destacó la diferencia entre un sitio web que simplemente "funciona" y uno que "funciona bien". Ejemplos reales desarrollados por Ecode.
- Calidad en el rendimiento web: explicó qué aspectos deben considerarse para conseguir calidad en el rendimiento de una web. Detalló los procesos que el navegador debe seguir para renderizar una página web, incluyendo la descarga del documento HTML, CSS y demás recursos (imágenes, tipografías, ficheros JavaScript).
- Estrategias de carga óptima: Javier presentó estrategias de carga óptima teniendo en cuenta diferentes objetivos y condiciones de trabajo. Habló sobre la importancia de simular condiciones reales de usuario y ajustar la velocidad y CPU para estas simulaciones. También mencionó la extensión de Chrome Web Vitals.
- Pruebas de rendimiento: indicó cómo probar el rendimiento de carga de una página web en su primera visita.
- Realidad del sector y mercado actual: Javier describió la situación actual del sector, donde se priorizan tecnologías populares que facilitan el trabajo de creación web. Sin embargo, advirtió sobre la dependencia de tecnologías conocidas y la necesidad de adaptar el negocio online a estas tecnologías.
- Ejemplos de cargas no óptimas: presentó ejemplos de malas cargas de diferentes webs populares desarrolladas con CMS y tecnologías como Shopify, Webflow, Prestashop, Magento, Salesforce, Elementor, WordPress y Drupal. La tecnología lenta es tecnología mala.
- ¿Merece la pena hacerlo mejor?: Javier subrayó la importancia de medir la situación actual y evaluar la oportunidad de mejora.
- Javier finalizó la ponencia hablando sobre cómo trabaja actualmente con su empresa Ecode, enfocada en construir sitios web muy optimizados desde el inicio. Presentó un caso de éxito: La Casa del Electrodoméstico, una tienda online a medida con una facturación anual de millones de euros y más de 10 millones de carritos de compra, donde más del 90% de las sesiones cumplen con los parámetros LCP, INP y CLS durante toda la sesión.
La ponencia de Javier Martínez Seco en SEonthebeach 2024 ofreció una visión completa y práctica sobre la optimización del rendimiento web, demostrando cómo las estrategias WPO bien implementadas pueden marcar la diferencia en el éxito de los negocios online.
DuckDuckGo, es el motor de búsqueda centrado en la privacidad que lleva años creciendo como una sólida alternativa a buscadores como Google, Bing y Yahoo. Sobre todo, una alternativa para todos aquellos que no quieran ser rastreados y que quieran maximizar la privacidad cuando buscan cosas en Internet.
IF y SWITCH: Claves para una Lógica de Programación
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
1. EXTENDIENDO DJANGO PARA QUE
SE CONECTE A OTRAS BASES DE
DATOS
ESCRIBE TU PROPIO BACKEND
Un caso práctico con EXAsol
@javierabadia
Alicante
PyConEs 2019
Javier Abadía
StyleSage
2.
3. Índice
1. Contexto
2. El ORM de Django
3. Bases de datos Analíticas vsTransaccionales
4. Estructura de un Backend de BBDD
5. Trucos y consejos
11. Django ORM
◦definirmodelos
◦ independientemente de su
representación en la base de
datos
◦generar el esquema de BBDD
◦ que corresponde a dichos
modelos
◦acceder a la BBDD a través de
los modelos
◦ para leer
◦ para escribir
◦¡¡migraciones !!
12. Django ORM - modelos y esquemas
ÚNICA FUENTE DEVERDAD
22. Bases de Datos Transaccionales: PostgreSQL
product_id country brand description current_price
100 us Nike Air Max 2000 124,95
101 us Adidas Originals Forest Hills 65,00
102 uk Adidas Gazelle 95,00
103 uk Nike Color Burst 150,00
• Los datos se almacenan en disco por filas
• Para leer un campo, se lee la fila completa
(un bloque de 4Kb)
• Índices
• RAPIDÍSIMO
23. Bases de Datos Transaccionales: PostgreSQL
product_id country brand description current_price
100 us Nike Air Max 2000 124,95
101 us Adidas Originals Forest Hills 65,00
102 uk Adidas Gazelle 95,00
103 uk Nike Color Burst 150,00
• INSERT
• UPDATE =
implementado como
un DELETE + INSERT
• RAPIDÍSIMO
24.
25. 1. Leer TODAS las filas 2. seleccionar
current_price
3. calcular
MIN, AVG, MAX
26. Bases de Datos Transaccionales: PostgreSQL
product_id country brand description current_price
100 us Nike Air Max 2000 124,95
101 us Adidas Originals Forest Hills 65,00
102 uk Adidas Gazelle 95,00
103 uk Nike Color Burst 150,00
• LENTÍIIIISIMO
• 400M de prod * 10Kb / prod = 3.6Tb
• Leer 4TB a 500Mb/s = +2 horas
27. Bases de Datos Analíticas:
Redshift, SAP HANA, EXAsol
product_id
100
101
102
103
country
us
us
uk
uk
brand
Nike
Adidas
Adidas
Nike
description
Air Max 2000
Originals Forest Hills
Gazelle
Color Burst
current_price
124,95
65,00
95,00
150,00
• Los datos se almacenan en disco por
COLUMNAS
• Con compresión
• Operaciones en Memoria RAM
• Sharding / Paralelización
💶
28. Bases de Datos Analíticas:
Redshift, SAP HANA, EXAsol…
product_id
100
101
102
103
country
us
us
uk
uk
brand
Nike
Adidas
Adidas
Nike
description
Air Max 2000
Originals Forest Hills
Gazelle
Color Burst
current_price
124,95
65,00
95,00
150,00
29.
30. Django ORM - BBDD soportadas
unofficial
3rd party
?
33. Django DB Backends
◦ Python PEP 249
◦ estándar de la API que debe ofrecer una BBDD en Python
◦ connection / cursor
◦ DB Backend = Capa de Adaptación
◦ cadenas de conexión
◦ tipos de datos soportados
◦ funciones especificas
◦ fechas y horas
◦ quoting
◦ LIMIT / OFFSET
◦ distintas capacidades entre BBDD
◦ diferencias de dialecto SQL
34. La estructura de un Backend
◦ podéis examinar dentro de
django
db
backends
base
dummy
mysql
oracle
postgresql
sqlite3
44. Clase Necesario Propósito
DatabaseWrapper Si abrir/cerrar conexiones
CursorWrapper Si ejecutar queries / devolver
resultados
DatabaseFeatures Si
(por defecto)
soporta/no soporta
funcionalidad
DatabaseOperations Si
(incremental)
detalles de
DatabaseSchemaEditor No para migraciones
DatabaseIntrospection No para inspectdb
DatabaseCreation No para unit testing
DatabaseClient No para shell
47. Documentación, Tests, Prueba & Error
◦ No está documentado cómo escribir un ‘backend’
◦ Hay información dispersa (no mucha)
◦ Hay que observar los backends que vienen con Django e
implementar lo necesario
◦ Crear una batería de tests
◦ Comprobar que el SQL es el esperado
48. ¿Cómo ver las queries?
◦ Django DebugToolbar
◦ logging
◦ middleware
◦ cursor wrapper
◦ https://docs.djangoproject.com/en/2.2/topics/db/instrumentation/
◦ instrumentar nuestro
propio cursor
35 minutos de duración + 5 minutos de preguntas
Título: Extendiendo Django para que se conecte a otras Bases de Datos: escribe tu propio backend
Tipo de contribución: (b)
Charla corta
Charla extendida
Póster
Taller
Idioma: (a)
Español
Inglés
Nivel: (a)
Avanzado
Medio
Iniciación
Palabras clave: Django, backend, Base de Datos, SQL
Resumen:
Django permite acceder – mediante su ORM – a distintas bases de datos. De serie, Django soporta PostgreSQL, MySQL, SQLite, Oracle y existen “backends” (es decir drivers) no oficiales para IBM DB2, Microsoft SQL Server , Firebird y bases de datos ODBC.
Pero… ¿qué pasa si nuestros datos están en una base de datos para la que no existe – todavía – un backend? ¿cómo de fácil o difícil es escribir nuestro propio backend para esa base de datos?
En esta charla compartiremos nuestra experiencia escribiendo un backend para una base de datos analítica (EXASol DB): ¿cómo lo hemos hecho? ¿qué documentación o referencias hay disponibles? ¿cómo nos aseguramos de que el acceso a los datos es correcto?
Presentación:
Estructura de la presentación (orientativa):
Introducción
Bases de datos soportadas, variantes de SQL
La estructura de un backend de BBDD de Django
Aspectos relevantes a considerar
Pruebas Unitarias
Conclusiones
Pre-requisitos para atender a la propuesta:
El tema es avanzado y muy específico. Es necesario estar familiarizado con el ORM de Django y SQL.
Otros requerimientos técnicos:
Ninguno en especial: me gustaría usar mi propio ordenador.
Referencias:
Documentación de Django: https://www.djangoproject.com/
diagrama del pipeline
diagrama del pipeline
Django sirve para hacer páginas web
Tiene varias partes:
responder requests
sistema de templates
ORM
…
definir modelos
independientemente de su representación en la base de datos
generar el esquema de BBDD que corresponde a dichos modelos
acceder a la BBDD a través de los modelos
para leer
para escribir
migraciones !!
modelo UML
tabla SQL
modelo en Python
https://djangobook.com/mdj2-models/
definición de los modelos
tipo de dato de cada atributo
restricciones (únique, not null)
valores por defecto
relaciones entre modelos
índices
2. acceso a los datos
consultas simples
consultas con joins
consultas con agregaciones
live coding demo? Python REPL
PostgreSQL
MySQL
SQLite
Oracle
unofficial third party drivers
Podemos acceder a BBDD que no son “propiedad” de nuestra aplicación
Generar unos “modelos” a partir de las tablas/vistas de la BBDD
managed = false
BBDD analítica
BBDD analítica
muchos datos a pocos datos
BBDD analítica
BBDD analítica
BBDD analítica
PostgreSQL
MySQL
SQLite
Oracle
unofficial third party drivers
https://www.python.org/dev/peps/pep-0249/
ilustrar con ejemplos
partes
que hace cada parte?
hay que implementar todo?
por suerte, no
catálogo de funcionalidad soportada por la BBDD
Django puede auto-detectar algunas ‘features’
si sabemos si la bbdd soporta o no soporta la feature, es mejor especificarlo para evitar la autodetección
ej. supports_transactions = True
suelen controlar “edge cases” o funcionalidad específica
inicialmente, ignorarlo
necesarias para ejecutar queries
implementación por defecto para muchas de ellas
implementar según vayan haciendo falta
funciones para modificar el esquema
crear/borrar tablas
crear/modificar/borrar columnas
crear/modificar/borrar índices
necesarias para ejecutar las migraciones
python manage.py migrate
para abrir una “shell” de base de datos
python manage.py dbshell
no es necesario implementarlo