본문 바로가기
SQL

DBMS

by csue 2021. 4. 27.

What is DBMS?

데이터베이스를 효율적으로 관리하는 소프트웨어를 DBMS Database Management system 이라고 한다.

데이터베이스란 컴퓨터시스템에 전자방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미한다. 특정 기업이나 조직 또는 개인이 필요한 데이터를 일정한 형태로 저장해 놓은 것을 의미하기도 한다.

어플리케이션에서는 데이터가 메모리 상에서 존재한다. 메모리에 존재하는 데이터는 보존이 되지 않기 때문에, 어플리케이션이 종료되면 메모리에 있던 데이터들을 다시 읽어들일 수 없다. 따라서 데이터를 오랜기간 동안 저장 및 보존하고, 모두가 접근할 수 있게 하기 위해 데이터 베이스를 사용하는 것이다. 데이터베이스는 보통 데이터 베이스 관리 시스템(DBMS) 에 의해 제어되고 데이터베이스에 저장된 데이터를 메모리가 읽어서 가공한다.

보다 더 효율적인 데이터 쿼리 작업을 위해 데이터는 일반적으로 일련의 표(table) 안에 행과 열로 모델링되며, 대부분의 데이터베이스는 데이터 작성 및 쿼리 작업에 구조화 질의 언어인 SQL(Structured Query Lauguage) 을 사용한다.

DBMS 의 종류

데이터베이스에는 관계형 데이터베이스, 객체지향형 데이터 베이스, 분산 데이터 베이스, NoSQL 데이터 베이스 등의 종류가 있다.

관계형 데이터베이스 RDBMS

관계대수에서 착안되어 만들어진 데이터베이스이다. 행/열 로 이루어진 표 형식의 데이터이다.

객체 지향 데이터 베이스

java 나 C++ 와 같이 object 를 중심으로 프로그래밍하는 데이터베이스를 말한다.

XML 데이터 베이스

XML 형식의 데이터베이스. html 태그 처럼 <data> 데이터 </data> 형식으로 표현한다. sql 명령을 사용할 수 없으며, XQuery 라는 전용 명령어를 사용한다.

키-밸류 스토어 KVS

키와 그에 대응하는 밸류로 조합된 데이터베이스. NoSQL(Not only SQL) 이라는 슬로건에서 비롯되어 생겨난 데이터베이스이다. 열 지향 데이터베이스라고도 한다.

What is SQL?

RDBMS 와의 대화에 필요한 언어이다.

What is NoSQL?

비관계형 타입의 데이터를 저장할때 주로 사용되는 데이터베이스 시스템을 NoSQL 이라고 한다.
MongoDB, Redis, Cassandra 등이 가장 대표적인 NoSQL 데이터 베이스이다.

SQL vs NoSQL

SQL

장점

  1. 관계형 데이터베이스는 데이터를 더 효율적으로 그리고 체계적으로 저장할 수 있고 관리 할 수 있다.
  2. 미리 저장하는 데이터들의 구조(테이블 스키마)를 정의 함으로 데이터의 완전성을 보장할 수 있다.
  3. 트랜잭션(transaction)

단점

  1. 테이블을 미리 정의해야 하므로 테이블 구조 변화 등에 덜 유연하다.
  2. 테이블 구조가 미리 정의 되어 있다보니 단순히 서버를 늘리는것 만으로 확장하기가 쉽지 않고 서버의 성능 자체도 높여야 한다. 서버를 늘려서 분산 저장 하는것도 쉽지 않으며, 보통 Scale up (서버의 성능을 높이는것) 으로 확장한다.
  3. 정형화된 데이터들 그리고 데이터의 완전성이 중요한 데이터들을 저장하는데 유리하다. 예로, 전자상거래 정보, 은행 계좌 정보, 거래 정보 등이 있다.

NoSQL

장점

  1. 테이터 구조를 미리 정의하지 않아도 되므로 저장하는 데이터의 구조 변화에 유연하다.
  2. 확장하기가 비교적 쉽고 (그냥 서버 수를 늘리면 된다 = scale out) 데이터의 구조도 유연하다 보니 방대한 양의 데이터를 저장하는데 유리하다.단점
  3. 데이터의 완전성이 비교적 덜 보장된다.
  4. 트랜잭션이 안되거나 비교적 불안정하다.
  5. 주로 로그 데이터와 같이 비정형화된 데이터나 완전성이 상대적으로 덜 유리한 데이터를 저장하는데 유리하다.

SQL 명령의 종류

SQL 명령의 종류는 크게 다음과 같이 3가지로 나뉜다.

DML

Data manipulation Language. 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등의 데이터를 조작하기 위해 사용된다. SQL 의 가장 기본이 되는 명령set 이다.

SELECT, INSERT, DELETE, UPDATE

DDL

Data Definition Language. 데이터베이스 객체를 만들거나 삭제하는 명령어이다.

CREATE, ALTER, DROP

DCL

Data Control Language. 데이터베이스 시스템 관리를 위한 목적으로, 트랜잭션이나 데이터 접근 권한을 제어하는 명령이 포함되어 있다.

COMMIT, ROLLBACK, GRANT, REVOKE

'SQL' 카테고리의 다른 글

db index & view  (0) 2021.04.27
데이터베이스 객체의 생성과 삭제  (0) 2021.04.27
집계와 서브쿼리  (0) 2021.04.27
데이터 추가 / 삭제 / 갱신  (0) 2021.04.27
데이터 검색 / 정렬 / 연산  (0) 2021.04.27