1.264 Tema 8. SQL (cont.) ODBC



Documentos relacionados
1.264 Tema 7. Introducción a SQL

Consultas con combinaciones

Estructura de Bases de datos. Leonardo Víquez Acuña

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

T12 Vistas y tablas temporales

- Bases de Datos - - Diseño Físico - Luis D. García

Introducción a las redes de computadores

1

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Vistas en postgresql

Componentes de Integración entre Plataformas Información Detallada

Configuracion Escritorio Remoto Windows 2003

CURSO DE SQL SERVER 2005

APOLO GESTION INTEGRAL.

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Toda base de datos relacional se basa en dos objetos

Programa de Ayuda EMCS Instalación Versión SQL Server Versión Marzo 2010

Microsoft SQL Server 2005

WINDOWS : TERMINAL SERVER

serra Access y SQL Server Qué es mejor en cada caso? Valentín Playá, Serra GTS 22 de enero de 2009 Bases de datos 1

Oracle 12c DISEÑO Y PROGRAMACIÓN

Utilidades de la base de datos

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

CURSO DE ACCESS 2007 DESARROLLO DE APLICACIONES

CAPITULO 8. Planeamiento, Arquitectura e Implementación

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Guía de instalación de la carpeta Datos de IslaWin

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Arquitectura de sistema de alta disponibilidad

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Tutorial: Primeros Pasos con Subversion

1. DML. Las subconsultas

MANUAL COPIAS DE SEGURIDAD

Tecnología de la Información y la Comunicación. Base de datos. Consultas

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Ventajas, Características y Aplicaciones de los SGBD Distribuidos.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

La Digitalización del Ayuntamiento. Gestión Integral

Soporte y mantenimiento de base de datos y aplicativos

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

Curso Online de Microsoft

Bases de Datos 3º Informática de Sistemas

Tema 11 Bases de datos. Fundamentos de Informática

Puesta en Marcha versión Monousuario

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

MANUAL SINCRONIZADOR LEKOMMERCE FACTUSOL

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Sub consultas avanzadas

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Creación y administración de grupos locales

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

SQL (Structured Query Language)

8 SQL SERVER 2008 RA-MA

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Guía práctica de SQL

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Ejercicios - Persistencia en Android: ficheros y SQLite

Microsoft Access proporciona dos métodos para crear una Base de datos.

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

Control de accesos autónomo por huella dactilar

Transacciones y bloqueos en SQL-Server

Guía de Laboratorio Base de Datos I.

GENERACIÓN DE TRANSFERENCIAS

Móvil Seguro. Guía de Usuario Terminales Android

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Instrucciones de instalación de IBM SPSS Modeler (licencia de usuario autorizado)

Base de datos relacional

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Capítulo 9. Archivos de sintaxis

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

3 Consultas y subconsultas

Roles y Características

INSTALACIÓN DE TecLocal Su acceso con TecCom

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

CONSULTAS BASICAS EN SQL SERVER

La Tecnología líder en Simulación

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

Para detalles y funcionalidades ver Manual para el Administrador

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

INSTALACIÓN DE MEDPRO

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Base de datos en Excel

III. ADMINISTRACIÓN DE ORACLE.

Gestión completa del rendimiento

ing Solution La forma más efectiva de llegar a sus clientes.

Creación y administración de grupos de dominio

LABORATORIO 10. COPIAS DE SEGURIDAD, RESTAURACIÓN Y RECUPERACIÓN DE UNA BD

WINDOWS 98/Me EL EXPLORADOR DE WINDOWS IV

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Control de presencia para terminal por huella dactilar

Microsoft Dynamics. Migración de FRx 6.7 a Management Reporter for Microsoft Dynamics ERP

Transcripción:

1.264 Tema 8 SQL (cont.) ODBC

Subconsultas Las subconsultas de SQL nos permiten utilizar los resultados de una consulta como parte de otra. Subconsultas: A menudo, constituyen un modo natural de escribir una instrucción. Permiten dividir una consulta en partes y reconstruirla. Permite realizar algunas consultas que de otro modo no se podrían llevar a cabo.

Subconsultas Obtener un listado de las oficinas cuyo cupo de ventas excede la suma de los cupos individuales de los vendedores: SELECT Ciudad FROM Oficinas WHERE Objetivo >?????? es la suma de los cupos de los vendedores" o: SELECT SUM(Cupo) FROM RepVentas WHERE OfiRep = NumOfi Al combnarlas se obtiene lo siguiente: SELECT Ciudad FROM Oficinas WHERE Objetivo > (SELECT SUM(Cupo) FROM RepVentas WHERE OfiRep = NumOfi);

