컴공생의 발자취

[정보처리기사 실기] 개념요약 - 02. 데이터 입출력 구현 본문

🎫 자격증/정보처리기사

[정보처리기사 실기] 개념요약 - 02. 데이터 입출력 구현

MNY 2024. 4. 20. 19:52
728x90
반응형
데이터 모델
데이터 모델링
개체-관계(E-R) 모델
정규화
반정규화
이상현상
인덱스
파티션
데이터베이스
DBMS
관계형 데이터베이스
빅데이터
NoSQL
데이터 마이닝
관계 대수와 관계 해석
트랜잭션 분석 / CRUD 분석
뷰/클러스터
데이터베이스 보안
트리
이진트리
정렬

* 데이터 모델

표시 요소

  • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
  • 구조(Structure) : 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입 간의 관계
  • 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

절차 : 요개논물

  • 구 사항 분석
  • 념적 설계 : 사용자의 트랜잭션을 모델링 하는 관계
  • 리적 설계 : 트랜잭션의 인터페이스를 설계하는 단계
  • 리적 설계 : 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계

 

* 데이터 모델링

속성 : 개속관

  • 체(Entity) : 관리할 대상이 되는 실체
  • 성(Attribute) : 관리할 정보의 구체적 항목
  • 계(Relationship) : 개체 간의 대응 관계

종류 

  • 개념적 데이터 모델 : 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
  • 논리적 데이터 모델 : 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
  • 물리적 데이터 모델

 

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

  • 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

 

* 정규화(Normalization)

  • 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

정규화 단계 : 원부이결다조

  • 1정규형(1NF) : 자값으로 구성
  • 2정규형(2NF) : 분 함수 종속 제거(완전 함수적 종속 관계)
  • 3정규형(3NF) : 행 함수 종속 제거
  • 보이스-코드 정규형(BCNF) : 정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF) : 치(다중 값) 종속 제거
  • 5정규형(5NF) : 인 종속 제거

 

* 반 정규화(De-Normalization)

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

반 정규화 기법

  • 테이블 병합
  • 테이블 분할
    • 수평 분할
    • 수직 분할
  • 중복 테이블 추가
    • 집계 테이블 추가
    • 진행 테이블 추가
    • 특정 부분만을 포함하는 테이블 추가
  • 컬럼 중복화
  • 중복 관계 추가

 

* 이상 현상(Anomaly)

  • 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상

종류 : 삽삭생

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

 

* 인덱스(Index)

  • 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조

종류 : 순해비함 단결클

  • 서 인덱스(Ordered Index) : 데이터가 정렬된 순서로 생성되는 인덱스
  • 시 인덱스(Hash Index) : 해시 삼수에 의해 직접 데이터에 키 값으로 접근하는 인덱스
  • 트맵 인덱스(Bitmap Index) : 각 컬럼에 적은 개수 값이 저장된 경우 선택하는 인덱스
  • 수기반 인덱스(Functional Index) : 수식이나 함수를 적용하여 만든 인덱스
  • 일 인덱스(Singled Index) : 하나의 컬럼으로만 구성한 인덱스
  • 합 인덱스(Concatenated Index) : 두 개 이상의 컬럼으로 구성한 인덱스
  • 러스터드 인덱스(Clustered Index) : 기본 키(PK) 기준으로 레코드를 묶어서 저장하는 인덱스

 

* 파티션(Partition)

종류 : 레해리컴라

  • 인지 파티셔닝(Range Partitioning) : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
  • 시 파티셔닝(Hash Partitioning) : 파티션 키의 해시 값에 의한 파티셔닝 기법
  • 스트 파티셔닝(List Partitioning) : 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법
  • 포지트 파티셔닝(Composite Partitioning) : 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 파티셔닝 기법
  • 운드로빈 파티셔닝(Round-Robin Partitioning) : 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당되는 방식

장점 : 성가백합

  • 능 향상
  • 용성 향상
  • 업 가능
  • 감소

 

* 데이터베이스

  • 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터 집합

정의 : 통저운공

  • 합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
  • 장된 데이터(Stored Data) : 저장 매체에 저장된 데이터
  • 영 데이터(Operational Data) : 조직의 업무를 수행하는 데 필요한 데이터
  • 용 데이터(Stored Data) : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터

설계 순서

  • 요구 조건 분석 : 요구 조건 명세서 작성
  • 개념적 설계(정보 모델링, 개념화) : 개념 스키마, 트랜잭션 모델링, E-R 모델
  • 논리적 설계(데이터 모델링) : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
  • 물리적 설계(데이터 구조화) : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
  • 구현 : 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 트랜잭션 작성

 

* DBMS(DataBase Management System)

  • 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어

유형 : 키컬도그

  • -값(Key-Value) DBMS
  • 럼 기반 데이터 저장(Column Family Data Store) DBMS
  • 문서 저장(Document Store) DBMS
  • 래프(Graph) DBMS

특징

  • 데이터 무결성
  • 데이터 일관성
  • 데이터 회복성
  • 데이터 보안성
  • 데이터 효율성

 

* 관계형 데이터베이스

모델(Relational Data Model)

  • 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조
  • 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터 간의 관계를 표현한다.

릴레이션 구조

  • 튜플(Tuple)
    • 릴레이션을 구성하는 각각의 행
    • 속성의 모임
    • 파일 구조에서 레코드와 같은 의미
    • 튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응수라고 한다.
  • 속성(Attribute)
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.
    • 속성은 개체의 특성을 기술
    • 속성의 수를 디그리(Degree) 또는 차수라고 한다.
  • 도메인(Domain)
    • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합
    • 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용된다.

키(Key)

  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
  • 종류
    • 후보키(Candidate Key)
      • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
      • 기본키로 사용할 수 있는 속성들
      • 유일성(Unique)최소성(Minimality)를 모두 만족시켜야 한다
        • 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
        • 최소성(Minimality) : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함
    • 기본키(Primary Key)
      • 후보키 중에서 특별히 선정된 주키(Main Key)
      • 중복된 값을 가질 수 없다
      • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
      • NULL 값을 가질 수 없다
    • 대체키(Alternate Key)
      • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
      • 보조키라고도 한다
    • 슈퍼키(Super Key)
      • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
      • 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다
      • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다
    • 외래키(Foreign Key)
      • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
      • 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 한다
      • 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다

 

* 빅 데이터(Big Data)

  • 시스템, 서비스, 조직(회사) 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터

특성

  • 데이터의 양(Volume)
  • 데이터의 다양성(Variety)
  • 데이터의 속도(Velocity)

 

* NoSQL

  • 전통적인 RDBMS와 다른 DBMS를 저장하기 위한 용어로, 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인(Join) 연산을 사용할 수 없으며 수평적으로 확장 가능한 DBMS

특성

  • Basically Available
  • Soft-State
  • Eventually Consistency

유형

  • Key-Value Store
  • Column Family Data Store
  • Document Store

 

* 데이터 마이닝(Data Mining)

  • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술

주요 기법 : 분연 연데

  • 류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드의 결과값을 예측하는 기법
  • 관 규칙(Association) : 데이터 안에 존재하는 항목들 간의 종속 관계를 찾아내는 기법
  • 속 규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
  • 이터 군집화(Clustering) : 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업

 

* 관계 대수와 관계 해석

관계 대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
  • 일반 집합 연산자 : 합교차카
    • 집합(Union) ∪
    • 집합(Intersection) ∩
    • 집합(Difference) -
    • 티션 프로덕트(Cartesian Product) ×
  • 순수 관계 연산자 : 셀프조디
    • Select σ
    • Project π
    • Join ▷◁
    • Division ÷

