liteqz.com
quelqu'un peut-il me dire si une table dans une base de données relationnelle (telle que MySQL / SQL SERVER) peut être sans clé primaire? par exemple, je pourrais avoir la table day_temperature, où je m'inscrire temperature et time. Je ne vois pas de raison d'avoir une clé primaire de cette table. demandé sur stema 2010-03-25 15:53:55 Techniquement, vous pouvez déclarer une telle table. Mais dans votre cas, le time doit être PRIMARY KEY, puisqu'il est probablement erroné d'avoir des températures différentes pour la même période et probablement inutile d'avoir les mêmes plus d'une fois. logiquement, chaque tableau devrait avoir un PRIMARY KEY pour que vous puissiez distinguer deux enregistrements. si vous n'avez pas de clé candidate dans vos données, créez simplement une clé de substitution ( AUTO_INCREMENT, SERIAL ou quelque soit votre base de données offrir. ) La seule excuse pour ne pas avoir un PRIMARY KEY est un journal ou une table similaire qui est un objet lourd DML et avoir un indice sur son impact sur la performance au-delà du niveau de tolérance.
Deux des tables de la base de données incluent le CUSTOMER_MASTER, qui stocke les données client de base et statiques (nom, date de naissance, adresse, numéro de sécurité sociale, etc. ) et le ACCOUNTS_MASTER, qui stocke diverses données de compte bancaire (date de création du compte, type de compte, limites de retrait ou informations de compte correspondantes, etc. ). Pour identifier de manière unique les clients, une colonne ou une combinaison de colonnes est sélectionnée pour garantir que deux clients n'ont jamais la même valeur unique. Ainsi, certaines colonnes sont immédiatement supprimées, par exemple le nom et la date de naissance. Un bon candidat clé primaire est la colonne qui est désignée pour contenir les numéros de sécurité sociale. Cependant, certains titulaires de compte peuvent ne pas avoir de numéros de sécurité sociale, la candidature de cette colonne est donc éliminée. L'option logique suivante consiste à utiliser une combinaison de colonnes, comme l'ajout du nom de famille à la date de naissance à l'adresse e-mail, ce qui entraîne une clé primaire longue et encombrante.
La meilleure option consiste à créer une clé primaire distincte dans une nouvelle colonne nommée CUSTOMER_ID. Ensuite, la base de données génère automatiquement un numéro unique à chaque fois qu'un client est ajouté, garantissant une identification unique. Lors de la création de cette clé, la colonne est désignée comme clé primaire dans le script SQL qui crée la table et toutes les valeurs nulles sont automatiquement rejetées. Le numéro de compte associé à chaque CUSTOMER_ID permet le traitement sécurisé des requêtes des clients et des temps de recherche rapides (comme pour toute table indexée). Par exemple, un client peut être invité à fournir son nom de famille lors d'une demande bancaire. Une requête commune sur le nom de famille (comme Smith) est susceptible de renvoyer plusieurs résultats. Lors de l'interrogation de données, l'utilisation de la fonction d'unicité de clé primaire garantit un résultat.
Toutes les colonnes définies dans une contrainte PRIMARY KEY doivent avoir la valeur NOT NULL. Si vous ne spécifiez pas la possibilité ou non de valeurs NULL, toutes les colonnes participant à une contrainte PRIMARY KEY sont définies à NOT NULL. Sécurité Autorisations La création d'une nouvelle table avec une clé primaire nécessite une autorisation CREATE TABLE dans la base de données et une autorisation ALTER pour le schéma dans lequel la table a été créée. La création d'une clé primaire dans une table existante nécessite l'autorisation ALTER sur la table. Utilisation de SQL Server Management Studio Créer une clé primaire Dans l'Explorateur d'objets, cliquez avec le bouton droit sur la table à laquelle vous souhaitez ajouter une contrainte unique et cliquez sur Conception. Dans le Concepteur de tables, cliquez sur le sélecteur de ligne correspondant à la colonne de base de données que vous voulez définir comme clé primaire. Si vous voulez sélectionner plusieurs colonnes, appuyez sur la touche CTRL et, tout en la maintenant enfoncée, cliquez sur les sélecteurs de ligne des autres colonnes.
Souvent, un numéro d'identification unique, comme une référence, un numéro de série ou un code, fait office de clé primaire dans une table. Par exemple, vous pouvez créer une table Clients où chaque client est associé à une référence client unique. Dans ce cas, le champ Réf client constitue la clé primaire. Access crée automatiquement un index pour la clé primaire pour accélérer les requêtes et les autres opérations. En outre, il veille à ce que chaque enregistrement soit associé à une valeur dans le champ de clé primaire et à ce qu'il soit toujours unique. Lorsque vous créez une table en mode Feuille de données, Access crée automatiquement une clé primaire pour vous en lui attribuant le nom de champ « ID » et le type de données NuméroAuto. Qu'est-ce qu'une clé primaire appropriée? Une clé primaire appropriée doit présenter plusieurs caractéristiques: elle identifie chaque ligne de façon unique;. elle n'est jamais vide ou Null (en d'autres termes, elle doit toujours contenir une valeur); ses valeurs ne changent que rarement (de préférence, jamais).
Désolé, je ne vois pas la confirmation dans cette paragraphe. As tu l'expérience sur les produits OLTP installés sur plusieurs nœuds dont le nombre est dépendant du client? Comment propose tu résoudre les conflits des valeurs i. lors de la réplication? 19/09/2012, 14h54 #11 j'ai justement placé un liens vers une explication d'un MVP qui contredit clairement tes propos. Mais continue à faire des trucs pareils, j'aurai toujours du boulot 19/09/2012, 15h51 #12 Jamais de la vie un GUID est stocké sous forme de VARCHAR(36)! Et jamais de la vie il contient des caractères alpha-numériques! Il s'agit d'un nombre, tout ce qu'il y a de plus nombre, au détail près qu'il est représenté en hexa, d'où la présence de lettres. Mais en aucun cas il est stocké dans un varchar! C'est un INT(128) -sur 16 octets- sur lequel les opérations arithmétiques sont interdites (puisqu'il n'a pour vocation que d'être identifiant, en aucun cas pour faire des calculs). On ne jouit bien que de ce qu'on partage. 19/09/2012, 16h11 #13 Sur le GUID.
Les attributs de la clé seront ceux qui ne sont déterminés par aucun autre attribut: la connaissance de ces attributs permet de déduire tous les autres. Sur le graphe, les flèches doivent partir de ces attributs, mais pas en sortir. Les attributs d'où ne sortent ni ne partent de flèches font aussi partie de la clé.