IN60E Aplicaciones de Bases de Datos en la Empresa y Minería de Datos Otoño 2008 Bases de Datos: Teoría General y Aplicaciones Universidad de Chile Departamento de Ingeniería Industrial Profesor: Richard Weber (rweber@dii.uchile.cl) Prof. Auxiliar: Gastón L Huillier (glhuilli@dcc.uchile.cl) 1
Motivación Bases de Datos permiten almacenar datos Datos son utilizados para la generación de Información Información utilizada para generar conocimiento. Aplicaciones de Bases de Datos en la Empresa. Minería de Datos. Proceso KDD. 2
Historia Bases de Datos 1963 Primera vez utilizado el termino Bases de Datos. 1970 E.F. Codd propone modelo Entidad Relación 1974 IBM desarrolla las bases del lenguaje SQL 1979 Primeras BD comerciales (Oracle, IBM) 1989 PostgreSQL (Universidad de California, Berkley) 1995 MySQL (Suecia) 90s Bases de datos Orientadas a Objetos, Espaciales 90s Knowledge Discovery in Databases (KDD) 2000s Bases de datos XML, VLDBs, SOA, Grid 3
Definiciones Base de Datos: Un conjunto lógicamente coherente de datos relacionados, construido para una cierta aplicación. Sistema Administración de Bases de Datos (SABD): Software que permite a las bases de datos ser definidas, construidas y operarlas. Diagrama Entidad Relación (ER): Modelo lógico de la base de datos para representar información de manera estructurada. Structured Query Language (SQL): Lenguaje de consulta estructurado para interactuar con la BD. 4
Diagrama Entidad Relación Representación conceptual de datos estructurado mediante Entidades y Relaciones. Para implementar un modelo ER es necesario: o Requerimientos del sistema usuario, en cuanto a las salidas, entradas y transformaciones de contenido. o Parámetros clave de búsqueda, ordenamiento, tiempos de respuesta (estructura física del modelo). 5
Lenguaje de consulta SQL Permite obtener cualquier conjunto de datos presentes en una base de datos relacional mediante una sentencia. SELECT [DISTINCT ALL] {* [column_expression [AS new_name]] [,...] } FROM table_name [alias] [,...] [WHERE condition] [GROUP BY column_list] [ HAVING condition] [ORDER BY column_list] FROM Especifica las tablas que se usaran WHERE Establece los filtros. SELECT Especifica las columnas que se consultaran. GROUP BY Permite agrupar los datos. HAVING Permite generar filtros sobre los grupos de datos. ORDER BY Especifica el orden de los datos. 6
ACID Control de concurrencia en BDs Atomicidad: o Grupo lógico de una o más sentencias de una operación indivisible o atómica. (i.e. Se realizan todas las sentencias o no se realiza ninguna). Consistencia: o Los datos son consistentes antes que una transacción se inicie, y la transacción siempre abandona los datos en un estado consistente. Aislamiento (Isolation): o Transacciones son invisibles para las demás transacciones. Durabilidad: o Después que la transacción se ejecute, los efectos que causa en la base de datos persiste, aún así si el sistema falla (caídas de sistema). 7
en las Empresas: Escenario Actual [1] Screen Scrape Message Queue Download File Screen Scrape ORB Download File Sockets Message CICS Gateway Transaction File Transaction File Message Queue Screen Scrape Message Sockets Screen Scrape APPC Transaction File CICS Gateway Transaction File Download File RPC APPC ORB Message Queue RPC 8
en las Empresas: Escenario Actual [2] BDs interactúan sin excepciones con todos los departamentos y áreas dentro de las empresas. Toda transacción realizada en una empresa queda registrada en algún tipo de BD. Concepto de BD es más amplio que un SABD relacional. Finanzas RRHH Proyectos Marketing Ventas Ordenes Servicios Producción Cadena de Suministro Compras 9
Bases de datos Operacionales: On Line Transactional Processing (OLTP) Operaciones transaccionales del día a día. Responden a la gran cantidad de transacciones presentes en las empresas. Transacciones cortas de poca información. Ejemplos: Aplicaciones o Enterprise Resource Planning (ERPs) o Manufacturing Resource Planning (MRPs) o Portales y aplicaciones Web (miles o millones de usuarios cada día) o Transacciones Bancarias (Instituciones Financieras) o Interacción con Puntos de Ventas (POS) o OLTP integrados con Web Services (SOA) Files Excel, XML 10
OLTP en Instituciones Bancarias Coordinación de transacciones en cajeros automáticos como depósitos, transferencias, saldos y retiros de dinero. Pagos en supermercados con tarjetas de débito o crédito. Compras de productos o mercadería a través de internet. 11
OLTP en Retail y Tiendas Comerciales Coordinación de la información en Puntos de Venta (POS) Integración de sitios E-Commerce y POS con bodegas Interacción transaccional con bancos e instituciones financieras (Redbank, VISA, MasterCard). 12
OLTP, Web Services y SOA Sistemas operacionales integrados con Web Services (WS). SOA: Arquitectura Orientada a los Servicios. Orquestación de WS permite integrar servicios que proveen distintas empresas Caso MapCity y servicios logísticos Caso crédito bancario. Otros ejemplos: o Sinacofi o Publiguías o Dicom 13
Aplicaciones[1]: Grid Computing Alta disponibilidad al distribuir el almacenamiento en varios puntos dentro de la grilla. Mayor capacidad de procesamiento al integrar distintos servidores para realizar operaciones. Computación distribuida. Storage Grid Database Grid 14
Aplicaciones[1]: Grid Computing Ejemplos: o Real Cluster (Oracle) DeRemate.com o Sistemas 24x7 Instituciones financieras Computación Distribuida o SETI@home (Search for Extraterrestrial Intelligence) http://seti.astroseti.org/setiathome/ o TSP distribuido (instancia de 48 ciudades) http://bob.myisland.as/tsp/ o Rossetta@home (Funciones y Estructuras de Proteínas) http://boinc.bakerlab.org/rosetta/ 15
Aplicaciones[2]: Bases de datos XML XML: Extensible Markup Languaje Permite integrar de manera natural distintos sistemas presentes en las empresas, mejorando la compatibilidad entre aplicaciones. Utilizado actualmente en gran cantidad de empresas disminuyendo complejidad de comunicación entre sistemas. 16
Aplicaciones[4]: VLDBs VLDBs: Very Large Data Bases. Manejo de grandes volúmenes de información (Información > 10 TB). Aplicaciones: o Costanera Norte (Intelligent Transport Systems) Manejo de imágenes ( flujo > 5 TB diarios) o ALMA Project http://www.alma.nrao.edu/ o NCBI Genomas varios http://www.ncbi.nlm.nih.gov/sites/gquery o Google 17
Aplicaciones[5]: Knowledge Discovery in Databases (KDD) 18
Aplicaciones[6]: Data Warehousing 19