O prezentare generală a instrumentelor de sincronizare a bazelor de date MySQL. Sincronizarea bazelor de date SQL Server din diverse surse

Oricine a dezvoltat vreodată aplicații care utilizează o bază de date trebuie să fi întâmpinat problema actualizării structurii bazei de date la implementarea și actualizarea unei aplicații.

Cel mai adesea, se folosește o abordare simplă - crearea unui set de script-uri SQL pentru a modifica structura bazei de date de la versiune la versiune. Bineînțeles că există așa ceva Unealtă puternică, ca Red gate, dar în primul rând nu este gratuit, în al doilea rând nu rezolvă problema automatizare completă actualizări.


Tehnologia de migrare, care a apărut pentru prima dată în Hibernate ORM și implementată în Linq, este foarte bună și convenabilă, dar implică o strategie de prim cod pentru dezvoltarea structurii bazei de date, care este foarte laborioasă pentru proiectele existente, și utilizarea declanșatoarelor, stocate. procedurile și funcțiile din baza de date fac ca sarcina de a trece mai întâi la cod să fie practic imposibilă.


Acest articol propune o abordare alternativă pentru rezolvarea acestei probleme, folosind stocarea structurii bazei de date de referință într-un fișier XML și generare automată Script SQL bazat pe compararea structurii de referință și existente. Deci, să începem...

Generarea unui fișier XML cu o structură de bază de date

Pentru experimente, vom folosi baza de date DbSyncSample. Scriptul pentru crearea bazei de date este prezentat mai jos.


USE GO /***** Obiect: Tabel . Data scriptului: 06/01/2017 10:37:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE .( IDENTITY(1,1) NOT NULL, (50) NULL, NULL, (18) , 2) NU NUL, CONSTRAINT CHEIE PRIMARĂ CLUSTERED ( ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON ) ON INDEX GO CREATE. ( ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ALLOW_PAGE_LOCKS = ACTIVAT: Tabel /**) Data scriptului: 06/01/2017 10:37:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE .( IDENTITY(1,1) NOT NULL, (150) NULL, NULL, (18) , 2) NU NUL, CHEIE PRIMARĂ CONSTRAINT CLUSTERED ( ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON ) Obiect: GO /** Script ) ON: GO /** Data: 06/01/2017 10:37:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER . PE . DUPĂ INSERT, UPDATE AS BEGIN UPDATE Comenzi SET TotalCost = s.Total FROM (SELECT i.OrderId OId, SUM(d.Cost) Total FROM Detalii d JOIN inserat i ON d.OrderId=i.OrderId GROUP BY i.OrderId) s WHERE Id=s.OId END GO /****** Obiect: Trigger Script Data: 06/01/2017 10:37:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER . PE . DUPĂ ȘTERGERE AS BEGIN UPDATE Comenzi SET TotalCost = s.Total FROM (SELECT i.OrderId OId, SUM(d.Cost) Total FROM Detalii d JOIN șters i ON d.OrderId=i.OrderId GROUP BY i.OrderId) s WHERE Id =s.OId END GO /****** Obiect: Script implicit Data: 06/01/2017 10:37:43 ******/ ALTER TABLE . ADD CONSTRAIN DEFAULT ((0)) FOR GO /****** Obiect: Script implicit Data: 06/01/2017 10:37:43 ******/ ALTER TABLE . ADD CONSTRAIN DEFAULT ((0)) FOR GO /****** Obiect: ForeignKey Script Data: 06/01/2017 10:37:43 ******/ ALTER TABLE . CU VERIFICAȚI ADD CONSTRINT REFERINȚE STRĂINE KEY() . () GO ALTER TABLE . VERIFICAȚI CONSTRAINT GO

Pentru experimente creăm aplicație de consolă. Conectăm pachetul nuget Shed.DbSync la acesta.


Structura bazei de date sub formă de XML se obține după cum urmează:


