Éléments fondamentaux de l'architecture de sql server








télécharger 120.73 Kb.
titreÉléments fondamentaux de l'architecture de sql server
page2/2
date de publication05.07.2017
taille120.73 Kb.
typeDocumentos
ar.21-bal.com > loi > Documentos
1   2
part_sample, par exemple, part_nmbr et part_name pourraient être des clés candidates, mais seule part_nmbr est choisie comme clé primaire.

CREATE TABLE part_sample

(part_nmbr int PRIMARY KEY,

part_name char(30),

part_weight decimal(6,2),

part_color char(15) )

  • Les contraintes FOREIGN KEY identifient les relations entre les tables.

Une clé étrangère dans une table pointe sur une clé candidate dans une autre table. Vous ne pouvez pas insérer de ligne ayant une valeur de clé étrangère (à l'exception de NULL) s'il n'existe pas de clé candidate possédant cette valeur. Vous ne pouvez pas supprimer de ligne dans la table référencée s'il existe une valeur de clé étrangère référençant cette clé candidate. Dans l'exemple ci-dessous, la table order_part crée une clé étrangère référençant la table part_sample définie précédemment. En principe, order_part devrait avoir aussi une clé étrangère correspondante dans une table de commandes, mais il s'agit ici d'un exemple simple.

CREATE TABLE order_part

(order_nmbr int,

part_nmbr int

FOREIGN KEY REFERENCES part_sample(part_nmbr),

qty_ordered int)

GO

Les contraintes peuvent porter sur une colonne ou une table :

  • Une contrainte de colonne est déclarée comme faisant partie de la définition de la colonne et ne s'applique qu'à celle-ci (c'est le cas des contraintes des exemples précédents).

  • Une contrainte de table est déclarée indépendamment de la définition de la colonne et s'applique à plusieurs colonnes d'une table.

Les contraintes de table sont obligatoires lorsque plusieurs colonnes doivent être incluses dans une contrainte.

Si, par exemple, une table dispose de deux colonnes ou plus dans la clé primaire, vous devez utiliser une contrainte de table pour inclure les deux colonnes dans la clé primaire. Prenons l'exemple d'une table enregistrant les événements survenant sur une machine dans une usine. Supposons que des événements de plusieurs types puissent se produire au même moment, mais qu'aucun des deux événements survenant au même moment ne soit du même type. Pour reproduire ce cas de figure dans une table, vous pouvez inclure les colonnes type et time dans une clé primaire à deux colonnes.

CREATE TABLE factory_process

(event_type int,

event_time datetime,

event_site char(50),

event_desc char(1024),

CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )


Règles

Les règles sont une fonction de compatibilité ascendante exécutant certaines des fonctions effectuées par les contraintes CHECK. Les contraintes CHECK sont le moyen standard et le plus efficace de limiter les valeurs d'une colonne. Elles sont également plus concises que les règles. Il ne peut y avoir qu'une seule règle appliquée à une colonne, contrairement aux contraintes CHECK qui peuvent être multiples. Les contraintes CHECK font partie intégrante de l'instruction CREATE TABLE, alors que les règles sont créées sous forme d'objets séparés, liés ensuite à la colonne.

Cet exemple crée une règle exécutant la même fonction que la contrainte CHECK citée en exemple dans la rubrique précédente. La contrainte CHECK est la méthode recommandée dans Microsoft® SQL Server™.

CREATE RULE id_chk AS @id BETWEEN 0 and 10000

GO

CREATE TABLE cust_sample

(

cust_id int PRIMARY KEY,

cust_name char(50),

cust_address char(50),

cust_credit_limit money,

)

GO

sp_bindrule id_chk, 'cust_sample.cust_id'

GO

Valeurs par défaut

Les valeurs par défaut sont utilisées dans une colonne si vous n'en indiquez pas d'autres lors de l'insertion d'une ligne. Il peut s'agir de toute valeur prenant la valeur d'une constante :

  • Constante

  • Fonction intégrée

  • Expression mathématique

Il existe deux moyens d'appliquer les valeurs par défaut :

  • Créer une définition par défaut à l'aide du mot clé DEFAULT dans l'instruction CREATE TABLE pour affecter une expression de constante comme valeur par défaut à une colonne.

Cette méthode est recommandée. Elle est également la plus concise.

  • Créer un objet par défaut à l'aide de l'instruction CREATE DEFAULT et le lier aux colonnes à l'aide de la procédure stockée du système sp_bindefault.

Il s'agit d'une fonction de compatibilité ascendante.

Cet exemple crée une table à l'aide de chaque type de valeur par défaut. Il crée ensuite un objet par défaut pour affecter une valeur par défaut à une colonne et lie cet objet à la colonne. Puis il réalise un test d'insertion sans indiquer de valeur pour les colonnes comportant des valeurs par défaut et extrait la ligne de test pour vérifier que les valeurs par défaut ont bien été appliquées.

USE pubs

GO

CREATE TABLE test_defaults

(keycol smallint,

process_id smallint DEFAULT @@SPID, --Preferred default definition

date_ins datetime DEFAULT getdate(), --Preferred default definition

mathcol smallint DEFAULT 10 * 2, --Preferred default definition

char1 char(3),

char2 char(3) DEFAULT 'xyz') --Preferred default definition

GO

/* Illustration only, use DEFAULT definitions instead.*/

CREATE DEFAULT abc_const AS 'abc'

GO

sp_bindefault abc_const, 'test_defaults.char1'

GO

INSERT INTO test_defaults(keycol) VALUES (1)

GO

SELECT * FROM test_defaults

GO

Le résultat de cet exemple est le suivant :

Default bound to column.

(1 row(s) affected)

keycol process_id date_ins mathcol char1 char2

------ ---------- --------------------------- ------- ----- -----

1 7 Oct 16 1997 8:34PM 20 abc xyz

(1 row(s) affected)


Déclencheurs

Les déclencheurs constituent une catégorie particulière de procédures stockées ; ils sont définis pour s'exécuter automatiquement lors du lancement sur une table d'une instruction UPDATE, INSERT ou DELETE. Ils constituent un outil puissant qui permet à chaque site de mettre automatiquement en application ses règles de gestion quand des données sont modifiées. Les déclencheurs peuvent étendre la logique de contrôle d'intégrité des contraintes, des valeurs par défaut et des règles de Microsoft® SQL Server™, même si l'utilisation des contraintes et des valeurs par défaut est préférable à chaque fois, bien que ces dernières fournissent toutes les fonctionnalités nécessaires.

Les tables peuvent comporter plusieurs déclencheurs. L'instruction CREATE TRIGGER peut être définie avec les clauses FOR UPDATE, FOR INSERT ou FOR DELETE pour affecter un déclencheur à une catégorie spécifique d'actions de modification des données. Lorsque la clause FOR UPDATE est spécifiée, la clause IF UPDATE (nom_colonne) affecte un déclencheur aux mises à jour portant sur une colonne spécifique. SQL Server permet d'attribuer plusieurs déclencheurs à une action spécifique (UPDATE, INSERT ou DELETE) dans une table unique.

Les déclencheurs permettent aussi d'automatiser certaines tâches dans une entreprise. Dans un système de gestion de stock, les déclencheurs de mise à jour peuvent détecter le seuil de réapprovisionnement et générer automatiquement une commande au fournisseur. Dans une base de données enregistrant les procédés de fabrication d'une usine, les déclencheurs peuvent prévenir les opérateurs par radiomessagerie ou par courrier électronique qu'un procédé dépasse les limites de sécurité autorisées.

Le déclencheur suivant génère un courrier électronique à chaque fois qu'un nouveau titre est ajouté à la base de données pubs.

CREATE TRIGGER reminder

ON titles

FOR INSERT

AS

EXEC master..xp_sendmail 'MaryM',

'New title, mention in the next report to distributors.'

Les déclencheurs contiennent des instructions Transact-SQL, à l'instar des procédures stockées. Ils renvoient l'ensemble des résultats généré par toute instruction SELECT au déclencheur. Il est déconseillé d'inclure des instructions SELECT dans les déclencheurs, à l'exception de celles qui ne remplissent que des paramètres, car les utilisateurs ne s'attendent pas à voir apparaître des jeux de résultats à la suite d'une instruction UPDATE, INSERT ou DELETE.

Les déclencheurs s'exécutent une fois terminée l'instruction qui les a lancés. Si l'instruction échoue du fait d'une erreur, telle qu'une violation de contrainte ou une erreur de syntaxe, le déclencheur n'est pas exécuté.

Bases de données et données système

Les systèmes Microsoft® SQL Server™ possèdent quatre bases de données système :

  • master

La base de données master enregistre l'intégralité des informations système relatives à un système SQL Server. Tous les comptes de connexion et les paramètres de configuration du système y sont consignés. La base de données master enregistre l'existence de toutes les autres bases de données et l'emplacement des fichiers primaires contenant les informations d'initialisation des bases de données utilisateur. Elle enregistre les informations d'initialisation de SQL Server, de sorte qu'une sauvegarde récente de la base est toujours disponible.

  • tempdb

tempdb contient toutes les tables et les procédures stockées temporaires. Elle répond également à tout autre besoin de stockage temporaire tel que les tables de travail générées par SQL Server. tempdb est une ressource globale ; les tables temporaires et les procédures stockées de tous les utilisateurs connectés au système y sont stockées. tempdb est recréée à chaque fois que SQL Server est lancé de façon que le système démarre avec une copie propre de la base de données. Les tables et les procédures stockées temporaires sont automatiquement supprimées à la déconnexion et aucune connexion n'est active à l'arrêt du système. De ce fait, tempdb ne contient jamais rien qui doive être sauvegardé d'une session SQL Server à une autre.

tempdb se développe automatiquement au fur et à mesure des besoins. À chaque redémarrage du système, tempdb reprend sa taille par défaut. Vous pouvez éviter la surchage liée à l'extension automatique de tempdb en utilisant l'instruction ALTER TABLE pour augmenter la taille de tempdb.

  • model

La base de données model fait office de modèle pour toutes les bases de données créées sur un système. Lors de l'émission d'une instruction CREATE DATABASE, la première partie de la nouvelle base de données est créée par copie du contenu de la base de données model, le reste étant constitué de pages vides. La base de données tempdb étant créée à chaque démarrage de SQL Server, la base de données model doit toujours exister sur un système SQL Server.

  • msdb

La base de données msdb permet à SQL Server Agent de planifier les alertes et les travaux et d'enregistrer les opérateurs.

Dans la version 7.0 de SQL Server, chaque base de données (base de données système comprises), possède son propre jeu de fichiers qui n'est pas partagé avec les autres bases de données. L'emplacement par défaut de ces fichiers est le répertoire C:\Mssql7\Data :

Fichier de base de données

Nom de fichier physique.

Taille par défaut, installation standard

données primaires de master

master.mdf

7.5 Mo

journal de master

mastlog.ldf

1.0 Mo

données primaires de tempdb

tempdb.mdf

8.0 Mo

journal de tempdb

templog.ldf

0.5 Mo

données primaires de model

model.mdf

0,75 Mo

journal de model

modellog.ldf

0,75 Mo

données primaires de msdb

msdbdata.mdf

3.5 Mo

journal de msdb

msdblog.ldf

0,75 Mo

Dans les versions précédentes de SQL Server, les bases de données système master et model se trouvaient dans un fichier unique qui portait le nom de périphérique maître. Les deux premiers Mo affectés à la base de données tempdb se trouvaient aussi dans le ce fichier périphérique maître et, parfois, dans la base de données exemple pubs. Cette concentration de bases de données sur un seul et même fichier entraînait parfois des problèmes de place dans les bases de données master et model. Dans SQL Server 7.0, toutes ces bases de données possèdent leur propre jeu de fichiers qui peuvent ainsi se développer de façon indépendante.

Chaque base de données SQL Server contient des tables système enregistrant les données nécessaires aux composants SQL Server. Le bon fonctionnement de SQL Server dépendant de l'intégrité des informations présentes dans les tables système, Microsoft ne prend pas directement en charge les utilisateurs mettant à jour les informations des tables système.

Microsoft fournit un jeu complet d'outils administratifs permettant aux utilisateurs d'administrer complètement leur système et de gérer tous les utilisateurs et les objets d'une base de données. Les utilisateurs peuvent utiliser les outils d'administration tels que SQL Server Enterprise Manager. Les développeurs peuvent recourir à l'API SQL-DMO pour intégrer les fonctionnalités d'administration complètes de SQL Server dans leurs applications. Ceux qui développent des scripts Transact-SQL et des procédures stockées peuvent utiliser les procédures stockées système et les instructions DDL Transact-SQL pour gérer toutes les fonctions administratives.

Une autre fonctionnalité importante de SQL-DMO, des procédures stockées système et des instructions DDL consiste à protéger les applications des modifications effectuées dans les tables système. Microsoft a parfois besoin de modifier les tables système des nouvelles versions de SQL Server pour prendre en charge les nouvelles fonctionnalités ajoutées à la version. Les applications qui lancent des instructions SELECT référençant directement les tables système dépendent souvent de l'ancien format des tables système. Certains sites peuvent être dans l'impossibilité de migrer vers la nouvelle version de SQL Server tant qu'ils n'ont pas réécrit les applications effectuant des sélections à partir de ces tables système. Microsoft prend en compte les procédures stockées système, les interfaces de publication DDL et SQL-DMO et fait en sorte de maintenir la compatibilité descendante de ces interfaces.

Microsoft ne prend pas en charge les déclencheurs définis sur les tables système car ils pourraient perturber le bon fonctionnement du système.

Un autre outil très important d'interrogation du catalogue SQL Server est le jeu de vues du schéma d'informations (Information Schema Views). Ces vues sont compatibles avec le schéma d'informations défini dans la norme SQL-92. Elles fournissent aux applications un composant de recherche du catalogue SQL basé sur des standards.
1   2

similaire:

Éléments fondamentaux de l\Résumé : le clustering de basculement sql server, qui inclut la prise...

Éléments fondamentaux de l\Résumé : Ce livre blanc décrit la fonctionnalité filestream de sql...

Éléments fondamentaux de l\Installation du driver Microsoft sql server pour php
«Framework php sous iis : Copix Framework» pour l’installation de sql server Express 2008

Éléments fondamentaux de l\Partie a : Installation de l’architecture logicielle
«Polytech’Market» (esql create sql), le script de remplissage de cette base (esql add sql), le script de suppression de la base (esql...

Éléments fondamentaux de l\Dbms : Oracle, Mysql, sqlite,sql server cm tools

Éléments fondamentaux de l\2011 Certification sql server 2008: ts database Development 2010

Éléments fondamentaux de l\Avertissement
«Framework php sous iis : Copix Framework» pour l’installation de sql server Express 2008

Éléments fondamentaux de l\Lieu du stage
«Système de gestion de base de données relationnelles» dont le moteur de base de données est sql server

Éléments fondamentaux de l\Résumé : les groupes de disponibilité sql server 2012 AlwaysOn offrent...

Éléments fondamentaux de l\Résumé : Les instances de cluster de basculement (fci) sql server...








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com