6장. 테이블, 제약 조건 및 인덱스
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
테이블은 관계형 데이터베이스 스토리지의 빌딩 블록을 구성합니다. 테이블이 의미 있는 관계를 형성하도록 구조화하는 것이 관계형 데이터베이스 설계의 핵심입니다. PostgreSQL에서는 제약 조건이 테이블 간의 관계를 강제합니다. 테이블을 단순한 데이터 힙과 구별하기 위해 인덱스를 설정합니다. 책 끝에 있는 색인이나 대형 오피스 빌딩 입구에 있는 입주자 목록과 마찬가지로 색인은 테이블의 위치를 가리키므로 무언가를 찾을 때마다 테이블을 위에서 아래로 샅샅이 뒤질 필요가 없습니다.
이 장에서는 테이블을 만들고 행을 추가하는 구문을 소개합니다. 그런 다음 데이터가 범위를 벗어나지 않도록 하는 제약 조건에 대해 살펴봅니다. 마지막으로 테이블에 인덱스를 추가하여 검색 속도를 높이는 방법을 보여드립니다.
테이블 인덱싱은 실험적인 작업인 동시에 프로그래밍 작업이기도 합니다. 잘못 사용된 인덱스는 쓸모없는 것보다 더 나쁩니다. 모든 인덱스가 똑같이 만들어지는 것은 아닙니다. 알고리즘 전문가들은 쿼리에서 마지막 한 조각의 속도를 더 끌어올리기 위해 데이터 유형과 쿼리 유형에 따라 다양한 종류의 인덱스를 고안해 왔습니다.
테이블
일반적인 데이터 테이블 외에도 PostgreSQL은 임시, 기록되지 않음, 상속, 유형 및 외래( 10장에서 다룹니다) 등 다소 흔하지 않은 여러 종류의 테이블을 제공합니다.
기본 테이블 생성
예제 6-1은 테이블 생성 구문을 보여 주는데, 이는 모든 SQL 데이터베이스에서 볼 수 있는 것과 유사합니다.
예 6-1. 기본 테이블 생성
CREATETABLElogs(log_idserialPRIMARYKEY,user_namevarchar(50),descriptiontext,log_tstimestampwithtimezoneNOTNULLDEFAULTcurrent_timestamp);CREATEINDEXidx_logs_log_tsONlogsUSINGbtree(log_ts);
serial는 증가하는 자동 번호를 나타내는 데 사용되는 ...