4th Dimension

linguaggio di programmazione
Disambiguazione – Se stai cercando il videogioco, vedi 4th Dimension (videogioco).

4th Dimension è un database relazionale e un RAD, scritto da Laurent Ribardiere a metà degli anni 80 e ancora oggi prodotto e manutenuto dalla società francese 4D SAS.

4D
software
Logo
Logo
GenereDatabase management system
Sviluppatore4D SAS
Data prima versione1984
Ultima versione17.3 (17 settembre 2019[1])
Sistema operativoMicrosoft Windows
macOS
LinguaggioC++
C
LicenzaEULA
(licenza non libera)
Linguainglese, francese, spagnolo, tedesco, portoghese
Sito webwww.4d.com/ e doc.4d.com

Nato su Macintosh è disponibile dal 1993 anche su Windows; oltre al motore del database include anche la gestione dell'interfaccia e un linguaggio con molti comandi e la possibilità di plugin esterni per aggiungere funzionalità di videoscrittura, fogli di calcolo, connessione dati nativa a Oracle, MySQL, eccetera.

È inoltre incluso un webserver (negli anni scorsi la società aveva comprato la Starnine, produttrice del famoso web server Webstar per Macintosh, poi ceduta a Kerio).

Conta come programmatori molti consulenti in diverse società dove viene spesso utilizzato come middleware (software per le necessità operative dell'utente che non può richiedere funzioni particolari ai grossi sistemi informativi aziendali), ma è difficilmente inquadrabile nel mercato perché si pone a metà strada fra i database puri (Oracle, MS Sql, etc) e i database integrati in interfacce semplici (come Access o FileMaker).

Spesso è quindi usato in monoutenza per usi particolari, ma conta anche installazioni strategiche con centinaia di client e siti web.

Standard supportati[2] modifica

  • possibilità di generare applicazione pubblicabili su Mac App Store[3]
  • engine SQL aderisce allo standard SQL-92, con alcune limitazioni e alcune funzioni aggiuntive[4]
  • supporto all'SQL Pass-through, comunicazione diretta con data source esterni
  • esecuzione diretta script PHP 5.3 con interprete compilato FastCGI
  • supporto XML versione 1.0 con la libreria Xerces di Apache Foundation, sia lo standard DOM (Document Object Model) che il SAX (Simple API XML), la notazione XPath (per il DOM) e le trasformazioni tramite XSL style sheets (eXtended Stylesheet Language)
  • gestione di quattro tipi di Metadati per le immagini: EXIF, GPS, IPTC e TIFF
  • gestione del forma SVG (Scalable Vector Graphics), sia come visualizzazione che creazione e modifica
  • supporto dell'architettura standard XLIFF (XML Localization Interchange File Format) per la localizzazione dell'interfaccia
  • supporto dei WebService, sia come server che come client: generazione automatica del WSDL (Web Service Description Language) come server e interpretazione degli stessi per la generazione del codice client, supporto dei protocolli SOAP (versione 1.1 e versione 1.2), RPC (Remote Procedure Call) e DOC (Document-oriented)
  • il Web Server è compatibile HTML 1.1, supporta documenti XML, la tecnologia WML (Wireless Markup Language), il protocollo SSL (Secured Socket Layer)
  • supporta le CGI e può essere chiamato tramite CGI da altri web server
  • utilizzando il web server sui client è possibile realizzare facilmente il Load Balancing
  • disponibilità di un 4D AJAX Framework, per creare pagine web collegate e distribuite dal server 4D
  • disponibilità di un 4D for Flex, che permette alle applicazioni Flex di collegarsi direttamente al server 4D
  • supporta le chiamate via ODBC con driver nativo anche per Macintosh
  • supporta le chiamate via PDO_4D da PHP
  • supporta chiamate dirette server to server con altri server 4D
  • può interrogare altri database via protocollo ODBC e OCI (Oracle Call Interface)
  • comandi per interrogazione server posta POP3 e IMAP, Internet Message Access Protocol, Version 4 revision 1 (IMAP4rev1)
  • comandi per l'invio di posta tramite server SMTP, con allegati, destinatari, destinatari in copia CC (Carbon Copy) e in copia nascosti BCC (Blind Carbon Copy), autenticazione (CRAM-MD5, LOGIN, PLAIN), commenti
  • comandi per la gestione diretta dei server FTP (File Transfer Protocol)
  • comandi di basso livello TCP/IP, UDP, utility come Ping e Name resolver
  • OpenSSL 1.1.1l, aggiornata dalla v19.1
  • Chromium v88, per le aree web, include supporto per Apple Silicon
  • ICU 68.1 ( https://icu.unicode.org/home ) aggiornata dalla v18 R6
  • SpreadJS 14.1.1, aggiornata dalla v19
  • PHP 7.3.27, aggiornata dalla v18R6
  • libldap 2.4.48, aggiornata dalla v18R2

Compatibilità e requisiti minimi modifica

Il fatto di essere multipiattaforma lo slega spesso da tutte le problematiche di installazione e di requisiti hardware e software, è cioè molto indipendente da librerie, driver o versioni del sistema operativo.

I requisiti minimi della versione corrente[5] sono:

Windows Macintosh
Intel© CoreDuo o superiore Intel© CoreDuo o superiore
4 GB RAM (8 GB raccomandato) 4 GB RAM (8 GB raccomandato)
Risoluzione schermo 1280 × 1024 Risoluzione schermo 1280 × 1024

Versione dei Sistemi Operativi Certificati:

4D Windows Macintosh
v13.6 Windows XP (Windows Server 2003 per 4D Server) o superiore

NO Windows 10

Mac OS X 10.6.8 ("Snow leopard") o superiore

NO 10.11 ("El Capitan")

v14.5 Windows 7SP1 (Windows Server 2008R2 per 4D Server) o superiore

Compatibile Windows 10

Mac OS X 10.9.5 ("Mavericks") - 10.10.5 ("Yosemite")

Compatibile 10.11 ("El Capitan")

v15.2 Windows 7SP1, 8.1 e 10 (Windows Server 2008R2 per 4D Server o superiore) Mac OS X 10.9.5 ("Mavericks") - 10.10.5 ("Yosemite") - 10.11.3 ("El Capitan")
v16.6 Windows 7SP1, 8.1 e 10 (Windows Server 2008R2 per 4D Server o superiore) Mac OS X 10.12 ("Sierra")
v17.3 Windows 7SP1, 8.1 e 10 (Windows Server 2012-2019 per 4D Server o superiore) Mac OS X 10.12 ("Sierra") - 10.14 ("Mojave")

Caratteristiche del database[6] modifica

Dimensione del file dei dati: illimitato (limite del sistema operativo)
Numero di Tabelle: 32767
Numero di Campi per Tabella: 32767
Numero di Record per Tabella: 1.000.000.000
Numero di chiavi Indice per Tabella: 128.000.000.000
Dimensione campo Alpha: 255
Dimensione campo Text: 2GB

Accesso al data file a 64-bit
Composite Index: indicizzazione simultanea di valori da campi diversi (per esempio, Nome e Cognome).
Keyword Index: indicizzazione a parola, per ricerche full-text.
Cluster Index: indicizzazione specifica per campi con valori ripetuti (per esempio, i Booleani)

Tipi di dati 4D[7] modifica

Tipo Descrizione Capacità Note
Alpha Alfanumerico 255
Text Testo 2GB
Date Data Da anno 100 a 32 767
Time Ora Ore:minuti:secondi
Boolean Booleano Vero/Falso
Integer Intero da -32 767 a 32 767
Long Integer Intero Lungo -2 147 483 647 fino a 2 147 483 647
Integer 64 bits Intero a 64bit da -2E64 a 2E64 Solo da SQL
Real Decimale ±1.7E±308 (con 13 cifre significative)
Float Decimale Solo da SQL
BLOB Grande oggetto binario 2GB
Picture Immagine
Object Campo Oggetto, contenuto in formato chiave-valore, tipo JSON 2GB

Tipi di dati SQL[4] modifica

4D SQL Descrizione 4D
Varchar Testo alfanumerico Text o Alpha
Real Numero a virgola mobile nel range di +/-1.7E308 Real
Numeric Numero fra +/- 2E64 Integer 64 bits
Float Numero a virgola mobile (virtualmente infinito) Float
Smallint Numero fra -32 768 and 32 767 Integer
Int Numero fra -2 147 483 648 e 2 147 483 647 Longint, Integer
Int64 Numero fra +/- 2E64 Integer 64 bits
UUID Numero di 16-byte (128 bits) contenente 32 caratteri esadecimali UUID Alpha format
Bit Un campo che contiene solo TRUE/FALSE o 1/0 Boolean
Boolean Un campo che contiene solo TRUE/FALSE o 1/0 Boolean
Blob Fino a 2 GB; qualsiasi oggetto binario tipo grafici, altre applicazioni o documento qualsiasi Blob
Bit varying Fino a 2 GB; qualsiasi oggetto binario tipo grafici, altre applicazioni o documento qualsiasi Blob
Clob Testo fino a 2 GB di caratteri. Questa colonna (campo) non può essere indicizzato e non è salvato dentro il record. Text
Text Testo fino a 2 GB di caratteri. Questa colonna (campo) non può essere indicizzato e non è salvato dentro il record. Text
Timestamp Data e Ora, Data nel formato 'YYYY/MM/DD' e Orario nel formato 'HH:MM:SS:ZZ' Date e Time gestiti separatamente, con gestione automatica
Duration Orario nel formato 'HH:MM:SS:ZZ' Time
Interval Orario nel formato 'HH:MM:SS:ZZ' Time
Picture Immagine fino a 2 GB Picture

NCHAR e NCHAR VARYING non sono supportate. I diversi tipi di campi numerici sono convertiti in automatico.

Storia[8] modifica

La versione corrente è la '4D v17', certificata Windows Vista, Windows Server 2008 e Mac OS Intel Mac OS X Leopard, OS X Snow Leopard e OS X Lion.

Anno Versione Note
1984 ABCBase
1985 4D v1
1986 4D v2
1987 4D v3
1989 4D v4 Utilizzo della stessa base dati da più utenti - Compilatore
1992 4D v5 Ambiente client-server integrato
1995 4D v5.5 Versione multipiattaforma Mac OS e Windows
1997 4D v6 Server Web integrato
1999 4D 6.5 4D 6.5.9r2 l'ultima versione disponibile della 6.5.x
2000 4D 6.7 4D 6.7.4 l'ultima versione disponibile della 6.7.x
2001 4D 6.8 Certificata Mac OS X (6.8.5) ; la 6.8.6 l'ultima versione disponibile della 6.8.x
2003 4D 2003 XML, Web service e Compilatore Integrato; la 2003.8r2 l'ultima versione disponibile della 2003
2004 4D 2004 Interfaccia rivisitata; integrazione dei comandi ODBC, 4D Customizer, 4D Backup e 4D Engine; la 2004.7 build 3 l'ultima disponibile (certificata MacIntel e Vista).
2007 4D v11 SQL Nuovo database engine, SQL integrato, supporto di Unicode, gestione SVG, tool di manutenzione integrato, area web,...
2010 4D v12 Integrazione motore PHP, accesso a multipli database esterni, Server a 64Bit, SVG Area, campi RichText, nuove possibilità di stampa, nuove funzioni delle Listbox, ...
2012 4D v13 Nuovo Web Server engine, nuovo visualizzatore web integrato e multipiattaforma, strumenti avanzati per gli sviluppatori...
2013 4D v14 Nuovo tipo C_Object, Nuova funzionalità Mirror, Log Selettivo, 4D Mobile
2015 4D v15 4D Server a 64bit nativo anche su Mac OS X, nuova gestione del Network
2017 4D v16 Nuova gestione della cache a 64 bit, nuovi campi e variabili Oggetti, con struttura a chiave/valore
2018 4D v17 Uso del db con la modalità a oggetti ORDA, gestione Collections e processi Pre-emptive
2020 4D v18 Crittografia, creazione di progetti IOS nativi, progetto in forma compatibile con version control
2021 4D v19 Support Nativo di Apple Silicon, Classi

Note modifica

  1. ^ 4D Product Lifecycle, su us.4d.com, 4D. URL consultato il 16 Ottobre 2019.
  2. ^ 4D v12 - Features, su 4d.com. URL consultato il 18 marzo 2011.
  3. ^ 4D apps in the Mac App Store, su 4d.com. URL consultato il 3 novembre 2011.
  4. ^ a b Principles for integrating 4D and the 4D SQL engine, su doc.4d.com. URL consultato il 3 novembre 2011.
  5. ^ 4D Product Downloads, Certification Matrix, su 4d.com. URL consultato il 1º maggio 2016.
  6. ^ Caratteristiche del database engine, su 4d.com. URL consultato il 7 giugno 2009.
  7. ^ v15 4D field types, su doc.4d.com. URL consultato il 30 aprile 2016.
  8. ^ Genealogia dei database relazionali], su fadace.developpez.com. URL consultato il 7 giugno 2009.

Bibliografia modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica