티스토리 뷰

 

[Note]

정보처리기사 실기 요약 정리 공유

02.  데이터 입출력 구현

 

 

 


 

 

01. 논리 데이터 저장소 확인

논리 데이터 모델링 특성 (정포완독)

  • 정규화 (Nomalization)
    • 모든 데이터를 정규화하여 모델링
  • 포용성
    • 모든 엔티티 타입, 속성, 관계, 프로세스 등을 포함
  • 완전성
    • 모든 규칙과 관계를 완전하고 정확하게 표현
  • 독립성
    • 성능, 제약사항에 독립적인 모델
    • 특정 DBMS로부터 독립적인 성질

논리 데이터 모델링 속성 (개속관)

  • 개체
    • 관리할 대상이 되는 실체
    • 사물 또는 사건
  • 속성
    • 관리할 정보의 구체적 항목
    • 개체가 가지고 있는 요소 또는 성질
  • 관계
    • 개체 간의 대응 관계

E-R 모델 (개체-관계) 개념

  • 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델이다.
  • 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R 모델을 활용한다.
  • 요구사항으로부터 얻어낸 정보들을 논리 데이터 모델링 속성(개체, 속성, 관계)으로 기술한 모델이다.
  • ERD의 구성요소인 개체, 속성, 관계를 추출하기 위해서는 업무나 시스템에 대한 명확한 정의가 있어야 하기 때문에 도식화하기 전 각 개체를 사각형, 마름모, 화살표로 표기한 형태를 E-R 모델이라고 한다.

ERD(E-R Diagram)

  • 업무 분석 결과로 도출된 개체(Entity)와 개체 간의 관계를 도식화한 다이어그램
  • 요소들 간의 연관성을 도식화하여 데이터베이스 관리자, 개발자, 사용자 모두 데이터의 흐름과 연관성을 공통적으로 쉽게 확인할 수 있다.

정규화 (Nomalization)

  • 관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스이다.

이상 현상 (Anomaly) (삽삭갱→삽살개)

  • 삽입 이상
    • 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
  • 삭제 이상
    • 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상
    • 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

데이터베이스 정규화 단계 (원부이결다조)

1. 비정규 릴레이션 -> 1차 정규화 -> 1 정규형 (1NF)

  • 1정규형 : 원자값으로 구성, 반복 속성/중복 제거가 필요하다. (도메인이 원자값)

2. 1 정규형 (1NF) -> 1차 정규화 -> 2 정규형 (2NF)

  • 2정규형 : 부분 함수 종속 제거(완전 함수적 종속 관계), 주식별자가 아닌 속성을 분리한다.

3. 2 정규형 (2NF) -> 2차 정규화 -> 3 정규형 (3NF)

  • 3정규형 : 이행 함수 종속 제거, 속성에 종속적인 속성을 분리한다.

4. 3 정규형 (3NF) -> 보이스-코드 정규화 -> 보이스-코드 정규형 (BCNF)

  • 보이스-코드 정규형 : 결정자 함수이면서 후보키가 아닌 것 제거. 모든 결정자가 후보키이다.

5. 보이스-코드 정규형 (3NF) -> 4차 정규화 -> 4 정규형 (4NF)

  • 4정규형 : 다치 (다중 값) 종속성 제거. 특정 속성값에 따라 선택적인 속성을 분리한다.

6. 4 정규형 (3NF) -> 5차 정규화 -> 5 정규형 (5NF)

  • 5정규형 : 조인 종속성 제거

 

02. 물리 데이터 저장소 설계

예약어

  • 테이블을 생성시 일부 단어들 중 시스템에서 사전 예약이 되어 있어서 사용할 수 없는 단어이다.

기본키

  • 테이블의 각 튜플들을 고유하게 식별하는 키이다.

외래키

  • 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키이다.

반 정규화 (De-Nomalization)

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

