Vous êtes sur la page 1sur 10

BDD s3 Cours 3 Mme AMIROUCHE

LES OBJETS D’UNE BDD

1) Table :

Les tables sont des objets de base de données qui contiennent toutes les données d'une base de
données. Une définition de table est un ensemble de colonnes. Dans les tables, les données sont
organisées en lignes et en colonnes, à la manière d'un tableur. Chaque ligne représente un
enregistrement unique et chaque colonne, un champ de l'enregistrement. Par exemple, une table
qui contient les données relatives aux employés d'une société peut contenir une ligne pour chaque
employé et des colonnes représentant des informations sur l'employé, telles que son numéro, son
nom, son adresse, sa fonction et son numéro de téléphone privé.

2) Types de données

Les objets qui contiennent des données ont un type de données associé définissant la catégorie
de données (caractère, entier, binaire, etc.) acceptée. Les objets suivants possèdent des types de
données :

• colonnes dans les tables et les vues ;


• paramètres dans les procédures stockées ;
• variables ;
• fonctions Transact-SQL retournant une ou plusieurs valeurs de données d'un type de
données spécifique ;
• procédures stockées ayant un code de retour dont le type de données est toujours integer.

L'affectation d'un type de données à un objet définit quatre attributs de l'objet :

• le type de données contenues par l'objet ;


• la longueur ou la taille de la valeur stockée ;
• la précision du nombre (types de données numériques uniquement) ;
• l'échelle du nombre (types de données numériques uniquement).

Transact-SQL possède ces types de données système :


bigint binary bit char CLR

cursor date datetime datetime2 datetimeoffset

1
BDD s3 Cours 3 Mme AMIROUCHE

decimal float hierarchyid image int

money nchar ntext numeric nvarchar

real rowversion smalldatetime smallint smallmoney

sql_variant table text time timestamp

int, bigint, varbinary varchar uniqueidentifier xml


smallint et (Transact-
tinyint SQL)
(Transact-
SQL)

a) int, bigint, smallint et tinyint :


Types de données représentant des valeurs numériques exactes qui utilisent des entiers.
Type de Plage Stockage
données
bigint De -2^63 (-9 223 372 036 854 775 808) à 2^63- Huit octets
1 (9 223 372 036 854 775 807)

int De -2^31 (-2 147 483 648) à 2^31-1 Quatre


(2 147 483 647) octets

smallint De -2^15 (-32 768) à 2^15-1 (32 767) Deux octets

tinyint De 0 à 255 Un octet

b) float et real :
Types de données approximatives à utiliser avec des données numériques à virgule
flottante. Les données à virgule flottante sont approximatives ; il n'est donc pas possible de
représenter précisément toutes les valeurs de ce type de données.

2
BDD s3 Cours 3 Mme AMIROUCHE

Type de données Plage

float - 1,79E+308 à -2,23E-308, 0 et 2,23E-308 à


1,79E+308

real - 3,40E + 38 à -1,18E - 38, 0 et 1,18E - 38 à 3,40E


+ 38

c) char et varchar :
Types de données caractères de longueur fixe ou variable.
• char [ ( n ) ]
Données de type caractère non-Unicode, d'une longueur fixe de n octets. n doit être compris
entre 1 et 8000. La taille de stockage est égale à n octets
• varchar [ ( n | max ) ]
Données de type caractère non-Unicode d'une longueur variable. n doit être compris entre 1
et 8000. max indique que la taille maximale de stockage est égale à 2^31-1 octets. La taille
de stockage est la longueur réelle des données entrées + 2 octets. Les données saisies
peuvent avoir une longueur de 0 caractère.

Afin de prévenir les problèmes de conversion de caractères si vos sites prennent en