관계 해석(Relational Calculus)

  • 관계 데이터의 연산을 표현하는 방법
  • 관계 데이터 모델의 제안자인 코드(E.F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안했다
  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 특성을 지닌다
  • 원하는 정보를 정의할 때는 계산 수식을 사용한다

 

* 트랜잭션 분석 / CRUD 분석

트랜잭션(Transaction)

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들

트랜잭션의 특성 : ACID

  • Atomicity(원자성) : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
  • Consistency(일관성) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환됨
  • Isolation(독립성, 격리성, 순차성) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
  • Durability(영속성, 지속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

CRUD 분석

  • 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
  • CRUD 매트릭스
    • 2차원 형태의 표로서, 행(Row)에는 프로세스를, 열(Column)에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하여 프로세스와 데이터 간의 관계를 분석하는 분석표
    • 각 셀에는 CREATE, READ, UPDATE, DELETE의 앞 글자가 들어가며, 복수의 변화를 줄 때는 기본적으로 ' C > D > U > R ' 의 우선순위를 적용하여 한 가지만 적지만, 활용 목적에 따라 모두 시록할 수 있다.

트랜잭션 분석

  • CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 한다
  • 트랜잭션 분석서
    • 단위 프로세스와 CRUD 매트릭스를 이용하여 작성한다
    • 구성 요소 : 단위 프로세스, CRUD 연산, 테이블명, 컬럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등

 

* 뷰 / 클러스터

뷰(View)

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
  • 뷰는 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다
  • 뷰를 정의할 때는 CREATE 문, 제거할 때는 DROP 문을 사용한다

클러스터(Cluster)

  • 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
  • 클러스터링 된 테이블은 데이터 조회 속도를 향상시키지만 입력, 수정, 삭제에 대한 작업 성능을 저하시킨다
  • 클러스터는 데이터의 분포도가 넓을수록 유리하다
  • 데이터 분포도가 넓은 테이블을 클러스터링하면 저장 공간을 절약할 수 있다
  • 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다

 

* 데이터베이스 보안

  • 데이터베이스의 일부 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술

암호화(Encryption)

  • 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
  • 암호화(Encryption) 과정 : 암호화되지 않은 평문을 암호문으로 바꾸는 과정
  • 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정
  • 암호화 기법
    • 개인키 암호화 방식(Private Key Enctyprion)
    • 공개키 암호화 방식(Public Key Encryption)

접근 통제

  • 데이터가 저장된 객체와 이를 사용하는 주체 사이의 정보 흐름을 제한하는 것

접근 통제 3요소

  • 접근통제 정책
    • 어떤 주체가(Who), 언제(When), 어디서(Where), 어떤 객체(What)에게, 어떤 행위(How)에 대한 허용 여부를 정의하는 것
    • 종류
      • 신분 기반 정책 : 주체나 그룹의 신분에 근거하여 객체의 접근을 제한하는 방법으로, IBP와 GBP가 있음
        • IBP(Individual-Based Policy) : 최소 권한 정책으로, 단일 주체에게 하나의 객체에 대한 허가를 부여함
        • GBP(Group-Based Policy) : 복수 주체에 하나의 객체에 대한 허가를 부여함
      • 규칙 기반 정책 : 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법으로, MLP와 CBP가 있음
        • MLP(Multi-Level Policy) : 사용자나 객체별로 지정된 기밀 분류에 따른 정책
        • CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책
      • 역할 기반 정책 : GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법
  • 접근통제 매커니즘
    • 정의된 접근통제 정책을 구현하는 기술적인 방법
    • 접근통제 매커니즘에는 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.
      • 접근통제 목록(Access Control List) : 객체를 기준으로 특정 객체에 대해 어떤 주체가 어떤 행위를 할 수 있는지를 기록한 목록
      • 능력 리스트(Capability List) : 주체를 기준으로 주체에게 허가된 자원 및 권한을 기록한 목록
  • 접근통제 보안모델
    • 보안 정책을 위한 정형화된 모델
    • 모델의 종류
      • 기밀성 모델
        • 군사적인 목적으로 개발된 최초의 수학적 모델
        • 기밀성 보장이 최우선임
        • 군대 시스템 등 특수 환경에 주로 사용됨
      • 무결성 모델 : 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
      • 접근통제 모델
        • 접근통제 매커니즘을 보안 모델로 발전시킨 것
        • 대표적으로 접근통제 행렬(Access Control Matrix)이 있음
        • 접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉, 행과 열로 주체와 객체의 권한 유형을 나타냄

접근통제 기술

  • 임의 접근통제(DAC : Discretionary Access Control)
    • 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식
    • 데이터 소유자가 접근통제 권한을 지정하고 제어함
    • 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있음
  • 강제 접근통제(MAC : Mandatory Access Control)
    • 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
    • 시스템이 접근통제 권한을 지정함
    • 데이터베이스 객체별로 보안 등급을 부여할 수 있음
    • 사용자별로 인가 등급을 부여할 수 있음
  • 역할기반 접근통제(RBAC : Role Based Access Control)
    • 사용자의 역할에 따라 접근 권한을 부여하는 방식
    • 중앙관리자가 접근통제 권한을 지정함
    • 임의 접근통제강제 접근통제의 단점을 보완하였음
    • 다중 프로그래밍 환경에 최적화된 방식

 

* 트리(Tree)

  • 정점(Node, 노드)선분(Branch, 가지)를 이용하여 사이클을 이루지 않도록 구성한 그래프(Graph)의 특수한 형태
  • 트리는 하나의 기억 공간을 노드(Node)라고 하며, 노드와 노드를 연결하는 선을 링크(Link)라고 한다

 

* 이진트리(Tree)

  • 차수(Degree)가 2 이하인 노드들로 구성된 트리, 즉 자식이 둘 이하인 노드들로만 구성된 트리
  • 이진 트리의 레벨i에서 최대 노드의 수는 2^(i-1)이다.

Perorder 운행법

  • 이진 트리를 Root -> Left -> Right 순으로 운행하며 노드들을 찾아가는 방법
  • 방문 순서 : ABDHIECRG

Inorder 운행법

  • 이진 트리를 Left -> Root -> Right 순으로 운행하며 노드들을 찾아가는 방법
  • 방문 순서 : HDIBEAFCG

Postorder 운행법

  • 이진 트리를 Left -> Right -> Root 순으로 운행하며 노드들을 찾아가는 방법
  • 방문 순서 : HIDEBFGCA

수식의 표기법

  • 이진 트리로 만들어진 수식을 인오더, 프리오더, 포스트오더로 운행하면 각각 중위(Infix), 전위(Prefix), 후의(Postfix) 표기법이 된다.
    • 전위 표기법(Prefix) : 연산자 -> Left -> Right 순으로 운행한다. (+AB)
    • 중위 표기법(Infix) : Left -> 연산자 -> Right 순으로 운행한다. (A+B)w
    • 후위 표기법(Postfix) : Left -> Right -> 연산자 순으로 운행한다. (AB+)

 

* 정렬(Sort)

삽입 정렬(Insertion Sort)

  • 가장 간단한 정렬 방식으로, 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬하는 방식
  • 평균과 최악 모두 수행 시간 복잡도는 O(n^2)이다

선택 정렬(Selection Sort)

  • n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지(n-1)개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식
  • 평균과 최악 모두 수행 시간 복잡도는 O(n^2)이다

버블 정렬(Bubble Sort)

  • 주어진 파일에서 인접한 2개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
  • 평균과 최악 모두 수행 시간 복잡도는 O(n^2)이다

728x90
반응형