인터페이스 예외처리

프로그램의 정상적인 실행을 방해하는 조건이나 상태가 발생했을 때, 프로그래머가 해당 문제에 대비해 작성해놓은 처리 루틴을 수행하도록 하는 것

 

데이터 통신을 사용한 인터페이스의 경우 (네트워크와 관련된 문제)

송신 측에서 처리하는 방법:

AJAX 호출 후 반환 값을 받아 호출하는 부분에서 사전 정의

수신 측에서 처리하는 방법:

수신한 JSON 객체를 처리 시에 try-catch 구문을 이용해 발생한 예외를 처리하고 이를 송신 측에 전달

 

인터페이스 객체를 사용한 인터페이스의 경우 (SQL, 프로그램 등 사용상의 오류)

송신 측에서 처리하는 방법:

예외 발생시 송신 인터페이스 테이블에 예외 유형에 따른 예외 코드와 상세한 원인을 함께 입력

수신 측에서 처리하는 방법:

예외 발생시 사전에 정의된 예외 코드를 입력하고 사유를 함께 기록

 

슈퍼타입과 서브타입 데이터 모델링

공통의 부분을 슈퍼타입으로 모델링하고 공통의 부분을 상속받아 다른 엔티티와 차이가 있는 속성에 대해서는 별도의 서브엔티티로 구분하여 업무의 모습을 정확하게 표현

슈퍼타입은 모든 서브타입으로 상속되는 공통 속성이고, 서브타입은 모델링 개체의 전체 집합에서 일부만 모아놓은 부분 속성

종류: 1:1타입, 슈퍼+서브타입, all in one 타입

 

데이터 흐름도 (DFD)

데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림으로 제어의 흐름은 중요시 하지 않는다. 데이터에 비해 기능이 복잡하고 중요할 경우에 유용하게 사용할 수 있다. 

 

데이터 흐름도(DFD)의 구성요소 4가지

Process / Data Flow / Terminator / Data Store  

프로세스 Process :입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정으로 원(○)으로 표시한다.
데이터 흐름 Data Flow : DFD 구성요소 간 오가는 데이터 흐름을 나타내며 화살표(→)로 나타낸다.
데이터 저장소 Data Store : 데이터가 저장되어 있는 장소, 테이프, 디스크, 카드 데이터, 캐비넷의 인덱스 화일 등일 수도 있으며 때로는 휴지통일 수도 있다. 평행선(=)으로 표시한다.
단말 Terminator: 사각형(□)으로 표시하며, 대상시스템이 외부에 존재하므로서 분석대상에서 제외되는 부분이며, 이는 데이터를 제공하는 입력부와 데이터를 이용하는 출력부로 구성된다.

 

정규화 Normalization

관계형 데이터베이스에서 중복을 제거하기 위해 데이터를 구조화하는 작업. 각 릴레이션에 중복된 속성을 여러 개의 릴레이션에 분할하는 것을 말한다. 반대로 데이터 중복이 되게 추가하는 작업은 반정규화라고 한다. 정규화를 수행하면 데이터 처리기능이 향상되고 조회성능은 저하 또는 향상될 수 있다. 데이터 무결성을 유지할 수 있게 된다.

 

제1정규화

테이블의 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해하는 것이다.

 

제2정규화

제1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것이다. 여기서 완전 함수종속이란 기본키의 부분집합이 결정자가 되어선 안된다는 것이다. 예시로 성적이 부분집이 되었다면 그 성적으로 분류되는 것이 없어야 한다는 의미이다. 반대로 강의 이름은 결정자로서 역할해서 부분집합으로 강의실을 분류할 수 있는 기준이 된다.

 

제3정규화

제2정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이다. 이행적 종속은  A - B - C 관계에서 A - C 가 성립되는 것을 말한다.

 

BCNF 정규화

제3정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것이다. 결정자이면서 후보키가 아닌 것을 제거해야 한다. 

학번, 과목, 교수로 이뤄진 릴레이션이 있다고 했을 때, 학번과 과목은 교수를 지정할 수 있다. 교수는 과목을 지정할 수 있지만 학번은 지정할 수 없으므로 후보키는 될 수 없다. 즉, 학번, 과목코드 릴레이션과 과목코드, 과목, 교수 릴레이션으로 나눌 수 있다.

 

반정규화

반정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.

 

테이블 통합

두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능향상에 도움이 될 경우에 수행한다.

 

테이블 분할

테이블을 수직(하나의 테이블에 속성이 너무 많을 경우) 또는 수평(레코드별 사용빈도가 큰 경우)으로 분할하는 것이다.

 

중복 테이블 추가

여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복테이블을 추가하여 작업의 효율성을 향상시킬 수 있다.

>> 집계테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가

집계테이블의 추가
집계테이블을 생성하고 각 원본 테이블에 트리거를 설정해서 사용하는 것으로 트리거 오버헤드에 유의해야 함.
진행테이블의 추가
이력 관리 등의 목적으로 추가하는 테이블로, 적절한 데이터의 양의 유지와 활용도를 높이기 위해 기본키를 적절히 설정
특정 부분만을 포함하는 테이블 추가
데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성

 

