정보처리기사 - 데이터 입출력 구현 #58~60

2023. 8. 19. 11:31자격증/정보처리기사

58. 논리 데이터 모델의 변환

58.1 엔티티(Entity)를 테이블로 변환

논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환하는 것
  • 논리 데이터 모델의 변환은 논리 데이터 모델을 물리 데이터 모델로 변환하는 것을 말함
  • 변환 규칙
논리적 설계(데이터 모델링) 물리적 설계
엔티티
(Entity)
테이블
(Table)
속성
(Attribute)
컬럼
(Column)
주 식별자
(Primary Identifier)
기본키
(Primary Key)
외부 식별자
(Foreign Identifier)
외래키
(Foreign Key)
관계
(Relationship)
관계
(Relationship)

58.2 슈퍼타입/서브타입을 테이블로 변환

슈퍼타입/서브타입은 논리 데이터 모델에서 이용되는 형태이므로 물리 데이터 모델을 설계할 때는 슈퍼타입/서브타입을 테이블로 변환해야 함
  • 슈퍼타입/서브타입 모델을 테이블로 변환하는 방법에는 슈퍼타입 기준 테이블 변환, 서브타입 기준 테이블 변환, 개별타입 기준 테이블 변환이 있음

58.3 슈퍼타입 기준 테이블 변환

서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만드는 것
  • 서브타입에 속성이나 관계가 적을 경우에 적용하는 방법
  • 하나로 통합된 테이블에는 서브타입의 모든 속성이 포함되어야 함

58.3.1 슈퍼타입 기준 테이블 변환

  • 서브타입의 방문접수 개체에 있는 '지점코드', '담당부서'와 인터넷접수 개체에 있는 'ID', '수수료 납부 방법'이 슈퍼타입인 접수 개체에 통합되어 접수 테이블로 변환됨

58.4 서브타입 기준 테이블 변환

슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것
  • 서브타입에 속성이나 관계가 많이 포함된 경우 적용

58.4.1 서브타입 기준 테이블 변환

  • 슈퍼타입인 접수 개체에 있는 '신청자 이름', '접수일', '수수료'가 서브타입인 방문접수 개체와 인터넷접수 개체에 각각 추가되어 방문접수와 인터넷접수 테이블로 변환됨

58.5 개별타입 기준 테이블 변환

슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환하는 것
  • 슈퍼타입과 서브타입 테이블들 사이에는 각각 1:1 관계가 형성됨

58.5.1 개별타입 기준 테이블 변환

  • 슈퍼타입의 접수 개체와 서브타입의 방문접수, 인터넷접수 개체가 각각 접수, 방문접수, 인터넷접수 테이블로 변환됨

58.6 속성을 컬럼으로 변환

논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환
종류 내용
일반 속성 변환 속성과 컬럼은 명칭이 반드시 일치할 필요는 없으나, 개발자와 사용자 간 의사소통을 위하여 가능한 한 표준화된 약어를 사용하여 일치시키는 것이 좋음
Primary UID를 기본키로 변환 논리 데이터 모델에서의 Primary UID는 물리 데이터 모델의 기본키로 만듦
Primary UID(관계의 UID Bar)를 기본키로 변환 다른 엔티티와의 관계로 인해 생성된 Primary UID는 물리 데이터 모델의 기본키로 만듦
Secondary(Alternate) UID를 유니크키로 변환 논리 모델링에서 정의된 Secondary UID 및 Alternate Key는 물리 모델에서 유니크키로 만듦
  • UID Bar : 엔티티에 포함된 고유한 속성의 식별자(UID)가 아니라 다른 엔티티와의 관계로 인해 생성된 식별자(UID)를 의미
  • 유니크키(Unique Key) : 유니크키는 해당 속성에 입력된 값이 유일하다는 것을 보장하기 위한 제약 조건인 유니크(Unique) 속성이 설정된 키

58.6.1 일반 속성 변환

  • 사원 엔티티의 '부서번호', '이름', '주소', '전화번호', '이메일' 속성이 사원 테이블의 각가의 컬럼으로 변환되었으며, 예시를 위한 데이터가 들어 있음

58.7 관계를 외래키로 변환

논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 외래키로 변환

59. 물리 데이터 모델 품질 검토

59.1 물리 데이터 모델 품질 검토

물리 데이터 모델을 설계하고 데이터베이스 객체를 생성한 후 개발 단계로 넘어가기 전에 모델러와 이해관계자들이 모여 수행
  • 물리 데이터 모델 품질 검토의 목적은 데이터베이스의 성능 향상과 오류 예방
  • 물리 데이터 모델을 검토하려면 모든 이해관계자가 동의하는 검토 기준이 필요

59.2 물리 데이터 모델 품질 기준

기준 내용
정확성 데이터 모델이 요구사항이나 업무 규칙, 표기법에 따라 정확하게 표현되었음
완전성 데이터 모델이 데이터 모델의 구성 요소를 누락 없이 정의하고 요구사항이나 업무 영역을 누락 없이 반영하였음
준거성 데이터 모델이 데이터 표준, 표준화 규칙, 법적 요건 등을 정확하게 준수하였음
최신성 데이터 모델이 최근의 이슈나 현행 시스템을 반영하고 있음
일관성 데이터 모델이 표현상의 일관성을 유지하고 있음
활용성 작성된 모델과 설명을 사용자가 충분히 이해할 수 있고, 업무 변화에 따른 데이터 구조의 변경이 최소화될 수 있도록 설계되었음

59.3 물리 데이터 모델 품질 검토 항목

물리 데이터 모델의 특성을 반영한 품질 기준을 작성한 후 이를 기반으로 작성
  • 물리 데이터 모델에 정의된 테이블, 컬럼, 무결성 제약 조건 등 물리 데이터 모델의 주요 구성 요소와 반정규화, 인덱스, 스토리지 등 물리 데이터 모델의 전반적인 것을 검토 항목으로 작성

60. 자료 구조

60.1 자료 구조

자료를 기억장치의 공간 내에 저장하는 방법과 자료 간의 관계, 처리 방법 등을 연구 분석하는 것을 말함
  • 저장 공간의 효율성과 실행시간의 단축을 위해 사용
  • 자료 구조의 분류

  • 연속 리스트와 연결 리스트는 선형 리스트에 속하는 자료 구조로, 빈 공간 없이 차례대로 데이터가 저장된다는 것이 특징

60.2 배열(Array)

크기와 형(Type)이 동일한 자료들이 순서대로 나열된 자료의 집합
  • 반복적인 데이터 처리 작업에 적합한 구조
  • 정적인 자료 구조로, 기억장소의 추가가 어려움
  • 데이터 삭제 시 기억장소가 빈 공간으로 남아 있어 메모리의 낭비가 발생

60.3 연속 리스트(Contiguous List)

배열과 같이 연속되는 기억장소에 저장되는 자료 구조
  • 중간에 데이터를 삽입하기 위해서는 연속된 빈 공간이 있어야 함
  • 삽입·삭제 시 자료의 이동이 필요

60.4 연결 리스트(Linked List)

자료들을 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조
  • 연결을 위한 링크(포인터) 부분이 필요하기 때문에 기억 공간의 이용 효율이 좋지 않음
  • 접근 속도가 느리고, 연결이 끊어지면 다음 노드를 찾기 어려움

  • 노드(Node) : 노드는 자료를 저장하는 데이터 부분과 다음 노드를 가리키는 포인터인 링크 부분으로 구성된 기억 공간
  • 포인터(Pointer) : 현재의 위치에서 다음 노드의 위치를 알려주는 요소

60.5 스택(Stack)

리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
  • 후입선출(LIFO; Last In First Out) 방식으로 자료를 처리
  • 저장할 기억 공간이 없는 상태에서 데이터가 삽입되면 오버플로(Overflow) 발생
  • 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 언더플로(Underflow) 발생

60.6 큐(Queue)

리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지는 자료 구조
  • 선입선출(FIFO; First In First Out) 방식으로 처리
  • 시작을 표시하는 프런트(Front) 포인터와 끝을 표시하는 리어(Rear) 포인터가 존재

60.7 그래프(Graph)

정점(Vertex)와 간선(Edge)의 두 집합으로 이루어지는 자료 구조
  • 사이클이 없는 그래프(Graph)를 트리(Tree)라고 함
  • 간선의 방향 유무에 따라 방향 그래프와 무방향 그래프로 구분

60.8 방향/무방향 그래프의 최대 간선 수

  • 방향 그래프의 최대 간선 수 : n(n-1)
  • 무방향 그래프의 최대 간선 수 : n(n-1)/2
  • n은 정점의 개수

60.8.1 방향/무방향 그래프 최대 간선 수 예제

  • 무방향 그래프의 최대 간선 수 : 4(4-1)/2 = 6

  • 방향 그래프의 최대 간선 수 : 4(4-1) = 12