viernes, 17 de diciembre de 2010

ACTIVIDAD 10

ACTIVIDAD 9

METODOLOGIAS DE DESARROLLO DEL SOFTWARE
            
Una metodología de desarrollo de software se refiere a un framework que es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información.
A lo largo del tiempo, una gran cantidad de métodos han sido desarrollados diferenciándose por su fortaleza y debilidad.
El framework para metodología de desarrollo de software consiste en:
Estos frameworks son a menudo vinculados a algún tipo de organización, que además desarrolla, apoya el uso y promueve la metodología. La metodología es a menudo documentada en algún tipo de documentación formal.
El desarrollo de los sistemas tradicionales de ciclo de vida se originó en la década de 1960 para desarrollar a gran escala funcional de sistemas de negocio en una época de grandes conglomerados empresariales. La idea principal era continuar el desarrollo de los sistemas de información en una muy deliberada, estructurada y metódica, reiterando cada una de las etapas del ciclo de vida. Los sistemas de información en torno a las actividades resueltas pesadas para el procesamiento de datos y rutinas de cálculo.
Cada metodología de desarrollo de software tiene más o menos su propio enfoque para el desarrollo de software. Estos son los enfoques más generales, que se desarrollan en varias metodologías específicas. Estos enfoques son los siguientes:
  • Modelo en cascada: Framework lineal.
  • Prototipado: Framework iterativo.
  • Incremental: Combinación de framework lineal e iterativo.
  • Espiral: Combinación de framework lineal e iterativo.
  • RAD: Rapid Application Development, framework iterativo.
Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a través de las fases de análisis de las necesidades, el diseño, implementación, pruebas (validación), la integración, y mantenimiento. La primera descripción formal del modelo de cascada se cita a menudo a un artículo publicado por Winston Royce W.[2] en 1970, aunque Royce no utiliza el término "cascada" de este artículo.
Los principios básicos del modelo de cascada son los siguientes:
  • El proyecto está dividido en fases secuenciales, con cierta superposición y splashback aceptable entre fases.
  • Se hace hincapié en la planificación, los horarios, fechas, presupuestos y ejecución de todo un sistema de una sola vez.
  • Un estricto control se mantiene durante la vida del proyecto a través de la utilización de una amplia documentación escrita, así como a través de comentarios y aprobación / signoff por el usuario y la tecnología de la información de gestión al final de la mayoría de las fases antes de comenzar la próxima fase.
El prototipado es el framework de actividades dedicada al desarrollo de software prototipo, es decir, versiones incompletas del software a desarrollar.
Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro.
Los principios básicos son:
  • Una serie de mini-Cascadas se llevan a cabo, donde todas las fases de la cascada modelo de desarrollo se han completado para una pequeña parte de los sistemas, antes de proceder a la próxima incremental
  • Se definen los requisitos antes de proceder con la evolutivo, se realiza un mini-Cascada de desarrollo de cada uno de los incrementos del sistema
  • El concepto inicial de software, análisis de las necesidades, y el diseño de la arquitectura y colectiva básicas se definen utilizando el enfoque de cascada, seguida por iterativo de prototipos, que culmina en la instalación del prototipo final.
Los principios básicos son:
  • La atención se centra en la evaluación y reducción del riesgo del proyecto dividiendo el proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideración de la continuación del proyecto durante todo el ciclo de vida.
  • Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: (1) determinar objetivos, alternativas, y desencadenantes de la iteración; (2) Evaluar alternativas; Identificar y resolver los riesgos; (3) desarrollar y verificar los resultados de la iteración, y (4) plan de la próxima iteración.[3]
  • Cada ciclo comienza con la identificación de los interesados y sus condiciones de ganancia, y termina con la revisión y examinación.[3]
