2017-04-15 1 views
0

En SQL, si je veux savoir si une expression est NULL, je peux utiliser is null.Exprimer "est nul" dans l'algèbre relationnelle

Mais je ne comprends pas comment je peux exprimer is null en algèbre relationnelle.

Puis-je utiliser δ Field_Name=NULL(Table_Name)?

+0

Dans votre exemple de code, vous voulez dire RESTRICT? Cela devrait être un sigma (σ) et non un delta (δ). – philipxy

Répondre

1

Il n'y a pas de NULL dans l'algèbre relationnelle. En SQL, les opérateurs traitent la valeur NULL de manière spécifique, syntaxiquement et sémantiquement, différemment des autres valeurs, généralement en retournant la valeur NULL lors de la comparaison de deux valeurs lorsque l'une d'entre elles est NULL. Donc "=" dans un WHERE n'est pas l'égalité, c'est un opérateur comme l'égalité qui agit différemment pour NULL. Donc SQL WHERE n'est pas le même opérateur que RESTRICT algébrique. Si quelqu'un veut utiliser NULL avec l'algèbre relationnelle pour définir ou interroger des variables de relation, vous devez savoir exactement ce que les opérateurs veulent dire quand ils disent des choses comme "AND" et "=" (aussi des opérateurs relationnels comme RESTRICT et PROJECT) et si NULL est une valeur traitée spécialement par eux.

Voir aussi What to do with null values when modeling and normalizing?.