Come configurare smartphone e PC. Portale informativo
  • casa
  • In contatto con
  • Panoramica dei sistemi di gestione delle banche dati (subd) per i sistemi di controllo e controllo accessi (ACS). Database SQL, database NoSQL e differenze nei modelli di database

Panoramica dei sistemi di gestione delle banche dati (subd) per i sistemi di controllo e controllo accessi (ACS). Database SQL, database NoSQL e differenze nei modelli di database

Database (DB)– un insieme di dati denominato che riflette lo stato degli oggetti e le loro relazioni nell'area tematica in esame.

Per manipolare il database, sono stati sviluppati sistemi di gestione del database (DBMS). Sistema di gestione del database (DBMS)- un insieme di strumenti linguistici e software progettati per creare, mantenere e condividere un database con molti utenti.

L'utilizzo di un DBMS fornisce:

    minimizzazione della ridondanza dei dati - nel caso limite, tutti i dati possono essere archiviati in una copia;

    condivisione dei dati tra molti utenti;

    indipendenza dei dati dai programmi;

    efficienza dell'accesso ai dati, in quanto rispondente ai requisiti di tempestività, affidabilità, ecc.;

    facilità di lavoro con il database, ecc.

Tipicamente, il DBMS è responsabile di quanto segue: funzioni:

    descrizione dei dati;

    manipolazione di dati;

    creazione di una banca dati;

    evasione delle richieste;

    emissione di rapporti;

    servizio (manutenzione integrità, funzioni di riferimento, ripristino database).

Per la natura della loro collocazione, le banche dati possono essere centralizzate o distribuite.

Un database centralizzato è un database ospitato su un unico server.

Panoramica dei principali produttori di subd

Poiché il DBMS non funziona da solo, ma su una specifica piattaforma hardware e software, il costo di questa piattaforma gioca un ruolo importante per il cliente. Pertanto, non sorprende che le grandi aziende preferiscano DBMS per Unix e medie e piccole per Windows e Linux. Per soddisfare tutte le richieste, i fornitori offrono DBMS per tutte le piattaforme. Nel mercato mondiale, la domanda di DBMS per Linux sta crescendo più rapidamente. Tuttavia, in termini di vendite, i sistemi Unix di Oracle sono in testa, al secondo posto c'è DBMS per Windows e al terzo posto per Linux, ma il divario tra le ultime due piattaforme si sta restringendo ogni anno.

I leader del mercato DB al momento sono ibm, Oracle, Microsoft e Sybase.

DBMS

Aziende

DBMS

Una breve descrizione di

prodotti esteri

Database universale DB2

Multimedia, DBMS compatibile con il Web, funziona con il principale Versioni Unix, Linux e Windows su piattaforme hardware zSeries, iSeries, VSE e VM.

DBMS per sistemi su scala aziendale e gruppo di lavoro, fornisce lavoro con database molto grandi in condizioni di scarsità di risorse.

DBMS relazionale per la gestione dei dati a livello aziendale, supporta le tecnologie XML e Internet, dispone di uno strumento di analisi integrato e Estrazione dati, integrato con Microsoft Office, gira su piattaforma Windows.

DBMS per l'elaborazione di transazioni su larga scala (OLTP), data warehouse con un'elevata intensità del flusso di richieste e applicazioni Internet ad alta intensità di risorse. Compatibile con le principali versioni di Unix, Windows e Linux. L'ultima versione supporta il grid computing.

Sybase Adaptive Server Enterprise (ASE)

Sybase Adaptive Server Anywhere (ASA)

DBMS su scala aziendale per l'elaborazione centralizzata di informazioni critiche, funziona su piattaforme Unix e Linux.

Database relazionale compatto e completo per gruppi di lavoro, mobile e embedded computing.

prodotti domestici

Il DBMS relazionale, certificato dalla Commissione Tecnica Statale sotto il Presidente della Federazione Russa per la conformità alla 2a classe di protezione delle informazioni contro l'accesso non autorizzato, è compatibile con le principali versioni di Unix, Linux, QNX, VAX/VMS, OpenVMS, DOS , Windows, NetWare, OS/2.

DBMS con aperto codice sorgente

Sistema di gestione database relazionale compatto e veloce per piccole e medie imprese, compatibile con Linux, Mac OS X, Unix e Windows.

Comunità PostgreSQL

DBMS relazionale, ha molte funzionalità implementate in prodotti commerciali di grandi dimensioni, è compatibile con Unix, Windows e NetWare.

Tuttavia, alcuni compiti sono così impegnativi in ​​termini di potenza di calcolo che anche il più potente dei supercomputer odierni non è in grado di farcela. Un fattore importante è il costo delle apparecchiature (se si desidera creare un nuovo supersistema) o il costo del tempo macchina (se si utilizza un supercomputer). Nel primo caso, il costo è di centinaia, nel secondo - decine ... milioni di dollari (euro, ecc.).

La via d'uscita da questa situazione è utilizzare database distribuiti.

Banche dati distribuite(RDB) - un insieme di database logicamente interconnessi distribuiti in una rete di computer.

Sistema di gestione database distribuito - è un sistema software che garantisce la gestione di un database distribuito e la trasparenza della sua distribuzione per gli utenti.

RDB è costituito da un insieme di nodi collegati da una rete di comunicazione, in cui: a) ogni nodo è di per sé un vero e proprio DBMS;

b) i nodi interagiscono tra loro in modo tale che l'utente di ciascuno di essi possa accedere a qualsiasi dato della rete come se fosse sul proprio nodo.

Il principio fondamentale della creazione di database distribuiti ("regola 0"): per l'utente, un sistema distribuito dovrebbe avere lo stesso aspetto di un sistema non distribuito.

Il principio fondamentale ha come conseguenza alcuni obiettivi aggiuntivi. Ci sono solo dodici di questi obiettivi:

1. autonomia locale. I dati locali devono essere di proprietà e controllati localmente, comprese le funzioni di sicurezza, integrità e rappresentazione in memoria.

2. Nessun servizio particolare dovrebbe essere assegnato a nessun nodo centrale dedicato. Il rispetto di questa regola, ad es. il principio di decentramento delle funzioni del RaDBMS, permette di evitare colli di bottiglia.

3. Continuità operativa. Il sistema non dovrebbe fermarsi se è necessario aggiungere un nuovo nodo o eliminare alcuni dati in un ambiente distribuito, modificare la definizione dei metadati e persino (cosa abbastanza difficile) migrare a una nuova versione del DBMS su un nodo separato.

4. Posizione indipendente. Gli utenti e le applicazioni non devono sapere dove si trovano fisicamente i dati.

5. indipendenza dalla frammentazione. Frammenti (chiamati anche sezioni) di dati devono essere mantenuti ed elaborati dal RaDBMS in modo tale che gli utenti o le applicazioni potrebbero non conoscerli affatto. Inoltre, il RaDBMS deve essere in grado di bypassare i frammenti che non sono correlati ad essi durante l'elaborazione delle richieste (ad esempio, il RaDBMS deve essere abbastanza intelligente da determinare se questo o quel frammento può essere escluso durante l'elaborazione di una richiesta a causa del fatto che la richiesta non contiene riferimenti). sulle colonne memorizzate in questo frammento).

6. Indipendenza dalla replica. Gli stessi principi di indipendenza e trasparenza si applicano al meccanismo di replica, di cui si parla di seguito.

7. Elaborazione di query distribuite. L'elaborazione della richiesta deve essere eseguita in modo distribuito. Nella prossima sezione, considereremo alcuni principi architetturali per l'implementazione di RaDBMS e vari modelli, all'interno del quale è possibile l'elaborazione di query distribuite.