비트맵 인덱스

데이터 베이스 인덱스를 비트 단위로 저장하여 기존 B 트리 인덱스가 가지는 한계를 극복하고 대용량 자료에 대한 질의 성능을 극대화한 인덱스. 컴퓨터에서 사용하는 최소단위인 비트를 이용하여 컬럼값을 저장하고 이를 이용해 ROWID를 자동으로 생성하는 인덱스의 한 방법이다. 비트를 직접 관리하므로 저장공간이 크게 감소하고 비트 연산을 수행할 수 있다는 이점이 존재한다. 

B-Tree 인덱스: 큰 분포도를 갖는 테이블에 적합하며, 실제 컬럼 값을 인덱스에도 보관하고 있어야 한다는 점(키 값과 함께 저장)이 부담된다는 문제가 있다.  데이터를 찾을 때 Root Block, Branch Block, Leaf Block 순으로 찾게 된다.
ROWID: 테이블에서 행의 위치를 지정하는 논리적인 주소값.  

 

파티션

대용량의 테이블이나 인덱스를 작은 논리적 단위로 나눈 것. 데이터 액세스 범위를 줄여 성능을 향상시키고, 데이터 분산으로 디스크 성능이 향상된다. 전체 데이터 훼손 가능성이 감소하고 데이터 가용성이 향상된다.

용량이 작은 테이블에 파티셔닝을 수행하면 오히려 성능 저하가 될 수 있다.

 

코드

순차코드 (일련 번호 코드)

자료의 발생순서, 크기순서 등 일정 기준에 따라서 최초의 자료부터 차례대로 일련번호를 부여받는 방법으로 순서코드 또는 일련 번호 코드라고 함

 

블록코드 (구분 코드)

코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고 각 블록 내에서 일련번호를 부여하는 방법으로 구분코드라고도 함

 

10진 코드 (도서 분류식 코드)

0~9까지 10진 분할하고, 다시 각각에 대해 10진 분할하는 방법을 필요한만큼 반복하는 방법.

 

그룹 분류 코드

일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고 각 그룹 안에서 일련 번호를 부여하는 방법.

 

연상코드 (기호코드)

코드화 대상 항목의 명칭이나 약호와 관계있는 숫자나 문자 기호를 이용하여 코드를 부여하는 방법

 

표의 숫자 코드 (유효 숫자 코드)

코드화 대상 항목의 성질, 즉 길이, 넓이, 부피, 높이 등의 물리적 수치를 그대로 코드에 적용시키는 방법으로 유효숫자 코드라고도 함

 

합성 코드

2개 이상의 코드를 조합하여 만드는 방법

 

미들웨어

응용 소프트웨어가 운영체제로부터 받은 서비스 외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어입니다. 3계층 클라이언트/서버 구조에서 미들웨어가 존재한다. 

 

TP monitor (Transaction Processing Monitor)

트랜잭션이 온전하게 처리되고 있는지, 오류가 발생하면 적절한 조치를 취하는지에 대해 여러 개의 로컬, 원격 터미널 간의 데이터 전송을 감시하는 통제 프로그램. 메인 프레임 소프트웨어에서 분산 컴퓨팅으로 전환되는 과정에서 나타난다. 주로 C/S 시스템에 사용됨.

 

엔터프라이즈 서비스 버스

메시지 기반으로 느슨한 결합형태의 표준 인터페이스 통신을 지원하는 미들웨어로 기업 안팎에 있는 모든 시스템 환경을 연동하는 미들웨어

 

ORB (Object Request Broker)

코바 표준 스펙을 구현하고, 분산 컴퓨팅 환경에서 미들웨어 소프트웨어의 한 단면으로 프로그래머에게 다른 컴퓨터의 프로그램을 네트워크를 통해 호출할 수 있는 미들웨어. 객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어.

 

Hurwitz 분류법
원격 프로시저 호출, 메시지 지향 미들웨어, ORB, DB 접속 미들웨어
 
TP 모니터, 웹 애플리케이션 서버, 엔터프라이즈 서비스 버스

 


[SQL] 슈퍼타입, 서브타입 - exclusive 관계, inclusive관계

[정보처리기사] 실기 정리 - 5과목 (2)

DFD(데이터흐름도) 작성요령 : 네이버 블로그

데이터모델과 성능 : 정규화 / 반정규화 / 대량 데이터 / 분산 데이터베이스 : 네이버 블로그

[Database] 정규화(Normalization) 쉽게 이해하기 - MangKyu's Diary

데이터베이스 정규화 - IT위키

반정규화 – 데이터온에어 – 한국데이터산업진흥원

3-1-14장. 반정규화(Denormalization) - B

꿈꾸는 개발자, DBA 커뮤니티 구루비

[오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX) :: 개발/일상_Mr.lee

[Oracle] ROWID란?

제1장 TP-Monitor 소개

미들웨어 - 위키백과, 우리 모두의 백과사전

댓글