viernes, 24 de junio de 2011

REGISTRO

Registro

   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.

CAMPO

Campo

   En informática, un campo es un espacio de almacenamiento para un dato en particular. En las bases de datos, un campo es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error del sistema. En las hojas de cálculo los campos son llamados celdas. La mayoría de los campos tienen atributos asociados a ellos. Por ejemplo, algunos campos son numéricos mientras otros almacenan texto, también varía el tamaño de estos. Adicionalmente, cada campo tiene un nombre.

INFORMACION

Información

 Desde el punto de vista de la ciencia de la computación, la información es un conocimiento explícito extraído por seres vivos o sistemas expertos como resultado de interacción con el entorno o percepciones sensibles del mismo entorno. En principio la información, a diferencia de los datos o las percepciones sensibles, tienen estructura útil que modificará las sucesivas interacciones del ente que posee dicha información con su entorno.
  
   Principales características de la información
   En general la información tiene una estructura interna y puede ser calificada según varios aspectos:

•         Significado (semántica): ¿Qué quiere decir? Del significado           extraído de una información, cada individuo evalúa las consecuencias posibles y adecúa sus actitudes y acciones de manera acorde a las consecuencias previsibles que se deducen del significado de la información. Esto se refiere a qué reglas debe seguir el individuo o el sistema experto para modificar sus expectativas futuras sobre cada posible alternativa.

•         Importancia (relativa al receptor): ¿Trata sobre alguna cuestión importante? La importancia de la información para un receptor, se referirá a en qué grado cambia la actitud o la conducta de los individuos. En las modernas sociedades, los individuos obtienen de los medios de comunicación masiva gran cantidad de información, un gran parte de la misma es poco importante para ellos, porque altera de manera muy poco significativa la conducta de los individuos. Esto se refiere a en qué grado cuantitativo deben alterarse las expectativas futuras. A veces se sabe que un hecho hace menos probables algunas cosas y más otras, la importancia tiene que ver con cuanto menos probables serán unas alternativas respecto a las otras.

•         Vigencia (en la dimensión espacio-tiempo): ¿Es actual o desfasada? En la práctica la vigencia de una información es difícil de evaluar, ya que en general acceder a una información no permite conocer de inmediato si dicha información tiene o no vigencia. Esto tiene que ver con la sincronización en el tiempo de los indicios que permiten reevaluar las expectativas con las expectativas en un momento dado.

•         Validez (relativa al emisor): ¿El emisor es fiable o puede proporcionar información no válida (falsa)? Esto tiene que ver si los indicios deben ser considerados en la reevaluación de expectativas o deben ser ignorados por no ser indicios fiables.

•         Valor (activo intangible volátil): ¿Cómo de útil resulta para el destinatario?

DATO

Dato
   El dato es una representación simbólica (numérica, alfabética, algorítmica etc.), un atributo o una característica de una entidad. Los datos son hechos que describen sucesos y entidades. No tienen ninguna información. Puede significar un numero, una letra, o cualquier símbolo que representa una palabra, una cantidad, una medida o una descripción. El dato no tiene valor semántico (sentido) en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o toma de decisiones. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier disciplina científica.
   En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo.
En Estructura de datos, es la parte mínima de la información.
   Un dato por sí mismo no constituye información, es el procesamiento de los datos lo que nos proporciona información.

BASE DE DATOS

Base de datos

   Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. 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 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 pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo, en España los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD).

HISTORIA DE LA PROGRAMACION

Historia de la programación

   Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de maquina a herramientas poderosas que crean las abstracciones complejas. Es importante por que los idiomas han evolucionado, y que capacidades nos dan los nuevos idiomas.

   “Tan largo como no había maquinas, programar era ningún problema; cuando tuvimos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, ha creado el problema de usar su producto”.

   Una de las llaves a programar exitoso es el concepto de la abstracción. La abstracción es la llave a la construcción de sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción aumentó dramáticamente. Los sistemas sencillos se caracterizaban por idiomas usados en 1950’s y 60’s, un solo programista podría entender el problema entero y por lo tanto manipular todas las estructuras y datos del programa. Los programistas hoy pueden entender todos los programas y los datos.

   La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.

