SlideShare una empresa de Scribd logo
1 de 35
Diseño DB
SQL Engine
Queries Django
Eugenio Pájaro Almagro
Diseño de Bases de Datos
El Diseño de Bases de Datos
Las bases de datos tienen, por definición, un diseño. Y cuando hablamos de diseño, nos referimos al proceso de
modelar los distintos conjuntos de datos y decidir qué vamos a hacer con ellos.
Por qué es importante el diseño de base de datos
Un buen diseño de tu base de datos es fundamental porque aporta varias ventajas. Las más importantes son las
siguientes:
● Agilización del procesamiento de datos. Es evidente que, cuanto más funcional sea el diseño, más fácil será que
se agilice el procesamiento de los datos.
● Ahorro del espacio. El ahorro de espacio es más sencillo, puesto que con un diseño de datos optimizado se
elimina la duplicación, lo que siempre emplea espacio.
● Mejor precisión e integridad de los datos. Cuando el diseño de datos es óptimo, se evitan pérdidas de datos y,
sobre todo, se gana en precisión. Esta ya es una razón para darle importancia a esta cuestión.
Aspectos importantes
Un buen diseño de tu base de datos es fundamental porque aporta varias ventajas:
● Agilización del procesamiento de datos. Es evidente que, cuanto más funcional sea el diseño, más fácil será que
se agilice el procesamiento de los datos.
● Ahorro del espacio. El ahorro de espacio es más sencillo, puesto que con un diseño de datos optimizado se
elimina la duplicación, lo que siempre emplea espacio.
● Mejor precisión e integridad de los datos. Cuando el diseño de datos es óptimo, se evitan pérdidas de datos y,
sobre todo, se gana en precisión. Esta ya es una razón para darle importancia a esta cuestión.
Sql Engine
Es un tipo de software que recopila e interpreta comandos SQL para que se puedan realizar las operaciones apropiadas en
la base de datos relacional. El objetivo del motor SQL es crear, leer, actualizar y eliminar datos (CRUD) de una base de
datos.
¿Cómo funciona un motor SQL?
SQL tiene muchas etapas en las que el proceso de compilación y ejecución de consultas se llevan a cabo. Cada motor de
base de datos SQL tiene dos componentes principales: compilador y máquina virtual para ejecutar consultas.
Etapas principales de la ejecución completa de una consulta:
● Compilación (análisis, controles y semántica)
● Unión
● Optimización
● Ejecución
Compilación - Análisis, controles y semántica
Es parte del proceso de compilación, y al compilar el análisis, la instrucción de consulta se tokeniza en palabras
individuales y cláusulas apropiadas.
Compilación - Análisis, controles y semántica
La compilación de semánticas verifica la validación de la declaración y la compara con el catálogo del sistema.
Compilación - Análisis, controles y semántica
Crea un plan de ejecución generando un tercer árbol de nodos que forman una lista de instrucciones.
Optimización y Ejecución
La máquina virtual obtiene el código de bytes optimizado y lo ejecuta.
Componentes de SQL
El lenguaje SQL está compuesto por:
● Comandos.
● Cláusulas.
● Operadores Lógicos.
● Operadores de comparación.
● Funciones de Agregado.
Que es una consulta SQL
Son una forma de buscar y recopilar información de una o más tablas para conseguir información detallada de una base de
datos. Las tres formas de una consulta son:
● Subselección
● Selección completa
● Sentencia-select.
Hay tres tipos de combinaciones:
● Combinación Interna.
● Combinaciones externas
● Combinaciones cruzadas.
Queries Django
Porque el ORM de Django es lazy
Esto significa que ninguna consulta se realiza hasta que el resultado es requerido, esto regularmente en la vista.
¿Qué es N+1 Query?
¿Qué es un QuerySet?
Un QuerySet es, en esencia, una lista de objetos de un modelo determinado. Un QuerySet te permite leer los datos de la
base de datos, filtrarlos y ordenarlos.
Tips para optimizar consultas
Uso de herramientas de depuración
Herramientas que permitan ver el resultado estadístico de las consultas SQL.
● django-debug-toolbar Puede ver los resultados de depuración directamente en el lado web
● django-extensionsPuede depurar en el entorno de shell
Considerar la evaluación lazy del ORM
Se debe estar atento en el uso de los QuerySet, ya que solo se ejecutará cuando sea requerido.
Evaluado el QuerySet
Cuando el QuerySet no es cacheado Cuando el QuerySet es
cacheado
Cuando el QuerySet no es cacheado Cuando el QuerySet es
cacheado
Los atributos de modelo no se almacenan en caché
Al momento de evaluar un QuerySet, las relaciones externas e inversas no se
incluyen en la consulta. Por lo tanto no se incluyen en la caché.
Usar select_related() y prefetch_related() al necesitar
objetos relacionados con atributos externos/inversos.
Estos métodos le indican a Django que necesita los objetos relacionados.
No realizar consultas a la DB en bucles
Realizar la llama a la DB antes de entrar a un bucle.
Uso de iterator() para iterar a través de un QuerySet
Si sabe que su QuerySet podría ser muy grande y solo necesita iterarlo una vez,
tiene sentido eliminar el uso del caché para preservar la memoria y otros gastos
generales.
Trabaje en la BD en lugar de Python
Su base de datos puede hacer casi cualquier cosa relacionada con los datos
mucho más rápido que Python. Django proporciona muchas herramientas para
hacer esto posible.
Obtener solo lo necesario
values()y values_list()proporcione listas, diccionarios o tuplas que evalúen solo
los campos que especifique.
Usar count() y exists() cuando no se necesite el
contenido del QuerySet
Solo utilízarlos cuando no necesite evaluar el QuerySet por otros motivos.
Uso de delete() y update() cuando sea posible.
En lugar de actualizar las instancias del modelo de una en una, delete()y
update()permitirle hacerlo de forma masiva.
Use los valores de claves externas directamente
El ORM de Django recupera y almacena en caché automáticamente las claves
externas, así que utilícelas en lugar de provocar una consulta de base de datos
innecesaria.
Tópicos intermedios
Consultas Raw
El método de administrador raw() se puede utilizar para realizar consultas SQL sin
formato que devuelven instancias de modelo.
>>> for p in Person.objects.raw('SELECT * FROM myapp_person'):
... print(p)
Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person')
Person.objects.raw('SELECT id, first_name FROM myapp_person')
people = Person.objects.raw('SELECT *, age(birth_date) AS age FROM myapp_person')
>>> for p in people:
... print("%s is %s." % (p.first_name, p.age))
Ejecución directa de SQL
A veces, incluso Manager.raw() no es suficiente: es posible que deba realizar consultas que no se
asignen limpiamente a los modelos, o ejecutar directamente consultas UPDATE , INSERT AR o
DELETE .
from django.db import connection
def my_custom_sql(self):
with connection.cursor() as cursor:
cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
row = cursor.fetchone()
return row
Llamados a procedimientos almacenados
Llama a un procedimiento almacenado de base de datos con el nombre dado. Se
puede proporcionar una secuencia ( params ) o diccionario ( kparams ) de
parámetros de entrada. La mayoría de las bases de datos no son compatibles con
kparams .
with connection.cursor() as cursor:
cursor.callproc('test_procedure', [1, 'test'])
Gracias

