데이터베이스가 왜 필요한가?
- In-memory : 끄면 데이터가 없어짐
- File I/O : 원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요
- Database : 필터링 외에도 File I/O 로 구현이 힘든 관리를 위한 여러 기능들을 가지고있는 데이터에 특화된 서버
엑셀을 사용하지 않고 굳이 데이터베이스를 쓰는 이유는 무엇일까?
- In - Memory
자바스크립트에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있습니다.
자바스크립트에서 변수를 만들어 저장한 경우, 그 프로그램이 종료될 때 해당 프로그램이 사용하던 데이터도 사라집니다.
이 말인 즉, 변수 등에 저장한 데이터가 프로그램의 실행에 의존한다는 말입니다.
예기치 못한 상황으로부터 데이터를 보호할 수 없고, 프로그램이 종료된 상태라면 원할 때 받아올 수 없으며,
데이터의 수명이 프로그램의 수명에 의존하게 됩니다.
- File I/O
엑셀 시트, CSV 같은 파일 형태는 한계가 존재합니다.
- 데이터가 필요할 때마다 매번 전체 파일을 읽어야 합니다. 그래서 파일이 커질수록 작업은 버거움
- 파일이 손상되거나 여러 파일을 동시에 다뤄야하는 등 복잡한 데이터량이 많을 수록 데이터 불러들이는 작업이 힘들어짐
반면, RDBMS 에서는 하나의 CSV 파일이나 하나의 엑셀 시트를 한 개의 테이블로 저장할 수 있습니다.
한번에 여러 개의 테이블을 가질 수 있기 때문에 SQL 을 활용해 데이터를 불러오기 수월합니다.
SQL
Structured Query Language 의 줄임말로, 주로 관계형 데이터베이스에서 사용합니다.
SQL 을 사용하기 위해선 데이터의 구조가 고정되어 있어야합니다.
MySQL, Oracle, PostgreSQL 등 다양한 데이터베이스에서 SQL 구문 사용 가능합니다.
NoSQL 은 데이터베이스와 달리 데이터의 구조가 고정되어 있지 않은 데이터베이스 입니다.
관계형 데이터베이스와 달리 테이블을 사용하지 않고, 다른 형태로 저장하며, MongoDB 와 같은 문서 지향 데이터베이스입니다.
쿼리란 ?
검색을 할 때 입력하는 검색어가 일종의 쿼리입니다.
기존에 존재하는 데이터를 검색어로 필터링합니다. 따라서 쿼리는 저장되어 있는 데이터를 필터하기 위한 질의문으로 볼 수 있습니다.
주로 사용하는 데이터베이스 언어
1. 데이터베이스 생성
CREATE DATABASE 데이터베이스 명;
2. 데이터베이스 사용
USE 데이터베이스 명;
3. 테이블 정보 확인
DESCRIBE user;
SQL 명령어 간략히 보기
1. SELECT : 데이터 셋에 포함될 특성을 특정
2. FROM : 뒤에 도출해낼 데이터베이스 테이블을 명시
3. WHERE : 필터 역할
4. ORDER BY : 데이터를 어떤 기준으로 정렬하여 출력할지 결정
5. LIMIT : 출력할 데이터의 개수
6. DISTINCT : 유니크한 값을 받고 싶은 경우 사용
7. INNER JOIN : 둘 이상의 테이블의 공통된 부분을 기준으로 연결