전체 글
-
그림으로 공부하는 오라클 구조 : 커넥션과 서버 프로세스의 생성STUDY/DB 2022. 5. 30. 00:32
1. 오라클의 접속 동작 1.1 소켓의 동작 오라클은 TCP/IP의 소켓(socket)을 네트워크 통신 수단으로 사용하고 있다. 한 번 소켓을 만들어 두면 소켓을 읽고 쓰기만 해도 송수신을 구현할 수 있으므로 프로세스의 측면에서 편리한 기능이다. 네트워크의 드라이버와 OS의 라이브러리가 송수신을 수행하며, 네트워크 안에는 여러 개의 소켓이 존재한다. 소켓은 '주소(address)'와 '포트(port)번호'라고 불리는 번호의 조합으로 식별할 수 있고, 소켓의 연결에서 중요한 부분은 연락이 오기만을 기다리는 프로세스가 존재한다는 점과 연결할 때는 송신 측에서 '주소'와 '포트'를 반드시 지정해야 한다는 점이다. 1.2 오라클에서 소켓의 동작 오라클에서도 위 그림과 같이 동작하며, 오라클에서는 수신을 기다리는..
-
그림으로 공부하는 오라클 구조 : 오라클의 기동과 정지STUDY/DB 2022. 5. 15. 21:38
1. 기동과 정지 오라클을 창고회사라고 비유했을 때, 기동은 창고 회사의 업무 시작이고, 정지는 창고 회사의 업무 종료를 의미한다. - 기동(업무 시작)의 흐름 사원(영업 제외)이 출근함 창고에 관한 정보(관리 대장)를 조사함 창고를 대충 훑어본 뒤, 문제가 없다면 창고를 열어 업무를 시작함 - 정지(업무 종료)의 흐름 업무(SQL이나 트랜잭션 등)가 끝나는 것을 기다린다. 단, 급할 때는 업무 중이더라도 업무 처리를 중지함(종료 명령어 옵션으로 지정 가능) 작업장의 물건(캐시상의 데이터)을 창고(파일)에 정리한다. 단, 급할 떄는 작업장의 물건들을 정리하지 않음.(종료 명령어 옵션으로 지정 가능) 사원이 퇴근함(프로세스의 종료) * 컨트롤 파일이란, 데이터베이스의 구성 정보가 적혀 있는 파일로서 데이터..
-
그림으로 공부하는 오라클 구조 : SQL문 분석과 공유 풀STUDY/DB 2022. 5. 9. 00:17
1. SQL문의 분석과 공유 풀을 배워야 하는 이유 디스크를 늘리고 클럭이 빠른 CPU를 추가하더라도 처리 방법 자체가 나쁘면, 안좋은 장비에서 동작하지만 처리 방법이 더 효율적인 RDBMS에게 밀리게 된다. 또한, SQL문을 처리하는 방법을 생성하는 데는 CPU를 오래 사용하므로, 처리 방법을 생성하는 횟수를 줄이면 데이터베이스 전체의 성능을 높일 수 있다. 2. SQL문과 일반적인 프로그래밍 언어의 차이 가장 큰 차이점은 SQL은 '처리 방법(절차)'을 기술하지 않는다는 점이다. 프로그래밍 언어는 객체지향 언어, 스크립트 언어에 상관없이 처리 방법(어디선가 데이터를 꺼내와서 반복문을 수행하고 조건문을 사용해 분기를 시킨다)을 기술해야 한다. 반면에, SQL문에서는 '데이터의 조건이나 관계'만을 기술한..
-
그림으로 공부하는 오라클 구조 : 캐시와 공유 메모리STUDY/DB 2022. 5. 8. 22:03
1. 캐시 일반적으로 캐시를 '작업장'이나 '작업대'에 비교 캐시의 목적은 빈번하게 사용하는 데이터를 매번 디스크에서 꺼내오지 않고 캐시라고 불리는 메모리에 둠으로써 빠르게 사용할 수 있도록 하는 것이다. 메인 메모리에는 프로세스가 사용한 메모리(변수 등)는 물론, 캐시가 놓여 있다. 디스크의 데이터를 처리해야 할 때, 메모리(캐시)에 같은 데이터가 존재하면 디스크에서 읽을 필요없이 CPU에게 데이터를 직접 건네줄 수 있다. - 오라클에서의 데이터 캐시(버퍼 캐시) 동작 버퍼 캐시에 놓여 있는지 확인 데이터를 버퍼 캐시에서 빠르게 꺼내와서 처리 캐시를 히트하면 처리 속도가 느린 디스크를 사용할 필요가 없기 때문에 SQL문의 처리 속도가 빨라진다. 버퍼 캐시에 놓여 있는지 확인 데이터를 디스크에서 읽어 옴..
-
그림으로 공부하는 오라클 구조 : 오라클의 여러 프로세스STUDY/DB 2022. 4. 25. 00:00
오라클 - DBMS인 오라클은 해당 데이터를 디스크에 저장하고 관리한다. 오라클을 포함한 DBMS의 기본적인 동작은 데이터를 보관하고, 요구에 따라 데이터를 반환한다. - 오라클은 SQL문과 그 결과 데이터를 프로그램과 송수신한다. - 프로그램은 여러 개 존재할 수 있으며, 오라클의 프로세스도 여러 개 존재한다. 데이터베이스를 사용하지 않는 애플리케이션의 프로그래밍에서는 각각의 프로세스가 자신이 가진 변수(데이터)를 처리하는 것이 일반적이다. 같은 프로그램이 여러 개 실행되었다 하더라도 실제로 변수는 개개의 프로그램마다 존재하기 때문에 프로세스간의 간석을 신경 쓸 필요없이 데이터를 건드려도 문제가 없다. 하지만 데이터베이스에서는 여러 프로세스나 사용자가 하나의 데이터베이스(데이터 집합)에 접근하기 때문에..
-
그림으로 공부하는 오라클 구조 : I/O와 디스크의 관계STUDY/DB 2022. 4. 24. 22:30
- 오라클을 이해하기 위한 키워드 1. 병렬 처리를 가능케 하고 높은 처리량을 실현한다. 2. 응답 시간(response time)을 중시한다. 3. 커밋(commit)한 데이터는 지킨다. DBMS의 내부 구조는 복잡한데, 그 이유는 위 세 가지 특성을 충족시켜야하는데 세 가지 특성이 상반된 성향을 가지고 있어서 동시에 모두 만족시키기 어렵기 때문이다. ex1) '커맛(commit)한 데이터는 지킨다.' 를 만족하기 위해 커밋하는 순간 데이터를 디스크에 기록하고 싶지만, 그렇게 하면 응답 시간이 나빠지게 된다. ex2) '벙렬 처리를 가능케 하고 높은 처리량을 실현한다' 도 병렬 처리할 때는 모순되는 처리가 발생하지 않도록 Lock이 필요하며, 그로 인해 성능이 저하되는 경우가 발생할 수 있다. - 오라..
-
Apache MPMSTUDY/백엔드 2022. 1. 13. 01:27
MPM(Multi Processing Module)은 다중 처리 모듈의 약자로, 클라이언트로부터 받은 요청을 어떤 방식으로 처리할 것인지에 대해 결정하는 모듈을 말한다. 아파치에서 가장 대중적으로 사용하는 MPM에는 Prefork, Worker, Event 방식이 존재한다. Prefork 미리 복수의 프로세스를 생성하여 클라이언트의 요청에 대비하는 멀티프로세스 방식이다. 하나의 요청에 대해서 하나의 자식 프로세스가 하나의 스레드를 사용해서 처리하는 방식이다. 동시에 여러개의 요청이 들어올 경우, 미리 생성되어 있는 자식 프로세스에서 각 요청을 처리한다. 각 프로세스들의 자원이 독립적이기 때문에(프로세스 복제시 메모리 영역까지 복제), 다른 요청이 들어오거나 프로세스 하나에 오류가 발생해도 다른 요청에 영..
-
프로젝트 성패를 결정짓는 데이터 모델링 이야기2STUDY/DB 2021. 7. 8. 14:04
story 07. Back to the Basic, 정규화 이론 - 데이터 이상 현상이 존재하는 테이블 학번 과목코드 성명 과목명 평가코드 101 CR03 박영진 공업수학 C 101 CR11 박영진 심리학개론 A 103 CR11 김영희 심리학개론 B 103 CR15 김영희 논리학개론 F * 데이터 이상 현상 : 표를 구성하는 속성의 값을 수정할 떄나 표에 새로운 개체를 삽입하거나 삭제할 때 의도하지 않은 다른 데이터에 문제가 발생하는 현상 평가코드 결과가 없는 홍길동이라는 학생에 대한 정보는 입력이 불가하다. 과목코드가 CR11인 과목의 이름이 다른것으로 변경되면, CR11 관련 열을 모두 찾아서 수행해야 한다. 김영희의 F학점 평가 결과를 삭제하면 논리학개론 과목도 같이 삭제된다. 데이터 이상 현상이 ..