Physical Database Design(3)

꾸Jun·2023년 11월 20일
0

📚 Database

목록 보기
16/20

File Organizations

  • 하드디스크에 데이터들을 물리적으로 어떻게 저장하는 지에 대한 테크닉
  • Factors for selecting file organization
    • 빨리 데이터를 찾아냄
    • 효율적인 데이터 공간 관리
    • 데이터를 실패와 유실로 부터 보호
    • Reorganization의 최소화
    • 성장을 촉진하는지
  • Sequential, indexed, hashed 3가지 종류가 있다.

Indexed File Organization

  • Indexed File Organization
    • 소프트웨어가 각각의 레코드들을 찾는데 인덱스를 가지고 찾는 방식
  • index
    • 어떠한 조건을 만족하는 레코드들의 장소들을 파일에서 결정하는데 사용되는 테이블
  • PK로 선언하는 순간 dbms로 indexing됨
  • 다른 key들에도 indexing이 걸릴 수 있음
    • secondary key라고 하고, nonunique key라고도 함
  • Join index
    • 한쪽에 PK, 한쪽에 FK인 경우에 indexing을 걸면 훨씬 더 빠르게 join operation이 가능함

Hashed File Organization

  • Hashed File Organization
    • Hashing argorithm을 사용하여 각각의 레코드들의 주소가 결정됨
  • 레코드의 PK값을 hash function에 넣어서 결과값을 주소로 결정함
  • 순차적이지 않고 균등분배됨
  • 같은 값이 결정되면 list에 저장함
  • 초기단계에 레코드들이 로드된 상태에 레코드들을 집어넣고 지우고 하는데에 추가적인 공간이 필요할 수 있음
  • 순차적으로 데이터를 꺼내는데 적합하지 않지만, 랜덤하게 꺼내는데 매우 빠르다


Clusting Files

  • 몇몇의 reltaional dbms들에서 다른 테이블들인데 관련된 레코드들은 같은 하드디스크 장소에 저장될 수 있음
  • join operation을 향상시키는데 유용함
  • Oracle은 CREATE CLUSTER 명령어가 있음


Rules for Using Indexes

  1. 큰 테이블들에서 사용함
  2. 각각의 테이블의 PK를 indexing함
  3. 보통 WHERE 절이 있을 때 indexing함
  4. ORDER BY, GROUP BY같은
  5. 100개 이상의 다른 값들이 있을 때 사용
  6. indexing을 긴 값들에 거는 걸 피해야함
  7. indexing을 거는 개수와 byte에 제한이 있음
  8. null 값을 갖는 attribute에 indexing을 거는데 조심해야함(dbms는 indexing을 하는데 null 값을 인식 안할 수도 있음)
profile
꾸준🐢

0개의 댓글