본문 바로가기
데이터베이스

데이터베이스 기초

by 김마리님 2020. 3. 18.

CPU는 작업을 할 때 time slicing 기법을 이용하여 작업을 동시에 처리한다. 

예를 들어 A B C라는 작업을 진행할 때, 한번에 처리하는 양이 5씩이라고 가정하자.

A라는 작업 5, B라는 작업 5, C라는 작업 5, 또 모든 작업이 끝나면 다시 돌아와서 A라는 작업을 반복하는 식으로 진행한다. 이렇게 초당 34억번을 연산하게 된다. 이렇게 계속 루프하는 방식을 Round Robin(RR)방식이라고 한다.

 

하나의 프로세스는 연산 -> 쓰기 > 연산의 방식을 사용하는데, 쓰기를 진행하는건 하드디스크이며, 이때 CPU는 아무것도 하지 않고 휴식을 취한다. 따라서 최종 목적은 CPU가 쉬지 않게 계속 일을 시키는 것이다.

 

집에서는 흔히 데이터 통신이 필요한 여러 작업을 하게 된다.

각각의 프로그램은 통신을 통해 각각의 서버로 이동한다. 통신하는 이 흐름을 Byte stream(빨간색)이라고 한다. 이 흐름을 통해 주고받는 것을 I/O라고 한다. 통신을 할 때 신호가 각각의 포트를 통해 이동한다. 포트는 항구를 의미한다. 쉽게 말해, 집을 떠나 데이터가 항구처럼 머무른 후 서버로의 항로(Byte stream)을 이동하는데의 일종의 관문이라고 볼 수 있다.

이 포트는 고유번호가 있다. 물론 랜선을 연결하는 '물리적' 포트는 하나지만 우리는 다양한 일을 하며 하나의 포트로 각각 다른 서버로 신호를 보낸다. 이걸 가능케 하는 방식이 time slicing법이다. 따라서 통신을 하는 보이지 않는 '논리적' 포트는 65536개가 있다.

컴퓨터, 특히 운영체제를 윈도우로 쓰는 경우는 이 모든 포트를 우선적으로 막아두고(포트가 열려있을수록 보안에 취약해진다) 하나하나씩 허가를 통해 열어가는데, 이 우선적으로 막아두는 방식을 '방화벽'이라고 한다. 이 논리적 포트는 통신이 필요한 모든 프로세스마다 하나씩 존재하고, 같은 번호의 포트를 공유하는 프로그램이 있을경우 충돌이 일어난다.

 

그렇다면 데이터베이스라는것은 왜 나온 것일까?

데이터베이스는 파일시스템의 단점을 극복하기 위해 나왔다. 파일은 다수의 사용자가 접근 불가능하고, 데이터의 무결성(일관성, 중복, 정확성)을 확보할 수 없는데다가 데이터의 공유가 불가능하다. 데이터베이스는 중복을 허가하지 않는다. 

데이터베이스에서 가장 많이 사용하는 회사(프로그램)이 oracle이다. 

반응형