데이터베이스? 비정형 데이터? NoSQL?

Eugenie Seo·2023년 11월 8일
0

FE STUDY - CS

목록 보기
18/20
post-thumbnail
post-custom-banner

친구에게 면접 후기를 물어봤는데, 옆사람이 비정형 데이터와 NoSQL에 대해서도 답변을 못해서 면접관이 당황스러워했다고 답해주었다. 하지만 나도 정확히 모르는걸! 데이터베이스? 비정형 데이터? NoSQL? 뭔데ㅠ 그래서 오늘은 기초적이지만 아직 잘 모르겠는 데이터베이스에 대해 알아보는 포스팅을 하게되었다.

🔥데이터베이스

데이터베이스는 구조화된 정보나 데이터의 집합이다. 데이터는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터를 포함하며, DBMS는 이를 효율적으로 저장, 관리, 검색할 수 있는 시스템이다. 데이터의 특성에 따라 효율적으로 관리할수있는 다양한 종류의 DBMS가 있으며, 각각의 데이터 형식과 처리 방식을 기반으로 데이터의 특성에 따라 효율적으로 관리할수있는 다양한 종류의 DBMS를 선택해야한다.

⚡데이터의 종류

🌟 정형데이터(Structured Data)

정의된 스키마에 따라 구성된 체계화된 데이터
일반적으로 관계형 데이터베이스 관리 시스템(RDBMS)에 저장되며, SQL언어를 통해 쉽게 조회, 수정, 삭제 및 관리가 가능하다.

  • 명확한 형식과 구조
  • 테이블 기반
  • 데이터 무결성: 외래 키, 기본 키 등을 통해 데이터 간의 관계를 엄격하게 유지
  • 쉬운 검색: 데이터를 검색하고 분석하기 용이

이러한 이유로 주로 정형화된 업무(고객 정보 데이터베이스,재고 관리 시스템,은행 거래 기록 등)에 사용된다.

🌟 비정형데이터(Unstructured Data)

정형화된 스키마나 모델 없이 저장되는 모든 데이터 유형
텍스트, 이미지, 오디오, 비디오 등 다양한 형태를 가지며, 크기와 유형이 규칙적이지 않기 때문에 전통적인 데이터베이스 시스템으로는 관리하기 어렵다.

  • 유연한 형식: 고정된 스키마가 없고, 다양한 형태로 존재할 수 있다.
  • 관리의 복잡성: 데이터가 일정한 형태를 갖지 않아 처리와 분석이 복잡하다.
  • 다양한 데이터 소스
  • 빅데이터와의 연관성: 빅데이터 분석에서 중요한 역할을 하며 종종 실시간 분석이 필요하다.

비정형 데이터는 텍스트 분석, 이미지 인식, 음성 인식 등의 고급 분석 기술을 사용해 분석되기도 하고, 이를 위해 자연어 처리, 머신 러닝, 딥 러닝과 같은 인공지능 기술을 활용한다.

기술이 발전함에 따라 데이터의 양은 방대해지고, 점점 복잡해지고 있으며 데이터의 중요성은 커지고있다. 디지털 혁신의 결과로 생성되는 데이터의 대부분이 비정형 데이터이며 비정형 데이터 분석을 통해 고객의 행동, 시장 동향, 위험 관리 등에 대한 인사이트를 도출할 수 있다. 이에 따라 비정형데이터와 이를 관리하는 NoSQL 데이터베이스의 중요성이 커지고 있다.

데이터베이스의 종류

데이터의 특성에 따라 효율적으로 관리할수있는 다양한 종류의 DBMS가 존재하는데, 관계형 데이터 베이스와 나머지로 나눌 수 있다.

  1. 관계형 데이터 베이스 (= SQL DB)
  2. 나머지 (= NoSQL DB)

    여기서 SQL은 관계형 데이터베이스와 상호작용 할 때 사용하는 언어다. 그래서 SQL을 사용하는 SQL DB 와 NoSQL DB로 분류된다.

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

관계형 데이터베이스는 가장 많이 사용되는 형식으로 데이터를 행(row)과 열(column)로 구성된 테이블에 저장하고, 테이블들 간의 관계를 통해 데이터를 저장하는 시스템이다. SQL(Structured Query Language)을 사용하여 데이터를 조회하고 관리한다.

