martes, 17 de junio de 2008

Base de datos de la computacion


Base de datos
Una base de datos o banco de datos es un conjunto de datos pertenecientes al un mismo contexto y almacenados sistemáticamente para su posterior uso. En la actualidad, 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), que ofrece un amplio rango de soluciones al problema de almacenar datos.
Existen unos programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, 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 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).
Tipos de bases de datos
Las bases de datos pueden clasificarse de acuerdo al criterio elegido para su clasificación:
Según la variabilidad de los datos almacenados
Bases de datos estáticas
Éstas son bases de datos de sólo lectura, utilizadas para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.
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 y adición de datos. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc.
Según el contenido
Bases de datos bibliográficas
Solo contienen un surrogante (representante) de la fuente primaria, que permite localizarla. 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 resúmen o extracto de la publicación original, pero nunca el texto completo, como su nombre lo indica, el contenido son cifras o números.
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 Biológica
Son bases de datos que almacenan diferentes tipos de información proveniente de las ciencias de la vida o médicas. Se pueden considerar en varios subtipos:
Aquellas 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)
Modelos de bases de datos
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 en las bases de datos:
Bases de datos jerárquicas
Artículo principal: Base de datos jerárquica
Éstas son bases de datos que, almacenan su información en una estructura jerárquica, se organizan en una forma similar a un árbol (visto al revés), 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.
Estas bases son útiles en 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 es su incapacidad de representar eficientemente la redundancia de datos.
Base de datos de red
Artículo principal: Base de datos de red
És 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, ya que ofrecía una solución eficiente al problema de redundancia de datos.
Base de datos relacional
Artículo principal: Modelo relacional
Artículo principal: Base de datos relacional
Es el modelo más utilizado para modelar problemas reales y administrar datos dinámicamente. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". 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.
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.
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
Artículo principal: Base de datos multidimensional
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente 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
Artículo principal: Base de datos orientada 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.
Se está trabajando en SQL3, que es el estándar de SQL92 ampliado, que soportará los nuevos conceptos orientados a objetos y mantendría 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.
Base de datos deductivas
Un sistema de base de datos deductivas, 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. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basan en lógica matemática.
Gestión de bases de datos distribuida
La base de datos está almacenada en varias computadoras conectadas en red. 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, etcetera.

 Base de datos relacional
Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común, las mismas poseen características como por ejemplo el nombre de campo, tipo y longitud; se le denomina ID, identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional.
Se refiere a una colección específica de datos a menudo se le usa, en forma errónea como sinónimo del software usado para gestionar esa colección de datos. Ese software se conoce como SGBD (sistema gestor de base de datos) relacional o RDBMS (del inglés relational database management system).
Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos, el cual es, el proceso necesario para que una base de datos sea utilizada de manera óptima.
Entre las ventajas de este modelo están:
Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.
Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes.
Favorece la normalización por ser más comprensible y aplicable.
 
Tabla en las bases de datos, se refiere al tipo de modelamiento de datos, donde se guardan los datos recolectados por un programa. Su estructura general es de un programa de Hoja de cálculo.
Las tablas se componen de dos estructuras:
Campo: Corresponde al nombre de la columna. Debe ser único y además de tener un tipo de dato asociado.
Registro: Corresponde a cada fila que compone la tabla. Eventualmente pueden ser nulos en su almacenamientos.
A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o se han el principal indicar a la hora de ordenar los datos contenidos.
Cada tabla debe tener un nombre único en la cada Base de Datos. La estructura de las tablas viene dado por la forma de un archivo plano, los cuales en un inicio se componían de un modo similar.

Registro (base de datos)
Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo que es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.
En informática, y concretamente en el contexto de una base de datos relacional, un registro (también llamado fila o tupla) representa un ítem único de datos implícitamente estructurados en una tabla. En otras palabras una tabla de una base de datos puede imaginarse formada de filas y columnas o campos..
La estructura implícita de un registro y el significado de los valores sea entendido como una sucesión de datos, uno en cada columna de la tabla. La fila se interpreta entonces como una variable relacional compuesta por un conjunto de tuplas, cada una de las cuales consta de dos ítems: el nombre de la columna relevante y el valor que esta fila provee para dicha columna.
Cada columna espera un valor de un tipo concreto.
Columna (base de datos)
Una tabla de base de datos relacional, es un conjunto de valores de datos de un simple tipo particular. [El término campo es frecuentemente intercambiable con el de columna.
Por ejemplo, una tabla que representa compañías pudo tener las siguientes columnas:
ID(identificador entero, único a cada fila)
Nombre (texto)
Dirección 1 (texto)
Dirección 2 (texto)
Ciudad (identificador entero, proviene de una tabla separada de ciudades, de la que cualquier información del estado o del país puede ser tomada)
Código postal (texto)
Industria (identificador entero, Proviene de una tabla separada de industrias)
etc.
Cada fila puede ser interpretada como una variable relacional, compuesta por un conjunto de tuplas, con cada tupla consistiendo en los dos elementos: el nombre de la columna relevante y el valor que esta fila proporciona para esa columna.

Columna 1
Columna 2
Fila 1
Fila 1 Columna 1
Fila 1 Columna 2
Fila 2
Fila 2 Columna 1
Fila 2 Columna 2
Fila 3
Fila 3 Columna 1
Fila 3 Columna 2

Índice (base de datos)
El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se usa campos sobre los cuales se hagan frecuentes búsquedas.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.
Los índices son construidos sobre árboles B, B+, B* o sobre una mezcla de ellos.
El espacio en disco requerido para almacenar el índice es típicamente menor que el espacio de almacenamiento de la tabla. En una base de datos relacional un índice es una copia de parte de una tabla.
Algunas bases de datos amplían la potencia del indexado al permitir que los índices sean creados de funciones o expresiones. Por ejemplo, un índice puede ser creado sobre la función upper(apellido), que almacenaría en el índice solamente las versiones mayúsculas del campo apellido. Otra opción a veces soportada, es el uso de índices "filtrados", donde las entradas del índice son creadas solamente para los registros que satisfagan una cierta expresión condicional. Un aspecto adicional de flexibilidad es permitir la indexación en funciones definidas por el usario, también como expresiones formadas de un surtido de funciones incorporadas. Todos estos refinamientos de la indexación son soportados en Visual FoxPro. Los índices pueden ser definidos como únicos o no únicos. Un índice único actúa como una restricción en la tabla previniendo filas idénticas en el índice.