Création de bases de données Présentation Session RPSI 2003-2004 Création de bases de données TSSI2
Stockage des données Fichier de données .mdf ou .ndf Base de données Fichier de données .mdf ou .ndf Fichier journal .ldf Tables, index Extension (8 pages contiguës de 8 Ko) Données Page (8 Ko) Taille de ligne maximale = 8 060 octets
Création de groupes de fichiers sys... sysusers sysobjects ... orders customers products ordhistyear2 ordhistyear1 ComptoirAnglais.mdf C:\ D:\ E:\ Ordhist1.ndf Ordhist2.ndf ComptoirAnglais.ldf OrderHistoryGroup
Fonctionnement Journal Transactions La modification des données est envoyée par l'application 1 La modification est enregistrée dans le journal des transactions sur le disque 3 Mémoire cache tampon Disque Les pages de données sont recherchées ou écrites dans la mémoire cache tampon, puis sont modifiées Disque 2 Le point de contrôle écrit les transactions validées dans la base de données 4
Création de la base de données CREATE DATABASE [ComptoirAnglais] ON (NAME = 'ComptoirAnglais_Data', FILENAME = 'e:\data\ComptoirAnglais_Data.MDF' , SIZE = 10, FILEGROWTH = 10%) LOG ON (NAME ='ComptoirAnglais_Log', FILENAME = 'e:\data\ComptoirAnglais_Log.LDF' , SIZE = 2, COLLATE French_CI_AS
Suppression de la base de données Méthodes de suppression d'une base de données SQL Server Enterprise Manager Instruction DROP DATABASE Restrictions à la suppression d'une base de données lors de sa restauration lorsqu'un utilisateur y est connecté lorsqu'elle publie l'une de ses tables dans le cadre de la réplication SQL Server
Options de base de données Présentation Session RPSI 2003-2004 Options de base de données Options fréquemment utilisées dbo use only : propriétaire et admin read only : seulement en lecture single user : un seul utilisateur Autoshrink : réduction automatique Modèles de récupération Simple (A partir de la sauvegarde) Complet (A partir de la défaillance) Restreindre l'accès Indique que seuls les utilisateurs désignés dans les options suivantes peuvent accéder à la base de données. Membres de db_owner, dbcreator ou sysadmin Indique que seuls les membres de db_owner, dbcreator ou sysadmin peuvent accéder à la base de données. Utilisateur unique Indique qu'un seul utilisateur à la fois peut accéder à la base de données. Lecture seule Indique que les utilisateurs peuvent récupérer, mais pas modifier, des données dans la base. Modèle Spécifie le type de modèle de récupération de la base de données. Pour plus d'informations sur les modèles de récupération, reportez-vous à Utilisation des modèles de récupération.
Les types de données Numériques exacts Numériques approchés Valeurs entières BigInt – 8 Int – 4 SmallInt – 2 TinyInt – 1 Valeurs décimales Decimal (p,s) 2-17 Numeric (p,s) 2-17 Monétaires Money 8 SmallMoney 4 Numériques approchés Float sur 8 octets double précision n 1 - 53 bits Real sur 4 octets simple précision n 1- 24 bits
Les types de données Binaire 0 – 8000 Caractères Caractères Unicode Binary (n) VarBinary (n) Caractères Char (n) VarChar (n) Caractères Unicode nChar (n) nVarChar (n) Date et Heure DateTime 8 SmallDateTime 4 Spécial Booléen Bit Valeurs Uniques TimeStamp 8 UniqueIdentifier
Les types de données Texte et image Texte Unicode nText Correspondent au type Blob Bynary Large Objects De 0 à 2 Go Seul un pointeur est maintenu à jour qui pointe vers le fichier contenant les données Néanmoins prises en compte pour les opérations de sauvegarde et restauration
Types de données utilisateur S’appuient sur les types systèmes (Dérivation) Permettent d’apporter une plus grande cohérence lorsque plusieurs éléments se réfèrent à un même type Définis pour une base spécifique
Types de données utilisateur Création par le biais de la procédure stockée sp_addtype Exec sp_addtype CodePostal, char(5) Suppression par le biais de la procédure stockée sp_droptype Exec sp_droptype CodePostal
Création d’une table CREATE TABLE [dbo].[Client] ( [IdClient] [int] NOT NULL , [NomClient] [varchar] (100) NULL , [CodePostalClient] [CodePostal] NULL ) DROP TABLE [dbo].[Client]
Ajout et suppression de colonnes ALTER TABLE [dbo].[Client] ADD [VilleClient] [varchar] (100) NULL ALTER TABLE Client DROP COLUMN VilleClient
Génération de valeurs uniques Champ compteur : Propriété de colonne IDENTITY. Souvent utilisé avec clé Définir la valeur de départ Définir la valeur de l’incrément Il s’agit ici d’une valeur unique pour la table Une seule colonne identity par table Ne peut être nulle A utiliser avec des entiers
Génération de valeurs uniques Champ avec valeur unique au niveau du système Utiliser un type de données UniqueIdentifier Chaîne binaire de 16 bits de type GUID (Global Unique Identifier) Générer par la fonction Newid() associé au mot clé Default
Génération de valeurs uniques CREATE TABLE [dbo].[TestIdentity] (IdClient int IDENTITY (1, 5) NOT NULL, NomClient varchar(100) ) CREATE TABLE TestUniqueIdentifier (IdUnique uniqueidentifier NOT NULL DEFAULT NEWID() ,
Atelier : Création d’une base Création d’une base de données Création de types de données Création de tables Ajout et suppression de colonnes Génération de scripts