1. DBMS
1.1. 데이터베이스 개요
- 데이터
- 데이터는 크게 두 가지 종류가 있음 -> 비정형 데이터(80%), 정형 데이터(20%)
- 빅데이터 자체도 관심을 가져야 하지만 빅데이터를 다룰 수 있는 기술을 공부할 것!!
- 데이터 vs 정보
- 데이터 : raw facts, no context
- 정보 : processed data, data with context
- 결국 데이터를 처리해서 의미있는 정보를 만들어내면 정보가 됨
- 우리는 현재 데이터를 다루는 것 -> SQL을 사용하여
- 데이터베이스
- 데이터베이스는 데이터를 조직화(data organized) 해줌
- 데이터베이스는 데이터를 효율적으로 처리하기 위해 존재
- DBMS
- DBMS는 데이터베이스 관리를 위해 존재 -> 데이터베이스 생성, SQL 해석, 폼이나 리포트 생성
1.2. RDBMS
- RDBMS 용어
- relation
- attribute
- tuple
- cardinality
- degree
- primary key
- RDBMS마다 serach engine이 다 다르고 성능 차이가 남
- ER 모델
- Entity와 Relation으로 구성 되어있음
- 데이터베이스 구성의 첫 단계
- Entity와 Relation의 조합으로 우리가 원하는 정보를 뽑아낼 수 있음
1.3. SQL
- Structured Query Language
- RDBMS의 데이터를 관리하기 위해 만들어진 언어 -> ISO 표준을 따름
- 구분
- DDL - Data Definition Language
- DML - Data Manipulation Language
- DCL
- SQL 형식
- 문(Statement) : SELECT문, UPDATE문 등
- 절(Clause) : FROM절, WHERE절, SET절 등
- 식(Expression) : 산술 연산, 문자열
- 술어(Predicate) :??
- 데이터 타입
- Bloolean(BOOLEAN)
- Character(CHAR, VARCHAR)
- CAHR
- 일반적으로 CHAR은 고정길이
- 이슈가 발생할 수도 있기 때문에 길이가 앞으로 절대 바뀌지 않는 곳에 쓰기
- VARCHAR
- Exact numeric(NUMERIC, DECIMAL, INTEGER, SMALLINT, BIGINT)
- 처리 가능한 숫자 범위가 다름! -> byte 범위를 넘어가면 에러가 날 수 있음
- Approximate numaric(REAL, FLOAT, DOUBLE)
- Datetime(DATE, TIME, TIMESTAMP)
- CLOB, BLOB
- 대용량의 데이터를 관리할 때 사용하는 데이터베이스
- 속성에 대한 제약조건
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
- INDEX
- TRUNCATE vs DELETE
- DELETE절에 조건을 주지 않으면 모든 튜플을 삭제
- TRUNCATE는 모든 튜플을 삭제
- 차이는 제약조건을 삭제하냐 마냐 차이임! TRUNCATE는 제약조건도 다 삭제함!
- 아래 예시에서 DELTE 한 후 튜플을 새로 넣으면 index가 6부터 시작되지만, TRUNCATE하고 새로운 튜플 넣으면 1부터 다시 시작