ISO및 CCITT에서 권고하는 개방형 시스템 상호 접속 (OSI:Open System Interconnection)을 위한 참조 모델(reference model)
OSI 참조 모델은 컴퓨터 통신망 구조의 기본 모델이며 7계층으로 구성되어 있다

주요 용어

  • OSI 모델 :
    서로 개방되어 있는 시스템 간에 정보를 교환하기 위한 표준
  • 캡슐화 :
    데이터에 각 계층의 제어정보를 추가하는 것
  • 역캡슐화 :
    캡술화의 반대 개념으로 최하위 물리 계틍에서 퇴상위 응용 계틍까지 데이터 전달에서 각 계층의 제어정보를 제거하는 것
  • CASE :
    공통 응용 서비스 요소로 응용에 무관하게 개방 시스템 접속을 위한 방법 제공

OSI 참조 모델의 개요

OSI 참조 모델의 목적

  • ISO 7498 (198년)
    HW/SW 관계없이 서로 다른, 개방되어 있는 시스템 간에 통신을 용이하게 하는 데 목적
  • 개방형 시스템의 상호접속을 위한 참조 모델
  • 이기종(heterogeneous) 시스템간의 통신이 가능하도록
  • 개방(형) 시스템 : 적용 가능한 표준을 상호 인정하고 지원

OSI의 계층

  • 7계층 OSI 참조 모델
    • 응용 계층 (Application Layer)
    • 표현 계층 (Presentation Layer)
    • 세션 계층 (Session Layer)
    • 전송 계층 (Transport Layer)
    • 네트워트 계층 (Network Layer)
    • 데이터링크 계층 (Data Link Layer)
    • 물리 계층 (Physical Layer)
  • 중계 개방 시스템을 갖는 계층
    • 네트워크
    • 데이터링크
    • 물리

계층의 분리원칙

  1. 너무 많은 계층으로 분리함으로써 각 계층에 대한 설명과 이들에 대한 조합이 필요 이상으로 많지 않아야 한다.
  2. 서비스의 양이 적고 최소의 상호 작용이 일어나도록 경계를 정해야 한다.
  3. 수행하는 일의 측면에서나 필요로 하는 기술의 측면에 있어서 명백히 서로 다른 기능들을 다룰 수 있도록 계층을 설정한다.
  4. 비슷한 기능들은 같은 계층에 존재하도록 한다.
  5. 과거의 경험에 의해 성공적이라 판단되는 곳에 경계를 설정한다.
  6. 쉽게 세분화되는 기능을 하나의 계층으로 한다.
  7. 필요한 경우 표준화된 인터페이스를 가질 수 있는 곳에 경계를 설정한다.
  8. 데이터에 대한 조작, 즉 구문(syntax), 의미(semantic) 등의 추상적 개념에 대해 서로 다른 수준을 필요로 하는 곳에서 계층을 설정한다.
  9. 각 계층은 단지 상위 계층과 하위 계층에 경계를 갖도록 한다. 즉, 다른 계층과는 전혀 무관하도록 한다.

각 계층이 필요한 이유

  • 물리 계층 :
    종단 간을 연결 하려면 다양한 물리적 매체를 사용하는 구조가 필요
  • 데이터링크 계층 :
    전화회선, 광섬유 등 물리적 통신 매체를 사용할 결루에 서로 다른 데이터링크 제어 절차가 필요함
  • 네트워트 계층 :
    전송주체(송/수신자) 사이에 중간 노드가 있는 경우에도 전송 주체 간의 연결 통로(네트워크 연결)를 제공해야 함
  • 전송 계층 :
    발신지 시스템에서 목적지 시스템까지의 신뢰성 있는 데이터 이동을 제어할 필요가 있음
  • 세션 계층 :
    대화를 조직하고 동기화하거나 데이터 교환을 관리할 필요가 있음
  • 표현 계층 :
    응용 프로그램의 구조화된 데이터를 표현하고 조정하는 기능이 필요함
  • 응용 계층 :
    응용 프로그램을 위한 프로토콜을 함께 관리할 필요가 있음

캡슐화

데이터에 각 계층의 제어정보를 추가하는 것
Service Data Unit + Protocol Control Information => Protocol Data Unit
SDU + PCI = PDU

  • 응용 계층 : Data
  • 표현 계층 : APDU
  • 세션 계층 : PPDU
  • 네트워트 계층 : SPDU
  • 전송 계층 : TPDU
  • 데이터링크 계층 : NPDU
  • 물리 계층 : DLPDU

각 계층의 목적 및 기능

응용 계층

  • 기본적인 서비스
    • 각 사용자에게 속하는 서비스
    • 각 응용에 속하는 서비스 요소
    • 공통 응용 서비스 요소
  • CASE(Common Application Service Element) :
    응용에 무관하게 개방 시스템 접속을 위한 방법 제공
  • 응용 계층의 기능
    • 응용 계층 기능들의 그룹화
    • 응용 프로세스 관리
    • 시스템 관리
    • 응용계층 관리

표현 계층

  • 응용 계층과 세션 계층 사이
  • 목적 : 응용체들 사이의 데이터 교환
    • 응용체들이 통신하거나 참조할 수 있도록 정보를 표현하는 기능을 제공
    1. 응용체간에 교환되어야 할 데이터를 표현
    2. 응용체들의 총신에서 참조할 수 있는 데이터 구조를 표현
  • 구문독립성 (syntac independence) 제공
    • 표현 계층은 데이터가 표현되는 구문(syntax)에만 관계하며, 응요 계층과 관계있는 의미(semantics)와는 무관
    1. 구문 변환(syntax transformation) :
      코드와 글자의 변환, 데이터 구조의 변환, 데이터 구조에 대한 연산의 결정등
    2. 구문 선택(syntax selection) :
      초기에 알맞는 구문을 선택하고 선택한 구문을 수정하는 것을 포함
  • 표현 계층의 기능
    • 구문의 변환
    • 구문의 절충
    • 주소지정과 다중화
    • 표현 계층 관리

세션 계층

  • 표현 계층과 전송 계층의 사이
  • 목적 : 표현체들 사이의 데이터 교환
    • 표현 계층들의 대화(dialogue) 세션의 형성과 동기, 정상적인 데이터의 교환
  • 세션 계층의 기능
    • 세션 연결 설정 (end-to-end 세션 연결 구성)
    • 정상적인 데이터 통신 (흐름 제어 등 포함)
    • 세션 연결 해제
    • 신속 데이터 (expedite data) 전송
    • 세션 연결 복구
    • 세션 계층 관리

전송 계층

  • 세션 계층과 네트워크 계층의 사이
  • 목적 : 세션 계층들 사이의 데이터 교환
    • 세션을 갖고 있는 두 이용자 사이의 정확한 데이터 전송 서비스를 제공
  • end-to-end message delivery
  • 가능한 네트워크 서비스를 최대로 이용하여 최소의 경비로 각 세션 계층의 요구 사항을 수행
  • 전송 계층의 기능
    • 주소 변환 (전송 주소를 네트워크 주소로 변환)
    • end-to-end 전송 연결 구성
    • 다중화와 분리(splitting)
    • 전송 연결의 설정과 해제
    • 각각의 연결에 대해서 양 종단간의
      • 순서제어, 오류 검출, 오류 복구, 흐름 제어
      • segmenting, blocking, concatenation
    • 신속 데이터 전송
    • 전송 계층 관리

네트워트 계층

  • 전송 계틍과 데이터 링크 계층 사이
  • 목적 : 전송체들 사이의 데이터 교환
    • 라우팅(routing) 전략을 사용하여 데이터를 송신지 컴퓨터로부터 여러 네트워크를 거쳐 수신지 컴퓨터까지 전달
  • 네트워크 계층의 기능
    • 경로선택과 중계(routing and relaying)
    • 네트워크 연결(network connection)
    • 네트워크 연결의 다중화
    • 세그멘팅과 블로킹
    • 오류 검출 및 오류 통보
    • 순서 냐열(sequencing)
    • 흐름제어
    • 신속 데이터 전송 서비스
    • 네트워크 계층 관리