clasa Program ( private const string OrigConnString = "sursa de date=.;catalog inițial=FiocoKb; securitate integrată=True;MultipleActiveResultSets=True;App=EntityFramework"; static void Main(string args) ( // obține XML cu structura bazei de date var db = nou Shed.DbSync.DataBase(OrigConnString); var xml = db.GetXml(); File.WriteAllText("DbStructure.xml", xml); ) )

După rularea programului în fișierul DbStructure.xml, vedem următoarele:


0 1 int 4 fals Adevărat fals 2 nvarchar 100 Adevărat fals fals 3 datetime 8 Adevărat fals fals 4 zecimal 9 fals fals fals 1 CLUSTRATE Adevărat Adevărat fals 1 1 fals 2 NEGRUPAT fals fals fals 2 1 fals 1 4 ((0))
1 int 4 fals Adevărat fals 2 nvarchar 300 Adevărat fals fals 3 int 4 Adevărat fals fals 4 zecimal 9 fals fals fals 1 CLUSTRATE Adevărat Adevărat fals 1 1 fals 1 2137058649 1 3 1 FARA ACTIUNE FARA ACTIUNE 4 ((0))
CREATE TRIGGER . ON dbo.Detalii AFTER INSERT,UPDATE AS BEGIN UPDATE Comenzi SET TotalCost = s.Total FROM (SELECT i.OrderId OId, SUM(d.Cost) Total FROM Detalii d JOIN inserted i ON d.OrderId=i.OrderId GROUP BY i .OrderId) s WHERE Id=s.OId END SQL_TRIGGER CREATE TRIGGER . ON dbo.Details AFTER DELETE AS BEGIN UPDATE Comenzi SET TotalCost = s.Total FROM (SELECT i.OrderId OId, SUM(d.Cost) Total FROM Detalii d JOIN deleted i ON d.OrderId=i.OrderId GROUP BY i.OrderId ) s UNDE Id=s.OId END SQL_TRIGGER

Extinderea/actualizarea structurii bazei de date folosind XML-ul primit.

Acum să învățăm cum să folosim XML-ul rezultat. Creăm o altă bază de date goală DbSyncSampleCopy, în codul nostru programul consolei adăugați următoarele:


clasa Program ( private const string OrigConnString = "data source=.;initial catalog=DbSyncSample;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"; private const string TargetConnString = "data source=.;initial catalog=DbSyncSample;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"; static void Main(string args) ( // obține XML cu structura bazei de date de referință var dborig = new Shed.DbSync.DataBase(OrigConnString); var xml = dborig.GetXml() ; File.WriteAllText("DbStructure.xml", xml); // dacă trebuie să ștergeți mai întâi structura bazei de date țintă, utilizați // Shed.DbSync.DataBase.ClearDb(TargetConnString); // actualizați structura bazei de date țintă var dbcopy = Shed.DbSync .DataBase.CreateFromXml(xml); dbcopy.UpdateDb(TargetConnString); // de fapt, puteți face cu o singură linie: // dborig.UpdateDb(TargetConnString); // dbcopy este creat doar pentru a demonstra crearea a unui obiect de bază de date din XML ) )

După pornirea programului, vă puteți asigura că DbSyncSampleCopy are o structură de tabel care este identică cu baza de date de referință. Experimentele cu schimbarea structurii de referință și actualizarea structurii țintă sunt lăsate la latitudinea cititorului.


În scenariile de testare, poate fi necesar să creați o bază de date de testare de la zero de fiecare dată. În acest caz, va fi util să folosiți funcția Shed.DbSync.DataBase.ClearDb(string connString)

Urmărirea automată a structurii bazei de date.

Vom aranja urmărirea structurii ca o funcție separată, care ar trebui apelată la pornirea/repornirea aplicației sau în alt loc la cererea dezvoltatorului.


static void SyncDb() ( // urmărire automatăîn spatele structurii bazei de date Shed.DbSync.DataBase.Syncronize(OrigConnString, @"Struct\DbStructure.xml", // calea către fișierul de structură @"Struct\Logs", // calea către folderul jurnal de sincronizare @"Struct\update_script .sql" // (opțional) dacă acest parametru este definit // va conține scriptul generat // pentru a actualiza baza de date); )

Urmărirea se realizează folosind parametrul Versiune (etichetă) în XML. Scenariul de utilizare a procedurii este următorul:

  1. Setați versiunea bazei de date. În Microsoft SqlServer Management Studio pe nodul bazei de date dorite Click dreapta selectați Proprietăți.
  2. Apoi, Proprietăți extinse și în tabelul de proprietăți adăugați proprietatea Versiune cu o valoare de 1. Cu fiecare modificare ulterioară a structurii, această proprietate ar trebui să fie mărită cu 1.
  3. Când pornește aplicația, dacă nu există niciun fișier XML sau versiunea sa este mai mică decât cea a bazei de date, aceasta este creată.
  4. Dacă versiunea fișierului XML este mai mare decât cea a bazei de date, se generează și se execută un script de actualizare a bazei de date.
  5. Dacă apar erori în timpul execuției scriptului, toate modificările sunt anulate.
  6. Rezultatele sincronizării sunt scrise într-un fișier jurnal creat în folder specificat de parametru logDitPath.
  7. Dacă este specificat parametrul SqlScriptPath, este creat un fișier cu scriptul de la pasul 4.

Las experimentele pe seama cititorilor. Vă doresc succes!

Etichete:

  • mssql
  • sincronizarea bazei de date
  • Bază de date
  • sincroniza
  • dbsync
  • sql
  • Magazin
  • magazie.dbsync
Adaugă etichete

Prieteni, salut tuturor! Mă bucur să vă văd pe toți la mine 😉 Astăzi vă voi spune cum să sincronizați bazele de date Date WordPress. Și, de asemenea, despre ce tabele din baza de date sunt cele mai importante și cum să lucrezi cu ele.

Nu mă refer doar la acest subiect. După cum vă amintiți, am vorbit despre cum. Foarte la îndemână pentru dezvoltarea site-ului web.

Deci, după finalizarea site-ului, acesta trebuie returnat la găzduire. Și cu asta, în general, nu există probleme. În cazul în care în timpul lucrului dumneavoastră pe server local, site-ul aflat pe Internet nu a fost actualizat. Dar astfel de cazuri sunt extrem de rare.

Dar dacă ați actualizat în mod regulat site-ul și, în același timp, ați lucrat, ca mine, la designul său pe computer, atunci apare o anumită dificultate. În dumneavoastră baza de date locala va exista un design nou, dar nu vor fi articole și comentarii noi.

Și aici intervine sincronizarea bazei de date. Acesta este modul în care puteți combina atât noul design, cât și noile intrări din baza de date. Și după ce, fără probleme, transferați site-ul finalizat înapoi pe găzduire.

Și acesta este doar un exemplu, dar tu însuți ai înțeles deja că manipularea abil a bazei de date deschide noi oportunități pentru tine în lucrul pe site.

Structura bazei de date WordPress

Înainte de a începe sincronizarea, trebuie să vă dați seama ce să sincronizați. Baza de date WordPress constă din multe tabele care stochează date despre utilizatori, articole, categorii, etichete, pluginuri, comentarii, setarile sistemuluiși mult mai mult.

În general, nu este necesar să înțelegeți temeinic toate tabelele. Este suficient să știți în ce tabele există informații despre articole, comentarii etc. Aceste tabele sunt de o importanță cheie în sincronizare.

Deci, să aruncăm o privire la tabelele cheie din baza de date WordPress.

wp_options - conține toate setările site-ului;

wp_posts - toate articolele și postările de pe site;

wp_postmeta - date auxiliare despre articole și postări de pe site;

wp_comments - comentarii;

wp_commentmeta - informații auxiliare despre comentarii;

wp_term_relationships - link-uri de articole și postări cu categorii și etichete;

wp_terms - legături de categorii (titluri) cu legături;

wp_term_taxonomy - link-uri de categorii, tag-uri, link-uri;

wp_usermeta - informații despre toți utilizatorii înregistrați;

wp_users - informații despre administrator.

Multe alte tabele din baza de date sunt create de tot felul de pluginuri, widget-uri și alte asemenea instrumente. Practic, aceste tabele conțin informatii despre sistem, poate fi folosit la bun sfârșit. Deci, uitându-vă cu atenție la aceste tabele, puteți afla prin ce interogare cheie vizitatorul a venit, ce pagină, dacă a fost prima vizită sau a doua vizită și chiar din ce browser și sistem de operare.

Acum asta e când ideea generala Odată ce ați configurat baza de date WordPress, puteți trece la scopul lecției noastre - sincronizarea bazei de date.

Pregătirea pentru procesul de sincronizare

Înainte de a începe să lucrați cu baza de date, asigurați-vă că ați făcut o copie de rezervă. Pentru că dacă o faci, ceva nu este în regulă. Apoi puteți restaura totul dintr-o copie.

Deci, veți înțelege procesul și veți putea crea baza dorită date de pe computerul dvs. și transferați baza de date gata făcută pe găzduire.

Cel mai important, nu uitați să faceți backup.

Comparație baze de date în phpMyAdmin

Acest pas este opțional, dar este mai bine dacă știi cum să compari bazele de date la îndemână. Aceste cunoștințe îmi vin adesea în ajutor.

Vom folosi utilitarul phpMyAdmin pentru asta, care este disponibil atât pe hosting, cât și pe serverul local.

Ca o comparație, vom folosi baza de date de pe serverul local, pe care am folosit-o în munca mea pe . Și baza de date pe care o folosesc pe blogul meu.

Pentru comparație, să luăm o cifră - numărul de articole. Deoarece pentru site-uri ca al meu, acesta este cel mai valoros lucru. Ei bine, comentarii, desigur. În plus, aceste numere sunt întotdeauna în minte.

Analizăm site-ul de testare și baza de date:

În primul rând, să ne uităm la numărul de articole. Puteți face acest lucru în panoul de administrare WordPress. Este suficient să deschideți consola.

După cum puteți vedea în captură de ecran, pe site-ul de testare există 136 de articole.

După actualizarea temei, am reușit să mai scriu câteva articole. Și acum sunt 138 dintre ei.

Numărul de articole trebuie să se potrivească cu numărul de intrări din tabelul wp_posts. Dar, dacă deschideți acest tabel, veți vedea mult mai multe înregistrări.

După cum puteți vedea în captură de ecran, există 2.245 de înregistrări în total. Printre acestea se numără articole și intrări separate. Și este, de asemenea, o grămadă de schițe și alte note despre imagini și așa mai departe.

Prin urmare, este nerealist să determinați imediat numărul de articole. Pentru a face acest lucru, trebuie să faceți o mică interogare cu opțiuni de sortare.

Deschideți baza de date - tabelul wp_posts - mergeți la fila SQL - introduceți interogarea:

SELECTAȚI * FROM `wp_posts` WHERE `post_status` = "publicare" ȘI `post_type` = "postare"

Această interogare spune că în tabelul wp_posts, trebuie să selectați toate postările ( * ) în care starea este publicată ( publish ) și acesta este un articol ( post ).

Ca rezultat, obținem 136 de înregistrări. Acum această cifră corespunde numărului de articole.

Cealaltă bază de date este verificată în același mod. În cazul meu, o bază reală de pe blogul meu.

Aceste cunoștințe te vor ajuta să nu pierzi nimic important. Și verificați după sincronizare dacă totul a mers bine.

Ca exemplu nefericit, vă voi spune o mică poveste. Unul dintre prietenii mei s-a mutat odată de la o găzduire la alta. A făcut totul conform instrucțiunilor, suportul tehnic l-a ajutat. Dar, după ceva timp, a observat că două articole lipsesc de pe site-ul său. Când mi-a cerut să îmi dau seama care ar putea fi problema, am făcut o reconciliere și s-a dovedit că noua bază de date nu conține două înregistrări care sunt în baza veche date. Cel mai probabil, când transfera baza de date, a greșit ceva și a pierdut aceste două articole. În consecință, a trebuit să fac ceva magie și să readuc aceste două articole la locul lor.

De aceea este important să știi să împaci. Și asigurați-vă că, după sincronizare, toate înregistrările dumneavoastră sunt transferate cu succes dintr-o bază de date în alta.

Sincronizarea bazei de date WordPress

Toate acțiunile vor fi efectuate pe serverul local. Și apoi bază gata datele pot fi importate în găzduire.

Pasul 1: Creați două baze de date goale

Dacă apare întrebarea de ce există două baze de date, atunci explic - acest lucru este necesar pentru a nu atinge bazele de date de lucru și a arăta un exemplu de la zero.

Mai întâi de toate, lansați Denver și tastați localhost/tools/ în browser, apoi faceți clic pe linkul phpmyadmin.

Pasul 2. Importați date în baza de date

Deci, am făcut copii de siguranță ale bazei de date. Unul de pe un site de testare, celălalt de pe blogul meu de pe Internet. Acestea vor fi necesare pentru a importa conținut în bazele de date nou create. Și apoi va exista asigurare.

De asemenea, trebuie să aveți două baze de date pe care le veți sincroniza.

Acum trebuie să importam datele din copiile de rezervă în noile baze de date. Pentru a face acest lucru, alegeți noua baza- marcaj deschis "Import"- alege "fişier backup» - apasa butonul "BINE".

Pasul 3. Sincronizarea bazei de date

În general, este posibil să copiați pur și simplu tabelele necesare dintr-o bază de date în alta. Dar ne vom uita direct la procesul de sincronizare. Atât complet cât și parțial (sub formă de tabele separate).

Pentru asta trebuie să mergi la pagina principala phpMyAdmin și selectați secțiunea "Sincroniza".

Acum, ca sursă, definim o bază de date dintr-un blog de pe Internet (este mai recent), iar ca bază de date țintă, o bază de date dintr-un site de testare. Sarcina noastră este să copiem articole noi, comentarii și etichete în baza de date a site-ului de testare.

După ce s-a făcut comparația. Vi se va solicita să sincronizați mese separate care au modificări sau fac o sincronizare completă.

Dacă doriți să sincronizați tabele individuale, atunci trebuie să faceți clic pe literele S sau D. Aceste litere vor deveni gri, iar în fereastra de mai jos veți vedea tabelele adăugate pentru sincronizare. Apoi puteți sincroniza aceste tabele făcând clic pe butonul „Aplicați modificările selectate”.

În cazul nostru, această metodă este potrivită, deoarece trebuie doar să sincronizăm articolele, comentariile și metadatele.

Pentru a sincroniza complet bazele de date, nu trebuie să verificați nimic. Doar apăsați butonul „Sincronizează bazele de date”.

Asta e tot. Acest lucru finalizează procesul de sincronizare. Puteți verifica rezultatul. Pentru bun exemplu, am schimbat baza de date pe site-ul local. Dacă cineva a uitat, acest lucru se face în fișierul wp-config.php. Și acum puteți compara numărul de articole, intrări și comentarii. Adevărat, mai erau câteva comentarii pe blog în timp ce scriam articolul.

Testați statisticile blogului:

Statistici blog:

Și, în sfârșit, permiteți-mi să vă reamintesc că sincronizarea bazei de date este jumătate din luptă. Baza de date trebuie să fie însoțită de fișierele implicate în funcționarea site-ului. De exemplu, dacă nu copiați capturile de ecran care însoțesc articolul, atunci articolul va fi gol fără ele.

Și acum vă sfătuiesc să urmăriți un tutorial video în care vă arăt pas cu pas întreg procesul de sincronizare a bazei de date.

Asta e tot pentru azi. le doresc tuturor Să aveți o dispoziție bună. Ne vedem în conținut nou. Si bineinteles, astept comentariile voastre 😉 Iar cunostintele acumulate iti vor fi de folos cand.

Abonați-vă la articole noi!

    Conceptul de bază de date. Clasificarea bazelor de date (după forma de prezentare a informațiilor; după natura organizării datelor; după tipul de model utilizat; după tipul de informații stocate; după natura organizării stocării datelor și a accesului la acestea).

Bază de date(DB) este un set de date special organizate stocate în memoria unui sistem de calcul și care reflectă starea obiectelor și relațiile lor în domeniul subiectului.

Bază de date este un sistem de date special organizat ( baze de date), software, mijloace tehnice, lingvistice, organizatorice și metodologice menite să asigure acumularea centralizată și utilizarea colectivă cu scopuri multiple a datelor. În definiția de mai sus a BND, pe de o parte, se subliniază că banca de date este un sistem complex care include toate subsistemele suport necesare pentru funcționarea oricărui sistem automat de prelucrare a datelor. Pe de altă parte, această definiție indică și principalul Caracteristici distinctive ale băncilor de date:

    Bazele de date sunt create de obicei nu pentru a rezolva nicio sarcină pentru un utilizator, ci pentru utilizare multifuncțională.

    Bazele de date reflectă o anumită parte a lumii reale. Trebuie să ne străduim să ne asigurăm că toate informațiile care descriu subiectul sunt înregistrate în baza de date o singură dată, acumulate și păstrate la zi central, iar toți utilizatorii care au nevoie de aceste informații ar trebui să poată lucra cu ele.

Bazele de date sunt date special organizate, de ex. sisteme de date interconectate, a căror unitate și integritate sunt menținute prin software special.

Pentru funcționarea BnD este necesar să existe un limbaj special și instrumente software(numite DBMS), care facilitează efectuarea de către utilizatori a tuturor operațiunilor legate de organizarea stocării datelor, corectarea acestora și accesul la acestea. utilizatorii BND.

1.Utilizatorii finali. Utilizatorii finali nu ar trebui să aibă cunoștințe speciale în domeniul tehnologiei informatice și al instrumentelor lingvistice.

2. Angajații serviciilor de informare. Ei folosesc mai ales metainformații. Este adesea de dorit ca alte informații să fie închise pentru ei.

3. Administratorii BnD- persoanele responsabile cu crearea bazei de date si functionarea fiabila a acesteia, pentru respectarea reglementarilor de acces la datele stocate, pentru dezvoltarea bazei de date (administratori de domenii, administratori de baze de date, administratori de aplicatii).

Clasificarea DB.

1. După forma de prezentare a informaţiei. Componenta centrală a băncii de date este baza de date, iar majoritatea caracteristicilor de clasificare se referă la aceasta. După forma de prezentare a informaţiei distinge vizualȘi audio sisteme cât și sisteme multimedia. Această clasificare arată forma în care informațiile sunt stocate în baza de date și transmise din baze de date către utilizatori: sub formă de imagine, sunet sau este posibil să se utilizeze diferite forme de afișare a informațiilor. Conceptul de „imagine” este folosit aici în în sens larg- poate fi un text simbolic, o imagine statică grafică (desene, desene etc.), fotografii, hărți geografice, imagini în mișcare.

2. După natura organizării datelor Bazele de date pot fi împărțite în nestructurate, parțial structuratȘi structurat. Această caracteristică de clasificare se referă la informațiile prezentate sub formă simbolică. Bazele de date nestructurate pot fi clasificate ca baze de date organizate sub forma rețele semantice. Parțial structurate pot fi considerate baze de date sub formă de text simplu sau sisteme hipertext. Bazele de date structurate necesită proiectarea preliminară și descrierea structurii bazei de date. Numai atunci bazele de date de acest tip pot fi populate cu date.

3. Baze de date structurate la rândul lor după tipul de model utilizat sunt impartite in: ierarhic, de rețea, relațional, mixtȘi multi-model.

Clasificare după tipul de model se extinde nu numai la bazele de date, ci și la DBMS.

În bazele de date structurate, există de obicei mai multe niveluri de unități de informații care sunt incluse unele în altele. Cele mai multe sisteme structurate acceptă niveluri de câmp, înregistrare și fișier.

camp corespunde celei mai mici unități semantice de informație; un set de câmpuri și/sau alte unități de informații mai complexe, dacă sunt valide într-un anumit SGBD, formează record, iar setul de înregistrări de același tip reprezintă fișier de bază de date. ÎN În ultima vreme majoritatea SGBD-uri acceptă în mod explicit nivelul Bază de date, ca o colecție de fișiere de baze de date interconectate.

În modelele ierarhice și de rețea între unitățile informaționale (înregistrări fișiere diferite) pot fi setate legături.

Reprezentarea grafică a modelului ierarhic este un grafic de tip „arbore”. Într-un astfel de model, există un vârf - rădăcina copacului, care este intrarea în structură. Fiecare vârf, altul decât rădăcina, poate avea un singur vârf sursă și, în general, atâtea vârfuri copil cât se dorește.

Reprezentarea grafică a modelului de rețea este un grafic de tip „rețea”. Orice vârf poate fi o intrare la o astfel de structură. Fiecare vârf poate avea atât mai multe vârfuri generate, cât și mai multe vârfuri inițiale. Pot fi declarate mai multe legături între o pereche de vârfuri. Marea majoritate a SGBD-urilor suportă structuri de rețea simple, adică se menține o relație 1:M între fiecare pereche de tipuri de înregistrări.

Pe lângă modelele de rețea cu fișiere peer, există modele de rețea cu fișiere diferite. În astfel de modele, se disting fișierele principale (principale) și cele dependente. Intrarea în structură este posibilă numai prin fișierele principale. Numai înregistrările de diferite tipuri pot comunica între ele.

Un loc special în rândul sistemelor structurate îl ocupă sistemele construite pe utilizarea lui fișiere inversate. Particularitatea organizării datelor în ele este că datele efectiv stocate și informațiile despre relații sunt separate logic și fizic unele de altele. Datele principale din aceste sisteme sunt stocate în fișiere, ale căror înregistrări pot avea o structură complexă. Toate informațiile de control sunt concentrate în asociat. O conexiune logică între fișiere se stabilește printr-o componentă asociată numită rețea de comunicații. Pe fig. principiul stabilirii legăturilor în astfel de sisteme este prezentat schematic. În realitate, legăturile sunt stabilite nu direct cu elementele de legătură, așa cum se arată în figură, ci printr-un convertor de adrese. În sistemele construite pe fișiere inversate, este posibilă trecerea unei relații M:M între înregistrările de fișiere (pe care niciun alt sistem nu o permite). Separarea informațiilor asociative de datele reale stocate vă permite să schimbați legăturile fără a modifica fișierele în sine.

4. După tipul de informații stocate Baza de date este împărțită în: documentar, factualȘi lexicografic. Printre baze de documente distinge bibliografic, rezumatȘi text complet. Bazele de date lexicografice includ diverse dicționare (clasificatoare, dicționare multilingve, dicționare de baze de cuvinte etc.).

În sistemele de tip factografic, baza de date stochează informații despre obiectele de interes pentru utilizator din domeniul subiectului sub formă de „fapte” (de exemplu, date biografice despre angajați, date despre producția de produse de către producători etc.). Ca răspuns la o solicitare a utilizatorului, se emite informațiile necesare despre obiectul/obiectele de interes pentru acesta sau un mesaj că informațiile solicitate nu se află în baza de date.

În bazele de date documentare, unitatea de stocare este un document (de exemplu, textul unei legi sau al unui articol), iar ca răspuns la solicitarea acestuia, utilizatorului i se oferă fie un link către document, fie documentul în sine, în care el poate găsi informațiile care îl interesează.

Bazele de date de tip documentar pot fi organizate în diferite moduri: fără stocare și cu stocarea documentului original în sine pe suportul mașinii. Sistemele de primul tip includ baze de date bibliografice și abstracte, precum și indici de baze de date care „se referă” la sursa de informații. Sunt numite sisteme care asigură stocarea textului integral al documentului text complet.

5. De către natura organizării stocării datelor și accesul la acestea distinge local(personal), sunt comune(integrat, centralizat) și distribuite Bază de date.

Baza de date personală este o bază de date destinată utilizării locale de către un singur utilizator. Bazele de date locale pot fi create de fiecare utilizator independent sau pot fi preluate dintr-o bază de date partajată.

Integrat și distribuit Bazele de date sugerează posibilitatea accesului simultan al mai multor utilizatori la aceeași informație (multi-user, mod acces paralel).

Baze de date distribuite in plus, au trasaturi caracteristice legate de faptul ca partile fizice diferite ale bazei de date pot fi localizate pe computere diferite, iar logic, din punctul de vedere al utilizatorului, trebuie sa fie un singur tot.

Banca de date este un sistem complex om-mașină și nu numai baza de date, ci și alte componente ale bazei de date pot fi distribuite peste nodurile rețelei. Mai mult, este posibil ca baza de date în sine să nu fie distribuită (de exemplu, atunci când se oferă acces multi-utilizator la o bază de date centralizată în rețea). În același timp, sub distribuit bnd vom înțelege o bancă de date în care este distribuită cel puțin una dintre componentele sale.

Distinge extensivă(EBD) și intensional DB. O bază de date intensională (IDB) este construită folosind regulile care îi definesc conținutul, și nu prin stocarea explicită a datelor într-o bază de date, ca în bazele de date extensiale.

    Conceptul de sistem de management al bazelor de date (DBMS). Clasificarea sistemelor de management al bazelor de date. Grupări de clasificare legate de banca de date în ansamblu.

Sistemul de gestionare a bazelor de date (DBMS) este un set de limbaje și instrumente software concepute pentru a crea, întreține și partaja o bază de date cu mulți utilizatori. RDBMS se disting de obicei prin modelul de date utilizat. Deci, DBMS bazat pe utilizare model relațional datele se numesc SGBD relațional.

După limbajul de comunicare SGBD-urile sunt împărțite în deschis,închisȘi amestecat.

Sistemele deschise sunt sisteme în care sunt folosite limbaje de programare universale pentru a accesa baza de date. Sistemele închise au propriile limbi de comunicare cu utilizatorii BnD.

După numărul de niveluriîn arhitectură, se disting sistemele cu un nivel, două niveluri, trei niveluri.

Nivelul arhitectural al unui SGBD este înțeles ca o componentă funcțională, ale cărei mecanisme servesc la susținerea unui anumit nivel de abstractizare a datelor (niveluri logic și fizic, precum și „vizualizarea” utilizatorului - nivelul extern).

Numerotarea nivelurilor din figură este arbitrară, dar reflectă totuși semnificația acestora (modelul intern poate fi construit doar pe baza celui conceptual; aceste două niveluri pot fi combinate, dar sunt întotdeauna susținute de SGBD; nivelul extern; în arhitectura DBMS poate fi absentă).

După funcție SGBD-urile sunt împărțite în informativȘi săli de operație. Informații DBMS vă permit să organizați stocarea informațiilor și accesul la acestea. Pentru a efectua procesări mai complexe, trebuie să scrieți programe speciale. SGBD-urile operaționale efectuează procesări destul de complexe, de exemplu, vă permit automat să obțineți indicatori agregați care nu sunt stocați direct în baza de date, pot schimba algoritmii de procesare etc.

În funcție de domeniul de aplicare posibil distinge universalȘi de specialitate, de obicei un SGBD specific domeniului.

Prin "putere" SGBD-urile sunt împărțite în "desktop"Și "corporativ". Caracteristicile caracteristice ale DBMS desktop sunt cerințele relativ scăzute pentru hardware, concentrarea pe utilizatorul final și costul scăzut.

SGBD-urile corporative oferă lucru într-un mediu distribuit, performanță ridicată, suport pentru lucrul în echipă în proiectarea sistemului, au instrumente de administrare avansate și mai multe oportunități de a menține integritatea.

Cele mai cunoscute dintre SGBD-urile corporative sunt Oracle, Informix, Sybase, MS SQL Server, Progres și altele.

Există o împărțire a DBMS pe generații:

Generația 1 - bazată pe un model ierarhic și de rețea.

2 generație - Sisteme relaționale.

Generația a 3-a - DBMS trebuie să suporte structuri complexe de date și mijloace mai avansate de asigurare a integrității datelor, să îndeplinească cerințele pentru sistemele deschise.

Grupări de clasificare legate de BnD în ansamblu.

Termenii serviciului distinge gratuitȘi plătit bănci de date. BND plătiți, la rândul lor, sunt împărțite în nonprofitȘi comercial. Băncile de date nonprofit funcționează pe principiul autosuficienței și nu urmăresc obținerea de profit.

Scopul principal al creării băncilor de date comerciale este de a profita de pe urma activităților de informare.

    Sisteme OLTP și OLAP: caracteristici comparative.

Sistemele informatice variază prin natura prelucrării informaţionale predominante. În unele, practic, sunt implementate un număr mare de interogări destul de simple (astfel de sisteme se numesc OLTP (On-Line Transaction Processing) - sisteme de procesare a tranzacțiilor online. În altele, dimpotrivă, este necesară o prelucrare complexă a datelor analitice (pentru o astfel de clasă de sisteme s-a folosit termenul OLAP (On-line Analytical Processing)). termenul OLAP

adesea identificat cu suport decizional (DSS (Decision Support Systems) - sisteme de sprijin pentru decizii). Și ca sinonim pentru ultimul termen, ei folosesc Data Warehousing - depozite de date (depozite), adică prin aceasta un set de soluții organizaționale, software și hardware pentru a oferi analiștilor informații bazate pe date din sistemele de procesare a tranzacțiilor. nivel inferiorși alte surse.

„OLAP în sens restrâns” sunt sisteme care oferă doar o selecție de date în diferite secțiuni și „OLAP în sens larg”, sau pur și simplu OLAP, care include:

    suport pentru mai mulți utilizatori care editează baza de date;

    funcții de modelare, inclusiv mecanisme de calcul pentru obținerea rezultatelor derivate, precum și agregarea și combinarea datelor;

    previziuni, tendințe și analize statistice.

Depozitele de date pot fi împărțite în două tipuri: depozite de date pentru întreprinderi și magazine de date. Seifuri corporative datele conțin informații referitoare la întreaga corporație și colectate dintr-o varietate de surse operaționale pentru o analiză consolidată. Data mart-urile conțin un subset de date ale întreprinderii și sunt construite pentru departamente sau divizii din cadrul unei organizații. Data mart-urile sunt adesea construite în cadrul departamentului însuși și acoperă un aspect specific de interes pentru angajații departamentului.

Caracteristici comparative ale sistemelor OLTP și OLAP:

Caracteristică

Operațiuni dominante

Introducerea datelor, căutarea

Analiza datelor

Natura cererilor

Mult tranzacții simple

Tranzacții complexe

Date stocate

operațional, detaliat

Acoperă o perioadă mare de timp, agregată

Gen de activitate

operațional, tactic

Analitic, strategic

Tip de date

structurat

eterogen

    Model de date relaționale: concepte de bază. Principalele tipuri de legături dintre relații și caracteristicile acestora.

model relațional datele (RMD) ale unui anumit domeniu reprezintă un set de relații care se modifică în timp. Atunci când creați un sistem informațional, un set de relații vă permite să stocați date despre obiectele domeniului subiect și să modelați relațiile dintre ele.

Element de model relațional

Formular de prezentare

Atitudine

schema de relatii

Rând antet coloană tabel (antet tabel)

Rând de masă

Esență

Descrierea proprietăților obiectului

Antetul coloanei tabelului

Setul de valori de atribute valide

Valoarea atributului

Valoarea unui câmp dintr-o înregistrare

cheia principala

Una sau mai multe atribute

Tip de date

Tipul valorii elementului de tabel

Atitudine este cel mai important concept și este un tabel bidimensional care conține unele date.

Esență există un obiect de orice natură, ale cărui date sunt stocate în baza de date. Datele entității sunt stocate în relație.

Atribute sunt proprietăți care caracterizează o entitate. În structura tabelului, fiecare atribut este numit și titlul unei coloane din tabel îi corespunde.

Din punct de vedere matematic, relația poate fi descrisă după cum urmează. Să fie date n mulţimi D1, D2, D3,..., Dn, atunci relaţia R este o mulţime de ordonate tupluri, unde dk Dk, dk sunt atribut, aDk- domeniu relaţie R.

Orez. Reprezentând relația ANGAJAT

Domeniu este setul tuturor valorilor posibile pentru un anumit atribut de relație. Relația ANGAJAT CĂTRE include 4 domenii. Domeniul 1 conține numele tuturor angajaților, domeniul 2- numerele tuturor departamentelor companiei, domeniul 3- toate titlurile de post domeniul 4 - datele de naștere a tuturor angajaților. Fiecare domeniu formează valori de un tip de date, cum ar fi numerice sau caractere.

Relația ANGAJAT conține 3 tupluri. Tuplul relației luate în considerare este format din 4 elemente, fiecare dintre ele selectat din domeniul corespunzător. Fiecare tuplu corespunde unui rând de tabel.

Schema relației (antetul relației) este o listă de nume de atribute. De exemplu, pentru exemplul dat, schema de relații are forma ANGAJAT (nume complet, Departament, Funcție, D_Naștere). Setul de tupluri proprii ale unei relații este adesea numit conţinut (corp) relație.

Cheie primară (cheie de relație, atribut cheie) se numește un atribut al unei relații care identifică în mod unic fiecare dintre tuplurile sale. De exemplu, în legătură cu ANGAJAT (Nume, Departament, Poziție, D_Naștere), atributul cheie este „Nume”. Cheie Pot fi compus (complex) adică este format din mai multe atribute. Există cazuri când o relație are mai multe combinații de atribute, fiecare dintre ele identificând în mod unic toate tuplurile relației. Toate aceste combinații de atribute sunt chei posibile relaţie. Oricare dintre cheile posibile poate fi aleasă ca primar.

Dacă cheia primară selectată constă din setul minim necesar de atribute, se spune că este nu redundant .

Cheile sunt de obicei folosite pentru a atinge următoarele obiective:

1) excluderea dublării valorilor în atributele cheie;

2) ordonarea tuplurilor;

3) accelerarea lucrului cu tupluri de relație;

4) organizarea tabelelor de legătură.

Fie în raport cu R1 există nu cheie atributul A ale cărui valori sunt valori cheie atribut În altă relație R2. Atunci spunem că atributul A al relației R1 este cheie externă .

Cheile externe stabilesc relații între relații. De exemplu, există două relații STUDENT (nume complet, grup, specialitate) și SUBJECT (Numele Pr, Ore), care sunt legate prin relația STUDENT_SUBJECT(Nume, Numele Pr, Grad) (Fig.). Într-o relație de legătură, se formează atributele Nume complet și Nume.Pr cheie compusă. Aceste atribute sunt chei străine care sunt cheile primare ale altor relații.

Orez. relație de relație

Condiții care permit unui tabel să fie considerat o relație.

1. Toate rândurile de tabel trebuie să fie unice, adică nu pot exista rânduri cu aceleași chei primare.

2. Numele coloanelor tabelului trebuie să fie diferite, iar valorile lor trebuie să fie simple, adică nu este permis un grup de valori într-o coloană dintr-o linie.

3. Toate rândurile unui tabel trebuie să aibă aceeași structură corespunzătoare denumirilor și tipurilor de coloane.

4. Ordinea în care sunt plasate rândurile în tabel poate fi arbitrară. Cel mai adesea, un tabel cu o relație este plasat într-un fișier separat.

Dacă relația dată de tabel are o cheie, atunci tabelul este considerat ca având o cheie și este numit cheie sau tabel cu câmpuri cheie.

Principalele tipuri de legături dintre relații și caracteristicile acestora.Între tabele pot fi stabilite relații binare (între două tabele), ternare (între trei tabele) și, în general, n-are. Să aruncăm o privire la cele mai comune binar conexiuni.

Când se leagă două tabele, se disting tabelele principale și cele suplimentare (subordonate). Tabelele sunt legate logic folosind cheie de comunicare . Cheia de legătură constă din unul sau mai multe câmpuri, care în acest caz sunt numite domenii de comunicare (PS).

Esența legăturii este de a stabili o corespondență între câmpurile legăturii dintre tabelele principale și suplimentare. Câmpurile de legătură ale tabelului principal pot fi obișnuite și cheie. Câmpurile cheie sunt cel mai adesea folosite ca câmpuri de legătură într-un subtabel.

În funcție de modul în care sunt definite câmpurile de legătură ale tabelelor principale și suplimentare (cum se raportează câmpurile cheie la câmpurile de legătură), următoarele patru tipuri principale de legături pot fi stabilite în general între două tabele (tabel):

    unu - unul (1:1);

    unu - mai mulți (1: M);

    multe - unul (M: 1);

    multe - multe (M:M sau M:N).

Tab. Caracteristicile tipurilor de legături de tabele

Tip de comunicare 1:1. O relație 1:1 se formează atunci când toate câmpurile relației dintre tabelele principale și suplimentare sunt cheie. Deoarece valorile din câmpurile cheie ale ambelor tabele nu sunt repetate, este furnizată corespondența unu-la-unu a înregistrărilor din aceste tabele. De fapt, mesele în sine devin egale aici.

Tipul de relație 1:M. Relația 1:M are loc în cazul în care o înregistrare a tabelului principal corespunde mai multor înregistrări a tabelului auxiliar.

Tipul de comunicare M:1. O relație M:1 apare atunci când una sau mai multe înregistrări ale tabelului principal sunt asociate cu o înregistrare a tabelului suplimentar.

Tip conexiune M: M. Cel mai general tip de relație M:M apare atunci când mai multe înregistrări ale tabelului principal corespund mai multor înregistrări ale tabelului suplimentar.

cometariu . În practică, o relație implică de obicei mai multe mese deodată. În acest caz, unul dintre tabele poate avea diverse tipuri de relații cu mai multe tabele. În cazurile în care tabelele înrudite, la rândul lor, au legături către alte tabele, se formează o ierarhie sau un arbore de relații.

    Teoretica multimilor si operatii speciale ale algebrei relationale.

Algebră este un set de obiecte cu un set de operații definit pe el, închis față de această mulțime, numită set principal.

Mulțimea de bază în algebra relațională este mulțimea relațiilor. Întregul set de operații poate fi împărțit în două grupe: operații teoretice și operații speciale. Prima grupă include 4 operații. Primele trei operații teoretice de mulțimi sunt binare, adică implică două relații și necesită scheme echivalente ale relațiilor originale.

Asociere două relații este o relație care conține un set de tupluri aparținând fie primei sau celei de-a doua relații sursă, fie ambelor relații în același timp.

Să fie date două relații R 1 = ( r 1 ), R 2 = ( r 2 ), unde r 1 și r 2 sunt, respectiv, tuplu ale relațiilor R 1 și R 2 , apoi uniunea R 1 R 2 = ( r | r ) R 1 Vr R2). Aici r este tuplu al noii relații, V este operația logică de adunare „OR”.

trecere

R 3 \u003d R 1 R 2 \u003d ( r | r R 1 ^ r R 2 ), aici ^ este operația de înmulțire logică („ȘI” logic).

diferență

trecere relațiile este o relație care conține un set de tupluri aparținând simultan ambelor relații R1 și R2:

R 3 \u003d R 1 R 2 \u003d ( r | r R 1 ^ r R 2 ), aici ^ este operația de înmulțire logică („ȘI”).

diferență relațiile R1 și R2 este o relație care conține un set de tupluri aparținând lui R1 și care nu aparțin lui R2:

R 5 = R 1 \ R 2 = ( r | r R 1 ^ r R 2 )

Ambreiaj sau concatenare, tupluri cu = și q = .., q m > este un tuplu obținut prin adăugarea valorilor celui de-al doilea la sfârșitul primului. Legătura cu și q este notată ca (c, q).

(c, q) =<с 1 с 2 , ... , с n , q 1 , q 2 , .... q m >

Aici n este numărul de elemente din primul tuplu c, m este numărul de elemente din al doilea tuplu q.

Toate operațiunile anterioare nu au modificat gradul sau aritatea relațiilor - aceasta rezultă din definiția echivalenței schemelor de relații. Operația cu produsul cartezian modifică gradul relației rezultate.

Produsul Cartezian Extins relațiile R, gradul n cu schema S R1 = (A 1, A 2 ..., A n) și relațiile R 2 de gradul m cu schema S R2 = (B 1, B 2, ..., B m ) se numește relația R 3 grade n+m cu schemă

S R3 = (A 1 , A 2 , ... , A n , B 1 , B 2 , ..., B m) conţinând tuplurile obţinute prin concatenarea fiecărui tuplu r din relaţia R 1 cu fiecare tuplu q din relaţia R 2 .

Adică dacă R 1 = ( r ), R 2 = ( q )

R1R2 = ((r, q) | rR1^qR2).

Operații speciale ale algebrei relaționale.

Prima operație specială a algebrei relaționale este selecție orizontală, sau funcționarea filtrului, sau operație de constrângere a relației.

Fie a o expresie booleană compusă din termeni de comparație folosind AND (^), SAU (V), NOT (–) și eventual paranteze. Următoarele sunt permise ca termeni de comparație:

a) termenul A oc a, unde A este numele unui atribut care ia valori din domeniul D; a este o constantă luată din același domeniu D, a D; oc este una dintre operațiile de comparare permise pentru domeniul dat D;

