DBMS를 조작할 때 필요한 기본 지식 - 데이터베이스 첫걸음(5)

뫄뫄(ahk)·2023년 5월 11일
0
post-thumbnail

이 글에서는 관계형 데이터베이스를 조작할 때 필요한 connection, session, 데이터베이스의 계층에 대해 간단히 정리합니다.

connection

MySQL 서버에 패스워드를 입력하면 접속할 수 있습니다. 이 때 서버와의 '연결'을 connection이라고 합니다.

Your MySQL connection id is 10

MySQL은 동시에 여러 connection을 유지할 수 있습니다. 그래서 각 connection마다 번호를 붙여 관리합니다. 지금 저의 connection 번호는 10이네요.

Session

MySQL과의 connection이 유지되는 동안에는 MySQL에 저장된 데이터들을 SQL문으로 조작할 수 있습니다. 이 때의 connection의 시작과 종료까지의 단위를 Session이라고 합니다. connectin, session은 혼용되지만, 엄밀히 말하면 connection이 확립된 후 session이 만들어집니다.

관리명령

RDBMS들은 저장된 데이터를 조작하기 위해 SQL언어를 사용합니다. 그런데 데이터베이스가 정상적으로 작동하고 있는지 감시하고 장애가 발생했을 경우 원인을 파악하기 위한 정보수집의 용도로 관리명령 또한 사용합니다. 관리명령은 각 DBMS별로 다르게 정의되어있습니다.

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

스키마

테이블은 스키마에 나뉘어 저장됩니다. 윈도우즈의 파일과 비슷한 개념입니다. 용도에 따라 다른 스키마에 저장할 수 있으며 권한을 달리해 특정 사용자는 접근하지 못하게 할 수 도 있습니다.
스키마 아래 계층에는 테이블 뿐만 아니라 인텍스, 저장프로시저, 뷰등이 올 수 있습니다. 이러한(인덱스, 테이블,..) 데이터를 저장하고 참조하는데 사용되는 구조들을 object라고 합니다.

데이터베이스

이 스키마의 상위에는 데이터베이스 계층이 있습니다. (데이터베이스는 데이터를 관리하는 기능의 집합체로서의 의미도 있지만 이렇게 계층을 의미하기도 합니다.)

인스턴스

데이터베이스 계층의 상위에는 인스턴스 계층이 있습니다. 인스턴스는 물리적 개념으로 DBMS가 동작할 때의 단위입니다. 메모리와 CPU를 사용하기 때문에 OS 상에 동작하는 '실체'로 OS는 이를 프로세스라고도 부릅니다. DBMS마다 서버 프로세스, 또는 서버 라고 부르기도 합니다. Java 언어의 인스턴스와 같은 의미로 생각하면 됩니다.
인스턴스도 복수개로 존재할 수 있으며 이를 멀티 인스턴스 구성이라고 부릅니다.

계층구조


위의 트리구조에서 볼 수 있듯이 1개의 인스턴스 아래에 복수 개의 데이터베이스가, 1개의 데이터베이스에 복수개의 스키마가, 1개의 스키마에는 복수 개의 테이블이 올 수 있습니다.
ANSI가 정한 표준은 위와 같은 4계층이나 3계층이나 이와 유사한 계층 구조를 가진 RDMBS도 있습니다.

MySQL

MySQL은 데이터베이스와 스키마 계층을 동일한 것으로 간주해서 계층을 나누지 않습니다. MySQL에서는 데이터베이스와 스키마가 동의어입니다.

Oracle

Oracle은 데이터베이스를 1개만 둘 수 있다는 제약이 있기 때문에 4계층이나 3계층과 유사한 구조를 가지고 있습니다.

4계층 구조를 가진 RDMBS는 SQL Server, DB2, PostgreSQL이 있습니다.

profile
NONONONONONOYes!

0개의 댓글