Sisteme de gestionare a bazelor de date de la producători de top. Prezentare generală a bazelor de date relaționale moderne

31.07.2019 Efecte foto

Printre sisteme moderne Sistemele de gestionare a bazelor de date includ SGBD-uri relaționale, care includ:

  • MS Access,
  • Visual FoxPro
  • MySQL
  • PostgreSQL
  • Sybase
  • SQL Server,
  • Oracol,
  • etc.

Să ne uităm la cele mai comune dintre ele.

DBMS MS Access

Access rulează pe sistemul de operare Windows și are o interfață standardizată a aplicației Windows.

Componenta principală este baza de date, care poate conține tabele, rapoarte, interogări, formulare, module și macrocomenzi.

Prelucrarea informațiilor în timpul lucrului cu baza de date se realizează folosind macrocomenzi sau VBA programe.

O bază de date deschisă poate face schimb de date cu baze de date externe. Baza externa datele pot fi orice bază de date care acceptă protocolul ODBC și se află pe server la distanță, sau una dintre bazele de date Access, dBASE sau Paradox.

Accesul vă permite să creați și să executați cereri pentru selectarea, adăugarea datelor, ștergerea și actualizarea.

Solicitarea poate fi creată folosind QBE sau SQL. Accesul sprijină mecanismul OLE(legarea și încorporarea obiectelor) și mecanism DDE(schimb dinamic de date).

SGBD Visual FoxPro

SGBD Visual FoxPro conține instrumente avansate pentru crearea de baze de date, organizarea interogărilor împotriva acestora și crearea de aplicații folosind programare vizuală, orientată pe obiecte. SGBD Visual FoxPro rulează pe Windows.

Baza de dateîn Visual FoxPro este o colecție de tabele înrudite. Baza de date definește condițiile integrității sale prin cheile primare și externe ale tabelelor. Toate modificările care apar în baza de date sunt detectate și procesate centralizat folosind declanșatoareŞi proceduri încorporate programe.

Visual FoxPro se caracterizează prin viteza mare de întreținere a bazei de date.

Folosind standardul ODBCŞi SQL- interogări pentru selectarea datelor Visual FoxPro poate lucra cu baze de date dBase, Paradox, Access etc., cu servere de baze de date - Oracle MS SQL Server etc.

Este posibil ca aplicația Visual FoxPro să funcționeze simultan cu tabelele proprii și de rețea care se află pe alte computere din rețeaua locală.

Visual FoxPro acceptă mecanisme OLEŞi DDE lucrul cu aplicații Windows.

Visual FoxPro vă permite să creați aplicații de rețea care funcționează pe rețele care rulează MS LAN Manager, MS Windows etc.

MS SQL Server

Microsoft SQL Serverul este utilizat pe scară largă în domeniul bazelor de date și al analizei datelor, vă permite să creați rapid soluții scalabile e-commerce, aplicații de afaceri și depozite de date. Suport pentru limbajul SQL Server XML si protocol HTTP, mijloace de creștere a disponibilității și a performanței care vă permit să furnizați funcţionare neîntreruptăși distribuiți sarcina, îmbunătățiți configurarea și funcțiile de control.

Platforma de analiză a datelor SQL Server, care este integrată cu MS Office, vă permite să deschideți accesul la informațiile de afaceri necesare folosind interfața MS Word și MS Excel.

SQL Server include un mediu de programare dezvoltat, convenabil și funcțional, care include instrumente pentru lucrul cu servicii web și tehnologii de acces la date.

Oracol

Oracle include un sistem de gestionare a bazelor de date și instrumente de dezvoltare și analiză a datelor.

Oracle include o bază de date, o platformă de integrare, un server de aplicații, instrumente de gestionare a datelor nestructurate și de analiză.

SGBD Baza de date Oracle vă permite să automatizați sarcinile de administrare, asigură securitatea și conformitatea cu reglementările de securitate a informațiilor și conține funcții de management și autodiagnosticare. Caracteristicile sistemului includ gestionarea unor volume mari de date folosind tabele de compresie și distribuite, protecția eficientă a datelor, capacitatea de a integra date geofizice și recuperare completă etc.

Baza de date (DB)– o colecție numită de date care reflectă starea obiectelor și relațiile lor în domeniul subiectului luat în considerare.

Sistemele de management al bazelor de date (DBMS) au fost dezvoltate pentru a manipula bazele de date. Sistem de management al bazelor de date (DBMS)- un set de limbaje și instrumente software concepute pentru crearea, întreținerea și partajarea unei baze de date de către mulți utilizatori.

Utilizarea unui SGBD asigură:

    minimizarea redundanței datelor - în cazuri extreme, orice date pot fi stocate într-o singură copie;

    partajarea datelor între mulți utilizatori;

    independența datelor față de programe;

    eficiența accesului la date, cum ar fi îndeplinirea cerințelor de promptitudine, fiabilitate etc.;

    ușurința de a lucra cu baza de date etc.

De obicei, DBMS este responsabil pentru următoarele: funcții:

    descrierea datelor;

    manipularea datelor;

    crearea unei baze de date;

    executarea cererilor;

    emiterea de rapoarte;

    serviciu (menținerea integrității, funcții de ajutor, restaurarea bazei de date).

Prin natura locației lor, bazele de date pot fi centralizate sau distribuite.

O bază de date centralizată este o bază de date situată pe un singur server.

Revizuirea subbazelor de date de la producători de top