Más contenido relacionado

Similar a Libro de recetas.pptx

SQL Server Query Processor
SQL Server Query ProcessorSQL Server Query Processor
SQL Server Query ProcessorEduardo Castro
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusXavier Espinoza
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesXavier Espinoza
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceMarco Tulio Gómez Reyes
 
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...Sergio E. Sánchez
 
Business Intelligence en Azure
Business Intelligence en AzureBusiness Intelligence en Azure
Business Intelligence en AzureiT Synergy
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBASpanishPASSVC
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014JOSE AHIAS LOPEZ PORTILLO
 
Cuadro Comparativo Bd
Cuadro Comparativo BdCuadro Comparativo Bd
Cuadro Comparativo Bdalinacarrion
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datosUTN
 

Similar a Libro de recetas.pptx (20)

Herramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bdHerramientas de control,monitoreoy estadistica de bd
Herramientas de control,monitoreoy estadistica de bd
 
SQL Server Query Processor
SQL Server Query ProcessorSQL Server Query Processor
SQL Server Query Processor
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
 
Cubos ppt
Cubos pptCubos ppt
Cubos ppt
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes Performance
 
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
HERRAMIENTAS DE CONTROL DE MONITOREO Y ESTADISTICAS DE ACCESO A BASE DE DATOS...
 