Rapid Application Development (RAD)
El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de software, que implica el desarrollo iterativo y la construcción de prototipos. El desarrollo rápido de aplicaciones es un término originalmente utilizado para describir un proceso de desarrollo de software introducido por James Martin en 1991.
Principios básicos:
  • Objetivo clave es para un rápido desarrollo y entrega de una alta calidad en un sistema de relativamente bajo coste de inversión.
  • Intenta reducir el riesgo inherente del proyecto partiéndolo en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.
  • Orientación dedicada a producir sistemas de alta calidad con rapidez, principalmente mediante el uso de iteración por prototipos (en cualquier etapa de desarrollo), promueve la participación de los usuarios y el uso de herramientas de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaz gráfica de usuario (GUI), Computer Aided Software Engineering (CASE) las herramientas, los sistemas de gestión de bases de datos (DBMS), lenguajes de programación de cuarta generación, generadores de código, y técnicas orientada a objetos.
  • Hace especial hincapié en el cumplimiento de la necesidad comercial, mientras que la ingeniería tecnológica o la excelencia es de menor importancia.
  • Control de proyecto implica el desarrollo de prioridades y la definición de los plazos de entrega. Si el proyecto empieza a aplazarse, se hace hincapié en la reducción de requisitos para el ajuste, no en el aumento de la fecha límite.
  • En general incluye Joint application development (JAD), donde los usuarios están intensamente participando en el diseño del sistema, ya sea a través de la creación de consenso estructurado en talleres, o por vía electrónica.
  • La participación activa de los usuarios es imprescindible.
  • Iterativamente realiza la producción de software, en lugar de colgarse de un prototipo.
  • Produce la documentación necesaria para facilitar el futuro desarrollo y mantenimiento.
Otros enfoques de desarrollo de software
  • Metodologías de desarrollo Orientado a objetos, Diseño orientado a objetos (OOD) de Grady Booch, también conocido como Análisis y Diseño Orientado a Objetos (OOAD). El modelo incluye seis diagramas: de clase, objeto, estado de transición, la interacción, módulo, y el proceso.
  • Top-down programming, evolucionado en la década de 1970 por el investigador de IBM Harlan Mills (y Niklaus Wirth) en Desarrollo Estructurado.
  • Proceso Unificado, es una metodología de desarrollo de software, basado en UML. Organiza el desarrollo de software en cuatro fases, cada una de ellas con la ejecución de una o más iteraciones de desarrollo de software: creación, elaboración, construcción, y las directrices. Hay una serie de herramientas y productos diseñados para facilitar la aplicación. Una de las versiones más populares es la de Rational Unified Process.

viernes, 10 de diciembre de 2010

actividad 8 FLUJOGRAMA

actividad 7

FLUJOGRAMA
Es una representación gráfica de la secuencia de actividades de un proceso.

Además de la secuencia de actividades, el flujo grama muestra lo que se realiza en cada etapa, los materiales o servicios que entran y salen del proceso, las decisiones que deben ser tomadas y las personas involucradas (en la cadena cliente/proveedor)

El flujo grama hace más fácil el análisis de un proceso para la identificación de:

Las entradas de proveedores; las salidas de sus clientes y de los puntos críticos del proceso.

SIMBOLOS
El flujo grama utiliza un conjunto de símbolos para representar las etapas del proceso, las personas o los sectores involucrados, la secuencia de las operaciones y la circulación de los datos y los documentos.

Los símbolos más comunes utilizados son los siguientes:

Límites: Este símbolo se usa para identificar el inicio y el fin de un proceso:



Operación: Representa una etapa del
Proceso. El nombre de la etapa y de quien


La ejecuta se registra al interior del rectángulo:


Documento: Simboliza al documento resultante de la operación respectiva. En su interior se anota el nombre que corresponda:





Decisión: Representa al punto del
Proceso donde se debe tomar una decisión. La pregunta se escribe dentro
Del rombo. Dos flechas que salen del rombo muestran la dirección del proceso, en función de la respuesta real:



Sentido del flujo: Significa el sentido y la secuencia de las etapas del proceso:

SE USA PARA:
Entender un proceso e identificar las oportunidades de mejora de la situación actual.

Diseñar un nuevo proceso, incorporando las mejoras (situación deseada).

