Physical Database Design(2)

꾸Jun·2023년 11월 13일
0

📚 Database

목록 보기
15/20

Denormalization

  • nomarlization 되어있는 relation을 non-normalization
  • Benefits
    • 조회되는 테이블의 개수를 줄여서 성능을 향상시킴
  • Costs(데이터 중복에 의한)
    • 저장공간의 낭비
    • Data integrity, consistency에 위협
  • 일반적인 denormalization가 필요할 때(그냥 합침)
    • one-to-one일 경우에는 양쪽이 1대1이므로 합쳐도 무방
    • many-to-many일 경우에 새로운 table이 있고 non-key attribute를 가지고 있을 경우에는 합칠 수 있음
    • one-to-many일 때는 reference data이므로


Partitioning

  1. Horizontal Partitioning
    • 몇개의 서로 다른 파일로 테이블의 row들을 자름
    • Types
      • Key Range Partitioning
      • Hash Partitioning
      • List Partitioning
  2. Vertical Partitioning
    • 몇개의 서로 다른 relation으로 테이블의 column들을 자름
  3. Combinations of Horizontal and Vertical
    --> 자르는 이유는 테이블을 조회하는데 속도를 높여 성능을 향상시키기 위해

Advantages of Partitioning

  • Efficiency: 같이 사용되어지는 레코드들을 하나로 묶음
  • Local optimization: 각각의 partition은 성능을 위해 최적화 될 수 있음
  • Security: 관련없는 유저의 데이터들은 분리됨
  • Recovery and uptime: partition으로 쪼개놓았기 때문에 한 partition에 문제가 생겨도 서로 영향X
  • Load balancing: 다른 디스크에 저장되어있는 partition들은 contention을 줄임

Disadvantages of Partitioning

  • Inconsistent access speed: 여러 개로 쪼갰기 때문에 꺼내서 사용하는데 오래걸림
  • Complexity: 복잡한 메커니즘
  • Extra space or update time: 많은 partition들로부터 접근해서 중복된 데이터

Horizontal Partitioning

  1. Range Partitioning
    • field value들의 범위에 의해 partition들이 정의됨
    • 불균등한 row들의 분배를 야기할 수 있음
    • Like-valued field들은 partion들에 공유됨
  2. Hash Partitioning
    • hash function에 의해 partition들이 정의됨
    • 균등한 row들의 분배를 보장함
    • partition들은 넓은 범위의 값들을 가질 수 있는 value field들을 포함
    • 각각의 partition들에 동일한 데이터를 로딩하는게 중요하다면 hash parition을 사용하는 것이 좋음
  3. List Partitioning
    • partitioning key에 맞는 값들의 list들을 미리 정해놓음으로써 정의됨
  4. Composite Partitioning
    • 다른 접근들의 혼합


File Organizations

  • Secondary storage에 file records들을 저장하는 기술
  • File Organization의 선택 요소들
    • Fast data retrival and throughput
    • Efficient storage space utilization
    • Protection from failure and data loss
    • Minimizing need for recognization
    • Accommodation growth
    • Security from unauthorized use
  • File Organization 종류
    • Sequential
      • PK의 필드 값을 가지고 순차적으로 집어넣는 것
      • 데이터베이스의 백업 데이터를 가지고 있는 용도
    • Indexed
      • 각각의 record들을 소프트웨어가 위치시키는 것을 도와주는 index를 가지고 sequentially 또는 nonsequentially인 record들의 저장하는 용도
      • PK는 자동으로 index됨
      • 다른 field들 또는 field들의 조합들은 또한 index될 수 있음 -> secondary key index라고 부름
    • Hash
profile
꾸준🐢

0개의 댓글