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

박수민·2024년 7월 27일
0

정보처리기사

목록 보기
3/9

3.데이터 입출력 구현

데이터 모델 구성요소

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

데이터 모델 절차 - 요개논물(구)

  • 요구사항(조건) 분석
    • 사용자에게서 데이터베이스를 사용하는 용도를 파악함
  • 개념적 설계
    • 요구사항 명세서를 기반으로 개념적 데이터 모델을 표현하며 E-R 다이어그램으로 표현할 수 있다
  • 논리적 설계
    • 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화 과정을 수행
  • 물리적 설계
    • 특정 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장 구조로 변환하는 과정으로 결과
  • 구현
    • SQL문을 실행하여 데이터베이스를 실제로 생성

관계 데이터 모델의 구성요소

  • 릴레이션(Relation)
    • 행(Row)와 열(Column)로 구성된 테이블
  • 튜플(Tuple)
    • 릴레이션의 행(Row)에 해당되는 요소
  • 속성(Attribute)
    • 릴레이션의 열(Column)에 해당되는 요소
  • 카디널리티(Cardinality)
    • 튜플(Row)의 수
  • 차수(Degree)
    • 애트리뷰트(Column)의 수
  • 스키마(Schema)
    • 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
  • 인스턴스(Instance)
    • 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 (데이터 전체를의미)

관계 대수와 관계 해석 - 대절해비

  • 관계 대수
    • 절차적 정형 언어
  • 관계 해석
    • 비절차적 언어

일반 집합 연산자

연산자기호표현설명
합집합R∪S합병가능한 두 릴레이션 R과 S의 합집합
교집합R∩S릴레이션 R과 S애 속하는 모든 튜플로 결과 릴레이션 구성
차집합-R-SR에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
카티션 프로덕트×R×SR과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

순수 관계 연산자

연산자기호표현설명
셀렉트σσ(R)릴레이션 R에서 조건을 만족하는 튜플반환
프로젝트ππ(R)릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플반환
조인R⋈S공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전÷R÷S릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환

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

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

  • 개체-관계(E-R) 다이어그램 기호

    • 개체 집합 □ (사각형)
    • 관계 집합 ◇ (마름모)
    • 속성 ○ (타원)
    • 다중 값 속성 ◉ (이중타원)
    • 관계 집합 - 속성 집합 ─ (실선)
    • 개체 집합 - 관계 집합 ─ (실선)
    • 관계 집합 - 속성 ⋯ (점선)

정규화

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

이상현상

  • 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
    • 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야하는 경우
    • 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
    • 갱신 이상 : 중복 데이터중에서 특정 부분만 수정되어 중복된 값이 모수능ㄹ 일으키는 경우

데이터베이스 정규화 단계

  • 1정규형(1NF) : 도메인이 원자값
  • 2정규형(2NF) : 부분함수 종속 제거
  • 3정규형(3NF) : 이행함수 종속 제거 ( A → B , B → C 이면 A → C )
  • 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF) : 다치(다중 값) 종속 제거
  • 5정규형(5NF) : 조인 종속 제거

비정규화(반정규화)

  • 정규화 이후 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 과정
    (정규화 기법에 어긋나는 수행기법)

데이터베이스 무결성

  • 데이버베이스에 저장된 데이터 값과 그것이 표현하는 현실세계의 실제값이 일치하는 성질

데이터베이스 무결성 종류

  • 개체 무결성(Entity)
    • 한 엔터티에서 같은 기본키(PK)를 가질수 없거나, 기본키(PK)의 속성이NULL을 허용할 수 없는 제약 조건
    • 주요 기법 : 기본 키(Primary Key), 유니크 인덱스(Unique Index)
  • 참조 무결성(Referential)
    • 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본 키값이나 NULL이어야 하는 제약 조건
    • 주요 기법 : 외래 키(Foreign Key)
  • 속성 무결성(Attribute)
    • 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야하는 조건
    • 주요 기법 : 체크(CHECK), NULL / NOTNULL, 기본값(DEFAULT)
  • 사용자 정의 무결성(User-Defined)
    • 사용자의 의미적 요구사항을 준수해야 하는 제약 조건
    • 주요 기법 : 트리거(Trigger), 사용자 정의 데이터 타입(User Defined Data Type)
  • 키 무결성(Key)
    • 한 릴레이션을 같은 키값을 가진 튜플들을 허용할 수 없는 제약 조건
    • 주요 기법 : 유니크(Unique)

키 특성

  • 유일성(Unique)
    • 식별자에 의해 엔터티 타입 내에 모든 엔터티들이 유일하게 구분
  • 최소성(Minimality)
    • 최소한의 속성으로 식별자 구성

키 종류

  • 기본 키(Primary)
    • 테이블의 각 튜플들을 고유하게 식별하는 컬럼
  • 대체 키(Alternate)
    • 후보 키 중에서 기본 키로 선택되지 않는 키
  • 후보 키(Candidate)
    • 테이블에서 각 튜플을 구별하는 데 기준이 되는 컬럼
    • 기본 키와 대체 키를 합친 키 (기본 키 후보키, 대체 키 후보 키)
    • 유일성, 최소성 만족
  • 슈퍼 키(Super)
    • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
  • 외래 키(Foreign)
    • 테이블 간의 참조 데이터 무결성을 위한 제약 조건
    • 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키

파티션(Partition)의 유형

  • 레인지 파티셔닝(Range Partition)
    • 연속적인 숫자나 날짜 기준
    • 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능
  • 해시 파티셔닝(Hash Partition)
    • 파티션 키의 해시 함수 값
    • 균등한 데이버 분할이 가능하고 질의 성능이 향상 가능
  • 리스트 파티셔닝(List Partition)
    • 특정 파티션에 저장 될 데이터에 대한 명시적 제어 가능
    • 분포도가 비슷하소 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용
  • 컴포지트 파티셔닝(Composite Partition)
    • 레인지, 해시, 리스트 중 2개 이상의 파티셔닝 결합
    • 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산할 수 있다
  • 라운드 로빈(Round Robin)
    • 라운드 로빈은 라운드 로빈으로 회전하면서 새로운 행을 파티션에 할당하는 기법
    • 파티션에 행의 고른 분포를 원할 때 사용

DBMS

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

DBMS 유형

  • 키-값(Key Value)DBMS
    • 키 기반 Get / Put / Delete 제공, 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능 DBMS
    • Unique 한 키에 하나의 값을 가지고 있는 형태
    • ex) Redis, DynamoDB
  • 컬럼 기반 데이터 저장(Column Family Data Store) DBMS
    • Key안에(Column, Value) 조합으로 된 여러개의 필드를 갖는 DBMS
    • 테이블 기반, 조인 미지원, 컬럼 기반을 구글의 Bigtable 기반으로 구현
    • ex) HBase, Cassandra
  • 문서 저장(Document Store) DBMS
    • 값(Value)의 데이터 타입이 문서라는 타임을 사용하는 DBMS
    • 문서 타입은 XML, JSON과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능
    • ex) MoogoDB, Couchbase
  • 그래프(Graph) DBMS
    • 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
    • 노드와 엣지로 특징되는 요소 특화
    • 노드 간 관계를 구조화라여 저장
    • ex) Neo4j, AllegroGraph

빅데이터

  • 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리가 가능한 수십 페타바이트 크기의 비정형 데이터

    • HDFS(Hadoop Distributed File System)
      • 대용량의 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템
    • 맵 리듀스(Map Reduce)
      • 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅 처리하기 위한 목적으로 제작해 2004년에 발표한 소프트 프레임 워크

NoSQL

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

NoSQL의 특성(BASE)

  • Basically Available
    • 언제든지 데이터는 접근할 수 있어야 하는 속성
    • 분산 시스템이기 떄문에 항상 가용성 중시
  • Soft-State
    • 노드의 상태는 외부에서 전송된 정보를 통해 결정되는 속성
    • 특정 시점에서는 데이터의 일관성이 보장되지 않음
  • Eventually Consistency
    • 일정 시간이 지나면 데이터의 일관성이 유지
    • 일관성을 중시하고 지향

시맨틱 웹(Semantic Web)

  • 기계가 이해할 수 있는 온톨로지 형태로 표현하고 자동화된 기계가 처리하도록 하는 지능형 웹

온톨로지(Ontology)

  • 실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스

데이터 마이닝(Data Minning)

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

데이터 마이닝 주요기법

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

0개의 댓글