Deoarece SGBD nu funcționează singur, ci pe lângă o anumită platformă software și hardware, costul acestei platforme joacă un rol important pentru client. Prin urmare, nu este surprinzător faptul că companiile mari preferă DBMS pentru Unix și cele medii și mici - pentru Windows și Linux. Pentru a satisface toate solicitările, furnizorii oferă DBMS pentru toate platformele. Pe piața mondială, cererea de DBMS pentru Linux crește cel mai rapid. Totuși, în ceea ce privește volumul vânzărilor, sistemele Unix de la Oracle sunt în frunte, DBMS pentru Windows este pe locul doi și Linux pe locul trei, dar decalajul dintre ultimele două platforme scade în fiecare an.

Liderii de pe piața bazelor de date în acest moment sunt ibm, Oracle, Microsoft și Sybase.

SGBD

Companii

SGBD

Scurtă descriere

Produse străine

Baza de date universală DB2

SGBD Multimedia, compatibil cu Web, funcționează cu versiunile majore de Unix, Linux și Windows pe platformele hardware zSeries, iSeries, VSE și VM.

DBMS pentru sisteme la scară întreprindere și grup de lucru, oferă lucru cu baze de date foarte mari în condiții de deficit de resurse.

SGBD relațional pentru gestionarea datelor la scară întreprindere, acceptă tehnologii XML și Internet, are încorporat un instrument de analiză și extracție a datelor, integrat cu Microsoft Office, rulează pe platforma Windows.

DBMS pentru procesarea tranzacțiilor la scară largă (OLTP), depozite de date de mare intensitate și aplicații de Internet care necesită resurse.

Compatibil cu versiunile majore de Unix, Windows și Linux. Cea mai recentă versiune acceptă Grid computing.

Sybase Adaptive Server Enterprise (ASE)

Sybase Adaptive Server Anywhere (ASA) SGBD la scară de întreprindere pentru procesarea centralizată a informațiilor critice, rulează Platforme Unix

și Linux.

SGBD relațional compact, cu drepturi depline, pentru grupuri de lucru, computere mobile și încorporate.

Produse casnice

SGBD relațional, care are un certificat de la Comisia Tehnică de Stat din subordinea Președintelui Federației Ruse pentru conformitatea cu protecția informațiilor de clasa 2 împotriva accesului neautorizat, este compatibil cu versiunile principale de Unix, Linux, QNX, VAX/VMS, OpenVMS, DOS, Windows, NetWare, OS/2. DBMS cu deschis

SGBD relațional compact și rapid pentru întreprinderile mici și mijlocii, compatibil cu Linux, Mac OS X, Unix și Windows.

Comunitatea PostgreSQL

Un SGBD relațional are multe dintre caracteristicile care sunt implementate în produsele comerciale mari și este compatibil cu Unix, Windows și NetWare.

Cu toate acestea, unele sarcini sunt atât de solicitante din punct de vedere computațional încât chiar și cele mai puternice dintre supercalculatoarele moderne nu pot face față. Un factor important este costul echipamentului (dacă trebuie să creați un nou supersistem) sau costul timpului de calculator (dacă utilizați un supercomputer). În primul caz, costul este de sute, în al doilea – în zeci... milioane de dolari (euro etc.).

Calea de ieșire din această situație este utilizarea bazelor de date distribuite.

Baze de date distribuite(RBD) - un set de baze de date interconectate logic distribuite într-o rețea de calculatoare.

Sistem de management al bazelor de date distribuite - este un sistem software care asigură gestionarea bazelor de date distribuite și transparența distribuției sale către utilizatori.

Un RDB constă dintr-un set de noduri conectate printr-o rețea de comunicații în care: a) fiecare nod este un SGBD cu drepturi depline în sine;

b) nodurile interacționează între ele în așa fel încât un utilizator al oricăruia dintre ele să poată accesa orice date din rețea ca și cum ar fi pe propriul nod.

Principiul fundamental al creării bazelor de date distribuite („Regula 0”): pentru utilizator, un sistem distribuit ar trebui să arate la fel ca un sistem nedistribuit.

Principiul fundamental presupune anumite obiective suplimentare. Există doar douăsprezece astfel de obiective:

1. Autonomia locală. Datele locale trebuie să fie deținute și controlate locale, inclusiv funcțiile de securitate, integritate și reprezentare în memorie.

2. Niciun serviciu specific nu ar trebui să fie atribuit niciunui nod central dedicat. Respectarea acestei reguli, i.e. Principiul descentralizării funcțiilor RDBMS vă permite să evitați blocajele.

3. Continuitatea funcționării. Sistemul nu ar trebui să se oprească dacă este necesară adăugarea unui nou nod sau ștergerea unor date într-un mediu distribuit, modificarea definiției metadatelor sau chiar (ceea ce este destul de dificil) migrarea către o nouă versiune a SGBD pe un nod separat.

4. Locație independentă. Utilizatorilor și aplicațiilor nu li se cere să știe unde sunt localizate fizic datele.

5. Independent de fragmentare. Fragmentele (numite și partiții) de date trebuie menținute și procesate de instrumentele RaDBMS în așa fel încât utilizatorii sau aplicațiile să nu știe absolut nimic despre ele. Mai mult, RaDBMS trebuie să poată ocoli fragmentele care nu sunt legate de ele atunci când procesează interogări (de exemplu, RaDBMS trebuie să fie suficient de inteligent pentru a determina dacă acest sau acel fragment poate fi exclus la procesarea unei interogări datorită faptului că interogarea nu conține link-uri către coloanele stocate în acest fragment).

6. Independență față de replicare. Aceleași principii de independență și transparență se aplică și mecanismului de replicare, care este discutat mai jos.

7. Procesarea cererilor distribuite. Procesarea cererii trebuie să se facă într-o manieră distribuită. În secțiunea următoare ne vom uita la câteva principii arhitecturale pentru implementarea RaDBMS și diverse modele, în cadrul căruia este posibilă procesarea distribuită a cererilor.

