lunes, 29 de junio de 2015

carateristicas de base de datos

Características y objetivos

Bases de datos
http://elies.rediris.es/elies9/fig4-2.gifTodos los conceptos referentes a las bases de datos están hoy muy claros y definidos formalmente, al contrario que los de las bases de conocimiento. La tecnología de gestión de bases de datos se halla en una etapa muy madura. Las bases de datos han evolucionado durante los pasados 30 años desde sistemas de archivos rudimentarios hasta sistemas gestores de complejas estructuras de datos que ofrecen un gran número de posibilidades. Los principales objetivos de un DBMS son los siguientes:
  1. Independencia lógica y física de los datos: se refiere a la capacidad de modificar una definición de esquema en un nivel de la arquitectura sin que esta modificación afecte al nivel inmediatamente superior. Para ello un registro externo en un esquema externo no tiene por qué ser igual a su registro correspondiente en el esquema conceptual.6
  2. Redundancia mínima: se trata de usar la base de datos como repositorio común de datos para distintas aplicaciones.
  3. Acceso concurrente por parte de múltiples usuarios: control de concurrencia mediante técnicas de bloqueo o cerrado de datos accedidos.
  4. Distribución espacial de los datos: la independencia lógica y física facilita la posibilidad de sistemas de bases de datos distribuidas. Los datos pueden encontrarse en otra habitación, otro edificio e incluso otro país. El usuario no tiene por qué preocuparse de la localización espacial de los datos a los que accede.
  5. Integridad de los datos: se refiere a las medidas de seguridad que impiden que se introduzcan datos erróneos. Esto puede suceder tanto por motivos físicos (defectos de hardware, actualización incompleta debido a causas externas), como de operación (introducción de datos incoherentes).
  6. Consultas complejas optimizadas: la optimización de consultas permite la rápida ejecución de las mismas.
  7. Seguridad de acceso y auditoría: se refiere al derecho de acceso a los datos contenidos en la base de datos por parte de personas y organismos. El sistema de auditoría mantiene el control de acceso a la base de datos, con el objeto de saber qué o quién realizó una determinada modificación y en qué momento.
  8. Respaldo y recuperación: se refiere a la capacidad de un sistema de base de datos de recuperar su estado en un momento previo a la pérdida de datos.
  9. Acceso a través de lenguajes de programación estándar: se refiere a la posibilidad ya mencionada de acceder a los datos de una base de datos mediante lenguajes de programación ajenos al sistema de base de datos propiamente dicho.
Una base de datos típica conlleva la existencia de tres tipos de usuario con relación a su diseño, desarrollo y uso:
  1. El administrador de bases de datos (DBA: Database Administrator): diseña y mantiene la DB.
  2. El desarrollador de aplicaciones (programador): implementa las transacciones e interfaces.
  3. Los usuarios finales: consultan y editan los datos de la DB mediante un lenguaje de consulta de alto nivel.
No cabe duda de que la parte más importante es la llevada a cabo por el DBA. A él le corresponde la elección de un determinado modelo de datos y el diseño de la DB. La etapa de diseño es la más importante, ya que es ahí donde se refleja la semántica7 de la información contenida en la DB a través del denominado esquema conceptual. Nos detendremos sobre este tema cuando estudiemos el modelado de datos.
En general, podemos decir que el propósito de una base de datos es doble:
  1. responder a consultas sobre los datos que contiene, y
  2. ejecutar transacciones
Una consulta (query) se expresa como una expresión lógica sobre los objetos y relaciones definidos en el esquema conceptual; el resultado es la identificación de un subconjunto lógico de la base de datos. Una transacción consiste en un número de consultas y operaciones de modificación o actualización sobre un subesquema. Las transacciones son atómicas8 por definición: todos los pasos de una transacción han de ser debidamente ejecutados y confirmados como requisito previo para que la transacción pueda ser llevada a cabo en su conjunto, en caso contrario ha de ser invalidada.
Para llevar a cabo estas tareas, el DBA tiene a su disposición la principal herramienta de una base de datos, el sistema gestor de bases de datos (DBMS). A través de éste se realizan todas las operaciones con los datos (consultas y transacciones), de forma que al DBA no le atañe la manera en que los datos se encuentran almacenados físicamente, pudiéndose concentrar en los aspectos conceptuales en cuanto a diseño, desarrollo y mantenimiento. Un DBMS típico integra los siguientes componentes:
  • Un lenguaje de definición de datos (DDL: Data Definition Language).
  • Un lenguaje de manipulación de datos (DML: Data Manipulation Language)
  • Un lenguaje de consulta (QL: Query Language).
  • De forma accesoria, pero ya casi obligada, los DBMS modernos añaden un interfaz de usuario gráfico (GUI: Graphical User Interface).
  • consultas mediante ejemplo (posiblemente gráficas) ((G)QBE: (Graphical) Query By Example)