제약조건(Constraint) 설계

  • 참조 무결성 제약조건
    • 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건이다.
    • 두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다.
  • 제한
    • 참조무결성 원칙을 위배하는 연산을 거절하는 옵션이다.
  • 연쇄
    • 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션이다.
  • 널 값(Nullity)
    • 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣는 옵션이다.
    • 만일 릴레이션을 정의할 때 참조하는 릴레이션에서 NULL값이 들어갈 애트리뷰트에 'NOT NULL'이라고 명시되어 있다면 삭제 연산을 거절한다.

튜플 (Tuple)

  • 관계형 데이터베이스에서는 행(Row)를 의미한다.

애트리뷰트 (Attribute)

  • 관계형 데이터베이스에서는 열(Column)을 의미한다.

카디널리티 (Cardinality)

  • 튜플(Row)의 개수를 의미한다. 차수.

기본 키 (Primary Key)

  • 유일성, 최소성, 대표성을 가지며 null을 허용하지 않는 키이다.

외래 키 (Foreign Key)

  • 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키를 의미한다.

DML (Data Manipulation Language)

  • 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어이다.
  • SELECT, INSERT, UPDATE, DELETE

DDL (Data Defination Language)

  • 데이터를 생성하거나 수정, 삭제 등 데이터의 전체 골격을 결정하는 역할의 언어
  • CREATE, ALTER, DROP, TRUNCATE

DCL (Data Control Manager Language)

  • 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어
  • GRANT, REVOKE, COMMIT, ROLLBACK

파티셔닝 유형 (레해리컴)

  • 레인지 파티셔닝 (Range Partitioning)
    • 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법이다.
    • 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능하다.
    ex) 우편번호, 일별, 월별, 분기별 등의 데이터에 적합
  • 해시 파티셔닝 (Hash Partitioning)
    • 파티션 키의 해시 함수 값에 의한 파티셔닝 기법이다.
    • 균등한 데이터 분할이 가능하고 질의 성능이 항상 가능하다.
    ex) 파티션을 위한 범위가 없는 데이터에 적합
  • 리스트 파티셔닝 (List Partitioning)
    • 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법이다.
    • 분포도가 비슷하고, 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용하다.
    ex) [한국, 일본, 중국] → 아시아, [노르웨이, 스웨덴, 핀란드] → 북유럽
  • 컴포넌트 파티셔닝 (Component Partitioning)
    • 범위분할에 이후 해시함수를 적용하여 재분할하는 파티셔닝 기법이다.
    • 큰 파티션에 대한 I/O요청을 여러 파티션으로 분산할 수 있다.
    ex) 레인지 파티셔닝 할 수 있는 컬럼이나 파티션이 너무 커서 효과적으로 관리할 수 없을 때 유용

파티션의 장점 (성가백합)

  • 성능 향상 : 데이터 엑세스 범위를 줄여 성능 향상
  • 가용성 향상 : 전체 데이터의 훼손 가능성 감소 및 데이터 가용성 향상
  • 백업 가능 : 분할 영역을 독립적으로 백업하고 복구 가능
  • 경합 감소 : 디스크 스트라이핑으로 입출력 성능을 향상. 디스크 컨트롤러에 대한 경합의 감소

💡 디스크 스트라이핑 (Disk striping)

  • 성능 향상을 위해 데이터를 1개 이상의 디스크 드라이브에 저장하여 드라이브를 병렬로 사용할 수 있는 기술.

 

03. 데이터 조작 프로시저 작성

프로시저

  • SQL를 이용해 생성된 데이터를 조작하는 프로그램
  • 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다.

PL&SQL

  • 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다.
  • Oracle 기반의 모든 프로시저 작성에 사용되며, 표준 SQL의 확장 기능이 우수하다.

 

04. 데이터 조작 프로시저 최적화

APM

  • 안정적인 시스템 운영을 위해 부하량, 접속자 파악 및 장애진단을 목적으로 하는 성능 모니터링 도구를 의미한다.

Optimizer

  • SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심 엔진이다.
  • 옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 부른다.

 

 


틀린 내용이 있거나 문제가 있을시 알려주세요. 같이 공부해요 😊

이 글이 도움이 되셨다면 공감, 댓글 부탁드려요 👍🏻

댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
Yesterday
공지사항
최근에 올라온 글