홍카나의 공부방

[데이터베이스] 릴레이션, 스키마, 관계형 데이터베이스 개요와 SQL 본문

Data Engineering/Database

[데이터베이스] 릴레이션, 스키마, 관계형 데이터베이스 개요와 SQL

홍문관카페나무 2023. 5. 8. 12:48

관계형 데이터베이스 개요

  • 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 저장소다.
  • 엑셀 스프레드시트 형태의 테이블 구조로 데이터를 정의하고 저장한다.
  • 각 행은 테이블에 저장된 특정 데이터 레코드를 나타낸다.
  • 각 열은 특정 유형의 데이터를 저장하는 데 사용된다.

 

릴레이션

  • 강의에서 언급되지는 않았지만, 릴레이션의 개념을 짚고 넘어갈 필요가 있다.
  • 릴레이션(relation)은 하나의 개체(entity)에 관한 데이터를 2차원 테이블의 구조로 저장한 것이다.
  • 릴레이션은 튜플(행, 데이터 레코드)의 집합으로 구성되며, 각 튜플은 속성(attribute)의 값으로 구성된다.
  • 그리고 하나의 속성이 가질 수 있는 모든 값의 집합을 도메인(domain)이라고 정의한다.
  • 하나의 릴레이션에서 속성의 전체 개수를 차수(degree), 투플의 전체 개수를 카디널리티(cardinality)라고 한다.
  • 테이블은 데이터를 저장하는 데 사용되는 구체적인 개념이며, 릴레이션은 데이터를 구성하는 데 사용되는 추상적인 개념으로 볼 수 있다.

https://jouureee.tistory.com/12

 

relation 과 table의 차이

릴레이션과 테이블의 차이는 추상적 개념과 이를 나타내는 구체적 표현의 차이인데 릴레이션은 추상적 개념(abstract concept)이고 테이블은 이 릴레이션을 기술하는 하나의 구체적 표현(concrete repre

jouureee.tistory.com

 

 

 

스키마

  • 스키마는 DB에서 자료의 구조, 표현 방법, 표현 관계를 정의한 구조를 의미한다.
  • 스키마는 속성, 도메인(데이터 타입)등의 정보를 담고 있다.
  • 아래 릴레이션 그림에서 고객아이디, 이름과 같은 속성의 정보와 도메인을 알려주고 있는 것이 스키마라고 보면 된다.

 

테이블 구조로 저장된 릴레이션 예시, 카디널리티는 4, 차수(degree)는 6이다.

 

관계형 데이터베이스 종류

  • 프로덕션 데이터베이스로 MySQL, PostgreSQL 등이 존재한다.
  • OLTP(Online Transaction Processing) 방식으로 데이터를 처리하는데, 처리량과 속도가 빠른 방식이다.
  • 데이터 웨어하우스로는 Redshift, Snowflake, BigQuery, Hive 등이 존재한다. 데이터 관련 일을 하는 사람들은 데이터 웨어하우스를 자주 사용하게 된다.
  • 데이터 웨어하우스 제품들은 처리 데이터 크기에 집중한다. 또한, 데이터 분석이나 모델 빌딩 등을 위한 데이터를 저장하는 데 사용하는 응용 프로그램이다.
  • OLAP 방식으로 데이터를 처리하는데, 대량의 데이터를 분석하고 요약하는 데 사용한다.
  • 보통 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장한다.
  • 만약 MySQL에 분석을 위해 연산 비용이 큰 쿼리를 날려서 서비스 이용에 지장이 되게 만든다면 백엔드 개발자들이 분노를 하시게 된다... 따라서 회사에서 프로덕션 DB와 데이터 웨어하우스를 별개로 구축하여, 서비스 운영과 데이터 분석이라는 다른 목적에 맞게 인프라를 구축하고 있는지 확인하자.

 

관계형 데이터베이스 구조

  • 가장 밑단에는 테이블들이 존재한다. ( 엑셀에서는 시트로 맵핑 )
  • 테이블들은 데이터베이스(or 스키마)라는 폴더 밑으로 구성된다. ( 엑셀에서는 파일로 맵핑 )
  • 스키마라는 용어에 혼동이 올 수 있는데... 위 스키마에서 지칭하는 것은 릴레이션 스키마이다. ( 반면 데이터베이스 스키마는 데이터베이스의 전체 구조를 지칭하는 용어다. )

 

데이터베이스 스키마와 릴레이션 스키마

 

SQL 개념과 중요성

  • SQL은 관계형 데이터베이스에 있는 데이터(테이블)를 질의할 수 있게 해주는 표준 질의어다.
  • 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 분류한다.
  • 구조화된 데이터를 다루는 한, SQL은 데이터 규모와 상관없이 쓰인다.
  • 즉, Redshift, Snowflake와 같은 데이터 웨어하우스도 관계형 데이터베이스이기 때문에 SQL을 지원한다.
  • 다만, SQL로 비구조화된 데이터를 다루는 것도 가능하긴 하나 제약이 심하여 Spark이나 Hadoop과 같은 분산 컴퓨팅 환경이 필요로 해졌다. ( 즉, SQL만으로는 비구조화 데이터를 처리하지 못한다. )

 

Star Schema

  • 별모양 스키마는 관계형 데이터베이스에서 사용하는 모델링 방법이다.
  • 데이터를 논리적 단위로 나눠서 저장하고, 필요시 조인한다.
  • 스토리지의 낭비가 비교적 심하지 않고, 업데이트가 쉽다.
  • 별 중심에 있는 테이블을 Fact table, 별 꼭지점에 위치한 테이블을 Dimension Table이라고 한다. 
  • 데이터 웨어하우스에서는 스토리지 크기의 제약이 없기 때문에 Denormalized schema를 사용한다. 이는 단위 테이블로 나눠서 저장하지 않고 그냥 애트리뷰트들을 쭉 저장하는 방식이다. 조인이 필요 없어서 빠른 계산이 가능하다.

별 모양 스키마 ( source : Microsoft )

 

 

반응형