El QL por excelencia es el llamado Structured Query Language (SQL), que, aun con muchas modificaciones y adiciones, es un estándar de las DBMS relacionales (RDBMS: Relational Database Management System). Hoy en día, sin embargo, con la llegada de las DBMS orientadas a objetos (ODBMS: Object Database Management System), otros estándar de consulta se han hecho necesarios; así ha nacido otro estándar, OQL (Object Query Language), como resultado de una de las primeras implementaciones de ODBMSs (O2, de O2 Technologies). Además, una base de datos puede ser consultada y modificada mediante técnicas "externas", es decir, mediante lenguajes de programación de propósito general, típicamente de tercera generación (3GL). Hoy en día, estas técnicas se hallan muy avanzadas, existiendo estándares que simplifican el acceso a diferentes DBMSs de forma transparente, tales como ODBC (Open Database Connectivity), que garantizan el acceso a los datos de bases, posiblemente remotas, de distintas compañías.
Por lo que a la representación de información léxica se refiere, los sistemas de bases de datos tradicionales presentan serios problemas reconocidos por muchos autores (cf. Ide et al. 1995). En general, las bases de datos no fueron pensadas para almacenar información compleja, sino grandes cantidades de información relativamente simple. Como ya hemos mencionado, los datos contenidos en una DB han de ser por definición atómicos. Esto es necesario para un correcto tratamiento de los mismos, pero por otra parte entorpece la visión de conjunto, esto es, dificulta el tratamiento "inteligente" de entidades complejas.
Este gran inconveniente se hizo evidente una vez superada la fase de dificultades puramente técnicas. Cuando las bases de datos comenzaron a ser utilizadas para otras tareas que no fuesen el guardar los datos correspondientes a una compañía de seguros o una entidad bancaria. Entonces se planteó la necesidad de prestar mayor atención al diseño lógico de la DB, en vez de al nivel físico9. Esta etapa se halla fuertemente influenciada por la investigación en IA, como veremos a continuación.
Bases de conocimiento
La representación del conocimiento, entendido en los términos que presentamos anteriormente, es un problema central en el más vasto campo de la Inteligencia Artificial, en cuanto que esta disciplina tiene como principal objetivo el desarrollo de sistemas "inteligentes" que sean capaces de reproducir lo más fehacientemente posible los mecanismos intelectuales comunes en los humanos, de forma destacada, la comprensión del lenguaje natural, el aprendizaje (acumulación de experiencia), el razonamiento lógico, la resolución de problemas y el reconocimiento de patrones (p. ej. en visión robótica). Una definición representativa de lo que comúnmente se entiende por "Inteligencia Artificial" es la de Barr y Feigenbaum (1981:4):
Artificial Intelligence (AI) is the part of computer science concerned with designing intelligent computer systems, that is, systems that exhibit the characteristics we associate with intelligence in human behavior - understanding language, learning, reasoning, solving problems, and so on.
Las técnicas comunes en IA consisten por tanto en el estudio minucioso de la actividad o comportamiento que se desea emular, en primer lugar y después, y sobre todo, su implementación en algún tipo de autómata.
El paradigma actual de "inteligencia", en contraste con el anterior, basado principalmente en técnicas heurísticas de búsqueda (Goldstein & Papert 1977), acentúa la necesidad de conocimiento experto para la realización de tareas inteligentes (Mylopoulos & Levesque 1984). La idea es que lo central para nuestra actividad mental normal es un gran repositorio de conocimiento experto sobre muy diferentes materias específicas y sobre el mundo en general. Por tanto, es evidente que si nuestro objetivo es replicar esquemas mentales humanos en un autómata, éste deberá poseer un repositorio parecido de información del que pueda hacer uso, mediante diversos dispositivos, para el manejo inteligente de esa información. En suma, la posesión de conocimiento es absolutamente indispensable para la realización de una tarea "inteligente".
Sin embargo, como venimos diciendo, esto no fue siempre así. De hecho, podemos distinguir cuatro fases o "categorías históricas" (Barr & Feigenbaum 1981) en el estudio del lenguaje natural por parte de los investigadores de IA:
  1. Los primeros programas que se realizaron poseían un conocimiento del lenguaje prácticamente nulo, y estaban limitados a un dominio muy concreto. Simplemente analizaban el input en busca de palabras clave o de patrones relacionados con alguno de los temas que "conocían" . El output era formado a través de reglas de dominio específico llamadas heuristics, de forma que hacían creer que entendían lo que se les estaba diciendo. El mejor representante de estos programas, es sin duda el Eliza de Weizenbaum (Weizenbaum 1976), que intentaba simular un consultorio psicológico. El usuario introduce su problema o preocupación y Eliza responde o intenta extraer más información (que guarda para usarla cuando la conversación llega a un punto muerto); también hace uso de un buen número de frases comodín y regala al "paciente" con sus consejos. Otros programas de estas características son BASEBALL (Green et al. 1963) o STUDENT (Bobrow 1968).
  2. Otros programas parecidos fueron los basados en texto. Éstos, de los cuales destacamos PROTO-SYNTHEX-I (Simmons et al. 1966) almacenaban el texto mismo en su base de datos, por lo que no estaban ceñidos a un dominio particular. Sin embargo, al igual que los anteriores, no poseían capacidades deductivas de ningún tipo, ni podían analizar el contenido semántico del input; se encontraban restringidos a responder con el material textual que previamente se les había introducido.
  3. En tercer lugar encontramos los sistemas de lógica limitada. Estos sistemas ofrecían (limitadas) capacidades deductivas, ya que eran capaces de producir información no almacenada explícitamente en la base de datos. Además, llevaban a cabo una cierta interpretación semántica, al traducir frases de insumo en lenguaje natural a la notación lógica interna de la base de conocimiento. Usando el cálculo de predicados, eran capaces de hacer inferencias del tipo:
– ‘¿Es un avestruz un ave?’
avestruz(x),
forall.gif (846 bytes)(x)[avestruz(x)arrow.gif (839 bytes) ave(x)],
ave(x);
– ‘Sí.’
  1. El último tipo son los sistemas de que venimos hablando, los basados en el conocimiento, cuyo desarrollo está íntimamente ligado a la investigación de IA sobre representación del conocimiento. Estos sistemas intentan almacenar una gran cantidad de información para usarla de modos diferentes con el objeto de "entender" el lenguaje natural, generarlo, deducir, etc. Se basan en la idea básica, ya mencionada de que para la resolución de un problema complejo dentro de un determinado ámbito, es preciso un conocimiento experto sobre ese ámbito.
Como esta evolución implica, los sistemas de lenguaje natural de IA hoy día están casi exclusivamente basados en el conocimiento. Éste, por otra parte, necesita ser estructurado y debidamente modelado para poder almacenarlo bajo una notación apropiada como repositorio de información. De hecho, podemos afirmar que la representación de conocimiento es el hilo conductor de los diferentes campos que abarca la IA (McCalla & Cercone 1983).
A este repositorio de información estructurada que se usa para resolver tareas que requieren conocimiento experto se le conoce como base de conocimiento. Este concepto, necesita de una definición más formal . Por ejemplo, dicho así - "repositorio de información estructurada" - cabría pensar que una enciclopedia impresa, estructurada en artículos, es una base de conocimiento; sin embargo una KB tiene que poseer otras facultades.
Sin embargo, en lo que respecta a las bases de conocimiento, no existen estándares ni definiciones. En general se supone que un KBMS, a diferencia de un DBMS, debe ofrecer estas dos posibilidades fundamentales (Mylopoulos 1986):
  • Mecanismos de razonamiento: el KBMS debe ser capaz de extraer conclusiones lógicas a partir de la información y reglas que contiene.
  • Mecanismos de explicación que permitan al usuario del KBMS averiguar el estado del mecanismo de razonamiento, obtener consejo, y justificación de una determinada conclusión obtenida por el mecanismo de razonamiento
