데이터베이스란, 쉽게 말하면 데이터의 집합을 의미한다. 이 조차도 이해가 안된다면 어떠한 정보들을 모아놓은 것이라고 이해할 수 있다. 그리고 우리의 할 일은 이러한 정보를 보기 편하고, 사용하기 쉽게 잘 정리해 놓는 것이다. 한편, 이렇게 데이터를 관리하는 시스템을 DBMS(Database Management System)이라고 하며 데이터베이스 관리 시스템은 관계형과 비관계형으로 나눌 수 있다.
이름 | 성별 | 나이 | 학년 | 학과 | 학점 |
김철수 | 남 | 23 | 2 | 전산 | 3.0 |
박영희 | 여 | 21 | 1 | 전산 | 3.0 |
홍길동 | 남 | 23 | 3 | 전산 | 4.2 |
대학교에 다니는 학생들 개개인에 정보(데이터)는 위와 같이 보기 쉽게 정리할 수 있다. 또한, 엑셀처럼 위 표에 색칠된 컬럼(column)에 필터가 있다면 필터링을 통해 특정 학과에 속한 학생들을 쉽게 찾아낼 수 있을 것이다.( 혹은 각각의 학생들마다 번호 순서(id)를 붙여 index를 통해 해당 값을 조회할 수 있을 것이다.)
위와 같은 꼴로 정리해놓은 것을 RDBMS(관계형 데이터베이스 관리 시스템)이라고 한다.
1. RDBMS(Relational DataBase Management System)
- 관계형 데이터베이스 관리 시스템
- 대표적으로 오라클, MySQL, Access, MsSql 등이 있다.
- 위의 예시처럼 데이터를 테이블 형태('스키마'라고 부른다)로 관리한다.
- 각 테이블끼리는 ERD 방식을 통해 관계를 형성할 수 있다.
- 장점: 단순하고 이해하기 쉬운 구조를 띈다.
( 각각의 테이블들이 담고 있는 정보는 명확하다 - 예를 들어, 위의 예시는 특정 학교의 학생들의 개인정보라고 이해할 수 있을 것이다.)
참고 : terms.naver.com/entry.nhn?docId=3431085&cid=58430&categoryId=58430
2. NoSQL(Non-Relational SQL)
- 비관계형 데이터베이스 관리 시스템
- cf) SQL(Structured Query Language) = 데이터베이스에 접근할 수 있는 데이터베이스의 하부 언어
- 대표적으로 아파치 카산드라, 하둡, 몽고DB 등이 있다.
- RDBMS와 달리 스키마가 없으며 아래 링크에서 여러 가지 NoSQL 형태에 대해 잘 설명하고 있다.
- 장점: 대규모의 데이터를 유연하게 처리할 수 있으며, 설계가 단순하고 수평 확장에 용이하다.
<RDBMS vs NoSQL>
이 둘의 차이에 대해 간단하게 설명하면 다음과 같다.
1. 위의 표에서 알 수 있듯이 RDBMS는 각 열(필드)마다 어떠한 데이터가 와야 하는지가 정해져있다. 따라서 '학과' 열 밑에 학년을 작성하면 안된다. 다르게 표현하면 각 행(레코드)은 같은 모습(데이터 구조)을 하고 있다.
한편, NoSQL은 다른 데이터 구조를 가져도 된다.
- 여기서 각각의 장단점을 느낄 수 있을 것이다.
(알아보기 쉽지만 제한적인 형태 vs 알아보기 어렵지만 유연한 형태)
2. RDBMS의 경우, 위 예시에서 학년을 학번으로 바꿔야할 경우(혹은 새로운 열을 추가할 경우) 대공사를 해야한다. 특히나 데이터가 많을수록 모든 값들을 지우거나 바꿔야하므로 수고를 해야한다. 반면, NoSQL은 형태가 자유로움으로 새로운 내용을 추가하면 된다고 이해하자.
3. RDBMS는 보기 깔끔한만큼 접근하기 쉽다. 아래의 링크에서는 "질의에서 할 수 있는 기능이 풍부하고 문법이 표준화 되어 있다"고 표현하고 있다. 실제 데이터를 이런식으로 가져오지는 않지만, 쉽게 예를들면 "2행 5열 값을 가져와줘(=경제학)"처럼 값을 가져올 수 있다.
'STUDY > etc' 카테고리의 다른 글
[개인정보보호법]개인정보처리 위탁, 수탁, 제3자 제공이란 (0) | 2021.01.11 |
---|---|
[마케팅] 디지털 인사이트 사이트 (0) | 2020.12.31 |
[BOOK] 처음부터 다시 배우는 웹기획 (0) | 2020.12.28 |
Javascript 입문 (0) | 2020.12.21 |
[BOOK] 비전공자를 위한 이해할 수 있는 IT 지식 (0) | 2020.12.16 |