Search
Duplicate

2-0 데이터 입출력 구현

생성일
2023/06/30 09:38
태그
데이터 입출력 구현

1. 데이터 전환

데이터 전환

운영 중인 기본 정보 시스템에 축적되어 있는 데이터를 추출(Extraction)하여 새로 개발할 정보 시스템에서 운영할 수 있도록 변환(Transformation)한 후, 적재(Loading)하는 일련의 과정
ETL(추출, 변환, 적재)
데이터 이행(Data Migration), 데이터 이관

데이터 전환 계획서

데이터 전환이 필요한 대상을 분석하여 데이터 전환 작업에 필요한 모든 계획을 기록하는 문서

2. 데이터 검증

데이터 검증

우너천 시스템의 데이터를 목적 시스템의 데이터로 전환하는 과정이 정상적으로 수행되었는지 여부를 확인하는 과정
데이터 전환 검증은 ‘검증 방법’과 ‘검증 단계’에 따라 분류 가능하다.

검증 방법에 따른 분류

검증 단계에 따른 분류

3. 오류 데이터 측정 및 정제

오류 데이터 측정 및 정제

고품질의 데이터를 운영 및 관리하기 위해 수행
진행 과정

오류 상태

Open : 오류가 보고만 되고 분석되지 않은 상태
Assigned : 오류의 영향 분석 및 수정을 위해 개발자에게 오류를 전달한 상태
Fixed : 개발자가 오류를 수정한 상태
Closed : 수정된 오류에 대해 테스트를 다시 했을 때 오류가 발견되지 않는 상태
Deferred : 오류 수정을 연기한 상태
Classified : 보고된 오류를 관련자들이 확인했을 때, 오류가 아니라고 확인된 상태

데이터 정제 요청서

원천 데이터의 정제와 전환 프로그램의 수정을 위해 요청사항 및 조치사항 등 데이터 정제와 관련된 전반적인 내용을 문서로 작성한 것
오류 관리 목록을 기반으로 데이터 정제 요건 목록을 작성하고, 이 목록의 항목별로 데이터 정제요청서를 작성한다.

4. 데이터베이스 개요

데이터저장소

데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것
논리 데이터저장소
데이터 및 데이터 간의 연관성, 제약 조건을 식별하여 논리적인 구조로 조직화한 것
물리 데이터저장소
논리 데이터저장소를 소프트웨어가 운용될 환경의 물리적 특성을 고려하여 실제 저장장치에 저장한 것

데이터베이스

여러 사람에 의해 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
데이터베이스 구분
통합된 데이터 (Integrated Data) : 자료의 중복을 배제한 데이터의 모임
저장된 데이터 (Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
운영 데이터 (Operational Data) : 조직의 고유한 업무를 수행하는 데 반드시 필요한 자료
공용 데이터 (Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

DBMS (DataBase Management System)

사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
필수 기능 3가지
정의(Definition) 기능
데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
조작(Manipulation) 기능
데이터 검색, 갱신, 삽입, 삭제 등을 위해 인터페이스 수단을 제공하는 기능
제어(Control) 기능
데이터의 무결성, 보안, 권한 검사, 병행 제어를 제공하는 기능

데이터의 독립성

데이터의 종속성에 대비되는 말로, 논리적 독립성과 물리적 독립성이 있다.
논리적 독립성
응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향을 받지 않음
물리적 독립성
응용프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써, 디스크를 추가/변경하더라도 응용 프로그램은 영향을 받지 않음

스키마 (Schema)

디비의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
외부 스키마
사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 디비의 논리적 구조를 정의한 것
개념 스키마
디비의 전체적인 논리적 구조
모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 디비로 하나만 존재한다.
내부 스키마
물리적 저장장치의 입장에서 본 디비 구조
실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

5. 데이터베이스 설계

데이터베이스 설계

사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후, DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것

데이터베이스 설계 시 고려사항

무결성
삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야 해야함.
일관성
데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함.
회복
시스템에 장애가 발생했을 때, 장애 발생 직전의 상태로 복구할 수 있어야 함.
보안
불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 함.
효율성
응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함.
데이터 베이스 확장
데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함.

데이터베이스 설계 순서

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

개념적 설계 (정보 모델링, 개념화)

정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
개념 스키마 모델링과 트랜잭션 모델링을 병행 수행한다.
개념적 설계에서는 요구분석에서 나온 결과인 요구조건명세를 DBMS에 독립적인 E-R 다이어그램으로 작성한다.
DBMS에 독립적인 개념 스키마를 설계한다.

논리적 설계 (데이터 모델링)

현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료구조로 변환(Mapping)시키는 과정
개념 세계의 데이터를 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다.
개념적 설계가 개념 스키마를 설계하는 단계라면, 논리적 설계에서는 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다.
트랜잭션의 인터페이스를 설계한다.

물리적 설계 (데이터 구조화)

논리적 설계에서는 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
물리적 설계에서는 다양한 데이터베이스 응용에 대해 처리 성능을 얻기 위해, 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
저장 레코드의 형식, 순서, 접근 경로, 조회 집중 레코드 등의 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사한다.

데이터베이스 구현

논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
사용하려는 특정 DBMS의 DDL(데이터 정의어)을 이용하여 데이터베이스 스키마를 기술한 후, 컴파일하여 빈 데이터베이스 파일을 생성한다.
응용 프로그램을 위한 트랜잭션을 작성한다.
데이터베이스 접근을 위한 응용 프로그램을 작성한다.

6. 데이터 모델의 개념

데이터 모델

현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들로 구성되어 있다.
데이터베이스 설계 과정에서 데이터의 구조(스키마)를 논리적으로 표현하기 위해 지능적 도구로 사용된다.
구성요소
개체
속성
관계
종류
개념적 데이터 모델
논리적 데이터 모델
물리적 데이터 모델
표시할 요소
구조
연산
제약 조건

개념적 데이터 모델

현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보모델이라고도 한다.
E-R 모델

논리적 데이터 모델

개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다.
데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다.

데이터 모델에 표시할 요소

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

7. 데이터 모델의 구성요소

개체 (Entity)

데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
독립적으로 존재하나 그 자체로서도 구별이 가능하며, 유일한 식별자(Unique Identifier)에 의해 식별된다.

속성 (Attribute)

데이터베이스로 구성하는 가장 작은 논리적 단위
데이터 항목, 데이터 필드
속성의 수 : 디그리(Degree), 차수

속성의 개체 구성 방식에 따른 분류

기본키 속성 : 개체를 유일하게 식별할 수 있는 속성
외래키 속성 : 다른 개체와의 관계에서 포함된 속성

관계 (Relationship)

개체와 개체 사이의 논리적인 연결
개체 간의 관계와 속성 간의 관계

관계의 형태

관계의 종류

8. 식별자 (Identifier)

식별자

하나의 개체 내에서 각각의 인스턴스를 유일(Unique)하게 구분할 수 있는 구분자
모든 개체는 1개 이상의 식별자를 반드시 가져야 한다.

식별자의 분류

후보 식별자

개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성 집합
하나의 개체에는 한 개 이상의 후보 식별자가 존재할 수 있으며, 이 중 개체의 대표성을 나타내는 식별자를 주 식별자로, 나머지는 보조 식별자로 지정한다.

주 식별자의 특징

유일성 : 개체 내의 모든 인스턴스들은 주 식별자에 의해 유일하게 구분되어야 함
최소성 : 유일성을 만족시키기 위해 필요한 최소한의 속성으로만 구성되어야 함
불변성 : 주 식별자가 특정 개체에 한번 지정되면, 그 식별자는 변하지 않아야 함
존재성 : 주 식별자가 지정되면, 식별자 속성에 반드시 데이터 값이 존재해야 함

9. E-R 모델

E-R 모델

피터 첸
개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
개념적 데이터 모델의 가장 대표적인 것
개체 타입과 관계 타입을 이용해 현실 세계를 개념적으로 표현한다.
개체(Entity), 관계(Relationship), 속성(Attribute) 으로 묘사한다.
E-R 다이어그램으로 표현, 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있다.

10. 관계형 데이터베이스의 구조 / 관계형 데이터 모델

관계형 데이터베이스

2차원적인 표를 이요하여 데이터 상호 관계를 정의하는 데이터베이스
코드(Codd)에 의해 처음 제안되었따.
개체와 관계를 모두 릴레이션으로 표현하기 때문에, 개체에는 개체 릴레이션과 관계 릴레이션이 존재한다.
장점
간결하고 보기 좋다
다른 데이터베이스로의 변환이 용이
단점
성능이 다소 떨어진다

관계형 데이터베이스의 릴레이션 구조

릴레이션은 데이터들을 표의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.

튜플 (Tuple)

릴레이션을 구성하는 각각의 행
속성의 모임
파일 구조에서 레코드와 같은 의미
튜플의 수 : 카디널리티(Cardinality), 기수

속성 (Attribute)

데이터베이스를 구성하는 가장 작은 논리적 단위
데이터 항목, 데이터 필드
속성 → 개체의 특성을 기술
속성의 수 : 디그리(Degree), 차수

도메인 (Domain

하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
‘성별’ 애트리뷰트의 도메인은 ‘남’, ‘여’ 로, 그 외의 값은 입력될 수 없다.

릴레이션의 특징

한 릴레이션에는 똑같은 튜플이 포함될 수 없으므로, 릴레이션에 포함된 튜플들은 모두 상이하다.
한 릴레이션에 포함된 튜플 사이에는 순서가 없다
튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다
릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구분하는 값은 동일한 값이 있을 수 있다.
릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.
속성의 값은 논리적으로 더이상 쪼갤 수 없는 원자값 만을 저장한다.

관계형 데이터 모델 (Relational Data Model)

2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 DB 구조
가장 널리 사용되는 데이터 모델
기본키와 이를 참조하는 외래키로 데이터 간의 관계를 표현한다.
계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델
1:1, 1:N, N:M 관계를 자유롭게 표현할 수 있다.

11. 관계형 데이터베이스의 제약 조건 - 키(Key)

키(Key)

데이터베이스에서 조건에 만족하는 튜플을 찾거나, 순서대로 정렬할 때 기준이 되는 속성
종류
후보기
기본키
대체키
슈퍼키
외래키

후보키 (Candidate Key)

릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
기본키로 사용할 수 있는 속성들
유일성(Unique), 최소성(Minimality)을 모두 만족시켜야 한다.
유일성
하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
최소성
키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함

기본키 (Primary Key)

후보키 중에서 특별히 선정된 주키(Main Key)
중복된 값을 가질 수 없다.
한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
NULL 값을 가질 수 없다.
튜플에서 기본키로 설정된 속성에는 NULL 값이 있어서는 안된다.

대체키 (Alternate Key)

후보키가 둘 이상일 때, 기본키를 제외한 나머지 후보키
보조키

슈퍼키 (Super Key)

한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다.

외래키 (Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키 라고 한다.
외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.

ref)