8. Gestione delle transazioni distribuite. I database distribuiti devono estendere la gestione delle transazioni e i meccanismi di controllo della concorrenza. Questo problema include l'identificazione e la risoluzione di deadlock, interruzioni di timeout, commit e rollback di transazioni distribuite e una serie di altri problemi.

9. Attrezzatura indipendente. Lo stesso software RaDBMS deve essere eseguito su piattaforme hardware diverse e funzionare nel sistema come un partner alla pari. Come discusso in precedenza, questo è estremamente difficile da ottenere nella pratica, poiché molti fornitori supportano più piattaforme. Questa limitazione viene superata utilizzando il modello dell'ambiente multiprodotto.

10. Indipendenza dai sistemi operativi. Questo problema è strettamente correlato al precedente e viene anche risolto in modo simile.

11. Indipendenza dalla rete. I nodi possono essere interconnessi utilizzando un'ampia varietà di reti e mezzi di comunicazione. Il modello multistrato inerente a molti moderni sistemi informativi (ad esempio il modello OSI a sette strati, il modello TCP/IP, i livelli SNA e DECnet) fornisce una soluzione a questo problema non solo nell'ambiente RDB, ma anche per i sistemi informativi generalmente.

12. Indipendenza dal DBMS. Il DBMS locale deve essere in grado di partecipare al funzionamento di RaDBMS.

Ovviamente, mentre sarebbe altamente auspicabile disporre di sistemi che soddisfino tutte e 12 le regole, non è realistico aspettarsi che questi requisiti vengano implementati anche in un solo prodotto anche nei prossimi anni.

I quattro passaggi necessari per passare alla gestione del database distribuito sono identificati di seguito e sono progettati per fornire le seguenti funzionalità:

1. richiesta a distanza. Si connette a un host remoto e legge o modifica i dati su quell'host. Il risultato viene inviato al nodo di origine, dopodiché la transazione viene completata. Praticamente tutti i DBMS commerciali ora supportano le query remote e questo è disponibile da tempo.

2. Unità di lavoro a distanza. Ciò significa che un gruppo di richieste può essere eseguito come unità atomica (transazione) su un host remoto. Un'applicazione può, in generale, ricevere e modificare i dati di molti nodi, ma ogni transazione influisce sui dati di un solo nodo.

3. unità di lavoro distribuita in questo caso ogni richiesta si riferisce ad un solo nodo, ma le richieste che compongono un'unità di lavoro distribuita (transazione) possono essere eseguite congiuntamente su più nodi. L'intero gruppo di richieste viene quindi eseguito il commit o il rollback come un'unica unità.

4. richiesta distribuita. Questo passaggio consente di eseguire query che si estendono su più database su nodi diversi. Molte di queste richieste distribuite possono essere ulteriormente raggruppate come transazione.

I database sono repository modellati logicamente di qualsiasi tipo di dati. Ogni database non schemaless segue un modello che definisce una particolare struttura di elaborazione dei dati. I DBMS sono applicazioni (o librerie) che gestiscono database di varie forme, dimensioni e tipi.

Per una migliore comprensione del DBMS, controlla il .

Sistemi di gestione di database relazionali

I sistemi relazionali implementano un modello di dati relazionale che definisce tutte le informazioni archiviate come un insieme di record e attributi correlati in una tabella.

I DBMS di questo tipo utilizzano strutture (tabelle) per archiviare e lavorare con i dati. Ogni colonna (attributo) contiene il proprio tipo di informazioni. Ogni record nel database che dispone di una chiave univoca viene passato a una riga della tabella e i relativi attributi vengono visualizzati nelle colonne della tabella.

Relazioni e tipi di dati

Le relazioni possono essere definite come insiemi matematici contenenti insiemi di attributi che rappresentano le informazioni memorizzate.

Ogni elemento che forma un record deve soddisfare certo tipo dati (numero intero, data, ecc.). RDBMS diversi utilizzano diversi tipi di dati che non sono sempre intercambiabili.

Questi tipi di restrizioni sono comuni nei database relazionali. In effetti, costituiscono l'essenza della relazione.

RDBMS popolare

In questo articolo parleremo dei 3 RDBMS più popolari:

  • SQLite: RDBMS incorporato molto potente.
  • MySQL: il più popolare e comunemente usato RDBMS.
  • PostgreSQL: il più avanzato e flessibile RDBMS.

SQLite

SQLite è una straordinaria libreria integrata nell'applicazione che la utilizza. Essendo un database di file, fornisce un eccellente set di strumenti per un'elaborazione più semplice (rispetto ai database lato server) di qualsiasi tipo di dati.

Quando un'applicazione utilizza SQLite, vengono comunicati tramite chiamate funzionali e dirette a file contenenti dati (ad esempio database). Dati SQL ite) piuttosto che una sorta di interfaccia, che migliora la velocità e le prestazioni delle operazioni.

Tipi di dati supportati

  • NULLO: Valore NULL.
  • NUMERO INTERO: intero con segno memorizzato in 1, 2, 3, 4, 6 o 8 byte.
  • VERO: numero in virgola mobile memorizzato in formato IEEE a 8 byte.
  • TESTO: stringa di testo con codifica UTF-8, UTF-16BE o UTF-16LE.
  • macchia: un tipo di dati memorizzato esattamente come è stato ricevuto.

Nota: per più informazioni dettagliate controlla la documentazione.

Vantaggi

  • File: l'intero database è archiviato in un file, facilitando lo spostamento.
  • Standardizzato: SQLite usa SQL; alcune funzioni vengono omesse (RIGHT OUTER JOIN o FOR EACH STATEMENT), tuttavia ve ne sono di nuove.
  • Ottimo per lo sviluppo e persino il test: durante la fase di sviluppo, la maggior parte richiede una soluzione scalabile. SQLite, con il suo ricco set di funzionalità, può fornire funzionalità più che sufficienti pur essendo abbastanza semplice da lavorare con un singolo file e la libreria C associata.

svantaggi

  • Mancanza di controllo da parte dell'utente: i database avanzati offrono agli utenti la possibilità di gestire le relazioni tra tabelle in base ai privilegi, ma SQLite non ha questa funzionalità.
  • Impossibilità di impostazioni aggiuntive: ancora una volta, SQLite non può essere reso più performante modificando le impostazioni: è così che è progettato.

Quando usare SQLite

  • Applicazioni integrate: tutte le applicazioni portatili non progettate per la scalabilità, come applicazioni locali per utente singolo, applicazioni mobili o giochi.
  • Sistema di accesso al disco: nella maggior parte dei casi, le applicazioni che eseguono frequentemente operazioni di lettura/scrittura su disco dirette possono essere migrate a SQLite per migliorare le prestazioni.
  • Test: perfetto per la maggior parte delle applicazioni, la cui funzionalità consiste nel testare la logica aziendale.

Quando non usare SQLite

  • Applicazioni multiutente: se stai lavorando su un'applicazione a cui accederanno più persone contemporaneamente, è meglio scegliere un RDBMS completo come MySQL.
  • Applicazioni che scrivono grandi quantità di dati: una delle limitazioni di SQLite sono le operazioni di scrittura. Questo RDBMS consente di eseguire una sola operazione di scrittura alla volta.

MySQL

MySQL è il più popolare di tutti i database di server di grandi dimensioni. È molto facile da capire e puoi trovare molte informazioni su di esso in rete. Sebbene MySQL non tenti di implementare completamente gli standard SQL, offre un'ampia gamma di funzionalità. Le applicazioni comunicano con il database attraverso un processo daemon.

