1. 논리 데이터 저장소 확인
< 자료 구조 >
- 자료 구조 : 컴퓨터상 자료를 효율적으로 저장하기 위해 만들어진 논리적인 구조
- 분류 :
선형 구조 | 리스트 | - 선형 리스트 : 연속되는 기억 장소에 저장되는 리스트 - 연결 리스트 : 노드의 포인터 부분으로 서로 연결시킨 리스트 |
스택 | - 한 방향으로만 자료를 넣고 꺼낼 수 있는 LIFO 형식의 자료 구조 - TOP은 스택에서 가장 위에있는 데이터로, 스택 포인터라고도 불림 |
|
큐 | - 한쪽 끝에서는 삽입 작업이 이뤄지고, 반대쪽 끝에서는 삭제 작업이 이루어지는 FIFO 형식의 자료 구조 - 꺼내는 쪽에서 가장 가까운 데이터는 Front, 데이너를 넣는 쪽에서 가장 가까운 데이터는 Rear |
|
데크 | - 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조 | |
비선형 구조 | 트리 | - 데이터들을 계층화시킨 자료 구조 - 노드와 링크로 구성 - 루트 노드, 단말 노드, 레벨, 조상 노드, 자식 노드, 부모 노드, 형제 노드, 깊이, 차수 - 전위 순휘(Pre-Order) / 중위 순회 (In-Order) / 후위 순회(Post-Order) - 포화 이진 트리 / 완전 이진 트리 / 편향 이진 트리 |
그래프 | - 노드와 간선을 하나로 모아놓은 자료 구조 - 방향 그래프 ( 최대 간선 수 : n(n(-1) ) / 무방향 그래프 ( 최대 간선 수 : n(n-1)/2 ) - 경로 / 경로 길이 / 단순 경로 / 사이클 |
< 논리 데이터 저장소 >
- 업무를 모델링 표기법으로 형상화한 데이터의 저장소
- 논리 데이터 저장소 구조 : 개체 / 속성 / 관계
2. 물리 데이터 저장소 설계
< 물리 데이터 저장소 >
- 물리 데이터 저장소 : 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환하기 위한 데이터 저장소
- 변환 절차 :
- 단위 개체를 테이블로 변환
- 속성을 칼럼으로 변환
- UID를 기본 키로 변환
- 관계를 외래 키로 변환
- 컬럼 유형과 길이 정의
- 반 정규화 수행 (테이블 통합 / 테이블 분할 / 중복 테이블 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가) / 컬럼 중복화)
< 물리 데이터 저장소 구성 >
- 테이블 제약조건 설계 : 삭제 제약 조건(연쇄, 제한, 무효) / 갱신 제약 조건(연쇄, 제한, 무효)
- 인덱스 설계 : 분포도가 좋은 컬럼은 단독적으로 생성 / 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
- 뷰 설계 : REPLACE, FORCE, NOFROCE, WITH CHECK OPTION, WITH READ ONLY
- 클러스터 설계 : 분포도가 넓을수록 유리 / 액세스 효율 향상을 위한 물리적 저장 방법
- 파티션 설계 : 종류(레인지 파티셔닝 / 해시 파티셔닝 / 리스트 파티셔닝 / 컴포지트 파티셔닝) / 장점(성능 향상 / 가용성 향상 / 백업 가능 / 경합 감소)
- 디스크 구성 설계
< ORM 프레임워크 >
- 관계형 데이터베이스와 객체지향 프로그래밍 언어 간 호환되지 않는 데이터를 변환하는 프로그래밍 기법
- 기술 : SQL Mapping (iBatis / MyBatis) / OR Mapping (Hibernate)
- 종류 : 부분적 ORM(SQL Mapping) / 완전 ORM(Object Relation Mapper)
< 트랜잭션 인터페이스 >
- 데이터베이스 트랜잭션의 입출력과 기능 형태를 정의한 인터페이스
- ACID원칙 : Atoimcity(원자성) / Consistency(일관성) / Isolation(격리성) / Durability(영속성)
- 대표적인 사례로 JDBC, ODBC 등이 있다.
3. 데이터 조작 프로시저 작성
< 프로시저 >
- 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 절차형 데이터 조작 프로시저 :
PL/SQL 장점 | 컴파일 불필요, 모듈화 가능, 절차적 언어사용, 에러처리 |
PL/SQL 구성 | 선언부(Declare), 실행부(Begin/End), 예외부(Exception) |
PL/SQL을 활용한 저장형 객체 활용 | 프로시저 / 함수 / 패키지 / 트리거 |
< 프로그램 디버깅 >
- 프로시저가 입력 자료를 받아 출력을 올바르게 도출하는지에 관한 확인 과정
< 단위 테스트 도구 >
- 단위 테스트에서 구현된 프로시저의 적합성을 확인하기 위한 도구
- DBMS_OUTPUT 패키지 기능 : DISABLE / ENABLE / PUT / PUT_LINE / GET_LINE / GET_LINES
4. 데이터 조작 프로시저 최적화
< 쿼리 성능 측정 >
- 데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 사전 작업. EXPLAIN PLAN을 주로 활용
- SQL 성능 개선 절차 : 문제 있는 SQL 식별 -> 옵티마이저 통계 확인 -> SQL문 재구성 -> 인덱스 재구성 -> 실행계획 유지관리
<소스 코드 인스펙션 >
- 데이터베이스 성능 향상을 위하여 프로시저 코드를 보면서 성능 문제점을 개선해 나가는 활동
- SQL 코드 인스펙션 대상 : 미사용 변수 / 미사용 서브쿼리 / Null 값 비교 / 과거의 데이터 타입
'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글
정처기 2-3. 제품 소프트웨어 패키징 (0) | 2021.08.03 |
---|---|
정처기 2-2. 통합 구현 (0) | 2021.08.01 |
정처기 1-4. 인터페이스 설계 (0) | 2021.07.30 |
정처기 1-3. 애플리케이션 설계 (0) | 2021.07.27 |
정처기 1-2. 화면 설계 (0) | 2021.07.26 |