개인 공부 공간/SQL

SQL - 관계형 데이터베이스의 필요성(생활코딩)

Hoon Kang 2021. 3. 16. 16:06

이번영상에서는 '왜 관계형 데이터베이스가 필요한가'에 대해서 학습하였다. 이를 직관적으로 바라보기 위해 스프레드 시트를 통해 관계형 데이터베이스의 부재시 어떤 고통이 있는지부터 알아보았다.


데이터의 중복

테이블의 데이터가 중복되고 있음은 개선할 것이 있다는 매우 중요한 신호이다. 데이터의 크기가 작은 경우에는 큰 문제가 아닐 수 있지만, 데이터가 매우 커질 경우 여러가지 문제점을 발생시킨다. 중복되는 데이터가 복잡하고 용량이 클 경우 기술적으로 경제적으로 큰 손실이다. 또한 수정해야 할 일이 있을 때 무수히 많은 반복을 해야하는 비효율성이 발생한다.

참조 테이블의 장점

이 경우 별도의 참조 데이터 테이블을 만들면 중복을 제거 가능함과 동시에 보수, 유지가 유용해진다. 또한 기존의 표에서 동일한 데이터라고 생각되었던 행들도 참조 테이블을 통해 보면 같은 사람이 아닌 동명이인(이 경우 데이터가 사람의 이름 이였다고 가정)이였음을 판단할 수 있는 장점이 생긴다.

참조 테이블의 단점

하지만 참조 테이블도 위와 같은 장점과 trade-off 관계에 있는 단점이 존재한다. 기존의 테이블은 모든 컬럼들을 포함하고 있었기 때문에 직관적으로 데이터를 바라볼 수 있었지만 테이블을 별도로 분리하면 참조 컬럼에 대한 테이블을 열어서 비교하며 테이블을 봐야하는 불편함이 생긴다.

최종적인 목표

데이터를 별도의 테이블로 보관하며 중복을 발생시키지 않는 참조 테이블의 장점과 실제로 데이터를 하나의 테이블로 합쳐진 상태로 볼 수 있는 기존 테이블의 장점을 MySQL은 동시에 충족시킬 수 있다. 즉, 저장은 '분산해서' 보여줄때는 '합쳐서'가 가능해진다.