b) termenul A sau B, unde A, B sunt numele unor atribute Q-comparabile, adică atribute care iau valori din același domeniu D.

Atunci rezultatul operației de selecție, sau de filtrare, specificată pe relația R sub forma unei expresii booleene definite pe atributele relației R, este relația R[G], care include acele tupluri din relația originală pentru care condiția de selecție sau filtrare este adevărată:

R = (r | r R ^ G(r) = „Adevărat”)

Următoarea operațiune specială este operatiune de proiectare. Fie R o relație, S R = (A 1 , ... , A n) să fie schema relației R. Notăm cu B submulțimea [Ai]; B ( Аi ) Aici, fie В 1 setul de atribute din ( Ai ) neincluse în В. Dacă В = (A 1 j.A 2 j .....A k j), В 1 = (А 1 j, А 2 j,...,А k j) și r =<а 1 j, а 2 j,...,а k j >, și k j A k ji, apoi r [B], s=< a 1 j, а 2 j, ... , а m , >; a m , A m j

Proiecția relației R pe mulțimea de atribute B, notată cu R[B], este o relație cu o schemă corespunzătoare mulțimii de atribute B S R | b | = B, conținând tupluri obținute din tupluri ale relației inițiale R prin eliminarea din ele a valorilor care nu aparțin atributelor din mulțimea B.

