Cinthia Karolin Illidge Gonzalez Estudiante de Contaduría Pública Uniguajira Código: 1.121.205.034 ¿Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red ya que se debe poder compartir esta información. De allí el término base. "Sistema de información" es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado. ¿Para qué sirven las bases de datos? Las bases de datos proporcionan a los usuarios el acceso a datos, que pueden visualizar, ingresar o actualizar, en concordancia con los derechos de acceso que se les hayan otorgado. Se vuelven más útiles a medida que la cantidad de datos almacenados crece. Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario en un equipo, o puede ser distribuida, es decir que la información se almacena en equipos remotos y se puede acceder a ella a través de una red. La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden acceder a ellas al mismo tiempo. Una base de datos es un conjunto de información que se liga de alguna forma y se encuentra catalogada para tener mejor acceso de la misma. Inicialmente eran llevadas en registros por medio de fichas, y es por esto que existe una amplia variedad de fichas. Hoy en día es mediante servidores y computadores que se acumula la información y dichos datos se catalogan en forma ordenada y de fácil acceso por medio de un sistema que está definido como “SGBD” (sistema de gestión de base de datos), un software creado para tal fin. Son muchas plataformas las creadas para este fin y muchos programas que logran leer y manejar este tipo de información, la cual con el tiempo se ha unificado en formatos compatibles. Las bases de datos son utilizadas en infinidad de circunstancias: Una base de datos permite acomodar ordenar y tener libre acceso de la información, sea cual fuere. En los hospitales para catalogar medicamentos, y a los pacientes. En la administración para catalogar los diferentes temas a tratar. En el gobierno para catalogar los temas y obligaciones a resolver. En la escuela para matricular a los alumnos En el comercio para controlar la información. Es muy utilizada por los administradores, quienes entre sus funciones tienen la de ordenar y catalogar al personal, las mercancías, los gastos, los ingresos, etc. Por ello se encuentran en la eminente necesidad de catalogar los datos para que al ser buscados puedan ser encontrados en forma adecuada. En los colegios, las bibliotecas se encuentran dotadas de bases de datos simples y sencillos, que permiten a los alumnos y maestros encontrar la información deseada en forma rápida y precisa. En el comercio, los comerciantes ingresan en una base de datos las entradas y salidas para que en base a esos datos el contador o administrador, resuelva al momento de responder por las obligaciones. Sistemas de Administración de Bases de Datos Rápidamente surgió la necesidad de contar con un sistema de administración para controlar tanto los datos como los usuarios. La administración de bases de datos se realiza con un sistema llamado DBMS (Database management system [Sistema de administración de bases de datos]). El DBMS es un conjunto de servicios (aplicaciones de software) para administrar bases de datos, que permite: - Un fácil acceso a los datos. El acceso a la información por parte de múltiples usuarios. La manipulación de los datos encontrados en la base de datos (insertar, eliminar, editar). El DBMS puede dividirse en tres subsistemas: 1) El sistema de administración de archivos: para almacenar información en un medio físico 2) El DBMS interno: para ubicar la información en orden 3) El DBMS externo: representa la interfaz del usuario Los sistemas manejadores de base de datos (SGBD), en inglés: Data Base Management System (DBMS), son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas manejadores de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. Es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica. Funciones Principales: Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rápidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de las bases de datos. Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando del sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación. Características: • 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. • Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias. • Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, 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. • 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 segurizada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. • Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada. • Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder. • Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias. Desventajas: Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de información geográfica. No se manipulan de forma manejable los bloques de texto como tipo de dato. Aunque todos los SMBD tienen el mismo propósito, existen casos especiales que los hacen diferentes y, por lo consiguiente, cada uno posee ciertas ventajas sobre los demás. Existen en el mercado y se clasificaran de acuerdo a la licencia que posean, esta puede ser: de código libre o abierto son aquellos que se les puede modificar su código, se adecuan a las necesidades del usuario y cuentan con licencia, por ejemplo MySQL, Apache Derby, DB2, etc. Al contrario de aquellos SMBD propietarios o de manejos mediantes web no libres y gratuitos como FileMaker, WindowBase, Microsoft SQL Server Compact, etc. Por último se mencionaran los sitios web que ofrecen versiones gratuitas como es el dreamspark, el tipo de aplicaciones que se pueden desarrollar y el tipo de software que se utilizara. SMBD DE CÓDIGO ABIERTO Es un sistema gestor de bases de datos que se puede encuadrar dentro de la categoría de los programas open-source. Aparte de las características que definen MySQL como programa open-source, existen aspectos que lo diferencian de otros productos como, por citar uno conocido, Access. Los atributos a los que hacemos referencia son: Posibilidad de crear y configurar usuarios, asignando a cada uno de ellos permisos diferentes. Facilidad de exportación e importación de datos, incluso de la base de datos completa. Posibilidad de ejecutar conjuntos de instrucciones guardadas en ficheros externos a la base de datos. Microsoft SQL Server Compact (SQL Server CE) Es un motor de base de datos relacional, de libre descarga y distribución, tanto para dispositivos móviles como para aplicaciones escritorio. Especialmente orientada a sistemas ocasionalmente conectados, ofrece unas características especialmente útiles para clientes ligeros. La versión más reciente es SQL Server Compact 3.5 SP2. Anteriormente era conocida como SQL Server CE o SQL Server Mobile. Desde la versión 2.0, el lanzamiento de SQL Server Compact ha ido ligado al de Microsoft Visual Studio .NET. Recientemente, Scott Guthrie, Vice-presidente Corporativo de la División de Desarrollo de Microsoft, anunció el próximo lanzamiento de SQL Server Compact 4.0 con novedades relacionadas principalmente al desarrollo de aplicaciones ASP.NET. Una base de datos SQL Server Compact, a diferencia de una base de datos SQL Server que se expone como un Servicio Windows, se ejecuta bajo en proceso de la aplicación que la consume (in-process). El tamaño máximo del archivo de base de datos es de 4 Gb. y la extensión por defecto es .sdf la cual puede ser modificada. El nombre de la base de datos está limitado a 128 caracteres. En cuanto a limitaciones destacar que el número máximo de tablas por base de datos es de 1024 con un tamaño máximo por registro de 8060 bytes con un tamaño por página de 4 Kb. y 2 Gb. para campos BLOB. Base De Datos Página 19. SQL Server Compact posee un motor de base de datos así como un procesador y un optimizador de consultas especialmente diseñado para entornos móviles. Soporta un subconjunto de tipos de datos y de sentencias TSQL de SQL Server y entre las últimas novedades de la versión 3.5 se encuentran: Consultas jerarquizadas con SELECT FROM Instrucciones CROSS APPLY y OUTER APPLY Instrucción CAST y DECIMAL SET IDENTITY INSERT Instrucción TOP 4.2 Adaptive Server Enterprise (ASE) es el motor de bases de datos (RDBMS) insignia de la compañía Sybase. ASE es un sistema de gestión de datos, altamente escalable, de alto rendimiento, con soporte a grandes volúmenes de datos, transacciones y usuarios, y de bajo costo, que permite: Almacenar datos de manera segura Tener acceso y procesar datos de manera inteligente Movilizar datos 4.2.1 Principales características Un optimizador de consultas completamente renovado y más inteligente Técnicas de particionamiento semántico de tablas que aumentan la velocidad de acceso a los datos Base De Datos. Columnas cifradas para mayor seguridad de los datos Columnas computadas "virtuales" y materializadas, e índices funcionales, que brindan mayor rendimiento Mejoras al lenguaje Transact-SQL, para mayor productividad Mejoras a los servicios de Java y XML en la base de datos Mejoras a los servicios para consumo y publicación de Servicios Web Herramientas mejoradas para la administración y el monitoreo Más rendimiento y menor costo total de propiedad Arquitectura VSA de Sybase Administrador lógico de recursos y tareas Múltiples esquemas de bloqueo de datos Copias de respaldo en línea y de alto rendimiento Integración transparente con orígenes de datos remotos Programador de tareas Conexiones seguras con SSL Soporte a LDAP para autenticación de usuarios y conectividad cliente/servidor Soporte a múltiples herramientas de desarrollo y lenguajes de programación, como PowerBuilder, Visual Basic, Java, C, PHP, etc. Soporte a múltiples protocolos de conectividad, como Open Client (propio de Sybase), ODBC, OLE DB, ADO.NET y JDBC. Base De Datos Página 21 Aplicaciones en las que se utiliza Es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. Es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicAA SQLITE A diferencia de los sistema de gestión de bases 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 en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. 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. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción. 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. 2.5.1 Descripción Técnica Nombre SQLite Desarrollador D. Richard Hipp Última versión estable 3.6.16 (27 de junio de 2009) Codificación C Sistema Operativo Multiplataforma Licencia Dominio Público Sitio web www.sqlite.org OPENBASE SQL es una base de datos relacional servidor de software, desarrollado originalmente para el OpenStep plataforma. First released in 1991, OpenBase is available today for several platforms, although the bulk of its users are on Mac OS X . The system supports common access methods via JDBC and C , however it is optimized for use in conjunction with a variety of Macintosh-based development tools like WebObjects , RealBasic and Omnis Studio . Por primera vez en 1991, OpenBase ya está disponible para varias plataformas, aunque la mayor parte de sus usuarios se encuentran en Mac OS X . El sistema es compatible con acceso a los métodos comunes a través de JDBC y C , sin embargo, se ha optimizado para su uso en combinación con una variedad de Macintosh desarrollo de herramientas basadas en como WebObjects , RealBasic y Omnis Studio . It is also used on home computers for sharing features such as Windows file sharing. [ clarification needed ] También se utiliza en los equipos de casa para compartir características como el uso compartido de archivos de Windows. Características: Incorporadas a ofrecer acceso de alta velocidad para datos estructurados. Tolerancia a fallos, procedimientos almacenados. Ha evolucionado a través de los años para proveer un ambiente maduro para el soporte usuarios, individualmente y como a través de redes distribuidas. For the developer, OpenBase has a rich set of application APIs that incorporate the C and Objective-C languages. Para el desarrollador, OpenBase posee un rico conjunto de APIs de aplicaciones que incorporan los lenguajes C y Objective-C. Regardless of developers programming background Mac OS or NeXTSTEP/OpenStep, the OpenBase API framework allows quick development of full scale database applications. Independientemente de los desarrolladores de programación de fondo de Mac OS o NeXTSTEP OpenStep /, el marco OpenBase API permite el desarrollo rápido de aplicaciones completa base de datos de escala. Sistema de gestión de base de datos relacional orientada a objetos y libree, publicado bajo la licencia BSD. Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group). Características Alta concurrencia: 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. Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys). Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Ahora todos los disparadores se definen por seis características: El nombre del disparador o trigger El momento en que el disparador debe arrancar El evento del disparador deberá activarse sobre: o La tabla donde el disparador se activará o La frecuencia de la ejecución o La función que podría ser llamada Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través de su sistema de activación de disparadores (triggers). Vistas. Integridad transaccional. Herencia de tablas. Tipos de datos y operaciones geométricas. Soporte para transacciones distribuidas. Permite a PostgreSQL integrase en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción goblal es el resultado del éxito de las transacciones locales. Más información en inglés en http://www.theserverside.com/discussions/thread.tss?thread_id=21385# 95297 y en http://java.sun.com/javaee/technologies/jta/index.jsp. Funciones Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios lenguajes, con la potencia que cada uno de ellos da, desde las operaciones básicas de programación, tales como bifurcaciones y bucles, hasta las complejidades de la programación orientada a objetos o la programación funcional. Los disparadores (triggers en inglés) son funciones enlazadas a operaciones sobre los datos. Algunos de los lenguajes que se pueden usar son los siguientes: 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. PL/sh. PL/Tcl. PL/Scheme. Lenguaje para aplicaciones estadísticas R por medio de PL/R. PostgreSQL soporta funciones que retornan "filas", donde la salida puede tratarse como un conjunto de valores que pueden ser tratados igual a una fila retornada por una consulta (query en inglés). Las funciones pueden ser definidas para ejecutarse con los derechos del usuario ejecutor o con los derechos de un usuario previamente definido. El concepto de funciones, en otros DBMS, son muchas veces referidas como "procedimientos almacenados" (stored procedures en inglés). Productos alrededor de PostgreSQL El PGDG solo desarrolla el Motor de Datos y un número pequeño de utilidades, para potenciar el trabajo con PostgreSQL suele ser necesario añadir utilidades externas creadas especialmente para este motor, algunas de estas herramientas son: ALTERNATIVAS COMERCIALES: Gracias a su licencia BSD, se permite la utilización del código para ser comercializado. Uno de los casos ejemplo es la de Enterprise DB (Postgresql Plus), la cual incluye varios agregados y una interfaz de desarrollo basada en Java. Entre otras empresas que utilizan Postgresql para comercializar se encuentra CyberTech (alemania), con su producto CyberCluster. GIS (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). PEPLICACIÓN (PgCluster) Replicación multi maestro: Slony-I Replicación maestro esclavo:PyReplica Replicación maestro esclavo y multi maestro asincrónica Herramientas de administación: PgAdmin3 Entorno de escritorio visual: PhpPgAdmin Entorno web: psql Cliente de consola:Database Master Entorno de escritorio visual. Busqueda de texto: Full text search Incluido en el núcleo a partir de la versión 8.3. Via Tsearch2 y OpenFTS para versiones anteriores a la 8.3 Apache Derby Este es un sistema gestor de base de datos relacional escrito en Java que puede ser embebido en aplicaciones Java y utilizado para procesos de transacciones online. Tiene un tamaño de 2 MB de espacio en disco. Inicialmente distribuido como IBM Cloudscape, Apache Derby es un proyecto open source licenciado bajo la Apache 2.0 License. Actualmente se distribuye como Sun Java DB. 2.2.1 Características APIs para JDBC y SQL. Soporta todas las características de SQL92 y la mayoría de SQL99. La sintaxis SQL usada proviene de IBM DB2. Su código mide alrededor de 2000KB comprimido. Soporta cifrado completo, roles y permisos. Además posee SQL SCHEMAS para separar la información en una única base de datos y control completo de usuarios. Soporta internamente procedures, cifrado y compresión. Trae soporte multilenguaje y localizaciones específicas. A partir de la versión 10.4 trae un sistema simple de replicación maestro-esclavo. Transacciones y recuperación ante errores ACID. Posee tres productos asociados a la marca: Derby Embedded Database Engine: El motor propiamente dicho. Derby Network Server: Permite convertir Derby en una base de datos que sigue el modelo cliente-servidor tradicional. Database Utilities: Un paquete de utilidades. 2.2.2 Descripción Técnica Nombre Apache derby Desarrollador Apache Software Foundation Última versión estable 10.4.2.0 (5 de septiembre de 2008) Sistema Operativo Multiplataforma Licencia Apache license 2.0 Sitio web http://db.apache.org/derby/ 2.3 DB2 DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa un sistema de gestión de base de datos. El sistema manejador de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica. Microsoft SQL Server al igual que Oracle DB y MySQL Server son sistemas de gestión o manejadores de base de datos, existen muchos como: MySQL PosgreSQL Microsoft SQL Server Oracle Microsoft Access Microsoft Visual Fox Pro Firebird mSQL (mini SQL) IBM DB2 IBM Informix SQLite Sybase ASE Paradox dBase Pero existen algunas ventajas y desventajas que los hace diferentes para la gestión de la base de datos. Estas diferencias son importantes para las grandes organizaciones y empresas pequeñas elegir el de mayor beneficio, confiabilidad y seguridad en la administración de los datos. Analizaremos las ventajas y desventajas de Microsoft SQL Server, Oracle DB y MySQL Server, por ser los más usados y los más comunes. MySQL server a diferencia de Microsoft SQL server es un servidor multi-hilo popular de base de datos de código abierto, confiable, compacto, poderoso y multiplataforma, podemos hacer las bases de datos a código abierto, una gran ventaja es que se puede utilizar gratis y su código fuente esta siempre disponible. Las principales ventajas de MySQL Server son: Software gratuito. La velocidad y robustez. Multiproceso, es decir que puede usar varias CPU si éstas están disponibles. Multiplataforma, es decir que puede trabajar en distintos Sistemas Operativos. Sistema de contraseñas y privilegios muy flexibles y seguros. Microsoft SQL server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, Sybase ASE, PostgreSQL, Interbase, Firebird o MySQL Las principales ventajas de SQL Server son: Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información. Además permite administrar información de otros servidores de datos. Una desventaja de SQL Server es que es costoso. Oracle es un sistema desarrollado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos más completos. Las principales ventajas son: Soporte de transacciones. Estabilidad. Escalabilidad. Soporte multiplataforma. Una desventaja de este son las políticas de seguridad en el suministro de parches de actualización