본문 바로가기
개발하는 '정'/정보처리기사

2020년 정보처리기사 실기 내용 정리 - 2. 데이터 입출력 구현 -1) 데이터베이스 설계

by 주앤정_블로그 2020. 10. 28.

2020 정보처리기사 실기 2과목 [데이터 입출력 구현] -1) 데이터베이스 설계 파트 내용 요약 및 정리. + 문제 풀이

복습 : 2020년 정보처리기사 실기 내용 정리 - 1. 요구사항 확인

  

<데이터베이스 설계>

 

1) 설계 시 고려사항 "무일회보효확"

  ① 무결성 : 데이터는 연산 후에도 정해진 제약 조건을 항상 만족해야함

  ② 일관성 : 저장된 데이터 사이나, 특정 질의에 대한 응답이 변함없이 일정해야함

  ③ 회복 : 시스템 장애 발생 시 발생 직전의 상태로 복구 가능해야함

  ④ 보안성 : 불법적인 데이터 노출/변경/손실로부터 보호할 수 있어야함

  ⑤ 효율성 : 응답시간 단축, 시스템 생산성 향상, 저장공간 최적화 등 가능해야함

  ⑥ DB 확장 : DB 운영에 영향 주지 않으면서 데이터 추가 가능해야함

 

2) 설계 순서

  ① 요구조건 분석 : 요구 조건 명세서 작성

  ② 개념적 설계(=정보 모델링) : 개념 스키마 및 트랜잭션 모델링 병행 수행. E-R Diagram 작성. DBMS 독립적

       - E-R Diagram - 표기법 : 피터 첸 / 정보 공학 / 바커 표기법

E-R 다이어그램 표기법 종류

  ③ 논리적 설계(=데이터 모델링) : 논리 스키마 설계. 트랜잭션 인터페이스 설계. DBMS 종속적

        - 데이터 모델 : 현실 정보를 컴퓨터에 표현하기 위해 추상화한 개념적 모형

             - 구성 요소 : 개체 / 관계(종속/중복/배타/재귀) / 속성(기본/설계/파생 속성으로 구분. 속성의 수 = 디그리)

             - 표시할 요소 : 구조 / 연산 / 제약조건

             - 식별자 : 한 개체 내 각각의 인스턴스를 유일하게 구분하는 구분자. 주/보조, 내/외부, 단일/복합, 원조/대리 식별자로 구분

             - 정규화* : 관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스

  ④ 물리적 설계(=데이터 구조화) : 논리적 구조 데이터를 물리적 구조의 데이터로 변환

       - 테이블 종류 : 일반 테이블, 클러스터드 인덱스 테이블(기본키나 인덱스 키의 순서에 따라 데이터 저장됨), 파티셔닝 테이블, 외부 테이블, 임시 테이블

       - 테이블스페이스 : 테이블이 저장되는 논리적 영역.

       -  트랜잭션 분석, CRUD 분석, 인덱스/파티션/뷰/클러스터 설계 => 자세히 보기(준비중)

       - 분산 DB 설계, 이중화, 서버 클러스터링, DB 보안, 암호화, 백업, 스토리지 => 자세히 보기(준비중)

       - 반정규화* : 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법

  ⑤ 구현 : DB 생성. 트랜잭션 생성

 

※ 관계형 모델

관계형 데이터 모델의 구성

※ 관계형 데이터베이스

관계형 데이터베이스의 릴레이션 구조

 ◎ 튜플의 수 = 카디널리티 / 속성의 수 = 디그리 혹은 차수

 ◎ 제약 조건

   (1) 키 : 튜플을 찾거나 정렬할 때 기준이 되는 속성

          - 종류 : 후보키 / 기본키 / 대체키 / 슈퍼키 / 외래키

   (2) 무결성 : 현실 세계의 실제 값과 DB에 저장된 데이터값이 일치하는 정확성

          - 종류 : 개체 무결성 / 도메인 무결성 / 참조 무결성 / 사용자 정의 무결성

 ◎ 관계대수 : 관계형 DB에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적 언어.

        - 순수 관계 연산자 (Select,Project,Join,Division) / 일반 집합 연산자 (합집합,교집합,차집합,교차곱)

관계대수

        - 관계해석 : 관계 데이터의 연산을 표현하는 방법. 원하는 정보 정의 시 계산 수식 사용. 비절차적

 

※ 시스템 카탈로그 : 모든 데이터 개체 정보나 명세에 대한 정보가 수록된 DBMS가 스스로 생성,유지하는 DB 내 테이블 집합체 (insert,update,delete 불가)

 - 메타 데이터 : 데이터 그 자체가 아니라 자료의 속성, 구조 등을 설명하는 데이터의 데이터 

 

 