데이터링크 계층

  • 네트워크 계층과 물리 계층의 사이
  • 목적 : 네트워크체들 사이의 데이터 교환
    • 네트워크체들 사이에 데이터링크 연결을 설정, 유지, 해제하여 데이터(데이터링크 SDU)를 교환
    • node-to-node delivery
  • 데이터링크 계층의 기능
    • 데이터링크 연결의 설정 및 해제
      • node-to-node 데이터링크 연결 구성
    • 데이터 링크 SDU의 전송
    • 네트워크 연결 종단 확인명 제공
    • 순서나열(sequencing)
    • 오류 검출, 오류 복구 및 오류 통보
    • 흐름 제어
    • 데이터 링크 계층의 관리

물리 계층

  • 데이터링크 계층 아래
  • 목적 : 데이터링크체들 사이의 데이터 교환
    • 물리적 연결의 설정, 유지, 해제를 통해 하나의 노드에서 다음 노드까지 각 비트를 전송
  • 물리 계층의 기능
    • 물리적 연결(physical connection) : 물리적 매체와의 인터페이스
    • 물리적 서비스 데이터(PSDU)의 전송 : 비트의 복호화 및 부호화, 비트 전송 속도, 비트 동기화
    • 물리적 연결 종단 확인명(endpoint identifier) 제공
    • 물리 계층 관리

요약

  1. OSI 모델의 목적은 특정 시스템의 하드웨어나 소프트웨어에 관계 없이 서로 다른 시스템 간에 통신을 용이하게 하는 것.
  2. OSI의 참조 모델은 7개의 계층으로 구성됨.
    응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리
  3. OSI 참조 모델에서 계층화란 계층과 계층을 구문하는 것으로 경계가 어디서 어떻게 이루어져야 하는 지 등에 관한 일반적인 원틱을 따름.
    이 원칙이란 크게 보면 컴퓨터과학에서 사용해오는 체계적인 접근방법에서 중요시하는 원칙임.
    System approach : modular design, component-based design, object-oriented design
  4. 캡슐화란 전송하고자 하는 데이터에 해당 계층의 제어정보를 추가하는 것임.
    이때 전송하고자 하는 데이터는 SDU(Service Data Unit)이라 하고, 제어정보는 PCI(Protocol Control Information), SDU에서 PCI를 추가한 데이터를 PDU(Protocol Data Unit)라고 부름.
  5. 응용 계층은 사용자에게 OSI 모델로서의 액세스와 분산정보 서비스를 제공함.
  6. 표현 계층은 데이터의 표현상에 존재하는 상이점으로부터 응용 프로세스에 독립성을 제공함.
  7. 세션 계층은 응용 간의 통신을 위한 제어구조를 제공하며, 서로 연관된 응용 간의 접속을 설정, 유지, 종결함.
  8. 전송 계층은 종점 간의 신뢰성 있고 투명한 데이터 전송을 제공, 두 종점 간 오류 복구와 흐름제어를 제공함.
  9. 네트워크 계층은 시스템 간을 연결하는 데이터 전송과 교환기법으로부터의 독립성을 유지하여 상위 계층에 제공하며, 접속의 설정, 유지, 종결의 책임을 짐.
  10. 데이터링크 계층은 물리적 링크 간의 신뢰성 있는 정보 전송을 제공하며, 필요한 동기화, 오류제어, 흐름제어를 담당, 데이터의 블록을 전송함.
  11. 물리 계층은 물리적 전송매체상의 비트 스트림 전송에 관한 기능을 담당함. 물리적 전송매체에 접속하기 위한 기계적 / 전기적 / 절차적 특성을 취급함.

 

출처 : 방송통신대 강의 자료실 정보통신망 강의록

 
728x90
반응형

'Computer Science > Network' 카테고리의 다른 글