Subconsultas Las subconsultas siempre figuran como parte de las cláusulas WHERE (o HAVING). Una subconsulta sólo puede dar lugar a una columna de datos como resultado: En la subconsulta SELECT sólo puede haber un campo. No permite ORDER BY; no tendría sentido. Tampoco admite UNION; sólo se permite un SELECT. A menudo, hace referencia al nombre de una columna de una tabla principal de la subconsulta: Esto determina la fila de la tabla principal para la que se está ejecutando la subconsulta. Se conoce como referencia exterior. En nuestro ejemplo, es OfiRep= NumOfi de la tabla Oficinas.

Vistas Tablas virtuales que muestran los datos a los usuarios de forma no normalizada. NO hay distintas copias de los datos; hacen referencia a los datos de las tablas subyacentes. La base de datos almacena la definición de las vistas. Los datos se actualizan cuando se actualizan las tablas subyacentes. Ventajas: Diseñadas para cubrir necesidades específicas de los usuarios. Las consultas son mucho más simples para los usuarios en vistas diseñadas para ellos. Seguridad: sólo permite acceder a los datos de las vistas. Independencia: evita que el usuario o el programa modifiquen las tablas subyacentes.

Vistas CREATE VIEW PedidosClientes AS SELECT NumClien, Empresa, Nombre, NumPedido, Prod, Cant, Im porte FROM Clientes, RepVentas, Pedidos WHERE RepClien = NumRep AND NumClien = Clien (SQL estándar) Pedidos NumPedido Clien Prod Cant Importe 88 211 ABAC 7 31.000$ 99 522 CDE 2 4.000$ Clientes NumClien Empresa RepClien LimitCredit 211 QGG Co 89 50.000$ 322 DBO Co 89 40.000$ PedidosClientes NumClien Empresa Nombre NumPedido Prod Cant Importe 211 QGC Co Jen Smith 88 ABAC 7 31.000$ 322 DBO Co Jen Smith 99 CDE 2 4.000$ RepVentas NumRep Nombre OfiRep Cupo Ventas 53 Bill Smith 22 100.000$ 0$ 89 Jen Smith 44 50.000$ 130.000$

Detalles de las vistas Posibilidad de modificar las vistas e invalidarlas: P. ej.: vista de libros de menos de 5 dólares. Qué sucede si actualizamos el precio de un libro a 5,99 dólares a través de la vista? Desaparece! Esto se evita añadiendo: WITH CHECK OPTION No se pueden actualizar todas las vistas. Una vista es de sólo lectura si: DISTINCT forma parte de la instrucción SELECT. Contiene expresiones (medias, totales, etc.). Hace referencia a vistas que no son actualizables. Contiene claúsulas GROUP BY o HAVING. En ocasiones: hace referencia a más de una tabla (fracaso del objetivo).

Vistas en MS Access Las vistas se construyen y almacenan como consultas: Construir la instrucción SELECT, incluyendo las relaciones (JOINS) entre las tablas en caso necesario. Guardar la consulta, dándole un nombre. A continuación, se puede realizar una consulta sobre la consulta anterior (vista), así como utilizarla como fuente de datos de páginas Web, a modo de tabla. Utilizaremos las vistas (consultas) en FrontPage, dado que presenta algunos errores con respecto a las relaciones (JOINS).

Ejercicios de repaso Mostrar todos los clientes con pedidos o límites de crédito > 50.000 dólares. Es posible listar al cliente una sola vez? Eliminar a los representantes de las oficinas de ventas de Nueva York (NY) con cupos de más de 40.000 dólares. Consejo: recuerde que debe eliminarlos a partir de (FROM) una sola tabla. Utilice una subconsulta.

