diseño de aplicaciones

24
UNIDAD 4 DISEÑO DE APLICACIONES

Upload: utn

Post on 26-Jun-2015

2.401 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Diseño de aplicaciones

UNIDAD 4

DISEÑO DE APLICACIONES

Page 2: 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.

Page 3: Diseño de aplicaciones

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.

Page 4: Diseño de aplicaciones

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?

Page 5: Diseño de aplicaciones

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?

Page 6: Diseño de aplicaciones

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‘;

Page 7: Diseño de aplicaciones

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.

Page 8: Diseño de aplicaciones

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.

Page 9: Diseño de aplicaciones

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;

Page 10: Diseño de aplicaciones

Procesamiento de set-a la vez y cierre relacional

Cierre Relacional

Page 11: Diseño de aplicaciones

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.

Page 12: Diseño de aplicaciones

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.

Page 13: Diseño de aplicaciones

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..

Page 14: Diseño de aplicaciones

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.

Page 15: Diseño de aplicaciones

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.

Page 16: Diseño de aplicaciones

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.

Page 17: Diseño de aplicaciones

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.

Page 18: Diseño de aplicaciones

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.

Page 19: Diseño de aplicaciones

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.

Page 20: Diseño de aplicaciones

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.

Page 21: Diseño de aplicaciones

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.

Page 22: Diseño de aplicaciones

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.

Page 23: Diseño de aplicaciones

Sistemas de procesamiento de transacciones

El uso de un servidor de base de datos

Page 24: Diseño de aplicaciones

Sistemas de procesamiento de transacciones

El uso de un servidor de transacciones