개발로 자기계발
728x90

관계형 데이터베이스(RDBMS)

관계형 데이터베이스(Relational Database)는 데이터를 테이블 형태로 저장하고 관리하는 데이터베이스

관계형 데이터베이스의 핵심 개념은 관계(Relation)로, 데이터를 행(Row)과 열(Column)로 구성된 2차원 테이블에 저장한다.

이러한 테이블들은 서로 관계를 맺고, 이를 통해 다양한 데이터 조작과 쿼리를 수행할 수 있다.

 

대표적인 관계형 데이터베이스

1) 프로덕션 데이터베이스: MySQL, PostgreSQL, Oracle 등등

- OLTP(OnLine Transaction Processing)

- 빠른 속도에 집중, 서비스에 필요한 정보 저장

- 백엔드 및 프론트엔드 개발자, 데이터 업계 종사자들 사용

 

2) 데이터 웨어하우스: Redshift, Snowflake, BigQuery, Hive 등등

- OLAP(OnLine Analytical Processing)

- 처리 데이터 크기에 집중, 데이터 분석 혹은 모델 빌딩등을 위한 데이터 저장

- 데이터 업계 종사자들 사용

 

관계형 데이터베이스 구조

 데이터를 테이블(Table) 형태로 저장하고, 테이블 간의 관계(Relationship)를 이용하여 데이터를 조직화하고 관리하는 데이터베이스 시스템이다.

 

1) 테이블(Table):

데이터를 저장하는 기본 단위로, 행(Row)과 열(Column)의 2차원 구조로 이루어져 있다.
각 열(Column)은 고유한 이름과 데이터 타입을 가지며, 하나의 속성(Attribute)을 나타낸다.
각 행(Row)은 레코드(Record) 또는 튜플(Tuple)이라고 하며, 하나의 데이터 항목을 나타낸다.

 

2) 스키마(Schema):

테이블 구조, 테이블 간의 관계, 제약 조건(Constraints), 인덱스(Index) 등 데이터베이스의 전반적인 구조와 특성을 정의한다.
스키마는 데이터베이스의 설계도 역할을 하며, 데이터베이스 객체의 생성, 수정, 삭제 등 데이터 정의 언어(DDL) 작업을 통해 관리된다.

 

3) 기본키(Primary Key):
테이블의 각 행을 고유하게 식별할 수 있는 열(Column) 또는 열의 집합이다.
기본키는 중복되지 않으며, NULL 값을 가질 수 없다.

 

4) 외래키(Foreign Key):

다른 테이블의 기본키를 참조하는 열(Column) 또는 열의 집합이다.
외래키를 통해 테이블 간의 관계를 정의하며, 데이터 무결성을 보장하는 데 사용된다.

 

5) 인덱스(Index):
데이터 검색 속도를 향상시키기 위해 사용되는 데이터베이스 객체이다.
인덱스는 특정 열(Column)에 대해 생성되며, 데이터의 정렬된 복사본을 유지하여 빠른 검색을 가능하게 한다.

 

6) 뷰(View):
하나 이상의 테이블로부터 파생된 가상 테이블이다.
뷰는 실제 데이터를 저장하지 않고, 기본 테이블에 대한 쿼리 결과를 반환하여 데이터에 대한 다양한 논리적인 구조를 제공한다.


데이터베이스 SQL 종류

- DDL(Data Definition Language, 데이터 정의 언어):

테이블, 인덱스, 뷰 등 데이터베이스 객체를 생성, 수정, 삭제하는 작업을 수행

주요 명령어: CREATE, ALTER, DROP, TRUNCATE


- DML(Data Manipulation Language, 데이터 조작 언어):

데이터베이스에 저장된 데이터를 삽입, 수정, 삭제, 조회하는 작업을 수행
주요 명령어: SELECT, INSERT, UPDATE, DELETE

 

- DCL(Data Control Language, 데이터 제어 언어):
사용자에게 데이터에 대한 접근 권한을 부여하거나 회수하는 작업을 수행

주요 명령어: GRANT, REVOKE

 

- TCL(Transaction Control Language, 트랜잭션 제어 언어):

데이터베이스 트랜잭션을 관리하고 제어하는 작업을 수행

주요 명령어: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

 

특정 데이터베이스 모델링 종류

데이터베이스 모델링은 데이터베이스의 구조와 관계를 표현하는 과정

 

1) 스타 스키마(Star Schema) :
스타 스키마는 관계형 데이터베이스의 일종으로, 하나의 중심 테이블과 여러 개의 외부 테이블로 구성

중심 테이블은 '팩트 테이블(Fact Table)'이라고 불리며, 실제로 분석하려는 데이터(숫자형 데이터)를 저장한다.

외부 테이블은 '차원 테이블(Dimension Table)'이라고 불리며, 팩트 테이블의 데이터를 설명하는 속성들을 저장한다.

장점:
- 질의 성능이 좋음: 팩트 테이블과 차원 테이블의 조인이 간단하고 적은 수의 테이블을 사용하기 때문에 질의 성능이 좋다.
- 이해하기 쉬움: 스키마 구조가 간단하고 직관적이어서 이해하기 쉽다.
- 데이터 집계 및 분석이 용이함: 팩트 테이블에서 직접 데이터를 가져와 집계 및 분석이 가능하다.

 

단점:
- 데이터 저장 공간 증가: 차원 테이블이 팩트 테이블과 별도로 관리되기 때문에, 전체적으로 데이터 저장 공간이 늘어날 수 있다.
- 데이터 갱신의 복잡성: 차원 테이블이 변경될 때, 팩트 테이블과의 관계를 유지하기 위해 갱신 작업이 복잡할 수 있다.

 

2) 비정규화 스키마(Denormalized Schema) :

 

장점:
- 질의 성능 향상: 조인이 적거나 없기 때문에 데이터 조회 성능이 좋아진다.
- 단순한 구조: 테이블 수가 적어지고 관계가 단순해져서 관리가 쉽다.

 

단점:
- 데이터 중복: 여러 테이블을 통합함으로써 데이터 중복이 발생할 수 있다. 이로 인해 데이터 저장 공간이 증가하고, 중복 데이터 관리가 어려워질 수 있다.
- 데이터 무결성 유지 어려움: 중복 데이터로 인해 데이터의 일관성을 유지하고 갱신하는 것이 어려워진다. 이로 인해 데이터 무결성이 손상될 수 있다.
- 삽입, 삭제, 갱신 연산의 성능 저하: 중복 데이터를 관리하고 일관성을 유지하기 위해 삽입, 삭제, 갱신 연산이 복잡해지고 성능이 저하될 수 있다.


결론

- 스타 스키마는 데이터 분석과 집계에 적합한 구조를 가지고 있지만, 데이터 저장 공간 증가와 갱신 작업의 복잡성이 단점

- 비정규화 스키마는 질의 성능이 향상되고 구조가 단순해지지만, 데이터 중복과 무결성 문제가 발생이 단점

 

 

 

728x90
SMALL

'Database & Data > 기초지식' 카테고리의 다른 글

개념적, 논리적, 물리적 모델(이해 위주)  (0) 2023.05.26
고급 SQL 다루기  (0) 2023.05.12
Join 소개  (0) 2023.05.11
RedShift 및 SQL 다루기  (0) 2023.05.09
Postgresql과 Mysql 중 선택시 고려해야 할 점  (0) 2023.04.09
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)