Prin definiția relației, toate tuplurile duplicate sunt eliminate din relația rezultată.

Operația de proiectare, numită uneori și operațiunea de proiectare selecție verticală, vă permite să obțineți doar caracteristicile necesare ale obiectului modelat. Cel mai adesea, operațiunea de proiectare este utilizată ca pas intermediar în operațiunile de selecție orizontală, sau de filtrare. Este utilizat independent în etapa finală a obținerii unui răspuns la o solicitare.

Următoarea operație specială a algebrei relaționale este operația conexiune condiționată.

Spre deosebire de operațiile speciale considerate ale algebrei relaționale: filtrarea și proiecția, care sunt unare, adică sunt efectuate pe o singură relație, operația de îmbinare condiționată este binară, adică două relații sunt inițiale pentru aceasta și una este rezultatul.

Fie R = (r), Q = ( q ) relații inițiale, S R , S Q scheme ale relațiilor R și, respectiv, Q.

S R = (A 1 , A 2 , ... , A k): S Q = (B 1 B 2 , ... , B m), unde A, B, sunt denumirile atributelor din diagramele de relații R și Q, respectiv. În același timp, presupunem că sunt date seturi de atribute A și B

A (Ai), j=1,k; În ( B j ) j=1,m , iar aceste mulțimi constau din atribute Q-comparabile.