charge plusieurs langues, envisagez d'utiliser les types de données Unicode nchar ou
nvarchar. Si vous utilisez char ou varchar, nous vous recommandons de suivre les
instructions suivantes :
• Utilisez char lorsque les tailles des entrées de données de colonnes sont cohérentes.
• Utilisez varchar lorsque les tailles des entrées de données de colonnes varient
considérablement.
• Utilisez varchar(max) lorsque les tailles des entrées de données de colonnes varient
considérablement et que la taille peut dépasser 8000 octets.
d) Types de données de date et d'heure
• Les types de données de date et d'heure Transact-SQL sont répertoriés dans le
tableau suivant.

3
BDD s3 Cours 3 Mme AMIROUCHE

Type de Format Plage Taille de


données stockage (en
octets)

heure hh:mm:ss[.nnnnnnn] 00:00:00.000000 3à5


0 à
23:59:59.999999
9
date AAAA-MM-JJ 0001-01-01 à 3
9999-12-31
smalldatetime AAAA-MM-JJ 1900-01-01 à 4
hh:mm:ss 2079-06-06
datetime AAAA-MM-JJ 1753-01-01 à 8
hh:mm:ss[.nnn] 9999-12-31
datetime2 AAAA-MM-JJ 0001-01-01 6à8
hh:mm:ss[.nnnnnnn] 00:00:00.000000
0 à 9999-12-31
23:59:59.999999
9
datetimeoffset AAAA-MM-JJ 0001-01-01 8 à 10
hh:mm:ss[.nnnnnnn] 00:00:00,000000
[+|-]hh:mm 0 à 9999-12-31
23:59:59,999999
9 (au format UTC)
e) Valeurs NULL
Les colonnes peuvent accepter ou rejeter les valeurs NULL. NULL est un concept spécifique
aux bases de données désignant une valeur de type inconnu. NULL ne correspond pas à un
espace ou à 0 ; l'espace est un caractère valide et 0 une valeur valide. NULL correspond
simplement à une valeur inconnue. NULL se distingue également d'une chaîne de longueur
nulle. Si une définition de colonne contient la clause NOT NULL, il n'est pas possible d'insérer
de ligne ayant la valeur NULL. Si la définition de colonne comporte uniquement le mot clé
NULL, il est possible d'insérer des valeurs NULL.
L'autorisation de valeurs NULL dans une colonne peut augmenter la complexité de toutes les
comparaisons logiques utilisant cette colonne. Selon la norme ISO, toute comparaison avec

4
BDD s3 Cours 3 Mme AMIROUCHE

une valeur NULL ne prend pas la valeur TRUE ou FALSE, mais la valeur UNKNOWN. Cela
se traduit donc par l'introduction de trois opérateurs de comparaison logiques pouvant
entraîner des problèmes de gestion.
3) Contraintes
Les contraintes permettent de définir la manière dont le Moteur de base de données applique
automatiquement l'intégrité d'une base de données.
Les contraintes définissent des règles relatives aux valeurs autorisées dans les colonnes et
elles constituent le mécanisme standard de mise en application de l'intégrité.
La planification et la création de tables imposent d'identifier les valeurs valides des colonnes
et de déterminer comment garantir l'intégrité des données des colonnes. SQL Server offre
les mécanismes suivants pour garantir l'intégrité des données d'une colonne :
 PRIMARY KEY
 FOREIGN KEY
 UNIQUE
 CHECK
 Définitions DEFAULT
 Autorisation des valeurs NULL
a) PRIMARY KEY
 Les contraintes PRIMARY KEY identifient une colonne ou un ensemble de colonnes
possédant des valeurs qui identifient de manière unique chaque ligne d'une table..
 Une table ne peut comporter qu'une seule contrainte PRIMARY KEY, et une colonne
impliquée dans la contrainte PRIMARY KEY ne peut pas accepter les valeurs NULL
 Si une contrainte PRIMARY KEY est définie sur plusieurs colonnes, des valeurs peuvent
