Dans cet article, nous allons explorer les différents types de tables SQL et les meilleures pratiques pour créer des tables définies par l'utilisateur dans SQL Server.
Les tables sont des objets principaux pour stocker des données dans des bases de données relationnelles. Pour visualiser un tableau, pensez à une feuille de calcul Excel. La feuille de calcul organise les données dans un format de ligne et de colonne. De même, les bases de données relationnelles utilisent plusieurs tables (feuilles) pour organiser les données.
- Ligne :Il identifie de manière unique un enregistrement. Par exemple, les données de la ligne 1 appartiennent à un employé nommé [Raj]. Il ne peut pas stocker les données d'un autre employé.
- Colonne :Chaque colonne définit un attribut de la table. Par exemple, la colonne [FirstName] stocke le prénom de tous les employés. Vous ne pouvez pas stocker d'autres données telles que [Ville] dans cette colonne.
Supposons que nous ayons besoin d'une table [Employee] dans une base de données SQL. Cette table stocke les enregistrements des employés d'une entreprise. Pour la colonne [EmpID], nous avons besoin d'un nombre positif (sans point décimal). Dans ce cas, le type de données [integer] est le plus approprié. Une fois que vous avez défini la colonne [EmpID] comme entier, SQL Server ne vous permet pas d'insérer des valeurs qui ne satisfont pas au type de données entier. Par exemple, vous ne pouvez pas insérer la chaîne "Raj" dans la colonne [EmpID[.
Création d'un tableau SQL
De manière générale, pour créer une table SQL, nous devons disposer des informations suivantes :
- Quel est l'instance SQL et le nom de la base de données pour le stockage d'objets ?
- Dans quel schéma souhaitez-vous stocker la table ?
- Quels sont les noms de colonne de votre tableau spécifique ?
- Quels sont les types de données pour ces colonnes ?
- Les colonnes permettent-elles de stocker des valeurs NULL ?
- Utilisez-vous la colonne de clé primaire ? Si oui, quelle colonne servira de colonne de clé primaire ?
- Voulez-vous créer des index non clusterisés ?
Pour cette démonstration, utilisons les réponses suivantes à ces questions pour créer la table des employés.
- Réponse 1 :le nom de la base de données cible est [AzureDemoDatabase]
- Réponse 2 :Nous voulons stocker les tables dans le schéma DBO par défaut
- Réponse 3 :Le tableau [Employé] doit comporter cinq colonnes :[ID], [FirstName], [LastName], [City] et [DOB]
- Réponse 4 :la table [Employé] doit utiliser les types de données suivants.
- [ID] :Entier
- [FirstName] :Varchar(50) NOT NULL
- [LastName] :Varchar(30) NOT NULL
- [Ville] :Varchar[50] NULL
- [DOB] :DATE NON NULLE
- Propriétés NULL telles que définies ci-dessus
- Oui, la colonne [ID] est une colonne de clé primaire
- Non, seuls les index clusterisés sont nécessaires
Types de tables SQL
Les tables SQL Server peuvent être divisées dans les catégories suivantes.
Tableaux système
SQL Server stocke la configuration de l'instance et les propriétés de la base de données dans un ensemble spécial de tables. Ces tables sont appelées tables système. Les utilisateurs ne sont pas autorisés à modifier directement ces tableaux. SQL Server ne permet pas d'interroger directement des tables système spécifiques. Au lieu de cela, il fournit des procédures stockées système, des fonctions, des objets de gestion SQL Server et des objets de gestion de la réplication pour interroger ces composants. Vous pouvez vous référer aux documents Microsoft pour comprendre les tables système plus en détail.
Tableaux temporaires
Parfois, nous devons stocker temporairement des données dans la base de données pour le calcul, la manipulation ou le stockage de résultats intermédiaires. Dans ces cas, nous pouvons utiliser des tables temporaires qui sont toujours conservées dans la base de données système TempDB.
SQL Server possède deux types de tables temporaires :
- Local : Chaque table temporaire locale commence par un signe (#). Sa portée est limitée à la connexion en cours. SQL Server supprime automatiquement ces tables une fois que l'utilisateur se déconnecte.
- Mondial : Chaque table temporaire globale commence par un signe (##). Tous les utilisateurs peuvent référencer les tables temporaires globales. Si tous les utilisateurs qui font référence à la table globale sont connectés, SQL Server la supprime.
–Table TEMPORAIRE ( Local )
Créer la table #TableA
(
ID int,
[Nom] varchar(50)
)
–Table temporaire globale
Créer la table ##TableB
(
ID int,
[Nom] varchar(50)
)
Table permanente ou définie par l'utilisateur
Les utilisateurs peuvent définir leur propre structure de table, colonnes, types de données, contraintes et index selon les exigences de leur application. Ces tables sont appelées tables définies par l'utilisateur.
Ces tables sont toujours stockées dans la base de données à moins que quelqu'un ne les supprime explicitement. Par conséquent, elles sont également appelées tables permanentes.
Il existe plusieurs façons de créer une table définie par l'utilisateur dans SQL Server.
- Interface graphique SQL Server Management Studio
- Utiliser le script T-SQL
–Table permanente
Créer la table TableA
(
ID int,
[Nom] varchar(50)
)
Tableaux externes
Les tables externes sont un type particulier de table qui peut être utilisé dans SQL Server 2016 et versions ultérieures. Ces tables font référence à d'autres sources de données telles que le stockage d'objets blob Azure, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB et Teradata à l'aide de la fonctionnalité PolyBase de SQL Server.
Vous pouvez vous référer à cette documentation pour explorer davantage PolyBase dans SQL Server.
Tableaux graphiques
Les bases de données de graphes SQL Server utilisent une collection de différents nœuds (sommets) et arêtes (relations).
- Tableau des nœuds :La table de nœuds est une collection de nœuds ayant des types similaires. Par exemple, la table des nœuds de personne contient tous les nœuds de personne dans un graphique.
- Tableau Edge :La table des arêtes est une collection d'arêtes similaires. Par exemple, une table d'amis contient toutes les arêtes qui relient une personne à une autre personne.
Pour approfondir cette question, consultez les catégories de bases de données Graph.
Instructions pour la création d'une table définie par l'utilisateur dans SQL Server
- Définissez une convention de dénomination appropriée pour les noms de table.
- Utilisez différents schémas pour regrouper des objets de table similaires.
- Assurez-vous toujours que l'intégrité référentielle est maintenue à l'aide des contraintes SQL Server telles que la clé primaire et la clé étrangère.
- Définissez toujours un type de données approprié et sa longueur pour lire et écrire rapidement des données.
- Utilisez des techniques de normalisation de base de données pour réduire la redondance des données et améliorer l'intégrité des données.
- Comprendre les différents formulaires de normalisation et comment les utiliser. (Vous pouvez consulter cet article : Qu'est-ce que la normalisation de base de données dans SQL Server ?)
- Définissez des index adaptés à vos charges de travail de requête.
- Toujours consulter des professionnels des bases de données pour obtenir des conseils sur la modélisation des bases de données et l'application des meilleures pratiques