close

Microsoft SQLServer

Gå til navigasjon Gå til søk
Microsoft SQLServer
Del av relasjonsdatabasestyringssystem
Microsoft SQL Server 1 11 Network Enhancements.png
Generell informasjon
programtype relasjonsdatabase for styringssystem
utvikler Microsoft
Første utgivelse 24. april 1989
Tillatelse Microsoft EULA
Teknisk informasjon
Planlagt inn C , C++
lesbare filer
redigerbare filer
Lenker

Microsoft SQL Server er et relasjonsdatabaseadministrasjonssystem utviklet av Microsoft .

Utviklingsspråket som brukes (ved kommandolinje eller gjennom det grafiske grensesnittet til Management Studio) er Transact-SQL (TSQL), en implementering av ANSI-standarden til SQL-språket, brukt til å manipulere og hente data ( DML ), lage tabeller og definere forhold mellom dem ( DDL ).

Blant de mest fremtredende konkurrentene til SQL Server er: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server har tradisjonelt bare vært tilgjengelig for Microsoft Windows - operativsystemer , men fra 2016 er den tilgjengelig for GNU/Linux , [ 2 ] [ 3 ] og fra og med 2017 for Docker også. [ 4 ]

Den kan konfigureres til å bruke flere instanser på samme fysiske server, den første installasjonen bærer vanligvis servernavnet, og de følgende - spesifikke navn (med bindestrek mellom servernavnet og installasjonsnavnet).

Versjoner

Versjonshistorikk [ 5 ]
Versjon År versjonsnavn nøkkelnavn
1.0
( OS/2 )
1989 SQLServer 1-0 SQL
4.21
( WinNT )
1993 SQLServer 4.21 OPPSETT
6.0 nitten nitti fem SQLServer 6.0 SQL95
6.5 nitten nittiseks SQLServer 6.5 Hydra
7.0 1998 SQL Server 7.0 [ 6 ] sfinks
- 1999 SQL Server 7.0
OLAP- verktøy
Rett
8.0 2000 SQL Server 2000 [ 7 ] Shiloh
8.0 2003 SQL Server 2000
64-biters utgave
Frihet
9,0 2005 SQL Server 2005 [ 8 ] Yukon
10,0 2008 SQL Server 2008 [ 9 ] kathmai
10.25 2010 SQL-Azure DB CloudDatabase
10.50 2010 SQL Server 2008 R2 [ 10 ] Kilimanjaro
11.0 2012 SQL Server 2012 [ 11 ] Denali
12.0 2015 SQL Server 2014 [ 12 ] SQL14 (tidligere Hekaton)
13.0 2016 SQLServer 2016 SQL16
14.0 2017 SQLServer 2017 vNext 2017
15,0 2019 SQLServer 2019 Daphne

Den originale SQL Server -kildekoden som ble brukt i versjoner før versjon 7.0 ville blitt kjøpt fra Sybase , men ble oppdatert i versjon 7.0 og 2000, og skrevet om i versjon 2005. Vanligvis utgis en ny versjon hvert 2.-3. år og mellom disse utgivelsene foreslås oppdateringspakker med forbedringer og feilrettinger , og hurtigreparasjoner for presserende problemer i sikkerhetssystemet eller kritiske feil.

Tilgjengelighet

Microsoft SQL Server selges som en lisens. Imidlertid trenger brukere som ønsker å bruke SQL Server, som handler om programmet, som å be om og lagre informasjon, en CAL.

Lisensmodeller

Microsoft SQL Server bruker ulike lisensieringsmodeller, disse er Server + CAL-lisenser og Core-lisenser.

Servermodell + CAL

Denne lisensmodellen er et billigere alternativ, den kjøpes med lisensen og ytterligere CAL-er må kjøpes for brukere eller enheter.

Per kjernelisenser

Ved å velge lisensiering per kjerne lisensierer du flere kjerner av serverens fysiske prosessor. Med Microsoft SQL Server 2019 må minst 4 kjerner alltid være lisensiert. Denne lisensmodellen velges ofte av store selskaper.

CAL er ikke nødvendig for dette.

Klienttilgangslisens (CAL)

En klienttilgangslisens er ment å gi brukerrettigheter for å gi brukere eller enheter tilgang til serverprogramvaren. Dette betyr at hver datamaskin eller bruker som trenger tilgang til serverprogramvaren trenger en CAL.

Bruker-CALer

En bruker-CAL gir tilgang til den nevnte funksjonen til en bruker på nettverket. Dette betyr at denne brukeren også kan få tilgang til serverens nettverk gjennom andre enheter.

Enhets-CALer

En enhets-CAL gir tilgang til en enhet. Dette betyr at alle brukere av denne enheten kan logge på for å få tilgang til serveren. Dette er ofte bare fordelaktig når det er flere brukere enn enheter i en organisasjon, [ 13 ]

Funksjoner

