9

Click here to load reader

Sistemas de gestión de base de datos

Embed Size (px)

Citation preview

Page 1: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

dfsfsfsf

A d m i n i s t r a c i ó n d e B a s e d e D a t o s

2013

Universidad Peruana de Ciencias e Informática

Page 2: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 1

Diferencia increible entre Oracle y SQL Server

Hace tiempo encontré un problema con una webtransaction generada con .NET. Era algo muy

sencillo y que funcionaba bien en SQL Server y mal con Oracle, pues no estaba funcionando

correctamente cuando habia uno de los elementos de la clave C(2) que tenia 2 blancos.

Prueba sencilla

create table tabla (Campo Char(2))

insert into tabla values(' ') Inserto un registro con dos blancos.

Base de datos Oracle SQL Server

select * from tabla where campo=’ ‘ –dos blancos 1 registro seleccionado 1 registro seleccionado

select * from tabla where campo=’ ‘ –un blanco 1 registro seleccionado 1 registro seleccionado

select * from tabla where campo=” –sin blancos 0 registro seleccionado 1 registro seleccionado

Diferencias entre Mysql y PostgreSQL

Mysq Su principal objetivo de diseño fue la VELOCIDAD. Se sacrificaron algunas características esenciales en sistemas más "serios" con este fin. Otra característica importante es que consume MUY POCOS RECURSOS, tanto de CPU como de memoria.

Ventajas

Mayor rendimiento. Mayor velocidad tanto al conectar con el servidor como al servir selects y demás.

Mejores utilidades de administración (backup, recuperación de errores,

etc).

Aunque se cuelgue, no suele perder información ni corromper los datos. Mejor integración con PHP.

Page 3: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 2

No hay límites en el tamaño de los registros.

Mejor control de acceso, en el sentido de qué usuarios tienen acceso a

qué tablas y con qué permisos.

MySQL se comporta mejor que Postgres a la hora de modificar o añadir campos a una tabla "en caliente".

Desventajas

No soporta transacciones, "roll-backs" ni subselects.

No considera las claves ajenas. Ignora la integridad referencial, dejándola en manos del programador de la aplicación.

PostgreSQL

Postgres intenta ser un sistena de bases de datos de mayor nivel que MySQL, a la altura de Oracle, Sybase o Interbase.

Ventajas

Por su arquitectura de diseño, escala muy bien al aumentar el número de CPUs y la cantidad de RAM.

Soporta transacciones y desde la versión 7.0, claves ajenas (con comprobaciones de integridad referencial).

Tiene mejor soporte para triggers y procedimientos en el servidor.

Soporta un subconjunto de SQL92 MAYOR que el que soporta MySQL. Además, tiene ciertas características orientadas a objetos.

Desventajas

Consume BASTANTES más recursos y carga más el sistema.

Límite del tamaño de cada fila de las tablas a 8k!!! (se puede ampliar a 32k

recompilando, pero con un coste añadido en el rendimiento).

Es de 2 a 3 veces más lenta que MySQL.

Diferencias entre comandos para PostgreSQL y

MySQL

Page 4: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 3

PostgresSQL josealopez@josealopez-laptop:~ $ sudo su - postgres MySQL josealopez@josealopez-laptop:~ $ mysql -u root -p Una vez que nos hemos conectado, para poder ver todas las bases de datos PostgreSQL postgres@josealopez-laptop:~$ psql

postgres=# \l MySQL mysql> show databases; Para usar una u otra base de datos PostgresSQL: postgres@josealopez-laptop:~$ psql database_name MySQL mysql> use database_name Para crear un campo autoincremental también se hace de forma distinta, de hecho, en MySQL no se usan los elementos del tipo sequence que pueden ser mapeados con JPA. Por lo tanto lo que para PosrgreSQL es: create sequence mi_seq que luego es empleado en una table

como clave primaria con id int default nextval('mi_seq') primary key,para MySQL es id int not null primary key auto_increment. Por lo tanto, para crear una tabla que use campo autoincrementales PostgreSQL CREATE SEQUENCE mi_seq;

CREATE TABLE "mi_tabla" (

id int default nextval('mi_seq') primary key,

"nombre" varchar (50),

"login" varchar(10)

);

MySQL

CREATE TABLE mi_tabla (

id int not null primary key auto_increment,

nombre varchar(50),

login varchar(10))

Page 5: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 4

Oracle vs Postgre SQL2. SQL Server vs MySQL3. Access vs Base (Open Office)

