다이어그램 그리는 걸 좋아해서 오늘 학습한 내용은 좀 재밌었다. Figma로 페어분이랑 보드 하나를 같이 쓰면서 DB를 어떤식으로 설계할지 청사진을 그리고 dbdiagram으로 스키마를 작성했다. dbdiagram은 처음 사용해 보았는데 SQL로 작성된 것을 불러올 수도 있고 자체적으로 제공하는 언어로도 작성할 수 있다. 자체 언어도 어렵지 않고 직관적이어서 샘플을 보면서 어렵지 않게 다이어그램을 만들 수 있었다. dbdiagram으로 그리니 테이블 정보랑 관계를 코드로 적어주면 자동으로 테이블 다이어그램과 간선이 표시되고 마우스를 올리면 하이라이팅도 돼서 보기 편했다. Draw.io도 간단한 다이어그램을 그릴 때 많이 썼었는데 dbdiagram 쪽이 db 스키마를 그리는데 특화되어있어서 더 간단하게 만들 수 있었다.
유어클라스에서 개념 공부를 할 때는 1:N, N:N관계가 그렇게 어렵다고 못느꼈는데 막상 직접 스키마를 작성하려니 여간 헷갈리는 게 아니었다.
데이터베이스에 저장된 엔티티(테이블의 추상적인 개념) 사이의 관계를 표시하는 다이어그램
Crow's Foot Notation, Chen Style, Bachman Style, Martin Style 등 다양한 스타일로 작성할 수 있다. (각 스타일 별 다이어그램 작성 예)
테이블A의 1개의 레코드 : 테이블B의 1개의 레코드
1:1 관계는 자주 사용하지는 않음 (1:1로 나타낼 수 있는 관계라면 테이블 하나에 합치는 것이 나을 수 있음)
테이블A의 1개의 레코드 : 테이블B의 여러개의 레코드
관계형 데이터베이스에서 가장 많이 사용되는 관계
테이블A의 여러개의 레코드 : 테이블B의 여러개의 레코드
(1:N 관계) * 2
테이블A, 테이블B와 1:N 관계를 형성하는 새로운 테이블(JOIN 테이블)로 나타낼 수 있음