Acceuil

Bienvenue chez MES-TUTOS


 "mes-tutosest un site web qui propose des tutoriels sur l'informatique et sur les sciences. Les cours en ligne, qu'ils soient écrits par l'équipe du site ou ses membres, demandent généralement assez peu de connaissances préalables.
 Le premier objectif du site est d'apprendre à partir de rien, le slogan du site est  : « Le site pour débutants où tout est expliqué... à partir de Zéro ! ». Peu de connaissances en informatique ne sont nécessaires pour lire la plupart des tutoriels et ainsi commencer son apprentissage



  

Sql


  1. Structured Query Language
  2. Exemples

Exemples

Création d'une base de données


Création de requêtes


Création d'un formulaire


Structured Query Language

SQL (sigle de Structured Query Language, en français langage de requête structurée) est un langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles.
Outre le langage de manipulation des données, la partie langage de définition des données permet de créer et de modifier l'organisation des données dans la base de données, la partie langage de contrôle de transaction permet de commencer et de terminer des transactions, et la partie langage de contrôle des données permet d'autoriser ou d'interdire l'accès à certaines données à certaines personnes.
Créé en 1974, normalisé depuis 1986, le langage est reconnu par la grande majorité des systèmes de gestion de bases de données relationnelles (abrégé SGBDR) du marché.
SQL fait partie de la même famille que les langages SEQUEL (dont il est le descendant), QUEL ou QBE (Zloof).

Bref historique

