Microsoft SQL Server
| Microsoft SQL Server | |||
|---|---|---|---|
| Onderdeel van relationeel databasebeheersysteem | |||
|
| |||
| Algemene informatie | |||
| programmatype: | managementsysteem relationele database | ||
| ontwikkelaar | microsoft | ||
| Eerste uitgave | 24 april 1989 | ||
| Licentie | Microsoft EULA | ||
| Technische informatie | |||
| gepland in | C , C++ | ||
| leesbare bestanden | |||
| |||
| bewerkbare bestanden | |||
| |||
| Links | |||
Microsoft SQL Server is een relationeel databasebeheersysteem ontwikkeld door Microsoft .
De ontwikkeltaal die wordt gebruikt (via de opdrachtregel of via de grafische interface van Management Studio) is Transact-SQL (TSQL), een implementatie van de ANSI-standaard van de SQL-taal, die wordt gebruikt om gegevens te manipuleren en op te halen ( DML ), tabellen te maken en te definiëren relaties tussen hen ( DDL ).
Tot de meest prominente concurrenten van SQL Server behoren: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server was traditioneel alleen beschikbaar voor Microsoft Windows -besturingssystemen , maar vanaf 2016 is het beschikbaar voor GNU/Linux , [ 2 ] [ 3 ] en vanaf 2017 ook voor Docker . [ 4 ]
Het kan worden geconfigureerd om meerdere instanties op dezelfde fysieke server te gebruiken, de eerste installatie draagt meestal de servernaam en de volgende - specifieke namen (met een koppelteken tussen de servernaam en de installatienaam).
Versies
| Versie | Jaar | versie naam | sleutel naam |
|---|---|---|---|
| 1.0 ( OS/2 ) |
1989 | SQL Server 1-0 | SQL |
| 4.21 ( WinNT ) |
1993 | SQL Server 4.21 | VERVOLG |
| 6.0 | negentienvijfennegentig | SQLServer 6.0 | SQL95 |
| 6.5 | 1996 | SQL Server 6.5 | Hydra |
| 7.0 | 1998 | SQL Server 7.0 [ 6 ] | sfinx |
| - | 1999 | SQL Server 7.0 OLAP- hulpprogramma 's |
Gerecht |
| 8.0 | 2000 | SQL Server 2000 [ 7 ] | Shiloho |
| 8.0 | 2003 | SQL Server 2000 64-bits editie |
Vrijheid |
| 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 (voorheen Hekaton) |
| 13.0 | 2016 | SQLServer 2016 | SQL16 |
| 14.0 | 2017 | SQL Server 2017 | vVolgende 2017 |
| 15.0 | 2019 | SQL Server 2019 | Daphne |
De oorspronkelijke SQL Server -broncode die werd gebruikt in versies vóór versie 7.0 zou zijn gekocht bij Sybase , maar werd bijgewerkt in versies 7.0 en 2000 en herschreven in versie 2005. Over het algemeen wordt elke 2-3 jaar een nieuwe versie uitgebracht en tussen deze releases worden servicepacks met verbeteringen en bugfixes voorgesteld , en hotfixes voor urgente problemen in het beveiligingssysteem of kritieke bugs.
Beschikbaarheid
Microsoft SQL Server wordt verkocht als licentie. Gebruikers die echter SQL Server willen gebruiken, waarbij alles draait om het programma, zoals het opvragen en opslaan van informatie, hebben een CAL nodig.
Licentiemodellen
Microsoft SQL Server maakt gebruik van verschillende licentiemodellen, dit zijn Server + CAL-licenties en Core-licenties.
Servermodel + CAL
Dit licentiemodel is een goedkopere optie, het wordt gekocht met de licentie en er moeten extra CAL's worden gekocht voor gebruikers of apparaten.
Per core-licenties
Door per-core licenties te kiezen, licentieert u meerdere cores van de fysieke processor van de server. Bij Microsoft SQL Server 2019 moeten er altijd minimaal 4 cores gelicentieerd zijn. Dit licentiemodel wordt vaak gekozen door grote bedrijven.
Hiervoor zijn geen CAL's vereist.
Client Access License (CAL)
Een licentie voor clienttoegang is bedoeld om gebruiksrechten te verlenen om gebruikers of apparaten toegang te geven tot de serversoftware. Dit betekent dat elke computer of gebruiker die toegang nodig heeft tot de serversoftware een CAL nodig heeft.
Gebruikers-CAL's
Een User CAL geeft toegang tot de bovengenoemde functie aan een gebruiker op het netwerk. Dit betekent dat deze gebruiker ook via andere apparaten toegang heeft tot het netwerk van de server.
Apparaat-CAL's
Een Device CAL geeft toegang tot een apparaat. Dit betekent dat alle gebruikers van dit apparaat kunnen inloggen om toegang te krijgen tot de server. Dit is vaak alleen voordelig als er binnen een organisatie meer gebruikers dan apparaten zijn, [ 13 ]
Functies
- Transactie ondersteuning .
- Ondersteunt opgeslagen procedures .
- Het bevat ook een grafische beheeromgeving, die het gebruik van DDL- en DML- commando's grafisch mogelijk maakt.
- Het maakt het mogelijk om in client-servermodus te werken, waarbij de informatie en gegevens op de server worden gehost en de netwerkterminals of clients alleen toegang hebben tot de informatie.
- Het stelt u ook in staat om informatie van andere dataservers te beheren .
Dit systeem bevat een beperkte versie, MSDE genaamd, met dezelfde database -engine maar gericht op kleinere projecten, die in de versies van 2005 en 2008 de SQL Express Edition wordt, een editie die gratis wordt verspreid .
Het is gebruikelijk om via het zogenaamde ADP ( Access Data Project ) complete projecten te ontwikkelen met Microsoft SQL Server en Microsoft Access . Op deze manier wordt de database ( Microsoft SQL Server ) aangevuld met de ontwikkelomgeving ( VBA Access), door de implementatie van two-tier applicaties door middel van Windows -formulieren .
SQLCMD , osql of PowerShell worden gebruikt om SQL af te handelen via opdrachtregels .
Voor de ontwikkeling van complexere applicaties (drie of meer lagen) bevat Microsoft SQL Server toegangsinterfaces voor verschillende ontwikkelplatforms, waaronder .NET , maar de server is alleen beschikbaar voor besturingssystemen .
Het type NUMERIC is verbeterd om te worden gebruikt als kolom-ID vanaf versie 2008 R2.
Programmeren
T-SQL
T-SQL (Transact-SQL) is het belangrijkste middel voor interactie met de server, waarmee belangrijke bewerkingen in SQL Server kunnen worden uitgevoerd, waaronder het maken en wijzigen van databaseschema's, het invoegen en wijzigen van gegevens in de database, evenals het beheer van de server als zodanig. Dit wordt gedaan door T-SQL-statements en -declaraties te verzenden die door de server worden verwerkt en de resultaten (of fouten) worden teruggestuurd naar de clienttoepassing.
SQL-native client
SQL Native Client is de gegevenstoegangsbibliotheek voor Microsoft SQL Server versie 2005 en latere clients. Implementeert native ondersteuning voor SQL Server-functies, waaronder het uitvoeren van gegevensstromen in tabelvorm, ondersteuning voor gespiegelde SQL Server-databases, volledige ondersteuning voor alle door SQL Server ondersteunde gegevenstypen, asynchrone sets van bewerkingen, querymeldingen, ondersteuning voor codering en het ontvangen van meerdere resultatensets in een enkele databasesessie. SQL Native Client wordt gebruikt als een uitbreiding op SQL Server-plug-ins voor andere technologieën voor gegevenstoegang, waaronder ADO of OLE DB. SQL Native Client kan ook direct worden gebruikt, waarbij de gegevenstoegangslagen worden omzeild.
Edities en diensten
Elke editie van SQL Server heeft verschillende versies met verschillende prijzen (voor elke versie) die ook afhankelijk zijn van de fysieke configuratie van de server. [ 14 ] De belangrijkste versies worden hieronder weergegeven:
Onderneming
Het bevat alle functies (uitgeschakeld in andere edities) Het is het type versie met de meeste privileges op de markt.
ontwikkelaar
Een editie met dezelfde kenmerken als de Enterprise, om alleen in een ontwikkelomgeving te installeren en niet in productie. Als het is ontwikkeld voor een standaardeditie, moet rekening worden gehouden met de functies die voor deze versie zijn uitgeschakeld.
Standaard
Een beperkte versie, afhankelijk van de configuratie van de server en zijn kenmerken, ontworpen voor lagere servers.
Bijvoorbeeld: in versie 2012 ondersteunt de Enterprise-editie een onbeperkt aantal processors en hot - addating van geheugen en CPU's zonder service- of serveronderbreking; terwijl de Standard-editie beperkt is tot 16 processors en geen "hot add" ondersteunt.
Express
Een gratis versie die de creatie van beperkte databases met basisfuncties mogelijk maakt om applicaties te ondersteunen die een eenvoudige oplossing nodig hebben voor het opslaan van een beperkte hoeveelheid gegevens, of gebruikers met beperkte middelen en behoeften.
In de 2012-versie kan deze editie maximaal 1 GB geheugen gebruiken, en niet meer dan 10 GB opslaan, het werkt op servers met maximaal vier processors. Deze beperkingen worden gehandhaafd in de versie van 2014 (4 cores, 1GB ram en 10Gb per database).
SQLAzure
Het is een versie van SQL Server in de cloud, waarmee u maandelijks voor de service kunt betalen zonder dat u een fysieke server hoeft te onderhouden (On Premise). Het bedrijf betaalt alleen voor de service en de service wordt beheerd via serverfarms op verschillende plaatsen in de wereld.
Met SQL Azure is het niet nodig om een fysieke server te installeren, onderhouden of upgraden; ondanks het feit dat deze dienst afhankelijk is van aspecten die verband houden met veiligheidsproblemen met betrekking tot zijn aanwezigheid buiten het bedrijf en de beschikbaarheid van een internetverbinding.
Een tijdlang werd de service uitgebreid met de mogelijkheid om een virtuele server over het netwerk te creëren, en SQL Server te installeren, evenals een van de concurrerende services, en de virtuele server te beheren alsof het een lokale fysieke server was (hoewel het niet fysiek toegankelijk). ); en je kunt onderscheid maken tussen de oorspronkelijke optie die PAAS heet ( Platform as a Service : Platform as a Service ) en de nieuwe optie van virtuele servers genaamd IAAS ( Infrastructuur as a Service: Infrastructure as a Service ).
Deze service wordt sinds 2009 door Microsoft geleverd en sluit aan bij vergelijkbare services van externe bedrijven .
Gebruikersinterface
SQL Server biedt een paar interfaces die in de loop der jaren zijn veranderd, waarvan de bekendste de grafische interfaces zijn die worden gebruikt als een standaard ontwikkelingstool voor ontwikkelaars en beheerders .
De grafische interface omvatte tot 2005 de Enterprise Manager met een boomstructuur van de verschillende objecten en de mogelijkheid om ze te beheren; en de Query-analysator als tekstuele interface om TSQL-commando's uit te voeren.
In de versie van 2005 werden de twee tools samengevoegd tot één - de SQL Server Management Studio (SSMS), en vanaf 2008 de mogelijkheid om met Visual Studio te werken - de standaard Microsoft-ontwikkelinterface (naar de verschillende talen , BI , enz.). Een andere optionele interface is het gebruik van de Command Line , met tools zoals SQLCmd, ISQL, OSQL die de uitvoering van scripts en batchverwerking mogelijk maken . Sinds 2008 kan het worden ontwikkeld met SQLCmd (SQL Command) via SSMS zonder verbinding te maken met de tekstuele interface van Windows. Een andere optie op het gebied van scripts is het gebruik van de Powershell - scripttaal van Microsoft .
Naast de standaard interfaces van SQL Server, kunt u TSQL-commando's uitvoeren met verbindingstools zoals ODBC en OLE-DB. [ 15 ]
Diensten
In tegenstelling tot databasesystemen zoals Microsoft Access die "passief" zijn en een bestand bevatten waarmee u verbinding moet maken en de uitvoering van de opdrachten wordt uitgevoerd op de client (de computer van de gebruiker), zijn er in SQL Server een aantal services , software die door het systeem in het geheugen van de server worden uitgevoerd en daarom profiteren van de mogelijkheden van de server die krachtiger is dan de clients, netwerkcongestie voorkomen en taken kunnen plannen die worden uitgevoerd, zelfs als de client dat niet doet Bent u verbonden .
Belangrijkste diensten:
- SQL Server - De "engine" van het systeem
- SQL Agent - Uitvoeren van taken (jobs, geplande scripts) en verzenden van waarschuwingen bij zware en onregelmatige belasting van het systeem
- Full-Text Filter Daemon Launcher - Gebruik de speciale indexen van "Full text search" voor geavanceerd zoeken naar tekst
- SQL Browser - De "luisteraar" gewijd aan verzonden commando's en omleiden naar hun bestemming
- SSIS Server - De werking van SSIS (de ETL -tool )
- SSAS Server - De werking van SSAS (de OLAP -tool )
- SSRS Server - De werking van SSRS (de rapportagetool)
Basismogelijkheden en tools
Databases
In elke SQL Server-installatie zijn er 4 systeemdatabases en de mogelijkheid om door de gebruiker nieuwe databases aan te maken, waarin gegevens in tabellen worden opgeslagen.
Deze databases, gemaakt door gebruikers, bevatten in principe een gegevensbestand (met het achtervoegsel mdf) met de tabellen en de verschillende objecten op databaseniveau; en een logbestand (met achtervoegsel ldf) met open transacties en gesloten transacties, Afhankelijk van het geselecteerde herstelmodel (alle databasewijzigingen sinds de laatste back-up kunnen worden verzameld in het logbestand). Een set gegevensbestanden kan worden gemaakt naast de hoofdbestand (met het ndf-achtervoegsel) voor efficiëntieoverwegingen, partities van de werkbelasting tussen harde schijven, enz.
Systeemdatabases:
- master - Alle procedures, functies en systeemtabellen die worden gebruikt door alle databases en die automatisch worden geïnstalleerd, evenals die welke zijn gemaakt door systeembeheerders. Daarnaast worden alle definities met betrekking tot beveiliging op serverniveau in deze database opgeslagen.
- msdb - Opslag van agenttaken, CLR -codes samengevoegd in het systeem, SSIS-pakketten en meer.
- model - De databasesjabloon. Elke nieuwe database wordt gemaakt als een kopie van deze database, tenzij er expliciet iets anders is gedefinieerd.
- tempdb - Tijdelijke database die elke keer dat de service opnieuw wordt gestart opnieuw wordt gemaakt. Het wordt gebruikt om tijdelijke tabellen op te slaan die door gebruikers of het systeem zijn gemaakt (bijvoorbeeld in complexe sorteringen).
Vaste en tijdelijke tabellen
Vanuit logisch perspectief worden de gegevens opgeslagen in databases in tabellen, waarmee de theorie van relationele databases wordt geïmplementeerd. De tabel is verdeeld in rijen en kolommen (ook wel records en velden genoemd). De tabellen kunnen vast of tijdelijk zijn, terwijl ze in het tweede geval fysiek in de tempdb-database bestaan, en automatisch worden verwijderd in geval van verbreking van de sessie of de verbinding met de server, afhankelijk van het type tijdelijke tabel.
Vanuit fysiek perspectief verdeelt het systeem de databasebestanden in 64 KB Extents, elk in acht 8 KB-pagina's. Over het algemeen wordt elke omvang toegewezen aan een tabel of een index , behalve voor kleine tabellen; en elke pagina is altijd toegewezen aan een specifieke tabel. Het systeem is verantwoordelijk voor het laten groeien van de bestanden, volgens de instellingen van de gebruiker, en het toewijzen van omvang en pagina's aan de tabellen.
Tabellen kunnen worden geïndexeerd. De indexen worden naast de tabel opgeslagen (Non Clustered Index) of zijn de tabel zelf (Clustered Index). Indexen helpen bij het vinden van gegevens in tabellen (zoals bestanden in bibliotheken), het sorteren ervan en het definiëren van primaire sleutels .
Tussen de tabellen kan een een-op-veel-relatie worden gemaakt .
Naast de gebruikerstabellen zijn er tabellen die metagegevens opslaan: gegevens over het systeem zelf, de verschillende objecten, de rechten, statistieken over de prestaties van het systeem (DMV), enz.
Gegevenstypen
Voor elke kolom in een tabel en elke variabele of parameter wordt een type gegevens gedefinieerd dat erin moet worden opgeslagen, waaronder:
- Getallen : gehele en niet-gehele getallen in verschillende groottes en op verschillende nauwkeurigheidsniveaus; en optionele automatische verhoging.
- Teksten : Strings van verschillende lengtes en verschillende mogelijkheden om verschillende talen te ondersteunen.
- Datums : datums met verschillende nauwkeurigheidsniveaus, van hele dagen tot breuken van minder dan een seconde, met ondersteuning voor datums uit het begin van de 20e eeuw of de Gregoriaanse kalender, en de mogelijkheid om onderscheid te maken tussen verschillende tijdsbestedingen.
- XML : Tekstuele data (strings) die standaard datasets vertegenwoordigen (SGML-standaard).
- Binaire gegevens : Gegevens opgeslagen als binaire gegevens (bits en bytes), waardoor het mogelijk is om grafische bestanden enz. op te slaan.
- Geografie : standaardweergave van geografische informatie, zoals staten, geografische gebieden, plaatsen; en berekeningen als afstanden.
- Geometrie : Standaard weergave van punten, lijnen, vlakken in het vlak; en de relaties daartussen.
- Hiërarchie : Standaard weergave van hiërarchische informatie zoals stuklijsten, rapportagerelaties tussen medewerkers, etc.
Bekeken
Weergaven vertegenwoordigen over het algemeen opdrachten voor gegevensextractie, die worden opgeslagen zonder de gegevens (die in de tabellen zijn opgeslagen). Deze optie stelt ons in staat om complexe of standaard extracten te maken, ze op te slaan als views en de views te gebruiken zonder de commando's opnieuw te typen of de code te bewaren waar ze verschijnen. Bovendien is het een zeer belangrijk middel om selectieve leesrechten te verlenen (voor het geval we een gebruiker in staat willen stellen de kolommen of rijen van een tabel gedeeltelijk te bekijken).
Een weergave kan worden beschouwd als een virtuele tabel of een opgeslagen query. De gegevens die toegankelijk zijn via een weergave worden niet opgeslagen in een ander object dan de database. Wat in de database wordt opgeslagen, is een SELECT-instructie. Het resultaat van de SELECT-instructie vormt de virtuele tabel die de weergave retourneert. De gebruiker kan zo'n virtuele tabel gebruiken door te verwijzen naar de weergavenaam in Transact-SQL-statements, op dezelfde manier als naar tabellen wordt verwezen. Weergaven worden gebruikt voor sommige of al deze functies:
• Beperk gebruikerstoegang tot specifieke rijen in een tabel. Een werknemer bijvoorbeeld toestaan om alleen de rijen te zien waarin zijn werk is opgeslagen in een tabel voor het bijhouden van werkactiviteiten.
• Beperk gebruikerstoegang tot specifieke kolommen. Sta werknemers die niet op de salarisadministratie werken bijvoorbeeld toe de naam, het kantoor, het telefoonnummer en de afdelingskolommen van de werknemerstabel te zien, maar sta niet toe dat ze de kolommen met salarisgegevens of andere persoonlijke informatie zien.
• Combineer kolommen uit meerdere tabellen zodat ze als één tabel verschijnen.
• Voeg informatie toe in plaats van de details te presenteren. Bijvoorbeeld het weergeven van de som van een kolom of de maximale of minimale waarde van een kolom.
Weergaven worden gemaakt door de SELECT-instructie te definiëren die de gegevens ophaalt die door de weergave worden gepresenteerd. De gegevenstabellen waarnaar wordt verwezen door de SELECT-instructie staan bekend als de basistabellen voor de weergave. Weergaven in alle versies van SQL Server kunnen worden bijgewerkt (kan het doel zijn van UPDATE-, DELETE- of INSERT-instructies) zolang de wijziging slechts een van de basistabellen van de weergave beïnvloedt.
Opgeslagen procedures
Procedures zijn TSQL-opdrachtscripts, die met verschillende parameters kunnen worden uitgevoerd. Bijvoorbeeld een procedure die het jaarnummer als parameter verkrijgt en een verkoopoverzichtstabel bijwerkt, met de verkopen van de agenten in dat jaar, op basis van de verkoopregistratietabel.
Opgeslagen procedures kunnen het beheren van uw database en het bekijken van informatie over uw database en zijn gebruikers veel gemakkelijker maken. Opgeslagen procedures zijn een vooraf gecompileerde verzameling SQL-instructies en optionele flow control-instructies die onder één naam zijn opgeslagen en als een eenheid worden verwerkt. Opgeslagen procedures worden opgeslagen in een database; ze kunnen vanuit een applicatie worden uitgevoerd en bieden door de gebruiker gedeclareerde variabelen, voorwaardelijke uitvoering en andere krachtige programmeerfuncties. Opgeslagen procedures kunnen programmastroom, logica en databasequery's bevatten. Ze kunnen parameters accepteren, parameterresultaten leveren, enkele of meerdere resultaatsets retourneren en waarden retourneren.
De voordelen van het gebruik van opgeslagen procedures in SQL Server in plaats van Transact-SQL-programma's die lokaal op clientcomputers zijn opgeslagen, zijn dat ze:
• modulaire programmering mogelijk maken.
U kunt de procedure één keer maken, in de database opslaan en zo vaak als u wilt vanuit het programma oproepen. Een specialist in databaseprogrammering kan opgeslagen procedures maken, die vervolgens onafhankelijk van de broncode van het programma kunnen worden gewijzigd. Ze vergemakkelijken het onderhoud.
• Snellere uitvoering mogelijk maken.
In situaties waarin een grote hoeveelheid Transact-SQL-code nodig is, of als bewerkingen meerdere keren worden uitgevoerd, kunnen opgeslagen procedures sneller zijn dan batches van Transact-SQL-code. Procedures worden geparseerd en geoptimaliseerd op het moment dat ze worden gemaakt, en het is mogelijk om een versie van de procedure te gebruiken die zich in het geheugen bevindt nadat deze voor de eerste keer is uitgevoerd. Transact-SQL-instructies die elke keer dat ze moeten worden uitgevoerd, meerdere keren door de client worden verzonden, moeten worden gecompileerd en geoptimaliseerd wanneer ze door SQL Server worden uitgevoerd.
• Ze kunnen het netwerkverkeer verminderen.
Een bewerking die honderden regels Transact-SQL-code vereist, kan worden uitgevoerd met een enkele instructie die de code in een procedure uitvoert, in plaats van honderden regels code over het netwerk te verzenden.
• Ze kunnen worden gebruikt als beveiligingsmechanisme.
Gebruikers kunnen machtigingen krijgen om een opgeslagen procedure uit te voeren, zelfs als ze geen machtiging hebben om de instructies van de procedure rechtstreeks uit te voeren.
Door de gebruiker gedefinieerde functies
Functies zijn een object dat sommige mogelijkheden van views combineert met andere van procedures. Net als weergaven kunnen ze gegevens extraheren en berekeningen uitvoeren, waarbij een resultaat wordt geretourneerd aan de gebruiker of het programma dat ze heeft uitgevoerd. Naast procedures bevatten ze TSQL-codes en kunnen ze met parameters worden uitgevoerd.
Functies retourneren een waarde of een reeks waarden.
Door de gebruiker gedefinieerde functies worden gemaakt met de instructie CREATE FUNCTION, gewijzigd met de instructie ALTER FUNCTIONen verwijderd met de instructie DROP FUNCTION. Alle volledig gekwalificeerde functienamen (database_name.owner_name.function_name) die door de gebruiker zijn gedefinieerd, moeten uniek zijn. Als u door de gebruiker gedefinieerde functies wilt maken, wijzigen of verwijderen, moet u beschikken over CREATE FUNCTION. Andere gebruikers dan de eigenaar moeten EXECUTE-machtiging hebben voor een functie en alleen dan kunnen ze deze gebruiken in een Transact-SQL-instructie. Als u tabellen wilt maken of wijzigen met verwijzingen naar door de gebruiker gedefinieerde functies in de beperking CHECK, clausule DEFAULTof definitie van een berekende kolom, moet u ook toestemming hebben REFERENCESvoor de functies. Transact-SQL-fouten die ervoor zorgen dat een instructie wordt geannuleerd en doorgaat naar de volgende instructie in de module, zoals triggers of opgeslagen procedures, worden binnen een functie anders behandeld. In functies zorgen deze fouten ervoor dat de uitvoering van de functie stopt. Dit zorgt ervoor dat de functie die de instructie heeft aangeroepen, wordt afgebroken. Een door de gebruiker gedefinieerde functie heeft nul of meerdere invoerparameters en retourneert een scalaire waarde of een tabel. Een functie kan maximaal 1024 invoerparameters hebben. Wanneer een functieparameter een standaardwaarde aanneemt, moet het sleutelwoord worden opgegeven DEFAULTbij het aanroepen van de functie om de standaardwaarde te krijgen. Dit gedrag wijkt af van de standaardwaardeparameters in opgeslagen procedures, waarvoor het weglaten van de parameter impliceert dat de standaardwaarde moet worden opgegeven. Door de gebruiker gedefinieerde functies ondersteunen geen uitvoerparameters.
Gedistribueerde zoekopdrachten
Gedistribueerde zoekopdrachten hebben toegang tot gegevens uit meerdere bronnen, die op één computer of op verschillende computers kunnen zijn opgeslagen. Microsoft SQL Server 2000 ondersteunt gedistribueerde query's via OLE DB Gedistribueerde query's bieden gebruikers van SQL Server toegang tot:
• Gedistribueerde gegevens die zijn opgeslagen over meerdere SQL Server-instanties.
• Heterogene gegevens die zijn opgeslagen in verschillende relationele en niet-relationele gegevensbronnen die toegankelijk zijn via een OLE DB-provider.
OLE DB-providers geven gegevens weer in tabelvormige objecten die rijensets worden genoemd. Met SQL Server 2000 kan naar rijensets van OLE DB-providers worden verwezen in Transact-SQL-instructies alsof het een SQL Server-tabel is. Er kan rechtstreeks naar tabellen en weergaven van externe gegevensbronnen worden verwezen in Transact-SQL SELECT-, INSERT-, UPDATE- en DELETE-instructies. Omdat gedistribueerde query's OLE DB gebruiken als de onderliggende interface, hebben ze toegang tot traditionele relationele DBMS-systemen met SQL-queryprocessors, evenals gegevens die worden beheerd door gegevensbronnen van verschillende kracht en verfijning. Zolang propriëtaire software de gegevens in een rijenset in tabelvorm via de OLE DB-provider blootlegt, kunnen de gegevens worden gebruikt in gedistribueerde query's. Opmerking: het gebruik van gedistribueerde query's in SQL Server is vergelijkbaar met de functionaliteit van gekoppelde tabellen via ODBC, voorheen ondersteund door Microsoft Access. Deze functionaliteit is nu ingebouwd in SQL Server met OLE DB als interface voor externe gegevens.
Transacties
Een transactie is een reeks opdrachten die volledig of helemaal niet wordt uitgevoerd: alles of niets. Als bijvoorbeeld een geldsom van de ene bankrekening naar de andere is overgemaakt en beide rekeningen moeten worden bijgewerkt bij storting en opname; het is verplicht dat beide accounts samen worden bijgewerkt, of geen van beide (in het geval dat een van de updates mislukt); om inconsistente gevolgen van een storting zonder enige opname te voorkomen, of vice versa. Daarom is een transactie een opeenvolging van bewerkingen die worden uitgevoerd als een enkele logische werkeenheid. Een logische werkeenheid moet vier eigenschappen hebben, de zogenaamde ACID-eigenschappen (atomiciteit, consistentie, isolatie en duurzaamheid), om te kwalificeren als een transactie:
- Atomiciteit
Een transactie moet een atomaire werkeenheid zijn, ongeacht of alle wijzigingen in de gegevens worden aangebracht of niet.
- Samenhang
Wanneer het is voltooid, moet een transactie alle gegevens in een consistente staat achterlaten. In een relationele database moeten alle regels worden toegepast op transactiewijzigingen om de integriteit van alle gegevens te behouden. Alle interne datastructuren, zoals B-tree-indexen of dubbel gekoppelde lijsten, moeten aan het einde van de transactie correct zijn.
- Isolatie
Wijzigingen die worden aangebracht door gelijktijdige transacties moeten worden geïsoleerd van wijzigingen die worden aangebracht door andere gelijktijdige transacties. Een transactie ziet de gegevens in de staat waarin deze zich bevond voordat deze werd gewijzigd door een andere gelijktijdige transactie of nadat de tweede transactie is voltooid, maar ziet geen tussenstatus. Dit staat bekend als serialisatie omdat het resultaat de mogelijkheid is om de initiële gegevens opnieuw te laden en een reeks transacties opnieuw af te spelen om te eindigen met de gegevens in dezelfde staat als nadat de oorspronkelijke transacties waren uitgevoerd.
- Duurzaamheid
Zodra een transactie is afgesloten, zijn de effecten ervan permanent in het systeem. Wijzigingen blijven bestaan, zelfs in het geval van een systeemfout.
SQL Server heeft een beperkte mogelijkheid om transacties te nesten.
De optimalisatie
De optimizer is een onderdeel van de software dat "de beslissing neemt" over hoe elk commando zal worden uitgevoerd, zodat de uitvoering het meest efficiënt zal zijn, of in ieder geval efficiënt genoeg (dat wil zeggen efficiënt genoeg om te voorkomen dat er naar een andere opdracht wordt gezocht). oplossing, die nog efficiënter is, de prijs van de extra zoekopdracht "kost" meer dan de besparing op hulpbronnen).
SQL is een declaratieve taal , waarin de ontwikkelaar verklaart dat hij wil extraheren of bijwerken zonder aan te geven hoe (in tegenstelling tot imperatieve talen , en daarom speelt de optimizer een leidende rol, die volgens de statistieken die het systeem opslaat over gegevensdistributies in tabellen, indexen en interne regels; neemt de juiste beslissing.
Bevoegdheden en gegevensbeveiliging
Om verbinding te maken met SQL Server is een Login (gebruiker op serverniveau) vereist. Wanneer het beveiligingsbeleid is gedefinieerd als Windows-verificatie en de server wordt gecombineerd met de domeindefinities , worden de aanmeldingen gedefinieerd in de Active Directory . Wanneer de definitie SQL Server Authentication is, worden de logins (gebruiker en wachtwoord) gedefinieerd in de SQL Server zelf. Bijgevolg moet u zich in het eerste geval alleen identificeren met een naam en wachtwoord wanneer u verbinding maakt met het netwerk, en vervolgens maakt u automatisch verbinding met alle servers die Windows-authenticatie zijn (met global Login); en in het tweede geval moet u zich identificeren wanneer u verbinding maakt met elke SQL Server Authentication-server (telkens met een lokale Login).
Op databaseniveau wordt de gebruiker geïdentificeerd als een gebruiker die over het algemeen gerelateerd is aan de login (die op serverniveau is), en de privileges voor de gebruiker bestaan alleen op databaseniveau (naast de privileges om in te loggen). Het verlenen van algemene rechten kan worden ondersteund met lijsten met serverrollen (rollen op serverniveau) of databaserollen (specifieke rollen op databaseniveau), elk met specifieke privileges voor een specifieke rol; en elke gebruiker die aan een van deze rollen is gekoppeld, krijgt de bijbehorende privileges. De beheerder kan ook specifieke rechten toekennen en andere databaserollen maken (er kunnen geen serverrollen worden gemaakt).
Bevoegdheden op serverniveau omvatten de mogelijkheid om databases te maken, Jobs te gebruiken, back-ups en herstel van databases te maken, serverdefinities te wijzigen, enzovoort. Bevoegdheden op databaseniveau maken het mogelijk om gegevens te extraheren en bij te werken, objecten zoals procedures en tabellen te maken, deze objecten te gebruiken, enzovoort. Als algemene regel kunt u rechten toekennen (Grant), bestaande privileges intrekken (Revoke) en privileges die nog niet bestaan weigeren (Deny).
Andere servicetools
Naast de elementaire mogelijkheden als relationele databasebeheertool (tabellen maken, relaties ertussen definiëren, transacties beheren, indexen maken, enz.), ondersteunt SQL Server een groeiende lijst van andere servicetools; afgezien van tools van derden die of voltooi wat bestaat.
Back-ups en herstel
Naast alternatieve oplossingen op het niveau van het besturingssysteem (back-up van databasebestanden), is er een tool ingebouwd in SQL Server die een volledige of differentiële back-up mogelijk maakt, volgens het vooraf gedefinieerde herstelmodel. en een volledig herstel of herstel op een bepaald tijdstip. Behalve een databaseback-up kunt u ze ook via een script back-uppen (met of zonder de gegevens). Vanaf 2008 kunt u back-upbestanden comprimeren.
Compressie
Vanaf 2008 is de compressieoptie toegevoegd, die het mogelijk maakt om de fysieke grootte van tabellen en indexen te comprimeren, en het volume van harde schijven efficiënter te gebruiken en IO-bewerkingen te verminderen (waardoor de belasting van de CPU toeneemt). Zoals eerder vermeld, kunt u de back-upbestanden ook comprimeren.
Replicatie, hoge beschikbaarheid en noodherstel
Sommige tools maken het mogelijk om gedeeltelijke of volledige replica's van databases te maken, de beschikbaarheid te verbeteren en te herstellen van rampen; afgezien van de optie om een back-up te maken van de databases en deze te herstellen, een optie die erg traag zou moeten zijn.
De kopieën die door deze tools worden gemaakt, kunnen worden gebruikt als een onmiddellijk beschikbare back-up in het geval dat het systeem faalt, evenals een replica in een subsysteem, onafhankelijk van het bronsysteem, voor taakverdeling; en dat updates op de database worden uitgevoerd en dat herstelbewerkingen voor rapporten op de replica worden uitgevoerd.
Onder deze tools kunnen we de replicatie noemen die het mogelijk maakt om een gesynchroniseerde replica van de database te maken, de Mirroring die elke update in de mirror-server uitvoert die wordt uitgevoerd in de oorspronkelijke server, Log Shipping die het mogelijk maakt om een gesynchroniseerde kopie op te slaan door middel van logbestanden (Log) met alle updates op de bronserver, en high-availability en disaster recovery tools (HADR, sinds 2012) die Mirroring-problemen oplossen in relatie tot de reactietijd van technische storingen en beschikbaarheid van kopieën in vredestijd.
taakplanning
De agent is de dienst die verantwoordelijk is voor het plannen van taken en is verantwoordelijk voor het zelfstandig uitvoeren ervan. Over het algemeen voert hij onderhoudstaken, complexe ETL- taken , back- ups , etc. uit.
Onderhoud
Om de prestaties van het systeem te verbeteren, is het noodzakelijk om de statistieken bij te houden die door de optimizer worden gebruikt, de fysieke bestanden te ordenen, enz.; en speciale tools worden voor deze doeleinden gebruikt, die periodiek worden uitgevoerd door geplande taken, en op een gecoördineerde manier met de ETL- en back-uptaken.
Servicemakelaar
Een technologie die in 2005 werd toegevoegd en die een servicegerichte architectuur implementeert , en die asynchrone uitvoeringen mogelijk maakt: allereerst om berichten te verzenden tussen verschillende applicaties die tegelijkertijd draaien, maar ook om procedures asynchroon uit te voeren, op een 'fire-and-forget'- manier - een procedure die in een andere sessie wordt uitgevoerd dan de sessie waarmee deze is gestart, en beide procedures worden onafhankelijk van elkaar uitgevoerd.
E-mails versturen
SQL Server heeft de mogelijkheid om e -mail te verzenden via code. Deze functionaliteit wordt over het algemeen gebruikt om waarschuwingen te sturen over systeemproblemen (bijvoorbeeld als het CPU-gebruik is gestegen tot een vooraf gedefinieerde drempel of als het ETL- proces is mislukt), maar ook wanneer het proces met succes is voltooid.
Zoeken in volledige tekst
Een tool die het mogelijk maakt om tekstuele kolommen te indexeren als teksten en niet alleen als strings; en complexe zoekopdrachten uitvoeren afhankelijk van de betekenis van de tekst en de taal. We zoeken bijvoorbeeld naar een werkwoord en we willen alle voorkomens van zijn vervoegingen krijgen.
Spoor
Deze tools omvatten de Trace die het mogelijk maakt om activiteiten te traceren om belastingen en storingen te behouden, en gegevensbeveiliging (gegevensherstel is niet toegestaan), de Profiler die het mogelijk maakt om de uitgevoerde opdrachten en de gebeurtenissen op te sporen de server, en Extended Events die in 2008 werd toegevoegd en de profiler verandert dankzij de lage handtekening (resourceverbruik en invloed op de serverprestaties).
Afgezien hiervan kunnen 2 typen triggers worden gebruikt om wijzigingen en activiteiten bij te houden: DML-triggers die vooraf zijn gedefinieerd in tabellen en weergaven en die worden geïnitieerd door instructies voor gegevensupdate (Selecteren / bijwerken / verwijderen), en DDL-triggers die worden gestart door wijzigingen in de objecten zelf (en niet de gegevens), op database- of serverniveau.
CLR samenvoegen
Vanaf 2005 kunt u eenvoudig procedures, functies en aggregatiefuncties die zijn ontwikkeld in de CLR combineren tot SQL Server . U moet de code ontwikkelen in een van de .NET -ontwikkeltools , een DLL -bestand maken en dit in het systeem samenvoegen. Het voordeel van deze technologie zijn de mogelijkheden in problemen die niet uitsluitend databases zijn (datamanipulatie), en omvatten complexe berekeningen of tekstuele manipulaties van strings.
Business intelligence-tools
Een typische installatie omvat ook Business Intelligence ( BI ) tools :
SSIS (SQL Server Integration Services)
Een ETL -tool waarmee gegevens uit verschillende bronnen (niet alleen SQL Server) kunnen worden geëxtraheerd, deze gegevens kunnen worden getransformeerd en kunnen worden geladen (meestal maar niet noodzakelijk naar een datawarehouse ).
SSAS (SQL Server Analysis Services)
Een hulpmiddel voor het maken van multidimensionale (niet-relationele) databases , die kunnen worden verkend door gegevens op verschillende groepsniveaus te extraheren, een som tot in de details te berekenen en MDX (een SQL-achtige taal, aangepast aan multidimensionale databases) te gebruiken.
SSRS (SQL Server Reporting Services)
Een tool om rapporten te maken en op te maken, ze weergaverechten toe te kennen en te distribueren. Ze kunnen worden bekeken met een webbrowser en kunnen worden geëxporteerd naar Excel , PDF , enz. de gegevens worden meestal uit het datawarehouse of OLAP gehaald.
Nadelen
- Sinds de versie van SQL Server 2012 zijn query's die zijn geschreven in T-SQL niet achterwaarts compatibel met de versie van SQL Server 2008 of eerder.
- Op 32-bits versies gebruikt SQL Server de Address Windowing Extension (AWE) voor adressering boven 4 GB. Hierdoor maak je geen gebruik van dynamisch geheugenbeheer en kun je maximaal 64 GB gedeeld geheugen hosten. Deze beperking is exclusief voor 32-bits besturingssystemen; op 64-bits besturingssystemen is het maximale geheugen dat kan worden aangesproken in de Standard Edition 64 Gb en in de Enterprise Edition 4Tb
Zie ook
Referenties
- ^ Guthrie, Scott (7 maart 2016). "Aankondiging van SQL Server op Linux" (html) . Microsoft (in het Engels) . Gearchiveerd van het origineel op 7 maart 2016 . Ontvangen 3 maart 2019 .
- ^ a b Domínguez, Andres Zamora (25 oktober 2017). "Microsoft SQL Server kan nu draaien op Linux GNU." (html) . Pandora FMS (in het Engels) . Gearchiveerd van het origineel op 24 november 2018 . Ontvangen 24 november 2018 . «Op 28 december 2016 – feest van de Onnozele Kinderen, die speciale dag waarop Spaanstaligen de hele dag grappen maken – werd de verwerving van een lidmaatschap van het type “Platinum” aangekondigd door het bedrijf Microsoft ® in de Linux Foundation en de lancering van Microsoft SQL Server®. »
- ^ Lerner, Reuve M. "SQL Server op Linux" (html) . Geekgids (in het Engels) . Gearchiveerd van het origineel op 3 augustus 2017 . Ontvangen 24 november 2018 . Maar zelfs de meest sceptische open-sourcefan moet toegeven dat Microsoft de afgelopen jaren is veranderd. Het heeft veel ontwikkelaarstools en bibliotheken als open source uitgebracht en het is begonnen Linux op te nemen als een ondersteund platform voor sommige van zijn software. »
- ^ "Maak je klaar voor SQL Server 2017" (html) . Microsoft (in het Engels) . Gearchiveerd van het origineel op 1 mei 2017 . Ontvangen 24 november 2018 . "Breng de toonaangevende prestaties en beveiliging van SQL Server naar Windows-, Linux- en Docker-containers. »
- ↑ Ontwikkelingsgeschiedenis van SQL Server
- ↑ Wat is er nieuw in Microsoft SQL Server 7
- ↑ Wat is er nieuw in Microsoft SQL Server 2000
- ↑ Wat is er nieuw in SQL Server 2005
- ↑ Wat is er nieuw (SQL Server 2008)
- ↑ Wat is er nieuw in Microsoft SQL Server 2008 R2
- ↑ Wat is er nieuw in SQL Server 2012
- ↑ Wat is er nieuw in SQL Server 2014
- ↑ "Alles wat u moet weten over SQL-serverlicenties en CAL's" . Zachte handelaar (in het Engels) . 15 september 2021 . Ontvangen 27 september 2021 .
- ↑ Functies ondersteund door SQL Server 2014-edities
- ↑ Verbindingsstrings
Externe links
- Microsoft SQL Server-webpagina
- Microsoft SQL Server-ontwikkelaars
- boeken tentoongesteld
- Microsoft SQL Server 2017
- Database Journaal Database Journaal
- Microsoft SQL Server 2012 downloadpagina