Dette systemet inkluderer en redusert versjon, kalt MSDE med samme databasemotor, men orientert mot mindre prosjekter, som i 2005- og 2008-versjonene blir til SQL Express Edition , som er en utgave som distribueres gratis .

Det er vanlig å utvikle komplette prosjekter ved hjelp av Microsoft SQL Server og Microsoft Access gjennom den såkalte ADP ( Access Data Project ). På denne måten fullføres databasen ( Microsoft SQL Server ) med utviklingsmiljøet ( VBA Access), gjennom implementering av to-lags applikasjoner ved bruk av Windows -skjemaer .

SQLCMD , osql eller PowerShell brukes til å håndtere SQL gjennom kommandolinjer .

For utvikling av mer komplekse applikasjoner (tre eller flere lag), inkluderer Microsoft SQL Server tilgangsgrensesnitt for ulike utviklingsplattformer, inkludert .NET , men serveren er kun tilgjengelig for operativsystemer .

NUMERIC-typen ble forbedret for å brukes som en kolonneidentifikator fra og med versjon 2008 R2.

Programmering

T-SQL

T-SQL (Transact-SQL) er hovedmetoden for interaksjon med serveren, som gjør det mulig å utføre nøkkeloperasjoner i SQL Server, inkludert opprettelse og endring av databaseskjemaer, innsetting og endring av data i databasen.data, samt administrasjon av serveren som sådan. Dette gjøres ved å sende T-SQL-setninger og erklæringer som behandles av serveren og resultatene (eller feilene) returneres til klientapplikasjonen.

SQL native klient

SQL Native Client er datatilgangsbiblioteket for Microsoft SQL Server versjon 2005 og senere klienter. Implementerer naturlig støtte for SQL Server-funksjoner, inkludert kjøring av datastrøm i tabellform, støtte for SQL Server-speildatabaser, full støtte for alle SQL Server-støttede datatyper, asynkrone sett med operasjoner, spørringsvarsler, støtte for kryptering, samt mottak av flere resultatsett i en enkelt databaseøkt. SQL Native Client brukes som en utvidelse til SQL Server-plugin-moduler for andre datatilgangsteknologier, inkludert ADO eller OLE DB. SQL Native Client kan også brukes direkte ved å omgå datatilgangslagene.

Utgaver og tjenester

Hver utgave av SQL Server har forskjellige versjoner med forskjellige priser (for hver versjon) som også avhenger av den fysiske konfigurasjonen av serveren. [ 14 ] Hovedversjonene presenteres nedenfor:

Enterprise

Den inkluderer alle funksjonene (deaktivert i andre utgaver) Det er den typen versjon med flest privilegier på markedet.

utvikler

En utgave med samme egenskaper som Enterprise, for kun å installeres i et utviklingsmiljø og ikke i produksjon. Hvis den er utviklet for en standardutgave, må funksjonene som er deaktivert for denne versjonen tas i betraktning.

Standard

En begrenset versjon avhengig av konfigurasjonen av serveren og dens egenskaper, designet for lavere servere.

For eksempel: i versjon 2012 støtter Enterprise-utgaven et ubegrenset antall prosessorer , og hot adding av minne og CPUer uten tjeneste- eller serveravbrudd; mens standardutgaven er begrenset til 16 prosessorer og ikke støtter "hot add".

Express

En gratisversjon som muliggjør opprettelse av begrensede databaser med grunnleggende funksjoner, for å støtte applikasjoner som trenger en enkel løsning for lagring av en begrenset mengde data, eller brukere med begrensede ressurser og behov.

I 2012-versjonen kan denne utgaven bruke maksimalt 1 GB minne, og lagre ikke mer enn 10 GB, den fungerer på servere med maksimalt fire prosessorer. Disse begrensningene opprettholdes i 2014-versjonen (4 kjerner, 1 GB ram og 10 GB per database).

SQLAzure

Det er en versjon av SQL Server i skyen, som lar deg betale månedlig for tjenesten uten å måtte vedlikeholde en fysisk server (On Premise). Selskapet betaler kun for tjenesten, og tjenesten administreres gjennom serverfarmer forskjellige steder i verden.

Med SQL Azure er det ikke nødvendig å installere, vedlikeholde eller oppgradere en fysisk server; til tross for at denne tjenesten avhenger av aspekter knyttet til sikkerhetsproblemer angående tilstedeværelse utenfor selskapet og tilgjengeligheten av en Internett-tilkobling.

En tid ble tjenesten utvidet med muligheten til å opprette en virtuell server over nettverket, og installere SQL Server samt en av de konkurrerende tjenestene, og administrere den virtuelle serveren som om den var en lokal fysisk server (selv om det er ikke fysisk tilgjengelig). ); og du kan skille mellom det opprinnelige alternativet som heter PAAS ( Platform as a Service : Platform as a Service ) og det nye alternativet med virtuelle servere kalt IAAS ( Infrastructure as a Service: Infrastructure as a Service ).

