Diferencia entre revisiones de «DBase»

Línea 22: Línea 22:
 
|web=
 
|web=
 
}}
 
}}
'''DBASE'''. Fue el primer sistema de gestión de [[base de datos]] usado ampliamente para microcomputadoras, publicado por [[Ashton-Tate]] para [[CP/M]]. Se utilizaba el [[archivo]] .dbf en muchas de las aplicaciones para almacenar datos.
+
'''DBASE'''. Fue el primer sistema de gestión de [[base de datos]] usado ampliamente para microcomputadoras, publicado por Ashton-Tate para [[CP/M]]. Se utilizaba el [[archivo]] .dbf en muchas de las aplicaciones para almacenar datos.
  
 
== Generalidades ==
 
== Generalidades ==
  
El creador original de dBase fue [[Wayne Ratliff]].
+
El creador original de dBase fue Wayne Ratliff.
 
dBase fue el gran desarrollo para base de datos de los años ´80. Bajo la batuta de la firma Ashton Tate, empresa que dio origen a un intérprete de [[bases de datos]] muy sencillo y poderoso: dBbase II. Luego vinieron el dBase III+ que hizo furor, y la etapa de la decadencia para dBase: el dBase IV, ya bajo la dirección de [[Borland]].                       
 
dBase fue el gran desarrollo para base de datos de los años ´80. Bajo la batuta de la firma Ashton Tate, empresa que dio origen a un intérprete de [[bases de datos]] muy sencillo y poderoso: dBbase II. Luego vinieron el dBase III+ que hizo furor, y la etapa de la decadencia para dBase: el dBase IV, ya bajo la dirección de [[Borland]].                       
  

Revisión del 12:38 9 oct 2012

dBase
Información sobre la plantilla
Parte de la familia de Base de Datos
Dbase.gif
Primer sistema de gestión de base de datos
CreadorAshton-Tate
Lanzamiento inicial1981
VersionesdBase II, dBase III, dBase III+, dBase IV
Última versión establedBase IV
GéneroGestor de bases de datos
Sistemas Operativos compatiblesMS-DOS
Idiomainglés y español

DBASE. Fue el primer sistema de gestión de base de datos usado ampliamente para microcomputadoras, publicado por Ashton-Tate para CP/M. Se utilizaba el archivo .dbf en muchas de las aplicaciones para almacenar datos.

Generalidades

El creador original de dBase fue Wayne Ratliff. dBase fue el gran desarrollo para base de datos de los años ´80. Bajo la batuta de la firma Ashton Tate, empresa que dio origen a un intérprete de bases de datos muy sencillo y poderoso: dBbase II. Luego vinieron el dBase III+ que hizo furor, y la etapa de la decadencia para dBase: el dBase IV, ya bajo la dirección de Borland.

Historia

En 1975 C. Wayne Ratliff era un ingeniero que trabajaba como programador para la Corporación Martin Marietta (un importante contratista de la NASA) desde 1969, y cuya trayectoria había sido bastante destacada. En ese entonces se encontraba desarrollando un sistema para manejo de datos llamado MFILE, que sería posteriormente utilizado por la nave Vikingo durante su expedición a Marte en 1976.

La temporada de fútbol americano había comenzado y Ratliff se aventuró a participar en una apuesta junto con algunos amigos suyos, pese a desconocer los pormenores del juego. Confiando en sus conocimientos de matemáticas y programación, Ratliff decidió que escribiría un programa que analizaría las estadísticas de juegos anteriores a fin de poder realizar predicciones acertadas.

El único problema es que en esos días no existía ningún programa que pudiera hacer lo que él quería. Es más, las computadoras personales apenas empezaban a hacer acto de aparición, y todavía adolecían de muchos problemas además de carecerse de estándares en el naciente mercado.

Tras realizar un breve análisis de la situación, Ratliff se convenció que su tarea sería poco menos que imposible, y en vez de preocuparse por el fútbol americano, centró su atención en el desarrollo de un manejador de base de datos, pensando que podría tener algunas posibilidades comerciales. Fuertemente influenciado por la película 2001 : una odisea espacial, Ratliff se entusiasmó con la idea de poder utilizar lenguaje natural para comunicarse directamente con la computadora, tal y como lo hacía HAL 9000 en la famosa cinta. Un amigo de Ratliff llamado Gerry Snyder tenía en su poder una computadora IMSAI 8080 que, aunque bastante primitiva, parecía acomodarse a las necesidades de Ratliff, que se decidió inmediatamente a adquirir una.