Facilitar la comunicación entre las personas involucradas en el mismo proceso.

Divulgar, en forma clara y concisa, informaciones sobre procesos.

¿CÓMO USARLO?
Defina el proceso que se va a realizar.

Escoja un proceso relacionado con el producto o servicio más importante, desde el punto de vista del cliente.

Elabore un flujo del proceso, identificando sus grandes bloques de actividades.

Organice, para la elaboración del flujo grama, un grupo compuesto por las personas involucradas en las actividades del proceso.

Defina detalladamente las etapas del proceso y describa las actividades y los productos o los servicios que resulten de cada una de ellas.

Identifique los responsables para la realización de cada actividad identificada.

Chequee si el flujo grama diseñado corresponde a la forma como se ejecuta el proceso en la práctica, y haga las correcciones que considere necesarias.

miércoles, 24 de noviembre de 2010

ACTIVIDAD 6

TALLER
*QUE SON LAS TECNICAS DE EXTRACCION DE LA INFORMACION? La Extracción de la información (de sus siglas en inglés IE, Information Extraction) es un tipo de recuperación de la información cuyo objetivo es extraer automáticamente información estructurada o semiestructurada desde documentos legibles por una computadora.
Una aplicación típica de IE es el escaneado de una serie de documentos escritos en una lengua natural y rellenar una base de datos con la información extraída. Las tendencias actuales en relación con la IE utilizan técnicas de procesamiento de lenguaje natural que se centran en áreas muy restringidas. Por ejemplo, la Message Understanding Conference (MUC), o Conferencia para la Comprensión de Mensajes es una competición que se ha centrado en los siguientes aspectos durante los últimos años:
  • MUC-1 1987, MUC-2 1989: Mensajes para operaciones navales.
  • MUC-3 1991: Terrorismo en países latinoamericanos.
  • MUC-5 1993: Microelectrónica.
  • MUC-6 1995: Nuevos artículos a cerca de los cambios en la gerencia.
  • MUC-7 1998: Informes de lanzamiento de satélites.
Un SEI (Sistema de Extracción de Información), típicamente extrae informaciones sobre entidades, relaciones y eventos a partir de los documentos existentes en un dominio restringido.


*CUALES SON? A continuación se describen los distintos métodos utilizados para la extracción y recuperación de la información de una manera supervisada:
  • Modelo oculto de Markov (HMM): Es un modelo estadístico en el que se asume que el sistema a modelar es un proceso de Markov de parámetros desconocidos. El objetivo es determinar los parámetros ocultos a partir de los parámetros observables.
  • Árboles de decisión: Algoritmo de clasificación y regresión basado en la construcción de un árbol, en el que se parte de la raíz y a partir de los valores de la entrada se profundiza hacia los nodos hoja, eligiendo un camino u otro dependiendo de los valores de la entrada. Cada nodo hoja representa una clase de la clasificación.
Redes de cuantización vectorial (LVQ): Caso especial de una red de neuronas artificial, con más precisión, en el que se aplica un winner-take-all basado en la teoría de Hebbian.
La filosofía de trabajo de los SEI se basa en la aplicación de un conjunto de reglas construidas, tanto manual como automáticamente, para identificar las referencias a la información que nos interesa dentro de una serie de textos y proporcionar una representación simbólica de la misma. Estas reglas están basadas en aspectos del vocabulario, de la semántica y del estilo de escritura propios de cada dominio [Soderland, 1997]. Por esto la utilización de técnicas para el procesamiento del lenguaje natural y el uso de conocimiento relacionado con el dominio en que se está trabajando son de vital importancia para la construcción de un SEI.