Denne tjenesten har blitt levert av Microsoft siden 2009 og slutter seg til lignende tjenester fra tredjepartsselskaper .

Brukergrensesnitt

SQL Server tilbyr noen få grensesnitt som har endret seg gjennom årene, de mest kjente er de grafiske grensesnittene som brukes som et standard utviklingsverktøy for utviklere og administratorer .

Det grafiske grensesnittet frem til 2005 inkluderte Enterprise Manager med en trevisning av de ulike objektene og muligheten til å administrere dem; og Query-analysatoren som et tekstgrensesnitt for å utføre TSQL-kommandoer.

I 2005-versjonen ble de to verktøyene samlet til ett – SQL Server Management Studio (SSMS), og fra 2008 muligheten til å jobbe med Visual Studio – standard Microsoft utviklingsgrensesnitt (til de forskjellige språkene , BI , etc.). Et annet valgfritt grensesnitt er bruken av kommandolinjen , med verktøy som SQLCmd, ISQL, OSQL som muliggjør kjøring av skript og batchbehandling . Siden 2008 kan den utvikles med SQLCmd (SQL-kommando) gjennom SSMS uten å koble til Windows tekstgrensesnitt. Et annet alternativ innen skript er bruken av Microsofts Powershell - skriptspråk .

Bortsett fra standardgrensesnittene til SQL Server, kan du utføre TSQL-kommandoer med tilkoblingsverktøy som ODBC og OLE-DB. [ 15 ]

Tjenester

I motsetning til databasesystemer som Microsoft Access som er "passive" og inneholder en fil som du må koble til og utførelsen av kommandoene utføres på klienten (brukerens datamaskin), i SQL Server er det en rekke tjenester , programvare som kjøres i minnet til serveren av systemet, og som derfor drar nytte av egenskapene til serveren som er kraftigere enn klientene, forhindrer overbelastning av nettverket og kan planlegge oppgaver som kjører selv om klienten ikke er tilkoblet .

Hovedtjenester:

  • SQL Server - "motoren" til systemet
  • SQL Agent - Utførelse av oppgaver (Jobber, planlagte skript) og sending av advarsler ved stor og uregelmessig belastning på systemet
  • Full-Text Filter Daemon Launcher - Bruk av spesialindeksene til "Fulltekstsøk" for avansert tekstsøk
  • SQL Browser - "lytteren" dedikert til sendte kommandoer og omdirigere dem til destinasjonen
  • SSIS Server - Driften av SSIS ( ETL -verktøyet )
  • SSAS Server - Driften av SSAS ( OLAP - verktøyet )
  • SSRS Server - Driften av SSRS (rapporteringsverktøyet)

Grunnleggende funksjoner og verktøy

Databaser

I hver SQL Server-installasjon er det 4 systemdatabaser, og muligheten til å lage nye databaser av brukeren, hvor data lagres i tabeller.

Disse databasene, opprettet av brukere, inkluderer i utgangspunktet en datafil (med suffikset mdf) med tabellene og de forskjellige objektene på databasenivå; og en loggfil (med suffiks ldf) med åpne transaksjoner og lukkede transaksjoner, Med forbehold om valgt gjenopprettingsmodell (alle databaseendringer siden siste sikkerhetskopi kan akkumuleres i loggfilen). Et sett med datafiler kan opprettes i tillegg til den viktigste (med ndf-suffikset) for effektivitetshensyn, arbeidsbelastningspartisjonering mellom harddisker, etc.

Systemdatabaser:

  • master - Alle prosedyrer, funksjoner og systemtabeller som brukes av alle databaser og som installeres automatisk, samt de som er opprettet av systemadministratorer. I tillegg er alle definisjoner angående sikkerhet på servernivå lagret i denne databasen.
  • msdb - Lagring av agentoppgaver, CLR -koder slått sammen i systemet, SSIS-pakker og mer.
  • modell – databasemalen. Hver ny database opprettes som en kopi av denne databasen, med mindre noe annet er eksplisitt definert.
  • tempdb - Midlertidig database som opprettes på nytt hver gang tjenesten starter på nytt. Den brukes til å lagre midlertidige tabeller opprettet av brukere eller systemet (for eksempel i komplekse sorteringer).

Faste og midlertidige tabeller

Fra det logiske perspektivet, dataene lagret i databaser i tabeller, som gjennom dem implementerer teorien om relasjonsdatabaser. Tabellen er delt inn i rader og kolonner (noen ganger referert til som poster og felt). Tabellene kan være faste eller midlertidige, mens i det andre tilfellet eksisterer de fysisk i tempdb-databasen, og slettes automatisk ved frakobling av økten eller tilkoblingen til serveren, avhengig av typen midlertidig tabell.

Fra et fysisk perspektiv deler systemet databasefilene i 64KB-omfang, hver i åtte 8KB-sider. Vanligvis er hvert område tilordnet en tabell eller en indeks , bortsett fra små tabeller; og hver side er alltid tilordnet en bestemt tabell. Systemet er ansvarlig for å utvide filene, i henhold til brukerens innstillinger, og tildele utvidelser og sider til tabellene.

