Salut,
Je me suis récemment rendu compte à quel point je manquais de connaissances à propos des SGBDR et du langage SQL, et j'ai tenté de remédier à la situation. Je voulais être certain d'avoir bien assimilé les différentes notions, alors je m'en remets à vous pour obtenir un peu d'aide :-)
1. Schémas
On parle quelques fois de catalogue ou de schémas. En gros, un catalogue, c'est l'équivalent des base de données et les schémas, c'est une structure qui permet de catégoriser ses tables.
1.1 - Donc un catalogue contient un ou plusieurs schémas, et chacun de ses schémas peuvent contenir une ou plusieurs tables, c'est bien ça ?
1.2 - Y a-t-il un autre avantage aux schémas, autre qu'une meilleure organisation ?
2. Index
Les index permettent d'accélérer le temps d'exécution d'une requête, comme c'est le cas pour les index dans une bibliothèque (exemple le plus récurrent).
2.1 - À quel point est-ce qu'ils accélèrent le temps d'exécution des requêtes ? Et jusqu'à quel niveau la vitesse est-elle significative (une table de plusieurs milliers de lignes, plusieurs millions, seulement une centaine ?)
2.2 - Comment sont stockés les index ? Je sais qu'ils prennent plus de place sur le disque dur, mais je comprends pas comment le SGBDR peut faire pour l'utiliser convenablement.
2.3 - Est-ce que les index sont toujours utilisés, peu importe si la requête est simple (SELECT id FROM matable), s'il y a des jointures, sous-requêtes, des vues, etc. ?
3. Primary Key
3.1 - J'ai compris deux trucs avec la contrainte Primary Key : elle est la colonne sur laquelle une Foreign Key pointe, et elle est l'équivalent des deux contraires NOT NULL et UNIQUE. Y a-t-il quelque chose d'autre à savoir sur les primary keys ? Est-ce qu'en fait, leur seul intérêt, c'est d'être la référence des FK ?
3.2 - Si on a, par exemple, les trois colonnes suivantes dans notre table membre : id, account, email. Ces trois colonnes ne peuvent être nulle et doivent être uniques, mais seulement la colonne ID va servir de référence à une foreign key dans une autre table.
Est-ce qu'on peut quand même mettre une primary key multiple sur ces trois colonnes, ou doit-on se limiter aux contraintes NOT NULL et UNIQUE sur account et email ?
3.3 - Dans le cas où la réponse à la question précédente était non, comment se servir d'une PRIMARY KEY à plusieurs colonnes ?
4- Procédures stockées
Donc, les procédures stockées, c'est l'équivalent des fonctions dans un autre langage. On peut les utiliser soit comme des fonctions, soit comme des triggers. De plus, elles sont précompilées donc plus rapides.
4.1 - Mis à part dans l'utilisation des triggers, quand peut-on les utiliser ? Je dois avouer que je ne vois pas vraiment d'autres cas.
4.2 - Est-ce vraiment l'équivalent des fonctions ?
Voilà, j'ai essayé d'organiser le tout le mieux possible, si vous avez des interrogations face à mon message, je suis prêt à y répondre :-)
Merci d'avance,
Vincent
Partager