[정보처리기사 실기] 2. 데이터 입출력 구현

민영·2022년 7월 5일
0

정보처리기사

목록 보기
2/4
post-thumbnail

01 논리 데이터베이스 설계

데이터 모델링

: 실체(Entity)와 관계(Relation)를 중심으로 명확하고 체계적으로 표현하여 문서로 만드는 기법

[데이터베이스 설계 순서]
데이터베이스 계획-> 요구사항 분석-> 개념적 데이터 설계-> 논리적 데이터 설계-> 물리적 데이터 설계-> 구현

  • 요구사항 분석: 요구를 분석하고 명세서를 작성하는 단계
  • 개념 데이터 모델링: 속성들로 기술된 개체 타입과 이 개체 타입 간의 관계를 이용하여 현실 세계를 표현하는 방법
    ex) 개체-관계(E-R) 모델
  • 논리 데이터 모델링: 개념적 구조를 정규화하여 모델링하고 규칙과 관계를 완전하고 정확하게 표현하는 방법 & 엔티티(Entity)와 속성(Attribute)들의 관계(Relation)를 구조적으로 정의하는 단계
    ex) 계층형, 네트워크(망)형, 관계형, 객체 지향형
  • 물리 데이터 모델링: 구조화된 데이터베이스를 실제 저장장치에 어떻게 저장할지를 설계하는 단계
    ex) 레코드 양식의 순서, 액세스 경로 인덱싱, 클러스터링, 해싱 등의 설계

논리 데이터 저장소 확인

논리데이터모델: 개념 데이터 모델을 상세화 하여 논리적인 데이터 집합, 관리 항목, 관계를 정의한 모델을 말함

1) 개체

  • 개체의 종류
    독립 엔티티: 원래부터 현실 세계에 존재하는 엔티티
    중심 엔티티: 업무가 실행되면서 발생하는 엔티티
    종속 엔티티: 중심 엔티티로부터 분리된 엔티티
    교차 엔티티: 두개 이상의 엔티티 간에 발생하는 트랜잭션에 의해 발생하는 엔티티

2) 속성: 데이터베이스를 구성하는 가장 작은 논리적 단위

  • 속성의 종류
    단일값 속성: 반드시 하나의 값만 존재 (주민등록번호)
    다중값 속성: 여러개의 값을 가질 수 있다 (핸드폰 번호, 집 전화번호)
    단순 속성: 더 이상 작은 구성요소로 분해할 수 없는 속성
    복합 속성: 다른 속성들로 분해할 수 있다 (성+이름)

3) 관계

  • 관계의 종류
    일대일(1:1)
    일대다(1:N)
    다대다(N:M)

관계형 데이터베이스

: 대표적인 논리데이터 모델링 방식, 개체와 관계를 릴레이션이라는 테이블로 표현

릴레이션의 구성 요소

  • 속성(Attribute): 세로, 열
    +) 속성의 수를 디그리 또는 차수라고 한다
  • 도메인(Domain): 하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합
  • 튜플(Tuple): 가로, 행
    +) 튜플의 수를 카디널리티 또는 기수라고 한다

정규화와 이상 현상

데이터 종속성, 효율적인 데이터 처리, 데이터의 일관성 유지 등의 요구를 충족시키고 이상현상을 제거하기 위해 정규화가 필요하다.
(이상의 종류: 삽입이상, 삭제이상, 수정이상)

함수적 종속: 개체를 구성하는 속성들이 어떤 기준값 속성에 의해 종속되는 현상을 의미
1) 완전 함수 종속: 속성들의 집합 X에 대해 Y가 함수적으로 종속되면서 X의 부분 집합에 대해서는 함수적으로 종속하지 않는 경우
2) 부분 함수 종속: 기본키의 일부만 알아도 속성을 알 수 있는 경우
3) 이행적 함수 종속: A->B, B->C 일때, A->C가 성립되는 경우

