web-dev-qa-db-fra.com

Quelle est la relation atomique sur la première forme normale

J'ai lu la définition de 1NF qui est, "si chaque attribut de la relation est atomique". S'il vous plaît dites-moi ce qui est atomique.

6
Siddiqui

1nf exige que chaque position d'attribut dans chaque tuple dans chaque relation contient une valeur unique du type approprié. Les types peuvent être complexes arbitrairement. En fait, les types peuvent être des relations. (Livre de la date CJ base de données en profondeur: la théorie relationnelle pour les praticiens traite ce problème de manière assez facile à comprendre.)

"Atomic" n'a jamais vraiment voulu dire "indivisible", c'est pourquoi ce terme tombe enfin hors de faveur. Des moyens "atomiques" de manière lâcheuse, si une valeur comporte des composants, les SGBS ignorent l'existence de ces pièces ou fournissent des fonctions pour les manipuler. Par exemple, une valeur d'horodatage comporte ces pièces.

  • Année
  • Mois
  • Jour
  • Les heures
  • Minutes
  • Secondes
  • Millisecondes

Ce type de valeur est évidemment divisible et tous les systèmes de gestion de la base de données fournissent des fonctions pour manipuler ces pièces. Ils fournissent également un moyen de sélectionner un horodatage comme une valeur unique. (Qui, bien sûr, c'est.)

"Atomic" fait référence à la notion originale du Codd à partir de 1969 que chaque attribut dans chaque tuple dans une relation doit être constitué d'une valeur unique et ne permet pas de disposer de structures multiples du type pris en charge dans des bases de données telles que le modèle CODASYL.

Dans l'atomicité moderne SQL SQLS n'est pas vraiment un problème. Les tables SQL n'autorisent pas les colonnes et les valeurs multiples sont toujours "atomiques".

8
nvogel

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

Règle d'atomicité:

  • règle 1: Une colonne avec des données atomiques ne peut 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 avoir plusieurs colonnes avec le même type de données.

Comme la colonne FullName ne peut pas dire que cela pourrait être atomique car il peut être encore divisé dans un nom de famille, prénom. Une colonne avec intérêt pourrait également être divisée plus loin, donc une colonne qui ne peut pas être divisée est appelée atomique.

2
sanjay

Cela signifie que la clé ne peut pas être décomposée. Disons que vous avez une table avec trois colonnes, prénom, nom et téléphone_number. Vous déclarez une clé primaire composée sur (prénom, nom de famille). Cette clé primaire est non atomique car elle est en fait composée de deux colonnes. Maintenant, disons que vous changez de votre table en deux colonnes, FULL_NAME et téléphone_number, avec une clé primaire sur Full_Name. La clé est-elle maintenant atomique? Non, car dans votre application, vous pourriez la diviser en prénom et le nom de famille toujours, sur l'espace. Maintenant, faisons notre identifiant de table, Full_Name et téléphone_number, clé primaire sur ID (qui est un entier). Ça est atomique, car l'entier ne peut pas être décomposé de manière significative.

1
Gaius

Considérez un emplacement sur Terre. Je peux le trouver avec des paires (longitude, latitude) ou avec le code HTM (maillage triangulaire hiérarchique). Depuis qu'ils mesurent tous les deux les mêmes données. C'est un fait physique que nous pouvons mesurer avec un téléphone portable; Il traduit un nombre de grille dans [longitude, latitude] pour vous), ils doivent tous deux être atomiques ou composés dans votre modèle.

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

0
Joe Celko