Sunteți pe pagina 1din 18

Primera Invest BD

Contenidos

Artículos

Base de datos

1

Sistema de gestión de bases de datos

6

Referencias

Fuentes y contribuyentes del artículo

14

Fuentes de imagen, Licencias y contribuyentes

15

Licencias de artículos

Licencia

16

Base de datos

Base de datos

1

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados

sistemáticamente para su posterior uso.

En este sentido; una biblioteca puede

considerarse una base de datos compuesta en su mayoría por

documentos y textos impresos en papel

e indexados para su consulta.

Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato

digital (electrónico), y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.

rango de soluciones al problema del almacenamiento de datos. OpenOffice.org Base es un sistema de gestión

Existen programas denominados sistemas gestores de bases de datos, abreviado DBMS, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos DBMS, así como su utilización y administración, se estudian dentro del ámbito de la informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente

utilizadas en entornos científicos con el objeto de almacenar la información experimental.

Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo en España, los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD) y en México por la Ley Federal de Transparencia y Acceso a la Información Pública Gubernamental.

Tipos de base de datos

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad

de las mismas o las necesidades que satisfagan.

Según la variabilidad de la base de Datos

Bases de datos estáticas

Son bases de datos de solo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se

pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.

Base de datos

2

Bases de datos dinámicas

Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y edición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o una empresa.

Según el contenido

Bases de datos bibliográficas

Sólo contienen un subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque si no, estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras.

Bases de datos de texto completo

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.

Directorios

Un ejemplo son las guías telefónicas en formato electrónico.

Bases de datos o "bibliotecas" de información química o biológica

Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vida o médicas. Se pueden considerar en varios subtipos:

••

Las que almacenan secuencias de nucleótidos o proteínas.

••

Las bases de datos de rutas metabólicas.

••

Bases de datos de estructura, comprende los registros de datos experimentales sobre estructuras 3D de

biomoléculas-

••

Bases de datos clínicas.

Bases de datos bibliográficas (biológicas, químicas, médicas y de otros campos): PubChem, Medline, EBSCOhost.

Modelos de bases de datos

Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos.

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.

Algunos modelos con frecuencia utilizados en las bases de datos:

Base de datos

3

Bases de datos jerárquicas

En este modelo los datos se organizan en forma de árbol invertido (algunos dicen raíz), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.

Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.

Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.

Base de datos de red

Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).

Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aún así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionales

Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

Bases de datos relacionales

Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.

El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.

Base de datos

4

Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos.

Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión.

Bases de datos multidimensionales

Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Bases de datos orientadas a objetos

Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).

Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos:

Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.

Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.

Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.

En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones.

SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92.

Bases de datos documentales

Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos.

Bases de datos deductivas

Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las bases de datos deductivas son también llamadas bases de datos lógicas, a raíz de que se basa en lógica matemática. Este tipo de base de datos surge debido a las limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos.

Base de datos

5

Lenguaje

Utiliza un subconjunto del lenguaje Prolog llamado Datalog el cual es declarativo y permite al ordenador hacer deducciones para contestar a consultas basándose en los hechos y reglas almacenados.

Ventajas

••

Uso de reglas lógicas para expresar las consultas. Permite responder consultas recursivas. Cuenta con negaciones estratificadas Capacidad de obtener nueva información a través de la ya almacenada en la base de datos mediante inferencia. Uso de algoritmos de optimización de consultas. Soporta objetos y conjuntos complejos.

••

••

••

••

••

Fases

Fase de Interrogación: se encarga de buscar en la base de datos informaciones deducibles implícitas. Las reglas de esta fase se denominan reglas de derivación.

Fase de Modificación: se encarga de añadir a la base de datos nuevas informaciones deducibles. Las reglas de esta fase se denominan reglas de generación.

Interpretación

Encontramos dos teorías de interpretación de las bases de datos deductiva consideramos las reglas y los hechos como axiomas. Los hechos son axiomas base que se consideran como verdaderos y no contienen variables. Las reglas son axiomas deductivos ya que se utilizan para deducir nuevos hechos.

Teoría de Modelos: una interpretación es llamada modelo cuando para un conjunto específico de reglas, éstas se cumplen siempre para esa interpretación. Consiste en asignar a un predicado todas las combinaciones de valores y argumentos de un dominio de valores constantes dado. A continuación se debe verificar si ese predicado es verdadero o falso.