apparaître en double dans une colonne, mais chaque combinaison de valeurs issue de toutes
les colonnes de la définition de contrainte PRIMARY KEY doit être unique.
b) FOREIGN KEY
 « clé étrangère » (FK, foreign key) est une colonne ou une combinaison de colonnes utilisée
pour établir et conserver une liaison entre les données de deux tables.
 Dans une référence de clé étrangère, la création d'une liaison entre deux tables s'effectue
lors du référencement de la ou des colonnes contenant les valeurs de clé primaire d'une table
dans la ou les colonnes de l'autre table. Cette colonne devient alors une clé étrangère dans
la seconde table.

5
BDD s3 Cours 3 Mme AMIROUCHE

 La contrainte FOREIGN KEY consiste à contrôler les données qui peuvent être stockées
dans la table de clés étrangères, elle contrôle également les modifications apportées aux
données de la table de clés primaires.
 Les clauses REFERENCES lors de la création ou la modification des tables prennent en
charge les clauses ON DELETE et ON UPDATE comme suit:
 [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
 [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
Exemple:
Num_clt varchar(6) foreign key references Client(Num_clt ) on delete cascade on
update cascade
• NO ACTION spécifie que la suppression échoue en générant une erreur.
• CASCADE spécifie que toutes les lignes comportant des clés étrangères qui pointent
vers la ligne supprimée sont également supprimées.
• SET NULL spécifie que toutes les lignes comportant des clés étrangères qui pointent
vers la ligne supprimée prennent la valeur NULL.
• SET DEFAULT spécifie que toutes les lignes comportant des clés étrangères qui
pointent vers la ligne supprimée prennent leur valeur par défaut
c) UNIQUE
• Les contraintes UNIQUE garantissent le caractère unique des valeurs dans un ensemble de
colonnes.
• Vous pouvez définir plusieurs contraintes UNIQUE sur une table, mais une seule contrainte
PRIMARY KEY.
• contrairement aux contraintes PRIMARY KEY, les contraintes UNIQUE autorisent la valeur
NULL. Cependant, comme pour toute valeur participant à une contrainte UNIQUE, une seule
valeur NULL est autorisée par colonne.
• Une contrainte UNIQUE peut être référencée par une contrainte FOREIGN KEY.
d) CHECK
• Les contraintes CHECK assurent l'intégrité de domaine en limitant les valeurs acceptées
par une colonne. Elles sont similaires aux contraintes FOREIGN KEY dans la mesure où elles
contrôlent les valeurs qui sont placées dans une colonne. Leur différence réside dans la
manière dont elles déterminent les valeurs considérées comme valides : Les contraintes
FOREIGN KEY obtiennent la liste des valeurs valides d'une autre table, tandis que les
contraintes CHECK déterminent ces valeurs sur la base d'une expression logique qui n'est
pas fondée sur des données d'une autre colonne.

6
BDD s3 Cours 3 Mme AMIROUCHE

• Exemple: Sexe char(1) not null check (sexe in (‘M’, ‘F’)),


e) Définitions DEFAULT
• Chaque colonne d'un enregistrement doit contenir une valeur, même si cette valeur est
NULL.
• Puisque les colonnes avec des valeurs NULL autorisées ne sont pas souhaitables, une
meilleure solution serait d'établir une définition DEFAULT pour la colonne.
• Ainsi, il est courant de spécifier zéro comme valeur par défaut de colonnes numériques, ou
N/A comme valeur par défaut de colonnes de type chaîne lorsqu'aucune valeur n'est
précisée.
• La valeur insérée dans une colonne qui est définie par la définition DEFAULT et la possibilité
de valeur NULL comme suit :
Aucune entrée, Aucune entrée,
Définition de la Entrée d'une
aucune définition définition
colonne valeur NULL
DEFAULT DEFAULT
Autorise les valeurs
NULL Valeur par défaut NULL
NULL

N'autorise pas les


Erreur Valeur par défaut Erreur
valeurs NULL

