Design et création d une base de données



Documents pareils
Encryptions, compression et partitionnement des données

Création et Gestion des tables

Sauvegarde d une base de données

Sauvegarde des bases SQL Express

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

Tutorial sur SQL Server 2000

Installation des moteurs SQL Pour Micro-SESAME

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

SQL Server administration SERVEUR DE BASES DE DONNEES OLIVIER D.

Windows Server 2008 R2

2011 Hakim Benameurlaine 1

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

SQL Data Export for PS/PSS

SQL Server Installation Center et SQL Server Management Studio

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Guide de configuration de SQL Server pour BusinessObjects Planning

Les déclencheurs. Version 1.0. Grégory CASANOVA

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Description de SQL SERVER. historique

SUPPORT DE COURS ACCESS 2010

1/ Présentation de SQL Server :

Formation. Module WEB 4.1. Support de cours

Virtualisation de Windows dans Ubuntu Linux

1. Introduction Création d'une requête...2

Le modèle de données

Cyberclasse L'interface web pas à pas

Reporting Services - Administration

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Data Tier Application avec SQL Server 2008 R2

Formateur : Caroline CHAILLET Cours 4740A - Implémentation d'une base de données Microsoft SQL Server /134

La réplication sous SQL Server 2005

Rapports d activités et financiers par Internet. Manuel Utilisateur

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Les journées SQL Server 2013

Ecran principal à l ouverture du logiciel

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Pluridisciplinarité. Classe de BTS DATR

Utiliser Access ou Excel pour gérer vos données

Sage 100 pour SQLServer. Version Manuel de référence

GUIDE Excel (version débutante) Version 2013

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR

Cours de SQL SERVER 2005 SQL SERVER 2005

Installation d un groupe de disponibilité avec SQL Server 2012 AlwaysOn (CTP3) qsjdlkqjs

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Systèmes informatiques

Proce dure Installation Cluster de basculement SQL Server 2005

La Clé informatique. Formation Excel XP Aide-mémoire

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Sql Server 2005 Reporting Services

Présentation du module Base de données spatio-temporelles

Guide d'installation. Release Management pour Visual Studio 2013

Access 2007 FF Access FR FR Base

et Groupe Eyrolles, 2006, ISBN :

Les Utilisateurs dans SharePoint

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

Connexion à SQL server

Netstorage et Netdrive pour accéder à ses données par Internet

Guide SQL Server 2008 pour HYSAS

GPI Gestion pédagogique intégrée

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Tutoriel Création d une source Cydia et compilation des packages sous Linux

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

LimeSurvey. Pour obtenir un compte sur le LimeSurvey de l Université de Genève, remplissez le formulaire de demande en ligne.

MEDIAplus elearning. version 6.6

UserLock Guide de Démarrage rapide. Version 8.5

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Guide Enseignant de l application OpenERP

EXCEL TUTORIEL 2012/2013

Créer une base de données

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

Installation personnalisée d'oracle 10g

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Préconisations Techniques & Installation de Gestimum ERP

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Guide d utilisation OGGI. Gestionnaire d incidents à l usage des clients. Date de rédaction : 04/02/2013. Version : 1.0.

Préparation à l installation d Active Directory

Logiciel HLA Fusion Version 3.X.X

Gestion des sauvegardes

//////////////////////////////////////////////////////////////////// Administration bases de données

MIGRATION ANNEXE SAINT YVES. 1 : L existant. Pourquoi cette migration Schéma et adressage IP. 2 : Le projet. Schéma et adressage IP.

Créer et partager des fichiers

Sauvegarde des données d affaires de Bell Guide de démarrage. Vous effectuez le travail Nous le sauvegarderons. Automatiquement

SOMMAIRE. Travailler avec les requêtes... 3

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Formateur : Jackie DAÖN

Gestion des bases SQL Server Microsoft Guide pratique

COMMENT INSTALLER LE SERVEUR QIPAIE

Installation d un poste i. Partage et Portage & permissions NTFS

COURS WINDEV NUMERO 3

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Transcription:

Design et création d une base de données Version 1.0 Z Grégory CASANOVA

