Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

즐겁게 배우는 SQL 11일차 JOIN 설명입니다.

784 views

Published on

유튜브 방송: https://www.youtube.com/watch?v=hV1JEJm4U-8&list=PLdntWJk2tJPLinuRXcokohNLgc83ejwUt&index=12

Published in: Software
  • Be the first to comment

  • Be the first to like this

즐겁게 배우는 SQL 11일차 JOIN 설명입니다.

  1. 1. Day 11 – join 설명
  2. 2. 발표자 소개 기술 배경 전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발, 고성능 고가용성 데이터베이스, 클라우드 컴퓨팅 주요활동 IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등) 개발강의 (삼성전자, SK C&C, 현대자동차 기술 세미나와 교육) 활동채널 블로그: https://jhrogue.blogspot.com 슬라이드 셰어: https://www.slideshare.net/jrogue/presentations 유튜브: https://www.youtube.com/c/박재호dev 문의 jrogue@gmail.com 박재호
  3. 3. 즐겁게 배우는 SQL 관계형 모델에서 여러 테이블 사이의 논리적인 연결을 가능하게 만드는 핵심 • 둘 이상의 테이블에서 데이터를 결합 • 테이블을 여러 번 읽을 필요가 없고 트랜잭션 보호가 가능 • 외래 키(foreign key)와 관련된 테이블 집합을 손쉽게 처리 SQL에서 join이 중요한 이유?
  4. 4. 즐겁게 배우는 SQL 예제 테이블 • 앨범과 아티스트는 N:1 관계 • 즉, 한 아티스트가 여러 앨범을 만들어 낼 수 있음
  5. 5. 즐겁게 배우는 SQL 왜 다음과 같이 하지 않았을까? • 중복이 많아짐: 즉 아티스트가 늘어나면 늘어날수록 점점 더 공간을 많이 차지함, 변경이 어려워짐 • 동명이인 처리가 불가능함: 이름이 같으면 아티스트를 구분할 방법이 사실상 전무함
  6. 6. 즐겁게 배우는 SQL 그렇다면 앨범 이름과 아티스트를 함께 출력하는 방법은? • SELECT 질의를 두 번 내리는 방법이 있음 • 먼저 albums 테이블을 대상으로 SELECT 질의로 ArtistId를 얻어와서 다시 artists 테이블을 대상으로 이름을 얻어옴 • 애플리케이션에서 비즈니스 논리를 일부 활용 → 장점이 없는 것은 아님, 하지만 트랜잭션 관련해 어려움을 예상 • 여기서 JOIN 등장! 특정 테이블의 필드를 기준으로 다른 테이블의 필드를 연결 외래 키
  7. 7. 즐겁게 배우는 SQL JOIN의 정체는? 곱집합(Cartesian Product) • https://blog.jooq.org/2016/07/05/say-no-to-venn-diagrams-when-explaining-joins/
  8. 8. 즐겁게 배우는 SQL 그런데 조건을 줄 수 있어요… • https://blog.jooq.org/2016/07/05/say-no-to-venn-diagrams-when-explaining-joins/
  9. 9. 즐겁게 배우는 SQL 집합처럼 생각하지 맙시다. 정확하지도 않고 이해하기도 어려워요. • https://blog.jooq.org/2016/07/05/say-no-to-venn-diagrams-when-explaining-joins/

×