[TIL] DB - 데이터베이스 설계

Alex J. Lee·2021년 11월 12일
0

TIL

목록 보기
49/58

다이어그램 그리는 걸 좋아해서 오늘 학습한 내용은 좀 재밌었다. Figma로 페어분이랑 보드 하나를 같이 쓰면서 DB를 어떤식으로 설계할지 청사진을 그리고 dbdiagram으로 스키마를 작성했다. dbdiagram은 처음 사용해 보았는데 SQL로 작성된 것을 불러올 수도 있고 자체적으로 제공하는 언어로도 작성할 수 있다. 자체 언어도 어렵지 않고 직관적이어서 샘플을 보면서 어렵지 않게 다이어그램을 만들 수 있었다. dbdiagram으로 그리니 테이블 정보랑 관계를 코드로 적어주면 자동으로 테이블 다이어그램과 간선이 표시되고 마우스를 올리면 하이라이팅도 돼서 보기 편했다. Draw.io도 간단한 다이어그램을 그릴 때 많이 썼었는데 dbdiagram 쪽이 db 스키마를 그리는데 특화되어있어서 더 간단하게 만들 수 있었다.

유어클라스에서 개념 공부를 할 때는 1:N, N:N관계가 그렇게 어렵다고 못느꼈는데 막상 직접 스키마를 작성하려니 여간 헷갈리는 게 아니었다.

Today I Learned

Entity Relationship Diagram

  • 데이터베이스에 저장된 엔티티(테이블의 추상적인 개념) 사이의 관계를 표시하는 다이어그램

  • Crow's Foot Notation, Chen Style, Bachman Style, Martin Style 등 다양한 스타일로 작성할 수 있다. (각 스타일 별 다이어그램 작성 예)

1:1 관계

  • 테이블A의 1개의 레코드 : 테이블B의 1개의 레코드

  • 1:1 관계는 자주 사용하지는 않음 (1:1로 나타낼 수 있는 관계라면 테이블 하나에 합치는 것이 나을 수 있음)

1:N 관계

  • 테이블A의 1개의 레코드 : 테이블B의 여러개의 레코드

  • 관계형 데이터베이스에서 가장 많이 사용되는 관계

N:N 관계

  • 테이블A의 여러개의 레코드 : 테이블B의 여러개의 레코드

  • (1:N 관계) * 2

  • 테이블A, 테이블B와 1:N 관계를 형성하는 새로운 테이블(JOIN 테이블)로 나타낼 수 있음

자기참조 관계

  • 1:N 관계와 유사하지만 하나의 테이블 내에서의 관계를 말함
profile
🦄✨글 잘 쓰는 개발자가 되기 위해 꾸준히 기록합니다 ✨🦄

0개의 댓글