A partir de estos requerimientos deberíamos establecer alguna tipología de KBMSs atendiendo no a su arquitectura (no existen arquitecturas genéricas estándar), sino a su funcionalidad. Lo que caracteriza a los sistemas de representación de conocimiento es que se han desarrollado en diversos ámbitos con propósitos específicos. Mientras que un mismo sistema de bases de datos se puede utilizar para múltiple propósitos, los KBMS no son por lo general de propósito general. (Jarke et al. 1989) presentan la siguiente tipología de aplicaciones de IA en las que las bases de conocimiento son utilizadas:
  • Sistemas expertos
  • Sistemas de procesamiento de lenguaje natural
  • Sistemas de visión robótica
  • Entornos de desarrollo
Son los segundos los que nos interesan, aunque en realidad la mayoría de los sistemas de IA toman la forma de sistemas expertos. Las relaciones entre el procesamiento del lenguaje natural y los KBMS han estado siempre motivadas por los intereses de los investigadores en IA, no por los de lingüistas o lexicógrafos. La aplicación de sistemas basados en el conocimiento a la TA es muy novedosa, y, según pensamos, los clásicos sistemas de KBMS no se adaptan a las necesidades de este tipo de aplicaciones, al no conceder la importancia necesaria a la información detallada en general ni a los aspectos procedimentales. El interés de los investigadores de IA por el lenguaje natural está centrado casi exclusivamente en la comunicación hombre-máquina, por tanto su objetivo es la construcción de interfaces en lenguaje natural que faciliten esta interacción. Éstos son los denominados interfaces de lenguaje natural (NLI: Natural Language Interfaces).
De hecho, el interés por los sistemas de NLP basados en el conocimiento surgió a raíz de la necesidad de construir interfaces en lenguaje natural para sistemas expertos. Estos sistemas son alimentados con toda la información disponible sobre un determinado tema muy específico, por ejemplo diagnósticos médicos, sistemas de ingeniería. Después, mediante un interfaz apropiado que acepta un conjunto de estructuras sintácticas y elementos léxicos específico, son capaces de responder adecuadamente a consultas complejas relacionando la información que poseen.
Las tareas para las que estos sistemas se desarrollan son, casi por definición, complejas (Walker et al. 1987). Por tanto, un sistema experto es un sistema computacional capaz de representar y razonar sobre un dominio determinado que precisa de gran cantidad de conocimiento, tal como la aeronáutica o la medicina. Se puede distinguir de otros tipos de aplicaciones de IA en que (Jackson 1986):
  • trabaja con temas complejos que normalmente requieren una considerable cantidad de experiencia humana;
  • debe ser una herramienta práctica y útil; para ello debe ofrecer un alto rendimiento en cuanto a velocidad de ejecución y fiabilidad;
  • debe ser capaz de explicar y justificar sus soluciones y consejos para convencer al usuario de lo correcto de su razonamiento.
Los sistemas expertos son el tipo de aplicación de IA que mejores resultados ha conseguido. Estos sistemas son usados hoy en día en un amplio abanico de dominios y han probado ser altamente fiables. Por ello sería deseable la disponibilidad de interfaces en lenguaje natural que facilitasen la comunicación con el sistema por parte de usuarios no expertos en computación (médicos, biólogos, ingenieros). Existen tres modos de ver la relación entre un NLI y el KBMS. La primera es la construcción de un NLI para manejar un KBMS. La segunda construir un KBMS para implementar un NLI. La tercera construir un NLI (soportado por el KBMS) para sistemas basados en el conocimiento. Estas relaciones quedan expuestas en la Figura 4.1.
Figura 4.1
Relaciones NLI / KBMS
Para que un programa pueda ser calificado de NLI debe cumplir las dos condiciones siguientes:
  1. Un subconjunto del input o el output del sistema se realiza en lenguaje natural
  2. El procesamiento del input (generación del output) se basa en conocimiento de tipo sintáctico, semántico y/o pragmático.