LAN; 근거리 통신망 - II  (0) 2022.06.12
LAN; 근거리 통신망 - I  (0) 2022.06.12
TCP/IP - III  (0) 2022.06.12
TCP/IP - II  (0) 2022.06.12
TCP/IP - I  (0) 2022.06.12

계층형 쿼리

개발을 하다보면 메뉴구성, 조직도 등 같은 테이블 내에서 계층적으로 데이터를 처리해야 하는 경우가 많다.
자주 사용 되기도 하고, 이번 프로젝트에서 이 부분에 대한 삽질을 많이 했기 때문에 정리를 해본다.
계층형(hirarchical) 구조는 계급적, 수직적인 관계로 2진 트리 관계라고 할 수 있다.
실습은 Oracle emp 를 이용하며 설치 여건이 안되므로 livesql를 이용한다.
사용법은 여기서 보면 된다.

계층 구조와 용어

(계층 구조와 용어 이미지 만들어 올리기.)

  • 노드 (node) : 테이블 상의 각각의 row를 노드라고 한다.
  • 루트 (root) : 트리 구조의 최상위에 있는 노드를 의미한다.
  • 부모 (parent) : 부모노드. 트리 구조에서 상위에 있는 노드를 부모라고 한다.
  • 자식 (child) : 자식노드. 트리 구조에서 하위에 있는 노드를 자식이라고 한다.
  • 리프 (leaf) : 리프노드 혹은 말단노드. 하위에 연결된 노드가 없는, 자식이 없는 노드이다.
  • 레벨 (level) : 트리구조에서 각각의 계층을 의미한다. 루트부터 순차적으로 1씩 올라간다.

SELF JOIN

테이블 개수가 1개이며 각 ROW가 상위 코드로 부모 자식 관계로 연결 되어 셀프 조인을 사용한다.
최상단 노드의 경우 상위 코드가 NULL 이므로 외부 조인도 사용한다.

SELECT
    C.ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)

결과

ENAME   EMPNO  MGR_NN
- - - - - - - - - - - -
BLAKE   7698    KING
CLARK   7782    KING
JONES   7566    KING
ALLEN   7499    BLAKE
WARD    7521    BLAKE
MARTIN  7654    BLAKE
TURNER  7844    BLAKE
JAMES   7900    BLAKE
MILLER  7934    CLARK
SCOTT   7788    JONES
FORD    7902    JONES
ADAMS   7876    SCOTT
SMITH   7369    FORD
KING    7839     - 

동일한 테이블 EMP 를 각각 C, P 로별칭을 주어 셀프 조인 하였고,
C가 하위 ROW, P가 상위 ROW임을 알 수 있다.
계층적인 결과가 나왔지만, 계층형 구조(TREE)와는 다른 결과이다.


START WITH & CONNECT BY

START WITH ... CONNECT BY 절은 계층형 정보를 표현하기 위한 목적으로 나온 조건이다.

문법

SELECT
    [컬럼 ...]
FROM
    테이블
START WITH [최상위 조건]
CONNECT BY [NOCYCLE] [PRIOR] [계층 구조 조건];

예제

SELECT
    C.ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY PRIOR C.EMPNO = C.MGR

결과

ENAME   EMPNO  MGR_NN
- - - - - - - - - - - -
KING    7839     - 
JONES   7566    KING
SCOTT   7788    JONES
ADAMS   7876    SCOTT
FORD    7902    JONES
SMITH   7369    FORD
BLAKE   7698    KING
ALLEN   7499    BLAKE
WARD    7521    BLAKE
MARTIN  7654    BLAKE
TURNER  7844    BLAKE
JAMES   7900    BLAKE
CLARK   7782    KING
MILLER  7934    CLARK

PRIOR 키워드는 이전 결과의 컬럼을 참조하는 키워드로 현재 행의 MGR을 이전 행의 ENPNO와 연결한다는 의미이다.


LEVEL

계층 레벨(depth level)을 나타낸다.

