엔터티란? 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing) 입니다.객체라고도 표현합니다. 엔터티의 특징 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 합니다.2. 유일한 식별자에 의해 식별이 가능해야 합니다.3. 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 합니다.4. 업무 프로세스에 의해 이용되어야 합니다.5. 반드시 속성이 있어야 합니다.6. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 합니다. 엔터티의 분류 1. 유무형에 따른 분류 - 유형엔터티 : 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티 ( 예 : 사원, 물품 )- 개념엔터티 : 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티 ( 예 : 조직, ..
Database
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 이라는 데이터에 접근한 뒤, 이 주소를 이용하여 테이블에 접근하면 되므로 성능에서 이점이 생깁..
CYCLONE GIVE-UP 시 RESET 의 단점 이중화를 재구동시 reset 옵션을 부여하여, GIVE-UP 된 테이블을 다시 이중화에 포함 시킬수는 있지만,GIVE-UP 시점부터 reset 시작전까지의 데이터 변경은 반영되지 않습니다. CYCLONE GIVE-UP 된 테이블을 다시 이중화 시키는 방법http://mozi.tistory.com/140 이번 포스팅에서는 GIVE-UP 시점에서 reset 전까지의 데이터 변경도 반영되도록 진행해보겠습니다. GIVE-UP 된 테이블에 대한 이중화를 SYNC 옵션을 사용하여 재구동 하는 방법 sync 시에는 Master 와 Slave 에 옵션을 다 붙여주어야 합니다.sync 시에는 옵션에 부여된 마스터측 테이블의 전체 데이터를 슬레이브에 다시 반영합니다.$ ..
CYCLONE DDL 기본적으로 CYCLONE 대상 테이블은 DDL 구문이 되지 않습니다.하지만 DDL 구문을 수행하지 못하게 막아버리면 컬럼 추가 등의 작업을 할 수 없기 때문에 절차에 따라 예외로 처리하는 DDL 이 있습니다. CYCLONE 사용해보기http://mozi.tistory.com/139 단, 특정 작업 절차에 의해 허용되는 DDL 과, 작업 절차에 속하지 않더라도 허용되는 DDL 이 있습니다. CYCLONE 에서 허용하는 DDL 목록 특정 작업 절차에 의해 허용되는 DDL 구문 절차에 따른 DDL 허용 / 비허용 구문 허용 ALTER TABLE ... ADD COLUMN ALTER TABLE .. ALTER COLUMN .. SET DATATYPE ALTER TABLE .. RENAME ..
CYCLONE 이중화가 실패하는 경우 MASTER 와 SLAVE 간의 테이블 메타정보가 일치하지 않아서 이중화가 되지 않는 경우도 있지만,이중화가 성공적으로 수행 된 후, 나중에 발생되는 DDL 문으로 인해서 이중화가 실패하는 경우도 발생합니다. GIVE-UP 이후부터터는 이중화가 진행되지 않습니다.이 때 진행되지 않는 범위는 CYCLONE 전체가 아닌 GIVE-UP 이 발생된 테이블에만 종속됩니다. * CYCLONE 사용해보기 - 이후 이어지는 포스팅http://mozi.tistory.com/139 CYCLONE 이 GIVE-UP 된 상황 발생 시 이중화 재수행 방법 CYCLONE MASTER 의 Group1 T1 테이블이 GIVE-UP 이 발생되었습니다.$ cyclone --master --info ..
CYCLONE 구조 CYCLONE 의 구조를 알기 위해서는 아래의 URL 을 참고해주세요.http://mozi.tistory.com/81 CYCLONE 테스트를 위한 초기 환경설정 이번 포스팅에서는 CYCLONE 을 구동하여 이중화를 수행해보겠습니다.먼저, CYCLONE 을 테스트한 환경입니다. CYCLONE 장비정보 버전 CYCLONE MASTER OS CentOS Linux release 7.5.1804 (Core) DATABASE Release Venus.3.1.15 revision(25159) IP 192.168.0.50 CYCLONE SLAVE OS CentOS Linux release 7.5.1804 (Core) DATABASE Release Venus.3.1.15 revision(25159)..