« Microsoft SQL Server/Introduction » : différence entre les versions — Wikilivres


Article Images

Ligne 9 :

[[Image:Microsoft SQL Server - connexion SQLExpress.PNG|vignette|Connexion de SQL Server Management Studio à une base SQLExpress.]]

[[Image:Microsoft SQL Server - bases gratuites.PNG|vignette|Menu avec une base SQL Compact puis une SQLExpress.]]

Ce logiciel n'estinitialement disponible que sur le système d'exploitation {{w|Microsoft Windows}} depuis 1989, est installable sur Linux depuis mars 2016<ref>https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu</ref>, voire sur Mac OS avec la version {{w|Docker (logiciel)|Docker}}<ref>https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker</ref>.

# La version payante nécessite d'acheter soit une licence pour le serveur (à partir de 900 €) plus une par ordinateur client (autour de 15 €), soit une licence par processeur à partir de {{unité|4000|€}}<ref>http://blogs.developpeur.org/christian/archive/2011/09/12/Prix-sql-server-en-france-pour-SQL-Server-2008-R2.aspx</ref>. Elle permet d'utiliser des bases jusqu'à {{unité|16|To}} avec des tables à 30 000 colonnes<ref>http://technet.microsoft.com/fr-fr/library/ms143432.aspx</ref>.

# La version gratuite s'appelle {{w|SQL Server Express}}<sup>[https://msdn.microsoft.com/fr-fr/sqlserver2014express.aspx Télécharger]</sup> (anciennement {{w|Microsoft SQL Server Desktop Engine}} (MSDE). Elle permet de créer et manipuler des bases de {{Unité|2|Go}} maximum, et de se connecter à d'autres serveurs de base de données existants<ref>http://technet.microsoft.com/fr-fr/library/bb967613.aspx</ref>.

# La version payante nécessite d'acheter soit une licence pour le serveur (à partir de 900 €) plus une par ordinateur client (autour de 15 €), soit une licence par processeur à partir de {{unité|4000|€}}<ref>http://blogs.developpeur.org/christian/archive/2011/09/12/Prix-sql-server-en-france-pour-SQL-Server-2008-R2.aspx</ref>. Elle permet d'utiliser des bases jusqu'à {{unité|16|To}} avec des tables à 30 000 colonnes<ref>http://technet.microsoft.com/fr-fr/library/ms143432.aspx</ref>.

#:Remarque : il existe aussi une édition compacte encore plus limitée (ex : aucune option de de sécurité).

=== SchémaPour PC ===

{{attention|SQL Server se lance ensuite automatiquement à chaque démarrage de la machine, ce qui la ralentit significativement.|clear=left}}

Ligne 27 ⟶ 28 :

=== ODBC ===

En lançant %windir%\system32\odbcad32.exe il est possible de configurer une liaison vers le serveur MS-SQL dans l'onglet "Source de données système".

== Hiérarchie des objets ==

Chaque serveur en SQL Server peut contenir plusieurs types d'objets, dont voici la hiérarchie<ref>http://www.exacthelp.com/2014/12/understanding-sql-server-security.html</ref> :

# Connexion (LOGIN) : plusieurs comptes utilisateurs peuvent utiliser la même connexion au serveur.

# Base de données (DATABASE).

## Rôle (ROLE).

## Utilisateur (USER).

## Schéma (SCHEMA).

### Table (table).

### Vue (view).

### Fonction (FUNCTION).

### Procédure stockée (PROCEDURE).

### ...

## ...

# Point de terminaison (ENDPOINT) : élément permettant de communiquer avec le serveur, précisant par exemple le protocole et l'adresse. Visibles avec <code>select * from sys.endpoints</code>.

== L'interface SQL Server Management Studio ==

[[Image:MS-SQL - travaux.png|vignette|Menu travaux contenant plusieurs jobs dans SSMS 2008.]]

La version 2008 de Server Management Studio (SSMS) peut se télécharger en même temps que le logiciel, ou individuellement sur https://www.microsoft.com/fr-fr/download/confirmation.aspx?id=7593.

[[Image:SSMS 2016 - rechercher et remplacer.PNG|vignette|Rechercher et remplacer dans SSMS 2016.]]

La version 20082016 de Server Management Studio (SSMS) peut se télécharger en même temps que le logiciel SGBD, ou individuellement sur https://wwwmsdn.microsoft.com/fr-fr/downloadlibrary/confirmationmt238290.aspx?id=7593.

