Database server

Databaseserveren (DB) udfører vedligeholdelse og styring af databasen og er ansvarlig for dataenes integritet og sikkerhed, og leverer også I/O-operationer, når klienten tilgår information.

Klient - server- arkitekturen består af klienter og servere. Hovedideen er at placere servere på kraftfulde maskiner, og for applikationer, der bruger DBMS-sprogkomponenter til at give adgang til dem fra mindre kraftfulde klientmaskiner via eksterne grænseflader.

SQL-sproget

De fleste DBMS'er bruger SQL (Structured Query Language), fordi det er praktisk til at beskrive logiske delmængder af en database.

Formål SQL:

En af nøglefunktionerne ved SQL-sproget er, at det danner forespørgsler, der beskriver, hvilken information der skal hentes fra databasen, og programmet bestemmer selv, hvordan dette problem kan løses.

Lagrede og vedhæftede procedurer

Der er udvidede versioner af SQL-sproget, der understøtter udvidelser såsom lagrede og udvidede procedurer , samt programflowkontrol gennem forgrening og looping.

Lagrede procedurer  er prækompilerede SQL-sætninger, der er gemt på en databaseserver, der bruger SQL. Klienten kører den lagrede procedure med kommandoen EXECUTE<procedurenavn>. Der sendes således kun to ord over netværket. Da denne procedure allerede er kompileret og optimeret, behøver serveren ikke bruge tid på at kompilere og optimere.

Hyppigt udførte forespørgsler bruges normalt som lagrede procedurer.

Vedhæftede procedurer ( triggere ) ligner lagrede procedurer og udføres som svar på hændelser, der opstår i databasen. Når en vedhæftet procedure er knyttet til nogle SQL-applikationer, kører denne klausul altid en hel række kommandoer, der er en del af proceduren. En vedhæftet procedure udfører automatisk en eller flere SQL-sætninger, hver gang den udfører en INSERT-, UPDATE- eller DELETE-sætning.

Den vigtigste anvendelse af vedhæftede procedurer er at håndhæve referentiel integritet.

Serverdriftsmiljø

Eksempler på databaseservere: SQL SERVER (Microsoft), SQL BASE SERVER, Oracle SERVER (Oracle Corporation), IBM DB2, Informix Hver databaseserver kan køre på bestemte typer computere og netværk. Serveroperativsystemer kan være MSDOS, OS/2, Xenix, Unix, Dec VMS/ Brugerarbejdsstationer kører normalt MSDOS, OS/2, Xenix, Unix.

Der er muligheder for blandet brug af forskellige styresystemer. De fleste SQL-servere kan gemme beskrivelsen af ​​databasen i en systemmappe, der normalt er tilgængelig for brugere. SQL-forespørgsler bruges til at få adgang til denne mappe. Relationelle DBMS'er kan bruge de oplysninger, der er gemt i systemkataloget, til at optimere SQL-forespørgsler.

Referenceintegritet af relationelle databaser

De fleste SQL-servere understøtter relationsdatabasers referenceintegritet, som består af separate tabeller, der kan sammenføjes baseret på delt information.

Overvej følgende eksempel: en database indeholder en kundetabel og en ordretabel, der er forbundet med et kundenummerfelt indeholdt i begge tabeller. Da der kan være mere end én ordre fra samme kunde, er tabelforholdet én-til-mange. Når tabellerne er sammenføjet, er kundetabellen den overordnede tabel, og ordretabellen er den underordnede tabel. Hvis en overordnet post slettes, men dens tilsvarende underordnede poster ikke er, siges de underordnede poster at være forældreløse.

Referenceintegritet betyder, at ingen forældreløse poster er tilladt i nogen tabel.

En post kan gøres forældreløs på tre måder:

  1. forældreindtastning slettet;
  2. forældreregistret ændres på en sådan måde, at forholdet mellem "forælderen" og "børnene" går tabt;
  3. en underordnet post indtastes uden en tilsvarende overordnet post.

Referenceintegritet kan opretholdes på flere måder:

  1. Gennem nøgler gemt i databasetabeller (overordnede tabeller indeholder primærnøgler, som er kombinationer af fremmednøgler, der kan findes inde i hver af de underordnede tabeller).
  2. Brugen af ​​vedhæftede procedurer er proceduremæssig referentiel integritet. Vedhæftede filer håndhæver referentiel integritet ved automatisk at udføre SQL-sætninger, hver gang en af ​​UPDATE/INSERT- eller DELETE-sætningerne stødes på (enten forhindrer sletning af den overordnede post eller sletter alle underordnede poster).

Transaktioner og databaseintegritet

En transaktion  er et sæt af logisk indbyrdes forbundne forespørgsler rettet mod den koordinerede ændring af et bestemt sæt rækker i en eller flere databasetabeller. Typisk opdaterer transaktioner flere tabeller og indekser knyttet til disse tabeller. For at sikre opdateringssynkronisering og dataintegritet bruger servere typisk en alt-eller-intet-tilgang, hvilket betyder, at enten alle eller ingen af ​​opdateringerne foretages til databasen. Til dette formål føres en transaktionslog, som registrerer oplysninger om alle ønskede ændringer. Denne log giver mulighed for at "rulle tilbage" forpligtede transaktioner og gendanne den tidligere tilstand af databasen. Dette bliver vigtigt, når ændringerne til databasen, der er forudsat i en transaktion, kun er delvist implementeret, for eksempel på grund af en hardwarefejl.

Læsekonsistens

Typisk for flerbruger DBMS. For at implementere det har servere midler til automatisk blokering.

Niveauer, hvor bordet er låst under opdateringer:

Deadlocks

Databaseservere skal have et middel til at registrere dead lock-status. Når denne situation opstår, afbrydes udførelsen af ​​en af ​​transaktionerne, hvilket bringer den anden transaktion ud af tilstanden af ​​evig ventetid. Afbrudt transaktion, efter at muligheden for dens blokering er udelukket, udføres den igen.

Arbejdsoptimeringsskemaer i SQL-sprog

Målet med optimering er at give det hurtigst mulige svar på en forespørgsel med et minimum antal databaseadgange.

Der er to typer optimering i SQL-sprog

Syntaksoptimering udnytter det faktum, at i SQL afhænger ydeevnen af ​​en forespørgsel af, hvordan den er formuleret. I dette tilfælde afhænger optimering af programmørens kvalifikationer.

Omkostningsoptimering indsamler information om databasen, såsom antallet af tabeller, antallet af rækker, typen af ​​data i hver række, om indeksering er tilgængelig for en bestemt kolonne osv. Optimeringsværktøjet bruger disse oplysninger til at udvikle de bedste forespørgselsbehandlingsplan.

Fordele ved omkostningsoptimeringsmetoden: opgaven med at bestemme den bedste måde at udføre en forespørgsel på flyttes fra brugeren til databaseprocessoren.

Ulempe: At finde den optimale metode i sig selv kan tage lang tid.