miércoles, 30 de enero de 2008

LINUX.

Linux es la denominación de un sistema operativo tipo Unix (también conocido como GNU/Linux) y el nombre de un núcleo. Es uno de los ejemplos más prominentes del software libre y del desarrollo del código abierto, cuyo código fuente está disponible públicamente, para que cualquier persona pueda libremente usarlo, estudiarlo, redistribuirlo, comercializarlo y, con los conocimientos informáticos adecuados, modificarlo.1

Las variantes de los sistemas Linux de denominan "distribuciones" (distro) y su objetivo es ofrecer una edición que cumpla con las necesidades de determinado grupo de usuarios, de estar forma existen distribuciones para hogares, empresas y servidores. Algunas son gratuitas y otras de pago, algunas insertan software no libre y otras contienen solo software libre.

Los primeros sistemas Linux se originaron en 1992, al combinar utilidades de sistema y bibliotecas del proyecto GNU con el núcleo Linux, creado por Linus Torvalds, con la colaboración de cientos de co-desarrolladores y que se distribuye bajo la Licencia Pública General de GNU.2 .

Desde finales del 2000 se ha incrementado el apoyo y respaldo de parte de fabricantes de hardware como IBM,3 Sun Microsystems,4 Hewlett-Packard,5 y Novell.6 Algunos de ellos (como Dell,7 Hewlett-Packard,8 9 Lenovo10 11 12 y Acer13 ) lo incluyen pre-instalado en algunos modelos de computadoras portátiles y de escritorio para el usuario final.

El respaldo de las compañías de software también está presente, ya que -entre otras aplicaciones- Nero, Java, Google Earth, Google Desktop, Adobe Reader, Adobe Flash, RealPlayer, Silverlight y Yahoo! Messenger están disponibles para Linux.


Etimología

Linux se refiere estrictamente al núcleo Linux, pero es comúnmente utilizado para describir al sistema operativo tipo Unix (que implementa el estándar POSIX), que utiliza primordialmente filosofía y metodologías libres (también conocido como GNU/Linux) y que está formado mediante la combinación del núcleo Linux con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software (libre o no libre).

La expresión "Linux" es utilizada para referirse a las distribuciones GNU/Linux, colecciones de software que suelen contener grandes cantidades de paquetes además del núcleo. El software que suelen incluir consta de una enorme variedad de aplicaciones, como: entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera.

Coloquialmente se aplica el término "Linux" a éstas. Algunas personas opinan que es incorrecto denominarlas distribuciones Linux, y proponen llamarlas sistema GNU/Linux. Otras personas opinan que los programas incluidos proceden de fuentes tan variadas que proponen simplificarlo denominándolo simplemente a "Linux".

La pronunciación correcta (para cualquier idioma) es muy cercana a como se pronuncia en español: /lí.nux/ o /lnəks/ (Alfabeto Fonético Internacional), aunque el mismo creador ha expresado que es irrelevante.


HISTORIA:

Linux nació gracias a la idea de Linus Torvalds de crear un sistema basado en Unix para máquinas i386. En más de una ocasión, Linus Torvalds ha afirmado que si hubiera sabido de la existencia de los sistemas BSD que ya cumplían lo que hacía Linux, no se habría molestado en modificar Minix.

La historia de Linux está fuertemente vinculada a la del proyecto GNU. El proyecto GNU, iniciado en 1983, tiene como objetivo el desarrollo de un sistema Unix completo compuesto enteramente de software libre.

Hacia 1991, cuando la primera versión del núcleo Linux fue liberada, el proyecto GNU había producido varios de los componentes del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero aún no contaba con el núcleo que permitiera completar el sistema operativo.

Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el hueco final que el sistema operativo GNU exigía. Subsecuentemente, miles de programadores voluntarios alrededor del mundo han participado en el proyecto, mejorándolo continuamente.

Torvalds y otros desarrolladores de los primeros días de Linux adaptaron los componentes de GNU y de BSD, así como de otros muchos proyectos como Perl, Apache, Python, etc. para trabajar con el núcleo Linux, creando un sistema operativo completamente funcional procedente de muchísimas fuentes diferentes, la mayoría libres.


FUENTE: Wikipedia.

UNIX.

Unix (registrado oficialmente como UNIX®) es un sistema operativo portátil, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy 1 ,2 . Según Dennis Ritchie: «después de treinta años de su creación, UNIX sigue siendo un fenómeno» 3 .

Hasta 2008, el propietario de la marca UNIX® es The Open Group, un consorcio de normalización industrial. Sólo los sistemas que cumplen a cabalidad y se encuentran certificados por la especificación Single UNIX Specification pueden ser denominados "UNIX®" (otros reciben la denominación "similar a un sistema Unix" o "similar a Unix").

Durante fines de la década de 1970 y principios de la década de 1980, la influencia de Unix en círculos académicos indujo a su adopción en masa (principalmente la variante BSD, que había surgido en la Universidad de California, Berkeley) en varias compañías que se iniciaban por aquel entonces[sin referencias], siendo la más destacada Sun Microsystems.

Hoy en día, junto a los sistemas Unix certificados, también se pueden encontrar sistemas similares a Unix, como Linux y los derivados de BSD.
En ocasiones, el término "Unix tradicional" suele emplearse para describir a Unix o a un sistema operativo que cuenta con las características de UNIX Versión 7 o UNIX System V.

A finales de 1960, el Instituto Tecnológico de Massachusetts, los Laboratorios Bell de AT&T y General Electric trabajaban en un sistema operativo experimental llamado Multics (Multiplexed Information and Computing Service)4 , desarrollado para ejecutarse en un ordenador o computadora central (mainframe) modelo GE-645.

El objetivo del proyecto era desarrollar un sistema operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos.

Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora GE-6355 y escribió un juego llamado Space Travel6 , 7 (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares de EE.UU. por cada partida.


FUENTE: Wikipedia.

SISTEMAS OPERATIVOS / DISTRIBUCIONES.

DEBIAN


Debian o Proyecto Debian1 (en inglés Debian Project2 ) es una comunidad conformada por desarrolladores y usuarios, que pretende crear y mantener un sistema operativo GNU basado en software libre precompilado y empaquetado, en un formato sencillo en múltiples arquitecturas de computador y en varios núcleos.

Debian nace como una apuesta por separar en sus versiones el software libre del software no libre. El modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales, siendo llevado adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas en forma de infraestructuras. Debian no vende directamente su software, lo pone a disposición de cualquiera en Internet, aunque sí permite a personas o empresas distribuir comercialmente este software mientras se respete su licencia.

La comunidad de desarrolladores de Debian cuenta con la representación de Software in the Public Interest'3 , una organización sin ánimo de lucro que da cobertura legal a varios proyectos de software libre.


SUSE LINUX.

SUSE Linux es una de las más conocidas distribuciones Linux existentes a nivel mundial, se basó en sus orígenes en Slackware. Entre las principales virtudes de esta distribución se encuentra el que sea una de las más sencillas de instalar y administrar, ya que cuenta con varios asistentes gráficos para completar diversas tareas en especial por su gran herramienta de instalación y configuración YasT
Su nombre "SuSE" es el acrónimo, en alemán "Software und Systementwicklung", el cual formaba parte del nombre original de la compañía y que se podría traducir como "desarrollo de software y sistemas". El nombre actual de la compañía es SuSE LINUX, habiendo perdido el primer término su significado (al menos oficialmente).


RED HAT LINUX.


Red Hat es una distribución Linux creada por Red Hat, que fue una de las más populares en los entornos de usuarios domésticos.

Es una de las distribuciones Linux de "mediana edad". La versión 1.0 fue presentada el 3 de noviembre de 1994. No es tan antigua como la distribución Slackware, pero ciertamente es más antigua que muchas otras.

Fue la primera distribución que usó RPM como su formato de paquete, y en un cierto plazo ha servido como el punto de partida para varias otras distribuciones, tales como la orientada hacia PCs de escritorio Mandrake Linux (originalmente Red Hat Linux con KDE), Yellow Dog Linux, la cual se inició desde Red Hat Linux con soporte para PowerPC, y ASPLinux (Red Hat Linux con mejor soporte para caracteres no-Latinos).

Desde el 2003, Red Hat ha desplazado su enfoque hacia el mercado de los negocios con la distribución Red Hat Enterprise Linux y la versión no comercial Fedora Core. Red Hat Linux 9, la versión final, llegó oficialmente al final de su vida útil el pasado 30 de abril de 2004, aunque el proyecto Fedora Legacy continuó publicando actualizaciones, hasta ser abandonado dicho proyecto a finales de 2006.


KDE


KDE (AFI: /ˈka.ðe.e/) tcc K Desktop Environment o Entorno de Escritorio K, es un entorno de escritorio e infraestructura de desarrollo para sistemas Unix/Linux.
De acuerdo con su página web, «KDE es un entorno gráfico contemporáneo para estaciones de trabajo Unix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar a los escritorios de MacOS o Windows».2

La «K», originariamente, representaba la palabra «Kool»3 , pero su significado fue abandonado más tarde. Actualmente significa simplemente «K», la letra inmediatamente anterior a la «L» (inicial de Linux) en el alfabeto.
La mascota del proyecto es un pequeño dragón llamado Konqi.


GNOME


GNOME es un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnología X Window. Forma parte oficial del proyecto GNU. Nació como una alternativa a KDE.

Se encuentra disponible actualmente en más de 35 idiomas y su última versión es la 2.20.1.

«El Proyecto GNOME provee dos cosas: El entorno de escritorio GNOME, un intuitivo y atractivo gestor de ventanas para usuarios, y la plataforma de desarrollo de GNOME, un extenso marco para la construcción de aplicaciones que se integran con el resto del escritorio».

El Proyecto GNOME pone un gran enfasis en la simplicidad, usabilidad y en hacer que las cosas funcionen. Otros objetivos del proyecto son:

• La libertad para crear un entorno de escritorio que siempre tendrá el código fuente disponible para reutilizarse bajo una licencia de software libre.

• El aseguramiento de la accesibilidad, de modo que pueda ser utilizado por cualquiera, sin importar sus conocimientos técnicos y discapacidad física.

• Hacer que este disponible en muchos idiomas. En el momento está siendo traducido a más de 100 idiomas.

• Un ciclo regular de liberaciones y una estructura de comunidad disciplinada


X WINDOW SYSTEM


Sistema de ventanas X en Mandrake Linux 10.2 usando el gestor Enlightenment
El sistema de ventanas X fue desarrollado a mediados de los años 1980 en el MIT para dotar de una interfaz gráfica a los sistemas Unix.

Este protocolo permite la interacción gráfica en red entre un usuario y una o más computadoras haciendo transparente la red para éste.
Generalmente se refiere a la versión 11 de este protocolo, X11, el que está en uso actualmente.

X es el encargado de mostrar la información gráfica y es totalmente independiente del sistema operativo. El sistema de ventanas X distribuye el procesamiento de aplicaciones especificando enlaces cliente-servidor.

El servidor provee servicios para acceder a la pantalla, teclado y ratón, mientras que los clientes son las aplicaciones que utilizan estos recursos para interacción con el usuario. De este modo mientras el servidor se ejecuta de manera local, las aplicaciones pueden ejecutarse remotamente desde otras máquinas, proporcionando así el concepto de transparencia de red.

Debido a este esquema cliente-servidor, se puede decir que X se comporta como una terminal gráfica virtual.
El hecho que exista un estandar definido para X permite que se desarrollen servidores X (XServers) para distintos Sistemas Operativos, plataformas, Hardwares, etc... lo que hace que el código sea muy portable.

Por ejemplo. permite tener Xclients ejecutándose en potente servidor UNIX mientras los resultados son visualizados en una PC de escritorio con cualquier otro sistema operativo funcionando.


UBUNTU.(Distribución Linux)

Ubuntu (AFI: /uˈbuntu/) es una distribución Linux que ofrece un sistema operativo predominantemente enfocado a ordenadores de escritorio aunque también proporciona soporte para servidores.

Basada en Debian GNU/Linux, Ubuntu concentra su objetivo en la facilidad de uso, la libertad de uso, los lanzamientos regulares (cada 6 meses) y la facilidad en la instalación. Ubuntu es patrocinado por Canonical Ltd., una empresa privada fundada y financiada por el empresario sudafricano Mark Shuttleworth.

El nombre de la distribución proviene del concepto zulú y xhosa de ubuntu, que significa "humanidad hacia otros" o "yo soy porque nosotros somos". Ubuntu es un movimiento sudafricano encabezado por el obispo Desmond Tutu, quien ganó el Premio Nobel de la Paz en 1984 por sus luchas en contra del Apartheid en Sudáfrica.

El sudafricano Mark Shuttleworth, mecenas del proyecto, se encontraba muy familiarizado con la corriente. Tras ver similitudes entre los ideales de los proyectos GNU, Debian y en general con el movimiento del software libre, decidió aprovechar la ocasión para difundir los ideales de Ubuntu.

El eslogan de Ubuntu – “Linux para seres humanos” (en inglés "Linux for Human Beings") – resume una de sus metas principales: hacer de Linux un sistema operativo más accesible y fácil de usar.
La versión más reciente la versión 7.10 (Gutsy Gibbon) fue lanzada el 18 de octubre de 20072 .


FUENTE: Wikipedia.

martes, 29 de enero de 2008

SOFTWARE LIBRE.

Software libre (en inglés free software) es la denominación del software que respeta la libertad de los usuarios y por tanto, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente.
Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software; de modo más preciso, se refiere a cuatro libertades de los usuarios del software: la libertad de usar el programa, con cualquier propósito; de estudiar el funcionamiento del programa, y adaptarlo a las necesidades; de distribuir copias, con lo que puede ayudar a otros; de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie (para la segunda y última libertad mencionadas, el acceso al código fuente es un requisito previo).

El software libre suele estar disponible gratuitamente, o a precio del coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial").
Análogamente, el "software gratis" o "gratuito" incluye en algunas ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

Comparación con el software Open Source

Aunque en la práctica el software Open Source y el software libre comparten muchas de sus licencias, la FSF opina que el movimiento Open Source es filosóficamente diferente del movimiento del software libre.
Apareció en 1998 con un grupo de personas, entre los que cabe destacar a Eric S. Raymond y Bruce Perens, que formaron la Open Source Initiative (OSI).
Ellos buscaban darle mayor relevancia a los beneficios prácticos del compartir el código fuente, e interesar a las principales casas de software y otras empresas de la industria de la alta tecnología en el concepto.
Estos defensores ven que el término open source evita la ambigüedad del término inglés free en free software.
El término "open source" fue acuñado por Christine Peterson del think tank Foresight Institute, y se registró para actuar como marca registrada para los productos de software libre.


Código fuente:

El código fuente puede definirse:

• Un conjunto de líneas que conforman un bloque de texto, escrito según las reglas sintácticas de algún lenguaje de programación destinado a ser legible por humanos.

• Un Programa en su forma original, tal y como fue escrito por el programador, no es ejecutable directamente por el computador, debe convertirse en lenguaje de maquina mediante compiladores, ensambladores o intérpretes.

Normalmente está destinado a ser traducido a otro código, llamado código objeto, ya sea lenguaje máquina nativo para ser ejecutado por una computadora o bytecode para ser ejecutado por un intérprete.
Este proceso se denomina compilación y permite la realización de programas.
El proceso de formateado del código fuente para ayudar a su legibilidad se denomina estilo de programación.


Copyleft

Hay que hacer constar que el titular de los derechos de autor (copyright) de un software bajo licencia copyleft puede también realizar una versión modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, además de distribuir la versión original como software libre.
Esta técnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL); esta práctica no restringe ninguno de los derechos otorgados a los usuarios de la versión copyleft.
También podría retirar todas las licencias de software libre anteriormente otorgadas, pero esto obligaría a una indemnización a los titulares de las licencias en uso. En España, toda obra derivada está tan protegida como una original, siempre que la obra derivada parta de una autorización contractual con el autor.
En el caso genérico de que el autor retire las licencias "copyleft", no afectaría de ningún modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En términos legales, el autor no ha derecho a retirar el permiso de una licencia en vigencia. Si así sucediera, el conflicto entre las partes se resolvería en un pleito convencional.


