Cet article est principalement écrit pour les débutants. Néanmoins, il couvre certains concepts de conception de bases de données intéressants et souvent oubliés qui sont tout aussi attrayants pour les professionnels des bases de données SQL.
La partie actuelle se concentre sur les concepts de conception de base de données et leur mappage aux tables, colonnes et relations de la base de données SQL. Si vous comprenez le contexte des bases de données et des outils que nous allons utiliser, vous pourrez concevoir votre première base de données SQL en toute confiance.
Prérequis
Avant de continuer, assurez-vous d'avoir les éléments suivants :
- SQL Server 2016/2017/2019 Express/Developer edition est installé sur votre machine
- SSMS (SQL Server Management Studio) est installé
De plus, vous devez avoir une connaissance de base des bases de données et des outils ci-dessus.
Ce n'est pas un problème si vous ne disposez pas des dernières versions de SQL Server et SSMS. Cependant, il est fortement recommandé d'avoir les versions les plus récentes, sinon les plus récentes disponibles. Vous pouvez obtenir les versions nécessaires à partir des ressources ci-dessous :
- Téléchargez l'édition développeur de SQL Server 2017.
- Téléchargez SQL Server 2019 (ou pour obtenir la dernière édition de SQL Server Express/Developer).
- Ou, téléchargez une édition spécialisée gratuite de Developer ou Express SQL Server.
- Télécharger SSMS (SQL Server Management Studio)
Notez que ces liens fonctionnent tous correctement au moment de la rédaction de cet article. Si Microsoft décide de les remplacer, veuillez télécharger la version la plus récente disponible à ce moment-là.
À propos de la conception de bases de données SQL
Pour commencer à concevoir votre base de données SQL avec SQL Server Management Studio (SSMS), vous devez avoir un plan de conception en tête.
Ce n'est pas facile sans connaître les concepts de base de la conception de bases de données. Cependant, une fois que vous avez compris ces concepts et leur mise en œuvre, vous commencez naturellement à suivre les principes de conception. C'est commun à presque tous les développeurs de bases de données.
Passons d'abord en revue certains concepts de conception de bases de données de base. Il n'est pas facile de tous les couvrir dans un seul article, mais nous avons besoin d'un point de départ.
Nous comprenons une base de données typique en termes des éléments suivants :
- Entités
- Attributs
- Relations
Qu'est-ce qu'une entité ?
Une entité est tout ce que l'entreprise ou un particulier souhaite stocker dans une base de données. Par exemple :
- Client.
- Commander.
- Produit.
On peut dire qu'un Client est une entité si l'entreprise souhaite la stocker dans une structure de base de données à des fins transactionnelles, d'analyse et de création de rapports. De même, une Commande placé par le Client est également une entité si l'entreprise souhaite voir ces informations. Par conséquent, ces informations doivent faire partie de la base de données.
Cependant, une Commande n'a pas beaucoup de sens sans un Produit . Un Produit proposé au Client est également une entité.
Comment l'entité est-elle mappée à la base de données ?
Du point de vue de la base de données, une entité peut être mappée à une table. Ainsi, si une entreprise a besoin des entités Client, Commande et Produit, le développeur de la base de données peut les mapper en trois tables.
Qu'est-ce qu'un attribut ?
Un attribut est une description d'une entité. Par exemple :
- Nom du client
- Type de commande
- Nom du produit
Si le client est une entité, le nom du client (CustomerName ) est un attribut. Cet attribut décrit notre entité (Client ). De même, OrderType est un attribut de la commande entité et ProductName est un attribut du produit entité.
Comment l'attribut est-il mappé à la base de données ?
Un attribut, tel que CustomerName, décrit le Client table et peut être mappé à une colonne de cette table.
Une entité avec plusieurs attributs
C'est bien pour une entité d'avoir plusieurs attributs. Par conséquent, nous pouvons avoir plusieurs colonnes (attributs) dans une table (entité).
Relations d'entité
Une entité peut être liée à une autre entité par le biais de relations. Une table peut être liée à une autre table. Il existe de nombreux types d'entités ou de relations tabulaires :
Relation client-commande (un à plusieurs)
Un Client (entité/table) peut être lié à une Commande (entité/table) pour les raisons suivantes :
- Un client ne peut passer qu'une seule commande.
- Un client peut passer plusieurs commandes.
L'inverse est également vrai :
- Plusieurs commandes peuvent être passées par un seul client.
- Une commande peut être passée par un seul client.
Ceci est un exemple de relation un-à-plusieurs :un client peut passer plusieurs commandes, et plusieurs commandes peuvent être passées par un seul client.
Relation produit-commande (un à plusieurs)
Un produit (entité/table) peut être lié à une commande (entité/table) dans les termes suivants :
- Un produit peut être attribué à une seule commande.
- Un produit peut être attribué à plusieurs commandes.
De même :
- De nombreuses commandes peuvent être attribuées à un produit.
- Une commande peut avoir un seul produit.
Il existe une relation un-à-plusieurs entre Produit et Commander .
Relation client-produit (plusieurs à plusieurs)
Maintenant, la relation entre le client et le produit est expliquée comme suit :
- Un client ne peut acheter qu'un seul produit.
- Un client peut acheter plusieurs produits.
- Un produit peut être acheté par un client.
- Un produit peut être acheté par plusieurs clients.
De nombreux produits peuvent être achetés par de nombreux clients, ce qui signifie que le Client et Produit la relation est plusieurs à plusieurs .
Regardez l'illustration ci-dessous :
Scénario de conception étudiant-instructeur
Considérons un scénario de conception de base de données différent. Vous l'implémenterez à l'aide de SSMS (SQL Server Management Studio) dans l'autre partie de cet article.
Exigences commerciales
Supposons que vous ayez besoin de concevoir une base de données qui stocke les informations suivantes :
- Étudiant(s).
- Instructeur(s).
- Élèves auxquels un instructeur a été attribué.
- Les instructeurs qui sont affectés aux étudiants.
Analyse préliminaire
Après une observation attentive, vous découvrirez quelque chose de très intéressant sur les exigences ci-dessus. "Les étudiants qui ont affecté un instructeur" et "Les instructeurs qui ont été affectés aux étudiants" sont la même exigence.
Il peut être fréquent que deux exigences d'aspect différent se révèlent être les mêmes dans le contexte de la conception d'une base de données.
Identifier les entités
Les entités suivantes peuvent être directement extraites des exigences :
- Étudiant
- Instructeur
Cependant, une autre entité sert à nous fournir des informations sur les instructeurs affectés aux étudiants.
Rappelons-nous le premier exemple où nous avons utilisé une table Order - de nombreux clients peuvent acheter plusieurs commandes dans la relation Customer-Order. Il est similaire à notre élève-instructeur relation tabulaire - de nombreux instructeurs peuvent être attribués à de nombreux étudiants.
Identifier les attributs
Nous pouvons choisir des attributs utiles pour les entités identifiées, selon ce scénario de commande client :
- Étudiant :numéro d'étudiant, nom.
- Instructeur :ID de l'instructeur, nom.
- Étudiant-instructeur :ID d'étudiant-instructeur, ID d'étudiant, ID d'instructeur.
Relations d'identité :
Identifiez les relations entre les entités :
- Étudiant -> Étudiant-Instructeur (un à plusieurs).
- Instructeur-> Élève-Instructeur (un à plusieurs).
- Étudiant -> Instructeur (plusieurs à plusieurs).
N'oubliez pas que nous utilisons toujours une table médiane pour résoudre la relation plusieurs à plusieurs. C'est pourquoi nous avons intégré l'entité étudiant-instructeur dans le plan.
Mappage d'entités et d'attributs sur des tables et des colonnes
Nous pouvons maintenant mapper les entités sur des tables. Ainsi, nous allons créer les trois tables suivantes :
- Étudiant.
- Instructeur.
- Étudiant-Instructeur.
De même, les attributs de ces entités, lorsqu'ils sont mappés aux colonnes, seront les suivants :
- Étudiant :identifiant de l'étudiant, nom.
- Instructeur :ID de l'instructeur, nom.
- Étudiant-Instructeur :StudentInstructorId, StudentId, InstructorId.
Notez l'illustration ci-dessous :
Toutes nos félicitations! Vous avez appris avec succès les concepts de conception de bases de données. Nous connaissons les entités, les attributs et les relations et les étapes pour les mapper aux tables et aux colonnes de la base de données.
Les prochains articles vous guideront à travers les étapes de conception de base de données à l'aide de SSMS (SQL Server Management Studio).
Choses à faire
Maintenant que vous comprenez les bases de la conception de bases de données, essayez les choses suivantes pour améliorer vos compétences :
- Essayez d'ajouter une autre entité appelée Fournisseur avec les attributs SupplierId et SupplierName. Vérifiez si vous pouvez identifier correctement les relations suivantes :
- Fournisseur-Commande ;
- Fournisseur-Client ;
- Fournisseur-Produit.
- Concevez une base de données et identifiez les entités, les attributs et les relations pour une bibliothèque. Indice :Les livres sont distribués aux membres et les membres empruntent des livres à la bibliothèque. Membre, Réserver, Émis peuvent être des entités.
- Identifiez le type des relations tabulaires suivantes pour les entités comme mentionné ci-dessus :
- Émis par les membres ;
- Émis par un livre ;
- Membre-Livre ;
- Livre-Membre.
Lire aussi
Apprendre la conception de bases de données avec SQL Server Management Studio (SSMS) - Partie 2