Database : 데이터를 저장 및 보존하는 시스템
어플리케이션에서는 데이터가 메모리 상에서 존재하는데, 메모리나 브라우저에 저장된 데이터는 보존이 되지 않는다. 이러한 휘발성 때문에 해당 어플리케이션이 종료된 후에는 다시 데이터를 읽어들일 수 없다.
데이터를 장기간 저장 및 보존하기 위해서 데이터베이스를 사용한다. 일반적으로 데이터베이스에는 관계형 데이터베이스(RDBMS)와 "NoSQL"로 명칭되는 비관계형(Non-relational) 데이터베이스가 있다.
Relation DataBase Management System
관계형 모델에 기초를 둔 데이터베이스 시스템.
ex) MySQL, Postgres, Oracle DB
관계형 데이터란 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다. 이 데이터 베이스는 엑셀처럼 테이블로 구성되어있다.
각각의 테이블은 컬럼(column)과 로우(row)로 구성된다.
각각의 테이블들은 서로 상호관련성을 가지고 서로 연결될 수 있다.
테이블과 테이블은 Foreign key라는 개념을 사용하여 주로 연결된다.
하나의 테이블에 모든 정보를 다 넣으면 동일한 정보들이 불필요하게 중복되어 저장된다. 더 많은 디스크를 사용하게 되고, 또한 잘못된 데이터가 저장 될 가능성이 높아진다. 여러 테이블에 나누어서 저장한 후 필요한 테이블끼리 연결시키면 위의 두 문제가 사라진다.
정규화 nomalization
데이터를 정제하여 이상이 없는 데이터를 만드는 것을 의미한다. 1차, 2차, 3차 정규형이 있으며 이 중 사용하기 좋은 형태로 바꾼다.
- 1차 정규형 : 각 로우마다 컬럼의 값이 1개씩만, 원자값(atomic value)를 갖는다고 표현
- 2차 정규형 : 모든 속성은 기본키에 종속
- 3차 정규형 : 기본키를 제외하고 서로 종속 불가