Mecanismos

Existen dos mecanismos de inferencia:

Ascendente: donde se parte de los hechos y se obtiene nuevos aplicando reglas de inferencia.

Descendente: donde se parte del predicado (objetivo de la consulta realizada) e intenta encontrar similitudes entre las variables que nos lleven a hechos correctos almacenados en la base de datos.

Sistema de Gestión de bases de datos distribuida (SGBD)

La base de datos y el software SGBD pueden estar distribuidos en múltiples sitios conectados por una red. Hay de dos tipos:

1. Distribuidos homogéneos: utilizan el mismo SGBD en múltiples sitios.

2. Distribuidos heterogéneos: Da lugar a los SGBD federados o sistemas multibase de datos en los que los SGBD

participantes tienen cierto grado de autonomía local y tienen acceso a varias bases de datos autónomas preexistentes almacenados en los SGBD, muchos de estos emplean una arquitectura cliente-servidor.

Estas surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etcétera.

Base de datos

6

Enlaces externos

Wikimedia Commons alberga contenido multimedia sobre Base de datos. Commons

• Base de datos en Open Directory Project [1]

Commons • Base de datos en Open Directory Project [ 1 ] Referencias [1]

Referencias

Sistema de gestión de bases de datos

Un sistema de gestión de bases de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto Los SGBD también proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe. Permite presentar la información de la base de datos en variados formatos. La mayoría de los SGBD incluyen un generador de informes. También puede incluir un módulo gráfico que permita presentar la información con gráficos y tablas.

Hay muchos tipos de SGBD distintos según manejen los datos y muchos tamaños distintos según funcionen sobre ordenadores personales y con poca memoria a grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales.

Generalmente se accede a los datos mediante lenguajes de interrogación, lenguajes de alto nivel que simplifican la tarea de construir las aplicaciones. También simplifican la interrogación y la presentación de la información. Un SGBD permite controlar el acceso a los datos, asegurar su integridad, gestionar el acceso concurrente a ellos, recuperar los datos tras un fallo del sistema y hacer copias de seguridad. Las bases de datos y los sistemas para su gestión son esenciales para cualquier área de negocio, y deben ser gestionados con esmero.

Introducción

Las Bases de Datos generalmente funcionan en ordenadores dedicados. Por las prestaciones requeridas, generalmente funcionan en ordenadores multi-procesador con abundante memoria. Para el almacenaje de los datos puede contar con sistemas de disco propio (DAS), puede conectarse a una red de almacenamiento (SAN) o conectarse a un sistema de almacenamiento en red (NAS). Existen aceleradores hardware, usados en grandes sistema de proceso de transacciones. Los SGBD se encuentran en el corazón de toda aplicación que maneje datos. Los SGBD se basan en sistemas operativos estándar para efectuar dichas funciones.

Historia

Las Bases de Datos han estado en uso desde los primeros días de los ordenadores electrónicos. A diferencia de los sistemas modernos, que se pueden aplicar a datos y necesidades muy diferentes, la mayor parte de los sistemas originales estaban enfocados a bases de datos específicas y pensados para ganar velocidad a costa de perder flexibilidad. Los SGBD originales sólo estaban a disposición de las grandes organizaciones que podían disponer de los complejos ordenadores necesarios.

Sistema de gestión de bases de datos

7

Sistemas de navegación de 1960

Según los ordenadores fueron ganando velocidad y capacidad, aparecieron sistemas de bases de datos de propósito general; a mediados de 1960 ya habían algunos sistemas en uso. Apareció el interés en obtener un estándar y Charles Bachman -autor de uno de los primeros productos, el Integrated Data Store (IDS)- fundó el "Database Task Group" dentro de CODASYL, el grupo responsable de la creación y estandarización de COBOL. En 1971 publicaron su estándar, que pasó a ser conocido como la "aproximación CODASYL", y en breve aparecieron algunos productos basados en esta línea.

La estrategia de CODASYL estaba basada en la navegación manual por un conjunto de datos enlazados en red. Cuando se arrancaba la base de datos, el programa devolvía un enlace al primer registro de la base de datos, el cual a su vez contenía punteros a otros datos. Para encontrar un registro concreto el programador debía ir siguiendo punteros hasta llegar al registro buscado.

