본문 바로가기 메뉴 바로가기

zeroco2

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

zeroco2

검색하기 폼
  • Develop (54)
    • Marketing (1)
      • GA (1)
    • Frontend (0)
      • Javascript (0)
    • Backend (10)
      • Spring & Spring Boot (5)
      • Spring Batch (2)
      • Java (3)
    • Data (25)
      • Oracle (3)
      • ELK (6)
      • Kafka (3)
      • Clickhouse (1)
    • Infra (7)
      • Linux (1)
      • Docker & k8s (5)
      • aws (0)
    • 개발지식 (2)
    • 문제해결 (8)
    • 일상 (0)
  • 방명록

Oracle (12)
[SQLD/SQLP] 분산 데이터베이스

* 중앙집중형 데이터베이스 - 데이터베이스 시스템 구축 시에 한 대의 물리적 시스템에 데이터베이스 관리 시스템(DBMS)을 서치하고 여러 명의 사용자가 그 DBMS에 접속하여 DB를 사용하는 구조를 중앙 집중형 데이터베이스라고 한다. * 분산 데이터베이스 - 물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고 분산된 작업 처리를 수행하는 데이터베이스를 분산 데이터 베이스 라고 한다. - 분산 데이터베이스를 사용하는 고객은 시스템이 네트워크로 분산되어 있는지의 여부를 인식하지 못하면서, 자신만의 데이터베이스를 사용하는 것처럼 사용할 수 있다. (데이터 베이스 투명성 제공) - 투명성은 분산 데이터베이스에서 중요한 요소이며 투명성에는 분할, 위치, 지역사상, 중복, 장애 ..

Data 2023. 3. 9. 14:04
Index Range Scan 보다 Partition이 유리한 이유?

Index Range Scan에서는 Root -> Branch -> Leaf로 조회 범위를 순차적으로 Scan하면서 ROWID를 가지고 Random Single Block I/O Access를 하는 형태이기 때문에 클러스터링 팩터가 매우 안좋을 경우에는 조회 건수 만큼 I/O가 발생할 수 있다. (넓은 범위를 조회하게 되면 성능이 나빠짐) 만약 특정 조건으로 넓은 범위를 읽어야 하고, 그 조건이 파티션 키 이면 해당 파티션을 Full Scan하여 Multi Block IO를 할 수 있기 때문에 Index Scan보다 유리하다. 또한 Full Scan이기 때문에 Parrallel Hint도 가능하다. * 클러스터링 팩터 - 데이터가 한 블록에 있는지? Index Scan시에 3개의 Row가 연속적으로 같은..

Data/Oracle 2023. 3. 8. 16:32
[SQLD/SQLP] 반정규화(De-Normalization)

1. 반정규화? - 데이터베이스 Select 시 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이기 위한 목적이 있음. - 데이터 모델의 유연성이 낮아짐 * 반정규화를 해야 하는 경우? - 특정 범위의 데이터만 자주 처리되는 경우 - 요약/집계 정보가 자주 요구되는 경우 - 다량의 범위를 자주 처리하는 경우 2. 반정규화 절차 * 무작정 반정규화 부터 고려하면안됨. 1) 대상 조사 및 검토 - 데이터 처리 범위, 통계성 등을 확인해서 반정규화 대상을 조사함. 2) 다른 방법 검토 - 쿼리 튜닝, 인덱스 튜닝, 클러시터링, 파티션, 코드단에서 해결 등 다른 방법으로 해결 할 수 있는지 먼저 확인한다. 3) 반정규화 수행 - 테이블, 속성, 관계 등을 반정규화 한다. 3. 반정규화 기법 1. 계산된 ..

Data 2023. 3. 8. 16:16
[SQLD/SQLP] 데이터 모델링(Data Modeling)

데이터 모델링? - 데이터 모델링은 현실세계를 데이터베이스로 표현하기 위해 추상화한다. - 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야한다. - 업무 프로세스를 이해하면, 데이터 모델링 표기법을 사용해서 모델링한다. - 데이터 모델리은 복잡하지 않도록 모델링을 해서 고객이 쉽게 이해할 수 있어야 한다. - 데이터 모델링은 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석 설계 하면서 점점 더 상세해진다. - 고객의 비즈니스 프로세스를 이해하고 비즈니스 프로세스의 규칙을 정의한다. 정의된 비즈니스 규칙을 모델로 표현한다. 1. 데이터 모델링의 특징 - 데이터 모델링은 추상화 해야한다. 공통적인 특징을 찾고 간략하게 표한한다. 1) 추상화 : 현실세계를 간략하게 표현한다. 2) 단순화 : 누..

Data 2023. 3. 8. 14:30
[SQLD/SQLP] 속성(Attribute) / 관계(Relationship)

1. 속성(Attribute) - 속성은 업무에서 필요한 정보인 엔터티가 가지는 항목이다. - 속성은 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다. - 인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다. - 테이블의 칼럼 같은 느낌 * 분해 여부에 따른 속성의 종류 1) 단일 속성 - 하나의 의미로 구성된 것(회원 id) 2) 복합속성 - 여러 개의 의미 (주소) 3) 다중값 속성 - 속성에 여러 개의 값을 가질 수 있는 것(상품 리스트) - 다중값 속성은 엔터티로 분해된다. * 특성에 따른 속성의 종류 1) 기본속성 - 비즈니스 프로세스에서 도출되는 본래의 속성 2) 설계 속성 - 데이터 모델링 과정에서 발생하는 속성 - 유일한 값을 부여(상품코드, 지점 코드) 3)..

Data 2023. 3. 8. 13:28
[SQLD/SQLP] 엔터티(Entity)

엔터티란? - 엔터티는 업무에서 관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야 하는 데이터이다. - 엔터티는 개념, 사건, 장소 등의 명사이다. 1) 식별자 - 엔터티는 유일한 식별자가 있어야 한다. - ex) 고객 테이블 - 회원 id / 계좌 - 계좌번호 2) 인스턴스 집합 - 2개 이상의 인스턴스가 있어야 한다. - 고객 테이블에서 고객 데이터 2명이상은 있어야 됨 3) 속성 - 엔터티는 반드시 속성을 가지고 있다. - 고객 테이블에서 컬럽이 있어야 된다는 뜻. - 고객 테이블에는 회원 id, 비밀번호, 이름, 주소 전화번호 등이 있음 4) 관계 - 엔터티는 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다. - 고객은 계좌를 개설한다. (관계) 5) 업무 - 엔터티는 업무에서 관리..

Data 2023. 3. 8. 10:49
[Oracle ] 오라클 파티션 테이블

📋 Oracle Partition Table Partition -오라클 파티션테이블은 하나의 큰 테이블을 물리적으로 나눠놓은 것입니다. -물리적으로 나눠놨지만, 논리적으로는 하나의 테이블로 간주됩니다. -왼쪽 그림처럼 Sales 테이블에 1월데이터부터 5월데이터까지 하나의 통테이블에 몰아서 넣을수 있습니다. -하지만, 파티션테이블을 사용하게되면 오른쪽 그림처럼 월마다 다른 세그먼트에 Sales 데이터를 나눠서 넣을 수 있습니다. -이렇게 나눠서 넣어놔도 사용자는 1월~5월치 데이터가 마치 하나의 Sales 테이블에 들어있는 것처럼 사용할 수 있습니다. -오라클에서는 Object, Segment 라는 개념을 사용합니다. 저장공간을 가지는 개념이 Segment 에 해당합니다. -즉, 위 파티션된 Sales ..

Data 2023. 2. 19. 18:20
[Oracle] 쿼리 작성시 불필요한 NVL 피하기

불필요한 NVL 피하기 * NULL value에 대한 오류를 방지하기 위하여 불필요한 NVL 함수를 사용하여 DBMS의 부하 유발함. # (1) NVL() : 100 + NVL() : 100 + SUM() : 1 = 201번 SELECT SUM(ISNULL(COL1, 0) + ISNULL(COL2, 0)) FROM TABLE_A; # (2) SUM() : 1 + SUM() : 1+NVL() : 2 = 4번 SELECT ISNULL(SUM(COL1),0) + ISNULL(SUM(COL2, 0) FROM TABLE_A; > (1)의 경우 함수사용 횟수는 NVL() : 100 + NVL() : 100 + SUM() : 1 = 201번 > (2)의 경우 함수사용 횟수는 SUM() : 1 + SUM() : 1+N..

Data 2023. 1. 8. 19:08
[Oracle] HTTP Listener Port 변경하기

Oracle 데이터베이스는 HTTP Listener Port 번호가 8080으로 기본으로 되어 있어 Apache tomcat 과 충돌하는 경우가 발생한다. 따라서 포트 번호를 변경해주는게 좋다. 1) sqlplus 접속 2) conn system - system 으로 접속한다. - 설정한 비밀번호 입력 3) exec DBMS_XDB.SETHTTPPORT("원하는 포트 번호"); "PL/SQL 처리가 정상적으로 완료되었습니다." 가 뜨면 정상적으로 포트번호가 바뀐것이다.

Data 2023. 1. 8. 19:07
[Oracle] SQL plus 에서 계정 등록 및 권한 설정

* 기본 계정 권한 설정 - "hr" 이라는 기본 계정이 존재한다. #hr 계정은 오라클에서 기본적으로 제공해주는 학습용 계정이다 1) 18c 이전 버전 ex) 11g 1. cmd 관리자 권한으로 실행 2. 아래 명령어 실행 SQL> alter user hr account unlock; // 잠겨있는 HR 계정 풀기 SQL> alter user hr identified by hr; // 비밀번호 새로 설정 2) 18c 이후 버전 1. cmd 관리자 권한으로 실행 2. 아래 명령어 실행 SQL> alter user hr account unlock; // 잠겨있는 HR 계정 풀기 SQL> alter user hr identified by hr; // 비밀번호 새로 설정 SQL> grant crate sess..

Data 2023. 1. 8. 19:06
이전 1 2 다음
이전 다음

Blog is powered by Tistory / Designed by Tistory

티스토리툴바