RDMS

B-treePostgreSQL에서 기본적으로 사용되는 인덱스 구조는 B-tree로 되어 있습니다. B-tree는 데이터베이스에서 빠른 검색 및 정렬된 데이터 액세스를 위해 설계된 효율적인 인덱스 구조입니다. B-tree의 인덱스 행은 페이지로 구성됩니다. 잎 페이지에서는 이러한 행에 데이터를 인덱싱할 키와 테이블 행(TID)에 대한 참조가 포함되며, 내부 페이지에서는 각 행이 인덱스의 자식 페이지를 참조하고 이 페이지의 최소 값을 포함합니다. B-tree의 몇 가지 중요한 특성이 다음과 같이 있습니다. B-tree는 균현이 잡혀 있으며, 각 잎 페이지는 루트로부터 동일한 수의 내부 페이지로 분리됩니다. 따라서 모든 값에 대한 검색은 동일한 시간이 걸립니다.B-tree는 각 페이지(보통 8KB)는 많은(수..
인덱스 온리 스캔(Index Only Scan) 인덱스 온리 스캔(Index Only Scan)은 인덱스 스캔과 유사하지만, 테이블 데이터 대신 인덱스로부터 직접 데이터를 가져옵니다. 따라서 테이블 데이터에 대한 접근이 필요 없으므로, 더 빠른 쿼리 실행 속도를 제공합니다. 인덱스 온리 스캔을 사용한다는 것은 데이터베이스가 쿼리의 결과를 인덱스만으로 만들어내기 때문에 "인덱스만 스캔한다."라고 표현할 수 있습니다. 테이블 예제 테스트를 위해서 테이블은 다음과 같이 작성했습니다. CREATE TABLE books_test ( books_id INTEGER NOT NULL PRIMARY KEY , books_title VARCHAR , books_price INTEGER , books_link VARCHAR..
외래키는 한 테이블의 열이 다른 테이블의 기본 키(primary key)나 후보 키(candidate key)의 값을 참조하는 데 사용하는 제약 조건입니다. 즉 외래키는 데이터 무결성과 관계의 일관성을 유지하는 데 중요한 역할을 합니다. 데이터 무결성(Data Integrity)을 지키기 위해서는 데이터 무결성 제약조건에 대해 알고 있어야 합니다. 무결성 제약조건이란 데이터베이스의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정 등을 제약하기 위한 조건을 뜻합니다. PostgreSql에서는 다양한 방법으로 데이터 무결성을 제어할 수 있으며, 일반적으로 사용되는 제약조건 중에 외래 키(FOREIGN KEY) 제약 조건 이 있습니다. 외래 키 (Foreign Keys) 두 테이블 사이의 관계를 선언함으로..
페이지에서 데이터를 조회할때 날짜 형식에 맞지 않는 데이터로 인해서 페이지 에러가 발생할 때가 종종 존재합니다. 그럴 때마다 일일히 찾을 수 없기 때문에, 함수를 만들어서 편하게 사용하는 편입니다. 이번 포스팅에서는 보편적으로 사용할 수 있는 날짜 형식 검증 함수를 기록하려고 합니다. 입력받은 문자열 값이 null인 경우 false를 반환시킵니다. 그리고 입력받은 문자열을 date 형식으로 정상적으로 처리되면 true가 발생하게 되고, 만약 예외처리가 발생할 경우 false를 반환하게 될 것입니다. CREATE FUNCTION validation_check_date(str CHARACTER VARYING) RETURNS BOOLEAN AS $$ BEGIN IF str is NULL THEN RETURN ..
Elasticsearch에 대해 정리할 때, 우연히 PostgreSQL에 대한 Full Text Search에 대한 포스팅한 글을 보게 되었습니다. 놀랍게도 PostgreSQL에서도 Full Text Search를 지원하고, 놀랍게도 제가 관리하는 페이지에서 데이터를 검색할 때 해당 함수를 이용해서 데이터를 조회를 하였습니다. 저의 무지함에 놀라며, 이번 포스팅에 해당 검색에 대해 조금 알아보려고 합니다. RDBMS에서 특정 단어에 대한 패턴 검색을 할 경우 LIKE와 와일드카드 '%'을 대게 사용합니다. SELECT * FROM products WHERE product_name LIKE '%app%'; LIKE 연산자와 '%' 와일드카드는 부분 문자열 일치를 수행합니다. 예를 들면, 'app'이 포함된..
행복한쿼콰
'RDMS' 카테고리의 글 목록