Para responder a preguntas sencillas como "buscar todas las personas en Japón" el programa debía recorrer todos los datos para escoger los registros correctos. Esencialmente no existían los conceptos "buscar" ni "encontrar" que sería inaceptable hoy en día, pero que en los tiempos en que los datos se guardaban en cintas no era viable llevarlos a la práctica.

Se encontraron soluciones a muchos de esos problemas. El fabricante Prime creó un SGBD ajustado a CODASYL basado en árboles binarios que atajaba la navegación de registro en registro proveyendo caminos alternativos de acceso. También aportaba un lenguaje de interrogación muy claro. De hecho no hay razón para no poder aplicar los conceptos de normalización a bases de datos CODASYL, pero en último término CODASYL resultaba muy complejo y requería de mucho esfuerzo y práctica para producir una aplicación útil.

IBM también tenía su SGBD propio en 1968, conocido como IMS. Se trataba de un software desarrollado para el programa Apolo sobre System/360. IMS tenía conceptos similares a CODASYL, pero usaba una jerarquía estricta de ordenación de los datos, frente a la estructura en red de CODASYL. Ambos conceptos fueron englobados posterioremnte en el concepto de Bases de Datos de navegación debido al modo de acceso a los datos, de hecho Bachman recibió al premio Turing en 1973 por su ponencia "El programador como navegador".

Sistemas relacionales de 1970

Edgar Codd trabajaba en IBM, en una de esas oficinas periféricas que estaba dedicada principalmente al desarrollo de discos duros. Estaba descontento con el modelo de navegación CODASYL, principalmente con la falta de operación de búsqueda. En 1970 escribió algunos artículos en los que perfilaba una nueva aproximación que culminó en el documento "A Relational Model of Data for Large Shared Data Banks" [1] .

Model of Data for Large Shared Data Banks" [ 1 ] . Tabla en el modelo

Tabla en el modelo relacional

En este artículo descubrió un nuevo sistema para almacenar y trabajar con grandes bases de datos. En vez de almacenar registros de tipo arbitrario en una lista encadenada como en CODASYL, la idea de Codd era usar una "tabla" de registros de tamaño fijo. Una lista encadenada tiene muy poca eficiencia al almacenar datos dispersos donde algunos de los datos de un registro pueden dejarse en blanco. El modelo relacional resuelve esto dividiendo los datos en una serie de tablas -o relaciones- normalizadas, en las que los elementos optativos han sido extraídos de la tabla principal para que ocupen espacio sólo si lo necesitan. En este modelo relacional los registros relacionados se enlazan con una "clave".

Un uso común de las BASES DE DATOS puede mantener una agenda de usuarios, su nombre, información de acceso, dirección y teléfono. En la solución de navegación todos esos datos estaría localizados en un solo registro, y las características no usadas simplemente no estarían en la base de datos. En la solución relacional, los datos estarían normalizados en una tabla de usuario, una de teléfono y una de dirección, en la que serían añadidos registros si

Sistema de gestión de bases de datos

8

tuviéramos que incorporar teléfono y dirección.

Reconciliar toda la información es la clave de este sistema. En el modelo relacional, una parte de la información se usa como clave, identificando de manera biunívoca un registro concreto. Cuando se recopila información acerca de un usuario, se accederá a la información de las tablas optativas buscando mediante esa clave . Por ejemplo si el nombre de usuario es único, la dirección y número de teléfono de ese usuario será guardada con el nombre de usuario como clave. La recopilaciòn de esta información en un solo registro es algo para lo que los lenguajes tradicionales no están pensados.

Así como el enfoque de navegación requiere programas que realicen bucles para recolectar registros, el enfoque relacional también los requerirá. La solución de Codd para los necesarios bucles se basa en un lenguaje orientado a conjuntos, una sugerencia que más tarde cristalizaría en el ubicuo SQL. Planteó el uso de una rama del álgebra llamada cálculo de tuplas, y demonstró que con ella se podrían realizar todas las operaciones típicas sobre una base de datos, además de extraer conjuntos de datos de una forma sencilla.

