- Database: Data의 집합
- OS는 File System을 통해 파일을 디스크에 관리하지만 Concurrency Control(유저들이 동시에 접근 가능하도록)이나 recovery(작성하다 전원 나간 경우)를 보장하지 않음
=> Database를 관리하는 Database Management System(DBMS)가 필요
- DBMS의 종류는 크게 2가지
- RDBMS(Relational DBMS): 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스 ex) MySQL, PostgreSQL, Oracle database...
- NoSQL: 전통적 RDBMS보다 덜 제한적인 매커니즘 제공, 단순 검색 및 추가 작업을 위한 매우 최적화된 키 값 저장 공간 ex) MongoDB, Redis...
=> RDBMS는 데이터 일관성과 무결성이 중요하고 구조화된 데이터를 처리하는 데 적합한 반면, NoSQL은 대규모 데이터와 비구조화된 데이터를 유연하게 처리할 수 있으며, 확장성이 중요한 경우에 적합함
- SQL(Structured Query Language): RDBMS에서 자료를 관리 및 처리하기 위해 설계된 언어
Django에는 기본으로 Sqlite가 설치되어 있음
- SQLite: MySQL, PostgreSQL과 같은 DBMS이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스
Django에 PostgreSQL을 연결해볼 예정