Tomando como modelo un programa desarrollado por la NASA llamado JPLDIS (Jet Propulsion Laboratory Data-management and Information System), Ratliff comenzó a escribir su manejador de base de datos en el lenguaje ensamblador de la IMSAI en enero de 1978.

Para fines de enero, había nacido el formato .DBF y los primeros comandos de su programa, que Ratliff decidió llamar Vulcano, se encontraban listos.

Vulcano

Vulcano fue desarrollado bajo el sistema operativo PTDOS, pero la empresa que lo distribuía (Processor Technology) estaba a punto de desaparecer, por lo que Ratliff pensó que sería prudente migrar su código a un sistema operativo más difundido: el CP/M (el predecesor del MS-DOS). En 1979, el JPL (Jet Propulsion Laboratory) de la NASA se volvió el primer cliente de Ratliff, adquiriendo una licencia exclusiva de uso por el precio de cinco programas. Con esta licencia, los empleados del JPL se volvieron los pilotos de pruebas del nuevo software, y con sus comentarios, Ratliff fue puliendo cada vez más su producto. En octubre de 1979 se animó a poner un anuncio en la popular revista BYTE, y los pedidos empezaron a llegar. Ratliff seguía trabajando para Martin Marietta, por lo que contaba sólo con sus ratos libres para atender los pedidos que le llegaban del programa. Sometido a una cantidad excesiva de trabajo, la vida personal de Ratliff comenzó a volverse desastrosa, y su matrimonio pronto se vio en serios problemas.

Para el verano de 1980 se habían vendido unas 60 copias de Vulcano, lo cual, era bueno para aquella época. Sin embargo, Ratliff estaba convencido que no podía seguir distribuyendo él mismo el programa, y retiró el anuncio de BYTE decidido a dejar morir el proyecto a menos que alguien más se hiciera cargo de la mercadotecnia. Cuando Ratliff se encontraba en negociaciones con un profesor de la Universidad de Washington que se interesaba en Vulcano, hicieron acto de aparición dos singulares personajes: George Tate y Hal Lashlee, que entonces tenían una minúscula empresa de distribución de software llamada Discount Software. Tras presenciar una demostración del Vulcano, Tate y Lashlee le ofrecieron a Ratliff hacerse cargo de las ventas del programa a cambio de una comisión. Tras firmarse un acuerdo por un año, se pusieron a trabajar en su problema más urgente: debían cambiarle el nombre al programa, dado que una empresa de la Florida amenazaba con demandarlos porque estaban comercializando un sistema operativo con el mismo apelativo.

dBase II

Vulcan es portado al IMSAI 8080, se le renombra a dBase II (Tate considera que una versión 2 dará una imagen de más seriedad y producto más elaborado) y de ahí a CP/M, donde se le añaden comandos de soporte de interfaz de video (en modo texto), y soporte de control de flujo (como DO WHILE/ENDDO) y lógica condicional (como IF/ENDIF). Para el manejo de datos, dBase proporciona detallados comandos procedurales y funciones para abrir y navegar por las tablas (como USE, SKIP, GO TOP, GO BOTTOM, y GO recno), manipular valores en los campos (REPLACE y STORE), y manipulación de cadenas de caracteres (como STR() and SUBSTR()), Fechas y Números. Su habilidad para simultáneamente abrir y manipular múltiples ficheros conteniendo datos relacionados hará que Ashton-Tate lo califique de Sistema administrador de bases de datos relacionales aunque no cumpla con los criterios definidos por el Doctor Edgar F. Codd.

Alcanza un gran éxito, y se incluye en los paquetes de soft distribuidos con el Osborne 1, la gama de ordenadores Kaypro y otros equipos. El nacimiento de los ordenadores personales hacen que se utilice para crear programas profesionales en equipos como las gamas Amstrad CPC y Amstrad PCW, el Commodore 128 y los equipos MSX con unidad de disco (el MSX-DOS soporta los ejecutables CP/M 8080 y Z80).