Lancer depuis le menu démarrer le programme ''SQL Server Management Studio''.

Ligne 36 ⟶ 55 :

=== Navigation ===

[[Image:MS-SQL - travaux.png|vignette|Menu travaux contenant plusieurs jobs.]]

Le logiciel permet de créer et faire dérouler tous les éléments de chaque base grâce à son explorateur d'objet sur la gauche :

* ''Base1''

Ligne 44 ⟶ 62 :

...

{{attention|Copier une base de données remplace le propriétaire de l'originale par ''AUTORITE NT / SYSTEM''. Il faut ensuite lancer une commande <code>ALTER AUTHORIZATION</code><ref>https://msdn.microsoft.com/fr-fr/library/ms187359%28v=SQL.120%29.aspx</ref> pour rétablir l'initial.|clear=left}}

Ses fonctions de recherche sont limitées à l'option "filtrer" (icône d'entonnoir). PourOn recherchepeut lancer un rechercher/remplacer dans les onglets ouverts, mais pour rechercher une table dans plusieurs bases ou une chaine de caractères dans plusieurs tables ou procédures stockées, il faut donc entrer une requête SQL (voir chapitrechapitres suivantesuivants).

Le menu "Travaux" situé sous les bases permet de programmer des tâches planifiées (ex : troncature de logs ou de tables).

Ligne 52 ⟶ 70 :

Selon l'emplacement courant, certaines barres d'outils s'affichent ou se masquent automatiquement.

=== InterfacesSchémas utilisateurde données ===

Si certains utilisateurs pourront lancer ''Microsoft SQL Server'' depuis le serveur avec des droits limités sur certaines bases, il est plutôt prévu de les faire lire la base via des requêtes HTTP par l'intermédiaire de langages tiers comme [[v:PHP/Base de données|PHP]] ou [[b:Développer en Java/Introduction à JDBC|Java]].

Si toutefois ils ont besoin de lire certaines tables ou d'exécuter des procédures stockées en ODBC il peut être nécessaire de leur donner les droits :

* Menu sécurité (en bas à gauche pas défaut).

* Connexions.

* Clic droit, "nouvelle connexion".

* Dans "Général", indiquer le nom du compte et la base par défaut.

* Dans "Rôles su serveur", cocher les droits demandés.

Par ailleurs, cette interface a été critiquée car contrairement à {{w|phpMyAdmin}} par exemple, elle ne permet ni de copier des bases ou des tables, ni d'insérer des lignes dans des tables de plus de 200 lignes, ni de rechercher des champs ou des valeurs ([[Microsoft_SQL_Server/Procédures_stockées#Recherche|le code pour rechercher est publié dans les chapitres suivants]]).

=== Schéma ===

[[Image:Microsoft SQL Server - Ajout d'une relation entre deux tables.PNG|vignette|Interface d'ajout de relation]]

On distingue deux types d'objets appelés "schémas" : les schémas de base de données et les schémas de sécurité qui seront abordés dans le chapitre sur la gestion des utilisateurs.

Chaque base de données peut contenir plusieurs schémas : les {{w|diagramme de classe|diagrammes de classes}}. En effet, SSMS permet d'y afficher les tables existantes avec leurs champs, et d'y ajouter des index et des relations.

Chaque base de données peut contenir plusieurs schémas de base de donnée : les {{w|diagramme de classe|diagrammes de classes}}. En effet, SSMS permet d'y afficher les tables existantes avec leurs champs, et d'y ajouter des index et des relations.

Pour créer une liaison entre deux tables, faire un clic droit sur l'une, puis "Relations". Dans la fenêtre apparue, cliquer sur "Ajouter". Une relations temporaire apparait alors et il convient de la modifier<ref>https://msdn.microsoft.com/fr-fr/library/ms189049%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396</ref> :

* Cliquer sur les points de suspension de la ligne "Spécification de tables et colonnes", pour sélectionner les clés à relier.

* Si le lien est simplement créé pour les besoins du dessins, passer le champ "Appliquer la contrainte de clé étrangère" à "Non".

=== Critiques ===

Par ailleurs, cette interface a été critiquée car contrairement à {{w|phpMyAdmin}} par exemple, elle ne permet ni de copier des bases ou des tables, ni d'insérer des lignes dans des tables de plus de 200 lignes, ni de rechercher des champs ou des valeurs ([[Microsoft_SQL_Server/Procédures_stockées#Recherche|le code pour rechercher est publié dans les chapitres suivants]]).

== Références ==