El artículo de Codd cayo en manos de dos personas en Berkeley, Eugene Wong y Michael Stonebraker. Ellos comenzaron un proyecto llamado INGRES con fondos asignados a un proyecto de base de datos geográfica programada por los estudiantes. Comenzando en 1973, INGRES produjo sus primeras versiones de prueba que estuvieron listas para uso general en 1979. INGRES era muy similar a System R de IBM en varios aspectos, incluyendo un lenguaje para acceso a los datos, conocido como QUEL. Con el paso del tiempo, INGRES adopto el estándar SQL.

IBM realizó una implementación de prueba del modelo relacional -PRTV- y una de producción -Business System 12- ambas descontinuadas. Honeywell escribió MRDS para Multics, y aparecen también dos nuevas implementaciones: Alphora Dataphor y Rel. La mayoría de las demás implementaciones de SGBD llamados relacionales son en realidad SGBD SQL.

En la década de 1970, la Universidad de Michigan comenzó el desarrollo del MICRO Information Management System basado en el modelo teórico de datos de D.L. Childs. Micro fue utilizado para gestionar gran cantidad de datos en el Departamento de trabajo del gobierno US. Corría en mainframe usando Michigan Terminal System. Estuvo en producción hasta 1998.

Sistemas SQL de finales de la década 1970

IBM comenzó a trabajar a principios de 1970 en un prototipo lejánamente basado en los conceptos de Codd llamándolo System R. La primera versión estuvo lista en 1974/5, y comenzó así el trabajo en sistemas multi-tabla, en los que los datos podían digregarse de modo que toda la información de un registro (alguna de la cual es opcional) no tiene que estar almacenada en un único trozo grande. Las versiones multi-usuario siguientes fueron probadas por los usuarios en 1978 y 1979, tiempo por el que un lenguaje SQL había sido estandarizado. Las ideas de Codd se revelaron como operativas y superiores a las de CODASYL, lanzando a IBM al desarrollo de una verdadera versión de producción de System R, conocido como SQL/DS, y posteriormente como Database 2 (DB2).

Muchos de los técnicos de INGRES estaban seguros del éxito comercial del sistema, y formaron sus propias compañías para comercializar el desarrollo pero con un interfaz SQL. Sybase, Informix, NonStop SQL y la misma

INGRES se vendían como derivados del INGRES original en los años 1980. Incluso el SQL Server de Microsoft está basado en Sybase, y por consiguiente en INGRES. Sólo Larry Ellison -el fundador de Oracle- comenzó un nuevo camino basado en el artículo de IBM sobre System R, y aventajó a IBM sacando al mercado su primera versión en

1978.

Stonebraker aplicó las lecciones de INGRES al desarrollo de una nueva base de datos -Postgres- conocida ahora como PostgreSQL. PostgreSQL se utiliza para muchas aplicaciones críticas (los registros de dominios .org y .info lo usan para su almacenamiento primario, así como grandes compañías e instituciones financieras).

Sistema de gestión de bases de datos

9

En Suecia, el artículo de Codd generó la base de datos Mimer SQL en la universidad de Uppsala. En 1984 este proyecto se consolidó en una compañía independiente. A principios de 1980, Mimer introdujo la gestión de transacciones para dar robustez a las aplicaciones, una idea que fue recogida en muchos otros SGBD.

Sistemas orientados a objetos de 1980

Durante la década de 1980 el auge de la programación orientada a objetos influyó en el modo de manejar la información de las bases de datos. Programadores y diseñadores comenzaron a tratar los datos en las bases de datos como objetos. Esto quiere decir que si los datos de una persona están en la base de datos, los atributos de la persona como dirección, teléfono y edad se consideran que pertenecen a la persona, no son datos extraños. Esto permite establecer relaciones entre objetos y atributos, más que entre campos individuales.

Otro gran foco de atención durante la década fue el incremento de velocidad y fiabilidad en el acceso. En 1989, dos profesores de la Universidad de Wisconsin publicaron un artículo en una conferencia ACM en el que exponían sus métodos para mejorar las prestaciones de las bases de datos. La idea consistía en replicar la información importante -y más solicitada- en una base de datos temporal de pequeño tamaño con enlaces a la base de datos principal. Esto implicaba que se podía buscar mucho más rápido en la base de datos pequeña que en la grande. Su mejora de prestaciones llevó a la introducción de la indización, incorporado en la totalidad de los SGBD.