8. Gestionarea tranzacțiilor distribuite. Managementul tranzacțiilor și mecanismele de control al concurenței trebuie extinse la bazele de date distribuite. Această problemă include identificarea și rezolvarea blocajelor, întreruperile de time-out, comiterea și anularea tranzacțiilor distribuite și o serie de alte probleme.

9. Independenta echipamentelor. Același lucru software RDBMS trebuie să ruleze pe diverse platforme hardware și să funcționeze ca un partener egal în sistem. După cum sa discutat mai sus, acest lucru este extrem de dificil de realizat în practică, deoarece mulți furnizori acceptă mai multe platforme. Această limitare este depășită prin utilizarea modelului de mediu cu mai multe produse.

10. Independență față de sistemele de operare. Această problemă este strâns legată de cea anterioară și, de asemenea, este rezolvată într-un mod similar.

11. Independența rețelei. Nodurile pot fi conectate între ele folosind o mare varietate de mijloace de comunicare și de rețea. Modelul pe mai multe niveluri inerent multor sisteme informatice moderne (de exemplu, modelul OSI cu șapte straturi, modelul TCP/IP, nivelurile SNA și DECnet) oferă o soluție la această problemă nu numai în mediul RaDB, ci și pentru sistemele informatice în general.

12. Independenta DBMS. SGBD-urile locale trebuie să poată participa la operarea RaDBMS.

Este clar că, deși ar fi foarte de dorit să existe sisteme care să îndeplinească toate cele 12 reguli, este nerealist să ne așteptăm ca aceste cerințe să fie implementate chiar și într-un singur produs, chiar și în următorii ani.

Cei patru pași necesari pentru a trece la gestionarea bazelor de date distribuite sunt subliniați mai jos pentru a oferi următoarele capabilități:

1. Cerere de la distanță. Se conectează la o gazdă la distanță și citește sau modifică datele de pe gazda respectivă. Rezultatul este trimis la nodul sursă, după care tranzacția este finalizată. Aproape fiecare DBMS comercial acceptă acum interogări de la distanță și oferă această capacitate de ceva timp.

2. Unitate de lucru la distanță. Aceasta înseamnă că un grup de solicitări poate fi executat ca unitate atomică (tranzacție) pe un nod la distanță. În general, o aplicație poate accesa și modifica datele de la mai multe noduri, dar fiecare tranzacție afectează datele unui singur nod.

3. Unitate de lucru distribuităîn acest caz, fiecare cerere se referă la un singur nod, dar cererile care alcătuiesc o unitate de lucru distribuită (tranzacție) pot fi executate în comun pe mai multe noduri. Întregul grup de solicitări este remediat sau anulat ca unul singur.

4. Cerere distribuită. Acest pas vă permite să rulați interogări care acoperă mai multe baze de date pe diferite noduri. Mai multe astfel de interogări distribuite pot fi grupate în continuare ca tranzacție.

Bazele de date sunt depozite modelate logic de orice tip de date. Fiecare bază de date care nu este fără schemă urmează un model care definește o structură specifică de procesare a datelor. DBMS sunt aplicații (sau biblioteci) care gestionează baze de date diverse forme, dimensiuni și tipuri.

Pentru a înțelege mai bine DBMS, verificați.

Sisteme de management al bazelor de date relaționale

Sistemele relaționale implementează un model de date relaționale, care definește toate informațiile stocate ca un set de înregistrări și atribute asociate într-un tabel.

SGBD de acest tip utilizează structuri (tabele) pentru a stoca și a lucra cu date. Fiecare coloană (atribut) conține propriul tip de informații. Fiecare înregistrare din baza de date care are o cheie unică este trecută într-un rând de tabel, iar atributele sale sunt afișate în coloanele tabelului.

Relații și tipuri de date

Relațiile pot fi definite ca mulțimi matematice care conțin seturi de atribute care reprezintă informații stocate.

Fiecare element care formează o înregistrare trebuie să satisfacă un anumit tip de date (întreg, dată etc.). Se utilizează diverse RDBMS diferite tipuri date care nu sunt întotdeauna interschimbabile.

Aceste tipuri de restricții sunt comune în bazele de date relaționale. De fapt, ele formează esența relației.

RDBMS populare

În acest articol vom vorbi despre cele mai populare 3 RDBMS-uri:

  • SQLite: RDBMS încorporat foarte puternic.
  • MySQL: cel mai popular și mai frecvent utilizat RDBMS.
  • PostgreSQL: cel mai avansat și mai flexibil RDBMS.

SQLite

SQLite este o bibliotecă uimitoare care este încorporată în aplicația care o folosește. Fiind o bază de date de fișiere, oferă un set excelent de instrumente pentru o prelucrare mai ușoară (comparativ cu bazele de date server) a oricărui tip de date.

Când o aplicație folosește SQLite, comunicarea lor se face prin apeluri funcționale și directe către fișierele care conțin date (cum ar fi bazele de date SQLite), mai degrabă decât un fel de interfață, care îmbunătățește viteza și performanța operațiunilor.

Tipuri de date acceptate

  • NUL: Valoare NULL.
  • ÎNTREG: un număr întreg cu semn stocat pe 1, 2, 3, 4, 6 sau 8 octeți.
  • REAL: Un număr în virgulă mobilă stocat în format IEEE de 8 octeți.
  • TEXT:șir de text cu codificare UTF-8, UTF-16BE sau UTF-16LE.
  • BLOB: un tip de date stocate exact în aceeași formă în care au fost primite.

Nota: pentru a obține mai mult informatii detaliate verificati documentatia.