Tabeller kan indekseres. Indeksene lagres ved siden av tabellen (Non Clustered Index) eller er selve tabellen (Clustered Index). Indekser hjelper til med å finne data i tabeller (som filer i biblioteker), sortere dem og definere primærnøkler .

En en-til-mange-relasjon kan opprettes mellom tabellene .

Bortsett fra brukertabellene er det tabeller som lagrer metadata: data om selve systemet, de forskjellige objektene, rettighetene, statistikk om ytelsen til systemet (DMV), etc.

Datatyper

For hver kolonne i en tabell og hver variabel eller parameter, er en type data definert som skal lagres i den, blant dem:

  1. Tall : Heltall og ikke-heltall i forskjellige størrelser og på forskjellige nivåer av presisjon; og valgfri automatisk økning.
  2. Tekster : Strenger av forskjellig lengde, og forskjellige muligheter for å støtte forskjellige språk.
  3. Datoer : Datoer på ulike nivåer av presisjon, fra hele dager til brøker på undersekunder, støttedatoer fra begynnelsen av 1900-tallet eller den gregorianske kalenderen, og evnen til å skille mellom ulike tidsbruk.
  4. XML : Tekstdata (strenger) som representerer standard sett med data (SGML-standard).
  5. Binære data : Data lagret som binære data (bits og bytes), som gjør det mulig å lagre grafiske filer, etc.
  6. Geografi : Standardrepresentasjon av geografisk informasjon, som stater, geografiske områder, lokaliteter; og beregninger som avstander.
  7. Geometri : Standard representasjon av punkter, linjer, overflater i planet; og forholdet mellom dem.
  8. Hierarchyid : Standard representasjon av hierarkisk informasjon som stykkliste, rapporteringsforhold mellom ansatte, etc.

Visninger

Visninger representerer vanligvis dataekstraksjonskommandoer, som lagres uten dataene (som er lagret i tabellene). Dette alternativet lar oss lage komplekse eller standardutdrag, lagre dem som visninger og bruke visningene uten å måtte skrive inn kommandoene på nytt eller beholde koden der de vises. I tillegg er det et veldig viktig middel for å gi selektive leserettigheter (i tilfelle vi ønsker å gjøre det mulig for en bruker å delvis se kolonnene eller radene i en tabell).

En visning kan betraktes som en virtuell tabell eller en lagret spørring. Dataene som er tilgjengelige gjennom en visning lagres ikke i et annet objekt enn databasen. Det som er lagret i databasen er en SELECT-setning. Resultatet av SELECT-setningen danner den virtuelle tabellen som visningen returnerer. Brukeren kan bruke en slik virtuell tabell ved å referere til visningsnavnet i Transact-SQL-setninger, på samme måte som tabeller refereres til. Visninger brukes for noen eller alle disse funksjonene:
• Begrens brukertilgang til bestemte rader i en tabell. For eksempel å la en ansatt bare se radene som lagrer arbeidet sitt i en sporingstabell for arbeidsaktivitet.
• Begrens brukertilgang til bestemte kolonner. La for eksempel ansatte som ikke jobber i lønnsavdelingen se navn, kontor, telefon og avdelingskolonnene i ansatttabellen, men ikke la dem se kolonnene med lønnsdata eller annen personlig informasjon.
• Kombiner kolonner fra flere tabeller slik at de vises som én tabell.
• Legg til informasjon i stedet for å presentere detaljene. For eksempel presentere summen av en kolonne eller maksimums- eller minimumsverdien av en kolonne.

Visninger opprettes ved å definere SELECT-setningen som henter dataene presentert av visningen. Datatabellene referert til av SELECT-setningen er kjent som basistabellene for visningen. Visninger i alle versjoner av SQL Server kan oppdateres (kan være målet for UPDATE-, DELETE- eller INSERT-setninger) så lenge modifikasjonen bare påvirker én av visningens basistabeller.

Lagrede prosedyrer

Prosedyrer er TSQL-kommandoskript, som kan utføres med forskjellige parametere. For eksempel en prosedyre som henter årstall som en parameter, og oppdaterer en salgsoppsummeringstabell, med salget til agentene i nevnte år, basert på salgsregistreringstabellen.

Lagrede prosedyrer kan gjøre det mye enklere å administrere databasen og vise informasjon om databasen og dens brukere. Lagrede prosedyrer er en forhåndskompilert samling av SQL-setninger og valgfrie flytkontrollsetninger lagret under ett enkelt navn og behandlet som en enhet. Lagrede prosedyrer lagres i en database; de kan kjøres fra en applikasjon og tillate brukerdeklarerte variabler, betinget kjøring og andre kraftige programmeringsfunksjoner. Lagrede prosedyrer kan inneholde programflyt, logikk og databasespørringer. De kan godta parametere, gi parameterresultater, returnere enkelt eller flere resultatsett og returnere verdier.

