MySQL은 동시에 여러 개의 커넥션을 유지하는 것이 가능하기 때문에, 이를 관리하기 위해 붙인 번호
커넥션의 시작과 종료 사이에 여러분은 DBMS와 다양한 교환을 하게 되는데, 그 교환의 시작과 종료까지의 단위를 의미.
커넥션이 확립된 후 -> 세션이 만들어진다. 보통 세션과 커넥션을 잘 구분하지 않지만 기본적으로 두 가지가 1:1로 대응되기 때문.
DB 내부의 테이블을 한 개가 아닌 몇 개의 그룹으로 나뉘어서 관리되고 있다. PC에서 파일을 분류하기 위해 사용하는 폴더에 해당하는 것이 DB에도 있다고 생각하면 됨.
위에서 언급한 폴더가 바로 DB의 스키마.
테이블은 실제로 몇 개의 스키마 속에 저장되는 형식을 취하고 있음.
사용자가 자유롭게 만들 수 있어, 용도별로 나누거나 보여주고 싶지 않은 사용자에겐 접근할 수 없도록 제한을 건 스키마를 만드는 등 권한 관리를 수행하는 것도 가능.
스키마의 상위에는 DB가 있음. (DB에는 계층을 표시하는 의미도 있음)
DB보다 한 층 더 위엔 인스턴스라는 개념이 있음.
물리적 개념으로 DBMS가 동작할 때의 단위임!! 그래서 OS에서는 프로세스라고도 부른다. (DBMS에 따라서는 이것을 서버 프로세스 또는 단순히 서버라고 부르는 경우도 있음)
한 개의 인스턴스 아래에는 복수 개의 DB 가 존재할 수 있고 한 개의 DB 아래에는 복수의 스키마가 존재할 수 있으며, 한 개의 스키마 아래에는 복수 개의 테이블이 존재할 수 있음.
MySQL은 DB와 스키마를 동일한 것으로 간주하여 계층 차이를 두지 않는다.
Oracle은 4계층 구조를 갖지만, 인스턴스 아래에 DB를 한 개만 만들 수 있다는 독자적인 제약을 가지고 있다.