Avantaje

  • Fişier:întreaga bază de date este stocată într-un singur fișier, ceea ce face ușor de mutat.
  • Standardizat: SQLite folosește SQL; Unele funcții sunt omise (RIGHT OUTER JOIN sau FOR EACH STATEMENT), cu toate acestea, există unele noi.
  • Excelent pentru dezvoltare și chiar testare:În timpul fazei de dezvoltare, majoritatea necesită o soluție scalabilă. SQLite, cu setul său bogat de caracteristici, poate oferi mai mult decât suficientă funcționalitate, fiind în același timp suficient de simplu pentru a lucra cu un singur fișier și biblioteca C asociată.

Defecte

  • Lipsa controlului utilizatorului: bazele de date avansate oferă utilizatorilor posibilitatea de a gestiona relațiile în tabele în funcție de privilegii, dar SQLite nu are o astfel de caracteristică.
  • Imposibilitatea de a configura în continuare: din nou, SQLite nu poate fi făcut mai productiv prin jocul cu setările - tocmai așa este proiectat.

Când să utilizați SQLite

  • Aplicații încorporate: Toate aplicațiile portate care nu sunt proiectate pentru scalare - de exemplu, aplicații locale pentru un singur utilizator, aplicații mobile sau jocuri.
  • Sistem de acces la disc:În cele mai multe cazuri, aplicațiile care efectuează frecvent operațiuni directe de citire/scriere pe disc pot fi migrate pe SQLite pentru a îmbunătăți performanța.
  • Testare: Perfect pentru majoritatea aplicațiilor, a căror funcționalitate este testarea logicii de afaceri.

Când să nu folosiți SQLite

  • Aplicații multi-utilizator: Dacă lucrați la o aplicație în care mai multe persoane vor accesa simultan baza de date, este mai bine să alegeți un RDBMS complet - de exemplu, MySQL.
  • Aplicații care înregistrează cantități mari de date: Una dintre limitările SQLite este operațiile de scriere. Acest RDBMS permite executarea unei singure operații de scriere la un moment dat.

MySQL

MySQL este cea mai populară dintre toate bazele de date de server majore. Este foarte ușor de înțeles și puteți găsi informații despre el online număr mare informaţii. Deși MySQL nu încearcă să implementeze pe deplin standardele SQL, oferă o gamă largă de funcționalități. Aplicațiile comunică cu baza de date printr-un proces demon.

Tipuri de date acceptate

  • TINYINT:întreg foarte mic.
  • SMALLINT:întreg mic.
  • MEDIUM:întreg de mărime medie.
  • INT sau INTEGER:întregul este de dimensiune normală.
  • BIGINT:întreg mare.
  • plutire: număr cu virgulă mobilă cu precizie unică semnat.
  • DUBLĂ, DUBĂ PRECIZIE, REAL: număr semnat cu virgulă mobilă dublă precizie.
  • DECIMAL, NUMERIC: număr semnat în virgulă mobilă.
  • DATA: data.
  • DATETIME: combinație de dată și oră.
  • TIMESTAMP: marca temporală.
  • TIMP: timp.
  • AN: an în format YY sau YYYY.
  • CHAR: un șir de dimensiune fixă, căptușit în dreapta cu spații până la o lungime maximă.
  • VARCHAR:șir de lungime variabilă.
  • TINYBLOB, TINYTEXT: O coloană BLOB sau TEXT cu o lungime maximă de 255 (2^8 - 1) caractere.
  • BLOB, TEXT: O coloană BLOB sau TEXT cu o lungime maximă de 65535 (2^16 - 1) caractere.
  • MEDIUMBLOB, MEDIUMTEXT: O coloană BLOB sau TEXT cu o lungime maximă de 16777215 (2^24 - 1) caractere.
  • LONGBLOB, LONGTEXT: O coloană BLOB sau TEXT cu o lungime maximă de 4294967295 (2^32 - 1) caractere.
  • ENUM: transfer.
  • SET: mulţimi.

Avantaje

  • Simplitate: MySQL este ușor de instalat. Există multe instrumente de la terți, inclusiv cele vizuale, facilitând începerea cu baza de date.
  • Multe functii: MySQL acceptă majoritatea funcționalității SQL.
  • Siguranţă: MySQL are multe caracteristici de securitate încorporate în el.
  • Putere și scalabilitate: MySQL poate gestiona cantități foarte mari de date și este potrivit pentru aplicații scalabile.
  • Viteză: Neglijarea unor standarde permite MySQL să lucreze mai eficient, tăind colțuri pe alocuri.

Defecte

  • Limitări cunoscute: Prin definiție, MySQL nu poate face totul și are anumite limitări de funcționalitate.
  • Probleme de fiabilitate: unele operațiuni sunt implementate mai puțin fiabil decât în ​​alte RDBMS.
  • Stagnare în dezvoltare: Deși MySQL este un produs open-source, lucrul la el este foarte lent. Cu toate acestea, există mai multe baze de date care se bazează în întregime pe MySQL (de exemplu, MariaDB). Apropo, puteți afla mai multe despre relația dintre MariaDB și MySQL din conversația noastră cu creatorul ambelor RDBMS, James Bottomley.

Când să utilizați MySQL

  • Operațiuni distribuite: Când aveți nevoie de mai multe funcționalități decât vă poate oferi SQLite, ar trebui să utilizați MySQL.
  • Securitate ridicată: Caracteristicile de securitate MySQL oferă protecţie fiabilă accesul și utilizarea datelor.
  • Site-uri web și aplicații: Majoritatea resurselor web pot funcționa bine cu MySQL, în ciuda limitărilor. Acest instrument este foarte flexibil și ușor de utilizat, ceea ce este benefic pe termen lung.
  • Soluții personalizate: Dacă lucrați la un produs foarte specific, MySQL se va adapta nevoilor dumneavoastră cu o gamă largă de setări și moduri de operare.

