무결성 - 데이터베이스 내에 모든 값은 언제나 정확한 값을 유지해야 한다.
유연성 - 데이터베이스 구조는 요구사항 변화에 대해 수정이 쉬워야 한다.
확장성 - 데이터베이스 구조는 기능 확장에 대해서 수정이 쉬워야 한다.
문자열 데이터
CHAR
- 고정 길이를 가짐(데이터의 길이를 설정할 수 있으며, 데이터의 길이보다 입력 값이 적으면 공간이 낭비됨)
- 수정에 강함
VARCHAR
- 가변 문자열, 조회 용이
- 값의 크기만큼만 공간을 차지하여 데이터의 길이를 제한할 필요가 없다.
- 다만 제약은 유효하지 않는 데이터를 거르고 무결성을 높이는 데 도움을 주므로 각 데이터들이 허용 가능한 값에 만춰 길이를 정해주는 것이 좋다. VARCHAR(500)
- 수정에 성능이 떨어진다. (데이터의 크기에 딱 맞게 데이터 공간이 배정되므로 더 긴 문자로 수정되야 한다면 레코드 전체를 다른 곳으로 옮겨서 새로 저장해야함.)

시간 데이터
TIMESTAMP
- 시간을 UTC로 저장하기 때문에 time zone에 따라 해당 지역에 맞는 시간으로 저장된 시간을 볼 수 있다.
- MySQL에서 자동으로 변환되어 저장된다.
- 부호를 포함한 32bit 정수로 저장되어 2038년 1월 19일까지만 저장이 가능함
DATETIME
- 지역과 상관 없이 저장된 시간을 다른 지역에서도 그대로 불러옴