2 Design et création d une base de données [03/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Design et création de bases de données... 5 3.1 Les types de systèmes de bases de données... 6 3.1.1 OLTP... 6 3.1.2 OLAP (Online Analytic Processing)... 7 4 La normalisation... 8 4.1 La première forme de normalisation... 8 4.2 La seconde forme de normalisation... 8 4.3 La troisième forme de normalisation... 9 4.4 La dénormalisation... 9 5 Les liens dans une base de données... 10 5.1 Les clés... 10 5.2 Les différents types de liens... 11 6 Les bases de données... 12 6.1 Créer une base de données avec SQL Server... 12 6.1.1 Avec SQL server Management Studio... 12 6.1.2 Avec du code T-SQL... 13 7 Conclusion... 19

3 Design et création d une base de données [03/07/09] 1 Introduction Les bases de données en général servent dans tous les domaines de la vie courante, comme dans les domaines techniques. Bien gérer une base de données, c est garantir l intégrité des données, à savoir le fait que celle-ci ne seront pas corrompues au moment de leur utilisation. Dans ce chapitre, nous apprendrons à créer une base de données en fonction de nos besoins, pour garantir un maximum de sécurité concernant l intégrité de ces données à l intérieur de la base. Nous verrons aussi quels sont les différent types généraux de base de données qui existent, afin de faire le bon choix, suivant l(utilisation que nous voulons en faire.

4 Design et création d une base de données [03/07/09] 2 Pré-requis Ce chapitre constitue la base des bases en matière de développement de base de données, la seule capacité que vous devez avoir en lisant ce chapitre est la suivante : - Connaitre les notions traitées dans le chapitre 1 et connaitre les principes d une base de données relationnelle.

5 Design et création d une base de données [03/07/09] 3 Design et création de bases de données Une base de données est bien entendue le contenant de différents objets. Dans SQL Server, les bases de données sont aussi chargées de permettre d ajouter et de retrouver ces objets de la meilleure des façons. Une base de données peut contenir les éléments suivants : des tables de définitions, des colonnes stockées dans les tables, des programmes codés en T-SQL qui permettent de manipuler les données, des index qui permettent de retrouver des données plus rapidement, ou encore des fonctions, qui sont des tâches répétitives qui s appliquent aux lignes de données. Tous ces termes sont des mots de vocabulaire d une base de données, et sont incontournables pour la suite de ce cours : Tables Colonnes Enregistrements Procédure stockée Déclaration T-SQL Assemblages Index Vues Fonctions Une table est l endroit où les données sont stockées. Une base de données doit contenir au minimum une table. Les informations dans les tables sont stockées dans les lignes et colonnes. Les colonnes sont constituées d une cellule de chaque ligne. Elles donnent une définition à chaque ensemble de définition et ne peut contenir qu un seul type de données. Chaque table, doit contenir au minimum une colonne. Les enregistrements sont constituées d une cellule de chaque colonne. Les lignes sont aussi appelées des records. Une table peut contenir autant de ligne que l on veut, on est simplement restreint par notre espace disque. On peut parfois vouloir qu un programme manipule des données, de façon récurrente. Une procédure stockée contient une ou plusieurs déclarations T-SQL qui sont compilées et prêtes à être utilisées. Une déclaration T-SQL est un programme prêt à être utilisé, que SQL Server peu exécuter pour modifier des données. Les assemblages correspondent aux procédures stockées, ils peuvent modifier des données, cependant, ils sont plus utilisés pour une logique procédurale comme on pourra le voir dans un programme.net. Comme dans un livre, un index permet d accéder aux données plus rapidement. Les index correspondent à des listes prédéfinies qui peuvent informer sur la position physique ou non d une donnée. Ils peuvent être utilisés par SQL Server pour trouver une ligne de données. Un index ne peu pas couvrir plus d une table. On peut identifier les Vues en tant que des tables virtuelles. Elles peuvent contenir des informations combinées de plusieurs tables et peuvent présenter une interface plus intuitive pour les données. Une fonction est similaire à une procédure stockée. La seule différence est qu une fonction traite les données ligne par ligne. Maintenant que nous nous sommes familiarisés avec le vocabulaire d une base de données, parlons de celles qui sont préconstruites dans SQL Server, elles sont au nombre de cinq et nous allons voir le rôle de chacune : Master : c est la plus importante des bases de données préinstallées dans SQL Server. Il est absolument déconseillé de modifier cette base de données directement dans le sens où elle contient des fonctions du système. Si jamais cette base de données vient à être corrompue, il y a de fortes chances que SQL Server ne s exécute plus correctement. Elle contient des informations très importantes comme les Login, le rôle de chaque utilisateur, tous les paramètres de configuration du système, les noms et les informations relatives aux bases de données créées, la position des bases de données, ou encore des tables systèmes qui contiennent elles même des

6 Design et création d une base de données [03/07/09] fonctions du système. La base de données master est vraiment le gardien de votre SQL Server. Tempdb : la base de données tempdb est une base de données temporaire (temporary database) dont le temps de vie est aussi long que la session sur SQL Server est longue. Lorsque la session SQL Server est terminée, la base de données tempdb est perdue, puis lorsque l on redémarre SQL Server, une nouvelle base de données tempdb est générée. On peut l utiliser pour stocker temporairement des données. Model : à chaque fois que l on créé une base de données, elle aura besoin d être définit selon des critères précis. Chaque critère devra être précisé dans Model, par exemple, si l on veut qu une table soit répété dans toutes les bases de données que l on créé, on aura à mettre cette table dans Model. La base de données Model est utilisée de la même manière que Tempdb. De ce fait, il faudra être prudent puisque quand on modifiera Model, ça se reflètera dans Tempdb. Msdb : elle procure des informations qui permettent au SQL Server Agent de fonctionner. Comme pour Tempdb et Model, il ne vous sera pas nécessaire de modifier directement Msdb. Beaucoup de processus liés à SQL Server utilisent le contenu de Msdb, par exemple, lorsque vous faites un backup, SQL Server Agent se sert de Msdb, il est donc compréhensible que la modifier directement peut causer un mauvais fonctionnement de SQL Server. AdventureWorks/AdventureWorksDW : ces bases de données sont des exemples de bases de données construites par Microsoft. Ces tables pré construites dans SQL Server, vous l'avez compris, servent pour la plupart, à contrôler SQL Server et ses paramètres. Avant de pouvoir créer notre première base de données, il est nécessaire d'avoir quelques acquis supplémentaires concernant les différents types de systèmes. Il en existe deux. Les systèmes OLTP et les systèmes OLAP qui possèdent des propriétés différentes et qui sont les suivantes. 3.1 Les types de systèmes de bases de données 3.1.1 OLTP La plupart du temps, l'interface utilisateur qui utilisera ce système OLTP sera codée dans un langage.net, et aura besoin d'accéder instantanément à la base de données pour pouvoir en modifier ses informations. Un système OLTP aura donc besoin de pouvoir procéder à des mises à jour de données de manière fréquente et instantanée. C'est le but principal du système OLTP, et le fait principal pour lequel on choisira ce type de système. Ces systèmes OLTP ont donc besoin d'être accessibles rapidement, et d'être capable de garder l'intégrité des données. Il est donc nécessaire que la structure de la base de données soit bonne, mais aussi que vous sachiez où sont stockées les données physiquement. La normalisation vous permettra de constituer un système OLTP rapide et fiable, puisque vous diminuerez grandement le risque d'erreur en, par exemple, supprimant les redondances de données dans les tables de vos bases de données dans votre système OLTP (Nous développerons le concept de normalisation seulement après avoir présenté les propriétés d'un système OLAP). Plus votre base de données sera compacte et plus votre système sera performant.

7 Design et création d une base de données [03/07/09] 3.1.2 OLAP (Online Analytic Processing) La différence majeure entre les systèmes OLAP et OLTP est la fréquence de mises à jours des données. Alors que les systèmes OLTP ont des mises à jour à n'importe quel moment de la journée, suivant son utilisation, les systèmes OLAP ont des mises à jour programmées, qui peuvent se faire suivant l'utilisation, toutes les heures, tous les jours, tous les mois et ainsi de suite. La plupart du temps, les systèmes OLAP ne suivent aucune normalisation particulière, et n'ont pas une quantité d'index aussi importante qu'un système OLTP. Il y aura très peu de mises à jour voir pas du tout dans un système OLAP, donc, une normalisation, quelle qu elle soit serait inutile. La plupart du temps, on trouvera une ou deux grandes tables dans les bases de données de systèmes OLAP, qui contiendront toutes les données, plutôt qu'une multitude de tables avec beaucoup de relations entre elles, ce qui explique les mises à jour peu fréquentes et la présence de peu d'index.

8 Design et création d une base de données [03/07/09] 4 La normalisation Dans les deux paragraphes précédents, nous avons utilisé le mot "normalisation". La définition générale de normalisation est simple, c'est le fait de rendre les tables plus compactes dans une base de données, en supprimant les répétitions de données. La normalisation a pour but de rendre l'exécution de vos requêtes et l'accès à vos données plus rapide. Plus notre base de données sera normalisée, plus le nombre de relations entre les tables sera important (nous verrons plus tard comment créer des relations entre les tables). Il est donc nécessaire de garder un équilibre entre le nombre de relations entre les tables et les degrés de normalisation de votre base. Il existe trois formes principales de normalisation utilisées. D'autres existent, mais elles ne sont pas utilisées à titre professionnel mais plutôt expérimental. Nous allons les définir maintenant. 4.1 La première forme de normalisation 1NF (First Normal Form) : pour appliquer la 1NF dans votre base de données, il sera nécessaire de supprimer toutes les répétitions de groupes d'informations dans une table, et de les déplacer dans une autre table. Par exemple, si vous avez une table Client dans laquelle sont définit des colonnes relatives au clients, comme numclient, nomcli, prenomcli, numtel. numclient nomcli prenomcli numtel 000001 Dupont Jean 0563892367 0678987678 000002 Legrand Maurice 0578767654 Dans ce cas là, cette table ne respecte pas la première forme de normalisation parce qu une une cellule peut contenir deux types distincts d informations. Une table qui respecterai la première forme de normalisation serai plutôt de cette dorme : numclient nomcli prenomcli numport numfix 000001 Dupont Jean 0678987678 0563892367 000002 Legrand Maurice 0578767654 4.2 La seconde forme de normalisation 2NF (Second Normal Form) : pour appliquer la 2NF, il faut tout d abord que votre base de données soit normalisée à la première forme. Ensuite, il faut se poser la question de savoir si toutes les colonnes non clés dépendent fonctionnellement de la clé primaire. Considérons la table Client suivante. Client Num_cli Nom Prenom Fixe Mobile Num_com Date_com 000001 Dupont Jean 0563892367 0678987678 76767 02/03/08 000002 Legrand Maurice 0578767654 76768 03/03/08 Cette table n est pas normalisée à la seconde forme normale. Si on prend en compte que la clé primaire est composée des deux colonnes, «Num_cli» et «Num_com», les colonnes «Nom», «Prenom», «Fixe» et «mobile» dépendent de «Num_cli» alors que «Date_com» dépend du numéro de commande. Il est donc nécessaire de diviser cette table «Client» en deux tables «Client» et «Commandes». Voici, finalement, les deux tables normalisées à la seconde forme normale. Client Num_cli Nom Prenom Fixe Mobile 000001 Dupont Jean 0563892367 0678987678

9 Design et création d une base de données [03/07/09] 000002 Legrand Maurice 0578767654 Commandes Num_com Date_com Num_cli 76767 02/03/08 000001 76768 03/03/08 000002 4.3 La troisième forme de normalisation 3NF (Third Normal Form) : pour effectuer la 3NF, il est nécessaire que vos tables soit à la seconde forme normale et que les colonnes non clés n aient pas de dépendances entre elles. Prenons pour exemple une table «Client» qui prend en compte, en plus des autres informations clients, le sexe et la civilité du client. On aura alors la table suivante. Client Num_cli Nom Prenom Fixe Mobile Sexe Civil 000001 Dupont Jean 0563892367 0678987678 H Mr 000002 Legrand Maurice 0578767654 H Mr Dans ce cas, la civilité du client permet d en déduire son sexe, mais pas l inverse. On construira alors les deux tables suivantes pour effectuer la troisième forme normale. Client Num_cli Nom Prenom Fixe Mobile Civil 000001 Dupont Jean 0563892367 0678987678 Mr 000002 Legrand Maurice 0578767654 Mr Civilite Val_civil Sexe Mr H Mr H 4.4 La dénormalisation Il existe aussi un processus de normalisation. La dé normalisation est le complet opposé de la normalisation. Vous aurez donc à inclure des redondances de données, et tous les paramètres qui font qu une base de données n est pas normalisée. La dé normalisation réduira le nombre de tables et par conséquent, le nombre de relations entre les tables. Vous aurez par exemple besoin de dé normalisé lorsque vous travaillerez sur un système OLAP.

10 Design et création d une base de données [03/07/09] 5 Les liens dans une base de données On l'a dit plus haut, la normalisation de base de données aide à rendre vos bases de données plus rapides d accès et plus sûres en termes d'intégrité de vos données. Nous avons abordé dans la notion de normalisation, les relations entre les tables, en citant les clés primaires. Nous allons donc développer les liens possibles entre plusieurs tables dans une base de données. Concrètement, à quoi servent les liens? Imaginons que nous avons besoin de modifier une donnée dans une table de notre base de données, et que cette donnée existe en plusieurs exemplaires dans différentes tables. Si ces tables ne sont pas liées, une donnée sera mise à jour, et les autres deviendront invalides, d où l utilité des liens. 5.1 Les clés Pour créer des relations entre les tables nous utilisons des clés, les utiliser est une manière d identifier un lien dans une base de données. Nous allons détailler les trois sortes de clés qui existent et qui nous permettent de créer ces liens entre les tables. Clés primaires : C est le type de clé le plus important. Tout d abord, il est primordial que la table où est définie la clé primaire ne retourne que des valeurs uniques, et non définit comme NULL. Dans cette logique, il n est pas possible qu une clé primaire soit définit dans une table, pour des colonnes qui ne retourne pas une seule ligne. De plus, une table ne contient qu une seule clé primaire. Une clé primaire est utilisée pour créer un lien entre les données de la table où est définie cette clé, et les autres tables de votre base de données. Clés étrangères : Imaginons une base de données qui contient deux tables. Ces deux tables possèdent une même donnée. Une clé étrangère, dans ce cas, servira à lier ces données similaires pour que, lorsqu on en modifie une, l autre se mette à jour. De façon plus générale, une clé étrangère créé un lien entre deux colonnes de deux tables différentes. Ce lien est créé selon une contrainte, qui est une méthode utilisée par SQL Server pour vérifier les caractères du lien. Cette contrainte va vérifier si le lien utilise les paramètres qu on lui a donnés. Une clé étrangère est une clé dans une table fille ou une colonne, ou un groupe de colonnes, est directement relié à la table maîtresse avec exactement le même nombre de données. Il n est pas nécessaire qu une clé étrangère soit liée à la clé primaire de la table maîtresse. Une clé étrangère existera seulement si un lien a été créé entre une table fille et une table mère. Il est possible qu une table mère et une table fille soient les mêmes tables, et de posséder des clés étrangères et une clé primaire définies en elles. Ce phénomène est appelé une relation réflexive. Clés candidates : On l a vue plus haut, il ne peut y avoir qu une seule clé primaire par table. Les clés candidates sont simplement des clés qui sont sujettes à devenir des clés primaires. Il n y a pas de différence entre une clé primaire et candidate, nous utiliserons donc une ou plusieurs clé(s) candidate(s) dans le cas ou nous avons déjà utilisé notre clé primaire dans une table et que nous aurions besoin d une seconde clé primaire, ou plus. Comme nous l avons dit précédemment, une clé primaire ne peut pas supporter de valeur NULL. Mais si nous avons besoin d une valeur NULL, comment faire? On peut utiliser une contrainte unique. Les propriétés de celle-ci ressemblent fortement à celles d une clé primaire mais il y a tout de même des différences. Une contrainte unique n est pas une clé primaire, une contrainte unique peut contenir des valeurs NULL, à la différence de la clé primaire. Tout comme la clé primaire, chaque colonne doit retourner seulement une valeur, mais la différence se fait dans le nombre,

11 Design et création d une base de données [03/07/09] puisque l on peut avoir plusieurs contraintes uniques, alors qu on devait se contenter d une seule clé primaire. 5.2 Les différents types de liens Dans SQL Server, créer un lien signifie que nous allons lier une clé primaire d une table dite «maître» à une clé étrangère d une autre table. Nous avons donc besoin de deux clés. Nous l avons dit lorsque nous avons parlé de la normalisation, créer des liens entre les tables renforce la possibilité d intégrité des données, autrement dit, leur chance de ne pas être corrompues. Il existe 3 types de liens dans une base de données. Le un à un, qui est très peu utilisé, le un à plusieurs, qui est la plus commune des relations. Elle se produit lorsque un lien d une table maître est lié avec zéro, un ou deux liens d une table fille, et le plusieurs à plusieurs, qui peut se produire relativement fréquemment, cela dépend seulement de votre base de données. Précédemment, nous avons présenté le vocabulaire usuel des bases de données, ce qu est une base de données, les deux types de systèmes à mettre en place pour gérer une base de données, le concept de normalisation d une base de données et les liens qui doivent exister entre les tables d une base de données pour assurer entre autre leur intégrité. Mais qu en est-il des tables? Dans la partie suivante, nous allons en majorité expliquer comment créer une table dans une base de données sur SQL Server 2008, puis nous nous attarderons sur la configuration de table.

12 Design et création d une base de données [03/07/09] 6 Les bases de données 6.1 Créer une base de données avec SQL Server Les bases de données sont les ensembles ou nous allons stocker des objets tels que les tables, les vues, les index... Il existe deux façons de créer des bases de données sous SQL Server 2008. En utilisant l interphase proposée par SQL Server (SSMS), ou bien en utilisant le code T-SQL. Chacune de ces deux méthodes possède ses avantages et ses inconvenants, il vous appartient d adopter celle que vous trouvez la plus productive ou bien la plus pratique. Dans tous les exemples que nous développerons dans la suite des cours, nous le ferons selon les deux méthodes. 6.1.1 Avec SQL server Management Studio Dans un premier temps, démarrez SSMS. Assurez-vous que vous vous êtes connectés à votre serveur. Dans l explorateur d objet, faites un clique droit sur le nœud «base de données» et créez une nouvelle base de donnée. Pour notre exemple, nous l appellerons «Test». Détaillons les différentes caractéristiques que nous pouvons donner à notre base de données au moment de sa création. Tout d abord un nom et un propriétaire. Il est conseillé de laisser par défaut le nom du propriétaire, ce qui rendra le créateur de la base de données, propriétaire. Le nom de la base de données doit comporter certaines restrictions. On peut utiliser toutes les lettres, majuscules ou minuscules, tous les chiffres et l underscore. On doit alors bannir tous les autres caractères spéciaux, les espaces On en vient ensuite à l espace nommé «fichiers de la base de données :». C est dans cet espace que vous pourrez gérer toutes les caractéristiques de votre base de données : ses types de fichiers, ses groupes de fichiers, la taille initiale de la base de données, sa croissance

13 Design et création d une base de données [03/07/09] automatique A gauche de la fenêtre de création de base de données, il y a trois onglets, «Général», «Options» et «Groupes de fichiers». Nous venons de détailler l onglet «Général». L onglet «Options» vous permettra de modifier toutes les caractéristiques avancées de votre base de données. Et pour finir, l onglet «Groupe de fichiers» vous permettra de gérer les différents groupes de fichiers que vous aurez créés. Lorsque vous avez déterminé toutes les caractéristiques de votre base de données à créer, il ne vous reste plus qu à cliquer sur «Ok». Vous remarquerez alors dans explorateur d objet, si vous déroulez le nœud base de données, que votre base de données «Test» y est présente. 6.1.2 Avec du code T-SQL Pour créer une base de données avec du code T-SQL, vous aurez à ouvrir une nouvelle fenêtre de requêtes. Pour y accéder, appliquez un click droit sur votre nouvelle base de données, sélectionnez «script de base de données», «Créer avec» puis «Nouvelle fenêtre de requête». Pour créer une nouvelle table dans une base de données, vous aurez à entrer comme base le code T-SQL ci-dessous. /* Code TSQL */ USE [master] GO /****** Object: Database [Test] Script Date: 02/04/2009 11:59:20 ******/ CREATE DATABASE [Test] ON PRIMARY ( NAME = N'Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test.mdf', SIZE = 3072KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test_log.ldf', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) GO Découpons le code en plusieurs parties pour en analyser les différentes actions. USE [master] GO Pour fonctionner, SQL a besoin de pointer sur lui même une base de données connue. Ici, il pointera sur «master». La base de données «master» doit exister pour que SQL Server fonctionne. Le mot clé «USE» ordonne à SQL Server de modifier la connexion par défaut. Le mot clé «GO» indique à SQL Server qu il doit appliquer la fonction du mot clé précédent avant de passer au suivant.

14 Design et création d une base de données [03/07/09] CREATE DATABASE [Test] ON PRIMARY ( NAME = N'Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test.mdf', SIZE = 3072KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test_log.ldf', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) GO Vient ensuite le mot clé «CREATE DATABASE». Il va permettre de créer une nouvelle de données dont le nom sera comprit entre les deux crochets. Ici son nom sera «Test». Les informations contenues entre cette instruction et le mot clé «GO», seront les éléments contenus dans la base de données «Test». Attardons nous sur les différentes propriétés que possède une base de données. ( NAME = N'Test', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test.mdf', SIZE = 3072KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) base LOG ON NAME : Le nom logique qui sera utilisé par SQL Server comme référence. FILENAME : Désigne le chemin complet de l emplacement où les données seront stockées. Le nom du fichier doit contenir la terminaison.mdf. SIZE : Désigne la taille initiale de la base de données. Si on ne le met pas, ce paramètre devrait prendre la valeur qu on lui a donnée dans la base de données «model». Si rien n est indiqué dans Model, la valeur par défaut est de 1 mégaoctet. On peut lui appliquer plus d unités que KB, à savoir MB, GB, TB FILEGROWTH : Désigne le pas d incrément du fichier qui ne pourra jamais dépasser la valeur max. Il peut être précisé en pourcentage ou bien en taille fixe, c'est-à-dire avec des unités telles que le Ko ou encore le Mo. LOG ON : Indique l emplacement du journal de transaction. Ce journal récapitule toutes les modifications apportées aux bases de données.

15 Design et création d une base de données [03/07/09] ( NAME = N'Test_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\ MSSQL10.MSSQLSERVER\MSSQL\DATA\Test_log.ldf', SIZE = 1024KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) GO NAME : Définit le nom du fichier Log de référence pour SQL Server. FILENAME : Définit l emplacement exact de l endroit où sera définit le fichier Log. On doit ajouter l extension.ldf au nom du fichier. SIZE : Définit la taille initiale du fichier Log précédemment énoncé. FILEGROWTH : Désigne la capacité de croissance du fichier Log dans la base de données. On peut aussi modifier d autres paramètres de la base de données comme sa compatibilité vis a vis des différentes versions de SQL Server. La commande qui vise à modifier ce paramètre est la suivante. ALTER DATABASE [Test] SET COMPATIBILITY_LEVEL = 100 GO Pour modifier la base de données que l on veut, on peut utiliser le mot clé «ALTER DATABASE», en indiquant entre crochets le nom de la base de données à modifier, et suivit de l action à effectuer. Ici, on utilise «SET COMPATIBILITY_LEVEL» pour changer le niveau de compatibilité de notre base de données en fonction des différentes versions de SQL Server. Il existe une multitude d actions différentes qui nous permettent de modifier les propriétés de notre base de données. Elles auront toujours la même structure. ALTER DATABASE [Nom_BDD] SET Nom_option GO Seul le second mot clé sera différent ainsi que la valeur que prendra le paramètre. Comme nous l avons vue pour le niveau de compatibilité, on écrira en premier «ALTER DATABASE» qui est le mot clé de modification de la base de données, puis entre crochet le nom de la base de données, puis le mot clé «SET» qui est le mot clé de modification du paramètre qui suit. Voici une liste des mots clés et de leurs valeurs qui peuvent modifier un paramètre de la base de données. On peut les classer en différentes catégories. - Etat de la base de données. ONLINE OFFLINE EMERGENCY Rend la base de données visible. Rend la base de données inaccessible. C est la manière la plus «propre» de désactiver votre base de données. La base de données est mise en mode lecture seule, la journalisation est désactivée et seuls les administrateurs peuvent accéder à la base. - Accès à la base de données.

16 Design et création d une base de données [03/07/09] SINGLE_USER RESTRICTED_USER MULTI_USER L accès est limité à un seul utilisateur. Seuls les membres des rôles db_owner, dbcreator ou sysadmin peuvent se connecter à la base. C est le mode par défaut. Il permet à tous les utilisateurs qui disposent de privilèges suffisants, d accéder aux informations. - Opérations possibles sur la base de données. READ_ONLY READ_WRITE Seules les opérations de lecture sont possibles. La base est accessible pour les opérations de lecture et écriture. - Accès à la base de données. DBO use only La base n est accessible que par son propriétaire. - Paramétrage de la base de données. ANSI_NULL_DEFAULT RECURSIVE_TRIGGERS TORN_PAGE_DETECTION AUTO_CLOSE AUTO_SHRINK AUTO_CREATE_STATISTICS AUTO_CREATE_STATISTICS_ASYNC QUOTED_IDENTIFIERS ANSI_NULLS ANSI_WARNINGS ARITHABORT CONCAT_NULL_YIELDS_NULL CURSOR_CLOSE_ON_COMMIT CURSOR_DEFAULT NUMERIC ROUNDABORT RECOVERY Définit la valeur par défaut de la contrainte de nullité de colonne. Autorise la récursivité des triggers. Permet de détecter les pages incomplètes. La base de données est arrêtée et les ressources sont libérées dès l instant où le dernier utilisateur s est déconnecté. Les fichiers de la base de données pourront être automatiquement réduits. Les statistiques manquantes lors de l exécution d une requête sont créées automatiquement. Sa valeur par défaut est ON. Les statistiques qui représentent la pertinence des index sont mises à jour de façon non synchrone et de façon automatique. Elle est positionnée sur ON par défaut. Les identificateurs délimités peuvent être encadrés par des guillemets doubles. Si la condition est True, alors toutes les comparaisons avec une valeur NULL sont évaluées à inconnue. Permet de faire remonter des messages d erreurs lorsque certaines conditions sont remplies. Arrête un traitement lorsque il y a un dépassement de capacité ou encore une division par 0. Le résultat est NULL si l une des deux opérandes d une opération de concaténation est NULL. Permet de fermer tous les curseurs lors de la définition d une transaction ou lors de la fin d une transaction. Les déclarations de curseurs ont par défaut la valeur LOCAL. Une erreur est levée si une perte de précision est faite lors d un calcul. Permet de préciser la stratégie de sauvegarde planifiée au

17 Design et création d une base de données [03/07/09] PAGE_VERIFY SUPPLEMENTAL_LOGGING PARAMETERIZATION AUTO_UPDATE_STATISTICS niveau de la base de données. Cette opération permet de valider la qualité des informations stockées au niveau de chaque page. CHECKSUM est la valeur par défaut, et de plus celle recommandée par SQL Server. En mettant cette option sur ON (OFF par défaut), des informations complémentaires seront ajoutées au journal. En mode SIMPLE, les requêtes sont paramétrées en fonction des règles imposées sur le serveur. Il est possible d utiliser le mode FORCED, qui fait que SQL Server paramètre toutes les requêtes avant de dresser le plan d exécution. Toutes les statistiques obsolètes pour une requête sont recalculées automatiquement. - Gestion des transactions de la base de données. ROLLBACK AFTER nombre ROLLBACK IMMEDIATE NO_WAIT ANSI_PADDING COMPATIBILITY DATE_CORRELATION_OPTIMISATION Annulation des transactions après une valeur nombre de seconde d attente. Annulation immédiate des transactions. Si une transaction n accède pas directement à une ressource donnée qui lui est nécessaire, la transaction est annulée. Spécifie si les espaces à droite sur les données de type caractère doivent être ou non supprimés. Indique le niveau de compatibilité de la base de données. Pour SQL Server 2000, c est un niveau de 80, pour 2005, un niveau de 90 et pour 2008, un niveau de 100. SQL Server se charge d entretenir la corrélation des statistiques entre deux tables par une contrainte de clé étrangère et qui possèdent toutes les deux une colonne de type Datetime. - Accès externe à la base de données. DB_CHAINING TRUSTWORTHY Permet de gérer les contraintes de sécurité lors de l accès à la base à partir d une autre base. Permet aux modules internes (procédures stockées, fonctions..) d accéder à des ressources extérieures en utilisant un contexte Impersonate. - Service broker de la base de données. ENABLE_BROKER DISABLE_BROKER NEW_BROKER ERROR_BROKER_CONVERSATIONS Active le service broker. Désactive le service broker. Permet de préciser que la base de données doit recevoir un nouvel identifiant service broker. Les conversations en cours vont recevoir un message d erreur et vont ainsi être clôturées.

18 Design et création d une base de données [03/07/09] - Snapshot (capture instantanée) de la base de données. ALLOW_SNAPSHOT_ISOLATION READ_COMMITED_SNAPSHOT Lorsque ce mode est activé, toutes les transactions sont capables de travailler avec des Snapshots de la base telles qu elles étaient au début de la transaction. Lorsque ce mode est activé, toutes les instructions perçoivent les données telles qu elles étaient au début de l instruction. Après avoir effectué toutes les modifications voulues, vous pouvez lancer les commandes que vous avez entrées en appuyant sur «F5» ou «Ctrl + E». SQL Server appliquera alors le code écrit. Après l avoir exécuté, si aucun problème n est survenu, vous devriez avoir le message suivant : «Commandes exécutés avec succès». Il est aussi possible de supprimer une base de données avec du code T-SQL, il suffit juste d entrer la requête suivant. USE [master] GO DROP DATABASE NomBDD

19 Design et création d une base de données [03/07/09] 7 Conclusion Dans ce chapitre nous avons appris les différents types de base existants, et à gérer une base de données, puis lui donner les caractéristiques que nous voulions. La base de données est «l enveloppe» générale de vos données, leur conteneur. Il existe alors des sous ensembles qui nous permettront de regrouper les données de même destination ensemble, les tables, puis les colonnes. Ce sera le sujet du prochain chapitre qui traitera de la création et de la gestion des tables dans SQL Server 2008, ainsi que la mise en place de contraintes d intégrités sur les colonnes des tables.