DERECHO DE AUTOR /COPYRIGHT:

El derecho de autor (del francés droit d'auteur) es un conjunto de normas y principios que regulan los derechos morales y patrimoniales que la ley concede a los autores (los derechos de autor), por el solo hecho de la creación de una obra literaria, artística o científica, tanto publicada o que todavía no se haya publicado.

En el derecho anglosajón se utiliza la noción de copyright (traducido literalmente como derecho de copia) que, por lo general, comprende la parte patrimonial de los derechos de autor.
Una obra pasa al dominio público cuando los derechos patrimoniales han expirado. Esto sucede habitualmente trascurrido un plazo desde la muerte del autor (post mortem auctoris). Por ejemplo, en el derecho europeo, 70 años desde la muerte del autor. Dicha obra entonces puede ser utilizada en forma libre, respetando los derechos morales.


Código abierto


Código abierto (del inglés open source) es el término con el que se conoce al software distribuido y desarrollado libremente. Fue utilizado por primera vez en 1998
por algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre (free software).
Free en inglés puede significar diferentes cosas: gratuidad y libertad.
Por ello, por un lado, permite pensar en "software por el que no hay que pagar" (software gratuito) y, por otro, se adapta al significado que se pretendió originalmente (software que posee ciertas libertades).
El término para algunos no resultó apropiado como reemplazo para el ya tradicional free software, pues eliminaba la idea de libertad (incluso hay algunos que usan —en inglés— el término libre software para evitar la ambigüedad de free).

Desde el punto de vista de una "traducción estrictamente literal", el significado obvio de "código abierto" es que "se puede mirar el código fuente", por lo que puede ser interpretado como un término más débil y flexible que el del software libre. Basado en ello se argumenta que un programa de código abierto puede ser software libre, pero también puede ser semilibre o incluso completamente no libre.
Sin embargo, por lo general, un programa de código abierto puede ser y de hecho es software libre, como igualmente un programa Software Libre es Open Source. Esto ocurre dado que ambos movimientos reconocen el mismo conjunto de licencias y tiene principios equivalentes.

lunes, 28 de enero de 2008

CONCEPTOS BÁSICOS DE BASE DE DATOS.

Indice

1. Introducción

2. Base de datos relacionales

3. Diseño de las bases de datos relacionales

4. Microsoft access

5. Objetos de la base de datos

6. Conceptos básicos de una base de datos




1. Introducción

El término base de datos fue acuñado por primera vez en 1963, en un simposio celebrado en California.
De forma sencilla podemos indicar que una base de datos no es más que un conjunto de información relacionada que se encuentra agrupada o estructurada.
El archivo por sí mismo, no constituye una base de datos, sino más bien la forma en que está organizada la información es la que da origen a la base de datos. Las bases de datos manuales, pueden ser difíciles de gestionar y modificar. Por ejemplo, en una guía de teléfonos no es posible encontrar el número de un individuo si no sabemos su apellido, aunque conozcamos su domicilio.
Del mismo modo, en un archivo de pacientes en el que la información esté desordenada por el nombre de los mismos, será una tarea bastante engorrosa encontrar todos los pacientes que viven en una zona determinada. Los problemas expuestos anteriormente se pueden resolver creando una base de datos informatizada.
Desde el punto de vista informático, una base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos.
Desde el punto de vista más formal, podríamos definir una base de datos como un conjunto de datos estructurados, fiables y homogéneos, organizados independientemente en máquina, accesibles a tiempo real, compartibles por usuarios concurrentes que tienen necesidades de información diferente y no predecibles en el tiempo.

La idea general es que estamos tratando con una colección de datos que cumplen las siguientes propiedades:

♦ Están estructurados independientemente de las aplicaciones y del soporte de almacenamiento que los contiene.

♦ Presentan la menor redundancia posible.

♦ Son compartidos por varios usuarios y/o aplicaciones.

2. Base de datos relacionales

En una computadora existen diferentes formas de almacenar información. Esto da lugar a distintos modelos de organización de la base de datos: jerárquico, red, relacional y orientada a objeto.
Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final, períodos cortos de aprendizaje y las consultas de información se especifican de forma sencilla.
Las tablas son un medio de representar la información de una forma más compacta y es posible acceder a la información contenida en dos o más tablas. Más adelante explicaremos que son las tablas.
Las bases de datos relacionales están constituidas por una o más tablas que contienen la información ordenada de una forma organizada.

Cumplen las siguientes leyes básicas:

♦ Generalmente, contendrán muchas tablas.

♦ Una tabla sólo contiene un número fijo de campos.

♦ El nombre de los campos de una tabla es distinto.

♦ Cada registro de la tabla es único.

♦ El orden de los registros y de los campos no está determinados.

♦ Para cada campo existe un conjunto de valores posible.


3. Diseño de las bases de datos relacionales

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 diferente tispos de campos que su 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.


4. Microsoft access

Posiblemente, la aplicación más compleja de la suite Office, sea Access, una base de datos visual. Como todas las modernas bases de datos que trabajan en el entorno Windows, puede manejarse ejecutando unos cuantos clic de mouse sobre la pantalla. Access contiene herramientas de diseño y programación reservadas a los usuarios con mayor experiencia, aunque incluye bases de datos listas para ser usadas; están preparadas para tareas muy comunes, que cualquiera puede realizar en un momento determinado –ordenar libros, archivar documentación, etc.-.


5. Objetos de la base de datos

Tablas: unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante veremos qué es un campo.

Consultas: aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y presentar la información resultante de diferentes formas (pantalla, impresora...)

Formulario: elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva.
Informe: permite preparar los registros de la base de datos de forma personalizada para imprimirlos.

Macro: conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas.

Módulo: programa o conjunto de instrucciones en lenguaje Visual Basic


6. Conceptos básicos de una base de datos

Campo: unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. La descripción de un campo, permite aclarar información referida a los nombres del campo. El tipo de campo, permite especificar el tipo de información que cargaramos en dicho campo, esta puede ser:

♦ Texto: para introducir cadenas de caracteres hasta un máximo de 255

♦ Memo: para introducir un texto extenso. Hasta 65.535 caracteres

♦ Numérico: para introducir números

♦ Fecha/Hora: para introducir datos en formato fecha u hora

♦ Moneda: para introducir datos en formato número y con el signo monetario

♦ Autonumérico: en este tipo de campo, Access numera automáticamente el contenido
♦ Sí/No: campo lógico. Este tipo de campo es sólo si queremos un contenido del

tipo Sí/No, Verdadero/Falso, etc.

♦ Objeto OLE: para introducir una foto, gráfico, hoja de cálculo, sonido, etc.

♦ Hipervínculo: podemos definir un enlace a una página Web


♦ Asistente para búsquedas: crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado.
Registro: es el conjunto de información referida a una misma persona u objeto. Un registro vendría a ser algo así como una ficha.
Campo clave: campo que permite identificar y localizar un registro de manera ágil y organizada.

Las propiedades de un campo, se establecen seleccionando el campo y haciendo clic en la propiedad deseada del cuadro PROPIEDADES DEL CAMPO situado en la parte inferior de la ventana DISEÑO DE TABLA.

Access tiene una configuración predeterminada para las propiedades de cada uno de los tipos de campo. Sin duda la más importante es el tamaño del campo, ya que este nos permitirá hacer una estimación del espacio ocupado por nuestra base de datos en el disco fijo.

FUENTE: Monograficos.com

lunes, 21 de enero de 2008

CONCEPTOS BÁSICOS DE PROGRAMACIÓN.

1. Introducción
2. Fases para la creación de un programa
3. Programación. Los datos y operaciones básicas
4. Estructura de control selectiva

Introducción.

Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de maquina, una colección de instrucciones muy detallada que controla la circuiteria interna de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayoría de las maquinas se pide programar en diversos tipos de lenguajes, que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como lo es el lenguaje c que además es de propósito general.
Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier maquina , casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes, sencillez, uniformidad y portabilidad.

1.1. Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz.
Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.

Los lenguajes de programación se clasifican en:

• Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

• Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

• Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

1.2. Algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.
La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden especifico. Un procedimiento para resolver un problema en términos de:
a) Las acciones a ejecutarse y b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo.