Sistemas NoSQL de 2000

El siglo XXI trajo una nueva tendencia en las bases de datos: el NoSQL. Esta tendencia introducía una línea no relacional significativamente diferentes de las clásicas. No requieren por lo general esquemas fijos, evitan las operaciones join almacenando datos denormalizados y están diseñadas para escalar horizontalmente. La mayor parte de ellas pueden clasificarse como almacenes clave-valor o bases de datos orientadas a documentos.

Recientemente ha habido una gran demanda de bases de datos distribuidas con tolerancia a particiones, pero de acuerdo con el teorema CAP no es posible conseguir un sistema distribuido que simultáneamente proporcione consistencia, disponibilidad y tolerancia al particionado. Un sistema distribuido puede satisfacer sólo dos de las tres restricciones a la vez. Por dicha razón muchas de las bases de datos NoSQL usan la llamada consistencia eventual para proporcionar disponibilidad y tolerancia al particionado, con un nivel máximo de consistencia de datos.

Entre las aplicaciones más populares encontramos MongoDB, MemcacheDB, Redis, CouchDB, Hazelcast, Apache Cassandra y HBase, todas ellas de código abierto.

Sistemas XML 2010

las Bases de Datos XML forman un subconjunto de las Bases de Datos NoSQL. Todas ellas usan el formato de almacenamiento XML, que está abierto, legible por humanos y máquinas y ampliamente usado para interoperabilidad.

En esta categoría encontramos: BaseX, eXist, MarkLogic Server, MonetDB/XQuery, Sedna.

Componentes

• El motor de la base de datos acepta peticiones lógicas de los otros subsistemas del SGBD, las convierte en su equivalente físico y accede a la base de datos y diccionario de datos en el dispositivo de almacenamiento.

• El subsistema de definición de datos ayuda a crear y mantener el diccionario de datos y define la estructura del fichero que soporta la base de datos.

• El subsistema de manipulación de datos ayuda al usuario a añadir, cambiar y borrar información de la base de datos y la interroga para extraer información. El subsistema de manipulación de datos suele ser el interfaz principal del usuario con la base de datos. Permite al usuario especificar sus requisitos de la información desde un punto de vista lógico.

Sistema de gestión de bases de datos

10

• El subsistema de generación de aplicaciones contiene utilidades para ayudar a los usuarios en el desarrollo de aplicaciones. Usualmente proporciona pantallas de entrada de datos, lenguajes de programación e interfaces.

• El subsistema de administración ayuda a gestionar la base de datos ofreciendo funcionalidades como almacenamiento y recuperación, gestión de la seguridad, optimización de preguntas, control de concurrencia y gestión de cambios.

Lenguajes de modelación

Toda base de datos soportada por un SGBD debe tener unos esquemas modelados adecuadamente. Coincidiendo con la evolución histórica de las bases de datos éstas han utilizado distintos modelos. Los SGBD esperan un modelo determinado para poder acceder de forma simple a la base de datos. Estos modelos son:

•• jerárquico

•• •• relacional •• multidimensional ••

También se han utilizados listas invertidas.

en red

de objetos

Estructura jerárquica

La estructura jerárquica fue usada en los SGBD de los primeros mainframe. Las relaciones entre registros forman una estructura en árbol. Esta estructura es simple pero inflexible ya que las relaciones están confinadas al tipo 1:n. El sistema IMS de IBM y el RDM Mobile de Raima son ejemplos de bases de datos con múltiples jerarquías sobre el mismo conjunto de datos. RDM Mobile es un nuevo diseño de base de datos imbuida para una red de ordenadores móviles. La estructura jerárquica es usada hoy en día para almacenar información geográfica principalmente.

día para almacenar información geográfica principalmente. Modelo de una base de datos jerárquica El modelo de

Modelo de una base de datos jerárquica

El modelo de base de datos jerárquica tiene un esquema en el que los datos se organizan en una estructura arbórea. Esta estructura permite representar relaciones padre/hijo: cada padre puede tener varios hijos, pero cada hijo ha de venir de sólo un padre (las conocidas como relaciones 1:N). Todos los atributos de un registro específico están asociados a un tipo de entidad. Este modelo fue creado por IBM en 1960.

