Download Memoria - Grupo de Procesamiento del Lenguaje y Sistemas de
Document related concepts
Transcript
Gustavo Real García Adrián García Rodríguez INTRODUCCIÓN Los sistemas de gestión de bases de datos(SGBD) son un tipo de software específico, dedicado a servir de interfaz entre las bases de datos, el usuario y las aplicaciones que la utilizan. Este tipo de software se utiliza para manejar de forma clara y sencilla nuestras bases de datos. Para ello tienen como objetivo la abstracción de la información, la consistencia, la seguridad o el tiempo de respuesta a las peticiones que se le hagan. VENTAJAS e INCONVENIENTES – Ventajas: Proveen lenguajes e interfaces que simplifican la recuperación de los datos almacenados, y nos ayudan a manejar grandes cantidades de datos. – Por el contrario este tipo de software tiene como inconveniente que para pocos datos y pocas consultas a realizar no es muy rentable usar los SGBD o que se debe de conocer el lenguaje de cada uno. NUDO Los SGBD que vamos a presentar se pueden clasificar en 2 tipos: Open-Source(Código abierto): Mysql , SQLite y Postgres Código propietario: Oracle y SQLServer MYSQL: creador -> MySQL AB tipo de licencia -> Licencia Dual, depende el uso (no se sabe hasta cuando, ya que la compro Oracle). Sin embargo, existen 2 versiones: una gratuita que sería equivalente a la edicion "express" SQL server de Windows y otra más completa de pago con la licencia GNU GPL , obliga a que la distribución de cualquier producto derivado (aplicación) se haga bajo esa misma licencia. Si un desarrollador desea incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite hacer justamente eso. Versión 5.0.22 Esta disponible para los SO mas conocidos, como win, linux o mac os Existen múltiples API's para trabajar con mysql en los diversos lenguajes de programación, pero en el caso de que no existiese para ese lenguaje, también existe un interfaz ODBC (es un estándar de acceso a Bases de datos desarrollado por Microsoft Corporation, el objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué Sistema Gestor de Bases de Datos), llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. APLICACIONES: Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL CARACTERISTICAS: 1-Disparadores (triggers) Definicion Un trigger (o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción, actualización o borrado. Usos Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL. Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc. Permite implementar programas basados en paradigma lógico (sistemas expertos, deducción). Ejmplo CREATE TRIGGER ver_salario BEFORE UPDATE ON empleados REFERENCING NEW ROW AS n, OLD ROW AS o FOR EACH ROW IF n.salario <> o.salario THEN END IF; Distintos motores de almacenamiento Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial) MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede dar problema de integridad referencial. Tablas HEAP solamente SQLite Creador -> D. Richardo Hippy tipo de licencia -> Dominio público Version -> 3.6.23.1 Esta disponible para los SO mas conocidos, como win, linux o mac OS A diferencia de los sistemas de gestión de base de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones. Esto reduce la latencia(retraso) en el acceso a la base de datos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host. En su versión 3, SQLite permite bases de datos de hasta 2 Terabytes de tamaño, y también permite la inclusión de campos tipo BLOB (Binary Large OBjects, objetos grandes binarios) son elementos utilizados en las bases de datos para almacenar datos de gran tamaño que cambian de forma dinámica. Características SQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales. Integridad referencial: Las limitaciones de CHECK y FOREIGN KEY son analizadas pero No forzadas. No soporta transacciones anidadas Características de SQL que SQLite no implementa – Right and full outer join Right outer join: rel resultado de esta operación siempre contiene todos los registros de la tabla de la derecha (la segunda tabla que se menciona en la consulta), aun cuando no exista un registro correspondiente en la tabla de la izquierda, para uno de la derecha. Full outer join: Esta operación presenta los resultados de tabla izquierda y tabla derecha aunque no tengan correspondencia en la otra tabla. La tabla combinada contendrá, entonces, todos los registros de ambas tablas y presentará valores nulos para registros sin pareja. – Complete alter table support. Unicamente están disponibles: renombrar la tabla y añadir columna. – Complete trigger support – Grant and revoke. Al no estar dividido en cliente-servidorno incluye permisos de acceso. SQL Server Creador -> Microsoft Tipo de licencia -> Propietario Version -> 2008 (10.00.1600.22) Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL (es el principal medio de programación y administración de SQL Server. Expone las palabras clave para las operaciones que pueden realizarse en SQL Server,) y ANSI SQL. Solo esta disponible en Windows, ya que esta atado a dicha platarforma. Licencias: Enterprisse • Data and Backup Compression • Resource Governor • Transparent Data Encryption • Extensible Key Management • Advanced Data Mining algorithms • Mirrored Backups • IA64 hardware support Esta licencia soporta, copias de seguridad de los datos y copias de seguridad con espejo, el Gobernador de recursos que es una herramienta que permite el manejo de diferentes cargas para poner límites dependiendo de las necesidades de los usuarios, tambien permite la encriptacion de datos, habilitando el cifrado de archivos de datos o de registro, sin necesidad de realizar cambios en las aplicaciones, algoritmos avanzados de mineria que nos sirven para realizar bsuquedas y agrupaciones de datos, y soporte para arquitectura de 64 bits Version Estandard Características: • SharePoint Integration • Excel 2007 and Visio 2007 Add-in Support • Automatic Corruption Recovery from Mirror • Comprehensive Set of Data Mining Algorithms • Auto-generate Staging and Data Warehouse Schema (ni puta idea de lo que es...) Esta licencia nos permite integrar nuestra BD con SharePoint, que es otra aplicacionde MS para mantener nuestro datos accesibles a todos los usuarios de neustro de partemento o empresa, nos realiza una recuperacion de los datos corruptos automaticamente de un mirror backup, incluye tambien los algoritmos de mineria Soporta integridad refencial y las transaciones tipicas de los SGBD, triggers y funciones Desventajas • MSSQL usa Address Windowing extensión (AWE) para hacer el direccionamiento de 64-bit esto le impide usar la administración dinámica de memoria y sólo le permite alojar un máximo de 64Gb de memoria compartida. • MSSQL no maneja compresión de datos por tanto ocupa mucho espacio en disco. • MSSQL está atado a la plataforma de sistema operativo sobre la cual puede instalarse. • No tiene soporte para tablas HEAP Postgress Creador -> PGDG (PostgreSQL Global Development Group). Tipo de licencia -> licencia BSD. Version -> 8.4 (1 de julio de 2009) Historia: PostgreSQL ha tenido una larga evolución, la cual se inicia en 1982 con el proyecto Ingres en la Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue uno de los primeros intentos de implementar un motor de base de datos relacional. Después de haber trabajado un largo tiempo en Ingres y de haber tenido una experiencia comercial con él mismo, Michael decidió volver a la Universidad para trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho proyecto fue llamado post-ingres o simplemente POSTGRES. El proyecto post-ingres pretendía resolver los problemas con el modelo de base de datos relacional. El principal de estos problemas era la incapacidad del modelo relacional de comprender "tipos", es decir, combinaciones de datos simples que conforman una única unidad. Actualmente estos son llamados objetos. Se esforzaron en introducir la menor cantidad posible de funcionalidades para completar el soporte de tipos. Estas funcionalidades incluían la habilidad de definir tipos, pero también la habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente utilizadas pero mantenidas completamente por el usuario. En Postgres la base de datos «comprendía» las relaciones y podía obtener información de tablas relacionadas utilizando reglas. Postgres usó muchas ideas de Ingres pero no su código. Después de que el proyecto POSTGRES' terminara, dos graduados de la universidad, Andrew Yu y Jolly Chen, comenzaron a trabajar sobre el código de POSTGRES, esto fue posible dado que POSTGRES estaba licenciado bajo la BSD, y lo primero que hicieron fue añadir soporte para el lenguaje SQL a POSTGRES, dado que anteriormente contaba con un intérprete del lenguaje de consultas QUEL (basado en Ingres), Ventajas: Alta Concurencia: Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. Amplia variedad de tipos nativos PostgreSQL provee nativamente soporte para: • Números de precisión arbitraria. • Texto de largo ilimitado. • Figuras geométricas (con una variedad de funciones asociadas) • Direcciones IP (IPv4 e IPv6). • Bloques de direcciones estilo CIDR. • Direcciones MAC. • Arrays. Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el proyecto PostGIS. PostGIS Extensión que añade soporte de objetos geográficos a PostgreSQL y permite realizar análisis mediante consultas SQL espaciales o mediante conexión a aplicaciones GIS (Sistema de Información Geográfica). Soporta triggers y funciones Se pueden usar una gran cantidad de lenguajes de programacion como Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle). C. C++. Java PL/Java web. PL/Perl. PlPHP. PL/Python. PL/Ruby. Oracle tipo de licencia -> Privativa Versión -> 11g Release 2 Historia: Oracle surge a finales de los 70 bajo el nombre de Relational Software a partir de un estudio de George Koch sobre sistemas gestores de bases de datos, utilizando la filosofía de las bases de datos relacionales algo que por aquella época era todavía desconocido. Se considera a Oracle como uno de los sistemas de bases de datos más completos y es el proveedor mundial líder de software para administración de información. Características: Sus características más destacadas son: – Estabilidad (Nivel de fallos bajo) – Escalabilidad ( consiste en implementar soluciones que permitan el crecimiento de la base de datos sin que la posibilidad de su uso y re-uso, disminuya o permitir cambiar su configuración si fuera necesario) – Soporte multiplataforma Ediciones: Oracle está disponible en 4 ediciones distintas: – Enterprise Edition – Standard Edition – Standar Edition One – Express Edition La Express Edition es la opción gratuita que ofrece Oracle dirigida a estudiantes y desarrolladores aunque no está disponible en la última versión. Está edición sólo puede utilizar 1 procesador del servidor donde esté instalada, un máximo de 1 Gb de RAM, tiene limitado el almacenamiento a 4 Gb de datos de usuario y no soporta arquitecturas de 64 bits. Cuando se superen estas limitaciones, Oracle ofrece un sencillo proceso de actualización a las otras versiones en las que sí que hay que pagar licencias. En la página de Oracle podemos obtener toda la información detalla y diferencias entre cada una de estas ediciones. http://www.oracle.com/database/product_editions.html Además de las ediciones que acabamos de explicar Oracle ofrece desde su versión 10g una edición para desarrollo móvil y entornos integrados. En su última versión incorpora entre otras características soporte para bases de datos SQLite.