[개념 콕] RDB, RDBMS, NoSQL

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
May 29, 2024
[개념 콕] RDB, RDBMS, NoSQL
✍🏼
개발을 시작하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 

데이터베이스란?

데이터베이스(Data Base, DB)란 여러 사람들이 공유하고 사용할 목적으로, 컴퓨터, 서버 또는 클라우드에 디지털 방식으로 저장하고 관리되는 데이터들의 모임입니다.
 
 

RDB (Relation Database)

관계형 데이터베이스’라고 불리는 데이터 모델마다 관계(Relation)로 연결되어 있는 데이터베이스입니다. 회원정보나 서비스 이용 기록 등 정보 타입에 따라 정보가 입력되거나, 기록이 추가되는 방식입니다. 복잡한 계산 없이 각각의 데이터가 어디로 들어가야할지 미리 정해져 있는 것이죠. 입력되는 정보가 숫자인지, 텍스트인지 미리 정해둘 수 있어서 효율적으로 DB를 설계할 수 있습니다.
 

RDB 용어

  • 테이블(table) : 로우와 컬럼으로 구조화 된 데이터 목록
  • 컬럼(column) : 각 항목의 속성
  • 로우(row) : 하나의 항목을 대표하는 데이터
예시 테이블(table): 학생들의 정보를 모은 목록 로우(row): 한 명의 학생 정보 ex)'홍길동, 20, 컴퓨터공학과' 컬럼(column): 학생 테이블의 속성 ex)'이름', '나이', '학과'
 

RDB의 장단점

장점
  • 명확한 스키마와 데이터 무결성: 모든 데이터 형식이 일관되게 유지
  • 데이터 중복 최소화: 동일한 데이터를 여러 번 저장하지 않아 저장 공간을 절약
단점
  • 유연성 부족: 처음에 정한 테이블 구조를 변경하는 것이 어려움
  • 복잡한 쿼리: 여러 테이블에서 데이터를 가져와야 할 때, 복잡한 쿼리가 필요할 수 있음
  • 수직적 확장만 가능: 데이터가 많아질 때 더 큰 서버가 필요할 수 있어 수평적 확장보다 비용이 많이 들 수 있음
 
 

RDBMS (Relational Database Management System)

RDBMS는 관계형 데이터베이스를 생성, 수정, 관리할 수 있는 소프트웨어입니다. 예를 들어 학생 정보를 추가하거나 수정하고, 특정 학과 학생을 검색 등의 작업을 할 수 있습니다.
 

RDBMS 종류

ORACLE, MySQL, SQL Server, MariaDB 등이 있으며, 데이터를 2차원 테이블 형식으로 관리하는 방식입니다.
 

ERD(Entity Relationship Diagram)

ERD는 데이터베이스를 설계할 때 사용되는 다이어그램으로, 데이터베이스의 논리적 구조를 시각적으로 표현하는 도구입니다. 예를 들어 학생 테이블과 수업 테이블이 어떤 관계를 가지는지 시각적으로 표현합니다.
ERD는 엔터티(Entity) 간의 관계를 명확히 정의하는데 사용됩니다. ERD에서 정의된 엔터티는 RDBMS 내의 테이블로 변환되며, 각 엔터티의 속성은 테이블의 열(컬럼)이 되고, 엔터티 간의 관계는 외래 키(Foreign Key)를 통해 구현됩니다. 예를 들어 일대다(1:N) 관계나 다대다(N:M) 관계를 ERD에서 정의하고 이를 RDBMS에서 외래 키 제약 조건을 통해 구현합니다.
 
 

No SQL (Not Only SQL)

NoSQL은 '비관계형 데이터베이스'라고도 불리며, 관계형 데이터베이스와는 다른 방식으로 데이터를 저장합니다. 주로 대용량의 소셜 미디어 데이터를 빠르게 처리하는 데 사용됩니다.
 

대표적인 데이터베이스

  • Redis
    • Key-Value Database '사용자123: "홍길동"'처럼 키-값 쌍으로 데이터를 저장합니다.
    • 빠른 조회 속도 자주 조회되는 데이터를 빠르게 불러올 수 있습니다.
    • TTL(Time To Live) 시간 만료 설정 기능으로 로그인 세션 같은 데이터는 일정 시간 후 자동으로 삭제
  • MongoDB
    • Key-Document: '사용자123: {이름: "홍길동", 나이: 20, 학과: "컴퓨터공학과"}'처럼 객체와 유사한 형태로 데이터를 저장
    • JSON 형태 출력: 조회 결과를 JSON이나 XML 형태로 받을 수 있어, 웹 애플리케이션과의 연동이 용이
 

NoSQL 장단점

장점
  • 유연한 스키마: 처음부터 정해진 구조 없이 데이터를 저장할 수 있어, 나중에 필드를 추가하거나 변경하기 쉬움
  • 빠른 데이터 읽기 속도: 애플리케이션에서 필요한 형식으로 데이터를 저장하므로, 읽기 속도가 빠름
  • 수평 확장 가능: 서버를 여러 대 추가하여 데이터베이스의 용량과 처리 성능을 확장할 수 있음
단점
  • 구조적 유연성의 한계: 데이터 구조 결정을 미루면 나중에 복잡한 문제가 발생할 수 있음
  • 데이터 중복 관리의 어려움: 여러 곳에 중복된 데이터를 저장해야 하므로, 업데이트할 때 번거로움
  • 복잡한 수정 작업: 여러 컬렉션에 중복된 데이터를 수정할 때, 모든 컬렉션에서 일관되게 수정 작업을 해야 함(RDBMS에서는 한 번만 수정)
 
 
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
 
CREDIT
글 | 이지선 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
Share article
Subscribe to our newsletter
RSSPowered by inblog