Oracle. surge a finales de los 70 bajo el nombre de Software a partir de un estudio sobreSGBD (Sistemas Gestores de Base de Datos) de George Koch. Computer World definióeste estudio como uno de los más completos jamás escritos sobre bases de datos. Este artículo incluía una comparativa de productos que erigía a Relational Software como elmás completo desde el punto de vista técnico. Esto se debía a que usaba la filosofía delas bases de datos relacionales, algo que por aquella época era todavía desconocido. Enla actualidad, Oracle (Nasdaq: ORCL) todavía encabeza la lista. La tecnología Oracle seencuentra prácticamente en todas las industrias alrededor del mundo y en las oficinas de98 de las 100 empresas Fortune 100. Oracle es la primera compañía de software quedesarrolla e implementa software para empresas 100 por ciento activado por Internet através de toda su línea de productos: base de datos, aplicacionescomerciales y herramientas de desarrollo de aplicaciones y soporte de decisiones. Oraclees el proveedor mundial líder de software para administración de información, y lasegunda empresa de software. Oracle a partir de la versión 10g Release 2, cuenta con 6ediciones: Oracle Database Enterprise Edition(EE). Oracle Database Standard Edition(SE). Oracle Database Standard Edition One (SE1). Oracle Database Express Edition(XE). Oracle Database Personal Edition (PE). Oracle Database Lite Edition (LE).

PostGreSQL (llamado también Postgres95) fue derivado del proyectoPostgres, como ya se

ha comentado. A sus espaldas, este proyecto lleva másde una década de desarrollo, siendo hoy en día, el sistema libre másavanzado con diferencia, soportando la gran mayoría de las transaccionesSQL, control concurrente, teniendo a su disposición varios "languagebindings" como por ejemplo C, C++, Java, Python, PHP y muchos más.La implementación de Postgres DBMS comenzó en 1986, y no hubo unaversión operativa hasta 1987. La versión 1.0 fue liberada en Junio de 1989 aunos pocos usuarios, tras la cual se liberó la versión 2.0 en Junio de 1990debido a unas críticas sobre el sistema de reglas, que obligó a sureimplementación. La versión 3.0 apareció en el año 1991, e incluyó una seriede mejoras como una mayor eficiencia en el ejecutor de peticiones. El restode versiones liberadas a partir de entonces, se centraron en la portabilidad delsistema. El proyecto se dio por finalizado en con la versión 4.2, debido al granauge que estaba teniendo, lo cual causó la imposibilidad de mantenimientopor parte de los desarrolladores.En 1996, los desarrolladores decidieron cambiar el nombre a al DBMS, y lollamaron PostGreSQL (versión 6.0) para reflejar la relación entre Postgres ylas versiones recientes de SQL. Se crearon nuevas mejoras y modificaciones,que repercutieron en un 20-40% más de eficiencia, así como la incorporacióndel estándar SQL92.

Oracle Postgre SQL Las entidades complejas.Es SGBD relacional Open del mundo real y la lógica se Source. pueden modelar fácilmente, Tiene un sistema de reglas lo que permite reutilizar consistente en modificar las objetos. consultas. los programadores de Posee manejo y control de aplicaciones pueden transacciones para asegurar acceder directamente a tipos la consistencia de los datos.Ventajas de objetos. Soporta los tipos de datos, Las aplicaciones que cláusulas, funciones y utilizan objetos de comandos de tipo Oracle son fáciles de estándarSQL92/SQL99 y entender y mantener. extendidos propios de Tiene buen rendimiento y PostgreSQL. hace buen uso de los Para una fácil conectividad recursos. Posee un rico al servidor PostgreSQL, se diccionario de datos. implementa un ODBC.

Page 6: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 5

SQL Server MySQL Es un SGBD Relacional. MySQL software es Open (SGBDR). Source Ofrece una potente forma Velocidad al realizar las de unir SQL e Internet. operaciones. Utiliza una extensión al Bajo costo en SQL estándar, que se requerimientos para la denomina Transact SQL. elaboración de bases de Permite olvidarnos un poco datos.Ventajas de los ficheros que forman Puede ser ejecutado en la base de datos. una maquina con escasos Si trabajamos en una red recursos sin ningún local nos permite agregar problema. otros servidores de SQL Facilidad de configuración Server. e instalación. Soporta gran variedad de Sistemas Operativos.

OpenOffice es una suite ofimática avanzada la cual dispone de todas lasherramientas necesarias para trabajar: editor de texto, editor de imágenesvectoriales, hoja de cálculo, editor de presentaciones, base de datos, editor defórmulas, integración con correo (Thunderbird u Outlook), edita PDFs, soporte3d, maneja el estándar internacional ISO, y posee una licencia ILIMITADA.Está disponible para varias plataformas, tales como Microsoft Windows,GNU/Linux, BSD, Solaris y Mac OS X. Soporta numerosos formatos dearchivo, incluyendo como predeterminado el formato estándar ISO/IECOpenDocument (ODF), entre otros formatos comunes, así como tambiénsoporta más de 110 idiomas, desde febrero del año 2010.OpenOffice.org Base es un programa de base de datos similar a MicrosoftAccess. OpenOffice.org Base permite la creación y manejo de bases dedatos, elaboración de formularios e informes que proporcionan a los usuariosfinales un acceso fácil a los datos. Al igual que Microsoft Access, es capaz detrabajar como un front-end para diversos sistemas de bases de datos talescomo el de Access (JET), fuente de datos ODBC y MySQL/PostgreSQL. Baseestá disponible desde la versión 2.0.

