❓관계형 데이터베이스(Relational Database)
- 관계형 데이터베이스는 테이블 형태로 데이터를 구조화함
- 각 테이블은 열(column)과 행(row)으로 구성되며, 각 행은 고유한 키로 식별됨
- 이러한 테이블들은 서로 관계를 맺을 수 있으며, 이 관계를 통해 데이터간이 연결과 조작이 가능함
❓관계형 데이터베이스 특징
- 정형 데이터 저장 : 주로 정형화된 데이터를 저장하는데 사용
- SQL 사용: Structured Query Language(SQL)을 사용하여 데이터를 조회하고 조작함
- ACID 속성 : 데이터의 무결성을 유지하기 위해 Atomicity, Consistency, Isolation, Durability의 원칙을 따름
- 스키마 기반 : 데이터는 미리 정의된 스키마에 따라 저장되어야 하며, 스키마 변경은 상대적으로 복잡할 수 있음
❓비관계형 데이터베이스
- 비관계형 데이터베이스는 보다 유연한 데이터 저장 방식을 제공
- 테이블 형태의 구조에 구속되지 않고, 다양한 데이터 형식을 저장할 수 있음
❓비관계형 데이터베이스 특징
- 비정형 데이터 저장 : 문서, 키-값 쌍, 그래프 등 다양한 형태의 데이터를 저장할 수 있음
- 유연한 스키마 : 데이터를 미리 정의된 스키마 없이 저장할 수 있어, 동적인 데이터 구조에 적합함
- 다양한 쿼리 언어 : SQL이 아닌 다양한 쿼리 언어나 API를 사용하여 데이터에 접근함
- 확장성: 수평적 확장성에 강점을 가지며, 대규모 데이터 분산 처리에 적합
두 데이터 베이스 유횽은 사용 목적과 필요에 따라 선택되고 서로 다른 장정과 특성을 가짐
관계형 데이터베이스는 정형 데이터와 복잡한 쿼리, 엄격한 데이터 무결성을 요구하는 애플리케이션에 적합한 반면, 비관계형 데이터 베이스는 대량의 비정형 데이터, 빠른 데이터 처리와 유연한 데이터 구조 변경이 필요한 경우에 주로 사용됨
❓ 차이점
- 데이터 구조
- 관계형 DB: 테이블 형태로 데이터를 저장, 각 테이블은 열(column)과 행(row)으로 구성되며, 각 행은 고유한 키로 식별, 데이터는 정규화되어 중복을 최소화
- 비관계형 DB: 다양한 데이터 구조를 지원\(키-값 쌍, 문서, 그래프, 열 기반 저장 등), 이러한 유연한 구조는 다양한 형태의 데이터를 저장하고 관리하기 적합
- 스키마
- 관계형 DB: 엄격한 스키마를 가짐, 데이터베이스 설계 시 모든 테이블 구조와 데이터 타입을 미리 정의
- 비관계형 DB: 스키마가 유연하거나 없을 수 있음, 이로 인해 데이터 구조 변경이 간편하지만, 데이터 일관성 관리가 복잡해질 수 있음
쿼리 언어:
- 관계형 DB: SQL(Structured Query Language)을 사용하여 데이터를 쿼리하고 조작
- 비관계형 DB: 다양한 쿼리 언어를 사용하거나, 경우에 따라 자체적인 API를 제공
확장성:
- 관계형 DB: 수직적 확장성(서버의 성능 향상)에 초점을 맞추지만, 수평적 확장(여러 서버에 데이터 분산)이 어려움
- 비관계형 DB: 수평적 확장성에 강점을 가지고 있어, 더 많은 서버로 용이하게 데이터를 분산할 수 있음
트랜잭션 처리:
- 관계형 DB: ACID(Atomicity, Consistency, Isolation, Durability) 속성을 지원하여 강력한 트랜잭션 관리와 데이터 일관성을 제공
- 비관계형 DB: 일부는 ACID를 지원하지만, 대체로 BASE(Basically Available, Soft state, Eventual consistency) 모델을 따르며, 이는 높은 가용성과 유연성을 제공하지만, 일관성은 덜 엄격함
사용 사례:
- 관계형 DB: 정형화된 데이터와 복잡한 쿼리, 엄격한 데이터 무결성이 필요한 경우 적합
- 비관계형 DB: 대량의 비정형 데이터나 변동이 큰 데이터, 빠른 읽기/쓰기가 필요한 경우 유리
관계형 데이터베이스와 비관계형 데이터베이스는 각각 데이터를 구조화하고 관리하는 방법에 큰 차이가 있습니다.
먼저, '관계형 데이터베이스(RDBMS)'는 데이터를 '테이블'이라는 구조화된 형태로 저장합니다. 이 테이블은 '로우'와 '컬럼'으로 구성되어 있으며, 각 테이블은 명확하게 정의된 데이터 타입의 필드를 가지고 있습니다. 가장 큰 특징은 '관계'입니다. 서로 다른 테이블 간에 키(key)를 사용하여 관계를 맺을 수 있으며, 이러한 관계를 통해 데이터의 무결성과 일관성을 보장합니다. 관계형 데이터베이스는 SQL(Structured Query Language)을 사용하여 데이터를 쿼리하고, 관리합니다. 이는 데이터의 정규화, 트랜잭션, 조인 등의 복잡한 작업을 처리할 수 있게 해주며, 오랫동안 엔터프라이즈 환경에서 안정성과 성능을 제공해왔습니다.
반면, '비관계형 데이터베이스(NoSQL)'는 스키마가 없거나 유연한 스키마를 사용하여 데이터를 저장합니다. 이는 '테이블'과 '관계'라는 제약을 덜 받기 때문에 다양한 형태의 데이터를 보다 손쉽게 저장하고 관리할 수 있습니다. 비관계형 데이터베이스는 문서 지향(document-oriented), 키-값 저장(key-value stores), 그래프 데이터베이스(graph databases), 컬럼 지향(columnar stores) 등 다양한 모델을 포함하며, 각각이 서로 다른 사용 사례에 최적화되어 있습니다. 비관계형 데이터베이스는 대량의 분산된 데이터를 효율적으로 처리하고, 스키마 변경에 대한 유연성이 필요한 모던 애플리케이션에 적합합니다.
요약하자면, 관계형 데이터베이스는 구조화된 데이터를 안전하게 저장하고 관리하는데 적합하며, 트랜잭션의 일관성과 데이터 무결성에 중점을 둡니다. 반면, 비관계형 데이터베이스는 다양한 유형과 형태의 데이터를 빠르고 유연하게 처리할 수 있는 장점을 가지고 있으며, 스케일 아웃에 더 적합한 구조를 가지고 있어 대용량 데이터를 처리하는데 적합합니다.
'IT > 면접' 카테고리의 다른 글
Q. Static Site Generator란? (0) | 2023.11.01 |
---|---|
Q. 이벤트 버블링에 대해 설명 (1) | 2023.10.31 |
Q. 동기와 비동기 차이 (0) | 2023.10.16 |
Q. 이미지 최적화에 대해 설명, 방법에 대해 설명 (1) | 2023.08.31 |
Q. SEO란 무엇이고 SEO를 진행하는 방법에 대해 설명 (0) | 2023.08.31 |