티스토리 뷰

728x90
반응형

11. 응용 SW 기초 기술 활용

데이터베이스 기초 활용하기

데이터베이스 종류

데이터베이스

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

데이터베이스 종류

파일 시스템 종류

  • ISAM : Indexed Sequential Access Method. 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
  • VSAM : Virtual Storage Access Method. 대형 운영체제에서 사용되는 파일 관리 시스템

계층형 데이터베이스 관리시스템(HDBMS; Hierarchical Database Management System)

  • 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스
  • 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않음

망형 데이터베이스 관리시스템(NDBMS; Network Database Management System)

  • 데이터의 구조를 네트워크상의 망상 형태로 논리적으로 표현한 데이터 모델
  • 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점이 있음.

관계형 데이터베이스 관리시스템(RDBMS; Relational Database Management System)

  • 관계형 모델을 기반으로 하는 가장 보편화된 데이터베이스 관리시스템

RDBMS의 종류

  • Oracle : 리눅스/유닉스/윈도즈 모두 지원
  • SQL Server : 마이크로소프트사에서 개발. 윈도즈 서버에서만 구동. C# 등과 호환
  • MySQL : 리눅스, 유닉스, 윈도에서 모두 사용이 가능. 오픈 소스.
  • Maria DB : MySQL 출신 개발자가 만든 데이터베이스. MySQL과 호환.

데이터베이스 관리 툴
DB 관리자(DBA)들이 데이터베이스를 편리하고 쉽게 다룰 수 있도록 도와주는 도구

DBMS

DBMS 개념

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

DBMS 유형

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

DBMS 특징

  • 데이터 무결성 : 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용 x
  • 데이터 일관성
  • 데이터 회복성
  • 데이터 보안성
  • 데이터 효율성

관계형 데이터베이스 활용

ERD(E-R Diagram) 개념

업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 관계를 도식화한 다이어그램

ER 모델

ERD로 도식화하기 전 각 개체를 사각형, 화살표, 마름모로 표기한 형태

엔티티

  • 사물 또는 사건으로 정의되며 개체라고도 함
  • 피터 챈 모델에서는 엔티티를 사각형으로 표시
  • 까마귀발 모델에서는 엔티티를 표 형식으로 표시

속성

  • 엔티티가 가지고 있는 요소 또는 성질
  • 피터 챈 모델에서는 속성을 타원형으로 표시
  • 까마귀발 모델에서는 속성을 표 내부에 표시

관계

  • 두 엔티티 간의 관계를 정의
  • 피터 챈 모델에서는 관계는 마름모로 표시
  • 까마귀발 모델에서는 1:1, 1:m, n:m 관계를 까마귀 발 모양으로 표시

데이터베이스 관리

트랜잭션

트랜잭션의 개념
인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

트랜잭션의 특성

  • 원자성(Atomicity) : 분해가 불가능한 작업의 최소단위. 연산 전체가 성공 또는 실패 . 하나라도 실패할 경우 전체가 취소.
  • 일관성(Consistency) : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존
  • 격리성(Isolation) : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가
  • 영속성(Durability) : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장.

트랜잭션의 상태

  • 활동 상태(Active) : 초기 상태, 트랜잭션이 실행 중일 때 가지는 상태
  • 부분 완료 상태(Partially Committed) : 마지막 명령문이 실행된 후에 가지는 상태
  • 완료 상태(Commited) : 트랜잭션이 성공적으로 완료된 후 가지는 상태
  • 실패 상태(Failed) : 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
  • 철회 상태(Aborted) : 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태

트랜잭션 제어

  • 트랜잭션 제어언어는 TCL(Transaction Control Language)이라고 하며, 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어

TCL 명령어

  • 커밋(COMMIT) : 트랜잭션 확정
  • 롤백(ROLLBACK) : 트랜잭션 취소
  • 체크포인트(CHECKPOINT) : 저장 시기 설정

데이터베이스 기본 연산

Create(생성), Read(읽기), Update(갱신), Delete(삭제)

데이터베이스 기본 연산 수행 상세

SELECT 명령문

SELECT [ALL | DISTINCT | DISTINCTROW] 속성명1, 속성명2...
    FROM 테이블명1, ...
[WHERE 조건]
[GROUP BY 속성명1, ...]
[HAVING 그룹조건]
[ORDER BY 속성 [ASC | DESC] ];
  • SELECT 절 : 2개 이상의 테이블을 대상으로 검색할 때는 '테이블명.속성명'으로 표현. ALL 모든 튜플을 검색할 때 사용. DISTINCT는 중복된 속성이 조회될 경우 그중 한 개만 검색. DISTINCTROW는 SELECT 뒤에 속성들과 상관없이 튜플 전체가 중복된 튜플을 제거
  • GROUP BY절 : 속성값을 그룹으로 분류하고자 할 때
  • HAVING절 : GROUP BY에 의해 분류한 후 그룹에 대한 조건 지정
  • ORDER BY절 : 속성 값을 정렬 하고자 할 때

