Translation not up to date
Czym są systemowe braki danych?
Systemowe braki danych reprezentują wartości danych, które nie są znane lub nie mają zastosowania. W bazach danych takie wartości nazywane są często wartościami NULL. Systemowe braki danych nie są tożsame z wartościami pustymi. Puste wartości są zwykle definiowane w węźle Typy jako konkretne wartości lub zakresy wartości, które mogą być traktowane jako braki zdefiniowane przez użytkownika. Wartości puste w kontekście modelowania traktowane są inaczej.
Konstruowanie systemowych braków danych
Systemowe braki danych mogą być obecne w danych odczytanych ze źródła danych (na przykład tabele bazy danych mogą zawierać wartości NULL ). Systemowe braki danych można konstruować, używając w wyrażeniach wartości undef
. Na przykład następujące wyrażenie CLEM zwraca Age
, jeśli jest mniejsze lub równe 30
, lub brakującą wartość, jeśli jest większa niż 30
:
if Age > 30 then undef else Age endif
Braki danych mogą być także wynikiem łączenia zewnętrznego, dzielenia przez zero, próby obliczenia pierwiastka kwadratowego z liczby ujemnej oraz innych sytuacji.
Sposób prezentacji systemowych braków danych
Systemowe braki danych są uwidaczniane w tabelach i innych formach wyników jako wartości $null$
.
Sprawdzanie, czy występują systemowe braki danych
Aby zwrócić true
, należy użyć funkcji specjalnej @NULL , jeśli wartością argumentu jest systemowy brak wartości. Na przykład:
if @NULL(MyFieldName) then 'It is null' else 'It is not null' endif
Systemowe braki danych przekazywane do funkcji
Przekazanie systemowego braku danych do funkcji zwykle powoduje, że wynikiem również jest brak danych. Na przykład, jeśli wartość zmiennej f1
w konkretnym wierszu jest systemowym brakiem danych, to wyrażenie log(f1)
dla tego wiersza także da w wyniku systemowy brak danych. Wyjątkiem jest funkcja @NULL.
Systemowe braki danych w wyrażeniach zawierających operatory arytmetyczne
Zastosowanie operatora arytmetycznego do systemowego braku danych daje w wyniku systemowy brak danych. Na przykład, jeśli wartość zmiennej f1
jest systemowym brakiem danych w określonym wierszu, to wyrażenie f1 + 10
jest również wartościowane do systemowego braku danych dla tego wiersza.
Systemowe braki danych w wyrażeniach zawierających operatory logiczne
W przypadku pracy z brakującą wartością systemową w wyrażeniach, które wiążą się z operatorami logicznymi, zastosowanie mają reguły trójwartościowej logiki (true, falsei missing) i można je opisać w tabelach prawda. Poniżej przedstawiono tabele prawdy dla typowych operatorów logicznych not, and oraz or.
Operand | Operand NOT |
---|---|
Prawda | Fałsz |
Fałsz | Prawda |
brak | brak |
Operand1 | Operand2 | Operand1 AND Operand2 |
---|---|---|
Prawda | Prawda | Prawda |
Prawda | Fałsz | Fałsz |
Prawda | brak | brak |
Fałsz | Prawda | Fałsz |
Fałsz | Fałsz | Fałsz |
Fałsz | brak | Fałsz |
brak | Prawda | brak |
brak | Fałsz | Fałsz |
brak | brak | brak |
Operand1 | Operand2 | Operand1 OR Operand2 |
---|---|---|
Prawda | Prawda | Prawda |
Prawda | Fałsz | Prawda |
Prawda | brak | Prawda |
Fałsz | Prawda | Prawda |
Fałsz | Fałsz | Fałsz |
Fałsz | brak | brak |
brak | Prawda | Prawda |
brak | Fałsz | brak |
brak | brak | brak |
Systemowe braki danych w wyrażeniach zawierających operatory porównywania
Porównanie systemowego braku danych z wartością niebędącą systemowym brakiem danych daje w wyniku systemowy brak danych, a nie wartość prawda albo fałsz. Systemowe braki danych można porównywać ze sobą; dwa systemowe braki danych uznawane są za równe.
Systemowe braki danych w wyrażeniach if/then/else/endif
Gdy wyrażenie warunkowe zwraca systemowy brak danych, to wynikiem całego wyrażenia warunkowego jest wartość właściwa dla klauzuli else
.
Systemowe braki danych w węźle selekcji
Gdy dla konkretnego rekordu wyrażenie selekcji daje w wyniku brak danych, rekord nie jest generowany z węzła selekcji (zasada ta obowiązuje zarówno w trybie uwzględniania, jak i odrzucania).
Systemowe braki danych w węźle łączenia
W przypadku łączenia przy użyciu klucza wszelkie rekordy z systemowymi brakami danych w polu klucza nie są łączone.
Systemowe braki danych w agregacjach
Podczas agregacji danych w kolumnach braki danych nie są uwzględniane w obliczeniach. Na przykład w kolumnie o trzech wartościach: { 1
, 2
i undef
} suma wartości w kolumnie jest obliczana jako 3
; średnia wartość jest obliczana jako 1.5
.