Un ejemplo de un algoritmo para llegar a la escuela
a) Salir de la cama
b) Quitarse la pijamas
c) Darse un baño
d) Vestirse
e) Desayunar
f) Utilizar el transporte ( autobús, carro , bicicleta, etc)

1.3 Programa.

 Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se estén procesando.

 Es un algoritmo desarrollado para ser utilizado por la computadora

 Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de cómputo.

2. Fases para la creación de un programa.

2.1 Definición del Problema

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

2.2 Análisis del Problema

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

Los datos de entrada.

Cual es la información que se desea producir (salida)

Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

2.3 Diseño del Algoritmo

Las características de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
Debe ser finito en tamaño y tiempo de ejecución.

2.4 Codificación

La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

2.5 Prueba y Depuración

Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración.
La prueba consiste en la captura de datos hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).

2.6 Documentación

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).

La documentación se divide en tres partes:

Documentación Interna
Documentación Externa
Manual del Usuario

• Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.

• Documentación Externa: Se define en un documento escrito los siguientes puntos:

Descripción del Problema
Nombre del Autor
Algoritmo (diagrama de flujo o pseudocódigo)
Diccionario de Datos
Código Fuente (programa)

• Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

2.7 Mantenimiento

Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.


PROGRAMACIÓN

LOS DATOS Y OPERACIONES BÁSICAS.