SELECT
    C.ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
    , LEVEL
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY PRIOR C.EMPNO = C.MGR;
ENAME  EMPNO  MGR_NN  LEVEL
- - - - - - - - - - - - - - -
KING    7839     -      1
JONES   7566    KING    2
SCOTT   7788    JONES   3
ADAMS   7876    SCOTT   4
FORD    7902    JONES   3
SMITH   7369    FORD    4
BLAKE   7698    KING    2
ALLEN   7499    BLAKE   3
WARD    7521    BLAKE   3
MARTIN  7654    BLAKE   3
TURNER  7844    BLAKE   3
JAMES   7900    BLAKE   3
CLARK   7782    KING    2
MILLER  7934    CLARK   3

레벨별로 들여쓰기를 하면 쿼리 결과 볼때 편하다.

SELECT
    LPAD( ' ', 2 * (LEVEL - 1 ) ) || C.ENAME AS ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
    , LEVEL
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY PRIOR C.EMPNO = C.MGR;
ENAME       EMPNO  MGR_NN  LEVEL
- - - - - - - - - - - - - - - - -
KING         7839   -        1
  JONES      7566  KING      2
    SCOTT    7788  JONES     3
      ADAMS  7876  SCOTT     4
    FORD     7902  JONES     3
      SMITH  7369  FORD      4
  BLAKE      7698  KING      2
    ALLEN    7499  BLAKE     3
    WARD     7521  BLAKE     3
    MARTIN   7654  BLAKE     3
    TURNER   7844  BLAKE     3
    JAMES    7900  BLAKE     3
  CLARK      7782  KING      2
    MILLER   7934  CLARK     3

ORDER SIBLINGS BY

계층형 쿼리에서 ORDER BY 절을 사용하면 계층의 상관 관계가가 유지되지 않은체 정렬이 되어 버린다.
이 문제로 한참 삽질을 했었는데, ORDER SIBLINGS BY를 사용하면 계층 구조를 유지하면서 정렬을 할 수 있다.

일반 ORDER BY를 사용했을 경우

SELECT
    LPAD( ' ', 2 * (LEVEL - 1 ) ) || C.ENAME AS ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY NOCYCLE PRIOR C.EMPNO = C.MGR
ORDER BY EMPNO;
ENAME         EMPNO  MGR_NN
- - - - - - - - - - - - - - -
      SMITH   7369    FORD
    ALLEN     7499    BLAKE
    WARD      7521    BLAKE
  JONES       7566    KING
    MARTIN    7654    BLAKE
  BLAKE       7698    KING
  CLARK       7782    KING
    SCOTT     7788    JONES
KING          7839     - 
    TURNER    7844    BLAKE
      ADAMS   7876    SCOTT
    JAMES     7900    BLAKE
    FORD      7902    JONES
    MILLER    7934    CLARK

ORDER SIBLINGS BY를 할 경우

SELECT
    C.ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY NOCYCLE PRIOR C.EMPNO = C.MGR
ORDER SIBLINGS BY EMPNO;
ENAME         EMPNO  MGR_NN
- - - - - - - - - - - - - - -
KING          7839   - 
  JONES       7566  KING
    SCOTT     7788  JONES
      ADAMS   7876  SCOTT
    FORD      7902  JONES
      SMITH   7369  FORD
  BLAKE       7698  KING
    ALLEN     7499  BLAKE
    WARD      7521  BLAKE
    MARTIN    7654  BLAKE
    TURNER    7844  BLAKE
    JAMES     7900  BLAKE
  CLARK       7782  KING
    MILLER    7934  CLARK

CONNECT_BY_ISLEAF

계층 구조에서 ROW의 최하위 레벨 여부의 반환이다.
해당 ROW가 말단 노드라면 1 아니라면 0을 반환한다.