*정규화

 - 원칙 : 정보의 무손실 표현 (한 스키마에서 다른 스키마로 변환 시 손실X) / 중복 최소화 / 분리의 원칙 (하나의 독립된 관계성은 하나의 릴레이션으로 분리시켜 표현)

 - 목적 : 중복 배제, 무결성 유지, 이상 현상(삽입,삭제,갱신) 방지 등

 - 과정 : 도부이결다조

 

*반정규화 (=비정규화,역정규화)

 - 방법

     (1) 테이블 통합 : Join이 자주 발생하거나 동일한 프로세스가 자주 처리되는 경우 하나의 테이블로 합쳐 사용. 

                           1:1 관계 테이블 통합, 1:N 관계 테이블 통합, 슈퍼타입/서브타입 테이블 통합이 있다.

     (2) 테이블 분할 - 수평 분할 : 레코드별로 사용 빈도 차이가 큰 경우 레코드 기준으로 분할

                          - 수직 분할 : 속성이 너무 많은 경우 속성 기준으로 분할

     (3) 중복 테이블 추가 : 여러 테이블에서 데이터를 추출해야하거나 다른 서버의 테이블을 이용하는 경우

                                  집계 테이블 추가/진행 테이블 추가(이력관리)/특정 범위 포함 테이블 추가 등의 방법이 있다.

     (4) 중복 속성 추가 : 조인해서 데이터 처리 시 조회 경로를 단축하기 위해 추가

                               집계 컬럼 추가/이력 컬럼 추가/파생 컬럼 추가/PK에 의한 컬럼 추가 등의 방법이 있다.


문제 (답은 드래그하면 보임)

꼭 직접 쓰면서 풀어보기!

 

 

Q. 데이터베이스 설계 시 고려사항을 3가지 이상 쓰시오.

A. 무결성 (데이터는 연산 후에도 정해진 제약조건을 만족)

일관성 (저장된 데이터 사이나 특정 질의에 대한 응답이 일정)

회복 (장애 발생 시 장애 발생 직전의 상태로 복구 가능)

보안 (불법적 데이터 노출,변경,손실로부터 보호)

효율성 (응답시간 최소화, 시스템 생산성, 저장공간 최적화 등 가능)

DB 확장 (DB 운영에 영향 미치지않고 데이터 추가 가능)

 

Q. 데이터베이스 설계 시 논리적 설계 단계의 특징은?

A. 개념 스키마를 정제 및 평가하고 논리 스키마를 설계하는 단계. 트랜잭션의 인터페이스를 설계. DBMS 종속적이다. 관계형 DB라면 테이블을 설계하는 단계

 

Q. 빈칸에 들어갈 용어는?

( 1 ) : 업무상 존재하지 않고 설계 과정에서 도출해내는 속성

( 2 ) : 다른 속성으로부터 영향을 받아 발생하는 속성

A. 1. ( 설계 속성 ) 2. ( 파생 속성 )

 

Q. 빈칸에 들어갈 용어는?

( 1 ) : 두 개체 사이의 주-종 관계를 표현한 관계. 식별 관계 / 비식별 관계로 구분.
( 2 ) : 두 개체 사이에 종속 관계가 2번 이상 발생하는 관계.
( 3 ) : 개체가 자신과 관계를 맺는 것. 순환 관계라고도 한다.
( 4 ) : 개체 속성이나 구분자로 개체 특성을 분할하는 관계. 배타 AND 관계 / 배타 OR 관계로 구분한다.

A. 1. ( 종속 관계 ) 2. ( 중복 관계 ) 3. ( 재귀 관계 ) 4.( 배타 관계 )

 

Q. 각 내용이 설명하는 용어는?

1. 개체를 대표하는 유일한 식별자.  하나의 개체에 하나만 존재. 유일성,최소성,불변성,존재성을 만족한다.
2. 주 식별자 대신 개체를 식별할 수 있는 속성. 하나의 개체에 하나 이상 존재 가능.
3. 개체 내에서 스스로 만들어지는 식별자.
4. 다른 개체와의 관계에 의해 외부 개체의 식별자를 가져와 사용하는 식별자. 다른 개체를 찾아가는 연결자 역할 수행.
5. 주 식별자가 한가지 속성으로만 구성된 경우
6. 주 식별자가 한가지 이상의 속성으로 구성된 경우
7. 업무에 의해 만들어지는 가공되지 않은 원래 식별자. 본질 식별자라고도 함.
8. 주 식별자의 속성이 두개 이상인 경우 속성들을 하나로 묶어 사용. 인조 식별자라고도 함.
9. 개체 내 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성 집합. 속성 중 대표성이 있으면 주 식별자, 나머지를 보조 식별자로 지정한다. NULL 값 불가능.

A. 1. 주 식별자 2. 보조 식별자 3. 내부 식별자 4. 외부 식별자 5. 단일 식별자 6. 복합 식별자 7. 원조 식별자 8. 대리 식별자 9. 후보 식별자

 

Q. 다음은 관계형 데이터베이스의 제약조건 중 키에 대한 설명이다. 각각 알맞은 용어를 쓰시오.

1. 속성 중 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들. 유일성과 최소성을 만족한다.
2. 후보키 중 특별히 선정된 주키. 중복된 값을 가질 수 없다. Null 값을 가질 수 없다.
3. 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키.
4. 한 릴레이션 내 속성들의 집합으로 구성된 키.
5. 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합.
6. 후보키의 특성 중 '하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야한다'는 특성
7. 후보키의 특성 중 '모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로 구성되어야한다'는 특성

A. 1.후보키 2.기본키 3. 대체키 4.슈퍼키 5.외래키 6.유일성 7.최소성

 

Q. 다음은 관계형 데이터베이스의 제약조건에 대한 설명이다. 각각 알맞은 용어를 쓰시오.

관계형 데이터베이스의 제약조건 중 ( 1 ) 은 현실 세계의 실제 값과 데이터베이스에 저장된 데이터 값이 일치하는 정확성을 의미한다.
종류로는 ( 2 ), ( 3 ), ( 4 ), ( 5 )가 있다.
( 2 ) 는 기본 테이블의 기본 키를 구성하는 어떤 속성도 null 값이나 중복 값을 가질 수 없다는 규정이다.
( 3 ) 는 주어진 속성 값이 정의된 도메인에 속한 값이어야한다는 규정이다.
( 4 ) 는 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야한다는 규정이다.
( 5 ) 는 속성값들이 사용자가 정의한 제약조건을 만족해야한다는 규정이다.
데이터 ( 1 )은 ( 6 ), ( 7 ), ( 8 )로 강화할 수 있다.
( 6 ) 은 데이터 조작 시 무결성 조건 검증 코드를 데이터 조작 프로그램 내에 추가하는 방법이다.
( 7 ) 은 트리거 이벤트에 무결성 조건을 실행하는 절차형 sql을 추가하는 방법이다.
( 8 ) 데이터베이스에 제약 조건을 설정해 무결성을 유지한다.

(1) 무결성 (2) 개체 무결성 (3) 도메인 무결성 (4) 참조 무결성 (5) 사용자 정의 무결성 (6)애플리케이션 (7) 데이터베이스 트리거 (8) 제약 조건

 

Q. 관계대수에 대한 설명이다. 각각 알맞은 용어와 표기법을 쓰시오.

1. 이항 연산으로 관계성이 있는 두개의 릴레이션을 합집합하여 하나의 릴레이션을 만들어 내는 연산
2. 이항 연산으로 관계성이 있는 두개의 릴레이션에서 중복되어 있는 내용을 선택하여 새로운 릴레이션을 만들어 내는 연산

3. 이항 연산으로 관계성이 있는 두개의 릴레이션이 있을 때 그 중 하나의 릴레이션에서 또 다른 릴레이션의 내용과 겹치는 내용을 제거해서 새로운 릴레이션을 생성하는 연산

4. 이항 연산으로 두 릴레이션의 현재 투플로 구성 가능한 모든 조합 만드는 연산

5. 릴레이션의 주어진 조건을 만족하는 튜플을 선택하는 연산

6. 단항 연산으로 릴레이션에서 참조하고자 하는 어트리뷰트를 선택하여 분리해 내는 연산

7. 두 릴레이션 간의 에트리뷰트 값이 동일한 튜플을 연결하는 연산

8. 두 개의 릴레이션 A와 B가 있을 때 B의 릴레이션의 모든 조건을 만족하는 경우의 튜플들을 릴레이션 A에서 분리해 내어 프로젝션하는 연산

1. 합집합 U

2. 교집합 ∩

3. 차집합 -

4. 카티션 프로덕트 X

5. Select б

6. Project π

7. Join ▷◁

8. Division ÷

 

Q. 다음 관계대수 문장을 SQL로 표현하시오.

πname,dept(бyear=3(student))

A. select name,dept from student where year = 3;

 

Q. 정규화란?

A. 관계형 DB 설계에서 중복을 최소화해 데이터를 구조화하는 프로세스

 

Q. 반정규화란?

A. 시스템의 성능향상, 개발 운영의 단순화를 위해 정규화된 데이터 모델을 통합,중복,분리하는 데이터 모델링 기법.

 

Q. 정규화 원칙을 쓰시오.

A. 정보의 무손실 표현 : 한 스키마를 다른 스키마로 변환할 때 정보가 손실되면 안됨. 

분리의 원칙 : 하나의 독립된 관계성은 하나의 릴레이션으로 분리해 표현해야함.

중복 최소화

 

Q. 반정규화 방법을 모두 쓰시오.

A. 테이블 통합(1:1,1:N,슈퍼/서브) / 테이블 분할(수평,수직) / 중복 테이블 추가(집계,진행,특정범위) / 중복 컬럼 추가 (중복,파


오류나 추가될 사항 있으면 댓글 부탁드립니다생,이력,PK에 의한)

 

 

반응형

댓글