[DE] RDB, RDBMS

garam·2021년 9월 15일
0

RDB ( Relational DataBase )

RDB(Relational DataBase)란 관계형 데이터 모델에 기초를 둔 데이터베이스로 모든 데이터를 2차원의 테이블 형태로 표현합니다. 흔히 볼 수 있는 예시로는 엑셀이 있습니다.

  • 모든 데이터를 2차원 테이블로 표현합니다.
  • 테이블은 row( record, tuple )과 column( filed, item )으로 이뤄져 있습니다.
  • 상호 관련성을 가진 테이블( Entity )들의 집합입니다. ( Entity Relationship )
  • 만들거나 이용하기 쉽고, 무엇보다 확장이 용이하다는 장점이 있습니다.

위 그림에서 각 행을 record라고 합니다. 각 record들은 여러 조각의 정보로 이뤄집니다.

모든 정보를 모아 하나의 테이블로 표현할 수도 있지만, 그렇게되면 불필요한 정보의 중복이 많아져 용량낭비나 수정/삭제 시 많은 작업이 필요합니다. 데이터가 중복되지 않도록 여러 테이블로 나누되 id값을 주는 식으로 서로 관계를 맺어줌으로써 이런 문제를 해결할 수 있습니다.

RDBMS ( RDB Management System )

RDB의 record들을 삽입( insert ), 탐색( select ), 수정( update ), 삭제( delete )할 수 있도록 해주는 소프트웨어를 RDBMS라고 합니다. 대부분 SQL( Structured Query Language )를 지원합니다. SQL을 이용하여 여러 개의 테이블을 조합해 원하는 데이터를 찾아올 수 있습니다. 보통 테이블 한 개로 답을 얻을 수 없는 상황에서 관계성을 이용해 더 복잡한 query를 요청, 실행할 수 있습니다.

주로 사용하는 DBMS는 MySQL( MariaDB ), SQLite등이 있습니다. RDBMS와 주로 비교되는 개념으로 NoSQL이 있습니다.

NoSQL

NoSQL은 주로 비관계형 데이터베이스를 지칭합니다. 하지만 관계형 데이터베이스( RDB )를 저장하지 못하는것은 아닙니다. 방식은 다르지만 NoSQL에도 관계 데이터를 저장할 수 있습니다. 예를들면, 엑셀의 각 행을 txt파일로 만들어 여러개의 txt파일로 저장하는 식입니다. 하지만 이런식으로 하면 구조화되어있지 않다는 단점이 있습니다.

NoSQL은 2000년대 말, Storage 비용이 크게 하락하면서 등장했습니다. 또한, 정형 데이터 뿐만아니라 반정형, 비정형 데이터들의 수도 증가했기 때문에 이런 다양한 데이터들의 스키마를 미리 정의하는 것이 거의 불가능해졌습니다. NoSQL 데이터베이스는 많은 양의 비정형 데이터를 저장할 수 있도록 지원합니다.

NoSQL DB에도 종류가 여러가지가 있지만 주로 NoSQL로 묶어서 부릅니다. 마치 한국 외의 나라를 외국이라고 부르지만 외국도 아시아, 아프리카, 유럽 등으로 묶을 수 있는 것과 유사합니다.

참고 사이트
https://jwprogramming.tistory.com/52
https://www.mongodb.com/ko-kr/nosql-explained

profile
hello world :)

0개의 댓글