-Primera generación:
   Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas. Las primeras se usaban como calculadoras simples.

   John Von Neumann desarrolló el modelo que lleva su nombre para describir este concepto de “programa almacenado”. En este modelo se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa.

   Se tenía el problema de representar las acciones que iba a realizar la computadora y la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios. Entonces a cada acción que sea capaz de realizar la computadora asociarle un número, que será su código de operación (opcode)[1].




-Segunda generación:
   El primer gran avance que se dio, como ya se comento, fue la abstracción dada por el Lenguaje Ensamblador y con el, el nacimiento de las primeras herramientas automáticas para generar el condigo maquina. Esto redujo los errores triviales, como podía ser el numero que correspondía  a una operación que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU y entender bien todo lo que sucede dentro de el.


-Tercera generación:
   Con el desarrollo en los 50’s y 60’s de algoritmos de mas elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de física, química y otras ramas similares, pero no de computación y por supuesto, les era sumamente complicado trabajar con lenguaje ensamblador en vez de formulas. Así nació el concepto de lenguaje de alto nivel con el primer compilador de FORTAN (FORmula TRANslation), que inicio con un simple esfuerzo de traducir un lenguaje de formulas, al lenguaje ensamblador y por consiguiente al lenguaje de maquina. A partir de FORTAN, se han desarrollado innumerables lenguajes que siguen el mismo concepto. buscar la mayor abstracción posible y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel al lenguaje de computadora.

-Cuarta generación:
   Los idiomas de cuarta generación parecen según las instrucciones a las de la tercera generación. Lo nuevo de estos lenguajes son los conceptos como clases, objetos y eventos que permiten soluciones más fáciles y lógicos.
   La mayoría de los idiomas modernos son objetivos orientados, que permite que modele un mundo verdadero que usa mi idioma. Además, puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. La llave es que use el término “mundo verdadero”.

-Quinta generación:
   Como la quinta generación están conocidos los lenguajes de inteligencia artificial. Han sido muy valorados al principio de los 90’s mientras ahora el desarrollo de software toma otros caminos.
   Lo que veremos en el futuro es menos dependencia en el idioma y mas en el modelando herramientas, tal como el unificado modelando el 

TECNICAS DE DISEÑO DE PROGRAMACION

Técnicas de diseño de programación


-Top Down

   También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad que den solución al problema.  Consiste en efectuar una relación entre las etapas de estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.
   La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:

  • Simplificación del problema y de los subprogramas de cada descomposición.
  • Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.
  • El programa final queda estructurado en forma de bloqueo o módulos lo que hace más sencilla su lectura y mantenimiento.



-Bottom up:
   El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.
   Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño global, sea fluido. los problemas de integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, carece de ciertas limitaciones por haber tomado  un enfoque ascendente.
   Uno de ellos es la duplicación de esfuerzos para acceder al software y más aún al introducir los datos.
   Otro es, que se introducen al sistema muchos datos carentes de valor.
   Un tercero es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen.


-Warnier Orr:
   Los diagramas de Warnier Orr (también conocidos como construcción lógica de programas/construcción lógica de sistemas) fueron desarrollados inicialmente en Francia por Jean Dominique Warnier y en los Estados Unidos por Kenneth Orr. Este método ayuda al diseño de estructuras de programas identificando la salida y resultado del procedimiento, y entonces trabaja hacia atrás para determinar los pasos y combinaciones de entrada necesarios para producirlos. Los sencillos métodos gráficos usados en los diagramas de Warnier Orr hacen evidentes los niveles en un sistema y mas claros los movimientos de los datos en dichos niveles.
   Las diagramas de Warnier Orr muestran los procesos y la secuencia en que se realizan. cada proceso se define de una manera jerarquica, es decir, consta de conjuntos de subprocesos que lo definen, en cada nivel, el proceso se muestra en una llave que agrupa a sus componentes. Puesto que un proceso puede tener muchos subprocesos distintos, un diagrama de Warnier Orr usa un conjunto de llaves para mostrar cada nivel del sistema.