테이블
테이블은 데이터를 저장하는 오브젝트로 행과 열의 정보를 저장하며, 관계형 데이터베이스는 2차원 배열 형태로 테이블을 관리합니다.
Row
로우는 행에 해당하는 용어로, 테이블에서 동일한 구조의 데이터 항목들의 집합을 가리킵니다. 즉, 행은 하나의 데이터 항목 집합이며 모든 행의 집합은 테이블!
로우 수가 많아지면 데이터에 접근하는 과정에서 시간이 오래 소요될 가능성이 높기 때문에, 파티셔닝 기법으로 SQL 문의 성능 향상을 고려해볼 수도 있습니다.
Column
컬럼은 열에 해당하는 용어로, 사전에 정의한 데이터 유형으로 데이터값을 저장합니다.
키
Super Key
각 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합을 말합니다. 유일성 만족
유일성: 하나의 키 값으로 특정 row를 유일하게 찾아낼 수 있는 성질
Candidate Key
각 row를 유일하게 식별할 수 있는 최소한의 속성들의 집합을 말합니다. 유일성과 최소성을 만족
최소성: 모든 row를 유일하게 식별하는데 꼭 필요한 속성들로만 구성
Primary Key
후보키 중 선택한 메인 키로, 각 row를 유일하게 구분하는 칼럼을 말합니다. 기본키는 Null 값을 가질 수 없고, 중복된 값을 가질 수 없습니다.
Foriegn Key
다른 테이블의 Primary key를 참조하는 칼럼으로, 외부 테이블의 데이터가 변경되면 함께 영향을 받습니다.
Alternative Key
후보키가 두 개 이상일 경우, 기본키로 지정되지 못하고 남은 후보키들을 말합니다.
Composite Key
테이블에서 각 row를 식별할 수 있는 두 개 이상의 칼럼으로 구성된 후보키를 말합니다.
기본키와 인덱스
기본키는 인덱스 역할도 수행하기 때문에 기본키를 활용하여 인덱싱할 수 있습니다.
MySQL에서 기본키는 클러스터형 인덱스로 작동하는데, 이는 기본키 구성 칼럼 순서를 기준으로 물리적인 스토리지에 데이터가 쌓이는 것을 의미합니다. 즉, 비슷한 기본키 값들이 근거리에 적재되므로 기본키를 활용하여 인덱스 스캔을 수행하면 데이터에 더 빠르게 접근할 수 있습니다.
그러나 기본키와 똑같은 인덱스를 생성하면 인덱스가 저장되는 물리적 공간이 낭비되고, 데이터의 삽입/삭제/수정에 따른 인덱스 정렬의 오버헤드가 발생하므로 주의해야 합니다.
'Computer Science > Database' 카테고리의 다른 글
`이상현상과 정규화 (0) | 2022.02.22 |
---|---|
JOIN의 종류 (0) | 2022.02.19 |
`서브쿼리와 뷰 (0) | 2022.02.19 |
`DB 엔진과 SQL 수행 프로세스 (0) | 2022.02.19 |
`MySQL과 MariaDB (0) | 2022.02.17 |