본문 바로가기
DB

[DB] 데이터베이스(DataBase)의 개요 - DBMS, SQL, NoSQL

by kKkKkKWJ 2024. 7. 10.

*작성자는 공부 중인 학생으로 잘못 된 정보가 있을 수 있음을 알려드립니다.

 

개발을 하다보면 데이터의 저장공간이 필요함을 느꼈을 것이다.

데이터를 예전에는 파일에 저장하고 파일 자체를 주고 받았었는데,

 

정보의 불일치를 줄이고 동시에 데이터에 접근할 수 있게 하기 위해서

데이터베이스라는 개념이 등장하였다.

 

우리는 데이터베이스를 관리하기 위해서

MySQL이라는 DBMS를 사용할 예정인데

DB, DBMS, SQL, NoSQL까지 다양한 개념을 쉽게 이해해보자.

 

1. 데이터베이스(DataBase)

데이터의 저장 공간이며, 이 저장 공간을 여러 명의 사용자가 공유하고 동시에 접근할 수 있다.

 

데이터베이스는 몇가지 중요한 특성을 가진다.

1 ) 무결성

제약 조건이라는 특성을 이용하여

데이터에 오류를 최소화하고, 데이터의 정확성과 일관성을 유지한다.

 

2 ) 독립성

데이터베이스의 크기를 변경하거나 저장소를 변경하더라도

기존에 작성된 응용 프로그램은 영향을 받지 않아야 한다.

 

3 ) 보안

데이터베이스에 접근이 허가된 사람만 접근할 수 있으며,

사용자에 따라 다른 권한을 가지게 하여 보안을 유지한다.

💬 TIP
- DBMS를 설치할 때 기본 Port 번호를 변경하고, 외부 계정의 접근을 차단하여 보안을 강화할 수 있따.
- NIA 웹사이트에서 해킹, 보안, 웹 접근성에 대한 자료를 얻을 수 있으며, 이를 통해 최신 보안 동향, 해킹 방지 방법, 웹 접근성 개선 방법 등을 배울 수 있다.

 

4 ) 안정성

DBMS가 제공하는 백업/복원 기능을 이용하여 데이터에 문제가 발생할 경우 되돌릴 수 있다.

 

5 ) 응용 프로그램 제작 및 수정 용이

DataBase와 상호작용을 도와주는 라이브러리인 JDBC를 사용하여 유지보수가 쉽다.

 

2. DBMS(DataBase Management System)

데이터베이스를 관리하는 역할을 하는 소프트웨어이다.

DBMS를 통해서 데이터베이스를 생성, 삭제, 수정할 수 있다.

 

DBMS의 4대 조건으로 다음과 같은 것들이 있다.

1 ) 실시간 접근성 : 실시간 접근이 가능해야 한다.

2 ) 계속적인 변화 : 항상 최근의 정확한 데이터로 변화해야 한다.

3 ) 동시 공유 : 여러 사용자가 동시에 공유할 수 있어야 한다.

4 ) 내용에 의한 참조 : 참조시 주소 등의 위치가 아닌 내용으로 참조해야 한다.

 

3. RDBMS(Relational DBMS, 관계형 데이터베이스 관리 시스템)

DB에 데이터를 어떠한 방식으로 저장하느냐에 따라

계층형, 망형, 관계형 등으로 나눌 수 있다.

 

이 중 가장 많이 사용하는 것이 관계형 데이터베이스인데 이를

RDB(Relational DataBase System)이라고 한다.

 

관계형 DBMS(RDBMS)

데이터를 RDB형태로 저장하는 데이터베이스 시스템으로

데이터를 각 용도에 맞게 테이블 형식으로 저장고,

테이블 간의 관계를 정의하는 시스템이다.

 

계층형, 망형 등의 데이터베이스는 크게 중요하지 않기 때문에

넘어가도록 하겠다.

 

4. SQL(Structured Query Language)

관계형 데이터베이스에서 데이터를 관리하고 조작하기 위해서 개발된 언어이다.

 

SQL은 정형 데이터를 관리하는데,

정형 데이터란 고정된 형식과 구조를 가진 데이터를 말한다.

 

SQL의 목적은 정형 데이터를 안전하게 저장하고

무결성을 유지하는 것이다.

 

SQL을 사용하는 주요 DBMS는

MySQL, MariaDB, Oracle Database, Microsoft SQL Server가 있다.

 

5. NoSQL(Not Only SQL)

SQL은 비정형/반정형 데이터를 다루지 못한다는

한계를 보완하기 위해서 등장한 데이터베이스 관리 시스템이 NoSQL이다.

 

비정형 데이터와 반정형 데이터에 대해서 조금 더 설명하자면,

 

💬 비정형 데이터

 - 고정된 구조가 없고 크기가 크다.

 - 이미지, 동영상, 오디오, 텍스트 등

 

💬 반정형 데이터

 - 고정된 구조가 없지만 태그나 메타데이터를 통해 일부 구조를 가진다.

 - JSON, XML, YAML, 이메일 등

 - 외부에서 데이터를 가져오는 경우 데이터가 이미 일정한 구조를 가지고 있다.

 

NoSQL의 목적은 비정형 데이터를 저장하거나 대규모 데이터를 빠르게 처리하기 위함이다.

그래서 대규모 데이터 처리, 분산 시스템, 비정형/반정형 데이터 관리에 사용된다.

 

NoSQL을 사용하는 주요 DBMS는

MongoDB, Cassandra, Redis, Neo4j가 있다.

 

Point

SQL은 안전과 무결성, NoSQL은 빠른 처리로 목적성 자체가 다르기 때문에

서로 대체되거나 대체할 수 없다.


 

RDBMS, SQL, NoSQL의 관계에 대해서

생각보다 이해가 쉽지 않을 수 있다.

(작성자도 이해하기 쉽지 않았음)

 

요약하자면 아래와 같다.

(1) 데이터베이스를 관계형 구조로 정리한 것이 RDBMS이다.

(2) RDBMS를 관리하기 위해 SQL이라는 언어가 등장하였다.

(3) SQL은 정형 데이터를 저장하며, 비정형/반정형 데이터는 저장할 수 없다.

(4) 비정형/반정형 데이터를 저장하기 위해 NoSQL이 등장하였다.

'DB' 카테고리의 다른 글

[DB] 데이터가 데이터베이스(DB)에 저장되는 과정  (0) 2024.07.10