Database

GreenBean·2022년 2월 15일
0
post-thumbnail

Database

생활코딩: Database
생활코딩: SQL Join
생활코딩: 관계형 데이터 모델링

데이터베이스의 본질

  • 핵심적인 작업
    • CRUD

File VS Database

SQL Join

Tip! 참고 사이트
생활코딩: JOIN 연습장

표 쪼개기

  • 하나의 표가 거대한 정보를 다 담아서 표 자체가 완제품이 될수도 있음
    • 한편, 여러 개의 표에 정보를 분산해서 각각의 표가 부품으로 사용되도록 할 수도 있음
  • Every table in the database needs to have a single theme
    • 모든 표는 하나의 주제만 가져야 함

LEFT JOIN

  • Left Join기준이 되는 표를 왼쪽에 두고, 이 표를 기준으로 오른쪽의 표를 합성해서 하나의 표를 만드는 방법
# 예시 코드
SELECT * 
FROM topic 
LEFT JOIN author ON topic.author_id = author.aid;

SELECT * 
FROM topic 
LEFT JOIN author ON topic.author_id = author.aid
LEFT JOIN profile ON author.profile_id = profile.pid;

SELECT tid, topic.title, author_id, name, profile.title AS job_title 
FROM topic LEFT JOIN author ON topic.author_id = author.aid 
LEFT JOIN profile ON author.profile_id = profile.pid;

SELECT tid, topic.title, author_id, name, profile.title AS job_title 
FROM topic 
LEFT JOIN author ON topic.author_id = author.aid 
LEFT JOIN profile ON author.profile_id = profile.pid 
WHERE aid = 1;

INNER JOIN

  • Inner Join왼쪽과 오른쪽 표 모두에서 존재하는 행를 모아서 하나의 행을 만드는 방법
# 예시 코드
SELECT * 
FROM topic 
INNER JOIN author ON topic.author_id = author.aid;

SELECT * 
FROM topic 
INNER JOIN author ON topic.author_id = author.id 
INNER JOIN profile ON profile.pid = author.profile_id;

FULL JOIN

  • Full Join왼쪽과 오른쪽에 있는 행 모두를 합성해서 하나의 표를 만드는 방법
# 예시 코드
SELECT * 
FROM topic 
FULL OUTER JOIN author ON topic.author_id = author.id;

EXCLUSIVE JOIN

  • Exclusive Join한쪽 표에만 있는 정보로 새로운 표를 만드는 방법
# 예시 코드
SELECT * 
FROM topic 
LEFT JOIN author ON topic.author_id = author.aid 
WHERE author.aid is NULL;

Tip! 정리

관계형 데이터 모델링

개념적 데이터 모델링

  • ERD (Entity Relationship Diagram)
    • 정보
    • 그룹
    • 관계
  • 관계형 데이터베이스 다운 개념의 구조

  • ERD의 구성 요소

  • 식별자 지정

  • 엔티티 간의 연결
    • Relationship
      • Cardinality


      • Optionality

논리적 데이터 모델링

  • ERD를 관계형 데이터베이스 모델에 어울리게 변환하는 과정
  • Mapping Rule
    • ERD를 통해서 표현한 내용을 관계형 데이터베이스에 맞게 만든 형식
    • 전환할 때 사용해 볼 수 있는 방법론

Tip! 추가 수업
생활코딩: 정규화

물리적 데이터 모델링

  • 논리적 데이터 모델링이 관계형 데이터베이스 패러다임에 잘 맞는 이상적인 표를 만드는 것이었다면, 물리적 데이터 모델링선택한 데이터베이스 제품에 만는 현실적인 고려는 하는 방법론
    • 이 단계에서 가장 중요한 것은 성능
      • 쿼리 성능 평가해보고 병목 일어나는 쿼리를 집중적으로 해결해야 함
      • find slow query
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 댓글