SELECT
    LPAD( ' ', 2 * (LEVEL - 1 ) ) || C.ENAME AS ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
    , CONNECT_BY_ISLEAF LEAF
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY NOCYCLE PRIOR C.EMPNO = C.MGR
ORDER SIBLINGS BY EMPNO;
ENAME        EMPNO  MGR_NN  LEAF
- - - - - - - - - - - - - - - - -
KING          7839   -        0
  JONES       7566  KING      0
    SCOTT     7788  JONES     0
      ADAMS   7876  SCOTT     1
    FORD      7902  JONES     0
      SMITH   7369  FORD      1
  BLAKE       7698  KING      0
    ALLEN     7499  BLAKE     1
    WARD      7521  BLAKE     1
    MARTIN    7654  BLAKE     1
    TURNER    7844  BLAKE     1
    JAMES     7900  BLAKE     1
  CLARK       7782  KING      0
    MILLER    7934  CLARK     1

CONNECT_BY_ROOT

계층구조 쿼리에서 LEVEL이 0인 최상위 로우의 정보를 얻어 올 수 있다.

SELECT
    LPAD( ' ', 2 * (LEVEL - 1 ) ) || C.ENAME AS ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
    , CONNECT_BY_ROOT C.ENAME ROOTNANME
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY NOCYCLE PRIOR C.EMPNO = C.MGR
ORDER SIBLINGS BY EMPNO;
ENAME        EMPNO  MGR_NN  ROOTNANME
- - - - - - - - - - - - - - - - - - - -
KING          7839   -        KING
  JONES       7566  KING      KING
    SCOTT     7788  JONES     KING
      ADAMS   7876  SCOTT     KING
    FORD      7902  JONES     KING
      SMITH   7369  FORD      KING
  BLAKE       7698  KING      KING
    ALLEN     7499  BLAKE     KING
    WARD      7521  BLAKE     KING
    MARTIN    7654  BLAKE     KING
    TURNER    7844  BLAKE     KING
    JAMES     7900  BLAKE     KING
  CLARK       7782  KING      KING
    MILLER    7934  CLARK     KING

SYS_CONNECT_BY_PATH

계층 구조에서 ROOT노드부터 현제 노드까지의 PATH 정보를 가져올 수 있다.

SELECT
    LPAD( ' ', 2 * (LEVEL - 1 ) ) || C.ENAME AS ENAME
    , C.EMPNO
    , P.ENAME AS MGR_NN
    , SYS_CONNECT_BY_PATH( C.ENAME, '/') PATH
FROM
    SCOTT.EMP C
INNER JOIN
    SCOTT.EMP P
ON
    C.MGR = P.EMPNO(+)
START WITH C.MGR IS NULL
CONNECT BY NOCYCLE PRIOR C.EMPNO = C.MGR
ORDER SIBLINGS BY EMPNO;
ENAME         EMPNO  MGR_NN  PATH
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
KING          7839     -      /KING
  JONES       7566    KING    /KING/JONES
    SCOTT     7788    JONES   /KING/JONES/SCOTT
      ADAMS   7876    SCOTT   /KING/JONES/SCOTT/ADAMS
    FORD      7902    JONES   /KING/JONES/FORD
      SMITH   7369    FORD    /KING/JONES/FORD/SMITH
  BLAKE       7698    KING    /KING/BLAKE
    ALLEN     7499    BLAKE   /KING/BLAKE/ALLEN
    WARD      7521    BLAKE   /KING/BLAKE/WARD
    MARTIN    7654    BLAKE   /KING/BLAKE/MARTIN
    TURNER    7844    BLAKE   /KING/BLAKE/TURNER
    JAMES     7900    BLAKE   /KING/BLAKE/JAMES
  CLARK       7782    KING    /KING/CLARK
    MILLER    7934    CLARK   /KING/CLARK/MILLER
728x90
반응형

'Database' 카테고리의 다른 글

[DB] INDEX REBUILD  (0) 2021.01.07
[DBeaver - cubrid] DBeaver Cubrid UTF-8 문제  (1) 2020.12.07
[MongoDB] 설치하기 (MacOS)  (0) 2020.05.18
[SQL] TIMESTAMP TO MILLIS  (0) 2020.04.09
[PostgreSQL] 랜섬웨어  (0) 2020.03.03

+ Recent posts