Tipi di dati supportati

  • TINYINT: intero molto piccolo.
  • PICCOLO: piccolo intero.
  • MEDIUMINT: intero di media grandezza.
  • INT o INTEGER: intero di dimensione normale.
  • GRANDE: grande insieme.
  • GALLEGGIANTE: numero a virgola mobile con segno a precisione singola.
  • DOPPIA, DOPPIA PRECISIONE, REALE: un numero a virgola mobile a precisione doppia con segno.
  • DECIMALE, NUMERICO: numero in virgola mobile con segno.
  • DATA: data di.
  • APPUNTAMENTO: combinazione di data e ora.
  • SEGNALAZIONE: timestamp.
  • VOLTA: volta.
  • ANNO: anno nel formato AA o AAAA.
  • CAR: linea taglia unica, riempito a destra con spazi alla lunghezza massima.
  • VARCHAR: stringa di lunghezza variabile.
  • TINYBLOB, TINYTEXT: Colonna BLOB o TEXT con una lunghezza massima di 255 (2^8 - 1) caratteri.
  • BLOB, TESTO: Colonna BLOB o TEXT con una lunghezza massima di 65535 (2^16 - 1) caratteri.
  • MEDIUMBLOB, MEDIUMTEXT: Colonna BLOB o TESTO con una lunghezza massima di 16777215 (2^24 - 1) caratteri.
  • LUNGO BLOB, LUNGOTEXTE: Colonna BLOB o TESTO con una lunghezza massima di 4294967295 (2^32 - 1) caratteri.
  • ENUM: enumerazione.
  • IMPOSTARE: imposta.

Vantaggi

  • Semplicità: MySQL è facile da installare. Ci sono molti strumenti di terze parti, compresi quelli visivi che facilitano l'inizio con il database.
  • Molte caratteristiche: MySQL supporta la maggior parte delle funzionalità di SQL.
  • Sicurezza: MySQL ha molte funzionalità di sicurezza integrate.
  • Potenza e scalabilità: MySQL può gestire grandi quantità di dati ed è adatto per applicazioni scalabili.
  • Velocità: il mancato rispetto di alcuni standard consente a MySQL di lavorare in modo più efficiente, tagliando in punti agli angoli.

svantaggi

  • Limiti noti: Per definizione, MySQL non può fare tutto e presenta alcune limitazioni di funzionalità.
  • Problemi di affidabilità: alcune operazioni sono implementate in modo meno affidabile rispetto ad altri RDBMS.
  • Stagnazione in sviluppo: Sebbene MySQL sia un prodotto open source, il lavoro su di esso è stato molto lento. Tuttavia, ci sono alcuni database completamente basati su MySQL (ad esempio, MariaDB). A proposito, puoi saperne di più sulla relazione tra MariaDB e MySQL dal nostro con il creatore di entrambi gli RDBMS - James Bottomley.

Quando usare MySQL

  • Operazioni distribuite: quando hai bisogno di più funzionalità di quelle che SQLite può fornire, dovresti usare MySQL.
  • Alta sicurezza: Forniscono funzionalità di sicurezza MySQL protezione affidabile accesso e utilizzo dei dati.
  • Siti web e app: la maggior parte delle risorse web può funzionare bene con MySQL, nonostante le limitazioni. Questo strumento è molto flessibile e facile da usare, il che è vantaggioso solo a lungo termine.
  • Soluzioni personalizzate: se stai lavorando su un prodotto molto specifico, MySQL si adatterà alle tue esigenze grazie a un'ampia gamma impostazioni e modalità di funzionamento.

Quando non usare MySQL

  • Compatibilità SQL: poiché MySQL non tenta di implementare completamente Standard SQL, non è completamente compatibile con SQL. Per questo motivo, possono sorgere problemi durante l'integrazione con altri RDBMS.
  • Competitività: sebbene MySQL esegua un buon lavoro con le operazioni di lettura, le operazioni di lettura-scrittura simultanee possono causare problemi.
  • Mancanza di funzionalità: A seconda della scelta del motore MySQL, alcune funzionalità potrebbero mancare.

PostgreSQL

PostgreSQL è l'RDBMS più avanzato, incentrato principalmente sulla piena conformità ed estensibilità agli standard. PostgreSQL, o Postgres, tenta di rispettare pienamente gli standard ANSI/ISO SQL.

PostgreSQL differisce da altri RDBMS in quanto ha funzionalità orientate agli oggetti, tra cui supporto totale concept ACID (Atomicità, Consistenza, Isolamento, Durabilità).

Essendo basato su una potente tecnologia, Postgres è ottimo per gestire più lavori contemporaneamente. Il supporto per la concorrenza viene implementato utilizzando MVCC (Multiversion Concurrency Control), che fornisce anche la compatibilità ACID.

Sebbene questo RDBMS non sia popolare come MySQL, ci sono molti strumenti e librerie di terze parti per semplificare il lavoro con PostgreSQL.

Tipi di dati supportati

  • bigint: intero di 8 byte con segno.
  • grande serie: un intero a 8 bit incrementato automaticamente.
  • bit[(n)]: stringa di bit di lunghezza fissa.
  • bit variabile [(n)]: stringa di bit di lunghezza variabile.
  • booleano: valore booleano.
  • scatola: rettangolo piatto.
  • byte: dati binari.
  • carattere variabile [(n)]: stringa di caratteri di lunghezza fissa.
  • carattere[(n)]:
  • sidro: Indirizzo di rete IPv4 o IPv6.
  • cerchio: cerchio sull'aereo.
  • Data: data del calendario.
  • doppia precisione: numero in virgola mobile a doppia precisione.
  • inetto: Indirizzo host IPv4 o IPv6.
  • numero intero: intero a 4 byte con segno.
  • intervallo [(p)]: periodo.
  • linea: una retta infinita su un piano.
  • lseg: segmento su un piano.
  • macaddr: Indirizzo MAC.
  • i soldi: valore monetario.
  • sentiero: percorso geometrico sul piano.
  • punto: punto geometrico su un piano.
  • poligono: poligono sul piano.
  • vero: un unico numero in virgola mobile di precisione.
  • piccolo: intero a 2 byte con segno.
  • seriale: numero intero a 4 bit incrementato automaticamente.
  • testo: stringa di caratteri di lunghezza variabile.
  • tempo [(p)] : ora del giorno (senza fuso orario).
  • ora [(p)] con fuso orario: ora del giorno (con fuso orario).
  • timestamp [(p)] : data e ora (senza fuso orario).
  • timestamp [(p)] con fuso orario: data e ora (con fuso orario).
  • tsquery: query di ricerca di testo.
  • vettore: documento di ricerca testuale.
  • txid_snapshot: ID transazione utente snapshot.
  • liquido: identificatore univoco.
  • xml: Dati XML.

Vantaggi

  • Piena compatibilità SQL.
  • Comunità: PostgreSQL è supportato da una comunità esperta 24 ore su 24, 7 giorni su 7.
  • Supporto di terze parti: nonostante le sue caratteristiche molto avanzate, PostgreSQL è utilizzato in molti strumenti relativi a RDBMS.
  • Espandibilità: PostgreSQL può essere esteso a livello di codice con stored procedure.
  • Orientato agli oggetti: PostgreSQL non è solo un DBMS relazionale, ma anche orientato agli oggetti.

svantaggi

  • Prestazione: Nelle semplici operazioni di lettura, PostgreSQL può essere inferiore ai suoi rivali.
  • Popolarità: a causa della sua complessità, lo strumento non è molto popolare.
  • Ospitando: a causa dei fattori di cui sopra, è problematico trovare un fornitore adatto.

Quando usare PostgreSQL

  • L'integrità dei dati: se la priorità è l'affidabilità e l'integrità dei dati, PostgreSQL è la scelta migliore.
  • Procedure complicate: se il tuo database ha bisogno di eseguire procedure complesse, dovresti scegliere PostgreSQL per la sua estensibilità.
  • Integrazione: se in futuro dovrai spostare l'intero database in un'altra soluzione, i problemi minimi si presenteranno con PostgreSQL.

