Diseño de aplicaciones
Transcript of Diseño de aplicaciones
UNIDAD 4
DISEÑO DE APLICACIONES
Diseño de Aplicaciones
La interrelación entre el lenguaje SQL y los lenguajes de programación atenta al rendimiento y disponibilidad de los datos.Por esta razón cada aplicación debe estar diseñada para garantizar la integridad de los datos que modifica. El rendimiento tiene que ser tratado como un problema de diseño. Los problemas de rendimiento causados por las aplicaciones no deben dejarse para que los resuelva el DBA.
Desarrollo de Aplicaciones de Base de Datos y SQL
Las decisiones tomadas durante el diseño de la aplicación tendrán impacto en la utilidad de la aplicación final. Un mal diseño de la aplicación implica posiblemente que el código tenga que ser rediseñado y recodificado cuando es ineficiente, ineficaz o difícil de utilizar.
Desarrollo de Aplicaciones de Base de Datos y SQL
Los diseñadores de Aplicaciones deben conocer los siguientes aspectos:
¿Cómo se almacenan los datos en una base de datos relacional?
¿Cómo codificar instrucciones SQL para acceder y modificar datos en la base de datos?
¿Cómo el SQL difiere de los lenguajes de programación tradicionales?
¿Cómo incrustar sentencias SQL en un lenguaje de programación anfitrión?
¿Cómo optimizar el acceso a la base de datos cambiando el SQL y los índices?
¿Cómo usar métodos de programación para evitar posibles problemas de procesamiento de base de datos?
SQL
Es un lenguaje de consulta Estructurado, y es el estándar de facto para el acceso a Bases de Datos relacionales. ¿Por qué SQL es generalizado en el ámbito de acceso a Base de Datos relacionales?
SQL
Algunas de las principales razones son las siguientes: SQL es un lenguaje de alto nivel que
proporciona un mayor grado de abstracción que los lenguajes tradicionales de programación.
Optimiza las consultas. Usa una sintaxis simple en inglés.
Ejemplo:SELECT deptnum, deptname FROM dept WHERE supervisornum = '903‘;
SQL
Principales Razones Previo a ejecutar la consulta, se verifica la
sintaxis. Opera sobre un conjunto de datos solo con
una instrucción. Su capacidad para realizar tareas va en
aumento.
SQL
Toda operación de SQL se realiza sobre tablas y se obtiene como resultado otra tabla.También se trabaja sobre conjuntos de filas con una instrucción.
Joins vs. Subqueries (Unión vs. Subconsultas)
Un ejemplo de la flexibilidad de SQL es la forma en que una sola
instrucción puede acceder a datos de varias tablas. SQL
proporciona dos métodos: unión y subconsultas. Sin embargo, una
subconsulta se puede convertir en un equivalente a unirse. El
concepto detrás de los dos tipos de consultas es para recuperar
datos de varias tablas sobre la base de criterios de búsqueda que
concuerdan con los datos en las tablas.
Diferentes formas de junturas
Ejemplos:Subqueries
SELECT empNro, nombre, apellido FROM empleado WHERE deptNro IN
(SELECT deptNro FROM departmento WHERE deptnombre = ‘Técnico');
Joins
SELECT empNro, nombre, apellido FROM empleado e , departmento d
WHERE e. deptNro =d. deptNro AND deptnombre = ‘Técnico;
Procesamiento de set-a la vez y cierre relacional
Cierre Relacional
Procesamiento de set-a la vez y cierre relacional
Problema del SQL.
SQL trabaja con grupos de filas y los lenguajes de programación con una sola fila a la vez.
Los DBMS proveen cursores para seleccionar una fila.
Incorporación de SQL en un programa
Algunos lenguajes anfitriones, como COBOL aceptan directamente instrucciones SQL. Otros necesitan de un API como ODBC. Ejemplo: el lenguaje C.Se debe tratar de minimizar el número de lenguajes de programación diferentes que utilice, ya que hará más fácil el soporte y mantenimiento de sus aplicaciones.Un DBA debe ser capaz de leer y entender el código del programa para cada lenguaje utilizado para acceder a bases de datos dentro de la organización.Se debe usar con cuidado las herramientas CASE, porque su código autogenerado puede no ser óptimo para la DBMS utilizada.
SQL Middleware y APIs
Existe varios API’s (Application Programming Interfaces) populares que utilizan los programadores de bases de datos, incluyendo ODBC, JDBC, SQLJ, y OLE DB.
Las API’s se utilizan para incrustar sentencias SQL en un lenguaje de programación de acogida, como por ejemplo Java, C, Visual Basic, etc..
SQL Middleware y APIs
Los ODBC proveen rutinas para asignar y quitar recursos, controlar conexiones a la Base de Datos, ejecutar instrucciones SQL, diagnóstico y control de transacciones.
Los JDBC al igual que los ODBC son conjuntos de clases e interfaces que dan acceso a datos relacionales.
Codificación de SQL para mejorar el rendimiento
Una sólida comprensión de la sintaxis SQL, la estructura de la base de datos y el lenguaje de programación es imprescindible.Es mucho mejor para filtrar los datos no deseados en el nivel del DBMS que hacerlo dentro del programa .Es recomendable tratar a los datos a nivel de SQL , en vez de a un nivel de aplicación para evitar tráfico de red. Por ejemplo, es mejor agregar más cláusulas WHERE de SQL que SELECT que simplemente seleccionar todas las filas y filtrar los datos mediante programación.
Definición de las Transacciones
Una transacción es una unidad atómica de trabajo con respecto a la recuperación y la coherencia.Una transacción lógica lleva a cabo un proceso de negocios completo normalmente en nombre de un usuario en línea. Puede consistir en varios pasos y puede abarcar más de una transacción física. Los resultados de la ejecución de una transacción registrará los efectos de un proceso de negocio completo. Los datos de la base de datos deben ser correctos y apropiados después de la ejecución de la transacción.
Definición de las Transacciones
Las transacciones tienen propiedades ACID.
ACID es un acrónimo de Atomicidad, Consistencia, Aislamiento y Durabilidad. Cada una de estas cuatro cualidades son necesarias para que una transacción se diseñe correctamente.
• Atomicidad significa que una transacción debe mostrar un comportamiento "todo o nada“. O se ejecutan todas la instrucciones de una transacción correctamente o no se realiza ninguna. La atomicidad conserva la "integridad" del proceso de negocio.
Definición de las Transacciones• Consistencia se refiere al estado de los datos antes y
después de que la transacción se ejecute. Una transacción mantiene la consistencia del estado de los datos.
• Aislamiento significa que varias transacciones se pueden ejecutar al mismo tiempo sin que se crucen. Las transacciones en paralelo tienen la ilusión de que no hay concurrencia.
• Durabilidad los cambio realizados por una transacción perduran luego de que ésta termine. Una transacción no afectará el estado de los datos si la operación finaliza de forma anómala. Los datos se mantendrán ante cualquier fracaso.
Definición de las Transacciones
Ejemplo:Considere una aplicación bancaria. Suponga que usted desea retirar $ 50 de su cuenta en el Banco. Este "proceso de negocio" requiere una transacción a ejecutar. Usted solicita el dinero ya sea en persona entregando una hoja a un cajero de banco o mediante el uso de un cajero automático. En respuesta se realizará la siguiente transacción:
1. Se revise su cuenta para asegurarse de que tiene los fondos
necesarios para retirar la cantidad solicitada.
2. Si no lo hace, negar la solicitud y detener, de lo contrario continuar
con el proceso.
3. Debitar la cantidad solicitada de su cuenta corriente.
4. Producir un recibo por la transacción.
5. Le entrega la cantidad solicitada y el recibo.
Directrices de transacciones
Una transacción debe ser de corta duración, ya que entrelaza los recursos compartidos. También no debe permitir ingreso de datos del usuario en media transacción, porque conlleva bloqueos de larga duración que disminuye el rendimiento.
Varias unidades de trabajo conforman una transacción.
Unidad de Trabajo
Unidad de trabajo (UOW) es otro término que describe una operación de transacción física. Un UOW es una serie de instrucciones y mensajes que al ejecutarse, garantiza la integridad de datos. Así que un UOW y una transacción son similares en concepto. Sin embargo, un UOW no es necesariamente un proceso de negocios completo, puede ser un subconjunto de los procesos de negocio, y un grupo de unidades de trabajo pueden constituir una sola transacción.
Sistemas de procesamiento de transacciones TP
Un servidor de transacciones es ideal para aplicaciones distribuidas de alto rendimiento en ambientes heterogéneos.
El sistema TP proporciona un entorno para desarrollar y ejecutar la lógica de presentación y componentes de lógica de negocios. Un sistema de TP es útil para aplicaciones de misión crítica que requieren un alto volumen de usuarios concurrentes con mínimo tiempo de inactividad. Utilizado correctamente, un sistema de TP puede controlar eficientemente la ejecución simultánea de muchos programas de aplicación que sirve a un gran número de usuarios en línea.
Sistemas de procesamiento de transacciones
El uso de un servidor de base de datos
Sistemas de procesamiento de transacciones
El uso de un servidor de transacciones