Când să nu utilizați MySQL

  • Compatibilitate SQL: Deoarece MySQL nu încearcă să implementeze pe deplin standardele SQL, nu este pe deplin compatibil cu SQL. Din acest motiv, pot apărea probleme la integrarea cu alte RDBMS-uri.
  • Competitivitate: Deși MySQL gestionează bine operațiunile de citire, operațiunile simultane de citire-scriere pot cauza probleme.
  • Lipsa caracteristicilor:În funcție de alegerea motorului MySQL, unele funcții pot lipsi.

PostgreSQL

PostgreSQL este cel mai avansat RDBMS, concentrându-se în primul rând pe conformitatea și extensibilitatea completă a standardelor. PostgreSQL, sau Postgres, încearcă să respecte pe deplin standardele SQL ANSI/ISO.

PostgreSQL diferă de alte RDBMS-uri prin faptul că are funcționalitate orientată pe obiecte, inclusiv sprijin deplin Conceptul ACID (atomicitate, consistență, izolare, durabilitate).

Fiind bazat pe tehnologie puternică, Postgres excelează la procesarea mai multor lucrări simultan. Suportul concurenței este implementat folosind MVCC (Multiversion Concurrency Control), care asigură și compatibilitatea ACID.

Deși acest RDBMS nu este la fel de popular ca MySQL, există multe instrumente și biblioteci terțe pentru a face lucrul cu PostgreSQL mai ușor.

Tipuri de date acceptate

  • bigint:întreg semnat de 8 octeți.
  • seria mare: un număr întreg de 8 biți incrementat automat.
  • bit [(n)]:șir de biți cu lungime fixă.
  • biți care variază [(n)]:șir de biți de lungime variabilă.
  • boolean: Valoare booleană.
  • cutie: dreptunghi pe un plan.
  • bytea: date binare.
  • caracter care variază [(n)]: un șir de caractere cu lungime fixă.
  • caracterul [(n)]:
  • cidr: Adresă de rețea IPv4 sau IPv6.
  • cerc: cerc pe un plan.
  • data: data calendaristică.
  • dubla precizie: număr în virgulă mobilă cu precizie dublă.
  • inet: Adresă gazdă IPv4 sau IPv6.
  • întreg:întreg semnat de 4 octeți.
  • interval [(p)]: perioada de timp.
  • linia: o linie dreaptă infinită pe un plan.
  • lseg: un segment pe un plan.
  • macaddr: adresa MAC.
  • bani: valoare monetară.
  • cale: traseu geometric pe un plan.
  • punct: punct geometric pe un plan.
  • poligon: poligon pe un plan.
  • real: număr unic cu virgulă mobilă de precizie.
  • smallint:întreg semnat de 2 octeți.
  • serial: un număr întreg de 4 biți incrementat automat.
  • text:șir de caractere cu lungime variabilă.
  • timp [(p)]: ora din zi (fără fus orar).
  • ora [(p)] cu fusul orar: ora zilei (cu fus orar).
  • marca temporală [(p)] : data și ora (fără fus orar).
  • marca temporală [(p)] cu fusul orar: data și ora (cu fusul orar).
  • intrebari: interogare de căutare text.
  • tsvector: document de căutare text.
  • txid_snapshot: ID tranzacție utilizator instantaneu.
  • uuid: identificator unic.
  • xml: date XML.

Avantaje

  • Compatibilitate completă cu SQL.
  • Comunitate: PostgreSQL este suportat 24/7 de către o comunitate experimentată.
  • Asistență terță parte:În ciuda caracteristicilor sale foarte avansate, PostgreSQL este folosit în multe instrumente legate de RDBMS.
  • Extensibilitate: PostgreSQL poate fi extins programatic cu proceduri stocate.
  • Orientare obiect: PostgreSQL nu este doar un SGBD relațional, ci și orientat pe obiecte.

Defecte

  • Performanţă:ÎN operatii simple Performanța de citire a PostgreSQL poate fi inferioară rivalilor săi.
  • Popularitate: Datorită complexității sale, instrumentul nu este foarte popular.
  • Gazduire: Din cauza factorilor de mai sus, este dificil să găsești un furnizor potrivit.

Când să utilizați PostgreSQL

  • Integritatea datelor: Dacă prioritatea este pe fiabilitatea și integritatea datelor, PostgreSQL este cea mai bună alegere.
  • Proceduri complexe: dacă baza de date trebuie să efectueze proceduri complexe, ar trebui să alegeți PostgreSQL datorită extensibilității sale.
  • Integrare: Dacă în viitor trebuie să mutați întreaga bază de date într-o altă soluție, PostgreSQL va avea cele mai puține probleme.

Când să nu utilizați PostgreSQL

  • Viteză: Dacă tot ce aveți nevoie sunt operații de citire rapidă, nu ar trebui să utilizați PostgreSQL.
  • Situații simple: cu excepția cazului în care aveți nevoie de fiabilitate sporită, suport ACID și toate acestea, utilizarea PostgreSQL înseamnă să împușcăm muște cu un tun.

Astăzi este destul de greu de imaginat vreo aplicație care să nu folosească baze de date, fie că este vorba de servere, computere personale sau dispozitive mobile. De la jocuri simple la aplicații serioase de afaceri. Toți procesează, citesc și scriu set specific date.

Sistemul de management al bazelor de date (DBMS/DBMS) este un software conceput pentru stocarea și gestionarea datelor. Pentru a rezolva diverse probleme, au fost dezvoltate tot mai multe SGBD-uri diferite (Relaționale și NoSQL) și programe de lucru cu acestea (MySQL, PostgreSQL, MongoDB, Redis etc.).

  1. Modele de baze de date
    1. Model relațional
    2. Abordare fără schemă (NoSQL)
  2. SGBD popular
    1. SGBD relațional
    2. SGBD NoSQL (NewSQL).
  3. Comparația bazelor de date SQL și NoSQL

Sisteme de management al bazelor de date

