- Database, 일정 규칙 또는 규약에 의해 구조화하여 저장한 데이터의 모음집
- 옛날엔 파일로 데이터를 관리했는데, 데이터 중복과 무결성에 문제가 있었기에 데이터 구조화를 하여 DB를 구축했다고 한다
Basic
기본 용어
DB 기본 용어
필드 타입
- 모든 DB는 공통적으로 아래와 같은 타입으로 관리한다
- 날짜 타입 - DATE, TIMESTAMP 등
- 문자 타입 - CHAR, VARCHAR, TEXT, BLOB 등
- CHAR는 고정 길이, VARCHAR는 가변인데, 해당 컬럼의 검색이 필요하면 CHAR로, 검색을 하지 않고 유동적이면 VARCHAR로 지정하는 것이 좋다
- BLOB은 주로 이미지나 동영상 등 큰 데이터 저장에 활용하는데, 그것보단 CDN 같은 곳에 리소스를 올리고 CDN 경로를 따로 VARCHAR 같은 타입에 저장을 하는게 효율적이긴 하다
- 숫자 타입 - INT, BIGINT, TINYINT 등
필드 활용 관련
- 쿼리 조건 조회시 Integer가 좋을까? Varchar가 좋을까?
- 문자열이 길지 않다면, 한 20자 이상 되지 않는거면 성능은 비슷하다고 함
특징
- 독립성, DB는 논리적인 구조로 다양한 어플리케이션의 논리적 요구를 만족시킬 수 있다
- 무결성, 여러 경로를 통해 잘못된 데이터가 발생하는 경우를 방지하기 위해 유효성 검사를 하여 무결성 유지
- 보안성, 인가된 사용자들만 DB 자원에 접근할 수 있게 보안 구현
- 일관성, 어떤 데이터를 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제
- 중복 최소화, 데이터를 통합해서 관리하기에 중복 문제도 해결
활용 관련
대규모 서비스 관련
분류
관계형 (Relational)