Atunci unirea relațiilor R și Q în condiția p va fi o submulțime a produsului cartezian al relațiilor R și Q, ale căror tupluri satisfac condiția p, considerată ca îndeplinirea simultană a condițiilor:

r.A j Q j B i , : i=l,k, unde k este numărul de atribute incluse în seturile A și B, iar Q j este o operație de comparare specifică.

A j Q j В i D i Qi este i-lea predicat de comparație determinat din mulțimea de operații de comparare permise pe domeniul D i.

R [R] Q = (r.q) | (r. q) | r.A Q j q.B j - „Adevărat”, i=l,k)

Ultima operație inclusă în setul de operații de algebră relațională este operația Divizia.

Pentru a defini operația de divizare, luăm în considerare mai întâi conceptul de set de imagini.

Fie R o relație cu schema S R = (A1, A 2 ,..., A k);

Fie А un set de atribute А ( А i ) i=l,k , А 1 – un set de atribute neincluse în setul А.

Intersecția mulțimilor A și A 1 este goală: A A 1 = 0; uniunea multimilor este egala cu multimea tuturor atributelor relatiei initiale: A A 1 = S R .

Atunci setul de imagini ale unui element y al proiecției R[A] este mulțimea unor astfel de elemente y ale proiecției R pentru care concatenarea (x, y) este un tuplu al relației R, adică.

QA(x) = (y | y R ^ (x, y) R) este mulțimea de imagini.

Să definim acum operația Divizia. Fie date două relaţii R şi Т, respectiv, cu scheme: S R = (А 1 , А 2 , ... , A k); ST =-(B1, B2,..., Bm);

A și B sunt seturi de atribute ale acestor relații, de aceeași lungime (fără repetări);

A S R ; În ST . Atributele A 1 sunt atribute din R care nu sunt incluse în mulțimea A.