*COMO SE APLICAN AL DESARROLLO DE SISTEMAS DE INFORMACION? Las aplicaciones de los sistemas de extracción de información es un campo muy amplio dado que en toda área profesional donde se maneje información (industrias, empresas, organismos públicos, etc.) pueden resultar muy útiles.
Los sistemas de extracción de información pueden dotar de contenido semántico toda aquella información que existe hoy en día en ficheros en formato digital. Esto significa una verdadera revolución para todas las tecnologías de la información tal y como los conocemos. Hoy por hoy la información publicada está totalmente vacía de un segundo sentido. Es decir, es el mismo usuario que utiliza la información el que la dota de sentido. Con los SEI, podemos hacer que la información cobre sentido y pueda ser extraida aquella parte de la información que nos interesa.
Por ejemplo, encontramos una aplicación de un SEI para el envío de asistencia médica. El sistema de extracción de información fue diseñado para resumir el historial médico de cada paciente, extrayendo los diagnósticos, síntomas, análisis realizados y tratamientos recibidos. Este tipo de sistemas se pueden utilizar para asistir a los médicos, o bien para las compañías de seguros, para el cálculo de reembolsos que debe dar a cada paciente asegurado.
Otro ejemplo de la utilización de sistemas de extracción de información se aplica al campo de la inspección literaria científica o técnica. Existen sistemas de EI para capturar información relevante de artículos técnicos o científicos, por ejemplo la captura de las propiedades de un producto farmacéutico.
Por último, encontramos una aplicación de extracción de información que sirve para recabar información publicada en periódicos digitales e incluso en noticias radiofónicas.

ACTIVIDAD 5

ACTIVIDAD HTML
QUE ES HTML? HTML es el lenguaje con el que se definen las páginas web.
PARA QUE SIRVE?  Básicamente se trata de un conjunto de etiquetas que sirven para definir el texto y otros elementos que compondrán una página web.