Fordelene med å bruke lagrede prosedyrer i SQL Server i stedet for Transact-SQL-programmer som er lagret lokalt på klientdatamaskiner, er at de:
• Tillater modulær programmering.
Du kan lage prosedyren én gang, lagre den i databasen og kalle den fra programmet så mange ganger du vil. En databaseprogrammeringsspesialist kan lage lagrede prosedyrer, som deretter kan endres uavhengig av programmets kildekode. De letter vedlikeholdet.
• Tillat raskere utførelse.
I situasjoner der en stor mengde Transact-SQL-kode er nødvendig, eller hvis operasjoner utføres flere ganger, kan lagrede prosedyrer være raskere enn Transact-SQL-kodebatcher. Prosedyrer analyseres og optimaliseres på det tidspunktet de opprettes, og det er mulig å bruke en versjon av prosedyren som ligger i minnet etter at den er utført for første gang. Transact-SQL-setninger som sendes inn flere ganger fra klienten hver gang de skal kjøres, må kompileres og optimaliseres hver gang de kjøres av SQL Server.
• De kan redusere nettverkstrafikken.
En operasjon som krever hundrevis av linjer med Transact-SQL-kode kan oppnås med en enkelt setning som utfører koden i en prosedyre, i stedet for å sende hundrevis av linjer med kode over nettverket.
• De kan brukes som en sikkerhetsmekanisme.
Brukere kan gis tillatelser til å utføre en lagret prosedyre, selv om de ikke har tillatelse til å utføre prosedyrens uttalelser direkte.

Brukerdefinerte funksjoner

Funksjoner er et objekt som kombinerer noen muligheter for visninger med andre av prosedyrer. I likhet med visninger kan de trekke ut data og utføre beregninger, og returnere et resultat til brukeren eller programmet som utførte dem. I tillegg til prosedyrer inkluderer de TSQL-koder, og kan utføres med parametere.

Funksjoner returnerer en verdi eller et sett med verdier.

Brukerdefinerte funksjoner opprettes med setningen CREATE FUNCTION, endres med setningen ALTER FUNCTIONog fjernes med setningen DROP FUNCTION. Alle fullt kvalifiserte funksjonsnavn (databasenavn.eier_navn.funksjonsnavn) definert av brukeren må være unike. For å opprette, endre eller fjerne brukerdefinerte funksjoner, må du ha CREATE FUNCTION. Andre brukere enn eieren må ha EXECUTE-tillatelse til en funksjon, og først da kan de bruke den i en Transact-SQL-setning. For å opprette eller endre tabeller med referanser til brukerdefinerte funksjoner i begrensningen CHECK, klausulen DEFAULTeller definisjonen av en beregnet kolonne, må du også ha tillatelse REFERENCEStil funksjonene. Transact-SQL-feil som fører til at en setning kanselleres og fortsetter til neste setning i modulen, for eksempel triggere eller lagrede prosedyrer, behandles forskjellig innenfor en funksjon. I funksjoner fører disse feilene til at utførelsen av funksjonen stopper. Dette fører til at funksjonen som kalte setningen avbrytes. En brukerdefinert funksjon har null eller flere inngangsparametere og returnerer en skalarverdi eller en tabell. En funksjon kan ha maksimalt 1024 inngangsparametere. Når en funksjonsparameter tar en standardverdi, må nøkkelordet spesifiseres DEFAULTnår funksjonen kalles opp for å få standardverdien. Denne virkemåten er forskjellig fra standardverdiparametere i lagrede prosedyrer, der utelatelse av parameteren innebærer å spesifisere standardverdien. Brukerdefinerte funksjoner støtter ikke utdataparametere.

Distribuerte spørringer

Distribuerte spørringer får tilgang til data fra flere kilder, som kan være lagret på én datamaskin eller på forskjellige datamaskiner. Microsoft SQL Server 2000 støtter distribuerte spørringer gjennom OLE DB Distribuerte spørringer gir SQL Server-brukere tilgang til:
• Distribuerte data lagret på tvers av flere SQL Server-forekomster.
• Heterogene data lagret i ulike relasjonelle og ikke-relasjonelle datakilder som er tilgjengelig via en OLE DB-leverandør.
OLE DB-leverandører eksponerer data i tabellformede objekter kalt radsett. SQL Server 2000 lar radsett fra OLE DB-leverandører refereres til i Transact-SQL-setninger som om de var en SQL Server-tabell. Tabeller og visninger fra eksterne datakilder kan refereres direkte i Transact-SQL SELECT-, INSERT-, UPDATE- og DELETE-setninger. Fordi distribuerte spørringer bruker OLE DB som det underliggende grensesnittet, får de tilgang til tradisjonelle relasjonelle DBMS-systemer med SQL-spørringsprosessorer, så vel som data som administreres av datakilder med varierende kraft og sofistikering. Så lenge proprietær programvare eksponerer dataene i et tabellformet radsett gjennom OLE DB-leverandøren, kan dataene brukes i distribuerte spørringer. Merk: Bruken av distribuerte spørringer i SQL Server ligner funksjonaliteten til koblede tabeller gjennom ODBC, tidligere støttet av Microsoft Access. Denne funksjonaliteten er nå innebygd i SQL Server med OLE DB som grensesnitt til eksterne data.

