반응형

*연계 요구사항 분석

1. 연계 요구사항 분석이란

- 서로 다른 두 시스템, 장치, 소프트웨어를 이어주는 중계 역항을 하는 연계 시스템과 관련된 요구사항을 분석하는 과정이다.

- 연계 요구사항 분석은 사용자 인터뷰 및 면담을 통해 식별되고 시스템 구성도, 테이블 정의서. 코드 정의서 등을 참고한다.

1-1. 연계 요구사항 분석 기법, 참고 문서

- 분석기법

  • 인터뷰 : 사용자 면담을 통해 연계 요구사항 도출
  • 체크리스트 : 시스템 운영 환경, 성능, 보안, 데이터 발생 주기 등의 기준에 대한 점검을 통한 분석기법이다.
  • 설문지 : 서비스 활용 목적에 따라 연계 필요 데이터 식별 및 연계 주기 등을 설문지를 통해 분석하는 기법이다.
  • 델파이 기법 : 전문가의 경험적 지식을 통한 분석 분석 기법으로 업무 전문가 등 각 분야의 전문가로 구성된다.
  • 브레인스토밍 : 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해 분석하는 기법이다.

- 분석 참고 문서

  • 코드 정의서 : 공통 코드 정의서(코드 ID, 코드명, 코드 설명 등)
  • 테이블 정의서 : 데이터 모델링 정의서, 테이블 및 프로세스 연관도, 테이블별 컬럼 속성 정의서
  • 응용 프로그램 구성도 : 애플리케이션의 메뉴 구성, 화면설계, 데이터 발생 시점, 주기, 발생 패턴 등 확인
  • 시스템 구성도 : 하드웨어, 소프트웨어, 네트워크 등 연계 대상 시스템 구성도

 

2. 연계 요구사항 분석, 참고문서

2-1. 개체 정의서

- 데이터베이스 개념 모델링 단계에서 도출한 개체의 타입과 관련된 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서이다.

2-2. 테이블 정의서

- 논리 및 물리 모델링과정에서 작성하는 설계 산출물로 테이블을 구성하는 컬럼들의 특성, 인덱스, 업무 규칙을 문서화한 것이다.

- 컬럼의 특성은 컬럼명, 데이터 타입, 길이, 널 여부, 키 여부, 디폴트 값 등을 의미한다.

2-3. 인터페이스(연계) 명세서

- 인터페이스(연계) 명세서는 인터페이스(연계) 정의서에 작성한 이넡페이스 ID별로 송수신하는 데이터 타입, 길이 등 인터페이스 항목을 상세하게 작성한다.

2-4. 인터페이스 명세서의 구성요소

- 송신 시스템과 수식 시스템 간의 인터페이스 방식, 주기 등을 기록한 현황을 작성한다.

  • 인터페이스 ID : 인터페이스를 구분하기 위한 식별자, 명명 표준에 맞게 부여한다. 일반적으로 인터페이스 식별 성을 강화하기 위해 업무 분류 코드와 연속 번호를 같이 활용한다.
  • 최대 처리 횟수 : 단위 시간당 처리될 수 있는 해당 인터페이스 최대 수행 건수를 의미한다.
  • 데이터 크기 (평균/최대) : 해당 인터페이스 1회 처리시 소요되는 데이터의 평균 크기와 최대 크기를 의미한다.
  • 시스템 정보 (송수신 시스템 각각 작성) : 시스템 명, 업무 명, 서비스 명/프로그램ID, 연계 방식, 담당자/연락처 등을 작성한다.
  • 데이터 정보 (송수신 시스템 각각 작성) : 번호, 필드, 식별자 여부, 데이터 타입, 데이터 크기, 널 허용 여부, 항목 설명, 조건, 매핑 규칙, 총 길이, 추출 조건/SQL 등을 작성한다.

 

3. 연계 요구사항 분석 절차

- 시스템 현황 확인 : 송신 시스템과 수식 시스템의 하드웨어 구성, 시스템 소프트웨어 구성, 네트워크 현황 확인

- 정의서 확인 : 송신 시스템과 수신 시스템에서 연계하고자 하는 데이터 관련 테이블 정의서, 코드 정의서 확인

- 체크리스트 작성 : 질의 사항을 시스템(네트워크, 보안 등) 관점과 응용(데이터, 공통 코드 등) 관점에서 연계 분석 체크리스트 작성

