STUDY/DB
-
그림으로 공부하는 오라클 구조 : 오라클의 기동과 정지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이 필요하며, 그로 인해 성능이 저하되는 경우가 발생할 수 있다. - 오라..
-
프로젝트 성패를 결정짓는 데이터 모델링 이야기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학점 평가 결과를 삭제하면 논리학개론 과목도 같이 삭제된다. 데이터 이상 현상이 ..
-
JOINSTUDY/DB 2021. 7. 6. 17:16
JOIN 관계형 데이터베이스에서는 중복 데이터를 피하기 위해서 데이터를 쪼개 여러 테이블로 나눠서 저장한다. 이렇게 분리되어 저장된 데이터에서 원하는 결과를 도출하기 위해서는 여러 테이블을 조합해야 한다. 관계형 데이터베이스에서 조인(JOIN) 연산자는 관련 있는 컬럼을 기준으로 행을 합쳐주는 연산이다. INNER JOIN : 내부조인 - 교집합 LEFT / RIGHT JOIN : 차집합 OUTER JOIN : 외부조인 - 합집합 (ORACLE에는 존재하지만, MYSQL에는 없어 LEFT+RIGHT조인으로 사용된다.) 1. INNER JOIN : 내부조인 - 교집합, 공통적인 부분만 SELECT SELECT A.ID, A.NAME, B.AGE FROM A INNER JOIN B ON A.ID = B.ID..
-
프로젝트 성패를 결정짓는 데이터 모델링 이야기1STUDY/DB 2021. 6. 25. 11:59
story 01. 데이터 모델링은 일상 가까이 존재한다. - 자동차 동호회 예시를 통한 데이터 모델링 성명 나이 주소 이메일 휴대폰 제조사 차종 색상 배기량 년식 홍길동 35 서울시 hong@naver.com 010-1234-5678 랜드로버 이보크 WHITE 2200 2012 김철수 42 경기도 kim@naver.com 010-9876-5432 현대 벨로스터 RED 1600 2010 고주몽 51 경기도 go@naver.com 010-4569-7825 아우디 A7 SILVER 3000 2013 문제1. 만약 회원이 보유한 차량이 두 대 이상인 경우 이메일이나 휴대폰과 같은 개인정보가 차량 대수만큼 반복된다. 해결1. 위와 같은 경우가 발생하면 회원 명부라는 관점보다는 회원의 차량 정보가 우선시 되는 느낌..