오라클의 자료구조 중 인덱스에 대해 알아보고, 인덱스에 액세스하기 위한 방식 다섯 가지에 대해 소개한다.그리고 인덱스 액세스가 문제 없이 잘 일어나도록 하려면 어떻게 SQL을 작성해야 좋을지 세 가지 팁을 준비했다.1. 인덱스란? 인덱스란 해당 데이터에 접근하기 위한 방식 중 하나이다. 다양한 인덱스 구조가 있지만, 이번 포스팅에서는 가장 범용적으로 사용되는 B-Tree 인덱스를 다룬다. 1.1 인덱스의 구조 B-Tree 인덱스 구조에서는 브랜치와 리프로 블록을 구성해서 정렬 정보를 저장하고 있다. 책에 비유하자면 브랜치 블록에는 대목차 정보가 담겨있고, 리프 블록에는 소목차와 페이지 정보가 담겨있다. (1) Branch Blocks (브랜치 블록)브랜치 블록은 인덱스의 상위 수준의 블록으로 검색 경로..
데이터베이스 Database
0. Introduction 데이터 아키텍트로 일하면서 가장 큰 조바심은 DBMS에 대한 공부가 끝이 없다는 데에서 온다. 끝없어 보이는 공부거리를 마주하면서도 위안이 되는 포인트가 있다. 평생을 DB를 다루며 일해온 직업인들에게도 낯선 DBMS를 다뤄야 하는 프로젝트는 피할 수 없는 숙명이라는 점이다. 세상에는 다양한 DBMS가 있다. RDBMS만 하더라도 Oracle, MySQL, SQL Server, PostgreSQL, DB2 등 다양한 DBMS가 존재한다. 이들은 모두 SQL로 조작이 가능하다는 공통점이 있지만, 각 DBMS 별 뚜렷한 특징을 가진다. DBMS별 개성이 다른만큼 한 기업 내에서도 서비스의 특성에 맞추어 DBMS를 다양하게 선택하여 사용하고 있다. 데이터 아키텍트들도 각 개인의..
이번 포스팅에서는 프로젝트 수행 사례를 통해 데이터 품질 점검을 위한 비즈니스 규칙 유형에는 어떤 것이 있는지, 그리고 실제로 품질 진단 측정을 위한 SQL 쿼리는 어떻게 작성해야 하는지에 대해서 공유하고자 한다. Intro_ 프로젝트 개요 이번 프로젝트에서는 크게 두 가지 업무를 수행했다. (1) 데이터 자산화 첫번째는 데이터 자산화 업무로, 고객사의 시스템별로 존재하는 테이블 및 컬럼 정보를 수집해서 데이터 모델을 작성해 총 10,000여 개의 테이블을 가시화했다. 이 중 미사용 테이블을 제외하고 사용 중인 테이블 5,000 개에 대해서는 한글화 및 용어 표준화 작업도 진행하였다. (2) 데이터 품질 관리 두번째는 고객사에서 품질 관리 활동이 가능하도록, 데이터 품질 관리에 필요한 지침을 수립하고 고..
Intro 이번에 투입된 프로젝트는 데이터 거버넌스를 구축하는 프로젝트였다. '데이터 거버넌스'는 사실 포괄적으로 사용되는 용어이기 때문에, 고객사에서 '거버넌스'를 어떻게 바라보는가에 따라서 수행 영역이 달라지는 것 같다. 일반적으로 이론화된 데이터 거버넌스를 구성하는 요소는 다음과 같다. 데이터 거버넌스란? 전사적인 데이터 관리 방향을 제시하고 통제하는 활동 전반을 말한다. 1. 원칙 및 프로세스 - 비전 및 원칙, 업무에 대한 문서화를 말함 - e.g. 데이터 관리 체계 정의서, 데이터 모델 관리 지침서, 데이터 표준 지침서, 데이터 품질 지침서 등 2. 조직 - 담당자 및 R&R 정의 3. 관리 도구 - 메타데이터, 데이터 표준 승인 관리, 데이터 품질, 데이터 모델 관리 도구 등 이번 프로젝트에..
Intro 나는 DBMS 아키텍처나 SQL을 공부할 때, 모두 'Oracle’을 기준으로 배웠다. 그런데 막상 프로젝트에 투입되니 샤용해야 할 DBMS는 사이트마다 천차만별어서 기존에 알던 것들이 무용지물이 되었다. (지금 프로젝트에서는 Sybase ASE, HANA, IQ와 PostgreSQL을 주로 사용하고 있다.) DBMS에 따라서 완전히 다르게 동작하는 경우가 많아서 마치 새로운 세계관 속에 들어와있는 것처럼 느껴진다. 처음에는 DBMS별로 함수의 차이부터 비교를 해보다가 세부적인 차이가 너무 많아서 1:1 비교도 불가능할 정도라는 걸 느끼고 이 무용한 작업을 때려치웠다. 대신, 새로운 DBMS를 만났을 때 어떤 점을 먼저 확인해보면 좋을지 일종의 체크리스트를 만들어 보기로 했다. 그 시작으로, ..
1. 개요 오라클 클라우드 사인인(Sign in)을 하려는데 아래 과정을 모두 마친 분들을 위한 글입니다. 메일 인증 완료 지급 검증 방법 입력 완료 ✅ Thank you! 메시지 확인 여기까지 다 되면, 팝업을 닫고 "내 무료 체험판 시작하기"만 누르면 될 것 같은데.... 2. 체크포인트 세 가지 마지막 단계인 "내 무료 체험판 시작하기"에서 자꾸 실패하시는 분들, 아래 세 가지를 확인해보세요. (1) 마스터/비자/아멕스 신용카드가 맞는지? 체크카드🙅♀️✖️ 오라클은 체크카드를 받지 않습니다. (2) 해외 결제(온라인)가 가능한 카드인지? 온라인 해외 결제가 가능한 카드여야 합니다. 차단된 경우가 있으니 카드사 홈페이지나 애플리케이션에서 설정을 확인하세요. (3) 카드사에 영문 빌링 주소가 등록되어..
책의 목차 4. SQL문 분석과 공유 풀 4.1 SQL문의 분석과 공유 풀을 왜 배워야 하는가? 4.2 SQL문과 일반적인 프로그래밍 언어의 차이 4.3 서버 프로세스와 분석 4.4 실행 계획이 최적이라는 것을 판단하기 위해서는? 4.5 공유 풀의 동작과 구조 4.6 수치로 알아보는 분석과 공유 풀의 정보 4.7 요약 5 .오라클의 기동과 정지 5.1 기동과 정지를 왜 배워야 하는가? 5.2 오라클의 기동/정지의 개요 5.3 업무의 시작에 해당하는 오라클의 기동 5.4 인스턴스, 데이터베이스, 그리고 주요 파일의 구성 5.5 기동 처리의 흐름과 내부 동작 5.6 업무 종료에 해당하는 오라클의 정지 5.7 데이터베이스를 수동으로 생성하기 5.8 요약 SQL문 분석과 공유 풀 SQL문 분석 규칙 기반 비용 ..
책의 목차 3. 캐시와 공유 메모리 3.1 어째서 캐시가 필요한 것인가? 3.2 그래서 캐시란 대체 무엇인가? 3.3 데이터는 블록 단위로 관리 3.4 캐시를 사용해서 인덱스 검색을 효율적으로 3.5 프로세스는 캐시를 공유 3.6 공유 메모리에 필요한 설정 3.7 공유 메모리는 어떤 식으로 보이는가? 3.8 버퍼 캐시를 정리하는 LRU 알고리즘 3.9 오라클뿐만이 아닌 OS나 스토리지에 대해서도 생각하자 3.10 요약 요약 내용 캐시 메모리 사용으로 디스크 처리량을 줄이기 위해 사용 튜닝 포인트 IT일반용어 캐시 vs. 오라클 캐시 IT 일반 : 작업 CPU 캐시 데이터 캐시 오라클 버퍼 캐시 오라클 버퍼 캐시 블록 단위 관리 사이즈: 2KB, 4KB, 8KB✅, 16KB(DW), 32KB 중 선택 sp..
책의 목차 1. I/O와 디스크의 관계 1.1 오라클을 이해하기 위한 필수 키워드 1.2 오라클과 디스크(하드디스크) 1.3 디스크의 동작 1.4 데이터를 보증하기 위한 디스크 1.5 요약1.1 오라클을 이해하기 위한 필수 키워드 2. 오라클의 여러 프로세스 2.1 오라클의 역할 이미지 2.2 데이터베이스의 데이터는 모두의 것 2.3 오라클이 여러 개의 프로세스로 구성된 이유 2.4 서버 프로세스와 백그라운드 프로세스의 역할 2.5 각 프로세스가 수행하는 처리 2.6 요약 요약 내용 1. I/O와 디스크의 관계 오라클의 키워드 ➡️ 서로 상반되는 성질 병렬처리 = 높은 처리량 모순 없는 병렬처리를 위해 Lock 필요 응답 시간 커밋한 데이터의 보호 디스크 기록을 자주하면 응답시간이 나빠짐 디스크 구성 디..
CSV 파일 임포팅 데이터 임포트 방식 LOAD CSV Cypher의 built-in clause를 사용해 LOAD CSV를 통해 CSV 파일을 import 할 수 있음 APOC library - JSON, XML JSON, XML 파일을 불러오기 위해서는 APOC library를 사용함 CSV 파일도 APOC으로 불러올 수 있음 이 경우에는 Cypher 코드 없이 불러올 수 있음 Neo4j 지원 데이터 타입 그래프에 활용이 가능한 데이터 타입은 아래와 같음 String Long (integer values) Double (decimal values) Boolean Date/Datetime Point (spatial) StringArray (comma-separated list of strings) Lo..
중복 데이터 중복 속성 만들기 MATCH (apollo:Movie { title: 'Apollo 13', tmdbId: 568, released: '1995-06-30', imdbRating: 7.6, genres: ['Drama', 'Adventure', 'IMAX'] }) MATCH (sleep:Movie { title: 'Sleepless in Seattle', tmdbId: 858, released: '1993-06-25', imdbRating: 6.8, genres: ['Comedy', 'Drama', 'Romance'] }) MATCH (hoffa:Movie { title: 'Hoffa', tmdbId: 10410, released: '1992-12-25', imdbRating: 6.6, ge..
Neo4j 그래프아카데미의 'Graph Data Modeling Fundamentals'의 내용을 정리한 내용입니다. 관계 모델링 절차 좋은 이름 짓기 관계 생성 관계명, 방향이 선언되어야 한다 방향 Direction 관계는 통상적으로 2개 노드 사이에 형성됨 (재귀적) 그러나 하나의 노드에도 형성할 수 있음 속성 Properties 노드/관계 생성 MERGE (:Label) - [:RELATION] - (:Label) //alias 선언 MATCH (sandy:User {name: 'Sandy Jones'}) MATCH (sleep:Movie {title: 'Sleepless in Seattle'}) //관계 생성 MERGE (sandy)-[:RATED {rating:4}]->(sleep) 위 문장과 ..