Termen SGBD include un număr destul de mare de instrumente foarte diferite pentru lucrul cu baze de date ( programe individualeși biblioteci de plug-in). Deoarece datele vin în forme și tipuri diferite, din a doua jumătate a secolului al XX-lea, au fost dezvoltate un număr mare de SGBD-uri diferite și alte aplicații pentru lucrul cu baze de date.

Comparația sistemelor de gestionare a bazelor de date SQL și NoSQL

Pentru a obține o imagine de ansamblu, să comparăm aceste două tipuri de SGBD:

  • Structurile de date și tipurile lor - bazele de date relaționale folosesc scheme stricte de date, bazele de date NoSQL permit orice tip de date
  • Cereri - indiferent de tipul licenței, baze de date relaționale datele într-o măsură sau alta respectă standardele SQL, astfel încât datele pot fi obținute de la ele folosind Limbajul SQL. Bazele de date NoSQL folosesc moduri specifice de a interoga datele.
  • Scalabilitate - ambele tipuri de SGBD se pretează destul de ușor la scalarea verticală (adică creșterea resursele sistemului). Cu toate acestea, deoarece NoSQL este un produs mai modern, aceste SGBD-uri sunt cele care oferă mai mult moduri simple scalare orizontală (adică crearea unui grup de mai multe mașini).
  • Fiabilitate – când vine vorba de siguranța datelor și de garantarea executării tranzacțiilor, bazele de date SQL ocupă în continuare o poziție de lider.
  • Suport - SGBD-urile relaționale au o istorie destul de mare în spate. Sunt foarte populare și oferă atât plătite, cât și solutii gratuite. Când apar probleme, este totuși mult mai ușor să găsești răspunsul când vine vorba de sisteme relaționale decât NoSQL, mai ales dacă soluția este destul de complexă în natură (de exemplu MongoDB).
  • Stocarea si accesul la structuri complexe de date – initial, sistemele relationale au fost concepute pentru a lucra cu structuri complexe, motiv pentru care sunt superioare altor solutii din punct de vedere al performantei.

18.03.2014

Sursă: Revista „Tehnologii de protecție” Nr.1, 2014

În acest articol vom atinge o parte destul de ascunsă, dar în același timp, atât de importantă a oricărui sistem modern de control al accesului la rețea, cum este un sistem de gestionare a bazelor de date (DBMS). Orice sistem modern de control al accesului la rețea are nevoie de o bază de date, deoarece este în esență un sistem informațional conceput pentru a stoca, procesa și analiza informații despre evenimentele care au loc la obiectul protejat. De asemenea, ACS ar trebui să stocheze setările echipamentului, codurile cardului și datele personale ale utilizatorilor, nivelurile de acces și alte informații necesare.

Terminologie

O greșeală comună făcută de mulți specialiști în securitate este utilizarea incorectă a termenului „bază de date” (DB) în locul termenului „sistem de management al bazei de date” (DBMS). Să ne dăm seama ce este.

Baza de date- o colecție de materiale independente prezentate într-o formă obiectivă, sistematizate în așa fel încât aceste materiale să poată fi găsite și prelucrate cu ajutorul unui calculator electronic.

Sistem de management al bazelor de date (DBMS) - un set de software și instrumente lingvistice cu scop general sau special care asigură gestionarea creării și utilizării bazelor de date.

Adică, pentru a spune simplu, o „bază de date” este datele în sine, prezentate sub forma unei colecții de fișiere pe discuri, cu care funcționează un „sistem de gestionare a bazelor de date” (DBMS) — un produs software care are instrumente pentru a crea , completarea, modificarea și căutarea în baze de date.

Dezvoltatori aplicatii diverse, inclusiv dezvoltatorii ACS, lucrează în mod specific cu SGBD-uri și aleg un SGBD care să se potrivească nevoilor lor.

Cerințe pentru DBMS utilizate în sistemele de control al accesului

Ce cerințe speciale ar trebui prezentate SGBD-ului utilizat în sistemul de control acces din punctul de vedere al utilizatorului?

  • În primul rând, fiabilitatea: nu trebuie pierdute date! Eșecurile ar trebui reduse la minimum și nu ar trebui să ducă la pierderi de date, bazele de date ar trebui protejate în mod fiabil împotriva accesului neautorizat, funcțiile de criptare a datelor pot fi necesare la unități sensibile, este, de asemenea, necesar să se asigure regulat backup baze de date și capacitatea de a restaura dintr-o arhivă dacă este necesar.
  • În al doilea rând, performanța: SGBD-ul trebuie să ofere un nivel acceptabil de performanță pentru rezolvarea sarcinilor care îi sunt atribuite.
  • În al treilea rând, în opinia mea, aceasta este încrederea că SGBD-ul va fi susținut de producător și nu veți rămâne singur cu problema în cazul unei eșecuri grave sau a unei situații dificile.

Tipuri de SGBD

DBMS activat în acest moment Există o mare varietate și sunt clasificate după diferite criterii. Dar în acest articol nu ne vom opri asupra diversității acestor tipuri, vom omite tehnologii promițătoare și exotice, cum ar fi SGBD-urile ierarhice și orientate pe obiecte. Standardul de facto în modern sisteme informatice sunt SGBD-uri relaționale în care sunt stocate datele formă tabelară, vom vorbi despre ele. Deci, prin ce diferă toate aceste sisteme? Voi enumera parametrii cheie care sunt importanți atât pentru dezvoltatori, cât și pentru utilizatorii sistemului.

Metoda de acces la baza de date:

  1. SGBD client-server
  2. Server de fișiere DBMS
  3. SGBD încorporat

