데이터베이스란?
데이터를 영속적으로 저장하기 위한 도구 : 데이터베이스
- 여러 명이 동시에 읽고, 쓸 수 있으며
- 모든 데이터를 전부 메모리로 불러오지 않아도 되며
- 보다 구조적으로 저장할 수 있으며
- 데이터 접근의 관리와 통제가 용이함
→ 인-메모리와 단순 파일 입/출력 보다 데이터베이스가 데이터 보호, 작업속도, 확장성 등 좋은 점이 많다.
RDBMS vs. NoSQL
- RDBMS - 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입 가능. SQL을 사용하여 원하는 정보를 쿼리할 수 있어서 스키마가 뚜렷하게 보인다. → 테이블 간의 관계를 직관적으로 파악 가능. 수직적 확장으로 많은 비용과 시간이 소모됨.
- 데이터베이스의 ACID를 준수해야하는 경우
- 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우
- NoSQL - 데이터가 고정되어 있지 않은 데이터베이스(Key-Value타입, 문서형 데이터베이스 등). 읽어 올 때만 데이터 스키마가 사용된다고 하여 데이터를 입력할 때 정해진 방식이 없다는 것은 아님. 데이터 그룹 자체를 조회하는 것에 초점을 둠. 수평적 확장으로 수직적 확장보다 유리함.
- 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
- 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
- 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우
⇒ 둘 중 선택에 있어서 정답은 없고 각각의 서비스나 비즈니스 로직에 따라 적절한 데이터베이스를 선택하는 것이 중요.
SQL
Structured Query Language
기본 문법 정리 : https://velog.io/@zzaoman/SQL-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC
SQL 연습 사이트 : https://www.w3schools.com/sql/default.asp