본문 바로가기

ORACLE/DB15

OCP 12c 자격증 취득 후기 :: 필요한 모든 것! OCP 12c 자격증 취득하다. OCP 12c 자격증은 2020년도에 취득했습니다. 시험은 준비는 2020년도 4월부터 했고 시험은 6월달에 마무리하고 자격증은 8월달에 나왔네요. 백번 말하는 것보다 제 자격증을 올려 보여드리는게 제 글에 신빙성이 있을거라 생각이들어서....자랑자랑... ㅎㅎ 취득할 때 블로그에 글을 남기겠다고 마음잡고 있었는데... 어느덧 6개월정도가 지나서 글을 쓰네요. 우선 이 글을 쓰는 목적은.... OCP 취득 시험 종목과 방법이 2020년도 부터 바뀌었어요. 그리고 검색하면 대부분 2018년도 이전 내용이 많더라구요.... 그래서 시험 준비 당시 많은 정보를 얻지 못해서 나름 최근? 시험 정보에 대해서 정리하면 OCP 자격증을 준비하고 계신 분들에게 도움이 될것 같아 이렇게 .. 2021. 3. 15.
[Oracle] 오라클 책 추천 DBA가 되고 싶은 엔지니어들을 위한 feat. OCP, SQLP에 도움 되는 책 오라클 책 추천 오라클 데이터베이스에 대해서 공부하려고하는데... 생각보다 얻을 수 있는 정보를 찾기 힘듭니다. 온라인강의의 커리큘럼을 보면 대부분 SQL사용법에 대한 내용에서 끝나고 오라클 데이터베이스를 이해하기 위한 내부 성능과 원리 아키텍처와 같은 부분에 대한 강의할 찾아보기 힘듭니다. 검색을 해서 데이터베이스에 대한 정보를 찾아도 많은 정보를 찾기가 힘들것입니다. 한때 DBA를 꿈꾸고 OCP와 SQLD를 취득하면서 도움이 되었던 책들을 공유해보고자 합니다. 1. 오라클 성능 고도화 원리와 해법 1,2 디비안 오라클 성능 고도화 원리와 해법 1 COUPANG www.coupang.com 오라클 성능 고도화 원리와 해법. 2:효율적이고 신뢰할 수 있는 데이터베이스 구축을 위한 실증 COUPANG ww.. 2021. 3. 15.
[Oracle] Sample Schema HR, OE, PM, IX, SH, BI 생성 Oracle Sample Schema 오라클 데이터베이스를 수동생성하거나 Sample Schema를 추가하지 않는 경우 테스트할 수 있는 데이터가 없습니다. 오라클에서 제공해주는 샘플 스키마로 6가지가 있습니다. HR : Human Resource OE : Order Entry PM : Product Media IX : Information Exchange SH : Sales History BI : Business Intelligence 해당 글에서는 위 6개의 샘플 스키마를 수동으로 생성하는 방법을 알려드리겠습니다. Sample Schema 생성 실습환경 OS : Red Hat Enterprise Linux Server release 6.10 DB : Oracle 12.1.0.2 SID : testdb.. 2020. 7. 15.
[Oracle] 문장수준 읽기 일관성 Consistent Mode, Current Mode 차이 :: 마이자몽 Dirty Read Commit되지 않은 데이터를 다른 Transaction에서 읽을 수 있다면 어떤 현상이 발생할 수 있을까요? 최종 연봉 계산하는 예시로 발생할 수 있는 현상을 알아 보겠습니다. 최종 연봉은 현재 연봉 + 퇴직금 + 인센티브로 최종 결정되는 것으로 가정해보겠습니다. 만약 Commit되지 않은 데이터를 다른 Transaction에서 읽을 수 있다면, 데이터를 읽는 시점에 따라 다른 결과 값을 읽습니다. 퇴직금까지만 합산했을 때 데이터를 읽으면 3900이되고 인센티브까지 합산했을 때 4200의 값을 읽습니다. 즉, 일관성 없이 데이터를 읽기 때문에 연산 과정에서 최종값이 아닌 중간값을 받아오는 문제가 발생할 수 있습니다. 이렇게 Commit되지 않은 데이터를 다른 Transaction에서.. 2020. 3. 30.
[Oracle] Transaction Dead Lock 발생 실습, 이론 말고 직접 만들어 보자 :: 마이자몽 Transaction Dead Lock 교착상태 잘못된 자원 관리로 인하여 둘 이상의 프로세스가 함께 멈추어 버리는 현상.......... 도저히 무슨 말인지 모르겠습니다. 간단하게 설명하자면, Transaction이 서로 꼬여서 작업이 멈춰버리는 것 입니다. Dead Lock 교착상태에 대한 정보를 검색해보면 위와 비슷한 내용의 정의를 내립니다. 또 교착상태로 빠질 수 있는 4가지조건이라고 해서 상호 배제(Mutual Exclusion), 점유와 대기 Hold and Wait, 비선점(No Preemption), 환형대기(Circular Wait) 이런 이론적인 내용 밖에 안나옵니다. 중요한 내용이고 꼭 알아야하는 내용은 맞지만... 글로만 봐서 대충 무슨 느낌인지는 알겠는데, 정확히 모르겠고... 이.. 2020. 3. 26.
[Oracle] 오라클 INDEX 사용하는 이유 원리 장점 단점 :: 마이자몽 INDEX를 사용하는 가장 큰 이유는 속도의 향상을 위해서 사용됩니다. INDEX 구조를 만들어주면 FULL SCAN에서 모든 테이블 데이터를 읽어오는 방법과는 다르게 ROOT - BRANCH - LEAF - DATA BLOCK총 4번의 IO를 통해서 접근이 가능합니다. 데이터가 100건이든 100만건이든 속도차이는 많이 안난다는 장점이 있습니다. INDEX란? 모든 테이블에는 ROWID라는 칼럼이 있습니다. ROWID = FILE 번호 + BLOCK 번호 + ROW번호로 구성되어 있습니다. "7번파일에 132번 블록에 3번째" 이런 식으로 해당 데이터의 주소라고 볼 수 있습니다. INDEX는 이런 ROWID를 통해 DATA BLOCK에 접근 합니다. INDEX는 데이터를 빠르게 찾기 위해 오름차순으로 .. 2020. 3. 25.
[Oracle] Transaction 왜 사용하는 걸까요? :: 마이자몽 은행 송금처리 A계좌에서 B계좌로 $5,000를 정상적으로 송금하는데 처리되는 과정입니다. A계좌에서 B계좌로 송금 요청을 하면 1. A계좌에서 $5,000를 출금합니다. 2. B계좌에 $5,000를 입급합니다. 그럼 결과로 A계좌에는 $5,000 B계좌에는 $10,000가 되어야합니다. 위 이미지는 송금 처리 과정에서 오류가 발생한 경우 입니다. 1. A계좌에서 $5,000를 출급합니다. 2. 에러 발생 송금처리 과정에서 오류가 발생하여 A계좌에서 $5,000를 출금하고 B계좌로는 돈이 입금되지 않아 $5,000가 사라집니다. 실제 은행에서 위와 같은 문제가 발생한다면 여러 방면으로 엄청난 피해가 발생할 것 입니다. 예상하지 못한 상황에서 오류가 발생하여 하여 데이터의 부정합이 발생하는 경우, 다시 원.. 2020. 3. 25.
[Oracle] Synonym 동의어 왜사용할까요? :: 마이자몽 Synonym 이란? Oracle에는 Synonym이란 객체가 있습니다. 객체에 대해서 영속적으로 별명을 지어주는 것. 테이블 ALIAS와는 다르게 임시적인 별명이 아닌 영속적으로 별명을 부여하는 것이 Synonym입니다. Oracle Database를 사용해보면서 한번도 Synonym을 만들어보지 않아서 사용을 한번도 안했다! 라고 생각하실수도 있는데... 우리는 이미 Synonym을 사용하고 있습니다. 1 SELECT SYSDATE FROM DUAL; DUAL이라는 임시 테이블은 SYNONYM입니다. DUAL테이블은 모든 계정에서 스키마 없이 DUAL이라는 명칭으로 사용되고 있습니다. DUAL도 임시적으로 사용되는 테이블인데 왜 스키마 없이 DUAL이라는 명칭으로 사용이 가능했을까요? DUAL 테이블.. 2020. 3. 24.
[Oracle] 오라클 Sequence auto_increment 사용 및 정리 :: 마이자몽 새로운 사원 INSERT 새로운 사원이 입사하여 Database에 Insert하려고합니다. 순차적인 번호로 사원ID를 부여해줍니다. 이때 1006이라는 사원ID를 어떻게 받아와서 Insert 시킬까요? MAX(사원ID) + 1 ? MAX 함수를 이용해서 사원ID의 최대값을 받아서 1을 더해준 값을 Insert할 수 있습니다. 하지만 성능의 문제가 생깁니다. 1000정도의 숫자는 무리가 없지만 데이터의 양이 늘어날수록 부하는 커질 것 입니다. INDEX 사용 ? INDEX를 사용할수도 있습니다. index의 맨 마지막 블럭을 찾도록 하면 Root - Branch - Leaf 총 3단계에 걸쳐 마지막 번호를 받아올 수 있습니다. 퍼포먼스를 높일 수 있는 좋은 방법이지만, Sequence를 사용하면 더 빠르게.. 2020. 3. 23.
[Oracle] 오라클 뷰(View) 사용법 및 정리 :: 마이자몽 View 란? View는 저장된 SELECT 문이다. 오라클에는 테이블말고도 데이터를 읽어 올 수 있는 오브젝트가 있습니다. FROM절에서 사용할 수 있는 것은 테이블만이 아니라는 것입니다. 대표적으로 View라는 오라클 오브젝트를 이용해서 데이터를 조회할 수 있고 실제로 현업에서도 많이 사용되는 오브젝트입니다. 그럼 View는 무엇이고 왜 사용하는 것 일까요? "View는 저장된 SELECT 문"이라고 표현했습니다. 사전적 의미로 "데이터의 논리적 부분집합"이라고 하는데요, 실질적으로 View를 SELECT문을 이용해서 생성하기 때문에 위와 같이 표현했습니다. 그럼 데이터의 논리적 부분집합이라는게 무엇일까요? 데이터의 논리적 부분집합? 데이터의 논리적 부분집합이란 것은 물리적으로 존재하지 않는 테이블을.. 2020. 3. 22.