5장 DBMS를 조작할 때 필요한 기본 지식

양시준·2022년 4월 3일
0
post-thumbnail

커넥션

애플리케이션과 DBMS를 연결하는 것을 의미한다.

연결하는 방식

클라이언트가 서버프로세스와 연결하는 방식에는 대표적으로 두 가지가 있다.
아래 구조는 오라클을 예시로 가져온 것이다.

전용서버 방식(Dedicated Server)

  • 클라이언트 세션과 서버프로세스가 1:1 로 매핑된다.
  • 오라클의 가장 일반적인 방식이다.
  • 데이터베이스와 물리적인 커넥션을 맺는다.

공유서버 방식(Shared Server)

  • 클라이언트 세션과 서버프로세스가 1:N 로 매핑된다.

이 글에서 설명한 것보다 더 자세히 알고싶다면 아래 주소를 참고하자.

커넥션과 세션

여러 DBMS는 동시에 여러 개의 커넥션을 유지하는 것이 가능한데, 어떤 커넥션이 어느 사용자를 위한 것인지 알기 위해 MySQL의 'connection id'와 같이 특정 값을 할당하여 관리한다.

이 커넥션의 시작과 종료 사이에 사용자는 DBMS와 다양한 교한을 하게 되는데, 그 교환의 시작과 종료까지의 단계를 세션(Session)이라고 한다.

커넥션과 세션은 매우 유사한 개념이라서 같은 의미로 사용되는 경우도 있지만, 정확히는 커넥션이 확립된 후에 세션이 만들어진다.

관리 명령

DBMS나 정상적으로 동작하는지 감시하거나 DBMS의 정보수집을 하는 등의 용도로 사용한다.

관리 명령에서 기억해야 할 점

  • DBMS는 SQL문 이외에도 관리 명령이 있다.
  • 관리 명령의 종류나 문법은 DBMS마다 다르다.

특히 중요한 부분은 후자로, 표준 구문을 사용하는 SQL문과 달리 관리 명령은 DBMS마다 치이가 크다는 것을 알아둬야 한다.

관계형 데이터베이스의 계층

데이터베이스는 여러 데이터를 효율적으로 관리하기 위해 여러 계층으로 구성되어 있다.

인스턴스

안스턴스는 데이터베이스 계층 위에 존재하는 물리적 개념으로, DBMS가 동작할 때의 단위이다.

그래서 OS입장에서는 프로세스라고 부르기도 한다.

데이터베이스

인스턴스 아래에 존재하며 여러 스키마를 가진다. (데이터를 관리하는 기능의 집합체라는 의미도 가지고 있지만 여기에서는 그 뜻이 아니라 '계층'을 의미한다.)

스키마

'틀'이라는 뜻을 가진 단어이다.

우리가 사용하는 컴퓨터의 폴더에 해당하는 계층으로, 하나의 스키마 아래에는 여러 테이블이 존재할 수 있다.

용도별로 나누거나 특정 사용자만 접근할 수 있게 하는 등의 권한 관리도 할 수 있다.

전체 구조

하나의 인스턴스 아래에 여러 데이터베이스, 하나의 데이터베이스 아래에 여러 스키마, 하나의 스키마 아래에 여러 데이터베이스를 가지는 구조이다.

계층 구조가 이해하기 힘든 이유

위에서 설명했던 구조는 어디까지나 ANSI 정한 표준이자 원칙일 뿐이고 굳이 지켜야할 의무는 없다.

따라서 이 계층을 지키는 DBMS로는 PostgreSQL, SQL Sever, DB2 가 있고 스키마와 데이터베이스 한 계층을 DBMS로는 Oracle, MySQL이 있다.

즉, DBMS 마다 계츨 구조가 다르다는 사실을 모르고 있다면 다른 DBMS를 사용했을 때 혼란이 홀 수 있으니 주의해야 한다.

Oracle, MySQL의 계층 구조

MySQL

MySQL에서 데이터베이스와 스키마는 동의어로 아래와 같은 3계층 구조를 가진다.

Oracle

엄밀히 말하면 4계츨 구조를 가지고 있지만 한 인스턴스 아래에는 한 데이터베이스를 져야 한다는 독자적 제약이 있어 실질적으로 3계층 구조처럼 쓰인다.

이미지

profile
야크 털 깎기와 러버덕 디버깅을 좋아하는 개발자

0개의 댓글