본문 바로가기
반응형

프로그래밍/sql2

[sql] 컬럼당 하나의 특성만 저장하는 게 좋은 이유 관계형 모델에서 관계 (테이블)는 한 주제에 대해서만 기술해야 합니다. 즉, 동일한 주제를 가진 데이터를 하나의 테이블로 정리해야합니다. 속성 (컬럼)은 테이블의 주제를 설명하는 유일한 "특성"과 관련된 데이터입니다. 즉, 주제가 가지는 하나의 특성을 하나의 컬럼으로 만들면 됩니다. 컬럼에 하나의 특성만 저장되는게 좋은 이유는 뭘까요? 이 경우 검색을 하거나 값을 집계할 때 특성값을 분리하기 쉽기 때문입니다. 특히, 중요한 개별 특성에 대해 하나의 컬럼으로 분리하는 설계 상 훨씬 바람직합니다. 예를 들어, 아래의 테이블이 있다고 합시다. ID FullName FullAddress 1 이 순신 320-10, 경기도 A시 2 이 성계 340-20, 경기도 B시 3 이수 김 350-30, 충청남도 C시 이 테.. 2020. 11. 17.
[sql] 테이블에 기본키를 만들어야 하는 이유 테이블에 기본키 (primary key)가 있어야 할 이유가 무엇일까요? 가장 중요한 이유는 "특정 로우 (레코드)를 다른 로우들과 구별하기" 위해서입니다. 즉, 테이블 내 로우의 유일성을 보장하는 것입니다. 어떤 컬럼을 기본키로 설정하는 것이 바람직할까요? 1. 유일한 값 2. NULL값을 가질 수 없음 3. 값이 갱신될 일이 없음 4. 가능한 간단한 형태 (문자형보단 정수형, 여러 컬럼보단 단일 컬럼이 나음) 기본키를 통해 로우의 유일성을 확보하면 어떤 점이 좋을까? 반복적이고 쓸데없는 데이터가 쌓이지 않으므로, 이런 데이터에 의한 1) 쿼리 속도 저하 방지 2) 부정확한 정보 방지 가 됩니다. 복합키 (compound primary key)를 사용할 경우 단점이 있을까? 1. 두 개 이상의 컬럼을 .. 2020. 11. 16.
반응형