LISTE TODAS LAS ETIQUETAS HTML:   
Códigos HTML listado general de etiquetas y atributo
<A> Hipervínculo. (Ej.: < a href="DIRECCION WEB" >Text</a>

<ADDRESS> Formato para dirección del autor.

<BASE> Url del autor; contexto del documento.

<BASEFONT SIZE> Tamaño de la fuente base.

<BGSOUND> Sonido de fondo.

<BIG> Aumenta el tamaño. Ninguno

<BLINK> Hace parpadear el texto.[Sólo con algunos Navegadores]

<BLOCKQUOTE> Da formato con sangría a un párrafo

<BODY> Cuerpo del documento. < body > & < /body >

<BR> Retorno de línea

<CAPTION> Posición de la leyenda en una tabla.

<CENTER> Centrar. <center> Texto </center>

<CI> Formato para citas en itálicas.

<CODE> Formato en tipo código. < code > Texto < /code >

<DD> Definiciones marcadas, para Lista de Definiciones

<DFN> Formato en itálica.

<DIR> Lista de directorio, con elementos marcados con <LI>.

<DL> Definiciones, con términos marcados con <DT> y <DD>.

<DT> Términos marcados, para Lista de Definiciones <DL>.

<EM> Formato enfatizado en itálica.

<EMBED> Sonido de Fondo. [Sólo con algunos Navegadores]

<FONT> Definición de la fuente. < font="arial" size="12" type="bold" >Texto</font>

<FORM> Para ingreso
de datos del usuario en un formulario.

<H1 ...H6> Tamaño de letras del 1 al 6. <h1/2/3/4/5/6>

<HEAD> Encabezamiento del documento. <head> & </head>

<HR> Línea horizontal.

<HTML> Al principio y al fin de todo documento. <html> & </html>

<I> Itálica (Cursiva).

<IMG> Cargar imágenes. <img src="LINK">

<INPUT> Define un objeto de ingreso en un formulario.

<ISINDEX> Indica que existe un index en el server para doc.

<ISMAP> Activa la selección de imágenes para el usuario.

<KBD> Formato monoespaciado.

<LI> Ítem de lista.

<LISTING> Listados.

<LIT> Literal. Como PRE, pero letra proporcional.

<MARQUEE> Marquesina. <marquee direction="up/left/right/donw"> Texto </marquee>

<MENU> Lista menú.

<META> Metainformación ubicada en HEAD.

<NEXTID> Es un parámetro que identifica al documento.

<NOBR> Elimina los saltos de líneas.

<OL> Lista ordenada, con elementos marcados con < LI >.

<OPTION> Opción de selección dentro de un formulario.

<P> Retorno de línea, con un espacio.

<P ALIGN> Alineación de texto.

<PLAINTEXT> Pasaje de texto plano.

<PRE> Visualiza el texto en su formato original.

<S> Texto tachado.

<SAMP> Formato tipo ejemplo.

<SELECT> Para selección de opciones dentro de un formulario.

<SMALL> Disminuye el tamaño.

<STRONG> Formato enfatizado más fuerte que <EM>.

<SUB> Subíndice.

<SUP> Superíndice.

<TABLE> Tabla.

<TD> Celdas de una fila en una tabla, dentro de <TR>.

<TEXTAREA> Área para ingreso de texto dentro de un formulario.

<TH> Título de Tabla.

<TITLE> Título dentro de HEAD. <title> & </title>

<TR> Fila de una Tabla.

<TT> Formato tipo máquina.

<UL> Lista no ordenada, con elementos marcados con <LI>.

<VAR> Formato tipo variable.

<WBR> Se usa con NOBR para una sección separada.

<XMP> Similar a PRE.

DEFINA QUE ES ETIQUETA:   El lenguaje HTML es un lenguaje de marcas, estas marcas serán fragmentos de texto destacado de una forma especial que permiten la definición de las distintas instrucciones de HTML, tanto los efectos a aplicar sobre el texto como las distintas estructuras del lenguaje. A estas marcas las denominaremos etiquetas y serán la base principal del lenguaje HTML. En documento HTML será un fichero texto con etiquetas que variarán la forma de su presentación.
     Una etiqueta será un texto incluido entre los símbolos menor que < y mayor que >.. El texto incluido dentro de los símbolos será explicativo de la utilidad de la etiqueta. Por ejemplo:
<B>
Letra Negrita, del inglés Bold (negrita).
<TABLE>
Definirá una tabla.
<IMG>
Inclusión de una Imagen.
     Existe normalmente una etiqueta de inicio y otra de fin, la de fin contendrá el mismo texto que la de inicio añadiéndole al principio una barra inclinada /. El efecto que define la etiqueta tendrá validez para todo lo que este incluido entre las etiquetas de inicio y fin, ya sea texto plano o otras etiquetas HTML.
     <ETIQUETA>Elementos Afectados por la Etiqueta</ETIQUETA>
     Por ejemplo, con la etiqueta siguiente:
     <B>Texto que será en negrita</B>.
     Obtendremos:
     Texto que será en negrita
     Algunas etiquetas no necesitarán la de fin, serán aquellas en las que el final este implícito, por ejemplo <P> párrafo, <BR> salto de línea ó <IMG> inclusión de una imagen. Definen un efecto que se producirá en un punto determinado sin afectar a otros elementos.
     El uso de mayúsculas o minúsculas en las etiquetas es indiferente, se interpretarán del mismo modo en ambos casos, pero lo normal es expresarlas en mayúsculas para que destaquen con más nitidez del texto normal.

TABLAS HTML, (TR, TD)  Este tutorial explica la forma correcta y completa de definir tablas en documentos HTML (lenguaje de marcas hipertextual). Esto ayudará a principiantes a aprender a insertar tablas manualmente en documentos HTML, mientras definirá y describirá todas las herramientas disponibles para avanzados (muchos de los cuales aún no conocen todas las propiedades de una tabla).
Como probablemente ya has leído alrededor del sitio, nuestra intención es proveerte con "buenos métodos de programación" que resultarán en algunos beneficios extra. Por eso es que elegiremos una forma de declarar estas tablas de modo que sean compatibles con el estándar de código XHTML (lenguaje de marcas hipertextual extensible).

Tablas simples

Una tabla HTML puede ser considerada de manera simple como un grupo de filas donde cada una de ellas contiene un grupo de celdas. Las tablas, así como toda estructura en documentos HTML, son definidas usando tags. Una tabla simple puede ser insertada en un documento HTML usando tres tags: el tag HTML table (principal contenedor), el tag HTML tr (fila contenedora) y el tag HTML td (celda simple). Veamos un ejemplo:
Código
Visualización
<table border="1" summary="Ejemplo de tabla simple.">
<tr>
<td>Celda 1</td>
<td>Celda 2</td>
<td>Celda 3</td>
</tr>
<tr>
<td>Celda 4</td>
<td>Celda 5</td>
<td>Celda 6</td>
</tr>
</table>
Celda 1
Celda 2
Celda 3
Celda 4
Celda 5
Celda 6
Nota: Los bordes en este ejemplo son creados utilizando el atributo "border" para el tag HTML table, el cual es sólo utilizado para mejorar la visualización. Como los atributos de presentación van siendo desaprobados con cada versión del estándar HTML, y dado que los mismos efectos pueden lograrse usando hojas de estilo, recomendamos evitar el uso de atributos de presentación como "border".
Ten en cuenta que las celdas vacías igual deben ser declaradas utilizando sus respectivos tags para lograr correctitud en el código. Cuando el contenido de una celda debe ser vacío, deberías usar siempre un espacio en blanco (&nbsp;) en su lugar. Esto hará que tu página sea más comatible, dado que ciertos navegadores tienen problemas al mostrar celdas vacías.

ACTIVIDAD 4

ACTIVIDAD BASE DE DATOS

QUE ES REGISTRO? En informática, y concretamente en el contexto de una base de datos relacional, un registro (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.
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 (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.
La estructura implícita de un registro y el significado de los valores de sus campos exige que dicho registro 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.

QUE ES TUPLA? Una tupla, en matemáticas, es una secuencia ordenada de objetos, esto es, una lista con un número limitado de objetos (una secuencia infinita se denomina en matemática como una familia). Las tuplas se emplean para describir objetos matemáticos que tienen estructura, es decir que son capaces de ser descompuestos en un cierto número de componentes.  Las principales propiedades que distinguen a una tupla de, por ejemplo un conjunto, es que:
  1. Un objeto puede contener internamente (por agregación) a otros objetos.
  2. Los objetos aparecen obligatoriamente representados en un orden dado.
Es de notar que la primera de las características distingue de un conjunto ordenado y la segunda de los que se denomina un multiconjunto. Esto se puede formalizar dando la siguiente regla de identidad para dos n-tuplas:
(a1, a2,...,an) = (b1, b2, ..., bn) si y sólo si a1 = b1, a2 = b2 y así sucesivamente.
Otra forma de formalizar tuplas es mediante asociación biyectiva entre la definición de una tupla y una construcción más primitiva en la teoría de conjuntos tal y como pares ordenados. Por ejemplo, una n-tupla (con n> 2) se puede definir como un par ordenado de su primera entrada y (n−1)-tupla que contenga el resto de las entradas, de tal forma que:
(a1, a2,..., an) = (a1, (a2,..., an))
Empleando la definición más corriente dentro de la teoría de conjuntos para un par ordenado y dejando que el conjunto vacío represente la tupla vacía, se puede obtener un resultado correcto empleando una definición por inductiva:
  1. La 0-tupla (por ejemplo la tupla vacía) se representa por
  2. Si x es una n-tupla entonces {{a}, {a, x}} es una (n + 1)-tupla.
Empleando esta definición, la 3-tupla (1,2,2) podría ser:
(1,(2,(2,()))) = (1,(2, {{2}, {2, }} )) = (1, {{2}, {2, {{2}, {2, }}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, }}}}}}
Existe una similaridad importante aquí con la forma en que se describen objetos en algunos lenguajes informáticos, tales como Lisp en los que generalmente se emplea un par ordenado, y se emplea esta abstracción para iterar todos los elementos de  la estructura del n-tupla, para ello se procede de la siguiente forma:
  1. Un símbolo especial, tal y como NIL representa a una lista vacía
  2. Si X es una lista y A es un valor arbitrario, entonces el par (A, X) representa una lista con la cabecera(es decir el primer elemento) A y la cola (es decir el resto de la estructura) X.