1. IDENTIFICADOR.



Un identificador es una serie de caracteres formados por letras, dígitos y el carácter subrayado ( _ ) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc.

2. TIPOS DE DATOS.

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

3. VARIABLES.

Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare.
Una variable es un identificador que puede cambiar de valor durante la ejecución de un programa.
Una variable es una posición de memoria donde se puede almacenar una valor para uso de un programa.

5. INICIALIZACIÓN DE VARIABLES

Inicializar una variable es el darle un valor después que se ha declarado pero antes de que se ejecuten las sentencias en las que se emplea.

6. CONSTANTES.

Constantes son los valores que no pueden ser modificados. En C, pueden ser de cualquier tipo de datos.
Además de los ejemplificados anteriormente, Podemos crear constantes de caracteres con barra invertida. Estos corresponden a los caracteres que son imposibles introducir desde el teclado.

7. OPERADORES

Un operador es un símbolo que indica al compilador que realice manipulaciones lógicas o matemáticas específicas.
Los operadores del mismo nivel de precedencia son evaluados por el compilador de izquierda a derecha. Por supuesto, se puede utilizar paréntesis para ordenar la evaluación.
También, conviene utilizar paréntesis para hacer más claro el orden en que se producen las evaluaciones, tanto para la persona que lo elabora o para los que después tengan que seguir el programa.