Lashlee bosquejó un anuncio sumamente radical que se titulaba "dBASE II vs. the bilge-pump", y el cual firmó como Ashton-Tate. En un pedazo de papel se encontraba no sólo el nuevo nombre del programa sino también el de la empresa que lo vendería. Tras firmar el convenio con Ashton-Tate, Ratliff introdujo algunos cambios más a su programa, a fin de hacer un producto más vendible y que pudiera competir con el temible DataStar de la entonces poderosa MicroPro (autores del WordStar). Para febrero de 1981 empezaron a llegar los pedidos.

El dBase II se vendió muy bien, y para fines de 1981 Ratliff tuvo que contratar a otras personas para que le ayudaran a escribir modificaciones que le solicitaban algunos clientes. A mediados de 1982, con el negocio yendo viento en popa, Ratliff se decidió a renunciar de su empleo para dedicarse por completo a trabajar en el dBase.

Los problemas empezaron en 1983, cuando Ratliff se dio cuenta que Ashton-Tate le estaba pagando sólo el 30% de las regalías que le correspondían. Además, empezaron a manejar el dBase como si les perteneciera, ante el creciente desagrado de Ratliff que, entretanto, se dedicaba de tiempo completo a introducir mejoras a su programa.

La tensión se agudizó cuando Ashton-Tate empezó a presionar a Ratliff para que les vendiera todos los derechos del dBASE, y éste se negó a hacerlo. Tras un breve forcejeo, finalmente aceptó, y se firmó un acuerdo sobre sus derechos de autor y demás detalles legales de propiedad del programa. Este acuerdo estipulaba además, que Ratliff sería nombrado Vicepresidente de Nuevas Tecnologías. Pero Ratliff estaba cansado de lidiar con tantos problemas, y poco después decidió tomarse un descanso para dedicarse a leer sobre su vieja afición: el procesamiento en lenguaje natural. Poco tiempo duró el destierro, pues para fines de 1983 ya estaba de vuelta, ante las súplicas de Ashton-Tate, que necesitaba su ayuda para completar la nueva versión del dBase (escrita en lenguaje C) que se lanzaría al mercado en respuesta al R:BASE, un nuevo producto que ponía en peligro su posición de liderazgo.

dBase III y dBase III Plus

En un tiempo récord de sólo 4 meses, el experimentado Ratliff y un equipo de 6 programadores produjo el dBase III, que vio la luz el 14 de junio de 1984. Una vez concluida su misión, Ratliff regresó una vez más a su auto-aislamiento, y se mantuvo al margen del desarrollo del dBase III Plus. Con el pasar del tiempo, sus inconformidades fueron creciendo cada vez más, sobre todo porque su opinión parecía tener cada vez menos peso en las extensiones que se hacían al dBase.

Las versiones originales fueron escritas en lenguaje ensamblador, pero a medida que el programa creció se tomó la decisión de re-escribir el código en lenguaje C. El resultado fue que las máquinas recientes corrían bien el código, pero no así las antiguas. Además, tenía el problema colateral de que los programas corrían más despacio. Este problema desapareció "solo" al aumentar la potencia del hardware paulatinamente.

La versión 1.0, presentada en 1984, contenía numerosos errores que fueron solucionados en la versión 1.1. También existió una versión 1.2, que fue presentada como "Developer's edition".

En 1986, se presentó dBase III+, que incluía un núcleo mejorado y menús basados en caracteres de texto para ser utilizado por usuarios finales. También aportaba un primer soporte para red local.

dbase IV

En agosto de 1984 George Tate murió de un ataque al corazón sobre su escritorio, a consecuencia de una sobredosis de cocaína. Con su muerte, Ed Esber, (ex-vicepresidente de mercadotecnia de Visicorp) tomó el mando de Ashton-Tate, sólo para empeorar las cosas. Esber inclinó la balanza demasiado al lado de la mercadotecnia, olvidándose de la tecnología.

Ratliff, su programador más valioso, decidió renunciar a la empresa en enero de 1986, dejando solo a un equipo de desarrollo que liberó el dBase IV con casi 2 años de retraso, debilitando fuertemente la posición de la empresa en el mercado. En la primavera de 1990, Esber fue forzado a abandonar Ashton-Tate, pues el dBase IV estaba plagado de errores, y las recientes pérdidas de $41 millones de dólares eran un claro indicativo de que estaban perdiendo mercado a pasos agigantados. El sueño finalmente había terminado.

