Published:
Updated:

Coursera의 SQL for Data Science 강의를 보고 정리한 글입니다.


생각

  • 지금까지 데이터베이스를 자세히 공부해본 적이 없었기 때문에 JPA에서 배운 “다대일, 일대다, 일대일, 다대다”가 일반적인 데이터베이스 관계인 줄만 알고 있었다.
    • 근데 정작 “다대일($N : 1$)”이라는 개념은 데이터베이스에는 존재하지 않았다.
  • 어느 관점으로 바라보느냐에 따라 다른 것 같다.


Relational vs Transactional Model

스크린샷 2023-06-05 오후 10 30 55

  • Relational Model은 서로 다른 테이블 간의 관계를 보여주는 데이터베이스 설계로,
    • 데이터 쿼리를 최적화하여 데이터에 쉽고 직관적으로 액세스할 수 있도록 하는 데 사용됨
  • Transactional Model은 보다 운영적인 데이터베이스라 할 수 있음
    • 예를 들어, 의료 업계에 종사하는 경우 모든 청구 정보를 저장하는 데 사용되는 Transactional 데이터베이스가 있을 수 있는데,
      • 이 정보는 쿼리 및 분석에 사용하기에 적합한 방식으로 저장되지 않을 수 있음
    • 데이터베이스에서 해당 트랜잭션 정보를 추출하여 관계형 모델로 옮겨야 할 수도 있음
  • 이 강의에서 다룬 대부분의 내용은 관계형 모델


Data Model Building Blocks

스크린샷 2023-06-05 오후 10 33 40

  • 관계형 모델의 구성 요소는 세 가지로 이루어져 있음
    • Entity, Attribute, Relationship
  • Entity
    • Person, Place, Event
      • 이들은 고유하고, 구별될 수 있음
  • Attribute
    • 나는 Sully라는 Entity가 될 수 있고, 이 개체의 특성인 Attribute가 있음
      • Entity로서는 나 자신이고 나에 대한 Attribute는 내가 남성이라는 것.
  • Relationship
    • 이것은 서로 다른 엔티티 간의 연관성을 설명함


Data Model Building Blocks

스크린샷 2023-06-05 오후 10 21 31

  • 데이터베이스에는 몇 가지 유형의 관계가 있으며 여기서는 일대다, 다대다, 일대일의 세 가지 관계를 다룸
  • 일대다 관계를 생각해보면 송장이 많은 고객 한 명이 있을 수 있음
  • 다대다 관계를 생각해보면 많은 학생과 많은 수업의 예가 될 수 있음
    • 한 학생이 여러 학급에 속해 있을 수도 있고, 한 학급에 여러 학생이 있을 수도 있음
  • 일대일 관계를 생각해보면 매니저와 상점의 관계가 될 수 있음
    • 스포츠용품 매장이 있고 각 매장에 매니저가 한 명씩만 있다고 가정해 보면,
      • 이것이 일대일 관계의 한 예가 될 수 있습니다.


ER Diagrams

스크린샷 2023-06-05 오후 10 59 47

스크린샷 2023-06-05 오후 10 59 52

  • 이전 테이블 간의 관계를 더 잘 이해하기 위해 자주 사용되는 것이 ER 다이어그램
  • ER 모델Entity 타입과 이러한 Entity 간에 존재할 수 있는 특정 관계로 구성됨
    • 이러한 관계는 일반적으로 시각적 형식으로 표시되며 관계는 테이블 간의 관계를 나타냄
    • 비즈니스 프로세스를 이해하고 표현하는 데 도움이 되는 경우가 많으며 이런 테이블 간의 링크를 표시함
  • 이후 강의에서 이러한 테이블을 조인하고 데이터를 결합하는 방법을 배우게 될 것이므로 links는 매우 중요!! 💯
  • 이 다이어그램을 보고 테이블이 서로 어떻게 연관되어 있는지 확인하는 것은 정말 중요함! 💯


Primary Keys and Foreign Keys