Componentes de un SGBD Motor de la base de datos. Es el programa del SGBD que construye las consultas y peticiones que se realizan en el sistema para que sean procesadas por el sistema de BD. Por ejemplo el SGBD PhpMyAdmin consta de un motor de base de datos basado en MySQL por lo tanto las peticiones y operaciones que se realicen serán procesadas y convertidas a un formato SQL interpretable por la base de datos gestionada. Con Microsoft Access sucede lo mismo, el programa en sí mismo es un SGBD que transforma todas las peticiones y operaciones sobre la base de datos, también en formato SQL no percibido por el usuario. De esta forma la base de datos interpreta correctamente que el usuario desea insertar una nueva fila en la tabla o editar una serie de valores. Sistema de definición de datos. Programa especializado en crear los ficheros inversos, ficheros diccionarios, realizar los procesos de indexación de campos de las tablas y aplicar los ficheros de palabras vacías. Sistema de manipulación y gestión. Es la parte del SGBD dedicada a la manipulación de registros en las tablas de la base de datos. Hace posible la navegación a través de sus contenidos, la inserción de nuevos registros, su modificación, eliminación, importación o exportación mediante un interfaz sencillo destinado al usuario, evitándole la programación de sus consultas, sustituyendo procesos complejos por funciones almacenadas en un botón o un enlace. Sistema de herramientas y aplicaciones. Lo constituyen todas las herramientas y subprogramas orientados a facilitar la creación de interfaces de edición y consulta en la

Page 7: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 6

base de datos. Esto significa que el SGBD ayuda a construir aplicaciones para manipular de forma eficiente las tablas de la base de datos, permitiendo al usuario diseñar los formularios de entrada de datos, las pantallas de visualización de registros, las pantallas de búsqueda y recuperación, etc. Por ejemplo Microsoft Access y Filemaker son SGBD que integran tales herramientas con las que es posible construir una aplicación un sistema de información especializado con un interfaz adaptado a las necesidades del usuario. En el caso de MySQL y PhpMyAdmin esto no es así, ya que el interfaz personalizado por el usuario debe ser desarrollado por él mismo en forma de formularios web basados en un servidor Apache y programados en lenguaje PHP. Este aspecto que a priori podría ser una desventaja, hace posible que sea el método de diseño de interfaz más avanzado, personalizado y profesional, dado que es posible modificar todos los parámetros de funcionamiento del sistema, aspecto que a diferencia de SGBD no es posible encontrar, debido a la limitación de las herramientas que proporcionan. Administración. Lo constituye aquella parte del programa destinada a gestionar las funciones de almacenamiento, los procesos generales del sistema, los privilegios de acceso a la base de datos, gestionar las operaciones de mantenimiento con las bases de datos creadas, modificar las propiedades del interfaz, editar la configuración de los demás componentes del SGBD.

Funciones Capacidad para almacenar datos en la BD, acceder a ellos, insertar otros nuevos, modificarlos y eliminarlos. El SGBD oculta a ojos del usuario la apariencia real de las tablas de la BD, mostrando un interfaz sencillo. La apariencia real lo constituye un conjunto de códigos fuente sobre los que se almacenan las cadenas de datos que componen la información del registro. Debe automatizar las funciones de consulta, de forma tal que las peticiones del usuario sean transformadas a un lenguaje identificable y entendible por la BD, generalmente este lenguaje es SQL. El SGBD y especialmente la base de datos gestionada deben asegurar el acceso de múltiples usuarios manipulando o editando sus contenidos mediante un control de la concurrencia. Esto es que el sistema debe proporcionar un orden de prioridad en los procesos que se llevan a cabo en el sistema. Al conjunto de procesos que llevan a cabo múltiples usuarios se le denomina "transacciones". Un SGBD debe permitir la gestión de los privilegios de acceso al sistema para gestionar el acceso y las restricciones del mismo a diversos tipos de usuarios. Debe proporcionar las herramientas de mantenimiento necesarias para mantener la consistencia de los datos de la base de datos, esto es el proceso de compactación y desfragmentación de los datos, la optimización de las tablas, su reparación, la eliminación de residuos o información residual en cache como resultado de una transacción finalizada con algún tipo de error, etc.

Page 8: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 7

Objetivos SGBD Existen distintos objetivos que deben cumplir los SGBD:

Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.

Ventajas Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos). Entre éstas: Simplifican la programación de equipos de consistencia. Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores correctamente, etc. Organizan los datos con un impacto mínimo en el código de los programas. Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores. Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Page 9: Sistemas de gestión de base de datos

Sistemas de Gestión de Base de Datos

Administración de base de datos Página 8

Inconvenientes Típicamente, es necesario disponer de una o más personas que administren la base de datos, de la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren los sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una hoja

de cálculo. Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño, que requiere de gran cantidad de memoria para poder correr. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.