QUE ES CAMPO O COLUMNA? En el contexto de una tabla de base de datos relacional, una columna es un conjunto de valores de datos de un simple tipo particular, uno por cada fila de la tabla. Las columnas proporcionan la estructura según la cual se componen las filas.
El término campo es frecuentemente intercambiable con el de columna, aunque muchos consideran más correcto usar el término campo (o valor de campo) para referirse específicamente al simple elemento que existe en la intersección entre una fila y una 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 proporcionaría un valor de los datos para cada columna y después sería entendida como solo simple valor de datos estructurado, en este caso representando a una compañía. Más formalmente, 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

QUE ES INDICE? Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre 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 en una base de datos sencilla. 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. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.
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, funciones de cálculo u otros métodos.
El espacio en disco requerido para almacenar el índice es típicamente menor que el espacio de almacenamiento de la tabla (puesto que los índices generalmente contienen solamente los campos clave de acuerdo con los que la tabla será ordenada, y excluyen el resto de los detalles de la tabla), lo que da la posibilidad de almacenar en memoria los índices de tablas que no cabrían en ella. En una base de datos relacional un índice es una copia de parte de una tabla.
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.

QUE ES LLAVE O CLAVE? El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
  • Evitar la redundancia de los datos.
  • Evitar problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
  • Cada columna debe tener su nombre único.
  • No puede haber dos filas iguales. No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