Operadores Lógicos:

Estos operadores se utilizan para establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos

And Y
Or O
Not Negación

Prioridad de los Operadores Lógicos

Not
And
Or

Operadores de Asignación. Los operadores de asignación se utilizan para formar expresiones de asignación, en las que se asigna el valor de una expresión a un identificador. ***** Por definir el operador de asignación** .
Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:

- Aritméticas
- Relaciónales
- Lógicas

9. PALABRAS RESERVADAS.

Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.

10. COMENTARIOS.

Los comentarios pueden aparecer en cualquier parte del programa, mientras estén situados entre los delimitadores /* comentario */. Los comentarios son útiles para identificar los elementos principales de un programa o para explicar la lógica subyacente de estos.
Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.
Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.
Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).


Recomendaciones para el diseño de Diagramas de Flujo.

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.
Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.
Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

• Todo diagrama debe tener un inicio y un fin.

• Se deben se usar solamente líneas de flujo horizontales y/o verticales.

• Se debe evitar el cruce de líneas utilizando los conectores.

• Se deben usar conectores solo cuando sea necesario.

• No deben quedar líneas de flujo son conectar.

• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.

• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

• Evitar la terminología de un lenguaje de programación o maquina.

• Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que este sea entendible por cualquier persona que lo consulte.

• Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde se dirige.

2. Pseudocódigo

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es mas fácil de utilizar ya que es similar al lenguaje natural.
Al contrario de los lenguajes de programación de alto nivel como Pascal o Basic no existe un conjunto de reglas que definan con precisión lo que es y lo que no es pseudocódigo. Varia de un programador a otro.
El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración condicional, así como para las instrucciones adicionales y otras estructuras de control.

Programación estructurada

Método disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fáciles de modificar

Un programa se compone de:

a) Estructuras de datos.- Los hechos reales, representación en forma de datos, manera en que se organizan los datos.

b) Operaciones primitivas elementales.- Son acciones que se ejecutan sobre los datos para transformarlos en información.

c) Estructuras de control.- Son los métodos que existen para dirigir el flujo de acciones que la computadora deberá ejecutar sobre los datos manejados por el programa.
Estructura de control secuencial
La computadora ejecutará automáticamente enunciados uno después del otro, en el orden en el cual se han escrito de inicio a fin.


Ejemplo Sumar dos números:

Pseudocódigo

Inicio

Entero a,b,c declara las variables a utilizar


Leer a,b solicita el valor de a y b

c= a+b suma a y b y lo almacena en c

