Quest-ce que la relation atomique dans la première forme normale

Jai lu la définition de 1NF qui est, « Si chaque attribut de relation est atomique ». Veuillez me dire ce quest Atomic.

Commentaires

Réponse

1NF exige que chaque position dattribut dans chaque tuple de chaque relation contienne une valeur unique du type approprié . Les types peuvent être arbitrairement complexes. En fait, les types peuvent être des relations. (Le livre de CJ Date Base de données en profondeur: théorie relationnelle pour les praticiens traite ce problème dune manière assez facile à comprendre.)

« Atomic » na jamais vraiment signifié «indivisible», cest pourquoi ce terme est finalement en disgrâce. En gros, « atomique » signifie que si une valeur a des composants, le dbms ignore lexistence de ces parties ou fournit des fonctions pour les manipuler. Par exemple, une valeur dhorodatage comprend ces parties.

  • Année
  • Mois
  • Jour
  • Heures
  • Minutes
  • Secondes
  • Millisecondes

Ce type de valeur est évidemment divisible, et tous les systèmes de gestion de base de données fournissent des fonctions pour manipuler ces parties. Ils fournissent également un moyen de sélectionner un horodatage sous forme de valeur unique. (Ce qui, bien sûr, cest.)

Réponse

« Atomic » fait référence à la notion originale de Codd de 1969 selon laquelle chaque attribut de chaque tuple dans une relation doit être constitué dune seule valeur et ne pas autoriser les structures à valeurs multiples du type pris en charge dans les bases de données comme le modèle CODASYL.

Dans les SGBD SQL modernes, latomicité nest pas vraiment un problème. Les tables SQL nautorisent pas les colonnes à plusieurs valeurs et les valeurs sont toujours « atomiques ».

Commentaires

  • Techniquement vrai, mais les tables SQL autorisent les grandes chaînes comme valeurs , ce qui est une faille dans la pratique. Un champ de chaîne contenant plusieurs nombres entiers décimaux séparés par des virgules, des dates ASCII, etc., semblerait certainement violer lintention datomicité, quil suive la lettre ou non ….

Réponse

Atomique signifie des données qui ne peuvent pas être divisées davantage.

Règle datomicité:

  • règle 1: une colonne avec des données atomiques ne peut « t avoir plusieurs valeurs du même type de données dans la même colonne.
  • règle2: une table avec des données atomiques ne peut » t avoir plusieurs colonnes avec le même type de données.

Comme la colonne fullname ne peut « pas dire quelle pourrait être atomique parce quelle peut être divisée en nom, prénom. Une colonne avec un intérêt pourrait également être divisée plus loin, donc une colonne qui peut » t être divisé est appelé atomique.

Réponse

Cela signifie que la clé ne peut pas être décomposée. Supposons que vous ayez une table avec trois colonnes, prénom, nom et numéro de téléphone. Vous déclarez une clé primaire composée sur (prénom, nom). Cette clé primaire nest pas atomique car elle est en fait composé de deux colonnes. Disons maintenant que vous modifiez votre table en deux colonnes, full_name et phone_number, avec une clé primaire sur full_name. La clé est-elle désormais atomique? Non, car dans votre application, vous pouvez toujours le diviser en prénom et nom de famille, sur lespace. Maintenant, faisons de notre table id, full_name et phone_number, clé primaire sur id (qui est un entier). Cela est atomique, car lentier ne peut pas être décomposé de manière significative.

Commentaires

  • votre exemple commence cependant par la déclaration selon laquelle latomicité  » signifie que la clé ne peut pas être décomposée « . Ce ‘ nest pas ce que cela signifie. Cela signifie que les attribuites consistent en une seule valeur. Il ny a rien  » non atomique  » à propos dune clé composée de plusieurs attributs.

Réponse

Codd semble à lorigine avoir signifié quaucune valeur nest elle-même un ensemble. Cest un point de départ utile mais « atomic » na aucune signification ontologique en ce qui concerne les bases de données (quelque chose que CJ Date a raison Codd a essayé de formaliser la définition comme quelque chose qui ne pouvait pas être décomposé plus loin en dehors de la spécification opérations de base de données ial (c.-à-d. un horodatage est atomique car lextraction de lannée est une opération spéciale de la base de données). En dautres termes, si la base de données peut séparer des sous-valeurs, cest correct. Mais vous ne devriez pas avoir densembles (listes non ordonnées) ou dobjets qui nécessitent une logique dapplication pour se décomposer.

Au fil du temps et aux prises avec ce problème dans les environnements opérationnels, je proposerais une définition intermédiaire de latomicité, plus stricte que Codd et sans le terrier de lapin dont parle Date:

Une valeur est atomique aux fins de la première forme normale si et seulement si:

  1. La valeur nest pas un ensemble (oui, Je sais que Date nest pas daccord) et
  2. Il ny a aucune référence de clé étrangère à une sous-partie du champ.

En particulier, la représentation dune valeur ne peut pas déterminer son atomicité. Représenter une adresse IP comme « 10.0.0.1 » vs ARRAY [10,0,0,1] vs 167772161 na pas dimportance pour lanalyse 1NF puisque les trois se réfèrent à la même valeur atomique.

En particulier, commun (et parfois utiles!) Les violations 1NF concernant latomicité incluent:

  1. Stocker un tableau de balises dans un article ou un commentaire de blog.
  2. Stocker des tables dans des tables, où la table interne a une exigence dintégrité référentielle par rapport à une autre relation ailleurs.

Ces problèmes génèrent plus ou moins les mêmes anomalies de données.

Réponse

Considérez un emplacement sur Terre. Je peux le trouver avec des paires (longitude, latitude) ou avec le code HTM (Hierarchical Triangular Mesh). Puisquils mesurent tous les deux les mêmes données. Il sagit dun fait physique que nous pouvons mesurer avec un téléphone portable; il traduit un numéro de grille en [longitude, latitude] pour vous), ils doivent tous deux être atomiques ou composés dans votre modèle.

Ne confondez pas léchelle utilisée pour la mesure et la notation utilisée pour afficher les données avec le nature des données.

Commentaires

  • Jai édité ce post pour quelques fautes de frappe. Je ‘ ne pense pas que cet utilisateur est le vrai Joe Celko, mais jai cherché une usurpation didentité sur meta.stackexchange.com et jai trouvé ceci fil . Consultez les réponses de MM. Atwood et Spolsky, les fondateurs de stackexchange. Cela semble permis.

Réponse

La clé atomique est ce type de clé primaire qui ne peut pas être décomposée. signifie que cette clé nest pas divisée davantage, comme Student_ID, Employee_ID.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *