Database Instance
데이터베이스 인스턴스는 특정 시점에 데이터베이스에 저장된 데이터의 실제 내용을 나타낸다.
- 데이터베이스 State 또는 Extension이라고도 불린다.
스키마와의 차이
- 데이터베이스 스키마가 데이터베이스의 구조를 정의하는 반면, 인스턴스는 그 구조를 바탕으로 저장된 데이터의 상태를 의미한다.
- 데이터베이스 스키마는 잘 변하지 않지만 인스턴스는 데이터가 삽입, 수정, 삭제 될 때마다 변한다.
예시
예를 들어, 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)
이론이 아닌 실무적인 관점에서 "데이터베이스 인스턴스"라고 하면 독립적으로 설치되고 동작하는 DBMS 그 자체를 가리키는 경우가 많다.
- 클라우드에서 말하는 VM 인스턴스와 유사한 개념이다.
- 예를 들어 "하나의 서버에 2개 DB 인스턴스가 동작한다"라고 하면 하나의 서버에 DBMS를 2개를 설치했다는 의미이다. 이 둘은 서로 별도의 포트를 가지고 각자 자원을 사용하며 독립적으로 동작한다. 당연히 기본적으로 조인 등 어떠한 연계도 되지 않는다.
- 그리고 데이터 보호 관점에서 "물리적인 서버는 구분하지 않았지만 DB 인스턴스를 구분했다"라는 것도 마찬가지로 DBMS를 구분하여 여러개를 설치하여 운영하고 있음을 나타낸다. 단순히 DB(또는 스키마)를 구분한 것 보다 더 높은 격리 수준을 가진 것으로 인정된다.