En 1988 salió la nueva versión, que anunciaba mejores prestaciones y nuevas funcionalidades como soporte SQL, soporte para red local, compilador, entre otras, aunque en realidad era terriblemente lenta e inestable. Aunque incorporaba un compilador, producía sólo código objeto y no un ejecutable, que no era lo que el mercado y desarrolladores esperaban. Este último punto alimentó lo suficiente a Clipper para que la acabara enterrando.

Se tardó 2 años en presentar la versión 1.1, que corregía los problemas de inestabilidad. Para entonces, Paradox y sobre todo Clipper ya lo habían echado del mercado.

Comandos

Estructura

La estructura de los comandos es lo que se llama sintaxis. En DBASE se tiene la siguiente generalización :

VERBO ALCANCE LISTA DE EXPRESION CONDICION , donde :

Verbo: Acción que se desea desarrollar.

Alcance: Determina qué registros se verán afectados por la acción a desarrollar por el comando.

Lista de expresiones: Determinan qué campos de los registros seleccionados se verán involucrados.

Definir una base de datos

CREATE <nombre de archivo>

Presenta una especie de editor donde se especifican los campos, los tipos y largo de los datos.

MODIFY STRUCTURE Permite modificar la estructura de la tabla y su aspecto es similar al de CREATE, permitiendo mantener los datos ya ingresados cambiándolos al nuevo formato. Abrir y cerrar archivos

USE [<tabla>] Indica que todas las operaciones que se realicen se efectuaran en la tabla indicada.

Si no se agrega un nombre, se cerrara todo lo que esta en uso.

CLOSE <opción> Cierra diferentes elementos dependiendo de la opción: ALL: cierra todo lo que esté abierto. DATABASES: cierra todas las tablas que están abiertas. INDEX: cierra todos los archivos de índices abiertos.

Agregar registros a una tabla en uso

APPEND [BLANK]

Permite agregar datos al final de el archivo. Con la opción BLANK solo se agrega un registro en blanco al final de el archivo.

INSERT [BEFORE] [BLANK] Lo mismo que el comando anterior con la diferencia de que agrega los registros en la posición actual de el archivo, siempre después de el actual a menos que se especifique lo contrario agregando al final BEFORE.

Cambiar el contenido de uno o más registros

EDIT [<alcance>] [FIELDS <lista de campos>]

Permite cambiar el contenido de uno o mas registros de una tabla.

BROWSE Permite lo mismo que el comando EDIT, salvo que despliega varios registros a la vez.

NOTA : Para editar un campo tipo memo se deben pulsar las teclas CTRL - Pg Dn y para finalizar la edición se pulsa CTRL - Pg Up.

Despliegue de contenido

DISPLAY [OFF] [ALL / NEXT n] [lista de campos]

LIST [OFF] [ALL / NEXT n] [lista de campos]

Ambos despliegan el contenido de uno o mas registros, la diferencia esta en el ritmo de despliegue en pantalla, dejaremos al lector usuario descubrir la diferencia. Desplazamiento en la base de datos

Registro activo

El registro activo en que se está actualmente se puede cambiar a través de los siguientes comandos: .GO n : va a l registro n .GO TOP : va al comienzo del archivo. .GO BOTTOM : va al último registro. .SKIP : salta al registro siguiente. .SKIP n : avanza n registros desde el actual. .SKIP -n : retrocede n registros a partir del actual.

Búsqueda de artículos

.LOCATE [FOR <condición>] [WHILE <condición>] Permite buscar registros que cumplan con algún patrón. La búsqueda es desde el primer registro hasta el fin de el archivo deteniéndose en el primer registro que cumpla con la característica indicada.

Para que la búsqueda continúe al siguiente se debe dar el comando: .CONTINUE

Borrado de registros

.DELETE [<alcance>] Borra en forma lógica uno o mas registros.

.PACK Borra en forma física los registros borrados con DELETE.

.RECALL Recobra los registros borrados por el comando DELETE.

Organización de la información

.SORT TO <archivo> ON <campo> Crea una tabla con la misma estructura pero sus registros están ordenados según el orden ascendente que implica el campo especificado.

  • Indexar tablas

Hasta el momento se ha trabajado con tablas que son accedidas en un orden secuencial, pero existe otra alternativa que es tener un archivo de índice para el manejo de información; el cual nos permite manipular la tabla ordenada por uno mas campos para llegar en forma rápida a registros específicos en tablas muy grandes.

.INDEX ON <llave> TO <archivo-índice> Permite indexar la tabla creando otro archivo de extensión NDX. La llave es una expresión numérica o alfanumérica en función de los campos.

  • Uso de la tabla indexada