- 인터뷰 및 면담 : 사용자 인터뷰 및 면담을 수행하고 회의록을 작성한다.

- 연계 요구사항 분석서 작성 : 연계 시스템 구성 및 데이터 식별에 해당하는 내용에 요구사항 ID를 부여하고 요구사항 분석서를 작성한다.

 

4. 연계 시스템의 구성

- 연계 시스템은 송신 시스템과 수신 시스템으로 구성할 수 있으며, 연계 방식에 따라 중계 서버를 둘 수 있다.

- 송신 시스템 : 연계할 데이터를 데이터베이스와 애플리케이션으로부터 연계 테이블 또는 파일 형태로 생성하여 송신하는 시스템

- 수신 시스템 : 수신한 연계 테이블 또는 파일의 데이터를 수신 시스템에서 관리하는 데이터 형식에 맞게 변환하여 데이터베이스에 저장하거나 애플리케이션에서 활용할 수 있도록 제공하는 시스템

- 중계 서버 : 송신 시스템과 수신 시스템 사이에서 데이터를 송수신하고 연계 데이터의 송수신 현황을 모니터링 하는 시스템으로 연계 데이터의 보안 강화 및 다중 플랫폼 지원 등이 가능하다.

 

 

반응형
반응형

*데이터 조작 프로시저 개발

1. 프로시저란

- SQL를 이용해 생성된 데이터를 조작하는 프로그램이다. 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다.

 

2. PL / SQL이란

- 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다.

- Oracle 기반의 모든 프로시저 작성에 사용되며 표준SQL의 확장 기능이 우수하다.

 

3. PL / SQL 작성 절차

3-1. 데이터 저장소 연결

- Java 환경의 경우 구축된 데이터베이스로의 연결을 JDBC를 통해 연결한다.

- 드라이버 로딩 : DB와 연결하기 위해 DBMS에서 제공하는 JAR파일 드라이버를 메모리에 적재한다.

- 데이터베이스 연결 : 해당 드라이버를 사용하여 데이터베이스를 연결한다.

- 쿼리 전달 : 쿼리를 DB로 전달하기 위해 Statement, PreparedStatement 객체를 생성한다.

- 결과 수신 : 전달된 쿼ㅣ리의 수행으로 인한 반환 값을 수신한다.

3-2. 데이터 저장소의 정의

- 데이터 저장소를 생성, 수정, 삭제하는 방법을 사전에 정의한다.

3-3. 데이터 조작 프로시저 작성

- 테이블의 정보를 입력하는 데이터 조작 프로시저를 작성한다.

3-4. 데이터 검색 프로시저 작성

- 검색 조건에 맞는 데이터를 조회한다. 다양한 함수를 활용하여 데이터를 조회한다.

 

*데이터 조작 프로시저 테스트

1. PL / SQL 테스트

1-1. DBMS_OUTPUT 패키지 활용

- 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스 패키지 DBMS_OUTPUT을 코드에 포함한다.

1-2. DBMS_OUTPUT 패키지 실행 방법

- PL / SQL의 처리결과를 화면에 출력하기 위한 SERVEROUTPUT을 ON시키고, 실행하고자 하는 PL / SQL 블록 또는 저장객체 명을 호출한다.

- PL /SQL 오류 발생 시 'SHOW ERRORS' 명령어를 통해 오류 내용을 확인한다.

 

2. 저장 객체 테스트

2-1. 저장된 함수 (Stored Function)

- 저장 객체를 테스트하기 위한 함수 사용 예시

SQL> VAR salary NUMBER;  : 함수의 반환 값을 저장할 변수를 선언
SQL> EXECUTE: salary := update_sal(1004);  : EXECUTE 문을 이용해 함수를 실행
SQL> PRINT salary;  : SQL에서 선언된 변수의 출력은 PRINT문을 사용

2-2. 저장된 프로시저 (Stored Procedure)

- 실행하기 전 프로시저 실행 후 변경될 이전의 값을 확인한다.

SQL> SET SERVEROUTPUT ON;  : SET SERVEROUTPUT ON을 실행
SQL> EXCUTE update_sal(1004);  : EXECUTE 문을 이용해 실행. 실행 이후 프로시저에서 
								처리하는 대로 관련 데이터가 수정됨을 확인.

2-3. 저장된 패키지 (Stored Package)

- 패키지의 실행은 패키지명, 프로시저(함수)명으로 기술한다.

