Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lionelp
Bonjour,
L'index est une structure physique permettant d'assurer performance d'accès et unicité (si spécifiée). La contrainte est un objet logique permettant d'établir ou de renforcer une relation entre des tables ou une propriété d'une ou plusieurs colonnes. Les contraintes de clé primaire et étrangères s'appuient sur des index pour: garantir l'unicité dans le cas d'une clé primaire assurer les performances car les colonnes d'une clé étrangère sont souvent utilisées dans des jointures.
L'aide en ligne (BOL) en parle assez bien.
Cordialement, LionelP
"Yann" a écrit :
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
Un grand Merci. Codialement, Yannick FRANCOIS
Bonjour,
L'index est une structure physique permettant d'assurer performance d'accès
et unicité (si spécifiée).
La contrainte est un objet logique permettant d'établir ou de renforcer une
relation entre des tables ou une propriété d'une ou plusieurs colonnes.
Les contraintes de clé primaire et étrangères s'appuient sur des index pour:
garantir l'unicité dans le cas d'une clé primaire
assurer les performances car les colonnes d'une clé étrangère sont souvent
utilisées dans des jointures.
L'aide en ligne (BOL) en parle assez bien.
Cordialement,
LionelP
"Yann" a écrit :
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
L'index est une structure physique permettant d'assurer performance d'accès et unicité (si spécifiée). La contrainte est un objet logique permettant d'établir ou de renforcer une relation entre des tables ou une propriété d'une ou plusieurs colonnes. Les contraintes de clé primaire et étrangères s'appuient sur des index pour: garantir l'unicité dans le cas d'une clé primaire assurer les performances car les colonnes d'une clé étrangère sont souvent utilisées dans des jointures.
L'aide en ligne (BOL) en parle assez bien.
Cordialement, LionelP
"Yann" a écrit :
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
Un grand Merci. Codialement, Yannick FRANCOIS
Fred BROUARD
Rien à voir !!!
La notion de contrainte est propre au langage SQL, alors que la notion d'index n'existe pas en SQL ! Un index n'est autre qu'un outil du SGBDR pour l'aider à assumer une tâche probable.
SQL distingue différents niveaux de contraintes et différents types de contraintes.
Les niveaux de contraintes : 1) Contrainte de base dites ASSERTION (propre à la base) 2) Contrainte de domaine (prope à la difition de domaine SQL, c'est à dire de types SQL avancé) 3) Contrainte de table
Les différents types de contraintes sont : NOT NULL (obligatoire) [mono colonne] PRIMARY KEY (clef primaire) [multi colonne] FOREIGN KEY (clef étrangère) [multi colonne] UNIQUE (unicité) [multi colonne] CHECK (vailidité) [multi colonne]
La seule relation qui existe entre Contraintes et Index est que certains SGBDR dans certains cas posent des index pour certaines contraintes, afin de se faciliter la vie. Mais en théorie aucun index n'est nécessaire à l'utilisation de SQL.
Voici ce que je dis dans mon récent bouquin écrit avec C. Soutou : " 3.9 Les index et SQL : définition et création A proprement parler les index ne font pas partie du langage SQL. Rappelons que SQL en tant que langage ne s'occupe nullement des aspects physiques ou cosmétiques de la problématique des SGBDR. Or les index sont des organisations physiques de données en vue d'accélérer certains traitements comme les recherches ou les comparaisons. Tout comme les espaces de stockage des données (fichiers) SQL passe volontairement sous silence ce concept. Mais leur importance est telle dans les SGBDR qu'il ne serait pas correct de les passer sous silence sous le prétexte qu'ils ne font pas partie intégrante de SQL !
3.9.1 Définition de l'index Un index est une construction de données, dont la structure est optimisée afin que les opérations de recherche soient les plus efficaces possible. Nous utilisons tous les jours des index dans la vie courante : notre répertoire téléphonique, la liste des mots clefs par ordre alphabétique en fin d'un ouvrage technique, les numéros des immeubles dans une rue, sont des index. Il y a fort à parier que vous allez mettre plus de temps à retrouver le numéro de téléphone de votre amie Zoé, si vous avez écrit chaque numéro de téléphone sur un petit bout de papier et rangé le tout dans une boîte en carton, que si vous faites usage d'un annuaire téléphonique personnel, qui, nous l'espérons, est organisé par ordre alphabétique des noms !
A proprement parler SQL n'a pas besoin d'index pour fonctionner. Rechercher une valeur dans une colonne ou vérifier l'unicité d'une occurrence n'est qu'un problème technique qui peut être réglé par une lecture séquentielle de toutes les informations. Seules des considérations de performance sur des volumes importants de données peuvent entrer en jeu.
De manière générale, un index peut être compris comme une collection d'information organisée physiquement de telle manière que la recherche d'une entrée de données soit la plus rapide possible. Comme dans une base de données, les données sont organisées par lignes, il convient que l'index inclut à la fois la valeur de l'occurrence et la référence à la ligne de la table à laquelle elle dépend. Il existe plusieurs structures aujourd'hui bien connues pour organiser les index, mais chaque SGBDR possède souvent quelques petits secrets de fabrication !
3.9.2 Organisation des index Les structures d'index les plus courantes sont les suivantes : séquentiel, arbre, cluster, hachage, bitmap.
[... 3 pages ...] "
A +
Yann a écrit:
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
Un grand Merci. Codialement, Yannick FRANCOIS
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Rien à voir !!!
La notion de contrainte est propre au langage SQL, alors que la notion d'index
n'existe pas en SQL ! Un index n'est autre qu'un outil du SGBDR pour l'aider à
assumer une tâche probable.
SQL distingue différents niveaux de contraintes et différents types de contraintes.
Les niveaux de contraintes :
1) Contrainte de base dites ASSERTION (propre à la base)
2) Contrainte de domaine (prope à la difition de domaine SQL,
c'est à dire de types SQL avancé)
3) Contrainte de table
Les différents types de contraintes sont :
NOT NULL (obligatoire) [mono colonne]
PRIMARY KEY (clef primaire) [multi colonne]
FOREIGN KEY (clef étrangère) [multi colonne]
UNIQUE (unicité) [multi colonne]
CHECK (vailidité) [multi colonne]
La seule relation qui existe entre Contraintes et Index est que certains SGBDR
dans certains cas posent des index pour certaines contraintes, afin de se
faciliter la vie. Mais en théorie aucun index n'est nécessaire à l'utilisation
de SQL.
Voici ce que je dis dans mon récent bouquin écrit avec C. Soutou :
"
3.9 Les index et SQL : définition et création
A proprement parler les index ne font pas partie du langage SQL. Rappelons que
SQL en tant que langage ne s'occupe nullement des aspects physiques ou
cosmétiques de la problématique des SGBDR. Or les index sont des organisations
physiques de données en vue d'accélérer certains traitements comme les
recherches ou les comparaisons. Tout comme les espaces de stockage des données
(fichiers) SQL passe volontairement sous silence ce concept.
Mais leur importance est telle dans les SGBDR qu'il ne serait pas correct de les
passer sous silence sous le prétexte qu'ils ne font pas partie intégrante de SQL !
3.9.1 Définition de l'index
Un index est une construction de données, dont la structure est optimisée afin
que les opérations de recherche soient les plus efficaces possible.
Nous utilisons tous les jours des index dans la vie courante : notre répertoire
téléphonique, la liste des mots clefs par ordre alphabétique en fin d'un ouvrage
technique, les numéros des immeubles dans une rue, sont des index. Il y a fort à
parier que vous allez mettre plus de temps à retrouver le numéro de téléphone de
votre amie Zoé, si vous avez écrit chaque numéro de téléphone sur un petit bout
de papier et rangé le tout dans une boîte en carton, que si vous faites usage
d'un annuaire téléphonique personnel, qui, nous l'espérons, est organisé par
ordre alphabétique des noms !
A proprement parler SQL n'a pas besoin d'index pour fonctionner. Rechercher une
valeur dans une colonne ou vérifier l'unicité d'une occurrence n'est qu'un
problème technique qui peut être réglé par une lecture séquentielle de toutes
les informations. Seules des considérations de performance sur des volumes
importants de données peuvent entrer en jeu.
De manière générale, un index peut être compris comme une collection
d'information organisée physiquement de telle manière que la recherche d'une
entrée de données soit la plus rapide possible. Comme dans une base de données,
les données sont organisées par lignes, il convient que l'index inclut à la fois
la valeur de l'occurrence et la référence à la ligne de la table à laquelle elle
dépend.
Il existe plusieurs structures aujourd'hui bien connues pour organiser les
index, mais chaque SGBDR possède souvent quelques petits secrets de fabrication !
3.9.2 Organisation des index
Les structures d'index les plus courantes sont les suivantes : séquentiel,
arbre, cluster, hachage, bitmap.
[... 3 pages ...]
"
A +
Yann a écrit:
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
Un grand Merci.
Codialement,
Yannick FRANCOIS
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
La notion de contrainte est propre au langage SQL, alors que la notion d'index n'existe pas en SQL ! Un index n'est autre qu'un outil du SGBDR pour l'aider à assumer une tâche probable.
SQL distingue différents niveaux de contraintes et différents types de contraintes.
Les niveaux de contraintes : 1) Contrainte de base dites ASSERTION (propre à la base) 2) Contrainte de domaine (prope à la difition de domaine SQL, c'est à dire de types SQL avancé) 3) Contrainte de table
Les différents types de contraintes sont : NOT NULL (obligatoire) [mono colonne] PRIMARY KEY (clef primaire) [multi colonne] FOREIGN KEY (clef étrangère) [multi colonne] UNIQUE (unicité) [multi colonne] CHECK (vailidité) [multi colonne]
La seule relation qui existe entre Contraintes et Index est que certains SGBDR dans certains cas posent des index pour certaines contraintes, afin de se faciliter la vie. Mais en théorie aucun index n'est nécessaire à l'utilisation de SQL.
Voici ce que je dis dans mon récent bouquin écrit avec C. Soutou : " 3.9 Les index et SQL : définition et création A proprement parler les index ne font pas partie du langage SQL. Rappelons que SQL en tant que langage ne s'occupe nullement des aspects physiques ou cosmétiques de la problématique des SGBDR. Or les index sont des organisations physiques de données en vue d'accélérer certains traitements comme les recherches ou les comparaisons. Tout comme les espaces de stockage des données (fichiers) SQL passe volontairement sous silence ce concept. Mais leur importance est telle dans les SGBDR qu'il ne serait pas correct de les passer sous silence sous le prétexte qu'ils ne font pas partie intégrante de SQL !
3.9.1 Définition de l'index Un index est une construction de données, dont la structure est optimisée afin que les opérations de recherche soient les plus efficaces possible. Nous utilisons tous les jours des index dans la vie courante : notre répertoire téléphonique, la liste des mots clefs par ordre alphabétique en fin d'un ouvrage technique, les numéros des immeubles dans une rue, sont des index. Il y a fort à parier que vous allez mettre plus de temps à retrouver le numéro de téléphone de votre amie Zoé, si vous avez écrit chaque numéro de téléphone sur un petit bout de papier et rangé le tout dans une boîte en carton, que si vous faites usage d'un annuaire téléphonique personnel, qui, nous l'espérons, est organisé par ordre alphabétique des noms !
A proprement parler SQL n'a pas besoin d'index pour fonctionner. Rechercher une valeur dans une colonne ou vérifier l'unicité d'une occurrence n'est qu'un problème technique qui peut être réglé par une lecture séquentielle de toutes les informations. Seules des considérations de performance sur des volumes importants de données peuvent entrer en jeu.
De manière générale, un index peut être compris comme une collection d'information organisée physiquement de telle manière que la recherche d'une entrée de données soit la plus rapide possible. Comme dans une base de données, les données sont organisées par lignes, il convient que l'index inclut à la fois la valeur de l'occurrence et la référence à la ligne de la table à laquelle elle dépend. Il existe plusieurs structures aujourd'hui bien connues pour organiser les index, mais chaque SGBDR possède souvent quelques petits secrets de fabrication !
3.9.2 Organisation des index Les structures d'index les plus courantes sont les suivantes : séquentiel, arbre, cluster, hachage, bitmap.
[... 3 pages ...] "
A +
Yann a écrit:
Mesdames et Messieurs,
Quel est la différence fondamentale entre un index et une contrainte?
Un grand Merci. Codialement, Yannick FRANCOIS
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************