그냥 게임개발자

3. 데이터 입출력 구현 본문

나만의 정처기 공부

3. 데이터 입출력 구현

sudoju 2022. 3. 12. 04:24

 Chapter01 논리 데이터 저장소 확인

■ 데이터 모델(Data Model) : 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

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

■ 데이터 모델 절차 : 요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계(요개논물)
논리 데이터 모델링 : 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스

논리적 데이터 모델링 종류

  • 관계 데이터 모델 : 테이블 형태 1 : 1, 1 : N, 1 : M
  • 계층 데이터 모델 : 트리 형태(상하 관계), 1 : N
  • 네트워크 데이터 모델 : 그래프 형태, N : M

 

관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

관계 대수 연산자 종류

  • 일반 집합 연산자 (합교차카)
    • 합집합(Union) : ∪
    • 교집합(Intersection) : ∩
    • 차집합(Difference) : -
    • 카티션 프로덕트(CARTESIAN Product) : ×
  • 순수 관계 연산자 (셀프조디)
    • 셀렉트(Select) : σ
    • 프로젝트(Project) : π
    • 조인(Join) : ▷◁
    • 디비전 : ÷

관계 해석 : 튜플 관계해석과 도메인 해석을 하는 비절차적 언어

논리 데이터 모델링 속성 : 개체(Entity), 속성(Attributes), 관계(Relationship) [개속관]

개체-관계(E-R) 모델 : 데이터와 그들간의 관계를 사람이 이해할 수 있는 형태로 표현한 모델

 

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

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

  • [삽삭갱]
  • 삽입이상 : 불필요한 세부정보를 입력하는 경우
  • 삭제이상 : 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신이상 : 특정부분만 수정되어 중복된 값이 모순을 일으키는 경우

정규화 단계 [ 원부이 결다조 ]

  • 1정규형(1NF) : 도메인이 원자값으로 구성
  • 2정규형(2NF) : 부분함수 종속제거 (완전 함수적 종속을 만족)
  • 3정규형(3NF) : 이행함수 종속제거
  • 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF) : 다중 값 종속 제거
  • 5정규형(5NF) : 조인 종속 제거

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

 

 

Chapter2 물리 데이터 저장소 설계

  참조무결성 제약조건 : 릴레이션과 릴레이션 사이에 대한 참조의 일관성을 보장하기 위한 조건

  • 제한(Restricted) : 다른테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
  • 연쇄(Cascade) : 참조하는 테이블까지 연쇄적으로 제거하는 옵션
  • 널값(Set NULL) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 튜플들의 외래값에 NULL값을 넣는 옶션 / 만약 NOT NULL 명시시 삭제 연산 거절됨

  인덱스(Index) : 데이터 레코드를 빠르게 접근하기 위해 '키값, 포인터'쌍으로 구성되는 데이터 구조

  • 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
  • 넌클러스터드 인덱스 : 인덱스의 키값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식

뷰(View) : 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로 구성된 가상 테이블

클러스터(Cluster) : 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법, 클러스터의 분포도가 넓을수록 유리하다.

 

파티션(Partition) : 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것

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

파티션 장점 : 성능 향상, 가용성 향상, 백업 가능, 경합 감소 [성가백합]

 

 

Chapter03 데이터베이스 기초활용

 

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

■ 데이터베이스 정의

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

■ 데이터베이스 특성

  • 실시간 접근성 : 쿼리에 대하여 실시간 응답이 가능
  • 계속적인 변화 : 새로운 데이터의 삽입, 삭제 갱신으로 항상 최신의 데이터를 유지
  • 동시공용 : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
  • 내용참조 : 사용자가 요구하는 데이터 내용으로 데이터를 찾음

 

■ 데이터베이스 종류

  • 파일시스템(FileSystem) : 파일에 이름을 부여하고 저장이나 검색을 위해 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 관리 방식
  • 관계형 데이터베이스 시스템(RDBMS) : 관계형 모델을 기반
    • 종류 : Orcle, SQL Server, MySQL, MariaDB 등
  • 계층형 데이터베이스 시스템(HDBMS) : 데이터를 상하 종속적인 관계로 계층화하여 관리
    • 종류 : IMS, System2000 emd
  • 네트워크 데이터베이스 관리 시스템(NDBMS) : 데이터를 네트워크의 망상 형태로 표현한 데이터 모델
    • 종류 : IDS, IDMS 등

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

 

■ DBMS의 유형

  • 키-값(Key-Value) DBMS : Unique 한 키에 하나의 값을 가지고 있는 형태
  • 컬럼 기반 데이터 저장(Column Family Data Store) DBMS : Key안에(Column, Value) 조합으로 된 여러개의 필드를 갖는 DBMS
  • 문서 저장(Document Store) DBMS : 값(Value)의 데이터 타입이 문서(Document)라는 타입을 사용하는 DBMS
  • 그래프(Graph) DBMS : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS

■ DBMS 특징 : 무결성, 일관성, 회복성, 보안성, 효율성

■ 빅 데이터(Big Data) : 시스템, 서비스, 조직(회사) 등에서 주어진 비용, 시간 내에 처리 가능한 수십페타바이트 크기의 비정형 데이터

  • 빅데이터 특성 : 데이터의 양, 데이터의 다양성, 데이터의 속도(3V : Volume, Variety, Velocity)
  • 빅데이터 수집, 저장, 처리 기술
    • 비정형/반정형 데이터 수집 : 내/외부 정제되지 않은 데이터를 확보하여 수집 및 전송하는 기술
    • 정형 데이터 수집 : 내/외부 정제된 대용량 데이터의 수집 및 전송 기술
    • 분산 데이터 저장/처리 : 대용량 파일의 효과적인 부산 저장 및 분산 처리하는 기술
    • 분산 데이터 베이스 : HDFS 컬럼 기반 데이터베이스로 실시간 랜덤 조회 및 업데이트 가능
      • HDFS : 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템

■ NoSQL(Not Only SQL) : 데이터 저장에 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장이 가능한 DBMS

  • NoSQL 특성(BASE)
    • Basically Available : 언제든지 데이터 접근 할 수 있는 속성
    • Soft-State : 외부에서 전송된 정보를 통해 결정되는 속성
    • Eventually Consistency : 일관성이 유지되는 속성
  • NoSQL 유형
    • Key-Value Store : Unique 한 키에 하나의 값을 가지고 있는 형태
    • Column Family Data Store : Key 안에 (Column, Value) 조합으로 된 여러개의 필드를 갖는 DB
    • Document Store : 값(Value)의 데이터 타입이 문서(Document)라는 타입을 사용하는 DB
    • Graph DBMS : 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현하는 DBMS
      • 시맨틱 웹 : 온톨로지를 활용하여 서비스를 기술하고, 온톨로지의 의미적 상호 운용성을 이용해서 서비스 검색, 조합, 중재 기능을 자동화하는 웹
      • 온톨로지 : 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식 베이스

■ 데이터 마이닝(Data Minning) : 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아는 기술

■ 데이터 마이닝 절차 : 목적 설정 -> 데이터 준비 -> 가공 -> 마이닝 기법 적용 -> 정보 검증

■ 데이터 마이닝 주요 기법

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

 

'나만의 정처기 공부' 카테고리의 다른 글

5. 인터페이스 구현  (0) 2022.03.17
4. 통합구현  (0) 2022.03.15
2. 화면설계(2)  (0) 2022.03.11
2. 화면설계  (0) 2022.03.08
1. 요구사항 확인  (0) 2022.03.07