En una base de datos una entidad tipo es el término genérico para tabla. Cada registro individual se representa como una fila, y cada atributo como una columna. Las entidades tipo se relacionan entre ellas usando correspondencias

1:N.

Actualmente las bases de datos jerárquicas más utilizadas son IMS de IBM y el Registro de Windows de Microsoft.

Sistema de gestión de bases de datos

11

Estructura en red

Esta estructure contiene relaciones más complejas que las jerárquicas. Admite relaciones de cada registro con varios que se pueden seguir por distintos caminos. En otras palabras, el modelo permite relaciones N:N.

El modelo en red está concebido como un modo flexible de representar objetos y sus relaciones. Su cualidad distintiva es que el esquema -visto como un conjunto de nodos conectados por arcos- no tiene ninguna restricción.

El inventor de este modelo fue Charles Bachman, y el estándar fue publicado en 1969 por CODASYL.

La estructura relacional

La estructura relacional es la más extendida hoy en día. Se usa en mainframes, ordenadores medios y micro-computadores. Almacena los datos en filas (tuplas) y columnas (atributos). Estas tablas pueden estar conectadas entre sí por claves comunes. Mientras trabajaba en IBM en 1972, E.F. Codd concibió esta estructura. El modelo no resulta sencillo de interrogar por el usuario ya que puede requerir una compleja combinación de tablas.

La estructura multidimensional

La estructura multidimensional tiene parecidos a la del modelo relacional, pero en vez de las dos dimensiones filas-columnas, tiene N dimensiones. Esta estructura ofrece el aspecto de una hoja de cálculo. Es fácil de mantener y entender ya que los registros se almacenan del mismo modo como se ven. Sus altas prestaciones han hecho de ella la base de datos más popular para el proceso analítico de transacciones en línea (OLAP).

el proceso analítico de transacciones en línea (OLAP). Modelo de base de datos en red Ejemplo

Modelo de base de datos en red

en línea (OLAP). Modelo de base de datos en red Ejemplo de tablas y relaciones Cubos

Ejemplo de tablas y relaciones

de base de datos en red Ejemplo de tablas y relaciones Cubos representando 4 dimensiones en

Cubos representando 4 dimensiones en base de datos multidimensional

Sistema de gestión de bases de datos

12

La estructura orientada a objetos

La estructura orientada a objetos está diseñada siguiendo el paradigma de los lenguajes orientados a objetos. De este modo soporta los tipos de datos gráficos, imágenes, voz y texto de manera natural. Esta estructura tiene gran difusión en aplicaciones web para aplicaciones multi-media.

Antes de la implantación de los SGBD con estructura orientada a objetos, el almacenamiento de datos multi-media se basaba en el sistema de ficheros para organizar, almacenar y procesar los datos. El proceso de ficheros es engorroso, costoso e inflexible. La redundancia de los datos es un inconveniente del proceso de ficheros ya que los

ficheros independientes producen ficheros duplicados con su implicación en el espacio necesario. Otro inconveniente es la falta de integración, y la dificultad de mantenimiento. Esto fue encaminado aplicando la orientación a objetos a los datos.

encaminado aplicando la orientación a objetos a los datos. Ejemplo de base de datos conteniendo objetos

Ejemplo de base de datos conteniendo objetos y herencias

Lenguajes de consulta

Los lenguajes de consulta de bases de datos y de generación de informes permiten interrogar a la base de datos, analizar los datos y actualizarlos según los privilegios de cada usuario. También controla la seguridad de la base de datos para prevenir accesos no autorizados que vean, borren o cambien los datos. Mediante el uso de claves se permite el acceso a toda la base de datos o a parte de ella. A modo de ejemplo, una base de datos de empleados puede contener todos los datos de los empleados, pero sólo un grupo de usuarios puede estar autorizado a ver las nóminas mientras que otros pueden estar autorizados a ver sólo las historias laborales y los datos médicos.

Si el SGBD proporciona un modo de acceder y actualizar la base de datos, así como de consultarla, éste posibilitará la creación de bases de datos personales. Sin embargo, le faltaría la capacidad de dejar trazas de las acciones o los controles necesarios que necesita la base de datos de una gran organización. Estos controles están sólo disponibles cuando un conjunto de programas auxiliares supervisan los accesos y actualizaciones de los datos.

Arquitectura

