카산드라는 Null 값을 가지는 칼럼이 없다. 따라서 select * from users where location is Null; 과 같은 구문을 사용할 수 없다. 반면, RDB는 칼럼에 약간의 공간을 할당해 Null값을 표현한다. 아래 그림을 보면 잘 알 수 있다. 카산드라는 Null이 없기 때문에 칼럼 자체가 없는 걸 볼 수 있다. 이는 카산드라가 row key를 키로 하는 key-value 저장소이기 때문에 스키마가 유연해서 그렇다.

대신 데이터를 사용할 때 Null을 활용할 수 있다. update users set location = Null where username='alice' 는 delete location from users where username='alice'와 같다. 위와 같은 Null을 활용한 삭제는 여러 업데이트를 동시에 할 때 유용하다. update users set email='kim@naver.com', location=Null where username='carol' 와 같이 여러 칼럼을 동시에 업데이트하면서 삭제할 수 있다.
(참고로, 카산드라의 delete는 rdb의 delete와 다르다. 엄밀히 말하면 delete는 tombstone이라는 삭제를 나타내는 flag로 칼럼을 업데이터하는 걸 의미한다.

+ Recent posts