SQL> SET SERVEROUTPUT ON;  : SET SERVEROUTPUT ON을 실행
SQL> EXEC emp_info.all_emp_info;  : EXECUTE 문을 이용해 실행. 프로시저 실행결과를 확인

2-4. 트리거 (Trigger)

- DBMS_OUTPUT.PUT_LINE을 출력하여 SET SERVEROUTPUT ON을 실행한다.

SQL> SET SERVEROUTPUT ON;  : 트리거가 처리될 조건에 부합되는 SQL을 실행하여 데이터 처리결과를 확인
반응형
반응형

*물리 데이터 저장소 구성

- 물리 데이터 저장소 구성을 위해 DBMS를 선정한 이후의 활동으로 구성된다.

1. 테이블 제약 조건 설계

1-1. 참조 무결성 제약 조건

- 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건이다.

- 두 개의 릴레이션이 기본키, 오래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.

- 제한 (Restricted) : 참조 무결성 원칙을 위배하는 연산을 거절하는 옵션

- 연쇄 (Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션

- 널 값 (Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣는 옵션이다. 만일 릴레이션을 정의할 때 참조하는 릴레이션에서 NULL 값이 들어갈 애트리뷰트에 NOT NULL로 명시되어 있다면 삭제 연산을 거절한다.

 

2. 인덱스 설계

2-1. 인덱스란

- 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조이다.

- 인덱스를 통해 전체 데이터의 검색 없이 필요한 정보에 대해 신속한 조회가 가능하다.

2-2. 인덱스 적용 기준

- 인덱스 분포도가 10 ~ 15% 이내인 경우 아래 수식을 참고한다.

분포도 = ( 1 / 컬렴 값의 종류 ) * 100
분포도 = ( 컬럼 값의 평균 Row 수 / 테이블의 총 Row 수 ) * 100

- 분포도가 범위 이상이더라도 부분처리를 목적으로 하는 경우 적용한다.

- 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용한다.

- 인덱스 자동생성 기본키와 Unique 키의 제약조건을 사용할 경우 적용한다.

2-3. 인덱스 컬럼 선정

- 분포도가 좋은 컬럼은 단독적으로 생성한다.

- 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성한다.

- 결합 인덱스는 구성되는 컬럼 순서 선정( 사용빈도, 유일성, 정렬 등)에 유의한다.

- 가능한 수정이 빈번하지 않은 컬럼을 선정한다.

2-4. 설계 시 고려 사항

- 지나치게 많은 인덱스는 오버헤드로 작용한다.

- 인덱스는 추가적인 저장 공간이 필요함을 고려해야 한다.

- 넓은 범위를 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생시킬 수 있음에 유의해야 한다.

- 인덱스와 테이블의 저장 공간을 적절히 분리될 수 있도록 설계해야 한다.

 

3. 뷰 설계

- 대표적인 뷰의 속성으로 REPLACE, FORCE, NOFORCE 등이 있다.

- REPLACE : 뷰가 이미 존재하는 경우 재 생성.

- FORCE : 본 테이블의 존재 여부에 관계없이 뷰 생성.

- NOFORCE : 기본 테이블이 존재할 때 뷰 생성.

- WITH CHECK OPTION : 서브 쿼리 내의 조건을 만족하는 행만 변경.

- WITH READ ONLY : 데이터 조작어(DML) 작업 불가.

3-1. 뷰 설계 시 고려 사항

- 뷰 사용에 따라 수행속도에 문제가 발생할 수 있다.

- 뷰의 조건은 최적의 액세스 경로를 사용할 수 있도록 한다.

 

4. 클러스터 설계

- 클러스터의 적용 기준 및 고려 사항을 참고하여 설계한다.

4-1. 적용 기준

- 인덱스의 단점을 해결한 기법으로, 분포도가 넓을수록 오히려 유리하다.

- 액세스 기법이 아니라 액세스 효율 향상을 위한 물리적 저장 방법이다.

- 분포도가 넓은 테이블의 클러스터링은 저장 공간의 절약이 가능하다.

- 대량의 범위를 자주 액세스하는 경우 적용한다.

- 인덱스를 사용한 처리 부담이 되는 넓은 분포도에 활용한다.

- 여러 개의 테이블이 빈번하게 조인을 일으킬 때 활용한다.

4-2. 클러스터 설계 시 고려 사항

- 검색 효율은 높여주나 입력, 수정, 삭제 시에는 부하가 증가함을 고려한다.

- UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼이면 검토 대상이다.

- 수정이 자주 발생하지 않는 컬럼은 검토 대상이다.

- 처리 범위가 넓어 문제가 발생하는 경우는 단일 테이블 클러스터링을 고려해야 한다.

- 조인이 많아 문제가 발생되는 경우 다중 테이블 클러스터링을 고려한다.

 

5. 파티션 설계

- 파티션의 종류, 장점 등을 확인한다.

5-1. 파티션의 종류

- 레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법이다. 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능하다.

- 해시 파티셔닝 : 파티션 키의 해시 함수 값에 의한 파티셔닝 기법이다. 균등한 데이터 분할이 가능하고 질의 성능의 향상이 가능하다.

- 리스트 파티셔닝 : 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법이다. 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용하다.

- 컴포지트 파티셔닝 : 범위 분할에 이후 해시 함수를 적용하여 재 분할 하는 파티셔닝 기법이다. 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산할 수 있다.

5-2. 파티션의 장점

- 성능 향상 : 데이터 액세스 범위를 줄여 성능 향상.

- 가용성 향상 : 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상.

- 백업 가능 : 분할 영역을 독립적으로 백업하고 복구 가능.

- 경합 감소 : 디스크 스트라이핑으로 입출력 성능을 향상. 디스크 컨트롤러에 대한 경합의 감소.

 

6. 디스크 구성 설계

- 정확한 용량을 산정하여 디스크 사용의 효율을 높인다.

- 업무량이 집중되어 있는 디스크를 분리하여 설계한다.

- 입출력 경합을 최소화하여 데이터의 접근 성능을 향상시킨다.

- 디스크 구성에 따라 테이블스페이스 개수와 사이즈 등을 결정한다.

- 파티션 수행 테이블은 별도로 분류한다.

반응형
반응형

*물리 데이터 모델 설계

1. 물리 데이터 모델링이란

- 물리 데이터 모델링은 논리모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정이다.

 

2. 물리 데이터 모델링 변화 절차

- 개체를 테이블로 변환 : 일반적으로 테이블과 개체 명칭을 동일하게 하는 것을 권고한다. 개체는 한글명을 사용하며, 테이블은 소스 코드의 가독성을 위해 영문명을 사용한다.

- 속성을 걸럼으로 변환 : 개발자와 사용자 간 의사소통을 위해 표준화된 약어를 사용하도록 권고한다. SQL 예약어 사용은 피해야 하며, SQL 문장 가독성을 높이기 위해 컬럼 명칭은 되도록 짧은 것을 권고한다. 컬럼명으로 복합단어를 사용할 경우 미리 정의된 표준에 의해 명명해야 한다.

- UID를 기본키로 변환 : 개체의 UID에 해당하는 모든 속성에 대해 기본키로 선언한다. Not Null, Unique 등의 제약조건을 추가로 정의한다. 관계에 의한 외래키가 기본키에 포함될 수 있다.

- 관계를 외래키로 변환 : 외래키명은 기본키 이름을 그대로 사용하나 다른 의미를 가질 경우 변경이 가능하다. 순환 관계에서 자신의 기본키는 외래키로 정의한다.

- 컬럼 유형과 길이 정의 : 적절한 유형을 정의하고, 데이터의 최대 길이를 파악하여 길이를 설정한다.

  • CHAR : 최대 2,000 바이트의 고정 길이 문자열 저장이 가능하다.
  • VARCHAR2 : 최대 4,000 바이트의 가변 길이 문자열 저장이 가능하다.
  • NUMBER : 38 자릿수의 숫자 저장이 가능하다.
  • DATE : 날짜 값을 저장한다.
  • BLOB, CLOB : 바이너리(Binary), 텍스트 데이터 최대 4GB까지 저장 가능하다.

- 반 정규화 수행 : 시스템 성능 향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 반 정규화를 수행한다.

  • 중복 테이블 추가 : 집계 테이블 추가, 특정 부분만 포함하는 테이블 추가 
  • 테이블 조합 : 1:1 관계 테이블 조합, 1:M 관계 테이블 조합, 슈퍼타입/서브타입 테이블 조합
  • 테이블 분할 : 수직 분할/수평 분할
  • 테이블 제거 : 테이블 재 정의, 접근하지 않는 테이블 제거
  • 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
반응형

+ Recent posts