La arquitectura de un SGBD ha de especificar sus componentes (incluyendo su descripción funcional) y sus interfaces. Trata de conceptos distintos que la arquitectura de la base de datos. Los componentes principales de un SGBD son:

••

Interfaces externos - Medios para comunicarse con el SGDB en ambos sentidos (E/S) y explotar a todas sus funciones. Pueden afectar a la base de datos o a la operación del SGBD, por ejemplo:

••

••

••

operaciones directas con la base de datos: definición de tipos, asignación de niveles de seguridad, actualización

de datos, interrogación de la base de datos operaciones relativas a la operación del SGBD: copia de seguridad y restauración, recuperación tras una caída,

monitoreo de seguridad, gestión del almacenamiento, reserva de espacio, monitoreo de la configuración, monitoreo de prestaciones, afinado los interfaces externos bien pueden ser utilizados por usuarios (p.e. administradores) o bien por programas que

••

se comunican a través de un API. Intérprete o procesador del lenguaje - La mayor parte de las operaciones se efectúan mediante un lenguaje de base de datos. Existen lenguajes para definición de datos, manipulación de datos (p.e. SQL), para especificar aspectos de la seguridad y más. Las sentencias en ese lenguaje se introducen en el SGBD mediante el interfaz adecuado. Se procesan las expresiones en dicho lenguaje (ya sea compilado o interpretado) para extraer las operaciones de modo que puedan ser ejecutadas por el SGBD.

Sistema de gestión de bases de datos

13

••

Optimizador de consultas - Realiza la optimización de cada pregunta y escoge el plan de actuación más eficiente para ejecutarlo.

••

Motor de la base de datos - Realiza las operaciones requeridas sobre la base de datos, típicamente representándolo

a

alto nivel.

••

Mecanismo de almacenamiento - Traduce las operaciones a lenguaje de bajo nivel para acceder a los datos. En algunas arquitecturas el mecanismo de almacenamiento está integrado en el motor de la base de datos.

••

Motor de transacciones - Para conseguir corrección y fiabilidad la mayoría de las operaciones internas del SGBD se realizan encapsuladas dentro de transacciones. Las transacciones pueden ser especificadas externamente al SGBD para encapsular un grupo de operaciones. El motor de transacciones sigue la ejecución de las transacciones

••

gestiona su ejecución de acuerdo con las reglas que tiene establecidas (p. eg., control de concurrencia y su ejecución o cancelación). Gestión y operación de SGBD - Comprende muchos otros componentes que tratan de aspectos de gestión y operativos del SGBD como monitoreo de prestaciones, gestión del almacenamiento, mapas de almacenamiento.

y

Referencias

[1] Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks" (http://www.seas.upenn.edu/~zives/03f/cis550/codd. pdf). In: Communications of the ACM 13 (6): 377387.

Fuentes y contribuyentes del artículo

14

Fuentes y contribuyentes del artículo

