데이터베이스 인스턴스

From CS Wiki

Database Instance

데이터베이스 인스턴스는 특정 시점에 데이터베이스에 저장된 데이터의 실제 내용을 나타낸다.

  • 데이터베이스 State 또는 Extension이라고도 불린다.

스키마와의 차이[edit | edit source]

  • 데이터베이스 스키마가 데이터베이스의 구조를 정의하는 반면, 인스턴스는 그 구조를 바탕으로 저장된 데이터의 상태를 의미한다.
  • 데이터베이스 스키마는 잘 변하지 않지만 인스턴스는 데이터가 삽입, 수정, 삭제 될 때마다 변한다.

예시[edit | edit source]

예를 들어, Employees라는 테이블이 다음과 같은 스키마를 가진다고 하자:

Column Name Data Type
employee_id INT
name VARCHAR
department_id INT
salary DECIMAL

이 테이블의 데이터베이스 인스턴스는 특정 시점에 다음과 같이 저장될 수 있다:

employee_id name department_id salary
1 Alice 101 50000.00
2 Bob 102 60000.00
3 Charlie 101 55000.00

이 데이터는 특정 시점에 Employees 테이블의 상태를 나타낸다. 시간이 지나면서 새로운 직원이 추가되거나 기존 직원의 정보가 변경되면, 데이터베이스 인스턴스는 변하게 된다.

동음이의어인 인스턴스(Instance)[edit | edit source]

이론이 아닌 실무적인 관점에서 "데이터베이스 인스턴스"라고 하면 독립적으로 설치되고 동작하는 DBMS 그 자체를 가리키는 경우가 많다.

  • 클라우드에서 말하는 VM 인스턴스와 유사한 개념이다.
  • 예를 들어 "하나의 서버에 2개 DB 인스턴스가 동작한다"라고 하면 하나의 서버에 DBMS를 2개를 설치했다는 의미이다. 이 둘은 서로 별도의 포트를 가지고 각자 자원을 사용하며 독립적으로 동작한다. 당연히 기본적으로 조인 등 어떠한 연계도 되지 않는다.
  • 그리고 데이터 보호 관점에서 "물리적인 서버는 구분하지 않았지만 DB 인스턴스를 구분했다"라는 것도 마찬가지로 DBMS를 구분하여 여러개를 설치하여 운영하고 있음을 나타낸다. 단순히 DB(또는 스키마)를 구분한 것 보다 더 높은 격리 수준을 가진 것으로 인정된다.