f) Autorisation des valeurs NULL


• Si vous insérez une ligne mais qu'aucune valeur n'est spécifiée pour une colonne qui
autorise les valeurs NULL, le Moteur de base de données indique la valeur NULL, sauf s'il
existe un objet ou une définition DEFAULT.
• Une colonne définie avec le mot clé NULL accepte également une entrée explicite NULL de
la part de l'utilisateur.
• il est conseillé de ne pas autoriser les valeurs NULL puisque, d'une part, celles-ci rendent
plus complexes les requêtes et les mises à jour et, d'autre part, d'autres options de colonne,
telles que les contraintes PRIMARY KEY, ne peuvent pas être employées avec des colonnes
acceptant les valeurs NULL.

7
BDD s3 Cours 3 Mme AMIROUCHE

4) Règles :
 Une règle spécifie les valeurs acceptables qui peuvent être insérées dans cette
colonne.
 Une colonne ne peut avoir qu'une seule règle liée. Cependant, une colonne peut
être liée à une ou plusieurs contraintes CHECK. Dans ce cas, toutes les restrictions
sont évaluées.
 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.
L'exemple suivant crée une règle qui spécifie uniquement des numéros d'une plage
spécifiée. La règle est liée à une colonne d'une table.

CREATE RULE id_chk AS @id_prd BETWEEN 0 and 100;


GO
CREATE TABLE produit
(
id_prd int PRIMARY KEY,
Lib_prd varchar(50)
)
GO
sp_bindrule id_chk, 'produit.id_prd';
GO

5) Indexe :
À l'instar de l'index d'un livre, l'index d'une base de données vous permet de retrouver
rapidement des informations dans une table ou une vue indexée. Un index se compose de
clés créées à partir d'une ou plusieurs colonnes dans la table ou la vue et de pointeurs qui
mappent sur l'emplacement de stockage des données spécifiées. Un index bien conçu
améliore de manière significative les performances des requêtes et des applications de
base de données. Un index peut réduire la quantité de données qui doivent être lues par
une requête pour retourner un ensemble de résultats. Les index peuvent aussi imposer
l'unicité des lignes d'une table, garantissant ainsi l'intégrité des données de la table.
Exemple :
CREATE INDEX index_lib ON produit (Lib_prd)

8
BDD s3 Cours 3 Mme AMIROUCHE

6) Vue :
Une vue est une table virtuelle, c'est-à-dire dont les données ne sont pas stockées dans
une table de la base de données, et dans laquelle il est possible de rassembler des
informations provenant de plusieurs tables. On parle de "vue" car il s'agit simplement d'une
représentation des données dans le but d'une exploitation visuelle. Les données présentes
dans une vue sont définies grâce à une clause SELECT.
La création d'une vue se fait grâce à la clause CREATE VIEW suivie du nom que l'on donne
à la vue, puis du nom des colonnes dont on désire agrémenter cette vue puis enfin d'une
clause AS précédant la sélection.
Exemple :

create view aff_nom as


select CLI_NOM from T_CLIENT

Intérêts des vues

La vue représente de cette façon une sorte d'intermédiaire entre la base de données et l'utilisateur.
Celà a de nombreuses conséquences :

 une sélection des données à afficher

 une restriction d'accès à la table pour l'utilisateur, c'est-à-dire une sécurité des données accrue

 un regroupement d'informations au sein d'une entité

9
BDD s3 Cours 3 Mme AMIROUCHE

7) Fonction définies par l’utilisateur :

CREATE FUNCTION affich_matricule


(
@_matricule varchar(4)
)
RETURNS varchar(32)
AS
BEGIN
DECLARE @personnel_nom varchar(32)

SELECT @personnel_nom = nom


FROM dbo.personne
WHERE matr = @_matricule

RETURN @personnel_nom
END

8) Procédures stockées.
9) Déclencheur.

10

Vous aimerez peut-être aussi