본문 바로가기

전체 글

(100)
Breadth-first search 기본개념 알고리즘 공부를 시작하면서 생소한 단어들이 너무나 많고 개념도 잡히지 않은 상태 이기 때문에 간단히 정리 하고자 한다. 우선 넓이우선탐색(BFS)은 트리를 예로 들어서 많이 설명해 주는 것 같았고 반대되는 개념으로는 깊이우선탐색(Depth-First Search) 있다. 단어 뜻 그대로 가장 깊은곳을 먼저 탐색하느냐 or 내 주위에 가까운 곳부터 전부 탐색하고 다음 깊이의 단계를 탐색 할 것 인지를 구분하고 있다. 넓이 우선 탐색 은 물결처럼 퍼지듯 가까운 경로의 후보부터 탐색을 한다고 하는데 아래의 그림을 보면 바로 이해는 된다. 위의 그림에서 처럼 BFS 는 depth 가 같은 노드를 먼더 탐색하고 다음 depth로 이동 한다. 그런데 두 탐색알고리즘의 장점은 무엇일까?? 장점 1. BFS를 사용하면..
Oracle Data Dictionary 란?? Data Dictionary 데이터 사전(Data Dictionary)이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 한다. 오라클 데이터베이스는 명령이 실행 될 때 마다 데이터 사전을 Access 한다. DB작업동안 Oracle은 데이터 사전을 읽어 객체의 존재여부와 사용자에게 적합한 Access 권한이 있는지를 확인 한다. 또한 Oracle은 데이터 사전을 계속 갱신하여 DATABASE 구조, 감사, 사용자권한, 데이터등의 변경 사항을 반영 한다. ​ Data Dictionary 에는 DB를 구성하는 모든 요소에 대한 정보를 가짐. - 오라클의 사용자 정보 - 오라클 권한과 롤 정보 - 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, C..
Sequential Access & Random Access 비교 ​ Sequential Access 논리적 또는 물리적으로 연결된 순서에 따라 순차적으로 Block을 읽는 방식. 근데 Block간에는 서로 연결되어 있지 않다고 하는데... 그러면 다음 Block을 어떻게 알고 순차 적으로 읽을 수 있을까?? 답은 어제 정리한 Sagment 에 있다. (잘 기억이 나지 않는다면 ... 어제 정리한 Data Block과 Clustering Factor의 이해 를 보자.) Sagment Header 에 Extent정보를 Map 으로 가지고 있고 해당 Extent의 첫 Block부터 연속해서 읽게되면 위에서 설명 한 Sequential Access 가 가능하게 되는 것 이고 이러한 방식을 Full Table Scan 이라고 한다. ​ Random Access 어떤 파일내에 ..
Data Block과 Clustering Factor의 이해 Data Block 이란? - Oracle DB에서 데이터 검색과 저장의 가장 기본 단위로서 (8K, 16K, 32K, 64K) 단 하나의 레코드를 읽더라도 최소 1 Block은 Access 해야된다. ​ Segment, Extent, Data Block Segment, Extent, Data Block ​ ​ Clustering Factor Index key Column 을 기준으로 데이터들이 얼마나 잘 정렬 되어 있는지를 나타내는 수치 예) 메모리에 단 하나의 Bloc만들 담을 수 있고 이때 Index scan 시 테이블 블록의 access 횟수 아래 그림은 공부하고 있는 강의 자료에서 보여주는 그림이다 (Good / Bad Clustering Factor 비교) Good / Bad Clusterin..