[교재] 데이터베이스 첫걸음 5장 - DBMS 기본 지식

hwwwa·2023년 1월 16일
1

5장. DBMS를 조작할 때 필요한 기본 지식 - 조작하기 전에 알아두어야 할 것

MySQL 설치

MySQL과 커넥션 만들기

로그인

  • 데이터베이스를 조작하기 위해서는 로그인 필요
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
...

mysql>
  • 위는 '로그인 성공' 상태
  • MySQL이라는 DBMS에 사용자가 로그인해서 조작할 수 있게 된 상황
  • 로그인에 성공하여 커넥션과 세션이 성립되면 프롬프트(Prompt)가 표시됨
    • 프롬프트(mysql>): 사용자로부터 명령을 입력받을 수 있는 상태

커넥션(Connection)

  • 로그인을 통해 프롬프트가 표시된 것
    ➡️ 사용자와 MySQL이 접속된 것
    ➡️ Connection
  • 커넥션이 유지되는 한 사용자는 데이터베이스와 무언가를 주고받을 수 있음
  • 로그인시 나타나는 메세지 중 아래의 문구는 커넥션이 성립되었음을 표시
    Your MySQL connection id is 8
    • connection id : MySQL과 사용자간의 커넥션에 붙인 번호
  • MySQL은 동시에 여러 커넥션을 유지하는 것이 가능
    • 즉, 동시에 복수의 사용자와 연결 가능
    • 어느 사용자와의 커넥션인지 번호로 관리

세션(Session)

  • 커넥션의 시작과 종료 사이에 DBMS와 다양한 교환을 진행하는데, 그 교환의 시작과 종료까지의 단위가 세션(Session)
  • 기본적으로 커넥션과 섹션은 1:1 대응되어 커넥션 성립 시 암묵적으로 세션이 시작되고, 세션을 끊으면 커넥션도 끊어지는 경우가 많으므로 세션과 커넥션을 잘 구분하지 않음

커넥션 상태 확인

mysql> show status like 'Threads_connected';
  • Thread_connected의 값 = 사용자의 수

로그오프

  • 커넥션 끊기
    	```sql
    	mysql> quit
    	```

SQL과 관리명령

  • 데이터베이스를 조작하는 수단은 SQL 외에도 관리 명령이 있음
  • SQL: 관계형 데이터베이스의 데이터를 조작하는 도구
  • 관리 명령: SQL 이외 다양한 용도의 명령어
    • DBMS가 정상적으로 동작하는지 감시 또는 DBMS가 이상한 동작을 할 때 문제 해결을 위한 정보수집 등의 용도
    • 관리 명령의 종류나 문법은 DBMS에 따라 다름
      • ex) show status
      • ex) MySQL 가동 시점부터의 경과 시간(초)
        mysql> show status like 'Uptime';
      • ex) MySQL이 실행한 SQL문의 수
        mysql> show status like Queries;

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

  • 인스턴스 > 데이터베이스 > 스키마 > 오브젝트(테이블, 인덱스, 저장 프로시저 등)
  • 트리 구조

인스턴스(Instance)

  • 물리적 개념. DBMS의 동작 단위
  • 메모리나 CPU를 사용하는 존재로 OS에 존재하는 '실체'
  • OS 입장에서는 프로세스라고도 부름
  • DBMS에 따라 서버 프로세스, 서버라고 부르기도 함
  • 인스턴스 아래에 여러 개의 데이터베이스 존재 가능
  • 한 개의 OS에서 인스턴스가 복수로 존재 하는 멀티 인스턴스 구성 가능
    • 원칙적으로 (물리 자원이 충분하다면) 가능
    • DBMS는 일반적으로 기동 시에 최저 한계의 메모리 공간을 확보하려고 하기 때문
    • 1대의 인스턴스 내에 여러 데이터베이스를 만들거나, 가상화 환경을 사용하면 되므로 잘 사용하지 않음

데이터베이스(Database)

  • '데이터베이스'는 데이터를 관리하는 기능의 집합체라는 의미 뿐만 아니라 '계층'을 표시하는 의미도 가짐
  • 데이터베이스 아래에 여러 스키마 존재 가능

스키마(Schema)

  • 스키마를 통해 테이블을 용도별로 나누거나 권한 관리 수행 가능
  • 스키마 아래에 여러 테이블 존재 가능

오브젝트(Object)

  • 최하위 계층
  • 테이블(Table), 인덱스(Index), 저장 프로시저(Stored Procedure) 등

DBMS별 계층 구조

  • 4계층 구조
    • PostgreSQL, SQL Server, SB2
  • 3계층 구조 : 스키마와 데이터베이스의 한 계층을 생략
    • MySQL: 데이터베이스와 스키마를 동일한 것으로 간주 (동의어)
    • Oracle: 4계층 구조로 되어있긴 하지만 인스턴스 아래에 데이터베이스를 한 개만 만들 수 있어 실질적으로 3계층 구조
  • ANSI 표준으로 정해진 것은 4계층 구조
  • 개발사의 의향에 따라 바뀔 수 있음

0개의 댓글