Quando non usare PostgreSQL

  • Velocità: se tutto ciò che vuoi sono letture veloci, non usare PostgreSQL.
  • Situazioni semplici: se non hai bisogno di una maggiore affidabilità, supporto ACID e tutto il resto, usare PostgreSQL è come sparare un cannone alle mosche.

Panoramica dei moderni DBMS

Bisogno diffuso di elaborazione automatizzata dati mass media hanno avanzato la necessità di linguaggi specializzati per l'elaborazione dei dati. Tali strumenti sono generalmente inclusi nei sistemi di gestione dei database. I pacchetti DBMS consentono di gestire i dati direttamente in modalità interattiva, oltre a consentire ai programmatori di svilupparsi meglio Software loro elaborazione - applicazioni software.

Nel massimo versione completa I pacchetti DBMS devono avere i seguenti componenti:

1. L'ambiente utente, che permette di gestire direttamente il database.

2. Linguaggio algoritmico per la programmazione di sistemi di elaborazione dati applicati.

3. Compilatore per fornire al programma completato un modulo commerciale già pronto, sotto forma di file exe.

4. Utilità di programmazione rapida operazioni di routine, come FORM, MENU.

Il DBMS è una shell utente focalizzata sulla gestione immediata delle richieste degli utenti. Tuttavia, per un utente domestico, ciò è di minore importanza a causa della difficoltà di padroneggiare l'interfaccia in lingua inglese. La presenza di un linguaggio di programmazione nel DBMS permette di creare complessi sistemi di elaborazione dati per compiti specifici. Viene presentato sul mercato un gruppo di DBMS relazionali prodotti software abbastanza largo. Questi sono, ad esempio, sistemi come Paradox, Clipper.

La caratteristica principale del DBMS è la presenza di procedure per l'inserimento e la memorizzazione non solo dei dati stessi, ma anche delle descrizioni della loro struttura. I file forniti con una descrizione dei dati in essi memorizzati e controllati da un DBMS iniziarono a essere chiamati banche dati e quindi "Banche dati" (DB).

Le banche dati (DB) sono una raccolta di dati strutturati in un certo modo su un argomento specifico, utilizzati in vari settori dell'economia, dell'industria, delle imprese e della scienza. Velocità di accesso a informazione necessaria, l'efficienza del suo ricevimento determina, in definitiva, il buon andamento degli affari e riduce i costi delle corrispondenti voci di reddito. Sono stati sviluppati metodi che semplificano il lavoro con una grande quantità di dati: creazione di database, esecuzione di ricerche, modifica, estrazione di vari campioni, nonché analisi di dati ed elaborazione di calcoli che contengono documenti finali e dati sotto forma di tabelle, grafici e grafici.

Questi metodi vengono implementati utilizzando una serie di strumenti software che forniscono il lavoro con il database: un sistema di gestione del database (DBMS).

Esistono molti prodotti software che consentono di creare e lavorare con un database, ad esempio Access, Clipper, Excel e altri. Tra l'ampia varietà di programmi, il più diffuso è il DBMS FoxPro che, in base alle sue caratteristiche, soddisfa i requisiti più elevati per tali sistemi sia in termini di livello e volume, sia in termini di velocità di elaborazione delle informazioni.

Sul questo momento sviluppato e ampiamente utilizzato da Visual FoxPro per Versioni di Windows 3.0 e 5.0. Tuttavia, lavorare con questi pacchetti per i non programmatori è abbastanza compito difficile. Pertanto, per la creazione di un database per utenti con poca esperienza di programmazione, le versioni 2.5 e 2.6 in Windows e 2.0 in DOS hanno molto successo.

Struttura del database:

Un database è un insieme di informazioni omogenee e, di regola, ordinate secondo un criterio. Il database può essere presentato sia in formato "cartaceo" che informatico.

Un tipico esempio di database “cartaceo” è un catalogo biblioteche - set schede cartacee contenenti informazioni sui libri. Le informazioni in questo database sono omogenee (contiene solo informazioni sui libri) e ordinate (le schede sono disposte in ordine alfabetico nomi degli autori). Altri esempi di database cartaceo sono un elenco telefonico e un orario dei treni.

Un database di computer è un file (o set file correlati) contenente informazioni, spesso denominate file di dati. Il file di dati è costituito da record, ciascuno contenente informazioni su un'istanza. I record sono costituiti da campi. Ciascun campo contiene informazioni su una caratteristica dell'istanza. Si noti che ogni voce è composta dagli stessi campi. Alcuni campi potrebbero non essere compilati, ma sono comunque presenti nel record. Sulla carta, è conveniente rappresentare un database sotto forma di tabella. Informazione basi informatiche i dati sono generalmente visualizzati sotto forma di tabelle. Pertanto, spesso al posto della frase "file di dati", viene utilizzata la frase "tabella dati" o semplicemente "tabella".

Ambiente di sviluppo Borland C++ Builder.

Per creare un ambiente di lavoro autonomo, puoi scegliere il software in linguaggio C++ Builder, che è uno dei DBMS più conosciuti. Esistono molti strumenti per automatizzare la programmazione sul mercato del software. Ma in termini di potenza e facilità d'uso, solo Borland Delphi e Microsoft Visual di base.

C++ Builder è un potente sistema di programmazione visuale orientato agli oggetti che consente di lavorare sia con semplici database remoti locali che con database distribuiti multi-tier. Lei e i prodotti software forniti con lei consentono di risolvere la seguente gamma di compiti:

1. Crea rapidamente interfacce per finestre dall'aspetto professionale per applicazioni anche per programmatori inesperti.

2. Creare applicazioni di qualsiasi complessità e per qualsiasi scopo, siano esse applicazioni per ufficio, contabilità, ingegneria, reperimento di informazioni.

3. Crea un'interfaccia intuitiva per tutti i programmi creati in precedenza.

4. Crea le tue librerie di componenti DLL, che possono quindi essere utilizzate in altri linguaggi di programmazione.

5. Creare sistemi per lavorare con database locali e remoti di qualsiasi tipo.

6. Creare database di vario tipo utilizzando il toolkit C++ Builder (DataBaseDesktop).

7. Formattare e stampare report complessi dall'applicazione, inclusi tabelle, grafici e una varietà di designazioni.

8. Contatta la tua applicazione con tale prodotti Microsoft come Word, Excel, ecc.

9. Crea un sistema di aiuto, sia per le tue applicazioni che per altri.

Borland C++Builder 6 è un programma progettato per la gestione dei dati: catalogazione, manutenzione, elaborazione delle informazioni e altro ancora. Sebbene sia possibile eseguire molte operazioni sul database tramite il sistema di menu e l'interfaccia, la padronanza delle funzionalità estese di Borland C++Builder 6 richiede una certa conoscenza del linguaggio di programmazione sottostante.

Le applicazioni nell'ambiente Borland C++ Builder 6 sono costruite sotto forma di strutture speciali, progetti che guardano all'utente come una raccolta di diversi file. Nessun programma può esistere al di fuori della struttura del progetto. Le attività di gestione del progetto sono svolte da un pacchetto software speciale: il Project Manager.

Motivazione della scelta dei mezzi tecnici

Requisiti minimi di sistema:

2. Sistema operativo Microsoft Windows 98, Windows Millennium (Me), Windows 2000 e versioni successive sale operatorie Sistemi Microsoft Finestre.

3. volume memoria ad accesso casuale deve essere di almeno 128 Mb (consigliati 256 Mb).

4. 115 Mb spazio libero sul disco rigido.

5. VGA o più un'alta risoluzione tenere sotto controllo.

6. Mouse, tastiera.

7. Spazio su disco rigido richiesto per installazione completa: 675 Mb (edizione Enterprise); 580 Mb (Professionista); 480 Mb (Personale)

Istituto di ingegneria energetica di Mosca, Università tecnica