Guia de estudio_oracle 11 g
Guia de estudio_oracle 11 gGuia de estudio_oracle 11 g
Guia de estudio_oracle 11 g
 
Guia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdfGuia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdf
 
Amnel
AmnelAmnel
Amnel
 
Business Intelligence en Azure
Business Intelligence en AzureBusiness Intelligence en Azure
Business Intelligence en Azure
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
SEMANA 1 Introduccion.pptx
SEMANA 1 Introduccion.pptxSEMANA 1 Introduccion.pptx
SEMANA 1 Introduccion.pptx
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Cuadro Comparativo Bd
Cuadro Comparativo BdCuadro Comparativo Bd
Cuadro Comparativo Bd
 
Oracle3
Oracle3Oracle3
Oracle3
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Anahi
AnahiAnahi
Anahi
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 

Último

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxBrayanJavierCalle2
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 

Último (20)

Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptxCONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
CONCEPTOS EN HIDROGEOLOGIA-diapositivas varias.pptx
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 

Libro de recetas.pptx

  • 1. Diseño DB SQL Engine Queries Django Eugenio Pájaro Almagro
  • 2. Diseño de Bases de Datos
  • 3. El Diseño de Bases de Datos Las bases de datos tienen, por definición, un diseño. Y cuando hablamos de diseño, nos referimos al proceso de modelar los distintos conjuntos de datos y decidir qué vamos a hacer con ellos.
  • 4. Por qué es importante el diseño de base de datos Un buen diseño de tu base de datos es fundamental porque aporta varias ventajas. Las más importantes son las siguientes: ● Agilización del procesamiento de datos. Es evidente que, cuanto más funcional sea el diseño, más fácil será que se agilice el procesamiento de los datos. ● Ahorro del espacio. El ahorro de espacio es más sencillo, puesto que con un diseño de datos optimizado se elimina la duplicación, lo que siempre emplea espacio. ● Mejor precisión e integridad de los datos. Cuando el diseño de datos es óptimo, se evitan pérdidas de datos y, sobre todo, se gana en precisión. Esta ya es una razón para darle importancia a esta cuestión.
  • 5. Aspectos importantes Un buen diseño de tu base de datos es fundamental porque aporta varias ventajas: ● Agilización del procesamiento de datos. Es evidente que, cuanto más funcional sea el diseño, más fácil será que se agilice el procesamiento de los datos. ● Ahorro del espacio. El ahorro de espacio es más sencillo, puesto que con un diseño de datos optimizado se elimina la duplicación, lo que siempre emplea espacio. ● Mejor precisión e integridad de los datos. Cuando el diseño de datos es óptimo, se evitan pérdidas de datos y, sobre todo, se gana en precisión. Esta ya es una razón para darle importancia a esta cuestión.
  • 7. Es un tipo de software que recopila e interpreta comandos SQL para que se puedan realizar las operaciones apropiadas en la base de datos relacional. El objetivo del motor SQL es crear, leer, actualizar y eliminar datos (CRUD) de una base de datos.
  • 8. ¿Cómo funciona un motor SQL? SQL tiene muchas etapas en las que el proceso de compilación y ejecución de consultas se llevan a cabo. Cada motor de base de datos SQL tiene dos componentes principales: compilador y máquina virtual para ejecutar consultas. Etapas principales de la ejecución completa de una consulta: ● Compilación (análisis, controles y semántica) ● Unión ● Optimización ● Ejecución
  • 9. Compilación - Análisis, controles y semántica Es parte del proceso de compilación, y al compilar el análisis, la instrucción de consulta se tokeniza en palabras individuales y cláusulas apropiadas.
  • 10. Compilación - Análisis, controles y semántica La compilación de semánticas verifica la validación de la declaración y la compara con el catálogo del sistema.
  • 11. Compilación - Análisis, controles y semántica Crea un plan de ejecución generando un tercer árbol de nodos que forman una lista de instrucciones.
  • 12. Optimización y Ejecución La máquina virtual obtiene el código de bytes optimizado y lo ejecuta.
  • 13. Componentes de SQL El lenguaje SQL está compuesto por: ● Comandos. ● Cláusulas. ● Operadores Lógicos. ● Operadores de comparación. ● Funciones de Agregado.
  • 14. Que es una consulta SQL Son una forma de buscar y recopilar información de una o más tablas para conseguir información detallada de una base de datos. Las tres formas de una consulta son: ● Subselección ● Selección completa ● Sentencia-select. Hay tres tipos de combinaciones: ● Combinación Interna. ● Combinaciones externas ● Combinaciones cruzadas.
  • 16. Porque el ORM de Django es lazy Esto significa que ninguna consulta se realiza hasta que el resultado es requerido, esto regularmente en la vista. ¿Qué es N+1 Query? ¿Qué es un QuerySet? Un QuerySet es, en esencia, una lista de objetos de un modelo determinado. Un QuerySet te permite leer los datos de la base de datos, filtrarlos y ordenarlos.
  • 17. Tips para optimizar consultas
  • 18. Uso de herramientas de depuración Herramientas que permitan ver el resultado estadístico de las consultas SQL. ● django-debug-toolbar Puede ver los resultados de depuración directamente en el lado web ● django-extensionsPuede depurar en el entorno de shell
  • 19. Considerar la evaluación lazy del ORM Se debe estar atento en el uso de los QuerySet, ya que solo se ejecutará cuando sea requerido. Evaluado el QuerySet
  • 20. Cuando el QuerySet no es cacheado Cuando el QuerySet es cacheado
  • 21. Cuando el QuerySet no es cacheado Cuando el QuerySet es cacheado
  • 22. Los atributos de modelo no se almacenan en caché Al momento de evaluar un QuerySet, las relaciones externas e inversas no se incluyen en la consulta. Por lo tanto no se incluyen en la caché.
  • 23. Usar select_related() y prefetch_related() al necesitar objetos relacionados con atributos externos/inversos. Estos métodos le indican a Django que necesita los objetos relacionados.
  • 24. No realizar consultas a la DB en bucles Realizar la llama a la DB antes de entrar a un bucle.
  • 25. Uso de iterator() para iterar a través de un QuerySet Si sabe que su QuerySet podría ser muy grande y solo necesita iterarlo una vez, tiene sentido eliminar el uso del caché para preservar la memoria y otros gastos generales.
  • 26. Trabaje en la BD en lugar de Python Su base de datos puede hacer casi cualquier cosa relacionada con los datos mucho más rápido que Python. Django proporciona muchas herramientas para hacer esto posible.
  • 27. Obtener solo lo necesario values()y values_list()proporcione listas, diccionarios o tuplas que evalúen solo los campos que especifique.
  • 28. Usar count() y exists() cuando no se necesite el contenido del QuerySet Solo utilízarlos cuando no necesite evaluar el QuerySet por otros motivos.
  • 29. Uso de delete() y update() cuando sea posible. En lugar de actualizar las instancias del modelo de una en una, delete()y update()permitirle hacerlo de forma masiva.
  • 30. Use los valores de claves externas directamente El ORM de Django recupera y almacena en caché automáticamente las claves externas, así que utilícelas en lugar de provocar una consulta de base de datos innecesaria.
  • 32. Consultas Raw El método de administrador raw() se puede utilizar para realizar consultas SQL sin formato que devuelven instancias de modelo. >>> for p in Person.objects.raw('SELECT * FROM myapp_person'): ... print(p) Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person') Person.objects.raw('SELECT id, first_name FROM myapp_person') people = Person.objects.raw('SELECT *, age(birth_date) AS age FROM myapp_person') >>> for p in people: ... print("%s is %s." % (p.first_name, p.age))
  • 33. Ejecución directa de SQL A veces, incluso Manager.raw() no es suficiente: es posible que deba realizar consultas que no se asignen limpiamente a los modelos, o ejecutar directamente consultas UPDATE , INSERT AR o DELETE . from django.db import connection def my_custom_sql(self): with connection.cursor() as cursor: cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz]) cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz]) row = cursor.fetchone() return row
  • 34. Llamados a procedimientos almacenados Llama a un procedimiento almacenado de base de datos con el nombre dado. Se puede proporcionar una secuencia ( params ) o diccionario ( kparams ) de parámetros de entrada. La mayoría de las bases de datos no son compatibles con kparams . with connection.cursor() as cursor: cursor.callproc('test_procedure', [1, 'test'])