.USE <archivo> INDEX <archivo-índice>

Se activa la tabla y su archivo de índices.

.REINDEX

Por si se llegare a ocupar la tabla sin su archivo de índices, se debe hacer lo siguiente:

.USE <archivo> INDEX <archivo-índice> .REINDEX

  • Moviéndose a través de una tabla indexada

Se pueden ejecutar los mismos comandos de movimiento del punto 6 y se agregan los siguientes exclusivos de tablas indexadas:

.FIND <llave literal>

Se posiciona en el primer registro de el archivo indexado que contiene la expresión en el campo determinado por la llave.

.SEEK <expresión>'

Encuentra y se posiciona en el primer registro que contiene la expresión en la llave.

Creación de reportes y labels (etiquetas)

.CREATE REPORT <nombre>

.MODIFY REPORT <nombre>

Permiten crear y modificar un reporte respectivamente.

.REPORT FORM <nombre> TO PRINT

Permite usar el reporte hecho anteriormente.

Para labels basta con cambiar la palabra REPORT por la de LABEL.

Programación

Un programa en dBASE es un conjunto de instrucciones que se ejecutan una a una sin estar previamente compiladas, o sea, dBASE es un lenguaje interpretado.

  • Ejecutar un programa

DO <nombre del programa>

Crear un programa

MODIFY COMMAND <nombre del programa>

A continuación se dan una serie de comandos de interés:

&& y * : indican comentarios

Configuraciones de un programa

SET TALK OFF SET STATUS OFF SET DATE ITALIAN CLEAR ALL

Abrir archivos y áreas de trabajo

SELECT <n1> USE <nombre de la base> INDEX <archivo de índices> SELECT <n2> USE <base2> INDEX <indice2>

Ejemplo : SELECT 1 && Este Select viene por defecto USE Tabla INDEX apellido, edad

Entrada y Salida de datos

@ i, j [SAY "mensaje"] [GET <variable>]

El cursor se posiciona en el punto (i,j) y puede desplegar un mensaje a partir de esa posición, obtener una variable, o ambas cosas. Lo ultimo puede realizarse previa inicialización de la variable, que incluso puede ser un campo de la tabla.

Otras alternativas: ?? "mensaje" + <variable> + "Otro mensaje" + ... ? "idem" + <variable> SET PRINT ON SET TALK ON

Ejemplo 1 : CLEAR @2,1 SAY "Menu Principal" @4,1 SAY "1 - Agregar" @5,1 SAY "2 - Modificar Existente" @6,1 SAY "3 - Imprimir" OPCION = 1 WAIT "Escoja una opción" TO OPCION

Ejemplo 2 : CLEAR @2,1 SAY "Ingrese los datos" @4,1 SAY "Apellido" GET APELLIDO @5,1 SAY "Nombre" GET NOMBRE @6,1 SAY "Ocupacion" GET OCUPACION READ

@8,1 SAY "Fecha ingreso" GET FECHA @9,1 SAY "Sueldo" GET SUELDO READ

  • Estética

@i1,j1 [FILL] TO i2,j2 [DOUBLE] @i1,j1 CLEAR TO i2,j2

  • Otro comando de edición es: TEXT

Con este comando se puede colocar cualquier texto, sin necesidad de ponerlo entre comillas. Para finalizar este modo hay que escribir END TEXT.

Control de flujo

Sintaxis de los principales controles de flujo.

Instrucción IF - ELSE

IF <condición> <Instrucciones> -ELSE <Instrucciones>] ENDIF

Ejemplos de condición : SEXO = "M" (YEAR(fecha) < 1970) .AND. (LIBRE) .NOT.EOF()

Ciclo WHILE

DO WHILE <condición> [LOOP] [EXIT] ENDDO

Ciclo DO CASE

DO CASE CASE <condicion1>

======

CASE <condicion2>

======

....... ....... [OTHERWISE] ....... ENDCASE

Ejemplo DO CASE CASE OPCION = 1 DO NUEVO CASE OPCION = 2 EDIT CASE OPCION = 3 DO IMPRIMIR END CASE

NOTAS Indices : las llaves no tienen que ser muy largas si se tienen muchos campos. Si un ciclo fue mal escrito, se ignora. Si se comparan dos funciones string , al compararse siempre da resultado verdadero (en un IF).

Fuentes