ERD를 설계하는 이유는
첫째로 단순하게도 ERD를 설계하는게 되게 멋지게 느껴졌다.
그 멋있는 것 내가 직접 해보고 레벨 업
할 수 있다면 좋을 것 같다는 생각이 들었다.
둘째로 ERD는 데이터베이스의 구조를 시각적으로 표현하기 때문에, 데이터의 구조와 관계를 파악하기가 용이하다.
데이터베이스의 구조와 관계를 파악하기 용이하면 무엇이 좋을까? 데이터베이스를 설계하거나 유지보수할 때 유용하다.
왜? 테이블에는 여러 속성이 담길 수 있다. 그리고 각각의 테이블마다 서로 관계
라는게 존재한다.
테이블에 어떤 속성이 들어갈지, 그리고 이 테이블이 다른 테이블과 어떤 관계를 맺는지 직접 그려보는 과정은 실제로 데이터베이스를 설계하면서 테이블을 만들 때
실수할 가능성을 줄여주고, 정확성을 높여준다.
장점은 위에 설명한 정도이다(사실 더 있는데, 너무 딥하게 들어가면 끝이 없어서 더이상 알아보지 않으려 한다. 나머지는 현업에서 필요할 때 공부하겠다.)
단점 : 복잡하다. ERD는 복잡한 데이터베이스의 구조를 이해하기 위해 많은 시간과 노력을 들여야한다.
ERD를 제대로 설계해본 경험이 없어서 외래키는 어떻게 표현해야할지, 다대다(N:N) 관계는 어떻게 표현해야할지 .. 등 많은 부분이 미숙하다.
강의나 인터넷 검색을 활용했다.
ERD를 설계할 수 있는 다양한 툴이 존재하는데,
나는 루시드차트를 이용해서 ERD를 설계했다.
루시드 차트는 5개까지만 무료로 저장할 수 있고 그 이후로는
유료로 사용할 수 있다고 한다.
ERD를 설계할 때 엔티티 관계 설정을 배웠다.
엔티티 관계는 외래키를 참조하고 있느냐로 결정된다.
외래키를 참조할 경우 3가지 방식으로 관계를 결정할 수 있다.
1:1 관계
1:N 관계
N:N 관계
이 중에서도
1개
n개
0 ~ 1개
1 ~ n개
0 ~ n개
위 5가지 선택지들 마다 관계 선이 서로 다르다.
지금은 ERD의 기초 설계 방법 밖에 모르는 햇병아리 상태이다.
ERD를 많이 설계해보면서 다대다 관계도 설계해보고,
현업에서 동료 개발자들과 함께 ERD를 설계하고 ERD를 바탕으로
데이터베이스를 설계하는 경험을 하고싶다.
머릿속에 흐릿하게 저장되어 있던 ERD 지식이 조금은 뚜렷해졌음을 느꼈다.
엔티티 설계는 어떻게하고, 엔티티 관계를 어떻게 설계하고, 설계 선은 어떤 선을 선택해야 하는지를 배웠다.
그래서 기본적인 뉴스어플리케이션 정도의 ERD는 설계할 수 있게 되었음에 뿌듯함이 있다.
무언가를 만들어가면서 필요한 지식을 배우는건 정말 즐거운 일인 것 같다.
수동적으로 지식을 배워나가는 것이 아닌, 내가 필요로해서 지식을 흡수하는 과정은 나를 더 빠르게 레벨업 시켜주는 것 같다.