Los tres modos anteriormente citados de usar el lenguaje natural en IA reflejan a nuestro parecer tres estadios de investigación, superando una primera fase en que se pretendía un análisis extremadamente simplista del lenguaje. Tras observar la enorme complejidad que éste conlleva, se hizo obvia la necesidad de tratar el lenguaje humano como un objeto de estudio en sí mismo, para poder siquiera pensar en usarlo como medio de interacción hombre-máquina. En esta etapa se empezaron a plantear cuestiones que los lingüistas han estado estudiando desde mucho tiempo atrás. Un KBMS para NLI habrá de integrar los siguientes tipos de conocimiento (Jarke et al.1989):
  • Conocimiento lingüístico.
  • Conocimiento conceptual.
  • Conocimiento inferencial.
  • Conocimiento del usuario.
La Figura resume las fuentes de conocimiento lingüístico necesario para el desarrollo de NLIs según la IA. Este cuadro revela cómo los investigadores de IA contemplan el estudio del lenguaje natural.

Conocimiento requerido por un NLI
Finalmente, en IA se señalan algunas características necesarias en una KB para el procesamiento de lenguaje natural:
  • Representación de conocimiento: el sistema de representación10 debería ser un esquema híbrido que contuviese subesquemas basados en marcos (frames), hechos de base de datos y reglas de deducción. Las distintas unidades de conocimiento codificadas en uno de estos esquemas tendrán que ser agregadas a los esquemas híbridos de una fuente de conocimiento (lingüístico, conceptual, etc.), que a su vez tendrá que ser agregada a la base de conocimiento global.
  • Organización del conocimiento: el KBMS deberá organizar al menos dos bases de conocimiento en el caso de un sistema basado en NLI: la KB del lenguaje natural (NL KB) y la KB a la que el NLI proporciona acceso mediante lenguaje natural. A su vez, la NLKB habrá de estar organizada distinguiendo: conocimiento de entorno, conocimiento específico de trabajo y conocimiento específico de diálogo (ver Figura 4.1)
  • Entorno de integración: el KBMS deberá proporcionar un entorno que permita la entrada de datos para las distintas KBs. Este aspecto de adquisición de conocimiento se puede realizar mediante el NLI una vez se haya construido parcialmente. Lo ideal para crear la base de conocimiento de lenguaje natural es el trabajo conjunto de expertos en los dos campos: la lingüística y la IA.
Como observamos, las diferencias de descripción detallada de bases de datos y bases de conocimiento son abismales. Las bases de datos son sistemas muy bien establecidos en donde todo lo que puede o no puede llevar a cabo el sistema y cómo llevarlo a cabo está perfectamente establecido. El trabajo en bases de conocimiento se encuentra aún en una fase germinal, y por lo general se trata de sistemas específicos para necesidades específicas. La literatura en torno a las bases de conocimiento es aún altamente programática, intentando sentar las bases de lo que se supone que estos sistemas serán capaces de hacer. No es extraño encontrar aserciones contradictorias en distintos autores con distintos fines. Incluso así, en el siguiente apartado intentaremos mostrar cuáles son las definiciones formales y arquitecturas que se han propuesto hasta ahora. Ni que decir tiene que el entorno de bases de datos se encuentra totalmente establecido. Comenzamos pues por exponer la arquitectura general de bases de datos.

POR:

SERGIO PACOHUANCA TICONA

miércoles, 17 de junio de 2015

Tipos de bases de datos según la organización lógica de los datos

En un principio existían tres tipos de bases de datos según su estructura interna (la manera de organizar la información):
            Bases de datos jerárquicas
            Bases de datos en red
            Bases de datos relacionales.
Más recientes son las bases de datos orientadas a objetos y las bases de datos multidimensionales.

1. Las bases de datos jerárquicas
En una base de datos jerárquica se organizan los datos utilizando estructuras arborescentes (en árbol).
Un ÁRBOL es una estructura jerárquica en la que los elementos se suelen denominar NODOS y existen dependencias entre los nodos.
La dependencia es de 1:M del tipo padre/hijo. Un hijo no puede tener más de un padre, pero un padre varios hijos.


BBDD Jerárquicas
Un ejemplo de base de datos jerárquica es el sistema IMS.
2. Las bases de datos en red
También en desuso, en una base de datos en red se utiliza la estructura de grafo/red, como en el caso anterior los distintos objetos están relacionados entre sí mediante relaciones del tipo 1:M pero en este caso un objeto puede estar relacionado como hijo con varios elementos que serán sus padres. Un este caso las relaciones que se crean se denominan SET y el equivalente al padre se denomina PROPIETARIO (OWNER) y el equivalente al hijo se denomina MIEMBRO (MEMBER).
Un ejemplo de sistema en red es el CODASYL. También existen modelos para realizar el diseño de datos orientado a bases de datos en red.
En red podríamos representar lo mismo que la estructura anterior y además lo siguiente:


BBDD Red
Los sistemas jerárquico y en red constituyen la primera generación de los SGBD. Pero estos sistemas presentan algunos inconvenientes:

  • Es necesario escribir complejos programas de aplicación para responder a cualquier tipo de consulta de datos, por simple que ésta sea.
  • La independencia de datos es mínima.
  • No incluyen controles de integridad.
Por lo que pronto fueron sustituidos por los sistemas relacionales.
3. Las bases de datos relacionales
Esta es la estructura que se ha impuesto para aplicaciones de gestión, consiste en organizar los datos en forma de tablas, las relaciones entre los objetos se consiguen incluyendo en la tabla del hijo, la clave del objeto padre. Como son las que utilizaremos durante todo el módulo hemos reservado un apartado especial para ellas.

4. Las bases de datos orientadas a objetos
Es un modelo más reciente, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). La información que contienen se organiza en atributos y el comportamiento en operaciones.

5. Las bases de datos mutidimensionales
En una base de datos multidimensional los datos se almacenan en tablas de múltiples dimensiones en vez de tablas bidimensionales como las del modelo relacional. Se utilizan para grandes volúmenes de información.




BASE DE DATOS RELACIONAL



BASE DE DATOS RELACIONAL

Una Base de Datos Relacional, es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya planificadas. Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre: "Modelo Relacional". Tras ser postuladas sus bases 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.

CARACTERISTICAS
·         Una Base de Datos se compone de varias tablas o relaciones.
·         No pueden existir dos tablas con el mismo nombre ni registro.
·         Cada tabla es a su vez un conjunto de registros (filas y columnas).
·         La relación entre una tabla padre y un hijo se lleva a cabo por medio de las claves primarias y ajenas (o foráneas).
·         Las claves primarias son la clave principal de un registro dentro de una tabla y éstas deben cumplir con la integridad de datos.
·         Las claves ajenas se colocan en la tabla hija, contienen el mismo valor que la clave primaria del registro padre; por medio de éstas se hacen las formas relacionales

ELEMENTOS

Relaciones Base y Derivadas

En una base de datos relacional, todos los datos se almacenan y se accede a ellos por medio de relaciones. Las relaciones que almacenan datos son llamadas "relaciones base" y su implementación es llamada "tabla". Otras relaciones no almacenan datos, pero son calculadas al aplicar operaciones relacionales. Estas relaciones son llamadas "relaciones derivadas" y su implementación es llamada "vista" o "consulta". Las relaciones derivadas son convenientes ya que expresan información de varias relaciones actuando como si fuera una sola tabla.

Restricciones

Una restricción es una limitación que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.
Las restricciones proveen un método de implementar reglas en la base de datos. Las restricciones limitan los datos que pueden ser almacenados en las tablas. Usualmente se definen usando expresiones que dan como resultado un valor booleano, indicando si los datos satisfacen la restricción o no.
Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizar mejor los datos. Las restricciones son muy discutidas junto con los conceptos relacionales.

Dominios

Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores del atributo, puede ser considerado como una restricción. Matemáticamente, atribuir un dominio a un atributo significa "cualquier valor de este atributo debe ser elemento del conjunto especificado".
Distintos tipos de dominios son: enteros, cadenas de texto, fecha, no procedurales, etc.
Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de campos se llama clave única. Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a clave primaria.

Clave primaria

Una clave primaria es una clave única elegida entre todas las candidatas que define unívocamente a todos los demás atributos de la tabla, para especificar los datos que serán relacionados con las demás tablas. La forma de hacer esto es por medio de claves foráneas.

Clave foránea

Una clave foránea es una referencia a una clave en otra tabla, determina la relación existente en dos tablas. Las claves foráneas no necesitan ser claves únicas en la tabla donde están y sí a donde están referenciadas.
Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de empleados. Se permite que haya varios empleados en un mismo departamento, pero habrá uno y sólo un departamento por cada clave distinta de departamento en la tabla de departamentos.

Clave índice