WHERE 조건

  • 비교 : =, <>, <, <= , >, >=
  • 범위 : BETWEEN ~ AND ~. 크거나 같고 작거나 같음
  • 집합 : IN, NOT IN. ex) IN(40000, 50000, 60000)
  • 패턴 : LIKE. NAME LIKE '정보%'이면 이름이 '정보'로 시작하는 문자열
  • NULL : IS NULL, IS NOT NULL.
  • 복합조건 : AND OR NOT

WHERE 절에서 LIKE와 같이 사용하는 와일드 문자

  • + : 문자열을 연결
  • %
  • : '[]' 사이의 1개의 문자와 일치하는 문자열
  • [^] : '[]' 사이의 1개의 문자와 일치하지 않는 문자열
  • _ : 특정 위치의 1개의 문자와 일치 ex) '_동%' : 두 번째 위치에 '동'이 들어가는 문자열

ORDER BY 절에 ASC와 DESC 명시되어 있지 않은 경우 ASC가 기본 값.

테이블 생성, 변경, 삭제는 테이블 스키마를 건드리므로 데이터 정의어(DDL),
데이터 삽입, 갱신, 삭제는 테이블 내의 인스턴스를 건드리므로 데이터 조작어(DML).

INSERT, UPDATE, DELETE

INSERT INTO 테이블명(속성명1, ...) # 속성명 생략 가능. 
VALUES(데이터1, ...) 

UPDATE 테이블명
    SET 속성명 = 데이터, ...
 WHERE 조건;

DELETE FROM 테이블명
 WHERE 조건;

데이터베이스 기술 트랜드

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

데이터의 특성 : 데이터의 양, 다양성, 속도

빅데이터 수집, 저장 처리 기술

  • 비정형/반정형 데이터 수집 : 내, 외부 정제되지 않은 데이터를 확보, 이를 통해 필요 정보를 추출하여 활용하기 위해서 효과적으로 수집 및 전송하는 기술. ex)척와, 플럼, 스크라이브
  • 정형 데이터 수집 : 내, 외부 정제된 대용량 데이터의 수집 및 전송 기술. ex) ETL, FTP, 스쿱, 하이오
  • 분산데이터 저장/처리 : 대용량 파일의 효과적인 분산 저장 및 분산 처리 기술 ex) HDFS, 맵 리듀스
  • 분산 데이터베이스 : HDFS의 칼럼 기반 데이터베이스로 실시간 랜덤 조회 및 업데이트가 가능한 기술 ex) HBase

HDFS(Hadoop Distributed File System)
대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템

맵 리듀스
구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년 발표한 소프트웨어 프레임워크

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

NoSQL의 특성

  • Basically Available : 언제든지 데이터는 접근할 수 있어야 함. 가용성 중시.
  • Soft-State : 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서 전송된 정보를 통해 결정되는 속성.
  • Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지되는 속성. 일관성을 중시하고 지향

데이터 마이닝

  • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술. 이를 의사결정에 활용하고, 서비스와 제품에 도입.

데이터 마이닝 절차

  • 목적 설정 : 사용할 모델과 필요 데이터 정의
  • 데이터 준비 : 부하 고려. 데이터의 품질을 보장.
  • 가공 : 모델링 목적에 따라 목적 변수 정의. 소프트웨어에 적용할 수 있는 형식으로 가공 처리.
  • 마이닝 기법 적용
  • 정보 검증 : 테스트 데이터, 과거 데이터를 활용하여 최적의 모델 선정. 업무 적용 보고서 작성.

데이터 마이닝 주요 기법

  • 분류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드의 결과 값을 예측하는 기법. 마케팅, 고객 신용평가 모형에 활용.
  • 연관 규칙(Association) : 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법. 제품이나 서비스의 교차판매, 매장 진열, 사기 적발 등에 활용.
  • 연속 규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법.
  • 데이터 군집화(Clustering) : 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업으로 작업의 특성이 분류 규칙과 유사




출처
정보처리기사 실기 2020 수제비(저자 : NCS 정보처리기술사 연구회) [건기원]


728x90
반응형
댓글
반응형
250x250
글 보관함
최근에 달린 댓글
«   2024/05   »
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 31
Total
Today
Yesterday
링크