[정규화 과정]
비정규 릴레이션 ->
원자값이 아닌 메인을 분해 -> 1NF ->
분 함수 종속 제거 -> 2NF ->
행 함수 종속 제거 -> 3NF ->
정자가 후보키가 아닌 함수 종속 제거 -> BCNF ->
치 종속성 제거 -> 4NF ->
인 종속 -> 5NF


02 물리 데이터베이스 설계

데이터 모델 품질 검증 기준

  • 정확성
  • 완전성
  • 준거성
  • 최신성
  • 일관성
  • 활용성

반정규화

: DB의 성능 향상을 목적으로 정규화를 통해 분할된 테이블을 다시 합치는 과정을 의미, 중복성의 원리를 활용하여 데이터 조회시 성능을 향상시키는 역할

[반정규화 적용 방법]
1) 반정규화의 대상을 조사한다.
2) 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토한다.
3) 반정규화를 적용한다.

반정규화 기법

  • 테이블 반정규화: 테이블 병합, 테이블 분할, 테이블 추가
  • 컬럼 반정규화: 중복 컬럼 추가, 파생 컬럼 추가, 이력 테이블 컬럼 추가, PK에 의한 컬럼 추가, 응용시스템 오작동을 위한 컬럼 추가
  • 관계 반정규화: 중복 관계 추가

: 실제 테이블에서 유도되는 가상의 테이블, 실제 저장된 내용을 사용자에게 보여주기 위한 가상의 테이블

시스템 카탈로그

: 시스템 자신이 필요로 하는 스키마 및 여러 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스
: 데이터 사전(Data Dictionary)이라고도 한다.
: 시스템 카탈로그에 저장되는 내용을 메타데이터라고 한다.
: 카탈로그의 정보를 SQL의 UPDATE, DELETE, INSERT문으로 직접 갱신하는 것은 불가능하다.
: 사용자가 SQL문을 실행하면 시스템은 자동으로 관련 카탈로그 테이블을 갱신한다.

SQL

  • DDL(Data Definition Language, 데이터 정의어)
    종류: CREATE, ALTER, DROP
  • DML(Data Manipulation Language, 데이터 조작어)
    종류: SELECT, INSERT, DELETE, UPDATE
  • DCL(Data Control Language, 데이터 제어어)
    종류: GRANT, REVOKE, ROLL
  • TCL(Transaction Control Language, 트랜잭션 제어어)
    종류: COMMIT, ROLLBACK, SAVEPOINT

03 데이터 조작 프로시저 최적화하기

[데이터 저장소 연결 순서]
드라이버 로딩-> 연결-> 쿼리 전달-> 결과 수신

데이터 프로시저

: SQL을 이용하여 조작 대상 데이터 집합에서 검색, 입력, 수정, 삭제와 같은 조작을 효고적으로 할수있도록 고안된 언어
: SQL을 이용해 생성된 데이터를 조작하는 프로그램

- 데이터 조작 프로시저
1) 구축한 데이터 저장소에 연결해 데이터 저장소 오브젝트 생성
2) 데이터의 입력 및 변경 수행
3) 저장된 데이터를 검색하는 프로시저 작성
도구: CRUD Matrix

- 데이터 검색 프로시저
도구: Dynamic SQL, Static SQL

- 절차형 데이터 조작 프로시저
1) PL/SQL을 활용하여 프로시저를 작성
2) 저장형 프로시저 객체 유형을 정의
3) 정의한 객체를 생성
4) 생성하여 저장된 프로시저 객체를 활용
도구: Stored Function, Stored Procedure, Stored Package, Trigger

+) PL/SQL: SQL을 확장한 절차적 언어
장점: 컴파일 불필요, 모듈화 가능, 절차적 언어 사용, 에러 처리

+) 트리거(Trigger): DBMS에서 묵시적으로 수행되는 프로시저
-테이블과는 별도로 데이터베이스에 저장된다.
-뷰가 아닌 테이블에 관해서만 정의될 수 있다.
-문장 트리거: 전체 트랜잭션 작업에 대해 1번 발생
-행 트리거: 각 행에 대해서 트리거 발생

profile
그날의 기록

0개의 댓글