Soluciones Mostrar todos los clientes con pedidos o límites de crédito > 50.000 dólares: Es posible listar al cliente una sola vez, con los límites de crédito y los importes de los pedidos? Sí, pero no es fácil. SELECT DISTINCT NumClien FROM Clientes, Pedidos WHERE NumClien = Clien AND (LimitCredit>50000 OR Importe>50000); Eliminar a los representantes de las oficinas de ventas de Nueva York (NY) con cupos de más de 40.000$: Consejo: recuerde que debe eliminarlos a partir de (FROM) una sola tabla. Utilice una subconsulta. DELETE * FROM RepVentas WHERE NumRep IN (SELECT NumRep FROM RepVentas, Oficinas WHERE NumOfi = OfiRep AND Cupo>40000 AND Estado="NY );

Índices Un índice es un objeto de datos independiente presente en la base de datos que ordena las filas de la tabla para facilitar una vista rápida: Cada índice de cada tabla es un objeto independiente. Las claves primarias y secundarias se indexan automáticamente. Acceso rápido a columnas indexadas: Cada vez que se actualiza una fila, se actualiza el índice, por lo que el uso de índices ralentiza las operaciones de modificación, inserción y eliminación. En la práctica, se deben utilizar un máximo de 3 ó 4 índices por tabla. En caso de necesitar más, se deben añadir y eliminar según sea necesario. Si la base de datos se usa, en su mayoría, para consulta (lectura), es recomendable utilizar muchos índices, pues se agiliza el rendimiento. Si la base de datos se actualiza con frecuencia, conviene añadir el menor número de índices posible. Índices agrupados (clustered): Ordenan las filas físicamente según un solo índice con el fin de maximizar la velocidad de acceso al disco.

Ejemplo de índices Base de datos de clientes: El ID de cliente es clave primaria. También queremos realizar búsquedas por: Nombre del cliente (último, primero). Ciudad/Estado. Código postal. Dirección. Indexar los campos nombre, ciudad/estado, CP y dirección: Cuatro índices: ralentiza la inserción, actualización y eliminación de datos, pero agiliza la consulta de la base de datos. Si la base de datos de clientes es bastante estable, está bien. Seguir la misma lógica para el catálogo de piezas, la facturación de materiales, etc. Los motores de búsqueda de Internet utilizan "motores de recuperación de texto": Indexan todas las palabras de la base de datos; cuentan las coincidencias y filas iguales. Los últimos avances (frecuencia de los enlaces, uso ) posibilitan esto.

Opciones de seguridad: Seguridad Utilizar el login/contraseña del sistema operativo para identificar al usuario (menor seguridad): El usuario puede acceder a todas las bases de datos y a todas las tablas. Utilizar un login/contraseña para la base de datos (mayor seguridad): Se restringe el acceso a otras bases de datos y tablas, pero permite utilizar todas las aplicaciones. Seguridad a nivel de aplicación (aún más seguro, pero difícil de administrar): Las aplicaciones deben consultar una base de datos común para ver si el usuario está o no autorizado; es más centralizado que de BD a BD. Seguridad a nivel de red (lo más seguro, apenas viable hoy en día): Utiliza una infraestructura de clave pública (PKI) y de directorios, que consiste en la encriptación. Es un elemento de vanguardia: caro y complicado. Clases de usuarios: superusuario (DBA), propietario y usuario. Asignación de privilegios sobre la base de datos (permisos): GRANT y REVOKE. P. ej.: GRANT ALL ON NombreTabla TO PUBLIC WITH GRANT OPTION En las instrucciones GRANT y REVOKE es importante el orden. El último es el que domina. MS Access no soporta esto.

Transacciones Un grupo de operaciones se debe tratar a menudo como una unidad atómica: Iniciar la transacción: Insertar CabeceraPedido. Mientras hay otros DetallesPedido (elementos de la línea): Seleccionar la pieza. Actualizar el inventario de las piezas. Insertar la fila DetallesPedido. Completar la transacción. Propiedades de la transacción (ACID): A atómica- todo o nada (recuperación). C coherencia de un estado de coherencia a otro (integridad). I aislamiento no permite que otra transacción visualice los cambios no realizados (concurrencia). D perdurable una vez realizados, los cambios son permanentes.

Transacciones Las bases de datos multiusuario tienen otros problemas relacionados con las transacciones. Dos acciones de la base de datos entran en conflicto si una o ambas son operaciones escritas. Actualizaciones perdidas: Hay 7 piezas en el inventario. Las transacciones 1 y 2 leen simultáneamente 7 como la cantidad actual. La transacción 1 acaba primero, añade 3 piezas y escribe 10 en la cantidad. La transacción 2 acaba después, elimina 5 piezas y escribe 2 en la cantidad. Cambios no realizados: La transacción 1 añade 3 piezas y escribe 10 en la cantidad. La transacción 2 lee 10 como cantidad. La transacción 1 se cancela (vuelve atrás) y deja a la transacción 2 con datos erróneos.

Transacciones Las bases de datos utilizan protecciones para las concurrencias. Un esquema sencillo es el siguiente: Las escrituras obtienen protección exclusiva sobre un registro, evitando otras lecturas o escrituras. Las lecturas obtienen protecciones no exclusivas, que permiten otras lecturas, pero evitan que una escritura obtenga protección exclusiva. Las bases de datos utilizan archivos log para la recuperación: Además de realizarse todos los cambios en la base de datos, éstos se escriben en un archivo log (esto es un cuello de botella clave en su arquitectura). Los cambios no se realizan hasta que se ha escrito el log para lograr un almacenamiento estable: Por lo general, los cambios se realizan antes de que las tablas se actualicen realmente en el disco. Si se cancela una modificación, se lee el log para deshacer las transacciones. Si falla el sistema o el disco, se ejecuta el log desde el último punto de comprobación para restaurar la base de datos. Desactivar los log durante la carga y la recuperación de datos.

Rendimiento Programas para analizar el rendimiento (desde TPC-A hasta H): www.tpc.org Cachés: los discos son lentos! Almacenar páginas (a menudo 8KB de datos) en la memoria de acceso rápido. Optimizadores de consultas: Hay muchas formas de establecer relaciones; depende del tamaño de las tablas, las características de las claves (longitud, "unicidad"), etc. Estadísticas de los índices: UPDATE STATISTICS (actualizar estadísticas).

API de la conectividad abierta de bases de datos (ODBC) Etapa inicial: SQL incrustado (ESQL) en cada servidor de bases de datos (a principios de la década de los 90). Compilado en aplicaciones de servidor, no puede ser modificado por el usuario final. No funciona bien con múltiples bases de datos. Segunda etapa: aparecen las aplicaciones cliente-servidor (a finales de los 90): Cada distribuidor de bases de datos ofrecía una interfaz de programación de aplicaciones (API) que permitía que los programas cliente realizaran consultas a las bases de datos. La API de cada distribuidor era diferente, por supuesto. Etapa actual: ODBC (desde finales de los 90 hasta ahora): La API común de Windows es capaz de acceder a la mayoría de las bases de datos: Oracle, SQL Server, Sybase, DB2 o Informix. JDBC es el equivalente para el entorno Java.

API ODBC La librería de las llamadas a la función ODBC para conectar una aplicación (Web, Windows u otra) a un SGBD, ejecuta sentencias SQL y recupera los resultados. Sintaxis SQL basada en el estándar SQL-92. Conjunto de códigos de errores estándar. Modo estándar de conectar y acceder a un SGBD. Representación estándar de los tipos de datos. Métodos estándar para la conversión de tipos de datos. ODBC tiene una funcionalidad de núcleo, de capa 1 y de capa 2 para entenderse con interfaces sencillas y sofisticadas. Estas características ayudan a superar muchos de los problemas del SQL no estándar mencionados en el tema anterior.

Arquitectura ODBC

Arquitectura ODBC Aplicación (Windows o Web): Lleva a cabo el procesamiento. Llama a las funciones ODBC para transmitir las sentencias SQL y recupera los resultados. Administrador de controladores: Carga y descarga los controladores solicitados por la aplicación. Procesa algunas llamadas a las funciones ODBC (supervisor). Controlador ODBC: Procesa la mayoría de las llamadas a las funciones ODBC. Envía las peticiones SQL a fuentes de datos específicas: Modifica la petición de la aplicación para adecuarla a la sintaxis SQL de la fuente de datos. Devuelve los resultados a la aplicación. Fuente de datos.

Aplicación Solicita la conexión o establecimiento de sesión con la fuente de datos. Envía la petición SQL a la fuente de datos. Ubica las zonas de almacenamiento y define los formatos de los resultados de las peticiones SQL. Solicita los resultados. Procesa los datos y los errores. Si la aplicación requiere un proceso de transacción, solicita una confirmación o cancelación para aceptar o rechazar los resultados de la transacción. Una vez completado, finaliza la conexión a la fuente de datos.

Administrador de controladores El administrador de controladores es una librería de enlaces dinámicos (DLL) ofrecida por Microsoft. Carga y descarga los controladores ODBC. Cuando la aplicación solicita una lista con los nombres de las fuentes de datos instaladas, el administrador de controladores recupera la información del registro y devuelve la lista. Procesa las llamadas de inicialización y las validaciones de parámetros y secuencia para las llamadas a la función ODBC.

Controlador El controlador es una DLL (librería), escrita por Microsoft o por el distribuidor de la base de datos, que implementa las llamadas a la función ODBC. Conversión de datos a los estándares ODBC. Conversión del código de errores a los estándares ODBC. Manejo de la transacción. Acceso a archivos externos al SGBD como son los archivos de Excel o los de texto: Soporte limitado para SQL: sólo SELECT, INSERT, CREATE y DROP. Amplia gama de funcionalidad en diferentes controladores: Compueban los niveles de conformidad: ODBC y SQL ( no es igual!). La API de ODBC proporciona funciones para determinar las capacidades.