Intersecția mulțimilor А А 1 = este goală și A А 1 = S R . Proiecțiile R[A] și T[B] sunt compatibile cu unirea, adică au circuite echivalente: S R | A |~ S T [B].

Atunci operația de împărțire asociază relațiile R și T cu relația

Q = RT, ale căror tupluri sunt acele elemente ale proiecției R pentru care T[B] este inclus în setul de imagini construite pentru ele:

RT = (r | r R ^ T[B] (y | y R [A] ^ (r, y) R ) ).

Operația de divizare este convenabilă atunci când este necesară compararea unui anumit set de caracteristici ale atributelor individuale.

    Diverse soluții arhitecturale utilizate în implementarea unui SGBD multi-utilizator. arhitectura centralizata.

Conceptul de bază de date presupunea inițial posibilitatea de a rezolva multe probleme de către mai mulți utilizatori. Cea mai importantă caracteristică SGBD modern este prezența tehnologiei de lucru multi-utilizator. Implementarea diferită a unor astfel de tehnologii în momente diferite a fost asociată atât cu proprietățile de bază ale tehnologiei informatice, cât și cu dezvoltarea software-ului.

arhitectura centralizata. Când se utilizează această tehnologie, baza de date, DBMS și programul de aplicație (aplicația) se află pe același computer (mainframe sau computer personal) (Fig. 1). Pentru această metodă de organizare, suportul de rețea nu este necesar și totul se reduce la munca offline. Lucrarea este structurată după cum urmează:

Baza de date sub forma unui set de fișiere se află pe hard diskul computerului.

Un SGBD și o aplicație de bază de date sunt instalate pe același computer.

Utilizatorul lansează aplicația. Folosind interfața de utilizator furnizată de aplicație, inițiază o solicitare către baza de date pentru a prelua/actualiza informații.

Toate apelurile către baza de date trec prin SGBD, care încapsulează în sine toate informațiile despre structura fizică a bazei de date.

SGBD inițiază accesul la date, asigurând executarea solicitărilor utilizatorilor.

Orez. 1. Arhitectură centralizată

O arhitectură similară a fost folosită în primele versiuni ale DB2, Oracle. Principalul dezavantaj al acestui model este scăderea bruscă a performanței pe măsură ce numărul utilizatorilor crește.

    Tehnologie cu rețea și server de fișiere(arhitectura serverului de fișiere). Tehnologia client-server. Arhitectură client-server pe trei niveluri (multi-nivel).

Creșterea complexității sarcinilor, apariția computerelor personale și locale retele de calculatoare au fost premisele apariţiei unei noi arhitecturi server de fișiere. Această arhitectură a bazei de date acces la retea presupune numirea unuia dintre calculatoarele din rețea ca server dedicat care va stoca fișierele bazei de date. În funcție de solicitările utilizatorilor, fișierele cu server de fișiere transmise la stațiile de lucru ale utilizatorului, unde se realizează cea mai mare parte a prelucrării datelor. Serverul central îndeplinește practic doar rolul de stocare a fișierelor, fără a participa la prelucrarea datelor în sine (Fig. 2.).

Orez. 2. Arhitectura "file-server".

Lucrarea este structurată după cum urmează:

Baza de date sub forma unui set de fișiere se află pe hard diskul unui computer dedicat (server de fișiere).

Există o rețea locală formată din calculatoare client, pe fiecare dintre acestea fiind instalate un SGBD și o aplicație pentru lucrul cu baza de date.

Pe fiecare dintre computerele client, utilizatorii au capacitatea de a rula aplicația. Folosind interfața de utilizator furnizată de aplicație, inițiază o solicitare către baza de date pentru a prelua/actualiza informații.

Toate apelurile către baza de date trec prin SGBD, care încapsulează în sine toate informațiile despre structura fizică a bazei de date aflate pe serverul de fișiere.

SGBD inițiază apeluri la datele aflate pe serverul de fișiere, în urma cărora o parte din fișierele bazei de date sunt copiate pe computerul client și procesate, ceea ce asigură executarea solicitărilor utilizatorului (operațiile necesare sunt efectuate asupra datelor).

Dacă este necesar, datele sunt trimise înapoi la serverul de fișiere pentru a actualiza baza de date.

SGBD returnează rezultatul în aplicație.

Aplicația, folosind interfața cu utilizatorul, afișează rezultatul execuției interogării.

În cadrul arhitecturii server de fișiere„Au fost realizate primele versiuni ale așa-numitelor SGBD desktop populare, cum ar fi dBase și Microsoft Access. Principalele dezavantaje ale acestei arhitecturi sunt:

Când mulți utilizatori accesează aceleași date în același timp, performanța scade brusc.

Resursele computerului client și ale rețelei nu sunt consumate optim. Ca urmare, traficul de rețea crește și cerințele pentru capabilitățile hardware ale computerului utilizatorului cresc.

Este utilizată o abordare de navigație axată pe lucrul cu înregistrări individuale.

Nivel scăzut de securitate - furt și vătămare, efectuând modificări eronate.

Un aparat de tranzacționare subdezvoltat servește ca sursă de erori în ceea ce privește încălcarea integrității semantice și referențiale a informațiilor în timpul efectuării modificărilor.

Tehnologia client-server. Utilizarea tehnologiei" client server„ presupune prezența unui anumit număr de calculatoare conectate într-o rețea, dintre care unul realizează funcții speciale de control (este un server de rețea).

arhitectură" client server" separă funcțiile aplicației utilizator (client) și ale serverului. Aplicația client formează o cerere către serverul unde se află baza de date în limbajul structural interogări SQL. Serverul de la distanță primește cererea și o trimite către serverul bazei de date SQL. SQL Server este un program special care gestionează o bază de date la distanță. Serverul SQL asigură executarea interogării în baza de date, formarea rezultatului interogării și emiterea acestuia către aplicația client. Calculatorul client trimite doar o cerere către baza de date server și primește rezultatul, după care îl interpretează în modul necesar și îl prezintă utilizatorului. Deoarece rezultatul solicitării este trimis către aplicația client, doar datele de care clientul are nevoie „călătoresc” prin rețea. Ca rezultat, sarcina în rețea este redusă. Deoarece interogarea este executată în același loc în care sunt stocate datele (pe server), nu este nevoie să trimiteți pachete mari de date. Serverul SQL optimizează interogarea primită în așa fel încât să fie executată în timp minim cu cea mai mică suprasarcină. Arhitectura sistemului este prezentată în fig. 3.

Toate acestea măresc performanța sistemului și reduc timpul de așteptare pentru rezultatul interogării. Atunci când interogările sunt executate de către server, gradul de securitate a datelor este semnificativ crescut, deoarece regulile de integritate a datelor sunt definite în baza de date de pe server și sunt aceleași pentru toate aplicațiile care utilizează această bază de date. Astfel, este exclusă posibilitatea definirii unor reguli conflictuale pentru menținerea integrității.

Orez. 3. Arhitectura „client – ​​server”.

Baza de date sub forma unui set de fișiere se află pe hard disk-ul unui computer dedicat (server de rețea).

Există o rețea locală formată din computere client, fiecare dintre ele având o aplicație client pentru lucrul cu baza de date.

Pe fiecare dintre computerele client, utilizatorii au capacitatea de a rula aplicația. Folosind interfața cu utilizatorul oferită de aplicație, inițiază un apel către DBMS situat pe server pentru a prelua/actualiza informații. Pentru comunicare, este folosit un limbaj special de interogare SQL, de ex. numai textul cererii este transmis prin rețea de la client la server.

SGBD-ul încapsulează în sine toate informațiile despre structura fizică a bazei de date situate pe server.

SGBD inițiază apeluri la datele aflate pe server, în urma cărora toată prelucrarea datelor este efectuată pe server și numai rezultatul interogării este copiat pe computerul client. Astfel, SGBD returnează rezultatul în aplicație.

Aplicația, folosind interfața cu utilizatorul, afișează rezultatul execuției interogării.

Functiile aplicatiei client: trimiterea cererilor; interpretarea cererilor; prezentarea rezultatelor.

Funcțiile părții server: primirea cererilor; furnizarea unui sistem de securitate și control acces; managementul integrității bazei de date; implementarea stabilității modului de operare multi-utilizator.

In arhitectura" client server Așa-numitele SGBD „industriale” funcționează. Se numesc industrial deoarece este SGBD-ul din această clasă care poate asigura funcționarea IS-ului de scară a unei întreprinderi mijlocii și mari, organizație, bancă (MS SQL Server, Oracle, InterBase etc.).

Serverul SQL este întreținut de un angajat individual sau de un grup de angajați. Aceștia gestionează caracteristicile fizice ale bazei de date, efectuează optimizarea, reglarea și redefinirea diferitelor componente ale bazei de date, creează baze de date noi, modifică cele existente etc.

Luați în considerare principalele avantaje ale acestei arhitecturi în comparație cu arhitectura „server de fișiere”:

Trafic de rețea redus semnificativ.

Complexitatea aplicațiilor client este redusă (cea mai mare parte a sarcinii cade pe partea de server) și, în consecință, cerințele pentru capacitățile hardware ale computerelor client sunt reduse.

Prezența unui instrument software special - SQL-server - duce la faptul că o parte semnificativă a sarcinilor de proiectare și programare a fost deja rezolvată.

Îmbunătățește semnificativ integritatea și securitatea bazei de date.

Dezavantajele includ costuri financiare mai mari pentru hardware și software, precum și anumite dificultăți în actualizarea în timp util a aplicațiilor client pe toate computerele client.