Las claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los índices pueden ser creados con cualquier combinación de campos de una tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar los registros de forma no secuencial usando la clave índice.
Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una de ellas es óptima para cierta distribución de datos y tamaño de la relación.
Los índices generalmente no se consideran parte de la base de datos, pues son un detalle agregado. Sin embargo, las claves índices son desarrolladas por el mismo grupo de programadores que las otras partes de la base de datos.

Procedimientos almacenados

Un procedimiento almacenado es código ejecutable que se asocia y se almacena con la base de datos. Los procedimientos almacenados usualmente recogen y personalizan operaciones comunes, como insertar un registro dentro de una tabla, recopilar información estadística, o encapsular cálculos complejos. Son frecuentemente usados por un API por seguridad o simplicidad.
Los procedimientos almacenados no son parte del modelo relacional, pero todas las implementaciones comerciales los incluyen.
ESTRUCTURA
La base de datos se organiza en dos marcadas secciones; el esquema y los datos (o instancia).
El esquema es la definición de la estructura de la base de datos y principalmente almacena los siguientes datos:
·         El nombre de cada tabla
·         El nombre de cada columna
·         El tipo de dato de cada columna
·         La tabla a la que pertenece cada columna
Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización, el resultado de dicho proceso es un esquema que permite que la base de datos sea usada de manera óptima.
Los datos o instancia es el contenido de la base de datos en un momento dado. Es en sí, el contenido de todos los registros.
MANIPULACION DE LA INFORMACION
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el álgebra relacional y el cálculo relacional. El álgebra relacional permite describir la forma de realizar una consulta, en cambio, el cálculo relacional sólo indica lo que se desea devolver.
El lenguaje más común para construir las consultas a bases de datos relacionales es SQL (Structured Query Language), un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales integradas.
En el modelo relacional los atributos deben estar explícitamente relacionados a un nombre en todas las operaciones, en cambio, el estándar SQL permite usar columnas sin nombre en conjuntos de resultados, como el asterisco taquigráfico (*) como notación de consultas.
Al contrario del modelo relacional, el estándar SQL requiere que las columnas tengan un orden definido, lo cual es fácil de implementar en una computadora, ya que la memoria es lineal.
Es de notar, sin embargo, que en SQL el orden de las columnas y los registros devueltos en cierto conjunto de resultado nunca está garantizado, a no ser que explícitamente sea especificado por el usuario.
MANEJADORES DE BASE DE DATOS RELACIONAL
Existe software exclusivamente dedicado a tratar con bases de datos relacionales. Este software se conoce como SGBD (Sistema de gestión de base de datosrelacional) o RDBMS (del inglés Relational Database Management System).
Entre los gestores o manejadores actuales más populares encontramos:
·         MySQL
·         PostgreSQL,
·         Oracle,
·         DB2,
·         [[Informix]],
·         Interbase,
·         Firebird,
·         Sybase
·         Microsoft SQL Server

VENTAJAS Y DESVENTAJAS

Ventajas

·         Provee herramientas que garantizan evitar la duplicidad de registros.
·         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.

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.
·         Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo de satisfacer las necesidades de las aplicaciones anteriores y así, complementar pero no sustituir a las bases de datos relacionales.
DISEÑO DE BASE DE DATOS RELACIONAL
El primer paso para crear una base de datos, es planificar el tipo de información que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información disponible y la información que necesitamos.
La planificación de la estructura de la base de datos, en particular de las tablas, es vital para la gestión efectiva de la misma. El diseño de la estructura de una tabla consiste en una descripción de cada uno de los campos que componen el registro y los valores o datos que contendrá cada uno de esos campos.
Los campos son los distintos tipos de datos que componen la tabla, por ejemplo: nombre, apellido, domicilio. La definición de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc.
Los registros constituyen la información que va contenida en los campos de la tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la dirección de este. Generalmente los diferentes tipos de campos que se pueden almacenar son los siguientes: Texto (caracteres), Numérico (números), Fecha / Hora, Lógico (informaciones lógicas si/no, verdadero/falso, etc.), imágenes.
En resumen, el principal aspecto a tener en cuenta durante el diseño de una tabla es determinar claramente los campos necesarios, definirlos en forma adecuada con un nombre especificando su tipo y su longitud.

Por:  Grover Oldren Marca Apaza