모든 서비스는 데이터를 만들어내고 저장을 필요로 하기 때문에 기록되어야 한다.
어떤 서비스의 운영에 필요한 데이터를 저장하는 곳.
ex ) MySQL, PostgreSQL, …
→ 관계형은 구조화된 데이터를 다룬다. (기본)
사용자에게 보이지는 않지만 실제 데이터를 저장/추가하고 사용자가 요구한 일을 수행하는 부분. 다양한 DB가 사용된다.
클라이언트 - 서버, 두 개의 tier로 구성, 비즈니스 로직
클라이언트 : 사용자의 UI, 프론트엔드
서버 : DB, 백엔드
웹 서비스에서 많이 사용된다.
프리젠테이션 티어 : 프론트엔드
애플리케이션 티어 : 백엔드 (= Application 서버), 비즈니스 로직
데이터 티어 : 백엔드 (= DB 서버)
→ DB를 잘 다룰 줄 알아야 한다.
→ 데이터 모델을 잘 만들고 공유 및 협업 필요
→ 속도 등의 성능 모니터링 및 개선 작업 필요
구조화된 데이터를 저장하고 질의할 수 있도록 해주는 저장소
엑셀 스프레드시트 형태의 테이블로 데이터 저장 및 정의 (row와 column)
이를 조작하는 프로그래밍 언어 : SQL
2단계 : 테이블 (엑셀의 시트) + 테이블로 구성된 DB라는 디렉토리 (엑셀의 파일)
테이블 스키마 = 테이블 구조
관계형 DB에 있는 데이터(테이블)를 질의하거나 조작해주는 언어
구조화된 데이터를 다루는 한 데이터 규모와 상관 없이 쓰인다.
구조화된 데이터에 최적화 → 비구조화 데이터에는 제약이 심함
SQL 만으로는 비구조화 데이터를 처리하지 못함
;
로 분리 필요--
: 한 줄자리 주석 ( == //
)/* -- */
: 여러 줄에 걸친 주석CREATE TABLE raw_data.user_session_channel (
userid int,
sessionid varchar(32) primary key,
channel varchar(32)
);
raw_data
: 넣고자 하는 폴더
user_session_channel
: 생성하려는 테이블 이름
필드 : 컬럼
DROP TABLE table_name; -- 오류 가능성
DROP TABLE IF EXISTS table_name; -- 존재하면 지워라
테이블 삭제
테이블 수정 (컬럼 추가, 이름 변경, 제거, 테이블 이름 변경 등…)
테이블에서 레코드 or 필드를 읽어오는데 사용 등…
이 외 레코드 추가/삭제/수정 언어