072DATA

관계형 데이터베이스와 비관계형 데이터베이스 본문

FrontEnd/HTML, CSS, JavaScript

관계형 데이터베이스와 비관계형 데이터베이스

0720 2024. 7. 18. 19:14

APPETIZER 

 

 

 

이번엔 관계형 데이터베이스비관계형 데이터베이스의 차이점을 알아 볼거야..

 

시작하기에 앞서 내가 둘의 차이를 제대로 이해하지 못했을 때

 

서로의 차이점은 중요한 것과 그렇게 별로 중요하지 않은 것

 

이라고 생각하였는데 저어어어언혀 아니더라고 현재 공부중인 캠프의 이OO 튜터님께서 말씀하셨어.

 

" 세상에 중요하지 않은 데이터(혹은 데이터베이스)는 없다. "

 

튜터님의 말처럼 중요하지 않은 데이터는 없는데 나는 뭔가 비 관계형의 특징으로서

 

여러가지 데이터를 다룰 때 유리한 점에 있어서 뭔가 가볍게만 생각한 것 같아.

 

자 그러면 둘의 특징과 차이점을 한 번 같이 알아보자 !

 

 

 

 

DB? 데이터베이스?

 

 

 

데이터베이스란 무엇일까!

 

데이터가 저장된 곳? 데이터를 기록하는 곳?

 

전부 다 맞고 정말 데이터저장하고 조회하고 삭제하고 수정할 수 있는 공간을

 

데이터베이스라고 해 줄여서 DB라고 하는거지

 

데이터베이스안에는 전자적인 모든 것들이 담겨질 수 있어

 

예를 들어서 한 사람의 대한 정보라던가, 물체의 대한 특징들, 혹은 누군가가 

 

사이트를 회원가입하고 로그인한 시간 등

 

무엇이든 데이터베이스에는 저장될 수 있다는거지. 

 

한마디로 데이터베이스는 정보를 저장하는 프로그램이야

 

자 그럼 데이터베이스에 대해서 알아봤으니 관계형 데이터베이스는 무엇인지 알아보자.

 

 

 

관계형 데이터베이스

 

 

 

SQL 데이터베이스의 로고

 

 

 

정형화된 데이터를 다루며 데이터 간의 관계를 명확하게

정의하고 관리할 수 있는 데이터베이스 시스템 

 

 

정형화된 데이터라는 것은 행과 열의 형태를 가진 데이터를 의미하고

 

정리된 정보를 사용할 때 더 효과적으로 사용할 수 있지

 

데이터 간의 관계의 예시로는 쇼핑몰 회원 정보 테이블과 구매된 상품에 대한 테이블에서

 

회원의 이름(혹은 ID)과 구매 된 상품의 구매자 이름(혹은 ID)이 일치 할 때

 

관계형 데이터베이스를 사용한다면 더욱 수월하게 데이터를 관리할 수 있을 거야

 

보통 은행, 대기업 등에서 관계형 데이터베이스를 사용해

 

 

 

SQL 데이터베이스는 SQL문을 사용하는 관계형 데이터베이스를 가리키고

 

MySQL, PostgreSQL, Oracle Database 등이 SQL을 사용하는 관계형 DB라고 볼 수 있어.

 

 

 

 

비관계형 데이터베이스

 

 

 

NOSQL 데이터베이스의 로고

 

 

 

 

비관계형 데이터베이스는 데이터의 구조가 유연하고 확장성이 뛰어나며,

다양한 데이터 형식을 지원하여 많은 양의 데이터를 효율적으로 관리할 수 있어.

 

 

 

구조가 유연하다는 것은 각 데이터 항목마다 다른 속성을 가질 수 있고, *스키마 가 고정되어 있지 않다는 뜻이야.

(* 스키마(Schema)는 데이터베이스에서 데이터 구조를 정의하고 구성하는 데 사용되는 개념이야)

 

또 다양한 데이터 형식을 지원한다는 것은 텍스트, 문서, 그래프 데이터 등 다양한 형태를 의미해

 

따라서 구조가 유연하고 확장성이 뛰어나며 대규모 데이터를 빠르게 처리하고 분석하는 데 유리하쥐

 

특히 웹 애플리케이션 로그, 소셜 미디어 데이터, 실시간 센서 데이터 등을 다루는 데 적합하다고 알려져 있어.

 

비관계형 데이터베이스 종류로는 정말 다양한데

 

 

 

 

Key-Value Store - 간단한 구조로 키와 값을 쌍으로 저장해 데이터 접근이 매우 빠르고 단순한 데이터 구조에 적합하다.

 

Document Store -  JSON 또는 BSON 형식의 문서를 저장하며,  유연한 스키마가 특징이다.


Wide-Column Store - 행에 대해 다양한 수의 열을 가질 수 있는 데이터 모델을 사용하고, 대규모 데이터의 저장과 분석에 적합하며, 높은 가용성과 확장성을 제공한다.

 

Graph Database - 노드(Node)와 간선(Edge)으로 표현되는 복잡한 관계를 저장하고 쿼리하는 데 특화된 데이터베이스이며, 복잡한 관계 데이터를 직관적으로 모델링할 수 있다.

 

 

 

 

이렇게 비관계형 데이터베이스는 특정한 데이터 구조와 사용에 맞춰 설계 되어 있어서 데이터의 저장 및 처리 방식에

 

차이가 있어 여러가지 조건들을 고려하여 적절한 데이터베이스를 선택하면 보다 효율적으로 데이터를 관리할 수 있을거야

 

 

 

 

차이점 ( 각 데이터베이스의 한줄 요약?)

 

선택의 기로

 

 

관계형 데이터베이스는 구조화된 데이터를 엄격하게 관리하고 *트랜잭션 처리를 지원하는 데 강점을 가지며,

(*트랜잭션은 데이터베이스에서 여러 작업을 하나로 묶어서 처리하는 단위라고 생각하면 돼)

 

비관계형 데이터베이스는 유연한 데이터 모델과 대규모 데이터의 처리와 확장성을 지원하는 데 강점을 갖고 있어.

 

따라서 둘다 엄청나게 중요한 데이터를 더 효율적으로 다루기 위해서 설계를 다르게 한거지

 

또 무조건 관계형 데이터베이스를 써야하거나 비관계형 데이터베이스를 써야하지는 않아 

 

그저 선택지일 뿐이며 개발자의 선택에 의해서 결정될 뿐이야.

 

 

 

 

느낀점

 

오늘은 나한테 관계형과 비관계형 데이터베이스를 알려주는 느낌으로 말투 컨셉을 잡아봤는데

다 작성하고나서 검토해보니 뭔가 오글거려서 조금 쪽팔린다. 웬만하면 이 글은 보지 않았으면 좋겠다.

 

 

오늘은 관계형과 비관계형 데이터베이스에 대해서 알아봤는데 본문에서 말했다시피 

 

나는 SQL은 중요한 데이터, NOSQL은 중요하지 않은 데이터 이런식으로 생각했기 때문에

 

그 상태로 누군가가 나한테 물어봤다면 정말 부끄러운 흑역사를 생성할 뻔 했을 것이다 ( 이미 튜터님에겐 들켰지만 )

 

그래서 오늘의 수모를 다시는 잊어 먹지 않기 위해 꽤 시간을 들여서 정리를 했다......................

 

예전엔 코드만 올려놓고 무슨 무슨 코드이다 이렇게 정리했는데

 

막히는 문제가 있거나 내가 공부한 내용을 기록하거나 더 자세히 알고 싶은 내용들을 정리하여 

 

남겨두는 과정은 생각보다 많은 지식을 습득하게 되는 것 같다고 느낀다.

 

해당 글에 내용은 내가 원래 알고 있던 지식뿐만이 아닌 당연히 검색 및 GPT

 

그리고 튜터님까지 다양한 객체로부터 얻어온 지식들이었고 그것들을 한 곳에 모아

 

내 색깔대로 정리하다 보면 결국 100퍼센트 완벽하게 이해할 수도 있지 않을까 하고 생각했다.

 

 

참조 링크

 

참조 - https://aws.amazon.com/ko/compare/the-difference-between-relational-and-non-relational-databases/

 

관계형 데이터베이스와 비관계형 데이터베이스 - 데이터베이스 유형 간의 차이점 - AWS

관계형 데이터베이스와 비관계형 데이터베이스의 차이점은 무엇인가요? 관계형 데이터베이스와 비관계형 데이터베이스는 애플리케이션을 위한 두 가지 데이터 저장 방법입니다. 관계형 데이

aws.amazon.com

참조 - https://chatgpt.com/

 

그리고 튜터님들