Arhitectură „client-server” pe trei niveluri (multi-nivel).Trei legături(in unele cazuri multilink)arhitectură reprezintă o nouă îmbunătățire a tehnologiei” client server". Luând în considerare arhitectura " client server„, putem concluziona că este un 2-tier: primul link este aplicația client, al doilea link este serverul bazei de date + baza de date în sine. arhitectura pe trei niveluri toată logica de afaceri (logica de afaceri) inclusă anterior în aplicații client, se evidențiază într-un link separat, numit server de aplicații. În acest caz, rămâne doar interfața cu utilizatorul pentru aplicațiile client. De exemplu, aplicația client din exemplul de mai sus este un browser Web. Acum, când logica de afaceri se schimbă, nu mai este nevoie să schimbați aplicațiile client și să le actualizați pentru toți utilizatorii. În plus, cerințele pentru echipamentele utilizatorului sunt reduse cât mai mult posibil.

Prin urmare, lucrarea este structurată după cum urmează:

DB sub forma unui set de fișiere de pe hard diskul unui computer dedicat (server de rețea).

SGBD-ul este, de asemenea, localizat pe serverul de rețea.

Există un server de aplicații special dedicat care găzduiește software de analiză de afaceri (logica de afaceri).

Există multe computere client, fiecare dintre ele având așa-numitul „ client slab" este aplicația client care implementează interfața cu utilizatorul.

Pe fiecare dintre computerele client, utilizatorii au posibilitatea de a rula o aplicație - un client subțire. Folosind interfața de utilizator furnizată de aplicație, inițiază un apel către software-ul de business intelligence situat pe serverul de aplicații.

Serverul de aplicații analizează cerințele utilizatorului și generează interogări către baza de date. Folosit pentru comunicare limbaj special Interogări SQL, de ex. numai textul cererii este transmis prin rețea de la serverul de aplicații la serverul de baze de date.

SGBD-ul încapsulează în sine toate informațiile despre structura fizică a bazei de date.

SGBD inițiază apeluri către datele aflate pe server, în urma cărora rezultatul interogării este copiat pe serverul de aplicații.

Serverul de aplicații returnează rezultatul aplicației client (utilizatorului).

Aplicația, folosind interfața cu utilizatorul, afișează rezultatul execuției interogării.

    Conceptul de integritate a bazei de date. Integritatea logică și fizică a bazei de date. Clasificarea constrângerilor de integritate.

Asigurarea integrității datelor este cea mai importantă sarcină în proiectarea și operarea sistemelor de procesare a datelor (DPS). Problema integrității este să ne asigurăm... că datele din baza de date sunt corecte în orice moment”. Integritate - relevanța și consistența informațiilor, securitatea acesteia împotriva distrugerii și modificărilor neautorizate.

Integritatea este unul dintre aspectele securității informațiilor împreună cu accesibilitatea - capacitatea de a obține serviciul de informații solicitat la un cost acceptabil, iar confidențialitatea - protecție împotriva citirii neautorizate.

Integritatea datelor este o proprietate inerentă a unei baze de date și asigurarea acesteia este cea mai importantă sarcină a proiectării BnD. Integritatea datelor este descrisă de un set de clauze speciale numite constrângeri de integritate. Constrângerile de integritate sunt afirmații despre valorile valide ale informațiilor individuale și relațiile dintre acestea. Aceste restricții sunt determinate în majoritatea cazurilor de caracteristicile domeniului subiectului. La efectuarea operațiunilor pe baza de date, constrângerile de integritate sunt verificate. Constrângerile de integritate pot fi clasificate în funcție de caracteristici diferite(orez.).

Integritate logică - starea bazei de date, caracterizată prin absența încălcării constrângerilor de integritate inerente modelului logic de date (adică constrângeri implicite), și constrângerilor explicite specificate în mod declarativ sau procedural. Integritatea fizică absența încălcării specificațiilor schemei de stocare, precum și distrugerea fizică a datelor de pe suporturi.

Mecanismul de declanșare este, de asemenea, utilizat pentru a controla integritatea bazei de date. Trigger este o acțiune care este activată atunci când are loc un eveniment specificat (inserare, ștergere, actualizare a înregistrării). Declanșatoarele sunt specificate în schema bazei de date. Un concept mai larg în raport cu declanșatorul este conceptul procedură stocată. Procedurile stocate descriu părți din logica aplicației care sunt stocate și executate pe server, ceea ce îmbunătățește performanța.

Integritatea datelor- o proprietate integrală a bazei de date, iar furnizarea acesteia este cea mai importantă sarcină de proiectare a bazei de date. Integritatea datelor este descrisă de un set de clauze speciale numite constrângeri de integritate. Constrângerile de integritate sunt afirmații despre valorile valide ale informațiilor individuale și relațiile dintre acestea. Aceste restricții sunt determinate în majoritatea cazurilor de caracteristicile domeniului subiectului. La efectuarea operațiunilor pe baza de date, constrângerile de integritate sunt verificate. Constrângeri de integritate pot fi clasificate după diferite criterii (fig. mai jos).

Distingeți între integritatea logică și fizică a bazei de date. Integritate logică– starea bazei de date, caracterizată prin absența încălcării constrângerilor de integritate inerente model logic date (adică constrângeri implicite) și constrângeri explicite specificate într-un mod declarativ sau procedural. Integritatea fizică– fără încălcări ale specificațiilor schemei de stocare, precum și distrugerea fizică a datelor de pe suport.

9. Problema integrității bazei de date. Tranzacții și încuietori. Sincronizarea muncii utilizatorului.

Integritatea este unul dintre aspectele securității informațiilor împreună cu accesibilitatea - capacitatea de a obține serviciul de informații solicitat la un cost acceptabil, iar confidențialitatea - protecție împotriva citirii neautorizate.

Asigurarea integrității datelor este cea mai importantă sarcină în proiectarea și operarea sistemelor de procesare a datelor (DPS). Problema integrității este să ne asigurăm că datele din baza de date sunt corecte în orice moment”. Integritate - relevanța și consistența informațiilor, securitatea acesteia împotriva distrugerii și modificărilor neautorizate.

Pentru a controla integritatea bazei de date este, de asemenea, utilizat mecanism de declanșare. Trigger este o acțiune care este activată atunci când are loc un eveniment specificat (inserare, ștergere, actualizare a înregistrării). Declanșatoarele sunt specificate în schema bazei de date. Un concept mai larg în raport cu declanșatorul este conceptul procedură stocată. Procedurile stocate descriu părți din logica aplicației care sunt stocate și executate pe server, ceea ce îmbunătățește performanța.

tranzacții. O tranzacție este un set complet de acțiuni dintr-o bază de date care o transferă dintr-o stare integrală logic la alta. Tranzacțiile sunt supuse unui set de cerințe cunoscute sub numele de ACID (atomicitate, consistență, izolare, durabilitate). Aceste cerințe rezultă din definiția unei tranzacții.

    atomicitate. O tranzacție este un set de acțiuni finalizate. Sistemul asigură executarea acestora după principiul „totul sau nimic” - fie se efectuează toate acțiunile, apoi tranzacția este „fixată”; sau, dacă nu este posibilă efectuarea tuturor acțiunilor, de exemplu, în cazul unor eșecuri, tranzacția este „retrocedată” și baza de date rămâne în starea inițială.

    Consecvență. Se presupune că, în urma tranzacției, sistemul trece de la o stare corectă la alta.

    izolare. În timp ce o tranzacție este în curs, datele pot fi temporar într-o stare inconsecventă. Astfel de date nu ar trebui să fie vizibile pentru alte tranzacții până când modificările sunt finalizate (adică până când ponderea modificării este comisă în mod oficial).

    Durabilitate. Dacă o tranzacție este efectuată, atunci rezultatele acesteia trebuie să fie durabile. Stările tuturor obiectelor vor fi salvate chiar și în cazul defecțiunilor hardware sau ale sistemului.

Încuietori. Cei mai populari algoritmi de control al concurenței se bazează pe mecanismul de blocare. Blocarea înseamnă a interzice anumite operațiuni asupra datelor dacă acestea sunt procesate de un alt utilizator. Într-o astfel de schemă, ori de câte ori o tranzacție încearcă să acceseze o unitate de date, o blocare este plasată pe acea unitate.

Blocările sunt aplicate conform regulilor de compatibilitate cu blocarea care exclud conflictele citire-scrie, scriere-citireȘi înregistrare-înregistrare.

Serializarea tranzacțiilor este garantată dacă blocările legate de executarea concomitentă a tranzacțiilor îndeplinesc următoarea regulă: „Nici o blocare în numele vreunei tranzacții nu trebuie achiziționată până când nu a fost eliberată anterior. setați blocarea". Această regulă este cunoscută ca blocare în două faze , întrucât tranzacția trece prin prima fază creştere, când dobândește încuietorile și apoi o fază de contracție când încuietorile sunt eliberate. Blocarea se poate face automat, si poate fi gestionat de utilizator.

În funcție de unitățile de informații de blocare, se pot distinge următoarele: niveluri de blocare : bază de date, colecție de tabele aferente, tabel, colecție de înregistrări aferente,înregistrare, câmp. Obiectele de blocare pot fi o pagină, un grup de pagini sau o zonă de bază de date.

Unele sisteme oferă dinamic o schemă de blocare în care tranzacția blochează mai întâi o informație mare, cum ar fi o pagină.

Distinge pesimist Șioptimist blocare. Blocările pesimiste împiedică alte tranzacții să acceseze date în timp ce o altă tranzacție lucrează deja la ea. Blocările optimiste permit tranzacțiilor să ruleze în paralel, să monitorizeze conflictele și să se asigure că acestea sunt rezolvate.

Sincronizarea muncii utilizatorului.Replicare - o tehnologie utilizată în RDB-uri (baze de date distribuite), care asigură suportul de copii ale întregii baze de date sau ale fragmentelor acesteia în mai multe noduri de rețea. Este apelată o copie a bazei de date care este membru al unui set de alte copii care pot fi sincronizate între ele replica. Copiile bazei de date sunt de obicei aproape de locurile în care sunt utilizate informațiile. Ca sinonim pentru conceptul de „replicare” este folosit termenul „replicare”. Procesul de actualizare a replicilor, în care înregistrările actualizate și alte obiecte sunt transferate și datele duplicate sunt reconciliate, se numeștesincronizare . Schimbul de date între replici poate fi fie unidirecțional, fie bidirecțional. În plus, este posibilă sincronizarea replicilor sub controlul unui sincronizator. Spre deosebire de sistemele native distribuite, în care un protocol de comitere în două faze este implementat atunci când se execută interogări distribuite, sistemele cu baze de date replicate utilizează de obicei instrumente de replicare asincronă.