În SGBD-urile client-server (Microsoft SQL Server, Oracle, Firebird, PostgreSQL, InterBase, MySQL etc.) toată prelucrarea datelor se desfășoară într-un singur loc, pe server, în același loc în care sunt (de obicei) stocate datele, și la fișiere Numai un server are acces la date, un sistem este DBMS însuși. Aplicațiile client trimit cereri de procesare și primire a datelor de la SGBD și primesc răspunsuri; aplicațiile client nu au acces direct la fișierele de date. Toate SGBD-urile industriale în acest moment sunt client-server.

În SGBD-urile serverului de fișiere (Paradox, Microsoft Access, FoxPro, dBase etc.), dimpotrivă, aplicațiile au acces general la toate fișierele de bază de date (de obicei stocate într-un spațiu de stocare de fișiere partajat) și procesează în comun aceste date. Fiecare aplicație prelucrează datele în mod independent. În prezent, tehnologia serverului de fișiere este considerată învechită, iar utilizarea ei în sistemele mari de informare este considerată un dezavantaj. Problema este că SGBD-urile server de fișiere nu au multe dintre avantajele celor client-server, cum ar fi: stocarea în cache a datelor, paralelismul interogărilor, performante ridicateși prezintă o serie de dezavantaje (dificultăți în menținerea integrității bazei de date, restaurare, blocare etc.), care la rândul lor duce la o fiabilitate și performanță reduse. Starea bazei de date în SGBD-urile de fișiere trebuie monitorizată în mod constant și trebuie efectuate operațiuni de „tratare” folosind utilitare încorporate sau terțe.

SGBD-urile încorporate (SQLite, Firebird Embedded, Microsoft SQL Server Compact etc.) sunt furnizate ca parte a unui sistem gata făcut produs software fără a necesita o procedură autoinstalare. SGBD-urile încorporate sunt concepute pentru stocarea locală a datelor aplicației și nu sunt proiectate pentru utilizare partajată într-o rețea. De exemplu, SGBD-ul gratuit SQLite încorporat este utilizat pe scară largă în bine-cunoscutul sistem de operare mobil Android, dezvoltat în Google, și în multe aplicații mobile.

Schema de licență:

  1. SGBD gratuit
  2. SGBD industrial comercial (majoritatea producătorilor oferă și o versiune limitată gratuită)

Aproape toate serverele de fișiere și SGBD-urile încorporate sunt gratuite, cele mai cunoscute SGBD-uri client-server gratuite sunt Firebird, PostgreSQL și MySQL.

Un produs pur comercial dezvoltat de Borland: InterBase DBMS. Anterior, acest DBMS avea o versiune open source gratuită: InterBase 6.0, dar proiectul InterBase 6.0 Open Source Edition nu mai era susținut de Borland. În 2001, un grup de entuziaști a creat un separat Sursă deschisă proiectul Firebird DBMS menționat mai sus, care a câștigat o mare popularitate și mulți fani în rândul dezvoltatorilor.

Majoritatea producătorilor de SGBD-uri industriale fac posibilă utilizarea edițiilor gratuite ale produselor lor, care sunt versiuni ale versiunii cu funcții complete a SGBD-urilor care sunt reduse în funcționalitate și performanță.

Avantajele SGBD-urilor gratuite: sunt gratuite, sunt mai puțin solicitante cu resursele PC, au funcționalități bogate și performanțe bune atunci când sunt configurate corect și sunt destul de fiabile.

Contra: nimeni nu poate garanta asta după anumit timp proiectul nu va înceta să existe, pentru că este susținut de o comunitate de entuziaști și, de asemenea, este mai dificil să găsești un specialist competent care să întrețină un DBMS precum Firebird sau PostgreSQL.

Avantajele DBMS comerciale: documentare bună, performanță ridicată, scalabilitate, fiabilitate, suport, disponibilitatea instrumentelor încorporate pentru dezvoltare și administrare. Probabilitatea ca Oracle, Microsoft sau IBM să nu mai susțină sistemele lor este aproape de zero.

Contra: sunt mai solicitanți de resurse decât omologii lor gratuiti și costă mulți bani.

Tabelul de mai jos prezintă limitările celor mai frecvent utilizate ediții gratuite de SGBD-uri industriale.

Firma producatoare Versiuni gratuite Restricții
Microsoft SQL Server 2005 Express Edition (2005, 2008, 2008 R2, 2012) Dimensiunea bazei de date - până la 4 GB, numărul de baze de date este nelimitat, nu utilizează mai mult de 1 GB RAMși doar 1 procesor (nucleu) pe mașinile multiprocesor și multicore. Platforme acceptate: numai Windows 2005 – numai x86, 2008 – x86 și x64.
SQL Server 2008 Express Edition
SQL Server 2008 R2 Express Edition Dimensiunea bazei de date este de până la 10 GB, numărul de baze de date este nelimitat, utilizează nu mai mult de 1 GB de RAM și doar 1 procesor (nucleu) pe mașinile multiprocesor și multi-core. Platforme acceptate: numai Windows x86 și x64.
SQL Server 2012 Express Edition
Oracol Oracle Database 11g Express Edition, (Oracle Database XE) În total, până la 11 GB de date utilizator, nu utilizează mai mult de 1 GB de RAM și doar 1 procesor (nucleu) pe mașinile multiprocesor și multicore. Platforme acceptate: Windows x86, Linux x64.
IBM IBM DB2 Express-C Dimensiunea bazei de date nu este limitată, se folosesc până la 4 GB RAM și până la 2 procesoare. Platforme acceptate: Windows x86 și x64, Linux x86 și x64, Unix x86 și x64, Solaris x86 și x64, Mac OS X

Daca este depasita dimensiune maximă baza de date va opri scrierea în baza de date, dar această problemă este ușor de prevenit. Practic, volumul este necesar pentru a stoca evenimente care se acumulează constant în sistem, datele rămase (setările controlerului, datele subiecților de acces, nivelurile de acces etc.) este relativ static și numai pe sistemele foarte mari poate depăși limitele; versiuni gratuite Express. Este necesar să configurați o procedură pentru ștergerea periodică a evenimentelor vechi din baza de date folosind SGBD. În multe sisteme de control al accesului, aceste proceduri sunt furnizate de dezvoltatori și pur și simplu trebuie să fie configurate.

În ceea ce privește limitările de performanță: dacă sistemul este mic, nu implică sarcini grele pe un DBMS, te poți limita cu ușurință la ediția gratuită, va fi mai mult decât suficient. Dacă sarcina impune solicitări crescute subsistemului DBMS: un număr mare de utilizatori în sistem, trafic mare de evenimente și un flux de actualizări de date în sistem (obiecte cu un număr mare vizitatori temporari) şi exigențe mari până la profunzimea arhivei de evenimente, puteți oricând să treceți de la ediția gratuită la versiunea comercială plătind licența necesară.

DBMS în ACS

Tabelul de mai jos prezintă date din surse deschise cu privire la tipul de SGBD utilizat în sistemele populare de control și management al accesului din Rusia.

Producător ACS SGBD
Parsec ParsecNET 3 Microsoft SQL Server (disponibil în 2005 Express, sunt acceptate și versiunile 2008, 2008 R2, 2012) – bază de date centrală; SQLite - baze de date locale posturi de lucru.
Elsys Bastionul 2 Oracle (inclus cu 11g Express)
Perco S20 Pasăre de foc
NVP Bolide Orion PRO MS SQL Server (ambalat cu 2005 Express)
RusGuard RusGuard MS SQL Server (livrat cu 2008 R2 Express)
Ravelin LTD Poartă Microsoft Access
Serviciul PromAutomation Sfinxul MySQL
Kodos IKB Kodos Pasăre de foc
TSS Șapte Sigilii Pasăre de foc
Bosch Sistemul de integrare a clădirilor BIS Microsoft SQL Server (livrat cu 2008 Express Edition)
Honeywell NexWatch (Securitate Honeywell) Microsoft SQL Server
Siemens SiPass Microsoft SQL Server
Sisteme AAM Apacs Microsoft SQL Server, Firebird
Lyrix Oracle, Microsoft SQL Server, Borland InterBase

După cum puteți vedea, majoritatea producătorilor de ACS furnizează versiune gratuită industrial SGBD client-server Microsoft SQL Server Express Edition și DBMS gratuit (gratuit) multiplatformă Firefird (aproximativ 50/50).

Alegerea specifică a unuia sau altuia DBMS este o chestiune de gust și preferință pentru fiecare producător, din fericire există o alegere. Atunci când aleg, dezvoltatorii iau în considerare, de asemenea, aspectele de comoditate și ușurință în administrare, disponibilitatea instrumentelor gratuite încorporate pentru administrare și dezvoltare.

Pe lângă fiabilitatea și performanța înalte, un DBMS pentru sistemele de control al accesului trebuie să fie convenabil și ieftin de susținut. Dezvoltatorii ACS sunt bine conștienți de faptul că chiar și facilitățile mari nu au adesea specialiști dedicați pentru întreținerea ACS care au abilități de administrare DBMS, așa că încearcă să includă în produsele lor funcții care facilitează și automatizează procesele de întreținere a bazelor de date.

În primul rând - backup bazei de date, baza elementelor de bază, care permite administratorului de sistem să doarmă liniștit. Toate SGBD-urile au propriile instrumente pentru crearea de backup, dar este considerată o formă bună atunci când funcția de backup este integrată în produs și administratorul trebuie doar să o activeze/configureze și să verifice periodic funcționarea acesteia.

A doua problemă comună este recuperarea datelor după o eroare. Din nou, proaspătul vine în ajutor backup, dar dacă nu există sau recuperarea tuturor datelor posibile este critică, atunci vor fi necesare eforturi suplimentare. Din fericire, în SGBD-urile industriale (ceea ce nu se poate spune despre SGBD-urile de fișiere vechi, cum ar fi Paradox), astfel de fenomene apar rar, pot fi cauzate doar de o persoană „pe moarte”. hard disk sau pană de curent. În acest caz, vor fi necesare serviciile unui administrator SGBD de specialitate, care va putea restabili maximum posibil folosind instrumentele încorporate în orice SGBD serios. De asemenea, trebuie remarcat faptul că unii producători de ACS oferă servicii de restaurare a bazelor de date ca parte a suportului tehnic.

  • Atunci când alegeți un sistem de control al accesului, acordați atenție ce DBMS este furnizat împreună cu sistemul.
  • Dacă utilizați un sistem de control al accesului, atunci aflați ce SGBD folosește.
  • Evaluați traficul de date și încărcarea sistemului dumneavoastră pentru a determina resursele hardware necesare ale serverului DBMS și ediția DBMS necesară (consultați producătorul sistemului dumneavoastră de control al accesului, dacă este necesar).
  • Dacă sistemul dvs. de control al accesului folosește versiunea Express a Microsoft SQL Server sau Oracle, atunci trebuie să puneți întrebarea: „Cât volumul bazei de date gratuit va fi suficient pentru noi?” Configurați eliminarea periodică a evenimentelor vechi din baza de date folosind sisteme de control al accesului (dacă există) sau luați în considerare migrarea la o versiune nelimitată plătită a SGBD.
  • Configurați copii de siguranță ale bazei de date utilizând sisteme de control al accesului sau instrumente DBMS și verificați în mod regulat implementarea acesteia.
  • Găsiți un specialist DBMS (administrator) pe care să îl contactați în caz de corupție a bazei de date, aflați în suport tehnic Capacitatea producătorului ACS de a furniza acest tip de servicii.