Transaksjoner

En transaksjon er et sett med kommandoer, som blir utført fullstendig eller ikke utført i det hele tatt: alt eller ingenting. For eksempel, hvis en sum penger ble flyttet fra en bankkonto til en annen, og begge kontoene må oppdateres ved innskudd og uttak; det er obligatorisk at begge kontoene oppdateres sammen, eller ingen av dem (i tilfelle en av oppdateringene mislykkes); for å unngå inkonsekvente konsekvenser av et innskudd uten uttak, eller omvendt. Derfor er en transaksjon en sekvens av operasjoner utført som en enkelt logisk arbeidsenhet. En logisk arbeidsenhet må vise fire egenskaper, kjent som ACID-egenskaper (atomisitet, konsistens, isolasjon og holdbarhet), for å kvalifisere som en transaksjon:

  • Atomitet

En transaksjon må være en atomisk arbeidsenhet, enten alle dens modifikasjoner er gjort i dataene, eller ingen er gjort.

  • Sammenheng

Når den er fullført, må en transaksjon forlate alle data i en konsistent tilstand. I en relasjonsdatabase må alle regler brukes på transaksjonsendringer for å opprettholde integriteten til alle data. Alle interne datastrukturer, som B-treindekser eller dobbeltlenkede lister, må være korrekte ved slutten av transaksjonen.

  • Isolering

Endringer foretatt av samtidige transaksjoner må isoleres fra modifikasjoner foretatt av andre samtidige transaksjoner. En transaksjon ser dataene i tilstanden de var i før de ble endret av en annen samtidig transaksjon eller etter at den andre transaksjonen er fullført, men den ser ikke en mellomtilstand. Dette er kjent som serialisering fordi resultatet er muligheten til å laste inn de opprinnelige dataene på nytt og spille av en serie transaksjoner for å ende med dataene i samme tilstand som de var etter at de opprinnelige transaksjonene ble utført.

  • Varighet

Når en transaksjon er avsluttet, er effektene permanente i systemet. Endringer vedvarer selv ved systemfeil.

SQL Server har begrenset evne til å neste transaksjoner.

Optimalisatoren

Optimizeren er en del av programvaren som "tar avgjørelsen" om hvordan hver kommando skal utføres, slik at utførelsen vil være den mest effektive, eller i det minste effektiv nok (det vil si effektiv nok til å unngå å fortsette å søke etter en annen løsning, som er enda mer effektiv, vil prisen på tilleggssøket "koste" mer enn ressursbesparelsen).