În prezent, multe SGBD bine-cunoscute oferă utilizatorilor capabilități de replicare. Unele sisteme folosesc metafore din publicare (editor, publicație, abonat). Se numește colecția de date care pot fi replicate publicare.

Când dezvoltați aplicații web moderne, este dificil să subestimați beneficiile utilizării sistemelor de control al versiunilor. În ceea ce privește fișierele produsului în curs de dezvoltare, putem urmări orice etape de producție în orice moment, începând de la prima revizuire. Instrumentele care ne ajută în acest sens sunt popularizate astăzi, sunt luate în considerare ton bunîn timpul dezvoltării și, în multe cazuri, producția de succes fără utilizarea lor este imposibilă în principiu. Și ce oportunități avem atunci când devine necesar să urmărim modificările nu în fișiere, ci în bazele de date de proiecte? Sub tăietură, voi împărtăși informații despre fondurilor existente pe care a trebuit să mă uit.

1. PHP SQLDIFF, a.k.a. SQLDiff

Script PHP de văzut diferențe complete(atât în ​​structură, cât și în date) între orice tabele din două baze de date. Instrumentul nu conține niciunul sincronizare automată structura sau datele - sunt furnizate doar informatii vizuale. Un alt dezavantaj semnificativ este capacitatea de a se conecta doar la baze de date care pot fi accesate direct (nu printr-un tunel ssh). Viteză de rulare lentă volume mari date (lucrând printr-un modul pear, care nu strălucește nici cu noutate, nici cu rapiditate). Consider acest script foarte util pentru dezvoltator în cazurile în care înțelegerea și prezentare vizuală diferente intre mese diferite- Are interfață ușor de utilizat, instalare rapida. Voi caracteriza mai degrabă ca un utilitar de buzunar util pentru primire rapidăînțelegerea desincronizării tabelelor, care în teorie ar trebui să fie identice, mai degrabă decât ca un instrument serios care poate fi folosit pentru automatizarea proceselor de sincronizare.

2.LIQUIBAZA

Un migrator de structuri de baze de date convenabil, multifuncțional și ușor de utilizat în java. Văd acest lucru ca un plus pentru mine dacă este folosit împreună cu Jenkins.
Exemplu (host1 - server pentru a copia structura bazei de date; host2 - server pentru a transfera structura de la host1 la):

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=mysql-connector-java-5.1.xx-bin.jar --logFile=db.ExampleChangelog.xml --url="jdbc: mysql://host2" --defaultSchemaName=db_name --username=username --password="parola" --referenceUrl=jdbc:mysql://host1 --referenceUsername=username --referencePassword="parola" diffChangeLog > ChangeSet. xml

Formează un set de modificări în format xml, a cărui migrare ulterioară aduce structura bazei de date de pe host2 la o stare identică cu host1.

Rularea migrației:

Java -jar liquibase.jar --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=ChangeSet.xml --url="jdbc:mysql://host2" --username =utilizator --password="parolă" migrează

După migrare, este logic să verificați din nou dacă setul de modificări este gol.
Nu există doar sincronizarea tabelelor și câmpurilor, ci și a indecșilor și a cheilor. Nu sunt sigur de procedurile stocate - nu am testat asta.

Changeset poate fi format și în alte formate - în sql, în json (nu doar în xml). Formarea setului de modificări „și în sql va fi utilă în cazurile în care mijloacele unui alt utilitar sunt folosite pentru migrare.

3. schemasync

Un instrument pentru sincronizarea structurii bazei de date. Pentru a funcționa, aveți nevoie de python și de interfața corespunzătoare pentru mysql.
Din diferențele semnificative cu liquibase:
- schemasync creează nu numai un set de modificări, ci și un fișier care vă permite să anulați modificările (cel mai important și mai valoros avantaj, deși, în opinia mea, nu elimină necesitatea de a face o copie de rezervă înainte de sincronizare)
- liquibase vă permite nu numai să obțineți un set de modificări, ci și să începeți imediat migrarea folosind utilitarul în sine. Poate nu o caracteristică ucigașă, dar totuși convenabilă și utilă

schemasync funcționează numai cu sql - fără xml intermediar și analogi - văd pentru mine atât avantaje, cât și dezavantaje în acest sens.
Sintaxă foarte concisă, setări minime. Vă permite să nu sincronizați comentariile și să auto-incrementați (configurabil) - un plus absolut.

Exemplu de utilizare:

Schemasync mysql://user: [email protected]:3306/dev_db mysql://user: [email protected]:3306/production_db

Când utilizați un computer Inteligența in sistemele cu arhitectura distribuita este necesara sincronizarea bazelor de date ale Serverelor si URMA. Sincronizarea bazei de date vă permite să stocați date atât central (pe un Server sau URMA), cât și distribuite (replicarea datelor din bazele de date ale diferitelor Servere și URMA ale sistemului de supraveghere video). Sincronizarea bazei de date oferă munca paralela cu baze de date de Servere și URMA și actualizare automata când se schimbă.

Baza de date implicită pentru PC Inteligența pe Servere și URMA nu sunt sincronizate între ele. De obicei PC Inteligența este configurat în așa fel încât toate bazele de date să fie sincronizate cu o singură bază de date centralizată găzduită pe Serverul de Administrare.

Notă.

În cazul în care una sau mai multe baze de date sunt stocate în formatul MS Access, este necesar să convertiți bazele de date în formatul de server MS SQL înainte de a configura sincronizarea.

Pentru a configura sincronizarea bazei de date Configurare pachete software Inteligența cu baza de date a serverului de administrare (sau altă bază de date), trebuie să efectuați următorii pași:

  1. Verificați dacă software-ul MS SQL Server rulează.
  2. Rulați utilitarul idb.exe situat în rădăcina directorului de instalare a computerului Inteligența(de exemplu, C:\Program Files (x86)\Intellect). Va fi afișată caseta de dialog a utilitarului idb.exe.
  3. Din listă Selectați sursa de date: selectați elementul Sursă sincronizată.
  4. Caseta de bifat Utilizare.
  5. Apasa butonul Ton.
  6. Pe ecran va apărea o casetă de dialog. Proprietăți legături de date. La fereastră Proprietăți legături de date trebuie să mergi la filă Furnizor de date.
  7. Din listă Furnizorii OLE DB elementul trebuie selectat Furnizor Microsoft OLE DB pentru SQL Server.
  8. Apasa butonul Mai departe.
  9. După apăsarea butonului Mai departe va comuta automat la fila Conexiune.
  10. În linie 1. Selectați sau introduceți un nume de server:În această fereastră, trebuie să selectați din listă sau să introduceți manual numele serverului MS SQL care stochează baza de date cu care doriți să o sincronizați pe cea curentă.
  11. In grup 2. Pentru a intra pe server utilizați: trebuie să specificați tipul și să specificați parametrii de autentificare pentru conectarea la serverul MS SQL. Autentificarea pe MS SQL Server se realizează printr-un cont de utilizator autorizat în sistemul de operare Windows, sau prin nume de utilizator (login) și parolă, care protejează conexiunea la MS SQL Server.
    Metoda și parametrii utilizați pentru autentificare pe serverul MS SQL sunt setați în timpul instalării serverului MS SQL.
    În funcție de metoda de autentificare pe care doriți să o utilizați pentru a vă conecta la MS SQL Server, trebuie să specificați următorii parametri:
    1. În cazul în care autentificarea pe serverul MS SQL este efectuată folosind un cont de utilizator în sistemul de operare Windows, trebuie să setați comutatorul în poziția contabilitate Informații Windows NT. În același timp, este necesar ca în sistemul de operare Windows pe computerul pe care este instalat MS SQL Server și este stocată baza de date cu care doriți să configurați sincronizarea, să fie înregistrat Cont, conform căruia utilizatorul este autorizat în prezent în sistemul de operare Windows pe computerul de pe care se configurează sincronizarea.
    2. În cazul în care autentificarea pe serverul MS SQL este efectuată prin nume de utilizator (login) și parolă, trebuie să efectuați următorii pași:
      1. Setați comutatorul în poziție următorul nume de utilizator și parolă:.
      2. În câmp Utilizator: introduceți numele de utilizator (login) pentru a vă conecta la serverul MS SQL.
      3. În cazul în care accesul la serverul MS SQL protectie cu parola, trebuie să debifați Parola goală iar în câmp Parola introduceți o parolă pentru a accesa baza de date.
  12. Apasa butonul Verificați conexiunea.
  13. După conectarea cu succes la serverul MS SQL, va fi afișată o fereastră cu un mesaj Testul de conectare a fost finalizat.

    Trebuie să apăsați butonul Bineîn caseta de mesaj, determinând închiderea automată a ferestrei.
  14. Dacă numele serverului MS SQL și/sau parametrii de autentificare utilizați pentru conectarea la serverul MS SQL au fost specificati incorect, pe ecran va fi afișat un mesaj corespunzător.

    Pentru a închide fereastra de mesaj, faceți clic pe butonul. Bine. Apoi, trebuie să modificați datele introduse și să verificați din nou conexiunea la serverul MS SQL.
  15. Din listă Selectați o bază de date pe server selectați numele bazei de date cu care doriți să o sincronizați pe cea curentă.
  16. Apasa butonul Bineîn caseta de dialog Proprietățile legăturii de date. Ca urmare a executării această acțiune fereastra va fi închisă.
  17. Apasa butonul Bine situat în colțul din dreapta jos al ferestrei utilitarului idb.exe.

Aceasta completează configurarea sincronizării bazei de date.

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva