본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사 실기] 3과목 - 데이터 입출력 구현

by 케리's 2023. 2. 8.

00. 데이터모델

1) 데이터 모델 요소

구조, 연산 제약조건

 

2) 데이터 모델 절차

개념, 논리, 물리

절차 설명 산출물
개념적 데이터모델 • 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조 도출
 산출물 : 개체-관계 (E-R) 다이어그램
논리적 데이터모델  모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현
'관계 데이터 모델', '계층 데이터 모델', '네트워크데이터모델', '객체 지향 데이터모델', '객체-관계 데이터 모델' 등
스키마설계, 트랜잭션 인터페이스설계
정규화수행
 스키마 평가 및 정제
학생(학번, 교수번호(FK), 이름, 주소)
교수(교수번호, 이름, 전공과목)
물리적 데이터모델   논리 데이터 모델을 특정 DBMS 특성 및 성능 고려하여 물리적인 스키마를 만듬
•  데이터베이스 저장구조로 변환
•  테이블, 인덱스, 뷰, 파티션 등 객체 생성
•  응답시간 저장공간의 효율화 트랜잭션 처리를 고려하여 설계
•  반정규화 수행
•  접근경로, 저장레코드양식, 레코드 집중 분석 설계
DDL을 이용해 데이터 모델 정의

 

3) 논리적 데이터 모델 종류

종류 설명 예시
관계 데이터 모델 • 논리적 구조가 2차원 테이블 형태
• 기본(PK)키와 참조하는 외래키(FK)관계 표현
• 1:1, 1:N, N:M 관계 자유롭게 표현
계층 데이터 모델 • 논리적 구조가 트리형태로 구성된 모델
• 상하관계 존재 (부모-자식)
• 1:N 관계만 허용
네트워크 데이터 모델 • 논리적 구조가 그래프 형태로 구성
• CODASYL DBTG 모델
•상위와 하위 레코드 사이에 다대다(N:M)관계 만족 구조 

 

3) 논리적 데이터 모델 종류 - 관계 데이터 모델

구성요소 설명
릴레이션 행(Row)와 열(Column)구성된 테이블 = 고객정보
튜플(Tuple) 릴레이션의 행에 해당
속성 (Attribute) 릴레이션의 열에 해당
카디널리티
(Cardinality)
튜플의 수
차수(Degree) 애트리뷰트의 수
스키마(Schema) 데이터베이스 스키마 - 데이터베이스의 구조, 제약조건 등의 정보를 담고있는 기본적 구조
릴레이션 스키마 - 릴레이션의 논리적 구조 DDL로 실행, 정적 특징, 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
인스턴스
(Instance)
데이터베이스 스키마 - 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터 집합
릴레이션 스키마 - 릴레이션에 존재하는 튜플들 집합, DML로 실행, 동적특징
도메인(Domain) 하나의 속성이 가질 수 있는 모든 (원자) 값의 집합
속성 값을 입력/수정 시 적합성 판단의 기준이 됨 (입력제약) - int, char 등 (데이터타입)
널(null) 속성 값을 아직 모르거나 해당 되는 값이 없음 (공백, 0)과는 다른의미

 

⭕️ 관계 데이터 모델의 표현

 

 

⭕️ 관계 대수 

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

 

(1) 일반 집합 연산자 : 합교차카

수학의 집합 개념을 릴레이션에 적용한 연산자

연산자 기호 표현 설명
합집합 (Union) R ∪ S 릴레이션 R과 S의 합집합을 반환
교집합 (Intersection) R ∩ S 레이션 R과 S의 교집합을 반환
차집합 (Difference) R ㅡ S 릴레이션 R과 S의 차집합을 반환
카티션프로덕트
(CARTESIAN Product)
× R × S R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

 

(2) 순수 관계 연산자 : 셀프조디

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자

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

 

⭕️ 관계 해석 

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

프레디킷 해석에 기반한 언어이며 비절차적 언어 (원하는 정보가 무엇이라는 것만 선언)이다.

 

4) 논리적 데이터 모델 종류 - 개체 관계 (E-R)모델

 

구조 설명  
개체 (Entity) 관리할 대상이 되는 실체
속성 (Attributes) 관리할 정보의 구체적 항목
관계 (Relationship) 개체 간의 대응 관계  

개체(Entity)와 개체 사이의 관계(Relationship) 

구성요소 : 개체집합, 관계집합, 속성 

 

reference : https://webstudynote.tistory.com/206

 

01. 정규화(Normalization)

정규화란 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.

제1정규형 원자값으로 구성
제2정규형 부분 함수 종속 제거 (완전 함수적 종속관계)
제3정규형 이행함수 종속 제거
BCNF 결정자 후보키가 아닌 함수 종속 제거
제4정규형 다치(다중 값) 종속 제거
제5정규형 조인 종속 제거

https://velog.io/@hyeri_hello/SQLP-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EA%B3%BC-%EC%84%B1%EB%8A%A5-1

 

[SQLP] 데이터 모델과 성능 1

데이터 모델과 성능 1

velog.io

 

 

02.반 정규화(Denormalization)

  • 중복 데이터를 데이터베이스에 추가하여 데이터 검색에 필요한 조인 수를 줄여 성능을 향상시키는 프로세스
  • 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
  • 비정규화, 역정규화라고 불린다.
  • 조회 성능 향상 - 중복성의 원리를 활용하여 데이터 조회시 성능을 향상시키는 역할을 할 수 있음.
    • (테이블의 중복성, 컬럼의 중복성, 관계의 중복성)
    •  

1. 반정규화 대상조사

  1. 범위처리빈도수 조사
    • 대량의 범위처리 조사
    • 통계성 프로세스 조사(통계성 테이블생성)
    • 테이블 조인 개수

2. 다른 방법유도 검토

  • 뷰테이블
  • 클러스터링 적용(조회중심- 인덱스로 안될경우)
  • 인덱스의 조정
  • 파티셔닝 기법 적용
  • 응용 애플리케이션
  • 반정규화 적용(기법)

3. 반정규화 적용(기법)

테이블
테이블 병합
  • 1:1, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상
  • 슈퍼타입/서브타입 테이블 통합 통해 성능 향상
  • 1:1 관계 테이블 병합
 
테이블 분할
(트랜잭션분석)
수평분할 컬럼단위 테이블을 디스크 I/O 분산 처리 (트랜젝션 처리되는 유형 파악이 선행)
  • 하나의 테이블에 데이터가 너무 많이있고 레코드 중에서 특정 덩어리 범위만을 주로 액세스 하는 경우에 사용
  • 분할된 각 테이블은 서로 다른 디스크에 위치시켜 물리적 디스크의 효용성을 극대화 할 수 있다.
  • 현재는 이러한 수평 테이블의 분할은 DBMS차원에서 제공하고있다.
    • 특히 분할의 방법을 다양하게 제공하고 있는 추세이다.
    • 분할방법 : 범위 분할, 해쉬 분할, 복합 분할
 
수직분할 로우단위로 집중되는 디스크I/O 및 데이터접근의 효율성위해 로우단위 쪼갬
하나의 테이블이 가지는 컬럼의 갯수가 많아질 때 일어난다.
  • 조회 위주의 칼럼과 갱신 위주의 컬럼으로 나뉘는 경우
  • 특별히 자주 조회가 되는 컬럼이 있는경우
  • 특정 칼럼 크기가 아주 큰 경우
  • 특정 컬럼에 보안을 적용해야하는경우
 
중복 테이블 추가 대량의 데이터들에 대한 집계함수 (GROUP BY, SUM 등)를 사용하여 실시간 통계 정보를 계산하는 경우에 효과적 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블 추가  
집계 테이블 추가
  1. 집계 테이블 유형
  • 단일 테이블의 GROUP BY
  • 여러 테이블의 조인 GROUP BY