스크린샷 2023-06-05 오후 10 59 59

  • 이 테이블을 조인하는 데 사용하는 것은 두 가지
    • Primary 키 또는 Foreign
  • Primary 키는 테이블의 모든 행을 고유하게 식별하는 값을 가진 row 또는 row 집합
    • 그러면 이러한 고유 식별자를 가져와서 다른 테이블에 조인할 수 있음
  • Foreign 키도 비슷하지만
    • 하나 이상의 column을 함께 사용하여 테이블의 단일 row를 식별할 수 있다는 점에서 차이가 있음


ER Diagram Notation

스크린샷 2023-06-05 오후 10 21 44

  • ER 다이어그램을 보면 어떤 데이터 요소를 조인하려는지, 어떻게 가져와야 하는지 이해할 수 있음
  • 하지만 이해해야 할 것 중 하나는 이것을 읽는 방법
  • 관계를 설명하는 다른 유형의 표기법이 있음
    • Chen 표기법, Crow's Foot 표기법, UML Class Diagram 표기법


Chen Notation

스크린샷 2023-06-05 오후 10 21 55

  • 일대다 관계에는 $1 : M$
  • 다대다 관계에는 $M : N$
  • 일대일 관계에는 $1 : 1$


Crow’s Foot Notation

스크린샷 2023-06-05 오후 10 22 02

  • 1을 나타내는 기찻길과 다수를 나타내는 까마귀 발이 있음
    • 말 그대로 까마귀 발 표기법


UML Class Diagram Notation

스크린샷 2023-06-05 오후 10 22 08

  • 마지막으로 UML에서는 일의 개념을 나타내는 1.1과 다의 개념을 나타내는 1.*이 있음
    • 이 부분은 꼭 기억하자 !! 💯
  • ER 다이어그램을 자주 보게 될 텐데, ER 다이어그램을 읽을 때 이러한 표기법을 이해해야 쿼리를 어떻게 작성하고 테이블을 조인할지, 심지어 테이블에 나열된 내용을 파악할 수 있음
  • 데이터가 특정 방식으로 구조화된 이유와 ER 다이어그램을 읽는 방법을 잘 이해하면 쿼리를 작성하고 정확한 결과를 얻는 데 큰 도움이 됨


Script 해석본

