TBDR - L3 Info Upcc
TBDR - L3 Info Upcc
TBDR - L3 Info Upcc
II.2. DEFINITION
Une base de données repartie est un
ensemble de bases de données gérées par de sites
différents et apparaissant à l’utilisateur comme une base
unique.
Une base de données repartie peut aussi
être vue comme une collection de bases de données
logiquement reliées, distribuées sur un réseau.
II.3. LE SGBD REPARTI
Nous précisons maintenant les composants
essentiels nécessaires pour gérer des données reparties.
Le système de gestion de bases de données reparti
(SGBDR) cache aux applications l’existence de multiples
II.3.2.5. HETEROGENEITE
Nous avons déjà vue ci-dessus le besoin des
Entreprises en matière d’accès intégré à des bases de
données hétérogènes existantes. Un SGBDR hétérogène
doit être capable d’unifier modèles et langage comme
représenté Figure suivante. Ceci afin de gérer des bases
fédérées. L’unification s’effectue en général par un
langage pivot afin de limiter le nombre de conversion de
modèle à réaliser.
2. Fragmentation verticale
Découpage d’une table en sous-table par
Projections permettant de sélectionner les colonnes
composant chaque fragment.
La fragmentation verticale permet de
décomposer une table par projections comme illustre la
figure 11.b. Afin de ne pas perdre d’informations, la table
initiale doit pouvoir être recomposée par jointure des
fragments. Une telle fragmentation est adaptée au
découpage fonctionnel, chaque fonction Fi gérant des
attributs Ai1, Ai2, … Ain.
B. Cohérence
La transaction doit faire passer la base de
données d’un état cohérant à un autre cohérant. En cas
d’échec, l’état cohérent initial doit être restauré. La
cohérence d’une transaction est simplement sa
correction. En d’autres termes, une transaction est un
programme correct qui amène la base de données d’un
état cohérent à un autre état cohérent. La vérification de
la cohérence des transactions est le rôle du contrôleur de
sémantique. Assurer la cohérence des transactions est
l’objectif des mécanismes de contrôle de la concurrence.
Dans un système répliqué, pour garantir la
cohérence sur chaque site et entre chaque site,
l’information doit circuler sous la même forme et dans le
même ordre que sur le site source. En claire, il faut copier
des transactions dans l’ordre d’exécution choisi sur le site
source.
C. Isolation
Les résultats d’une transaction ne doivent
être visibles aux autres transactions qu’une fois la
transaction validée. Ceci d’éviter les interférences avec
les autres transactions. L’isolation est la propriété qui
impose à chaque transaction en train de s’exécuter ne
peut donc révéler ses résultats à d’autres transactions
concurrentes (simultanées) avant d’avoir d’effectuer son
commit.
D. Durabilité
Dès qu’une transaction valide des
Modifications, le système doit garantir que les
modifications seront conservées en cas, de panne. La
durabilité est la propriété qui garantit lorsqu’une
transaction a effectué son commit, le résultat sera
permanent et ne pourra pas être effacé de la base de
données quelques soient les pannes du système
rencontrées.
Comme vu ci-dessus, ces propriétés doivent
être garanties dans le cadre d’un système réparti. En
particulier, il faut assurer que toutes les mises à jour d’une
transaction sont exécutées sur tous les sites ou qu’aucune
ne l’est. Le problème essentiel à résoudre est le risque
d’incohérence lié au contrôle reparti : chaque site peut
décider de valider ou d’annuler une transaction, il faut
donc coordonner les validations.
II.7.5. Contrôle de concurrence
Plusieurs utilisateurs accèdent simultanément
à la BD. L’accès concurrent permet de partager les
ressources matérielles et d’améliorer les performances
d’accès aux données.
Le contrôle de concurrence est un mécanisme du SGBD,
qui contrôle l’exécution simultanée de transactions de
manière à produire les mêmes résultats qu’une
exécution séquentielle. Cette propriété est la
sérialisabilité. Une exécution d’un ensemble de
II.8.2. Verrouillage
La technique la plus répandue pour sérialiser
les transactions est basée sur l’utilisation de verrous. On
impose que l’accès aux données se fasse de manière
mutuellement exclusive.
1. Inter-blocages
Toute méthode basée sur le verrouillage peut
donner des inter- blocages lorsque deux transactions
s'entre-attendent. Pour illustrer ce cas, on peut prendre un
exemple : Une transaction Ti détient un verrou en lecture
ou en écriture sur la donnée x et une autre transaction Tj
de données différents :
Les bases OLTP (OnLine
Transactional Processing) qui correspondent à des bases
dans lesquelles les informations sont stockées de façon
directe afin de réutiliser plus tard ces informations telles
qu’elles ont été stockées.
Les bases OLAP (OnLine Analytical
Processing) qui contiennent des informations
statistiques afin d’être capable d’extraire les informations
sous forme de cube multidimensionnel dans un but d’aide
à la décision par exemple. Les statistiques contenues dans
des bases OLAP s’appuient sur des informations contenues
dans une base OLTP.
SQL Server est une collection de
composants avec un moteur de base de données et le
client composants.
CONFIGURATION DE LA PUBLICATION
Cette rubrique, on explique comment
configurer la publication et la distribution dans SQL Server.
Cette publication est possible à l'aide de :
➢ SQL Server Management Studio
➢ Transact-SQL ou d'objets
➢ RMO (Replication Management Objects).
➢ Utilisation de SQL Server Management Studio
➢ Configurez la distribution à l'aide de l'Assistant
Nouvelle publication ou de l'Assistant Configuration
de la distribution. Après avoir configuré le serveur de
distribution, affichez et modifiez des propriétés dans
la boîte de dialogue Propriétés du serveur de
distribution - <serveur de distribution>. Utilisez
l'Assistant Configuration de la distribution si vous
voulez configurer un serveur de distribution de telle
sorte que les membres des rôles de base de
données fixes db_owner puissent créer des
publications, ou parce que vous voulez configurer
un serveur distant de distribution qui ne soit pas
serveur de publication.
connectent et
synchronisent les
modifications.
Le plus souvent utilisé
avec la réplication de
fusion.
Choisissez la publication
Spécification de la connexion
RESULTAT
Ce résultat montre deux serveurs distants
MCBEN-PC\H1 et JOHN_RACHEL-PC\SQL_RACHEL.
JOHN_RACHEL-PC\SQL_RACHEL est le
L’abonnement
BDABONH1
SERVER H1
Serveur
L’abonnement
SQL_RACHEL
BDABONJR
Transact SQL
A) Commentaire
Pour insérer un commentaire, la syntaxe est la suivante :
Simon MPOLESHA TSHIAMALA
98
/* commentaire */
B) Variables
Les principaux types disponibles sont :
INT entier
DECIMAL(9,2) montant à 9 chiffres (décimaux) dont 2
après la virgule
REAL réel flottant codé sur 24 bits
CHAR(64) chaine de caractère de longueur fixe 64
VARCHAR(64) chaine de caractère de longueur variable
mais inférieure ou égale à 64
DATETIME date et/ou heure avec une précision de 3.33 ms
FLOAT réel à simple précision
Lorsque l’on définit une variable, on adopte la convention
de faire commencer son nom par @.
Exemple de déclaration d’une variable :
Declare @ numero int
Ecrire une commande transact sql qui donne le prix moyen
des article : Declare @moy float
Select @moy = AVG(prix) From article
Select @moy
Exemple 2
DECLARE @tva DECIMAL(3,3) SET @tva = 0.186
PRINT @tva
Exemple 3
WHILE
C’est la structure de contrôle répétitive qui
permet d’exécuter une série d’instructions tant qu’une
condition est vraie. WHILE condition
{instruction|bloc}
Exemple avec while
Exemple 2
DECLARE @taux REAL SET @taux = 1.0 / 6.55957
BEGIN TRAN UPDATE articles
SET art_prix = art_prix * taux
COMMIT TRAN
Exemple 3
BEGIN TRAN
INSERT into client(clt_nom, clt_num)
Procédures stockées
En pratique, les programmes qui utilisent les
données d’une base ne font pas directement appel aux
transactions, mais plutôt à des procédures auxquelles ils
peuvent passer des arguments.
Syntaxe
Le langage Transact-SQL permet de
programmer ces procédures selon la syntaxe suivante :
CREATE PROC ... le nom de la procédure
(...) les paramètres d’entrée et de sortie séparés par des
virgules
AS
DECLARE ... les variables locales
BEGIN
... les instructions, les transactions
END
Exemple 1
CREATE PROC InfoDuClient
(@numero INT) AS
Principe de fonctionnement
L’exemple ci-dessous illustre une commande d’un
ordinateur via le réseau Internet (commande en ligne).