2. 유의사항
  • 로우 수와 활용도를 분석하고 시뮬레이션을 통해서 그 효용성에 대한 면밀한 검토가 선행되어야 한다.
  • 집계 테이블에 단일 테이블 클러스터링을 한다면 집계 레벨을 좀더 낮춰 활용도를 높일 수 있는지를 검토해야 한다.
  • 클러스터링, 결합 인덱스, 고단위 SQL 을 활용하면 굳이 집계 테이블 없이도 양호한 수행 속도를 낼 수 있다. 이러한 부분도 사전 검토되어야 한다.
  • 집계 테이블을 다시 집계, 조인하면 추출할 수 있는지를 검토하여 지나친 집계 테이블을 만들지 않는 것이 좋다.
  • 추가된 집계 테이블을 기존 응용 프로그램이 이용할 수 있는지를 찾아 보정시키는 노력이 필요하다.
  • 데이터베이스 트리거의 오버헤드에 주의하고 데이터의 일관성 보장에 유의하여야 한다. 즉 집계 테이블과 원본 데이터는 일관성 유지가 매우 중요하다.
즉, 집계 데이터를 위한 테이블을 생성하고 각 원본 테이블에 트리거를 설정하여 사용하는 것으로 트리거의 오버헤드에 유의 필요

 
진행 테이블 추가
  1. 진행 테이블 추가 상황
  • 여러 테이블의 조인이 빈번히 발생하며 처리 범위도 넓은 경우
  • M:M 관계가 포함된 처리의 과정을 추적, 관리하는 경우 (트랜잭션 상태를 추적하기 위해)
  • 검색 조건이 여러 테이블에 걸쳐 다양하게 사용되며 복잡하고 처리량이 많은 경우
2. 유의사항
  • 데이터량이 적절하고 활용도가 좋아지도록 기본키를 선정
  • 필요에 따라 적절한 추출(Derived) 칼럼을 추가하여 집계 테이블의 역할도 하는 다목적 테이블을 구상
  • 다중 테이블 클러스터링이나 조인 SQL을 적절히 이용하면 굳이 진행 테이블을 만들지 않아도 양호한 수행 속도를 낼 수 있는 경우가 많다.
 
특정 부분만을 포함하는 테이블 추가 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성  
컬럼 속성의 반정규화
  • 중복컬럼 추가 : 조인을 감소시키기 위해 중복된 컬럼 추가
  • 파생컬럼 추가 : 계산 컬럼을 미리 계산하여 컬럼에 보관
  • 이력테이블 컬럼추가 : 이력성 테이블에 기능성컬럼(최근값 여부, 시작과 종료일자) 추가
  • PK에 의한 컬럼 추가 : PK에 일반속성을 포함하는 방법
  • 응용시스템 오작동을 위한 컬럼 추가 : 업무적으로 의미없지만, 오류시 원래 값으로 복구 하기위한 방법
 
관계 관계의 반정규화
  • 중복관계 추가 : 데이터를 처리하기 위한 여러 경로를 거처 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 기법
  • 테이블과 칼럼의 반정규화는 데이터 무결성에 영향을 미치게 되나 관계의 반정규화는 데이터 무결성을 깨뜨릴 위험을 갖지 않고서도 데이터처리의 성능을 향상시킬 수 있는 반정규화의 기법이다.
  • 조인관계가 빈번하게 되어 성능저하가 예상이 된다면 관계의 반정규화를 통해 성능향상을 도모할 필요가 있다.
 

 

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

01) 물리 데이터 모델링

논리 모델을 적용하고자 하는 기술에 맞도록 상세화해가능 과정

 

02) 물리 데이터 모델링 변환 절차 

