DB 6

함수 종속

함수 종속성이란 DB 속성들간 종속관계를 뜻한다. 예를 들어, 사원번호가 다른 동명이인을 가지는 테이블이 있다고 하자. 사원번호에 따라 반드시 이름이 정해지지만 이름에 따라 반드시 사원번호가 정해지지 않는다. 따라서, 이름은 사원번호에 종속된다라고 할 수 있다. 이 때, 사원번호를 결정자, 이름을 종속자 라고한다. 사원번호 -> 이름 * 완전 함수 종속: 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우 * 부분 함수 종속: 릴레이션에서 종속자가 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을 경우 종속자가 기본키를 구성하는 속성 중 일부에만 종속되는 경우 * 이행적 함수 종속: 릴레..

DB 2022.08.09

Partitioning

Hot Spot이 생기지 않게 하면서 데이터와 질의 부하를 여러 장비에 균일하게 배분하는 것 하나의 DBMS가 많은 테이블을 관리하다보니 느려지는 이슈 발생 서비스의 크기가 점점 커지면서 다양하고 많은 테이블 존재 => 큰 테이블이나 인데스를 관리하기 쉬운 단위로 분리 장점: 특정 DML이나 Query 성능 향상 단점: join에 대한 비용 증가, 테이블과 인덱스도 같이 partitioning해야함

DB 2021.04.13

Sharding

=horizon partitioning .같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법 .쓰는 이유는 partitioning과 마찬가지로 데이터가 급격하게 증가하거나 트래픽이 특정 db로 몰리는 상황을 대비하기 위한 db증설이다. .Application level에서도 가능하나 database level에서도 가능하다. .샤딩을 적용하면 프로그래밍, 운영적인 복잡도가 증가한다. .따라서, 샤딩을 피하거나 지연시킬 수 있는 방법을 찾아야하는데 대표적으로, 1. Scale-up을 한다. 2. Read 부하가 크면 cache나 database의 replication을 적용한다. 3. Table의 일부 컬럼만 자주 사용한다면 vertical partitioning을 적용한다.

DB 2021.04.13