Download Memoria - Grupo de Procesamiento del Lenguaje y Sistemas de

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.