순서 절차 변환방법
1 개체 → 테이블 테이블과 개체 명칭을 동일하게 하는 것을 권고
개체는 한글명 사용
테이블은 소스코드 가독성 위해 영문명 사용
2 속성 → 컬럼 표준화된 약어사용
SQL 예약어 사용 피해야함
명칭은 되도록 짧은 것 권고
복합단어 사용할 경우 미리 정의된 표준에 의해 명명
3 UID를 기본키로 변환 개체 UID(고유식별자)에 해당하는 모든 속성에 대해 기본키로 선언
NotNull, Unique 등 제약조건 추가 정의
관계에 의한 외래키가 기본키에 포함될 수 있음
4 관계 → 외래키 외래키명은 기본키 이름 그대로 사용, 다른 의미를 가질 경우 변경 가능
순환 관계에서 자신의 기본키는 외래키로 정의
5 컬럼 유형, 길이 정의 char(2000bite, 고정길이 문자열)
varchar2(4000bite, 가변길이 문자열)
number(38자릿수, 숫자)
date (날짜값)
Blob, clob(바이너리, 텍스트 데이터 최대 4GB)
6 반정규화 성능향상과 개발 및 운영의 단순화 위해 데이터 모델을 통합

 

03) 물리 데이터 저장소 구성

(1) Key

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

(2) 무결성 종류 

구분 특징
개체 무결성 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복된 값을 가질 수 없다
참조 무결성 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일 해야함 (릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음)
도메인 무결성 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다.
사용자 정의 무결성 속성 값들이 사용자가 정의한 제약조건에 만족 해야함
NULL 무결성 릴레이션의 특정 속성값이 NULL이 될 수 없도록 함
고유 무결성 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 함
키 무결성 하나의 릴레이션에는 적어도 하나의 키가 존재해야 함
관계 무결성 릴레이션 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정

 

(3) 참조 무결성 제약조건

  • 각 릴레이션 사이에 대해 참조의 일관성 보장
  • 두 개의 릴레이션이 기본키 ⇆ 외래키를 통해 참조 관계를 형성할 경우 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야함
  • 참조 무결성 제약조건 SQL문법 (삭제시)
ALTER TABLE order_t ADD
  FOREIGN KEY goodscd --외래키
  REFERENCES goods_t(goodscd) --기본키
  ON DELETE [RESTRICT|CASCADE|SET NULL];
  
/*
order_t : 테이블 명
goods_t : 테이블 명
goodscd : 키 명 
*/
제약조건 종류 설명
제한 (Restricted) 참조 무결성 원칙을 위배하는 연산 거절
연쇄 (Cascade) 참조되는 릴레이션에서 튜플을 삭제하고 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제
널값 (Nullify) 참조되는 릴레이션에서 튜플 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래키에 NULL값 입력
만약, 릴레이션 정의시 참조하는 릴레이션에서 NOTNULL 명시되어있다면 삭제연산 거절

 

(4) 인덱스 (Index) 설계

  • 검색 연산의 최적화를 위해 데이터베이스내 열에 대한 정보를 구성한 데이터 구조
  • 인덱스를 통해 전체 데이터의 검색 없이 필요한 정보에 대해 신속한 조회가능
인덱스 적용기준 인덱스 분포도가 10~15% 이내인 경우 아래 수식 참고
• 분포도 : 특정 컬럼의 데이터가 테이블에 평균적으로 분포되어 있는 정도
• 분포도 = (1/(컬럼값종류)) * 100
   분포도 = (컬럼값의 평균 Row수) / (테이블의 총 Row수) * 100
인덱스 컬럼선정 • 분포도가 좋은 컬럼은 단독적으로 생성
• 자주 조합되어 사용되는 컬럼은 결합인덱스로 생성
   결합 인덱스는 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등) 에 유의
• 가능한 수정이 빈번하지 않은 컬럼 선정
설계시 고려사항 • 지나치게 많은 인덱스는 오버헤드로 작용
• 인덱스는 추가적인 저장공간이 필요함을 고려해야함

 