장점

  • 강력한 데이터 무결성: 관계형 데이터베이스는 엄격한 데이터 무결성 규칙을 가지고 있어 데이터의 정확성과 신뢰성을 유지할 수 있다.

  • 복잡한 쿼리 처리 능력: SQL을 통해 복잡한 쿼리와 다양한 데이터 조작을 정교하게 처리할 수 있으며, 효율적인 데이터 관리와 조작이 가능하다.

관계형 데이터베이스의 예시

Oracle
Oracle사에서 제공하는 엔터프라이즈급 환경에 적합한 강력한 관계형 데이터베이스 관리 시스템. 고급 성능 최적화 기능을 제공하며, 대용량 데이터 처리에 적합하고, 대규모 분산 환경과 복잡한 엔터프라이즈 시스템에서 운용될 수 있도록 설계되었다. 강력한 보안과 플래시백 쿼리, 데이터 압축, 분할 등의 고급 기능을 지원하는 시장 부동의 1위이다. 하지만, 비싼 가격 등의 문제로 이탈 고객이 발생하고 있으며, 티맥스소프트의 티베로가 오라클 데이터베이스의 대체품으로 공공 및 기업 시장에서 주목을 받고 있다. 경쟁력 있는 가격과 더불어 오라클과의 높은 호환성을 전략적인 장점으로 내세우며, 국내에서는 '국산 소프트웨어'라는 점에서 추가적인 이점을 얻고 있습니다.

MySQL
오픈 소스 관계형 데이터베이스 관리 시스템이며, 웹 애플리케이션에 주로 사용된다. 실질적인 소유주는 오라클이다. 오픈 소스로서 무료로 사용할 수 있으며,상용 지원도 가능하다. 설치와 관리가 상대적으로 간단하다.

SQLite
서버리스, 경량의 임베디드 SQL 데이터베이스 엔진이다. 오픈소스로 설정이 필요없고, 소규모 애플리케이션, 임베디드 시스템, 임시 데이터베이스로 사용하기 적합하다.

🌟 NoSQL

(Not Only SQL 또는 No SQL)

SQLDB가 아닌 모든 데이터베이스 관리 유형, 다양한 유형이 있다.
NoSQL의 주요 데이터 모델 구조로는 Key-Value 구조, Document 구조, Graph 구조가 있다.

Key-Value 구조

가장 단순한 형태의 NoSQL 데이터베이스로, 각 항목은 딕셔너리 구조로 키와 값의 쌍으로 구성된다.키를 통해 데이터를 빠르게 조회할 수 있으며, 값은 문자열, 숫자, JSON 등 다양한 형태를 취할 수 있다.

데이터를 엄청 빠르게 쓰고, 읽어야 할 때(캐싱, 섹션관리, 실시간 분석 등) 사용하고, 대표적으로 cassandra, redis, Amazon DynamoDB 가 있다.

Document 구조

json 과 유사한 구조로 JSON, BSON, XML과 같은 반구조화된 데이터를 문서 형식으로 저장한다. 각 문서는 키-값 쌍의 집합으로 구성되며, 문서마다 다른 구조를 가질 수 있다. 유연한 데이터 모델, 복잡한 데이터 구조 표현 가능하지만, 고도의 쿼리 최적화가 필요하며, 데이터의 일관성 유지가 어려울 수 있다. 대표적으로 MongoDB, Couchbase, amazon documentDB 가 있다.

Graph 구조

데이터를 노드(node), 관계(edge), 속성(property)으로 표현하는 그래프 구조로 저장한다. 추천 엔진, facebook과 같은 소셜 네트워크를 위한 데이터 베이스에 주로 사용하며, 각각의 엔티티를 저장하고 이들을 관계망으로 연결한다.
복잡한 연결 관계와 네트워크를 효과적으로 표현하고 조회할 수 있다. 전통적인 데이터베이스에 비해 새롭게 학습해야 할 개념과 쿼리 언어가 많으며, 대용량 데이터 처리에 대한 최적화가 필요하다. 대표적으로 Neo4j, Amazon Neptune가 있다.


관계형 DB가 많이 사용되긴하지만, 데이터의 종류나 효율적인 관리를 위해 NoSQL을 사용하는 경우가 증가하고 있다. 스키마가 없기 떄문에 유연성, 확장성, 성능 측면에서 더 효과적일 수 있다. NoSQL은 데이터를 저장하기 전에 DB에서 무엇을 어떻게 얻을 것이지 미리 생각을 해야하고, SQL은 데이터의 구조에 대해 생각을 해야한다.

참고 :
1. uvictoli.log
2. 노마드 코더 Nomad Coders
3. 조코딩 JoCoding
4. neo4j

post-custom-banner

0개의 댓글