Panoramica dei moderni sistemi di gestione di database

Alunno: Dudkin A.

Gruppo: A-13-07

Argomento: banche dati e sistemi esperti

Insegnante: Sidorova NP

    Introduzione.

    Panoramica dei principali DBMS:

    1. Microsoft SQL server

    2. PostgreSQL

      Altri DBMS

    Conclusione: tendenze di sviluppo del DBMS.

    Appendice.

introduzione

Attualmente, nel mondo viene utilizzato un numero abbastanza elevato di DBMS industriali universali. Tra questi, ci sono tre leader indiscussi (sia in termini di sviluppo tecnologico che di dimensioni del mercato: insieme occupano oltre il 90% del mercato globale dei DBMS). Questo è un DBMS di primo livello - Oracle, Microsoft SQL Server, MySQL e IBM DB2, in Ultimamente il sistema open source PostgreSQL sta rapidamente diventando popolare. L'elenco dei DBMS di secondo livello è piuttosto ampio e include DBMS come Sybase, Informix, Ingress, Adabas, Interbase, Progress, Cache, Linter, Firebird, Teradata, ecc.

Esistono anche DBMS più piccoli per soluzioni di nicchia (specializzate) e vengono costantemente visualizzati prototipi di nuovi DBMS specializzati (DBMS orientati agli oggetti, DBMS XML, DBMS per l'elaborazione di dati in streaming, DBMS per lavorare con i testi, ecc.).

DBMS desktop sono utilizzati per compiti relativamente piccoli (una piccola quantità di dati elaborati, un numero limitato di utenti). In quest'ottica, questi DBMS hanno un'architettura relativamente semplificata, in particolare operano in modalità file server, non supportano tutte le possibili funzioni DBMS (ad esempio non c'è log delle transazioni, non c'è possibilità di ripristino automatico del database dopo guasti , eccetera.). Tuttavia, tali sistemi hanno una gamma abbastanza ampia di applicazioni. Si tratta in primo luogo delle istituzioni statali (comunali), del settore dell'istruzione, del settore dei servizi, delle piccole e medie imprese. La specificità dei compiti che ne derivano è che i volumi di dati non sono catastroficamente grandi, la frequenza degli aggiornamenti non è troppo alta, l'organizzazione è generalmente situata geograficamente in un piccolo edificio, il numero di utenti varia da uno a 10-15 persone . In tali condizioni, l'uso di DBMS desktop per la gestione dei sistemi informativi è pienamente giustificato e vengono utilizzati con successo.

Uno dei primi DBMS furono i cosiddetti sistemi software compatibili con dBase sviluppati da diverse aziende. Il primo sistema diffuso di questo tipo è stato il sistema dBase III-PLUS (Achton-Tate). Un linguaggio di programmazione sviluppato, un'interfaccia user-friendly a disposizione dell'utente di massa, ha contribuito all'uso diffuso del sistema. Allo stesso tempo, il funzionamento del sistema in modalità interpretazione ha causato scarse prestazioni in fase di esecuzione. Ciò ha portato all'emergere di nuovi sistemi di compilazione vicini al sistema dBase III - PLUS: Clipper (Nantucket Inc.), FoxPro (Fox Software), FoxBase + (Fox Software), Visual FoxPro (Microsoft). Un tempo, il PARADOX DBMS (Borland International) era ampiamente utilizzato.

IN l'anno scorso Il sistema di gestione del database Microsoft Access, che è incluso in alcune versioni del pacchetto Microsoft Office (Microsoft, è diventato molto diffuso).

Per le grandi organizzazioni, la situazione è fondamentalmente diversa. Lì, l'uso delle tecnologie del file server è insoddisfacente per i motivi sopra descritti. Pertanto, il cosiddetto DBMS server.

I principali produttori di tali sistemi di elaborazione e archiviazione dati sono 3 società: Oracle, Microsoft e IBM. Nella figura è riportato il grafico dei volumi di vendita dei rispettivi sistemi (fonte: IDC Report, maggio 2006).

Vendita di sistemi di archiviazione software nel mondo

Il più comune client-server i sistemi qui, rispettivamente, sono i sistemi Oracle (sviluppatore di Oracle), MS SQL Server (sviluppatore di Microsoft), DB2, Informix Dynamic Server (IBM).

Diamo una breve descrizione dei principali sistemi.

Oracolo

DBMS Oracleè un veterano del mercato dei DBMS relazionali. Lo sviluppo di questo sistema è stato avviato quasi contemporaneamente a IBM DB2, e ad oggi questi sistemi rimangono i principali concorrenti (come si può vedere dalla figura).

Oracle è leader nel mercato dei DBMS e, soprattutto, è leader sulle piattaforme Unix e Windows. In Russia è emersa anche la leadership di Oracle, soprattutto nel campo dei sistemi informativi su larga scala. Infatti, nel nostro Paese, il DBMS Oracle è diventato lo standard dei sistemi informativi statali.

Il motivo dell'uso diffuso di Oracle risiede principalmente nelle elevate prestazioni del DBMS, un gran numero di specialisti nazionali formati in Oracle, la disponibilità di un'infrastruttura di supporto: centri di formazione, un'ampia rete di partner Oracle, un gran numero di corsi tecnici di Oracle in Higher istituzioni educative eccetera. Quindi, solo a Mosca ci sono più di una dozzina di centri di formazione che offrono un'ampia gamma di corsi tecnici in quasi tutte le linee di prodotti software Oracle. Con una rete di partner a livello nazionale di oltre 160 organizzazioni, il software Oracle è supportato praticamente ovunque nel paese. Molti libri di alta qualità su Oracle DBMS sono già stati pubblicati in russo.

Il supporto tecnico Oracle è basato su una base professionale. Il servizio di supporto tecnico in Russia è certificato ISO 9000.

Inoltre, le principali società partner di Oracle, come FORS, RDTex, dispongono di propri centri di supporto tecnico.

È inoltre importante che, insieme al DBMS, Oracle fornisca il prodotto infrastrutturale centrale - Internet Application Server, un server applicativo operante in ambiente Internet/Intranet, oltre a strumenti CASE, strumenti di sviluppo rapido di applicazioni, strumenti per la costruzione di data warehouse, analisi dei dati online, identificando complesse dipendenze nei dati (Data Mining), che ci consente di fornire non singoli prodotti, ma complesse soluzioni tecnologiche per i clienti.

Da un punto di vista tecnico, è importante che Oracle operi su quasi tutte le piattaforme di computer esistenti, inclusi i computer mainframe (OS / 390) e i sistemi Vax VMS che sono ancora popolari, per non parlare di Windows NT e varie varietà di Unix, tra cui Solaris, HP-UX, AIX, Linux, SCO Unix, ecc.

Un'altra caratteristica importante è il supporto di Oracle per tutte le possibili architetture, inclusi i sistemi multiprocessore simmetrici, i cluster, i sistemi massicciamente paralleli e così via. Il significato di queste caratteristiche per le moderne organizzazioni su larga scala, in cui vengono utilizzati molti computer di vari modelli e produttori, è ovvio. In tali condizioni, il fattore di successo è la massima tipizzazione possibile delle soluzioni proposte, che mira a ridurre notevolmente il costo di proprietà del software. L'unificazione dei sistemi di gestione dei database è uno dei passi più significativi verso il raggiungimento di questo obiettivo.

Il nucleo del database Oracle è un server di database disponibile in una delle quattro opzioni a seconda della scala sistema informativo all'interno del quale è destinato ad essere utilizzato. Per i sistemi delle dimensioni di una grande organizzazione, viene offerta OracleDatabase Enterprise Edition (edizione aziendale), per la quale esiste un'intera serie di opzioni che ampliano architettonicamente e funzionalmente le capacità del server. Esattamente Database Oracle Enterprise Edition è installato su cluster (con l'opzione di Parallel Server, versione 8i inclusa o RAC-Real Application Cluster, dalla versione 9i e successive), consentendo di creare sistemi ad alta disponibilità. Il prodotto Oracle Database Standard Edition (edizione standard) è rivolto a organizzazioni o dipartimenti di medie dimensioni all'interno di una grande organizzazione. Oracle Database Personal Edition è destinato all'uso personale.

Il vantaggio più importante di Oracle rispetto ai suoi concorrenti (e, soprattutto, rispetto a DB2) è l'identità del codice delle diverse versioni del server database Dati Oracle per tutte le piattaforme, garantendo identità e prevedibilità Oracolo lavoro su tutti i tipi di computer, indipendentemente da ciò che include. Tutte le varianti del server Oracle sono basate sullo stesso codice sorgente e sono funzionalmente identiche, ad eccezione di alcune opzioni che, ad esempio, possono essere aggiunte a Oracle Database Enterprise Edition e non possono essere aggiunte a Oracle Database Standard Edition.

Pertanto, per tutte le piattaforme esiste un unico DBMS in diverse versioni che si comporta allo stesso modo e fornisce le stesse funzionalità, indipendentemente dalla piattaforma su cui è installato. Lo sviluppo dei prodotti server nell'ambito del DBMS viene eseguito da un'unica divisione di Oracle Corporation, le modifiche vengono apportate centralmente, dopodiché vengono sottoposti a test approfonditi in versione base, e quindi trasferiti su tutte le piattaforme, dove vengono anche controllati nel dettaglio. La portabilità di Oracle è fornita dalla specifica struttura del sorgente codice del programma server. Circa l'80% del codice Oracle è nel linguaggio di programmazione C, che (con limitazioni note) è indipendente dalla piattaforma. Circa il 20% del codice, che è il core del server, è implementato in linguaggi dipendenti dalla macchina e questa parte del codice, ovviamente, viene riscritta per varie piattaforme.

Il rigido schema tecnologico di sviluppo di Oracle, basato sui principi di identità del codice sorgente per diverse versioni e piattaforme, contrasta con gli schemi di altre aziende. Ad esempio, DB/2 è una famiglia di prodotti, non un singolo prodotto. Funzionalmente, la versione di DB2 per IBM S/390 differisce in modo così significativo da DB2 per piattaforme UNIX e NT che possiamo parlare di prodotti completamente diversi.

Quindi, il DBMS Oracle nasconde i dettagli dell'implementazione dei meccanismi di gestione dei dati su ciascuna delle piattaforme, il che dà motivo di parlare dell'unificazione quasi completa del software sottostante. Inoltre, l'architettura Oracle consente di trasferire i sistemi applicativi implementati su una piattaforma su altre piattaforme senza modificare sia le strutture del database che i codici dell'applicazione. Allo stesso tempo, il criterio principale che determina la possibilità di trasferire alcuni componenti software tra piattaforme è la completa esclusione da esse del codice dipendente dalla macchina.

Microsoft server SQL

l'inizio Storia Microsoft SQL Server può essere giustamente considerato il 1986, quando Microsoft e Sybase hanno rilasciato una versione congiunta del prodotto - SQL Server 1.0 e l'hanno adattata per sistema operativo OS/2 con il supporto di Ashton Tate, che all'epoca era il leader di mercato nei DBMS per personal computer. Rilasciato nel 1989, il prodotto non ha ricevuto il dovuto riconoscimento a causa di problemi legati alla promozione di OS/2. Nel 1990, Sybase e Microsoft hanno risolto il loro accordo con Ashton Tate e rilasciato SQL Server 1.1 per il nuovo sistema operativo. Sistemi Windows 3.0. Microsoft era responsabile delle utilità client, interfacce software e strumenti di gestione e Sybase per lo sviluppo del motore di database.

Nel 1992 è iniziato lo sviluppo di una nuova versione del prodotto: SQL Server su Windows NT, che è stato rilasciato nel 1993 contemporaneamente al sistema operativo del server: Microsoft Windows NT. La stretta integrazione con Windows NT forniva al prodotto prestazioni elevate, gestibilità e per la prima volta Microsoft disponeva di un sistema di gestione del database in grado di competere con prodotti simili sulla piattaforma UNIX. Nel 1994, Microsoft e Sybase hanno risolto il loro accordo congiunto quinquennale e gli ex partner hanno iniziato a sviluppare in modo indipendente i loro prodotti ora concorrenti.

SQL Server 6.0 e 6.5 hanno visto la luce nel 1995 e nel 1996, ma alcuni problemi di prestazioni e gestibilità hanno impedito a questi prodotti di conquistare una quota significativa del mercato dei database aziendali. È stata presa la decisione di fermare lo sviluppo Versione attuale piattaforme e iniziare a creare un prodotto da zero. Più o meno nello stesso periodo, DEC

ha venduto il suo sistema di gestione del database a Oracle e Microsoft è stata in grado di acquisire i massimi esperti DEC Jim Gray, Dave Lomet e Phil Bernstein. Il team di sviluppo è stato incaricato di creare un nuovo motore di database con supporto per la scalabilità, un nuovo Query Processor, un sistema di autotuning, autogestione e anche implementare il supporto OLAP ed ETL con il coinvolgimento di specialisti di Panorama. Lo sviluppo di un nuovo DBMS ha richiesto circa tre anni e nel 1998 è stato rilasciato un prodotto chiamato SQL Server 7.0: Microsoft ha iniziato a conquistare non solo il mercato dei DBMS relazionali, ma anche nuovi mercati come la business intelligence e il data warehousing. Parallelamente, era in corso il lavoro su SQL Server 2000, che includeva supporto XML, viste indicizzate, partizioni distribuite basate su viste e miglioramenti delle prestazioni di oltre il 20% per praticamente ogni componente chiave del prodotto. Nel 2000 Microsoft è diventata leader indiscusso nel mercato dei DBMS per la piattaforma Windows.

Ulteriore sviluppo del prodotto - in Versioni SQL Server 2005 e SQL Server 2008 - aggiunte prestazioni migliorate, gestibilità, supporto esteso per vari tipi di dati, sistemi di reporting integrati, trasformazione dei dati, funzioni di analisi avanzate, ecc.

Microsoft SQL Server 2008 è un'offerta completa di database e analisi dei dati per la creazione rapida di soluzioni scalabili di e-commerce, applicazioni aziendali e data warehousing. Riduce significativamente il time-to-market per queste soluzioni fornendo al contempo la scalabilità per soddisfare le esigenze più elevate. SQL Server include il supporto per il linguaggio XML e il protocollo HTTP, miglioramenti delle prestazioni e della disponibilità per il bilanciamento del carico e l'uptime e funzionalità per una migliore gestione e personalizzazione che riducono il costo totale di proprietà.

Strettamente integrata con Microsoft Office, la piattaforma di business intelligence di SQL Server 2008 fornisce un'infrastruttura ricca e scalabile per portare potenti funzionalità di business intelligence nel flusso di lavoro di tutte le unità aziendali della tua azienda, rendendo accessibili le informazioni aziendali di cui hai bisogno tramite un familiare MS Excel e MS Interfaccia Word. .

MS SQL Server 2008 supporta la creazione e il funzionamento di un data warehouse aziendale che combina le informazioni di tutti i sistemi e le applicazioni, consentendo di ottenere un quadro unico e completo dell'attività dell'azienda.

MS SQL Server 2008 fornisce un "processore di dati" scalabile e ad alte prestazioni, per le applicazioni aziendali più critiche ed esigenti, coloro che necessitano del massimo livello di affidabilità e protezione, riducendo al contempo il costo totale di proprietà grazie a funzionalità avanzate di gestione dell'infrastruttura server.

MS SQL Server 2008 offre agli sviluppatori un ambiente di programmazione avanzato, conveniente e funzionale, inclusi strumenti per lavorare con i servizi Web, tecnologie innovative di accesso ai dati: tutto ciò che è necessario per lavorare efficacemente con dati di qualsiasi tipo e formato

DB 2 universale Banca dati

Innanzitutto, alcune informazioni dal server ( http:// www-01. ibm. com/ Software/ it/ dati/? pgel= ibmhzn):

Server di database universaleDB2 universale Banca datiè un sistema di gestione di database scalabile e relazionale a oggetti con supporto integrato per multimedia eragnatela, in esecuzione su sistemi da personal computer e server su processoriIntelprimaUnix, dai sistemi monoprocessore ai sistemi multiprocessore simmetrici (SMP) e sistemi con parallelismo massiccio (MPP), sugli hostCOME/400 e mainframe.DB2 universale Banca daticombina le elevate prestazioni dei sistemi di elaborazione delle transazioni nella modalitàsu- linea, estensioni relazionali a oggetti, ottimizzazioni avanzate con capacità di elaborazione parallela e supporto per database molto grandi.DB2 universale Banca datidispone anche di nuovi strumenti integrati per facilitare il trasferimento nel proprio database di applicazioni sviluppate su altri sistemi di gestione di database, comeOracolo, Microsoft, SybaseeInformare. Oltretutto,DB2 universale Banca datiinclude supporto aggiuntivo per sistemi di elaborazione analitica in tempo reale (OLAP) e sistemi di supporto alle decisioni, molte estensioni di facile utilizzo (DB2 estensori). DB2 universale Banca datidisponibile sulla stragrande maggioranza delle piattaforme chiave, offrendo ai clienti la flessibilità di cui hanno bisogno.

Il sistema DB2 DBMS è uno dei "fegati lunghi" nel mondo dei sistemi di gestione di database. Basato sul classico modello di dati relazionali, il sistema è stato originariamente sviluppato per computer di grandi dimensioni. Solo in seguito IBM ha implementato DB2 per la piattaforma AS/400 (il DBMS è stato chiamato DB2/400), e un po' più tardi ha lanciato un prodotto praticamente nuovo chiamato Universal Data Base (UDB), che doveva essere conforme agli standard e alle funzioni dei sistemi aperti su un'ampia gamma di piattaforme, inclusi Unix e Windows.

Al momento, le posizioni di DB2 DBMS sono eccezionalmente forti, principalmente sui mainframe. Se confrontiamo le valutazioni delle prestazioni fornite nella Tabella 1, possiamo vedere che DB2 ha quasi le valutazioni più alte sulla piattaforma mainframe. È anche indicativo che il DBMS UDB sia considerato separatamente nella tabella. Questa è solo un'indicazione che tre prodotti praticamente diversi sono nascosti sotto il marchio DB2 comune: DB2 per mainframe, DB2/400 e DB2 universale per altre piattaforme. Nell'ambito della moderna politica tecnica, che richiede l'incondizionata e massima unificazione possibile del software di base, la presenza di tre diversi prodotti software è un fattore negativo.

Essendo il principale concorrente di Oracle DBMS in Nord America, nonostante l'elevata qualità tecnica del prodotto, DB2 DBMS è scarsamente rappresentato sul mercato russo. Forse ciò è dovuto alla strategia generale di IBM nel mercato russo, quando l'enfasi principale è posta sulla fornitura di piattaforme informatiche. Il fatto è che in Russia solo gruppi di appassionati lavorano con DB2. Non c'è praticamente alcuna infrastruttura necessaria per l'ampia distribuzione del prodotto, non c'è un numero sufficiente di specialisti formati, non c'è un'ampia rete di centri di formazione, non c'è letteratura in russo. L'ufficio di rappresentanza IBM in Russia praticamente non ha un dipartimento per supporto tecnico DB2, che complica notevolmente il funzionamento del DBMS. La base di installazione di DB2 in Russia è molto limitata e riguarda principalmente mainframe e AS/400. La rete di partner DB2 di IBM è piccola rispetto, ad esempio, a Microsoft o Oracle. DB2 non è ancora riuscito a diventare lo standard di database per piattaforme UNIX (qui questa nicchia è occupata da Oracle) e Windows NT (la nicchia è occupata da Microsoft SQL Server e Oracle).

PostgreSQL

PostgreSQL- sistema di gestione di database relazionali a oggetti (ORDBMS), che è stato sviluppato in varie forme dal 1977. Il lavoro è iniziato con il progetto Ingres presso l'Università della California (Berkeley). Il progetto Ingres è stato poi trasferito allo sviluppo commerciale presso Relational Technologies/Ingres Corporation.

Nel 1986 un altro gruppo, guidato da Michael Stonebraker a Berkeley, ha continuato a lavorare su Ingres e ha creato Postgres, un sistema di database relazionale a oggetti. Nel 1996, a causa dei miglioramenti al pacchetto e del passaggio alla distribuzione open source, è stato adottato un nuovo nome: PostgreSQL (per un breve periodo è stato utilizzato il nome Postgres95). Un gruppo di sviluppatori da tutto il mondo sta attualmente lavorando attivamente al progetto PostgreSQL.

PostgreSQLè considerato il più avanzato DBMS distribuito nelle condizioni dei testi open source. PostgreSQL implementa molte funzionalità che tradizionalmente si trovano solo nei prodotti commerciali ad alto volume (per ulteriori informazioni, vedere la sezione Caratteristiche di PostgreSQL).

INPostgreSQLimplementato molte funzionalità che di solito si trovano solo nei DBMS commerciali, comeDB2 eOracolo. Le caratteristiche principali di PostgreSQL versione 7.1.x sono elencate di seguito.

    Modello relazionale a oggetti. L'utilizzo dei dati in PostgreSQL si basa sull'oggetto modello relazionale, che consente l'utilizzo di procedure e sistemi di regole complessi. Esempi di caratteristiche non banali in questa categoria sono dichiarativi Query SQL, controllo della concorrenza, supporto per l'accesso multiutente, transazioni, ottimizzazione delle query, ereditarietà e supporto per array.

    Facilità di espansione. PostgreSQL supporta operatori, funzioni, metodi di accesso e tipi di dati personalizzati.

    Supporto totaleSQL. PostgreSQL è conforme alla specifica di base SQL99 e supporta funzionalità non banali come i join SQL92.

    Controllo dell'integrità dei collegamenti. PostgreSQL supporta il controllo dell'integrità referenziale per garantire che i dati nel database siano corretti.

    FlessibilitàAPI. La flessibilità dell'API PostgreSQL semplifica la creazione di interfacce per PostgreSQL RDBMS. Attualmente esistono API per Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/C+ e Pike.

    linguaggi procedurali. PostgreSQL fornisce supporto per linguaggi procedurali interni, incluso il linguaggio specializzato PL/pgSQL, che è un analogo di PL/SQL, linguaggio procedurale Oracolo. Uno dei vantaggi di PostgreSQL è la capacità di utilizzare Perl, Python e TCL come linguaggi procedurali interni.

    MOUSSE. La tecnologia MVCC (Multi-Version Concurrency Control) viene utilizzata in PostgreSQL per prevenire blocchi non necessari. Chiunque abbia mai lavorato con altri DBMS basati su SQL (ad esempio MySQL o Access) ha probabilmente notato che l'accesso al database per la lettura è talvolta accompagnato da ritardi associati ai tentativi di scrittura nel database. In poche parole, le operazioni di lettura sono bloccate dalle operazioni che aggiornano i record. L'uso della tecnologia MVCC in PostgreSQL risolve completamente questo problema. MVCC è migliore del blocco di basso livello perché le letture non vengono mai bloccate dalle scritture. Invece, PostgreSQL tiene traccia di tutte le transazioni eseguite dagli utenti del database, il che ti consente di lavorare con i record senza aspettare che vengano rilasciati.

    Client-server. PostgreSQL utilizza un'architettura "client-server" con la distribuzione dei processi tra gli utenti. In generale, assomiglia al metodo di lavoro con i processi in Apache 1.3.x. Il processo master crea connessioni aggiuntive per ogni client che tenta di connettersi a PostgreSQL.

    Registrazione avanzata delle modifiche. Write Ahead Logging (WAL) migliora l'affidabilità dei dati. Tutte le modifiche ai dati vengono registrate fino a quando non vengono aggiornate direttamente nel database. Avere un registro delle modifiche garantisce che nell'improbabile eventualità di un errore del database, i dati possano essere recuperati dalle transazioni registrate. Dopo un ripristino del sistema, l'utente continua a lavorare dallo stato immediatamente precedente l'errore.

Altri DBMS

MySQL- uno dei più famosi DBMS gratuiti. MySQL è di proprietà di Oracle Corporation, che lo ha ricevuto insieme alla Sun Microsystems acquisita, che sviluppa e mantiene l'applicazione. Distribuito sotto la GNU General Public License e sotto la propria licenza commerciale, tra cui scegliere. Inoltre, gli sviluppatori creano funzionalità sull'ordine degli utenti con licenza, è stato grazie a tale ordine che il meccanismo di replica è apparso quasi nelle prime versioni.

MySQL è la soluzione per le piccole e medie applicazioni. Incluso nei server WAMP, LAMP e negli assiemi portatili di Denver, server XAMPP. In genere, MySQL viene utilizzato come server a cui si accede da locale o clienti remoti, tuttavia, la distribuzione include una libreria server interna che consente di includere MySQL in programmi standalone.

La flessibilità del DBMS MySQL è supportata da un gran numero di tipi di tabelle: gli utenti possono scegliere tra le tabelle MyISAM che supportano la ricerca full-text e le tabelle InnoDB che supportano le transazioni a livello di singoli record. Inoltre, MySQL viene fornito con uno speciale tipo di tabella EXAMPLE che mostra come creare nuovi tipi di tabelle. Grazie alla sua architettura aperta e alle licenze GPL, nuovi tipi di tabelle vengono costantemente aggiunti al database MySQL.

Il 27 gennaio 2010, Oracle Corporation ha acquisito Sun Microsystems e ha aggiunto MySQL alla sua formazione DBMS.

La comunità di sviluppatori MySQL ha creato vari fork di codice come Drizzle, OurDelta, Percona Server e MariaDB. Tutti questi rami esistevano già al momento dell'acquisizione di Sun e MySQL AB da parte di Oracle Corporation.

ApacheDerby Un DBMS relazionale scritto in Java progettato per essere incorporato in applicazioni Java o per elaborare transazioni in tempo reale. Occupa 2 MB su disco.Apache Derby è sviluppato come open source e distribuito secondo i termini della licenza Apache 2.0. Derby era precedentemente noto come IBM Cloudscape e Sun distribuisce lo stesso file binari sotto il nome Java DB.

Il fulcro della tecnologia di database di Derby è un motore di database relazionale completo e integrabile per il quale JDBC e SQL sono le API disponibili. È supportata la sintassi SQL simile a IBM DB2.

Il Derby Network Server aggiunge funzionalità client-server al motore di database. Il server di rete consente ai client di connettersi su TCP/IP utilizzando il protocollo DRDA standard. Il server di rete consente a Derby di supportare il networking per JDBC, ODBC/CLI, Perl e PHP.

Il database incorporato può anche essere configurato per funzionare come RDBMS integrato nel server ibrido; accettando connessioni TCP/IP da altri client oltre ai client sulla stessa JVM.

In termini di velocità di esecuzione, Derby non si è fatto vedere buoni risultati rispetto ad altri database SQL incorporati come un altro database H2 aperto e gratuito.

Tutta la vita umana è indissolubilmente legata a una moltitudine di cataloghi informativi e banche dati. registro della biblioteca, Taccuino, indirizzi in un telefono cellulare o tablet: questo non è un elenco completo di informazioni strutturate che utilizziamo. Ma i computer amano la precisione, quindi definiamola.

Così, banca dati (DB)- un insieme di dati logicamente interconnessi che descrivono stato informativo oggetti in varie aree tematiche ed elaborati da tecnologie informatiche.

sistema di gestione della banca datiè un ambiente software e linguistico per la creazione, la gestione e l'elaborazione basi informative. Scopo del DBMS:

  • lavorare con database esterni (dischi, nastri, ecc.) e RAM;
  • condivisione degli utenti;
  • controllo delle modifiche, archiviazione e ripristino di database;
  • fornire una lingua di accesso per ;
  • utilità per la creazione, la modifica e la gestione di database.

In poche parole, il database definisce metodologia di archiviazione delle informazioni e il DBMS fornisce mezzi per la sua elaborazione. Inoltre, i sistemi di gestione dei database sono suddivisi in sistemi uso generale, che può elaborare vari dati e specializzato, progettato per una specifica area tematica o tipo di informazione. Un esempio sistemi specializzati la gestione del database è orientata agli oggetti.

Sistemi di controllo relazionale

Dall'avvento dei database informatici, sono stati creati molti modelli di come funzionano, ma modello relazionale si è rivelato il più versatile. Lei rappresenta insieme associato tabelle informative, garantisce l'integrità e la minima ridondanza delle informazioni. Modello tabulare trovato per essere applicabile alla maggior parte aree tematiche e il mercato dei sistemi di gestione di database relazionali iniziò a svilupparsi rapidamente. La figura mostra un esempio della struttura relazionale "Student Base".

Tutti i DBMS relazionali supportano lo standard ANSI Linguaggio SQL e principi di base modello relazionale, che garantisce il funzionamento delle applicazioni su diversi DBMS. Inoltre, i DBMS di grandi dimensioni hanno i loro componenti aggiuntivi di estensione SQL. Esempi di un sistema di gestione per grandi progetti sono ORACLE.

Il modello relazionale viene utilizzato con successo anche nello sviluppo di progetti Internet. Esempi sono MySQL e PostgreSQL DBMS.

Tecnologia NoSQL

L'aumento del volume delle informazioni e la complessità delle relazioni ha portato alla nascita di nuovi sistemi di gestione delle banche dati. Le informazioni hanno cessato di essere indipendenti l'una dall'altra e talvolta è generalmente impossibile descriverne la struttura in modo rigido. Basi relazionali non può più far fronte a tali compiti. Ciò ha portato all'emergere di un nuovo tipo di infobase e sistemi per gestirli, chiamati collettivamente NoSQL ("no SQL").

  1. "valore-chiave". I DBMS più popolari sono Redis, Voldemort, Tokyo Cabinet e Dynomite.
  2. Cloni di BigTable DBMS. Progettato da Google per uso domestico in motore di ricerca. BigTable non è ufficialmente offerto, ma esiste un DBMS basato su di esso. Questi sono Hadoop, Hypertable e Cassandra.
  3. Orientato ai documenti. I più popolari sono Berkeley DB XML, MongoD, eXist e CouchDB.
  4. Basato su base Utilizzato in Neo4j, Sones graphDB e AllegroGraph.

Futuro del DBMS

Il mercato è in continua evoluzione ed è sempre più propenso verso le soluzioni NoSQL. Naturalmente, su SQL "classico" implementato grande quantità sistemi software di varia complessità, e dietro ci sono giganti del mercato come Microsoft e ORACLE. Ma con un alto grado di fiducia, possiamo presumere che NoSQL nei prossimi anni sarà in grado di spingere in modo significativo i leader nello sviluppo di sistemi informativi complessi.

Articoli correlati in alto