(5) 뷰 (View) 설계

  • 하나 이상의 테이블(또는 다른 뷰)에서 원하는 데이터를 선택하여 새로운 가상 테이블로 만들어 주는 것
  • 다른 테이블에 있는 데이터를 보여줄 뿐이며 데이터 자체를 포함하고 있는 것은 아님
  • 저장장치 내에 물리적으로 존재하지 않고 가상 테이블로 만들어 짐
  • 논리적인 독립성을 제공

 

(6) 클러스터 (Cluster) 설계 

  • 인덱스의 단점을 해결한 기법, 분포도가 넓을수록 오히려 유리하다
  • 액세스 기법이아니라 액세스 효율 항상을 위한 물리적 저장방법이다.
  • 분포도가 넓은 테이블의 클러스터링은 저장공간의 절약이 가능하다.
  • 대량의 범위를 자주 액세스 하는 경우 적용한다.
  • 여러개의 테이블이 빈번하게 조인을 일으킬 때 활용한다.
  • 검색 효율은 높여주나 입력, 수정, 삭제 시는 부하가 증가함을 고려한다.
  • UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼이면 검토 대상
  • 수정이 자주 발생하지 않는 컬럼 검토대상
  • 처리범위가 넓어 문제가 발생하는 경우는 단일 테이블 클러스터링 고려
  • 조인이 많아 문제가 발생되는 경우는 다중 테이블 클러스터링 고려

 

(7) 파티션 (Partition) 설계  -레해리컴

데이터베이스에서 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것

 

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

 

  • 파티션 장점 - 성가백합
속성 설명
성능 향상 데이터 액세스 범위를 줄여 성능 향상
가용성 향상 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상
백업 가능 분할 영역 독립적으로 백업/복구 가능
경합 감소 디스크 스트라이핑(성능향상을 위해 데이터를 1개이상의 디스크 드라이브에 저장, 병렬로 사용)으로 입출력 성능 향상
디스크 컨트롤러에 대한 경합의 감소

 

 

04. 데이터베이스 기초 활용

1. 데이터 베이스 종류

1) 데이터 베이스란? 

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

2) 데이터 베이스 정의 -  통저운공

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

 

3) 데이터 베이스 특징 - 실계동내

특징 설명
실시간 접근성 쿼리에 대하여 실시간 응답이 가능해야 함
계속적인 변화 새로운 데이터의 C,U,D로 항상 최신의 데이터 유지
동시 공용 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
내용 참조 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 

4) 데이터 베이스 종류

(1) 파일 시스템

* ISAM(Indexed Sequential Access Method)

: 자료내용은 주 저장부, 자료 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템

* VSAM(Virtual Storage Access Method)

: 자료내용은 주 저장부, 자료 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템

 

(2) RDBMS(Relational Database Management System) 

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

 

(3) HDBMS(Hierarchical Database Management System) 

상하 종속적인 관계로 계층화 하여 관리하는 데이터 베이스

 

(4) NDBMS(Network Database Management System) 

네트워크상의 망상 형태로 표현한 데이터 모델

 

 

2. DBMS (Database System)

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

1) DBMS 유형 - 키컬도그

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

 

 

 

05. 스토리지

단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

 

1. DAS (Direct Attached Storage)

서버와 저장장치를 전용 케이블로 직접 연결하는 방식

서버에서 저장장치를 관리

저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉬움

다른 서버에서 스토리지에 접근하여 사용 불가

 

2. NAS (Network Attached Storage)

서버와 저장장치를 네트워크를 통해 연결하는 방식

별도의 파일 관리기능이 있는 NAS Storage가 내장된 저장장치를 직접관리

DAS에 비해 확장성 및 유연성이 좋음

서버들이 자유롭게 스토리지에 접근하여 파일 공유

 

3. SAN ( Storage Area Network)

DAS의 빠른처리와 NAS의 파일공유 장점을 혼합한 방식

서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성

파이버 채널 스위치를 이용하여 네트워크 구성

- 파이버 채널 : 장치간 데이터 전송 속돌르 기가바이트로 높이기 위한 네트워크 기술

서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름

서버들이 저장장치 및 파일을 자유롭게 공유

댓글