Introduction
Le langage de définition des données
s’appuie sur trois ordres : CREATE, ALTER et DROP déclinés
pour chaque objet de la base de données. Chaque objet peut
correspondre soit à un objet physique, donc à des
fichiers dans les systèmes de fichiers, soit à un
objet logique, et donc seulement une définition stockée
dans le catalogue de la base de données.
L’exécution de ces ordres
implique nécessairement un verrouillage exclusif des objets
concernés. Ce verrouillage étant exclusif, aucun
autre verrou en lecture ou en écriture ne peut être
maintenu. Ceci ne pose pas de problème lors de la création
d’un objet puisqu’aucune session concurrente ne peut l’avoir réclamé mais
lors de la suppression d’un objet, il faut attendre que tous les
verrous existants soient relâchés. En ce qui concerne
une base de données par exemple, il ne doit pas y avoir
de sessions connectées à cette base.
L’impact le plus important concerne la modification
d’un objet, car le verrou est conservé durant tout le temps
d’exécution de la commande, et ceci peut donc
avoir un impact sur l’exécution de requêtes
concurrentes.
Les ordres de définition des données
doivent donc être exécutés avec précaution
si possible en choisissant une fenêtre de temps opportune.