Imprimir c muestra el resultado almacenado en la variable c

fin


Diagrama de flujo


ESTRUCTURA DE CONTROL SELECTIVA

Existen tres tipos de estructuras de control selectivas, estas se basan en una condición o en una opción para decidir la parte del programa por el que pasará.

a) Simple b)Doble o compuesta c)Múltiple

Selectiva simple.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa no realiza ninguna acción.



Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin, en caso contrario si, como se muestra en el diagrama anterior.
Selectiva doble o compuesta.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa ejecuta otra acción o acciones.


Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin como en este caso que la condición fue falsa, en caso contrario si, en este ejemplo cuando la condición fue verdadera.

Ejemplo: Imprimir si un número es positivo o negativo



Nota: las variables no se especifican en el diagrama de flujo, pero si en el pseudocódigo .


Fuente: Monograficos.com

jueves, 20 de diciembre de 2007

PROCESOS DE ARRANQUE.

Desde que arrancamos el PC hasta que entra el sistema operativo,

el ordenador pasa por el siguiente proceso:


· POST:

El POST es el acrónimo inglés de Power On Self Test (Auto diagnóstico al encender). Es un proceso de verificación e inicialización de los componentes de entrada y salida en un sistema de cómputo que se encarga de configurar y diagnosticar el estado del hardware.

Códigos de error: El conocimiento de los POST es muy importante cuando vamos a comprobar una tarjeta madre nueva o agregamos algún hardware.

El código POST le envía al usuario una serie de sonidos que le indican el resultado del chequeo automático del sistema. Se emite usando un dispositivo que rara vez puede estar afectado, la bocina del sistema.

Variaciones :Aunque el POST está establecido como un estándar internacional, cada fabricante puede decidir cambiar y agregar códigos personalizados.


Códigos de diagnóstico numéricos:

BIOS POST card para el bus ISA.Existen también dispositivos especiales que provistos de una pantalla LCD y conectado vía puerto serie (COM) permite visualizar un número hexadecimal el cual luego de ser buscado en otra tabla especial realiza la misma función, pero por supuesto, de una manera mucho más cómoda.

Actuamente las placas madres suelen tener integrado un par de visualizadores de siete segmentos que muestra los estados del POST y en su manual de fábrica la correspondiente descripción detallada de los códigos que muestra.


· MBR:

Un master boot record (MBR) es el primer sector ("sector cero") de un dispositivo de almacenamiento de datos, como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado.

En la práctica, el MBR casi siempre se refiere al sector de arranque de 512 bytes, o el partition sector de una partición para ordenadores compatibles con IBM. Debido a la amplia implantación de ordenadores PC clónicos, este tipo de MBR se usa mucho, hasta el punto de ser incorporado en otros tipos de ordenador y en nuevos estándares multi-plataforma para el particionado y el arranque.


· NTLDR:

En todos los sistemas con núcleo NT (por ejemplo Windows XP o Windows 2000) el cargador se llama NTLDR (de “nt loader”), y se encuentra en la partición activa o volumen de sistema (habitualmente C). El archivo ntldr lee el sistma de archivos,carga una serie de controladores básicos de dispositivos y lee la información contenida en el archivo boot.ini.

· BOOT.INI.

Este archivo se encuentra oculto en el directorio raíz de nuestro volumen de sistema,.es decir en C, y referencia qué tipo de Sistema Operativo tiene que cargar.

· NTDETECT:

Es el encargado de la detección del hardware instalado.Nuestro archivo ntdetect.com¸ se encarga de cargar la información contenida en nuestro perfil de hardware y las tablas de la ACPI, y las envía para su inclusión a nuestro archivo de arranque ntldr, para ser agregadas en la clave del registro.

· NTKRNL:

Es el archivo principal para el Kernel (núcleo del sistema) y los subsistemas de ejecución de Windows (gestor de memoria, gestor de caché, programador, monitor de referencia de seguridad, etc). Este archivo es uno de los más importantes para Windows, ya que sencillamente le permite funcionar y además necesita de hal.dll que contiene el código que permite a los dispositivos de hardware comunicarse con el sistema operativo.

· HAL:

Es la Programación en un sistema operativo que funciona como una interfaz entre el sistema de hardware y el sistema de software, proveyendo una plataforma de hardware consistente sobre la que corren las actualizaciones.