QUE ES CLAVE PRIMARIA? En el diseño de bases de datos relacionales, se llama clave primaria a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No pueden haber dos filas en una tabla que tengan la misma clave primaria.
Una clave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a las filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guías telefónicas y diccionarios no pueden usar nombres o palabras o números del sistema decimal de Dewey como claves candidatas, porque identifican unívocamente números de teléfono o palabras.
Una clave primaria es un caso especial de clave única. La mayor diferencia es que para claves únicas, no se impone automáticamente la restricción implícita NOT NULL, mientras que para claves primarias, sí. Así, los valores en columnas de clave única pueden o no ser NULL. Otra diferencia es que las claves primarias deben definirse por medio de otra sintaxis.
El modelo relacional, según se lo expresa mediante cálculo relacional y álgebra relacional, no distingue entre clave primaria y otros tipos de claves. Las claves primarias fueron agregadas al estándar SQL principalmente para conveniencia del programador.
Tanto claves únicas como claves primarias pueden referenciarse con claves foráneas.

QUE ES CLAVE FORANEA? En el contexto de bases de datos  relacionales, una clave foránea (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Esto es una parte esencial de la normalización de base de datos. Múltiples filas en la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla referenciada. Mayormente esto se ve reflejado en una relación uno (tabla maestra o referenciada) a muchos (tabla hija o referendo).
La tabla referendo y la tabla referenciada pueden ser la misma, esto es, la clave foránea remite o hace referencia a la misma tabla. Esta clave externa es conocida en SQL: 2003 como auto-referencia o clave foránea recursiva. Una tabla puede tener múltiples claves foráneas y cada una puede tener diferentes tablas referenciadas. Cada clave foránea es forzada independientemente por el sistema de base de datos. Por tanto, las relaciones en cascada entre tablas pueden realizarse usando claves foráneas. Configuraciones impropias de las claves foráneas o primarias o no forzar esas relaciones son frecuentemente la fuente de muchos problemas para la base de datos o para el modelamiento de los mismos.

TIPOS DE BASES DE DATOS: Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, o la utilidad de la misma:
Según la variabilidad de los datos almacenados
Bases de datos estáticas
Éstas son bases de datos de sólo 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 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, borrado y adició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 una tienda de abarrotes, una farmacia, un videoclub.
Según el contenido
Bases de datos bibliográficas
Solo 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)

MODELOS DE TIPOS 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:
Bases de datos jerárquicas
Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. En este modelo los datos 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.
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, aun 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.
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.
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.
Gestión de bases de datos distribuida (SGBDD)
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.