En juin 1970Edgar Frank Codd publia l'article A Relational Model of Data for Large Shared Data Banks (« Un référentiel de données relationnel pour de grandes banques de données partagées ») dans la revue Communications of the ACM (Association for Computing Machinery). Ce référentiel relationnel fondé sur la logique des prédicats du premier ordre a été rapidement reconnu comme un modèle théorique intéressant, pour l'interrogation des bases de données, et a inspiré le développement du langage Structured English QUEry Language (SEQUEL) (« langage d'interrogation structuré en anglais »), renommé ultérieurement SQL pour cause de conflit de marque déposée.
Développée chez IBM en 1970 par Donald Chamberlain et Raymond Boyce, cette première version a été conçue pour manipuler et éditer des données stockées dans la base de données relationnelle à l'aide du système de gestion de base de données IBM System R. Le nom SEQUEL, qui était déposé commercialement par l'avionneur Hawker Siddeley pour un système d'acquisition de données, a été abandonné et contracté en SQL en 19751. SQL était censé alors devenir un élément clé du futur projet FS.
En 1979Relational Software, Inc. (actuellement Oracle Corporation) présenta la première version commercialement disponible de SQL, rapidement imité par d'autres fournisseurs.
SQL a été adopté comme recommandation par l'Institut de normalisation américaine (ANSI) en 1986, puis comme norme internationale par l'ISO en 1987 sous le nom de ISO/CEI 9075 - Technologies de l'information - Langages de base de données - SQL.

Utilisation

Le langage SQL s'utilise principalement de trois manières :
  • un programme écrit dans un langage de programmation donné utilise l'interface de programmation du SGBD pour lui transmettre des instructions en langage SQL. Ces programmes utilisent des composants logiciels tels que ODBC ou JDBC. Cette technique est utilisée par l'invite de commande qui permet à un administrateur d'effectuer des opérations sur les bases de données; opérations qu'il décrit en SQL ;
  • technique dite embedded SQL : des instructions en langage SQL sont incorporées dans le code source d'un programme écrit dans un autre langage ;
  • technique des procédures stockées : des fonctions écrites en langage SQL sont enregistrées dans la base de données en vue d'être exécutées par le SGBD. Cette technique est utilisée pour les trigger - procédures déclenchées automatiquement sur modification du contenu de la base de données.


Syntaxe générale

Les instructions SQL s'écrivent d'une manière qui ressemble à celle de phrases ordinaires en anglais. Cette ressemblance voulue vise à faciliter l'apprentissage et la lecture.
C'est un langage déclaratif, c'est-à-dire qu'il permet de décrire le résultat escompté, sans décrire la manière de l'obtenir. Les SGBD sont équipés d'optimiseurs de requêtes - des mécanismes qui déterminent automatiquement la manière optimale d'effectuer les opérations, notamment par une estimation de la complexité algorithmique. Celle-ci est fondée sur des statistiques récoltées à partir des données contenues dans la base de données (nombre d'enregistrements, nombre de valeurs distinctes dans une colonne, etc.).
Les instructions de manipulation du contenu de la base de données commencent par les mots clés SELECTUPDATEINSERT ou DELETE qui correspondent respectivement aux opérations de recherche de contenu, modification, ajout et suppression. Divers mots clés tels que FROMJOIN et GROUP permettent d'indiquer les opérations d'algèbre relationnelle à effectuer en vue d'obtenir le contenu à manipuler.
Les instructions de manipulation des métadonnées - description de la structure, l'organisation et les caractéristiques de la base de données - commencent avec les mots clés CREATEALTERou DROP qui correspondent aux opérations d'ajouter, modifier ou supprimer une métadonnée. Ces mots clés sont immédiatement suivies du type de métadonnée à manipuler - TABLEVIEW,INDEX, ...
Les mots clés GRANT et REVOKE permettent d'autoriser des opérations à certaines personnes, d'ajouter ou de supprimer des autorisations. Tandis que les mots clés COMMIT et ROLLBACKpermettent de confirmer ou annuler l'exécution de transactions.
La syntaxe de SQL fait l'objet de la norme ISO 9075. Cette norme laisse la possibilité aux producteurs de SGBD d'y ajouter des instructions spécifiques et non normalisées. La norme a évolué au cours des années en vue de s'adapter aux demandes, et les éditeurs de SGBD ont souvent ajouté des possibilités à leurs produits avant que celle-ci fassent objet de normes, ce qui provoque des variations dans la compréhension et l'interprétation qui est faite d'un code source en SQL par les différents logiciels de SGBD. Ces différences font qu'un code source écrit sans précautions pour un SGBD donné ne fonctionnera pas forcément avec un autre SGBD.

Exemples de code

  • modification d'une table :
ALTER TABLE table1 ADD COLUMN colonne5 INTEGER NULL;
  • Recherche
SELECT nom, service
FROM   employe
WHERE  statut = 'stagiaire'
ORDER  BY nom;
  • procédure stockée
 DECLARE N INTEGER;
 SET N = 1;
 FOR C 
 AS C_USR_MISE_A_JOUR 
    CURSOR FOR 
       SELECT USR_ID, USR_NOM
       FROM   T_UTILISATEUR_USR
       ORDER  BY USR_ID
    FOR UPDATE OF USR_NOM
 DO
    IF MOD(N, 2) = 0
    THEN
       UPDATE T_UTILISATEUR_USR
...

Manipulation de données

Le Langage de manipulation de données LMD, soit Data Manipulation Language, DML, en anglais, est un sous-ensemble du SQL utilisé pour ajouter, modifier, et supprimer des données :
  • INSERT insère des lignes, (aussi appelés tuples) dans une table existante, exemple :
INSERT INTO a_table (field1, field2, field3)
    VALUES ('test', 'N', NULL);
  • UPDATE Modifie un ensemble de tuples existant dans une table, exemple :
UPDATE a_table
    SET field1 = 'updated value'
WHERE field2 = 'N';
  • DELETE Supprime un ensemble de tuples existant dans une table, exemple :
DELETE FROM a_table
    WHERE field2 = 'N';
  • MERGE Combine les données de plusieurs tables. C'est la combinaison de INSERT et UPDATE . Il peut être nommé UPSERTINSERT OR REPLACE INTO, ou encore INSERT ON DUPLICATE KEY UPDATE dans certains moteur de base de donnée.
 MERGE INTO TABLE_NAME USING table_reference ON (condition)
   WHEN MATCHED THEN
   UPDATE SET column1 = value1 [, column2 = value2 ...]
   WHEN NOT MATCHED THEN
   INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...

Null et la logique ternaire

Le mot-clé Null fut introduit dans SQL pour exprimer les informations manquantes dans le modèle relationnel. L'introduction de Null, avec True et False est le fondement de la logique ternaire. Null n'a pas de valeur (et n'est membre d'aucun type de donnée), c'est un mot-clé réservé, indiquant qu'une information est manquante. Par conséquent, la comparaison avec Null, même avec Null lui-même, ne peut ni être True ni être False, elle est obligatoirement inconnue (Unknown). En effet, Null ne peut pas être considéré égal à Null, puisque les deux informations manquantes, que ces deux Null distincts représentent, peuvent s'avérer différentes.On dit généralement que NULL est un « marqueur ».

Langages apparentés[modifier | modifier le code]



Langages concurrents

Parmi les autres langages de requêtes, citons les ancêtres de SQL comme QUEL (QUery English Language) ou SEQUEL (Structured English QUEry Language) ou encore le langage QBE (Query By Example). Cependant le langage QBE, très différent de SQL, est encore en vigueur dans le SGBDR de type « fichier » qu'est Paradox (Ansa Software/Borland/Corel).

Alternative

  • Le langage Tutorial D est présenté comme étant plus cohérent et plus simple d'emploi par ses inventeurs. Il permet, de surcroît, pour alléger le libellé des requêtes, l'emploi d'une clause WITHinspirée du langage Pascal, bien que WITH ne contribue pas à faciliter la lecture du code.
À noter que la technique du WITH a été en partie reprise dans la norme SQL:1999 pour réaliser des "Common Table Expression" (CTE ou Table d'Expression Partagées en français), c'est-à-dire des vues non instanciées utilisables par la requête dans laquelle elles figurent, et ce afin de factoriser des expressions ou encore de permettre l'écriture de requêtes récursives de manière à résoudre élégamment des parcours d'arbres ou de graphes.
Parmi les autres candidats, on compte :
  • BS12, qui lui aussi s'est attaqué à ce problème de l'enchâssement et de la perte de lisibilité qu'il entraîne.


Systèmes de gestion de base de données avec SQL[modifier | modifier le code]

Tous ces systèmes présentent certaines particularités dont certaines ne se retrouvent pas chez d'autres. Il est d'ailleurs toujours intéressant de se référer au manuel de référence du SGDBR, lors de requêtes particulières ou complexes, ainsi que pour leur optimisation.

Ouvrages sur le langage SQL

En français

  • SQL Synthèse de cours et exercices - 4e édition (2 chapitres supplémentaires sur l'indexation et l'administration) - Frédéric Brouard, Christian Soutou, Rudi Bruchez - Pearson Education, 2012
  • Bases de données - de la modélisation au SQL - Laurent Audibert - Ellipses, 2009
  • SQL Synthèse de cours et exercices - 2e édition - Frédéric Brouard, Christian Soutou, Rudi Bruchez - Pearson Education, 2008
  • SQL par l'exemple - Antony Molinaro - O'Reilly, 2007
  • SQL en concentré - Kevin Kline - O'Reilly, 2005
  • SQL pour les nuls - Allen G. Taylor - First Interactive, 2001
  • SQL développement - Frédéric Brouard - Campus Press, 2001
  • SQL avancé (2e édition) - Joe Celko - Vuibert, 2000

En anglais

  • The Art of SQL - Stéphane Faroult - O'Reilly, 2006
  • Advanced SQL:1999 - Jim Melton - Morgan Kaufmann, 2003
  • SQL bible - A. Kriegel, B. M. Trukhnov - John Wiley, 2003
  • SQL:1999, Understanding Relational Language Components - Jim Melton, Alan R. Simon - Morgan Kauffman, 2002
  • SQL2 - SQL3, Applications à Oracle (3e édition) - Pierre Delmal - De Boeck Université, 2001
  • SQL in a nutshell - Kevin Kline, Daniel Kline - O'Reilly, 2001
  • SQL 3, Implementing the SQL Foundation Standard - Paul Fortier - McGraw-Hill, 1999
  • SQL-99 complete really - Peter Gulutzan, Trudy Pelzer - R&D Books, 1999
  • The Complete Reference SQL - J. R. Groff, P. N. Weinberg - Osborne, 1999
  • A guide to the SQL standard - Chris J. Date, Hugh Darwen - Addison Wesley - USA, 1997
  • Understanding the new SQL - Jim Melton, Alan R. Simon - Morgan Kaufmann, 1993

Réseau TCP/IP

Suite des protocoles Internet

La suite TCP/IP est l'ensemble des protocoles utilisés pour le transfert des données sur Internet. Elle est souvent appelée TCP/IP, d'après le nom de deux de ses protocoles : TCP (Transmission Control Protocol) et IP (Internet Protocol), qui ont été les premiers à être définis. Le document de référence est RFC 1122.
Le réseau Arpanet adopte le 1er janvier 1983 la suite de protocoles TCP/IP qui sera la base d'Internet.
Le modèle OSI, qui décompose les différents protocoles d'une pile en sept couches, peut être utilisé pour décrire la suite de protocoles Internet, bien que les couches du modèle OSI ne correspondent pas toujours avec les habitudes d'Internet (Internet étant basé sur TCP/IP qui ne comporte que quatre couches).
Dans une pile de protocoles, chaque couche résout un certain nombre de problèmes relatifs à la transmission de données, et fournit des services bien définis aux couches supérieures. Les couches hautes sont plus proches de l'utilisateur et gèrent des données plus abstraites, en utilisant les services des couches basses qui mettent en forme ces données afin qu'elles puissent être émises sur un médium physique.
Le modèle Internet a été créé afin de répondre à un problème pratique, alors que le modèle OSI correspond à une approche plus théorique, et a été développé plus tôt dans l'histoire des réseaux. Le modèle OSI est donc plus facile à comprendre, mais le modèle TCP/IP est le plus utilisé en pratique. Il est préférable d'avoir une connaissance du modèle OSI avant d'aborder TCP/IP, car les mêmes principes s'appliquent, mais sont plus simples à comprendre avec le modèle OSI.

Couches dans la pile TCP/IP

Comme les suites de protocoles TCP/IP et OSI ne correspondent pas exactement, toute définition des couches de la pile TCP/IP peut être sujette à discussion...
En outre, le modèle OSI n'offre pas une richesse suffisante au niveau des couches basses pour représenter la réalité ; il est nécessaire d'ajouter une couche supplémentaire d'interconnexion de réseaux (Internetworking) entre les couches Transport et Réseau. Les protocoles spécifiques à un type de réseau particulier, mais qui fonctionnent au-dessus de la couche de liaison de données, devraient appartenir à la couche réseau. ARP, et STP (qui fournit des chemins redondants dans un réseau tout en évitant les boucles) sont des exemples de tels protocoles. Toutefois, ce sont des protocoles locaux, qui opèrent au-dessous de la fonction d'interconnexion de réseaux ; placer ces deux groupes de protocoles (sans parler de ceux qui fonctionnent au-dessICMP) dans la même couche peut prêter à confusion.
us du protocole d'interconnexion de réseaux, comme
Le schéma qui suit essaie de montrer où se situent divers protocoles de la pile TCP/IP dans le modèle OSI de l'ISO :
7Applicationex. HTTPHTTPSSMTPSNMPFTPTelnetNFS
6Présentationex. ASCIIUnicodeMIMEXDRASN.1SMBAFP
5Sessionex. ISO 8327 / CCITT X.225, RPCNetbiosASP
4Transportex. TCPUDPSCTPSPXATP
3Réseauex. IP (IPv4 ou IPv6), ICMPIGMPX.25CLNPARPRARPOSPFRIPIPXDDP
2Liaisonex. EthernetToken RingPPPHDLCFrame relayRNIS (ISDN)ATMWi-FiBluetoothZigBeeirDA(Infrared Data Association)
1Physiqueex. techniques de codage du signal (électroniqueradiolaser, …) pour la transmission des informations sur les réseaux physiques (réseaux filaires, optiques, radioélectriques …)
Habituellement, les trois couches supérieures du modèle OSI (Application, Présentation et Session) sont considérées comme une seule couche Application dans TCP/IP. Comme TCP/IP n'a pas de couche session unifiée sur laquelle les couches plus élevées peuvent s'appuyer, ces fonctions sont généralement remplies par chaque application (ou ignorées). Une version simplifiée de la pile selon le modèle TCP/IP est présentée ci-après :
5Application
« couche 7 »
ex. HTTPFTPDNS
(les protocoles de routage comme RIP, qui fonctionnent au-dessus d'UDP, peuvent aussi être considérés comme faisant partie de la couche application)
4Transportex. TCPUDPSCTP
(les protocoles de routage comme OSPF, qui fonctionnent au-dessus d'IP, peuvent aussi être considérés comme faisant partie de la couche transport)
3RéseauPour TCP/IP il s'agit de IP,
(les protocoles requis comme ICMP et IGMP fonctionnent au-dessus d'IP, mais peuvent quand même être considérés comme faisant partie de la couche réseau ; ARP ne fonctionne pas au-dessus d'IP),
2Liaisonex. EthernetToken Ring, etc.
1Physiqueex. la boucle locale (transmission par modulation sur lignes analogiques : lignes téléphoniques RTC, numériques, ADSL …), les grandes artères de communication (transmission par multiplexage, commutation, …), les réseaux de radiocommunication (radio, téléphonie sans fil, satellite, …)
Une autre approche du modèle TCP/IP consiste à mettre en avant un modèle en 2 couches. En effet, IP fait abstraction du réseau physique. Et ce n'est pas une couche application qui s'appuie sur une couche transport (représentée par TCP ou UDP) mais des applications. On aurait donc :
Applications
2TRANSPORT
1IP (Internet)
Accès réseau
Cette représentation est plus fidèle aux concepts d'IP. Rappelons que ce « modèle » est antérieur au modèle OSI et tenter de les faire correspondre peut induire en erreur. En effet, TCP introduit une notion de session, or TCP est au niveau TRANSPORT sur un modèle calqué sur l'OSI. Cette antériorité au modèle OSI explique aussi certaines incohérences comme l'implémentation d'un protocole de routage au-dessus d'UDP (RIP est implémenté sur UDP, alors qu'OSPF, arrivé après le modèle OSI et cette volonté de vouloir découper les thématiques par couches, s'appuie directement sur IP). DHCP est également implémenté sur UDP, niveau « applications » alors que c'est le rôle de la couche réseau de fournir une configuration de niveau 3.

Couche physique

La couche physique décrit les caractéristiques physiques de la communication, comme les conventions à propos de la nature du média utilisé pour les communications (les câbles, les liens parfibre optique ou par radio), et tous les détails associés comme les connecteurs, les types de codage ou de modulation, le niveau des signaux, les longueurs d'ondes, la synchronisation et les distances maximales.

Couche de liaison de données

La couche de liaison de données spécifie comment les paquets sont transportés sur la couche physique, et en particulier le tramage (i.e. les séquences de bits particulières qui marquent le début et la fin des paquets). Les en-têtes des trames Ethernet, par exemple, contiennent des champs qui indiquent à quelle(s) machine(s) du réseau un paquet est destiné. Exemples de protocoles de la couche de liaison de données : EthernetWireless EthernetSLIPToken Ring et ATM.
PPP est un peu plus complexe, car il a été initialement spécifié pour fonctionner au-dessus d'un autre protocole de liaison de données
Cette couche est subdivisée en LLC et MAC par l'IEEE.

Couche réseau

Dans sa définition d'origine, la couche de réseau résout le problème de l'acheminement de paquets à travers un seul réseau. Exemples de protocoles de ce type : X.25, et le Initial Connection Protocol d'ARPANET.
Lorsque deux terminaux communiquent entre eux via ce protocole, aucun chemin pour le transfert des données n'est établi à l'avance : il est dit que le protocole est « non orienté connexion ». Par opposition, pour un système comme le réseau téléphonique commuté, le chemin par lequel va passer la voix (ou les données) est établi au commencement de la connexion : le protocole est « orienté connexion ». Avec l'avènement de la notion d'interconnexion de réseaux, des fonctions additionnelles ont été ajoutées à cette couche, et plus spécialement l'acheminement de données depuis un réseau source vers un réseau destinataire. Ceci implique généralement le routage des paquets à travers un réseau de réseaux, connu sous le nom d'Internet. Dans la suite de protocoles Internet, IP assure l'acheminement des paquets depuis une source vers une destination, et supporte aussi d'autres protocoles, comme ICMP (utilisé pour transférer des messages de diagnostic liés aux transmissions IP) et IGMP (utilisé pour gérer les données multicast). ICMP et IGMP sont situés au-dessus d'IP, mais assurent des fonctions de la couche réseau, ce qui illustre l'incompatibilité entre les modèles Internet et OSI.
La couche réseau IP peut transférer des données pour de nombreux protocoles de plus haut niveau. Ces protocoles sont identifiés par un numéro de protocole IP (IP Protocol Number) unique. ICMP et IGMP sont respectivement les protocoles 1 et 2.

Couche transport

Les protocoles de la couche de transport peuvent résoudre des problèmes comme la fiabilité des échanges (« est-ce que les données sont arrivées à destination ? ») et assurer que les données arrivent dans l'ordre correct. Dans la suite de protocoles TCP/IP, les protocoles de transport déterminent aussi à quelle application chaque paquet de données doit être délivré.
Les protocoles de routage dynamique qui se situent réellement dans cette couche de la pile TCP/IP (puisqu'ils fonctionnent au-dessus d'IP) sont généralement considérés comme faisant partie de la couche réseau. Exemple : OSPF (protocole IP numéro 89).
TCP (protocole IP numéro 6) est un protocole de transport « fiable », orienté connexion, qui fournit un flux d'octets fiable assurant l'arrivée des données sans altérations et dans l'ordre, avec retransmission en cas de perte, et élimination des données dupliquées. Il gère aussi les données « urgentes » qui doivent être traitées dans le désordre (même si techniquement, elles ne sont pas émises hors bande). TCP essaie de délivrer toutes les données correctement et en séquence - c'est son but et son principal avantage sur UDP, même si ça peut être un désavantage pour des applications de transfert ou de routage de flux en temps-réel, avec des taux de perte élevées au niveau de la couche réseau.
UDP (protocole IP numéro 17) est un protocole simple, sans connexion, « non fiable » - ce qui ne signifie pas qu'il est particulièrement peu fiable, mais qu'il ne vérifie pas que les paquets soient arrivés à destination, et ne garantit pas leur arrivée dans l'ordre. Si une application a besoin de ces garanties, elle doit les assurer elle-même, ou bien utiliser TCP. UDP est généralement utilisé par des applications de diffusion multimédia (audio et vidéo, etc.) pour lesquelles le temps requis par TCP pour gérer les retransmissions et l'ordonnancement des paquets n'est pas disponible, ou pour des applications basées sur des mécanismes simples de question/réponse comme les requêtes DNS, pour lesquelles le surcoût lié à l'établissement d'une connexion fiable serait disproportionné par rapport au besoin.
Aussi bien TCP qu'UDP sont utilisés par de nombreuses applications. Les applications situées à une quelconque adresse réseau se distinguent par leur numéro de port TCP ou UDP. Par convention, des ports bien connus sont associés avec certaines applications spécifiques.
RTP (Real Time Protocol) est un protocole fonctionnant avec UDP ou TCP, spécialisé dans le transport de données possédant des contraintes temps réel. Typiquement, il sert à transporter des vidéos pour que l'on puisse synchroniser la lecture des images et du son directement, sans les stocker préalablement.
SCTP (Stream Control Transmission Protocol) a été défini en 2000 dans la RFC 4960, et un texte d'introduction existe dans la RFC 3286. Il fournit des services similaires à TCP, assurant la fiabilité, la remise en ordre des séquences, et le contrôle de congestion. Alors que TCP est byte-oriented (orienté octets), SCTP gère des « frames » (courtes séquences). Une avancée majeure de SCTP est la possibilité de communications multi-cibles, où une des extrémités de la connexion est constituée de plusieurs adresses IP.

Couche application

C'est dans la couche application que se situent la plupart des programmes réseau.
Ces programmes et les protocoles qu'ils utilisent incluent HTTP (World Wide Web), FTP (transfert de fichiers), SMTP (messagerie), SSH (connexion à distance sécurisée), DNS (recherche de correspondance entre noms et adresses IP) et beaucoup d'autres.
Les applications fonctionnent généralement au-dessus de TCP ou d'UDP, et sont souvent associées à un port bien connu. Exemples :
  • HTTP port TCP 80 ;
  • SSH port TCP 22 ;
  • DNS port UDP 53 (TCP 53 pour les transferts de zones et les requêtes supérieures à 512 octets) ;
  • RIP port UDP 520 ;
  • FTP port TCP 21 ;
Ces ports ont été assignés par l'Internet Assigned Numbers Authority (IANA).
Sous UNIX, on trouve un fichier texte servant à faire les correspondances port↔protocole : /etc/services.
Sous Windows, il se situe dans %SystemRoot%\System32\drivers\etc. Il se nomme services, on peut le lire avec le Bloc-notes.