SQL er et deklarativt språk , der utvikleren erklærer at han ønsker å trekke ut eller oppdatere uten å måtte angi hvordan (i motsetning til imperative språk , og derfor spiller optimalisereren en ledende rolle, som ifølge statistikken som systemet lagrer om datadistribusjoner i tabeller, indekser og interne regler; tar den riktige avgjørelsen.

Privilegier og datasikkerhet

For å koble til SQL Server kreves en pålogging (bruker på servernivå). Når sikkerhetspolicyen er definert som Windows-autentisering og serveren er kombinert med domenedefinisjonene , blir påloggingene definert i Active Directory . Når definisjonen er SQL Server Authentication, er påloggingene (bruker og passord) definert i selve SQL Serveren. Følgelig må du i det første tilfellet identifisere deg med et navn og passord kun når du kobler til nettverket, og deretter kobler du deg automatisk til alle servere som er Windows-autentisering (med global pålogging); og i det andre tilfellet må du identifisere deg selv når du kobler til hver SQL Server Authentication-server (hver gang med en lokal pålogging).

På databasenivå identifiseres brukeren som en bruker som generelt er relatert til påloggingen (som er på servernivå), og rettighetene til brukeren eksisterer kun på databasenivå (i tillegg til rettighetene til å logge på). Å gi generelle rettigheter kan hjelpes med lister over serverroller (roller på servernivå) eller databaseroller (spesifikke roller på databasenivå), hver med spesifikke privilegier til en spesifikk rolle; og hver bruker tilknyttet en av disse rollene får privilegiene knyttet til den. Administratoren kan også gi spesifikke rettigheter og opprette andre databaseroller (serverroller kan ikke opprettes).

Servernivåprivilegier inkluderer muligheten til å lage databaser, bruke jobber, lage sikkerhetskopier og gjenoppretting av databaser, endre serverdefinisjoner og så videre. Rettigheter på databasenivå gjør det mulig å trekke ut og oppdatere data, lage objekter som prosedyrer og tabeller, bruke disse objektene og så videre. Som en generell regel kan du gi rettigheter (Grant), tilbakekalle eksisterende privilegier (Revoke), og nekte privilegier som ennå ikke eksisterer (Deny).

Andre tjenesteverktøy

I tillegg til sine elementære funksjoner som et verktøy for relasjonsdatabaseadministrasjon (lage tabeller, definere relasjoner mellom dem, administrere transaksjoner, lage indekser, etc.), støtter SQL Server en voksende liste med andre tjenesteverktøy; bortsett fra tredjepartsverktøy som endres eller fullføre det som finnes.

Sikkerhetskopier og gjenopprettinger

Bortsett fra alternative løsninger på operativsystemnivå (sikkerhetskopiering av databasefiler), er det et verktøy innebygd i SQL Server som muliggjør full eller differensiell sikkerhetskopiering, i henhold til den forhåndsdefinerte gjenopprettingsmodellen til databasen; og en full eller punkt-i-tid restitusjon. Bortsett fra en databasesikkerhetskopi kan du sikkerhetskopiere dem gjennom et skript (med eller uten dataene). Fra og med 2008 kan du komprimere sikkerhetskopifiler.

Komprimering

Fra og med 2008 ble komprimeringsalternativet lagt til, som gjør det mulig å komprimere den fysiske størrelsen på tabeller og indekser, og bruke volumet på harddisker mer effektivt og redusere IO-operasjoner (noe som øker belastningen på CPU). Som allerede nevnt, kan du også komprimere sikkerhetskopifilene.

Replikering, høy tilgjengelighet og katastrofegjenoppretting

Noen verktøy gjør det mulig å lage delvise eller fullstendige replikaer av databaser, forbedre tilgjengeligheten og gjenopprette fra katastrofer; bortsett fra muligheten til å sikkerhetskopiere og gjenopprette databasene, et alternativ som er ment å være veldig tregt.

Kopiene som lages av disse verktøyene kan brukes som en umiddelbart tilgjengelig sikkerhetskopi i tilfelle systemet svikter, samt en replika i et undersystem, uavhengig av kildesystemet, for lastbalansering; og at oppdateringer kjøres på databasen, og gjenopprettinger for rapporter kjøres på replikaen.

Blant disse verktøyene kan vi nevne replikeringen som gjør det mulig å lage en synkronisert replika av databasen, speilingen som kjører i speilserveren hver oppdatering som utføres i opprinnelsesserveren, Log Shipping som gjør det mulig å lagre en synkronisert kopi gjennom loggfiler (Log) med alle oppdateringer på kildeserveren, og verktøy for høy tilgjengelighet og katastrofegjenoppretting (HADR, siden 2012) som løser speilingsproblemer i forhold til reaksjonstiden for tekniske feil og tilgjengelighet av kopier i fredstid.

Agenten og oppgaveplanleggingen

Agenten er tjenesten som har ansvaret for å planlegge oppgaver, og har ansvaret for å utføre dem uavhengig. Vanligvis utfører han vedlikeholdsoppgaver, komplekse ETL- oppgaver , sikkerhetskopier , etc.

Vedlikehold

For å forbedre ytelsen til systemet er det nødvendig å vedlikeholde statistikken som brukes av optimalisereren, organisere de fysiske filene, etc; og dedikerte verktøy brukes til disse formålene, som utføres med jevne mellomrom av planlagte oppgaver, og på en koordinert måte med ETL- og sikkerhetskopieringsoppgavene.

Tjenestemegler

En teknologi som ble lagt til i 2005 som implementerer tjenesteorientert arkitektur , og som muliggjør asynkrone kjøringer: først og fremst å sende meldinger mellom ulike applikasjoner som kjører samtidig, men også å utføre prosedyrer asynkront, på en brann-og-glem måte - en prosedyre som kjører i en annen økt enn sesjonen som startet den, og begge prosedyrene fortsetter å kjøre uavhengig av hverandre.

Send e-post

SQL Server har muligheten til å sende e -post via kode. Denne funksjonaliteten brukes vanligvis til å sende varsler om systemproblemer (for eksempel hvis CPU-bruken økte til en forhåndsdefinert terskel eller hvis ETL -prosessen mislyktes), men også når prosessen ble fullført.

Fulltekstsøk

Et verktøy som gjør det mulig å indeksere tekstkolonner som tekster og ikke bare som strenger; og utføre komplekse søk avhengig av betydningen av teksten og språket. For eksempel søker vi etter et verb, og vi ønsker å få alle forekomstene av dets konjugasjoner.

Spor

Disse verktøyene inkluderer Trace som gjør det mulig å spore aktiviteter for å opprettholde belastninger og feil, og datasikkerhet (datagjenoppretting er ikke tillatt), Profiler som gjør det mulig å spore kommandoene som utføres og hendelsene som skjer på serveren, og Extended Events som ble lagt til i 2008 og endrer profiler takket være dens lave signatur (ressursforbruk og påvirkning på serverytelse).

Bortsett fra disse kan 2 typer utløsere brukes til å spore endringer og aktiviteter: DML-utløsere forhåndsdefinert i tabeller og visninger og som er initiert av instruksjoner for dataoppdatering (Velg / Oppdater / Slett), og DDL-utløsere som initieres av endringer i objektene selv (og ikke dataene), på database- eller servernivå.

CLR-sammenslåing

Fra 2005 kan du enkelt kombinere prosedyrer, funksjoner og aggregerte funksjoner utviklet i CLR til SQL Server . Du må utvikle koden i et av .NET -utviklingsverktøyene , lage en DLL -fil og flette den inn i systemet. Fordelen med denne teknologien er dens evner i problemer som ikke utelukkende er databaser (datamanipulering), og inkluderer komplekse beregninger eller tekstmanipulasjoner av strenger.

Verktøy for forretningsintelligens

En typisk installasjon inkluderer også Business Intelligence ( BI ) -verktøy :

SSIS (SQL Server Integration Services)

Et ETL -verktøy som muliggjør utvinning av data fra forskjellige kilder (ikke bare SQL Server), transformasjon av nevnte data og lasting (vanligvis, men ikke nødvendigvis til et datavarehus ).

SSAS (SQL Server Analysis Services)

Et verktøy for å lage flerdimensjonale (ikke-relasjonelle) databaser , som kan utforskes ved å trekke ut data på forskjellige grupperingsnivåer, bore ned en sum til detaljene og bruke MDX (et SQL-lignende språk, tilpasset flerdimensjonale databaser).

SSRS (SQL Server Reporting Services)

Et verktøy for å lage og formatere rapporter, gi visningsrettigheter til dem og distribuere dem. De kan vises med en nettleser , og kan eksporteres til Excel , PDF , etc. dataene hentes vanligvis fra datavarehuset eller OLAP.

Ulemper

  • Siden versjonen av SQL Server 2012 er ikke spørringer skrevet i T-SQL bakoverkompatible med versjonen av SQL Server 2008 eller tidligere.
  • På 32-biters versjoner bruker SQL Server Address Windowing Extension (AWE) for å gjøre adressering over 4 GB. Dette hindrer deg i å bruke dynamisk minnebehandling, og lar deg bare være vert for maksimalt 64 GB delt minne. Denne begrensningen er eksklusiv for 32-biters operativsystemer; på 64-bits operativsystemer er det maksimale minnet som kan adresseres i Standard Edition 64 Gb og i Enterprise Edition 4Tb

Se også

Referanser

  1. Guthrie, Scott (7. mars 2016). "Kunngjør SQL Server på Linux" (html) . Microsoft (på engelsk) . Arkivert fra originalen 7. mars 2016 . Hentet 3. mars 2019 .  
  2. ^ a b Domínguez, Andres Zamora (25. oktober 2017). "Microsoft SQL Server kan nå kjøres på Linux GNU." (html) . Pandora FMS (på engelsk) . Arkivert fra originalen 24. november 2018 . Hentet 24. november 2018 . «Den 28. desember 2016 – festen for de hellige uskyldige, den spesielle dagen da spansktalende vitser hele dagen – ble det kunngjort anskaffelsen av et «Platinum»-medlemskap av selskapet Microsoft ® i Linux Foundation og lanseringen av Microsoft SQL Server®. »  
  3. Lerner, Reuve M. "SQL-server på Linux" (html) . Geek Guide (på engelsk) . Arkivert fra originalen 3. august 2017 . Hentet 24. november 2018 . Men selv den mest skeptiske åpen kildekode-fan må innrømme at Microsoft har endret seg i løpet av de siste årene. Den har gitt ut mange utviklerverktøy og biblioteker som åpen kildekode, og den har begynt å inkludere Linux som en støttet plattform for noe av programvaren. »  
  4. ^ "Gjør deg klar for SQL Server 2017" (html) . Microsoft (på engelsk) . Arkivert fra originalen 1. mai 2017 . Hentet 24. november 2018 . "Bring den bransjeledende ytelsen og sikkerheten til SQL Server til Windows-, Linux- og Docker-containere. »  
  5. SQL Server-utviklingshistorie
  6. Hva er nytt i Microsoft SQL Server 7
  7. Hva er nytt i Microsoft SQL Server 2000
  8. Hva er nytt i SQL Server 2005
  9. Hva er nytt (SQL Server 2008)
  10. Hva er nytt i Microsoft SQL Server 2008 R2
  11. Hva er nytt i SQL Server 2012
  12. Hva er nytt i SQL Server 2014
  13. "Alt du trenger å vite om SQL-serverlisenser og CALer" . Soft trader (på engelsk) . 15. september 2021 . Hentet 27. september 2021 . 
  14. Funksjoner som støttes av SQL Server 2014 Editions
  15. Tilkoblingsstrenger


Eksterne lenker