개발자 박가나
[241118 TIL] 본캠프 34일차 ('뉴스피드' 프로젝트 2일차) 본문
데이터베이스란?
데이터를 체계적으로 저장하고 관리하는 시스템으로, 단순 파일 저장 방식과 달리 대량의 데이터를 효과적으로 관리하고 처리할 수 있는 기능을 제공한다.
- 데이터를 안전하게 보관
- 빠르고 정확하게 데이터 검색 및 수정
- 여러 사용자가 데이터를 동시에 사용할 수 있도록 지원
- 데이터의 무결성과 보안 유지
관계형 데이터베이스 (RDB)
데이터를 테이블 구조로 저장하고, 테이블 간의 관계를 정의한다.
- 데이터를 행과 열로 구조화
- Primary Key와 Foreign Key를 이용해서 데이터 간의 관계를 정의 및 유지
- ACID 특성 준수
- SQL 언어를 사용해서 데이터 CRUD
장점
- 데이터의 무결성 및 일관성 보장
- 표준화된 SQL 언어 사용
- 복잡한 데이터 관계 처리 가능
단점
- 유연성 부족
- 확장성 제한
ACID 특성
관계형 데이터베이스의 트랜잭션이 안전하고 신뢰할 수 있도록 보장하는 4가지 속성이다.
- Atomicity (원자성)
- 트랜잭션의 모든 작업이 성공적으로 완료되거나, 하나라도 실패하면 모든 작업이 취소되어야 함
- Consistency (일관성)
- 트랜잭션이 완료된 후 데이터베이스는 항상 일관된 상태를 유지해야 함
- Isolation (격리성)
- 여러 트랜잭션이 동시에 실행되더라도 서로 간섭하지 않고 독립적으로 처리되어야 함
- Durability (지속성)
- 트랜잭션이 완료된 후에는 시스템 오류가 발생해도 그 결과가 데이터베이스에 영구적으로 저장되어야 함
비관계형 데이터베이스 (NoSQL)
고정된 테이블 구조 없이 데이터를 다양한 형식으로 저장한다.
- 스키마가 없거나 유연
- 데이터 중복 허용
- 수평적 확장이 쉬워서 대규모 데이터 처리에 유리
- ACID 특성을 부분적으로만 준수하고, CAP 이론에 따라 성능이나 확장성을 우선시
장점
- 유연한 데이터 구조
- 수평적 확장 용이
- 빠른 데이터 처리
단점
- 데이터 관계 정리 어려움
- 표준화 부족
- 일관성 부족
CAP 이론
- Consistency (일관성)
- 모든 노드에 동일한 데이터가 적용되어야 함
- Availability (가용성)
- 항상 응답 가능해야 함
- Partition Tolerance (분산 허용성)
- 네트워크 분산 상황에서도 데이터에 접근이 가능해야 함
수직 확장 (Scale Up)
기존 서버의 성능을 업그레이드하여 데이터베이스의 처리 능력을 향상시키는 방식이다.
장점
- 기존 시스템을 그대로 사용하면서 성능을 강화할 수 있음
- 데이터의 일광성을 유지하기 쉽고 관리가 간단함
단점
- 성능 향상이 하드웨어의 한계에 의해 제한될 수 있음
- 고성능 장비는 비용이 많이 들 수 있음
수평 확장 (Scale Out)
여러 대의 서버를 추가로 배치하고 데이터와 작업을 분산 처리하여 성능을 향상시키는 방식이다.
장점
- 무제한으로 확장 가능함
- 대규모 데이터나 트래픽을 처리하는데 적합함
단점
- 데이터 분산으로 인해 일관성을 유지하기 어려움
- 시스템 설정 및 유지 관리가 복잡함
데이터 관계
1 : 1 관계 (One-to-One Relationship)
하나의 엔터티가 다른 엔터티와 정확히 하나의 데이터만 연결된다.
1 : N 관계 (One-to-Many Relationship)
하나의 엔터티가 여러 엔터티와 연결된다.
N : M 관계 (Many-to-Many Relationship)
여러 엔터티가 서로 다수의 데이터를 참조한다.
중간 테이블이 필요한 이유
- N : M 관계를 표현하기 위해 필수적
- 데이터 중복 방지
- 추가 정보 저장 용이
- 관계 표현 간결화
'내일배움캠프' 카테고리의 다른 글
[241120 TIL] 본캠프 36일차 ('뉴스피드' 프로젝트 4일차) (1) | 2024.11.20 |
---|---|
[241119 TIL] 본캠프 35일차 ('뉴스피드' 프로젝트 3일차) (1) | 2024.11.19 |
[241115 TIL] 본캠프 33일차 ('뉴스피드' 프로젝트 1일차) (0) | 2024.11.15 |
[241114 TIL] 본캠프 32일차 (1) | 2024.11.14 |
[241113 TIL] 본캠프 31일차 (2) | 2024.11.13 |