TIL day 13

이혜원·2022년 11월 30일
0

오늘 한 일

dbeaver을 처음 써봤다.
db schema를 처음 작성해봤는데 이름의 중요성을 알겠더라.
DB Naming Convention으로 치면 예시가 많이 나온다.
직접 작성해보니 SQL이 어떤건지 알겠더라

데이터를 엑셀과 같이 정해진 틀(데이터 스키마)에 따라 테이블에 저장한다.

  • 장점
    • 명확하게 정의된 스키마, 데이터 무결성 보장
    • 관계는 각 데이터를 중복없이 한번만 저장
  • 단점
    • 덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함. (나중에 수정하기 힘듬)
    • 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
    • 대체로 수직적 확장만 가능함

그 전 프로젝트에서는 No SQL인 mongodb를 썼었다. 차이점이 느껴지더라.

SQL 진영보다 데이터를 자유롭게 다양한 형태로 저장합니다.
(일반적으로 Schema-less, 즉 정해진 구조가 없고, 관계도 없습니다)

  • 장점
    • 스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
    • 데이터는 애플리케이션이 필요로 하는 형식으로 저장됨. 데이터 읽어오는 속도 빨라짐
    • 수직 및 수평 확장이 가능해서 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능
  • 단점
    • 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음

    • 데이터 중복을 계속 업데이트 해야 함

    • 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함 (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능)

      db 설계 단계:

      출처 - https://ldne.tistory.com/261

      개념적 모델링 ERD 작성할 때 좋은 사이트: https://app.diagrams.net/

      정규화도 배웠다. db table을 효율적으로 사용할 수 있도록 정리하는 느낌이였다.

      이걸:

      이렇게:

출처 - https://mangkyu.tistory.com/110

0개의 댓글