데이터베이스

성능 데이터 모델링이란? 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 조인구조 등 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것을 의미합니다. 성능 데이터 모델링 고려사항 1. 정규화를 정확하게 수행한다.2. 데이터베이스 용량산정을 수행한다.3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.5. PK/FK 조정 등을 수행한다.6. 성능관점에서 데이터 모델을 검증한다. 정규화를 통한 성능향상 전략 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 지닙니다.엔터티가 늘어나므로 조인이 많이 발생하여 성능저하가 나타나는 경우도..
엔터티란? 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing) 입니다.객체라고도 표현합니다. 엔터티의 특징 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 합니다.2. 유일한 식별자에 의해 식별이 가능해야 합니다.3. 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 합니다.4. 업무 프로세스에 의해 이용되어야 합니다.5. 반드시 속성이 있어야 합니다.6. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 합니다. 엔터티의 분류 1. 유무형에 따른 분류 - 유형엔터티 : 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티 ( 예 : 사원, 물품 )- 개념엔터티 : 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티 ( 예 : 조직, ..
ERD 란? 각 업무분석에서 도출된 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법으로서,해당 업무에서 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물을 의미합니다. 다양한 ERD 표기법이 있으며, 이중 범용적인 IE ( Information Engineering ) 표기법에 대해 알아봅니다. ERD 모형 1. 엔터티 : 사각형3. 속성 : 타원형 ERD 작업순서 1. 엔터티를 그린다.2. 엔터티를 적절하게 배치한다.3. 엔터티간 관계를 설정한다.4. 관계명을 기술한다.5. 관계의 참여도를 기술한다.6. 관계의 필수여부를 기술한다. IE ERD 표기법 엔터티간의 관계를 나타내는 선 입니다. optional : 선택조건mandatory : 필수조건 또..
데이터 모델링 이란? 모델링의 특징 1. 추상화 : 현실세계를 일정한 형식에 맞춰 표현을 한다는 의미2. 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념을 의미3. 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미 모델링의 세가지 관점 1. 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해 모델링하는 방법2. 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법3. 상관괌점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법 데이터 모델링의 정의 1. 정보..
Oracle, MySQL, Goldilocks 등을 활용하여 개발하시는 분들의 쿼리를 보다보면, 쿼리문에 WHERE 1 = 1 을 쓰는 모습을 종종 볼 수 있었습니다.아무래도 소스상의 가독성 때문에 이렇게 사용하는 분들이 많이 있을텐데요. WHERE 1 = 1 의 구문이 없는 소스의 경우와 있는 소스를 보면 가독성에 차이가 있습니다.mozi.append(" SELECT ID, AGE "); mozi.append(" FROM MOZI "); mozi.append(" WHERE "); if ( ID != null ){ mozi.append(" ID = 91 "); } if ( AGE != null) { if ( ID != null ) { mozi.append(" AND AGE = 28"); }else{ mo..
GOLDILOCKS DBMS 를 기준으로 설명되며, 이는 다른 DBMS 또한 동일합니다. T1 테이블에 다수개의 필드가 있고, 데이터가 많이 있는 상황입니다.gSQL> SELECT * FROM T1 LIMIT 10; DESCRIPTION LOGICAL_ADDR REF_COUNT SPIN_LOCK WAIT_COUNT X_LOCK_SEQ CURRENT_MODE CAS_MISS_COUNT ----------------------------- --------------- --------- --------- ---------- ---------- ------------ -------------- PCH ( TBS:4, PAGE:0, TYPE:9 ) 562949991497728 0 0 0 14 INITIAL 0 P..
실행 계획(Plan) 이란, 결과를 도출하기 위해 어떤 방법 혹은 순서로 데이터에 접근할지를 나타내는 것을 의미합니다. 접근 방식은 테이블 스캔과, 인덱스 스캔으로 나뉘어집니다.이 접근 방식은 테이블의 데이터 량에 따라 성능차이가 발생할 수 있습니다. 예를 들어 보겠습니다. 테이블에 데이터가 1건이 있는 경우, 학번 1001 을 검색하기 위해선, 아래 그림 중 어느 게 빠를까요?테이블에 데이터가 10,000 건(엄청 많음을 의미)이 있는 경우, 학번 1001 을 검색하기 위해선, 아래 그림 중 어느게 빠를까요? 테이블의 건수가 많은 경우테이블 스캔은 수많은 데이터중 1건을 스캔해야 하지만,인덱스 스캔은 1001 이라는 데이터에 접근한 뒤, 이 주소를 이용하여 테이블에 접근하면 되므로 성능에서 이점이 생깁..
데이터베이스 정규화란데이터 중복을 최소화 혹은 없애기 위한 작업을 의미합니다. 정규화의 단계는 1NF 부터 시작해서 2NF, 3NF, BCNF, 4NF, 5NF 단계로 이루어 집니다. 주로 3NF 단계에서 정규화 작업은 끝이나며,너무 많은 정규화 작업은 JOIN 으로 인하여 성능을 떨어트릴 수 있으므로 주의하여야 합니다. 요즘 한창 이슈인 코인에 대해서 예시를 들어보겠습니다. 1NF각 열의 데이터가 하나의 값만 가지고 있는 경우를 의미합니다. 특정 테이블에 아래와 같은 데이터가 있다고 가정합니다. 사용자 고유 식별번호 사용자 이름 보유 코인 1001 홍길동 비트코인 1002 임꺽정 비트코인, 리플 1003 성춘향 리플혹은 다음과 같을 수도 있습니다. 사용자 고유 식별번호 사용자 이름 보유 코인 1 보유 ..
OLTP ( On-Line Transaction Processing )여러 과정의 연산이 하나의 단위 프로세스(트랜잭션)로 실행되도록 하는 프로세스입니다. A 라는 사람이 B 에게 10,000 원을 이체하는 상황을 예로 들어보겠습니다.1. A 라는 사람의 계좌에서 10,000 원이 인출됩니다.2. B 라는 사람의 계좌에 10,000 원이 입금됩니다. 이 단계는 하나의 프로세스로 이루어져야 하며, 중간에 오류가 발생하는경우 모든 단계를 되돌려야 합니다. OLAP ( On-Line Analytical Processing )대용량 데이터를 고속으로 처리하며 쉽고 다양한 관점에서 추출, 분석할 수 있도록 지원하는 데이터 분석 기술입니다.데이터를 분석하여, 소비자 패턴, 연령대별의 선호 물품 등을 판별하여 매출에..
기존에 MsSQL 은 윈도우 쪽에만 설치가 가능하였으나, 요즘에 Linux 에도 설치가 가능하도록 바뀌었습니다. Linux 에 설치하는 방법입니다. 1. curl 명령어를 사용하여 패키지를 다운로드 합니다.# curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo -o /etc/yum.repos.d/mssql-server-2017.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 232 100 232 0 0 527 0 --:--:-- --:--:-- --:--:-- 527# curl ht..
꽁담
'데이터베이스' 태그의 글 목록 (3 Page)