[Database] Relational vs Transactional Data Models
Coursera의 SQL for Data Science 강의를 보고 정리한 글입니다.
생각
- 지금까지 데이터베이스를 자세히 공부해본 적이 없었기 때문에 JPA에서 배운 “다대일, 일대다, 일대일, 다대다”가 일반적인 데이터베이스 관계인 줄만 알고 있었다.
- 근데 정작 “다대일($N : 1$)”이라는 개념은 데이터베이스에는 존재하지 않았다.
- 어느 관점으로 바라보느냐에 따라 다른 것 같다.
Relational vs Transactional Model
Relational Model
은 서로 다른 테이블 간의 관계를 보여주는 데이터베이스 설계로,- 데이터 쿼리를 최적화하여 데이터에 쉽고 직관적으로 액세스할 수 있도록 하는 데 사용됨
Transactional Model
은 보다 운영적인 데이터베이스라 할 수 있음- 예를 들어, 의료 업계에 종사하는 경우 모든 청구 정보를 저장하는 데 사용되는
Transactional
데이터베이스가 있을 수 있는데,- 이 정보는 쿼리 및 분석에 사용하기에 적합한 방식으로 저장되지 않을 수 있음
- 데이터베이스에서 해당 트랜잭션 정보를 추출하여 관계형 모델로 옮겨야 할 수도 있음
- 예를 들어, 의료 업계에 종사하는 경우 모든 청구 정보를 저장하는 데 사용되는
- 이 강의에서 다룬 대부분의 내용은
관계형 모델
Data Model Building Blocks
- 관계형 모델의 구성 요소는 세 가지로 이루어져 있음
Entity
,Attribute
,Relationship
Entity
- Person, Place, Event
- 이들은 고유하고, 구별될 수 있음
- Person, Place, Event
Attribute
- 나는 Sully라는
Entity
가 될 수 있고, 이 개체의 특성인Attribute
가 있음Entity
로서는 나 자신이고 나에 대한Attribute
는 내가 남성이라는 것.
- 나는 Sully라는
Relationship
- 이것은 서로 다른 엔티티 간의 연관성을 설명함
Data Model Building Blocks
- 데이터베이스에는 몇 가지 유형의 관계가 있으며 여기서는 일대다, 다대다, 일대일의 세 가지 관계를 다룸
- 일대다 관계를 생각해보면 송장이 많은 고객 한 명이 있을 수 있음
- 다대다 관계를 생각해보면 많은 학생과 많은 수업의 예가 될 수 있음
- 한 학생이 여러 학급에 속해 있을 수도 있고, 한 학급에 여러 학생이 있을 수도 있음
- 일대일 관계를 생각해보면 매니저와 상점의 관계가 될 수 있음
- 스포츠용품 매장이 있고 각 매장에 매니저가 한 명씩만 있다고 가정해 보면,
- 이것이 일대일 관계의 한 예가 될 수 있습니다.
- 스포츠용품 매장이 있고 각 매장에 매니저가 한 명씩만 있다고 가정해 보면,
ER Diagrams
- 이전 테이블 간의 관계를 더 잘 이해하기 위해 자주 사용되는 것이
ER 다이어그램
ER 모델
은Entity
타입과 이러한Entity
간에 존재할 수 있는 특정 관계로 구성됨- 이러한 관계는 일반적으로 시각적 형식으로 표시되며 관계는 테이블 간의 관계를 나타냄
- 비즈니스 프로세스를 이해하고 표현하는 데 도움이 되는 경우가 많으며 이런 테이블 간의 링크를 표시함
- 이후 강의에서 이러한 테이블을 조인하고 데이터를 결합하는 방법을 배우게 될 것이므로
links
는 매우 중요!! 💯 - 이 다이어그램을 보고 테이블이 서로 어떻게 연관되어 있는지 확인하는 것은 정말 중요함! 💯
Primary Keys and Foreign Keys
- 이 테이블을 조인하는 데 사용하는 것은 두 가지
Primary
키 또는Foreign
키
Primary
키는 테이블의 모든 행을 고유하게 식별하는 값을 가진row
또는row
집합- 그러면 이러한 고유 식별자를 가져와서 다른 테이블에 조인할 수 있음
Foreign
키도 비슷하지만- 하나 이상의
column
을 함께 사용하여 테이블의 단일row
를 식별할 수 있다는 점에서 차이가 있음
- 하나 이상의
ER Diagram Notation
- ER 다이어그램을 보면 어떤 데이터 요소를 조인하려는지, 어떻게 가져와야 하는지 이해할 수 있음
- 하지만 이해해야 할 것 중 하나는 이것을 읽는 방법
- 관계를 설명하는 다른 유형의 표기법이 있음
Chen
표기법,Crow's Foot
표기법,UML Class Diagram
표기법
Chen Notation
- 일대다 관계에는 $1 : M$
- 다대다 관계에는 $M : N$
- 일대일 관계에는 $1 : 1$
Crow’s Foot Notation
- 1을 나타내는 기찻길과 다수를 나타내는 까마귀 발이 있음
- 말 그대로 까마귀 발 표기법
UML Class Diagram Notation
- 마지막으로 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