관계형(relational) DB와 비관계형(non-relational) DB

관계형(relational) DB

관계형 DB는 고전적인 테이블, 행, 열을 가진 DB에서 한곳의 데이터와 다른 곳의 데이터를 연결하기 위해 한쪽의 데이터에 다른쪽 데이터의 위치를 저장하는 방식입니다. 

예를들어 학교의 데이터를 가진 테이블이 있고 학생의 데이터를 가진 테이블이 있다고 하면 학생의 데이터 중의 하나로 학교의 데이터 번호를 저장하여 여러개의 학생 데이터에서 학교이름, 학교주소, 학교전화번호 등이 중복하여 저장되는 것을 막게 됩니다.

관계형DB는 DB에서 테이블간의 관계를 미리 지정해 놓고 관계가 끊어지지 않게 관리합니다. 위의 예에서 학생1이 학교1의 데이터를 가지고 있는 상태에서 학교1의 데이터를 지우려고 하면 DB에서 오류를 내게 됩니다. 학교1의 데이터를 지우려면 학교1의 데이터를 가지고 있는 학생의 학교데이터를 모두 수정한 후에 지울 수 있습니다.

비관계형(non-relational) DB

비관계형 DB는 여전히 데이터 간의 관계를 만들 수 있지만, 데이터간의 연결을 DB에서 제한하지 않습니다. 
관계형 DB의 경우 데이터가 복잡해지고 관계가 복잡하게 형성되는 경우 DB변경이 필요한 상황에서 수정이 매우 힘들어 지는 경우가 있습니다. 비관계형DB에서는 이러한 제약이 없으므로 DB의 유지 보수및 확장이 쉽습니다.

비관계형 특이점은 단순히 관계의 유무가 아니라 해당 DB의 다른 특징과의 시너지 효과에 있습니다.
사실 관계형 DB에서도 다른 테이블의 데이터를 가리키면서 DB의 테이블간의 관계를 안만들 수도 있기 때문에 단순히 관계형, 비관계형을 비교하는 것은 큰 의미가 없고 특정한 관계형DB와 특정한 비관계형DB의 특징을 전체적으로 비교하는 것이 의미가 있습니다.

댓글

댓글쓰기

이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기

UP