데이터베이스
데이터베이스는 계층형, 네트워크형, 관계형, NoSQL 등 여러 가지가 있으며, 가장 많이 사용하는 관계형 데이터베이스와 NoSQL에 대해서는 숙지하는 것이 좋다.
DBMS
DBMS는 데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어다. 데이터 베이스를 구축하는 틀을 제공하며 효율적인 데이터 탐색, 저장 기능 등을 제공한다.
DBMS의 종류
- 객체지향 DBMS : 일반적으로 사용되는 테이블 기반의 관계형 DB와 다르게 정보를 ‘객체’ 형태로 표현하는 데이터베이스 관리 시스템이다. 비정형 데이터라도 사용자가 원하는 방식에 따라 표현이 가능하다.
- 네트워크 DBMS : 각 데이터 간의 연결을 통해 네트워크처럼 복잡한 그물 형태로 데이터를 관리하는 데이터베이스 관리 시스템이다. 계층형 DBMS의 중복 문제를 해결했으나 복잡한 구조로 인해 구조 변경에 많은 어려움이 발생한다는 단점이 있다.
- 계층형 DBMS : 데이터가 부모 자식 형태를 갖도록 관계를 맺어 관리하는 데이터베이스 관리 시스템으로서 데이터 중복 문제가 발생하기 쉬운 단점이 있다.
- 분산형 DBMS : 분산된 여러 개의 데이터베이스를 하나의 데이터베이스로 인식하고 사용할 수 있는 데이터베이스 관리 시스템이다.
RDB와 NoSQL
관계형 데이터베이스(RDB)
- 데이터를 행과 열로 이뤄진 테이블에 저장한다.
- 하나의 열은 하나의 속성을 나타내고 같은 속성의 값만 가질 수 있다.
- 데이터 저장 방식은 구조적으로는 엑셀 파일과 유사하며 정형 데이터를 다루는 데 특화되어 있다.
- Oracle, MySQL, MS-SQL(Mircrosoft), DB2, MariaDB, Derby, SQLite(오픈소스)
NoSQL
- NoSQL은 Not only SQL, Non SQL, Non-relational의 의미를 가진다.
- 관계형이 아닌 비관계형을 의미하는 단어에서 생성된 명칭이다.
- NoSQL은 SQL이 필요없다는 뜻이 아니라 기존 RDB의 SQL을 보완 및 개선한 비관계형 DB라는 의미를 담고 있다.
- 비정형 데이터와 대용량의 데이터 분석 및 분산처리에 용이하다.
데이터 웨어하우스와 ETL
- 데이터 웨어하우스(Data Warehouse) : 방대한 조직 내에서 분산 운영되는 각각의 데이터 베이스 관리 시스템들을 효율적으로 통합하여 조정, 관리하는 역할을 하여 효율적인 의사 결정 시스템을 위한 기초를 제공하는 실무적 활용 방법론이 제공되고 있다

- ETL (Extract, Transform, Load) : 데이터 웨어하우스 구축 시 데이터를 운영 시스템에서 추출하여 가공(변환, 정제)한 후 데이터 웨어하우스(DW)에 적재하는 과정을 말한다.
SQL의 이해
SQL이란?
Structured Query Language의 약자로 데이터베이스에 접근할 수 있는 데이터베이스의 하부 언어이다.
SQL의 분류

DDL(데이터 정의어), DML(데이터 조작어), DCL(데이터 제어어), TCL(트랜젝션 제어 언어)
SQL 집계함수
avg, count, sum, min, max
STDDEV : 지정한 열의 분산을 반환 (수치형만 집계 가능)