이제 이 강의에서 다룰 데이터 모델의 유형에 대해 다시 이야기하면서 데이터 모델에 대한 논의를 마무리하겠습니다. 이 동영상을 보고 나면 관계형 데이터베이스 모델과 트랜잭션 데이터베이스 모델을 모두 정의하고 설명할 수 있으며, 엔티티, 속성 및 관계를 정의하고, 일대일, 일대다 및 다대다 관계의 차이점을 설명하고, 데이터베이스에서 기본 키의 사용을 설명하고, ER 다이어그램이 관계를 문서화하고 설명하는 데 어떻게 사용되는지 설명할 수 있어야 합니다. 이 동영상은 관계형 데이터베이스 모델과 트랜잭션 데이터베이스 모델에 대해 간략하게 설명하는 것으로 시작하고자 합니다. 관계형 모델은 서로 다른 테이블 간의 관계를 보여주는 데이터베이스 설계로, 데이터 쿼리를 최적화하여 데이터에 쉽고 직관적으로 액세스할 수 있도록 하는 데 실제로 사용됩니다. 반면에 트랜잭션 모델은 보다 운영적인 데이터베이스라고 생각할 수 있습니다. 예를 들어, 의료 업계에 종사하는 경우 모든 청구 정보를 저장하는 데 사용되는 트랜잭션 데이터베이스가 있을 수 있는데, 이 정보는 쿼리 및 분석에 사용하기에 적합한 방식으로 저장되지 않을 수 있습니다. 실제로 데이터베이스에서 해당 트랜잭션 정보를 추출하여 관계형 모델로 옮겨야 할 수도 있습니다. 이 강의에서 다루게 될 대부분의 내용은 관계형 모델입니다. 이 관계형 모델의 구성 요소는 사실 세 가지로 간단합니다. 사람, 장소, 사물 또는 이벤트인 엔티티가 있습니다. 이들은 매우 구별할 수 있습니다(distinguishable). 이들은 고유합니다. 이들은 구별됩니다. 예를 들어, 저는 새디 세인트 로렌스라는 개체가 될 수 있고, 이 개체의 특성인 속성이 있습니다. 개체로서는 나 자신이고 나에 대한 속성은 내가 여성이라는 것입니다. 그런 다음 모델의 세 번째 구성 요소는 관계입니다. 이것은 서로 다른 엔티티 간의 연관성을 설명합니다. 데이터베이스에는 몇 가지 유형의 관계가 있으며 여기서는 일대다, 다대다, 일대일의 세 가지 관계를 다루고자 합니다. 일대다 관계를 생각하면 송장이 많은 고객 한 명이 있을 수 있습니다. 다대다 관계를 생각하면 많은 학생과 많은 수업의 예가 될 수 있습니다. 한 학생이 여러 학급에 속해 있을 수도 있고, 한 학급에 여러 학생이 있을 수도 있습니다. 그런 다음 일대일 관계를 생각해보면 매니저와 상점의 관계입니다. 스포츠용품 매장이 있고 각 매장에 매니저가 한 명씩만 있다고 가정해 봅시다. 이것이 일대일 관계의 한 예가 될 수 있습니다. 테이블 간의 이러한 관계를 더 잘 이해하기 위해 자주 사용되는 것이 ER 다이어그램입니다. 그런 다음 ER 모델은 엔티티 유형과 이러한 엔티티 간에 존재할 수 있는 특정 관계로 구성됩니다. 이러한 관계는 일반적으로 시각적 형식으로 표시되며 관계는 테이블 간의 관계를 나타냅니다. 비즈니스 프로세스를 이해하고 표현하는 데 도움이 되는 경우가 많으며 이러한 테이블 간의 링크를 표시합니다. 이후 강의에서 이러한 테이블을 조인하고 데이터를 결합하는 방법을 배우게 될 것이므로 링크는 매우 중요합니다. 이 다이어그램을 보고 테이블이 서로 어떻게 연관되어 있는지 확인하는 것은 정말 중요합니다. 이 테이블을 조인하는 데 사용하는 것은 두 가지입니다. 기본 키 또는 외래 키를 사용할 수 있습니다. 기본 키는 테이블의 모든 행을 고유하게 식별하는 값을 가진 열 또는 열 집합입니다. 그러면 이러한 고유 식별자를 가져와서 다른 테이블에 조인할 수 있습니다. 외래 키도 비슷하지만 하나 이상의 열을 함께 사용하여 테이블의 단일 행을 식별할 수 있다는 점에서 차이가 있습니다. ER 다이어그램을 보면 어떤 데이터 요소를 조인하려는지, 어떻게 가져와야 하는지 이해할 수 있습니다. 하지만 이해해야 할 것 중 하나는 이것을 읽는 방법입니다. 관계와 테이블 간의 다양한 관계에 대해 조금 이야기했습니다. 그리고 관계를 설명하는 다른 유형의 표기법이 있습니다. 첸 표기법, 까마귀 발 표기법, UML 클래스 다이어그램 표기법이 있습니다. 첸 표기법은 일대다 관계에는 1 대 M을, 다대다 관계에는 M과 N을, 일대일 관계에는 1 대 1을 사용합니다. 까마귀 발 표기법에서는 1을 나타내는 기찻길과 다수를 나타내는 까마귀 발이 있습니다. 마지막으로 UML에서는 1의 개념을 나타내는 1.1과 다의 개념을 나타내는 1.”이 있습니다. 이 부분은 꼭 메모해 두세요. ER 다이어그램을 자주 보게 될 텐데, ER 다이어그램을 읽을 때 이러한 표기법을 이해해야 쿼리를 어떻게 작성하고 테이블을 조인할지, 심지어 테이블에 나열된 내용을 파악할 수 있습니다. 이것은 앞서 말씀드린 ‘시작하기 전에 생각하기’ 개념의 일부입니다. 데이터가 특정 방식으로 구조화된 이유와 ER 다이어그램을 읽는 방법을 잘 이해하면 쿼리를 작성하고 정확한 결과를 얻는 데 큰 도움이 됩니다.

Leave a comment