dBase (también estilizado dBASE ) fue uno de los primeros sistemas de gestión de bases de datos para microcomputadoras y el más exitoso en su época. [3] El sistema dBase incluía el motor de base de datos central , un sistema de consultas, un motor de formularios y un lenguaje de programación que unía todos estos componentes.
Originalmente lanzado como Vulcan para PTDOS en 1978, el port CP/M captó la atención de Ashton-Tate en 1980. Lo licenciaron, lo reeditaron como dBASE II y más tarde lo portaron a las computadoras IBM PC que ejecutaban DOS . En la plataforma PC en particular, dBase se convirtió en uno de los títulos de software más vendidos durante varios años. Se lanzó una actualización importante como dBase III y se portó a una variedad más amplia de plataformas, incluidas UNIX y VMS . A mediados de la década de 1980, Ashton-Tate era uno de los "tres grandes" editores de software en el mercado de software empresarial temprano, [4] junto con Lotus Development y WordPerfect . [4]
A partir de mediados de los años 1980, varias empresas produjeron sus propias variantes del producto dBase y, en especial, del lenguaje de programación dBase. Entre ellas se encontraban FoxBASE+ (posteriormente rebautizado como FoxPro), Clipper y otros productos denominados xBase . Muchos de ellos eran técnicamente más sólidos que dBase, pero no pudieron desbancarlo en el mercado. [5] Esto cambió con la mala recepción de dBase IV , cuyo diseño y estabilidad eran tan deficientes que muchos usuarios cambiaron a otros productos. [6]
A principios de los años 90, los productos xBase constituían la plataforma de base de datos líder para la implementación de aplicaciones empresariales. El tamaño y el impacto del mercado xBase no pasaron desapercibidos y, en menos de un año, las tres principales empresas xBase fueron adquiridas por empresas de software más grandes:
En la primera década del siglo XXI, la mayoría de los productos xBase originales habían perdido protagonismo y muchos habían desaparecido por completo. Los productos conocidos como dBase [12] todavía existen, propiedad de dBase LLC. [13] [14]
A finales de los años 60, Fred Thompson, del Laboratorio de Propulsión a Chorro (JPL), utilizaba un producto de Tymshare llamado RETRIEVE para gestionar una base de datos de calculadoras electrónicas, que en aquel momento eran productos muy caros. En 1971, Thompson colaboró con Jack Hatfield, un programador del JPL, para escribir una versión mejorada de RETRIEVE, que se convirtió en el proyecto JPLDIS. JPLDIS se escribió en FORTRAN en el mainframe UNIVAC 1108 y se presentó públicamente en 1973. Cuando Hatfield dejó el JPL en 1974, Jeb Long asumió su puesto. [15]
Mientras trabajaba en el JPL como contratista, C. Wayne Ratliff entró en la quiniela de fútbol de la oficina . No tenía ningún interés en el juego como tal, pero sentía que podía ganar la quiniela procesando las estadísticas posteriores al juego que se encontraban en los periódicos. [16] Para ello, centró su atención en un sistema de base de datos y, por casualidad, se encontró con la documentación de JPLDIS. La utilizó como base para un puerto a PTDOS en su microordenador IMSAI 8080 construido en kit , y llamó al sistema resultante Vulcan (en honor al planeta natal del Sr. Spock en Star Trek ). [17] [18] [19]
George Tate y Hal Lashlee habían creado dos empresas emergentes exitosas: Discount Software, que fue una de las primeras en vender programas de software para PC por correo a los consumidores, y Software Distributors, que fue uno de los primeros distribuidores mayoristas de software para PC en el mundo. Entraron en un acuerdo con Ratliff para comercializar Vulcan y formaron Ashton-Tate [20] (el nombre Ashton fue elegido puramente por razones de marketing) para hacerlo. Ratliff trasladó Vulcan de PTDOS a CP/M . Hal Pawluk, quien se encargó del marketing de la naciente empresa, decidió cambiar el nombre a "dBase", más comercial. Pawluk ideó el uso de "d" minúscula y "BASE" en mayúsculas para crear un nombre distintivo. Pawluk sugirió llamar al nuevo producto versión dos ("II") para sugerir que tenía menos errores que una versión inicial. dBase II fue el resultado y se convirtió en una aplicación CP/M estándar junto con WordStar y SuperCalc. [21]
En 1981, IBM encargó una versión de dBase para el PC, que por entonces estaba en desarrollo. El programa resultante fue uno de los primeros programas disponibles cuando el IBM PC salió a la venta en el otoño de 1981. dBase era uno de los pocos programas "profesionales" de la plataforma en aquel momento y tuvo un gran éxito. La base de clientes incluía no sólo a los usuarios finales, sino también a un número cada vez mayor de "revendedores de valor añadido", o VAR, que compraban dBase, escribían aplicaciones con él y vendían los sistemas completos a sus clientes. El lanzamiento en mayo de 1983 de dBase II RunTime consolidó aún más a dBase en el mercado de los VAR al permitirles implementar sus productos utilizando el sistema RunTime, de menor coste. [ cita requerida ]
Aunque algunos críticos afirmaron que dBase era difícil de aprender, su éxito creó muchas oportunidades para terceros. En 1984, más de 1.000 empresas ofrecían desarrollo de aplicaciones relacionadas con dBase, bibliotecas de código para agregar funcionalidad, aplicaciones que utilizaban dBase II Runtime, consultoría, capacitación y libros de instrucciones. Una empresa de San Diego (hoy conocida como Advisor Media) estrenó una revista dedicada al uso profesional de dBase, Data Based Advisor ; su circulación superó los 35.000 ejemplares después de ocho meses. [22] Todas estas actividades impulsaron el rápido ascenso de dBase como el producto líder de su tipo. [23] [24]
A principios de los años 1980, a medida que proliferaban las plataformas y los sistemas operativos , la empresa encontró dificultades para trasladar el lenguaje ensamblador dBase a los sistemas de destino. Esto llevó a una reescritura de la plataforma en el lenguaje de programación C , utilizando herramientas de conversión de código automatizadas. El código resultante funcionaba, pero esencialmente no estaba documentado [ ¿por qué? ] y tenía una sintaxis inhumana [ ¿cómo? ] , un problema que resultaría ser grave en el futuro. [ cita requerida ]
En mayo de 1984, se lanzó la versión reescrita de dBase III. Aunque los críticos criticaron ampliamente su rendimiento reducido, el producto recibió buenas críticas. Después de unas pocas actualizaciones rápidas, el sistema se estabilizó y volvió a ser un éxito de ventas durante la década de 1980, y formó el famoso "trío de aplicaciones" de compatibles con PC (dBase, Lotus 123 y WordPerfect ). En el otoño de 1984, la empresa tenía más de 500 empleados y estaba facturando 40 millones de dólares al año en ventas (equivalentes a 117 millones de dólares en 2023), la gran mayoría de los productos dBase. [ cita requerida ]
En la Unión Soviética también existía un clon no autorizado de dBase III llamado Rebus . Su adaptación al idioma ruso se redujo a la sustitución mecánica del nombre, la rusificación de los archivos de ayuda y la corrección de las tablas de ordenación para el idioma ruso.
Introducido en 1988, [25] después de retrasos, [26] dBase IV tenía "más de 300 características nuevas o mejoradas". Para entonces, FoxPro ya había hecho avances, e incluso el soporte de dBase IV para Query by Example y SQL no era suficiente. [ cita requerida ]
En el camino, Borland , que había comprado Ashton-Tate , lanzó una versión revisada de dBase IV en 1992 [27] pero con un enfoque descrito como "diseñado para programadores" en lugar de "para usuarios comunes". [ cita requerida ]
Para manejar datos, dBase proporcionó comandos y funciones de procedimiento detallados para [36]
dBase es un lenguaje de desarrollo de aplicaciones y un sistema integrado de gestión de bases de datos de navegación que Ashton-Tate denominó " relacional ", pero que no cumplía los criterios definidos por el modelo relacional del Dr. Edgar F. Codd . Utilizaba una arquitectura de intérprete en tiempo de ejecución, que permitía al usuario ejecutar comandos escribiéndolos en una línea de comandos "punto de solicitud". [ cita requerida ] De manera similar, los scripts de programas (archivos de texto con extensiones PRG) se ejecutaban en el intérprete (con el comando DO). [ cita requerida ]
Con el tiempo, los competidores de Ashton-Tate introdujeron los llamados productos clónicos y compiladores que tenían características de programación más robustas, como funciones definidas por el usuario (UDF) y matrices para el manejo complejo de datos. Ashton-Tate y sus competidores también comenzaron a incorporar SQL , el lenguaje estándar ANSI/ISO para crear, modificar y recuperar datos almacenados en sistemas de gestión de bases de datos relacionales. [ cita requerida ]
Finalmente, se hizo evidente que el mundo de dBase se había expandido mucho más allá de Ashton-Tate. Se formó una comunidad de "terceros", compuesta por Fox Software, Nantucket, Alpha Software, Data Based Advisor Magazine, SBT y otras empresas de desarrollo de aplicaciones, y grupos de desarrolladores importantes. Paperback Software lanzó el flexible y rápido VP-Info con un compilador integrado único. La comunidad de variantes de dBase buscó crear un estándar de lenguaje dBase, apoyado por el comité IEEE X3J19 y la iniciativa IEEE 1192. Decían "xBase" para distinguirlo del producto Ashton-Tate. [ cita requerida ]
Ashton-Tate vio el ascenso de xBase como una amenaza ilegal a su tecnología propietaria. En 1988 presentaron una demanda contra Fox Software y Santa Cruz Operation (SCO) por copiar la "estructura y secuencia" de dBase en FoxBase+ (SCO comercializaba versiones XENIX y UNIX de los productos de Fox). En diciembre de 1990, el juez de distrito estadounidense Terry Hatter Jr. desestimó la demanda de Ashton-Tate e invalidó los derechos de autor de Ashton-Tate por no revelar que dBase se había basado, en parte, en el dominio público JPLDIS . [37] En octubre de 1991, mientras el caso todavía estaba en apelación, Borland International adquirió Ashton-Tate y, como una de las disposiciones de la fusión, el Departamento de Justicia de los EE. UU. exigió a Borland que pusiera fin a la demanda contra Fox y permitiera a otras empresas utilizar el lenguaje dBase/xBase sin la amenaza de una acción legal. [ cita requerida ]
A finales de 1992, las principales empresas de software aumentaron la apuesta al adquirir los productos líderes xBase. Borland adquirió los productos dBase de Ashton-Tate (y más tarde los productos xBase de WordTech), Microsoft adquirió los productos FoxBASE+ y FoxPro de Fox Software, y Computer Associates adquirió los productos Clipper de Nantucket. Advisor Media amplió su revista Data Based Advisor con el lanzamiento de revistas y periódicos para desarrolladores FoxPro Advisor y Clipper Advisor (y otros), y conferencias en vivo para desarrolladores. Sin embargo, la revista dBase Advisor que estaba planeada se canceló debido al fracaso de mercado de dBase IV. [ cita requerida ]
En el año 2000, el mercado de xBase se había desvanecido a medida que los desarrolladores cambiaban a nuevos sistemas de bases de datos y lenguajes de programación. Computer Associates (más tarde conocida como CA) finalmente abandonó Clipper. Borland reestructuró y vendió dBase. De los principales compradores, Microsoft fue el que más tiempo se quedó con xBase, evolucionando FoxPro a Visual FoxPro, pero el producto ya no se ofrece. En 2006, Advisor Media dejó de publicar su última revista xBase superviviente, FoxPro Advisor. La era del dominio de xBase ha terminado, pero todavía hay productos xBase. La línea de productos dBase ahora es [ ¿cuándo? ] propiedad de dBase LLC, que actualmente [ fecha faltante ] vende dBASE PLUS 12.3 y un dBASE CLASSIC basado en DOS (dbDOS para ejecutarlo en Windows de 64 bits). [38] [39]
Hay algunas implementaciones de código abierto disponibles, como Harbour , xHarbour y Clip. [ cita requerida ]
En 2015 nació un nuevo miembro de la familia xBase: el lenguaje XSharp (X#), mantenido como un proyecto de código abierto con un compilador, su propio IDE e integración con Microsoft Visual Studio. XSharp produce ensamblajes .NET y utiliza el conocido lenguaje xBase. El producto XSharp fue creado originalmente por un grupo de cuatro entusiastas que han trabajado para el proyecto Vulcan.NET en el pasado. El compilador se crea sobre el código del compilador Roslyn , el código detrás de los compiladores C# y VB de Microsoft. [ cita requerida ]
En la actualidad, las implementaciones del lenguaje dBase se han ampliado para incluir muchas características destinadas a aplicaciones comerciales, incluida la programación orientada a objetos, la manipulación de datos remotos y distribuidos a través de SQL, la funcionalidad de Internet y la interacción con dispositivos modernos. [ cita requerida ]
El siguiente ejemplo abre una tabla de empleados ("empl"), otorga a cada gerente que supervisa a 1 o más empleados un aumento del 10 por ciento y luego imprime los nombres y los salarios.
USAR empl REEMPLAZAR TODO salario CON salario * 1.1 PARA supervisores > 0 LISTA TODOS fname, lname, salario PARA IMPRIMIR * (comentario: las palabras reservadas se muestran en MAYÚSCULAS con fines ilustrativos)
Observe que no es necesario seguir mencionando el nombre de la tabla. La tabla asumida ("actual") permanece igual hasta que se indique lo contrario. Debido a sus orígenes como lenguaje interactivo interpretado, dBase utilizó una variedad de técnicas contextuales para reducir la cantidad de escritura necesaria. Esto facilitó el desarrollo interactivo incremental, pero también dificultó la programación modular a gran escala. Un principio de la programación modular es que la ejecución correcta de un módulo de programa no debe verse afectada por factores externos como el estado de las variables de memoria o las tablas que se manipulan en otros módulos de programa. Debido a que dBase no fue diseñado con esto en mente, los desarrolladores tuvieron que tener cuidado al portar (tomar prestado) código de programación que asumiera un cierto contexto y dificultara la escritura de código modular a gran escala. Las referencias específicas del área de trabajo aún eran posibles utilizando la notación de flecha ("B->customer") para que se pudieran manipular varias tablas al mismo tiempo. Además, si el desarrollador tuviera la previsión de nombrar sus tablas de forma apropiada, podría hacer referencia claramente a una gran cantidad de tablas abiertas al mismo tiempo mediante notaciones como ("empleado->salario") y ("vacaciones->fecha_de_inicio"). Alternativamente, el comando alias podría agregarse a la apertura inicial de una declaración de tabla, lo que haría que la referencia a un campo de tabla sea inequívoca y simple. Por ejemplo, uno puede abrir una tabla y asignarle un alias de esta manera, "use el alias EMP Employee", y de ahí en adelante, hacer referencia a las variables de tabla como "Empleado->Nombre".
Otra característica notable es la reutilización de las mismas cláusulas para diferentes comandos. Por ejemplo, la cláusula FOR limita el alcance de un comando determinado (es comparable a la cláusula WHERE de SQL). Diferentes comandos como LIST, DELETE, REPLACE, BROWSE, etc. podrían aceptar una cláusula FOR para limitar (filtrar) el alcance de su actividad. Esto simplifica el aprendizaje del lenguaje. [ cita requerida ]
dBase también fue uno de los primeros lenguajes orientados a los negocios en implementar la evaluación de cadenas . [ cita requerida ]
i = 2 myMacro = "i + 10" i = &myMacro * comentario: i ahora tiene el valor 12
Aquí el "&" le indica al intérprete que evalúe la cadena almacenada en "myMacro" como si fuera código de programación. Este es un ejemplo de una característica que hizo que la programación de dBase fuera flexible y dinámica, a veces llamada "metacapacidad" en la profesión. Esto podría permitir que las expresiones de programación se coloquen dentro de tablas, algo que recuerda a las fórmulas en el software de hojas de cálculo. [ cita requerida ]
Sin embargo, también podría ser problemático para la precompilación y para hacer que el código de programación sea seguro frente a ataques de hackers. Sin embargo, dBase tendía a usarse para aplicaciones internas personalizadas para pequeñas y medianas empresas donde la falta de protección contra la copia, en comparación con el software compilado, a menudo era un problema menor. [ cita requerida ]
Un importante legado de dBase es su formato de archivo .dbf , que se ha adoptado en varias otras aplicaciones. Por ejemplo, el formato shapefile , desarrollado por ESRI para datos espaciales en su sistema de información geográfica PC ArcInfo , utiliza archivos .dbf para almacenar datos de atributos de características. [40]
Microsoft recomienda guardar un archivo de base de datos de Microsoft Works en el formato de archivo dBase para que pueda ser leído por Microsoft Excel . [41]
Hay un paquete disponible para que Emacs lea archivos xbase. [42]
LibreOffice y OpenOffice Calc pueden leer y escribir todos los archivos dbf genéricos. [43] [44]
El sistema de base de datos de dBase fue uno de los primeros en proporcionar una sección de encabezado para describir la estructura de los datos en el archivo. [ cita requerida ] Esto significaba que el programa ya no requería un conocimiento previo de la estructura de datos, sino que podía preguntar al archivo de datos cómo estaba estructurado. Existen varias variaciones en la estructura de archivo .dbf, y no todos los productos relacionados con dBase y las estructuras de archivo .dbf son compatibles. VP-Info es único en el sentido de que puede leer todas las variantes de la estructura de archivo dbf. [45]
Un segundo tipo de archivo es el formato de archivo .dbt para los campos de notas. Mientras que los campos de caracteres están limitados a 254 caracteres cada uno, un campo de notas es un puntero de 10 bytes a un archivo .dbt que puede incluir un campo de texto mucho más grande. dBase tenía una capacidad muy limitada para procesar campos de notas, pero otros lenguajes xBase como Clipper trataban los campos de notas como cadenas, al igual que los campos de caracteres, para todos los propósitos excepto el almacenamiento permanente. [ cita requerida ]
dBase utiliza archivos .ndx para índices únicos y archivos .mdx (múltiples índices) para almacenar entre 1 y 48 índices. Algunos lenguajes de xBase, como VP-Info, incluyen compatibilidad con archivos .ndx, mientras que otros utilizan formatos de archivo diferentes, como .ntx, utilizado por Clipper , y .idx/.cdx, utilizados por FoxPro o FlagShip. Las iteraciones posteriores de Clipper incluyeron controladores para índices .ndx, .mdx, .idx y .cdx . [ cita requerida ]
En julio de 1980, Jerry Pournelle, de BYTE , calificó a Vulcan de "exasperantemente excelente" porque el software era potente pero la documentación era pobre. Elogió su velocidad y sus consultas sofisticadas, pero dijo que "damos muchos golpes en la mesa y gritamos de rabia contra la documentación". [18]
"¿Vale la pena esperar [dBASE IV 1.0]? Creo que sí", escribió Malcolm Rubel en la revista en 1989, describiéndolo como "un salto cuántico sobre dBASE III Plus en funcionalidad, potencia y facilidad de uso". Dijo que el software era 100% compatible con versiones anteriores como Ashton-Tate había prometido, y elogió a Control Center por mejorar enormemente el modo Assist de III Plus. La revista tomó nota de los primeros informes de errores y prometió un seguimiento, pero concluyó que "el producto parece sólido en general". [46]
En 1995, Novell vendió el sistema operativo a SCO. ... En 1991, Ashton-Tate se fusionó con Borland
En su primera adquisición importante, la empresa de software Microsoft Corp. anunció el martes que comprará Fox Software, una empresa privada, por unos 173 millones de dólares.