Base de datos Fuente: http://es.wikipedia.org/w/index.php?oldid=72379906 Contribuyentes: .Sergio, 3coma14, Achicoria, AdeVega, Advarg, Airunp, Aleator, Alexav8, Alhen, Alphabravotango, Andreasmperu, Angelito7, Angus, AnselmiJuan, Antonorsi, Antur, Armando-Martin, Armin76, Arrt-932, Ascánder, Axvolution, Açipni-Lovrij, Baiji, Baldur71, Bambadee, Banfield, Belb, Biasoli, Bigsus, BlackBeast, BuenaGente, Carrillo1, Cesar4545, ChaTo, Chimbala, Cinabrium, Claudio Elias, Comae, Correogsk, DJ Nietzsche, DLeandroc, DamiánDV, Dangelin5, Daniel G., David0811, Davidaldana1592012, Diegusjaimes, Diotime, Dodo, Dpr, Dreitmen, Ecemaml, Edc.Edc, Eddanlo, Ediazrod, Eduardosalg, Edub, Eli22, Elisardojm, Elwikipedista, Emiduronte, Equi, Er Komandante, Er javi 93, FAR, Fabio.morales, Fcr, Fernandopcg, Fitoschido, Foundling, FrancoGG, Furti, Gaabriieelaa, Gabriel Acquistapace, Gacq, Ganímedes, GermanX, Giliofelix, Ginés90, Gizmo II, Globalphilosophy, Gonis, Googolplanck, Grivadeneira, HUB, HUEVOCHIPS, Halfdrag, Hispa, Humbefa, Humberto, Icvav, Irbian, Isha, Ivanpares, JMPerez, Jcaraballo, Jesuja, Jgalgarra, Jkbw, Jomarocas, Jonik, JorgeGG, Jospaor, Jsanchezes, Jugones55, Juvalen, Kismalac, Klondike, Kokoo, Lazamazu, Leonardo, Leonpolanco, Levhita, Linux65, LlamaAl, Lourdes Cardenal, Lovefamosos, Maca eglarest, MadriCR, Mafores, Magister Mathematicae, Maldoror, Mansoncc, ManuelGR, MarcoAurelio, Matdrodes, Mega-buses, Mel 23, Miguel6666, Mikelo, Milestones, Miss Manzana, Montgomery, Moriel, Mortadelo2005, Muro de Aguas, Murven, Mutari, Napoleón333, Nelauxiliadora, NicolasAlejandro, No sé qué nick poner, Nonick, Nubecosmica, OMenda, Olivares86, Opinador, Orgullomoore, Osado, Otermin, PACO, Pablin3, Pabloab, Pablotorres, Pacolope, PeiT, Petruss, Pieter, Piipeozpiina, Ppfk, Pólux, Qwertymith, Raquel.cagigas, Renacimiento, Ricardogpn, Richi pele, Richi peleamela, Roberto81, RocioMejia555, Roinpa, Rosarino, RoyFocker, Rsg, Rubpe19, Rumpelstiltskin, Ruy Pugliesi, Sabbut, Sammyfunster, Sanbec, Satanás va de retro, Sauron, Savh, Sergio Andres Segovia, Shalbat, Shasa, Soulreaper, Sramco, SuperBraulio13, Superzerocool, Taichi, Takashi kurita, Tano4595, Taragui, Technopat, TheDemon666, Tirithel, Tomatejc, Tostadora, Travelour, UA31, VARGUX, Vitamine, Waka Waka, Wesisnay, Wpersei, Xenoforme, Xpel1, Yamaneko, Yrithinnd, ZackBsAs, Zanorte, Zuirdj, conversion script, 1570 ediciones anónimas

Sistema de gestión de bases de datos Fuente: http://es.wikipedia.org/w/index.php?oldid=72221792 Contribuyentes: 123xt, 4lex, Aaron alex28, Agmesas, Alelapenya, Angelito7, AnselmiJuan, Banfield, Biasoli, Capoquakeman, CarlosBeto, Centroamericano, Creosota, Diegusjaimes, Dodo, Eduardosalg, Emiduronte, Erving Rousseau, Fitoschido, Gblas.ivan, Helmy oved, Hprmedina, Humbefa, Igna, Jkbw, Josefelipeic, Juvalen, Leonpolanco, Leugim1972, Lufegero, Montgomery, Nagb1992, Neopedo, Netito777, Nioger, Olivares86, Poco a poco, Rafa3040, Ricardogpn, Riviera, Robertorp, Savh, SuperBraulio13, Superzerocool, Technopat, Tirithel, UA31, Vetranio, 261 ediciones anónimas

Fuentes de imagen, Licencias y contribuyentes

15

Fuentes de imagen, Licencias y contribuyentes

Archivo:OOo-2.0-Base-ca.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:OOo-2.0-Base-ca.png Licencia: GNU Lesser General Public License Contribuyentes: German, Iradigalesc

Archivo:Commons-logo.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Commons-logo.svg Licencia: logo Contribuyentes: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version, created by Reidab.

Archivo:1tabla.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:1tabla.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Juvalen

Archivo:DB jerarquica.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:DB_jerarquica.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes:

User:Juvalen

File:DB red.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:DB_red.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Juvalen

Archivo:Tablas y estructura relacional.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Tablas_y_estructura_relacional.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Juvalen

Archivo:Cubos en estructura multidimensional.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Cubos_en_estructura_multidimensional.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Juvalen

Archivo:Estructura orientada a objetos.png Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Estructura_orientada_a_objetos.png Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Juvalen

Licencia

Licencia

16

Creative Commons Attribution-Share Alike 3.0

//creativecommons.org/licenses/by-sa/3.0/