정보처리기사 실기 2장. 데이터 입출력 구현_2
2-4. 데이터베이스 개요
• 데이터 저장소
| 1. 논리 데이터 저장소 | 논리적 구조로 조직화 | 데이터 및 데이터관의 연관성, 제약조건 식별 |
| 2. 물리 데이터 저장소 | 실제 저장장치에 저장 | 소프트웨어 환경의 물리적 특성 고려 |
• 데이터 베이스 (Database)
공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
| 1. 통합된 데이터 (Integrated Data) | 자료의 중복 배제 |
| 2. 저장된 데이터 (Stored Data) | 저장 매체에 저장된 자료 |
| 3. 운영 데이터 (Operational Data) | 조직의 고유 업무 수행 시 반드시 필요한 자료 (단순 입출력 및 임시 자료는 운영데이터가 아님) |
| 4. 공용 데이터 (Shared Data) | 여러 응용 시스템이 공동으로 소유하는 자료 |
• DBMS (DataBase Management System : 데이터베이스 관리 시스템)
사용자의 요구에 따라 정보를 생성해주고, 데이터를 관리해주는 소프트웨어
종속성과 중복성 문제를 해결하기 위해 제안된 시스템
- DBMS의 필수 기능
| 1. 정의 기능 (Definition) | 데이터의 형과 구조, 이용 방식, 제약 조건 등 명시 |
| 2. 조작 기능 (Manipulation) | 데이터의 검색, 갱신, 삽입, 삭제 등 조작 |
| 3. 제어 기능 (Control) | 데이터의 무결성, 보안, 권한 검사, 병행제어 |
• 데이터의 독립성
| 1. 논리적 독립성 | 응용 프로그램 ↔︎ 데이터 베이스 | 데이터의 논리적 구조를 변경시켜도 응용프로그램은 영향받지 않음 |
| 2. 물리적 독립성 | 응용 프로그램 ↔︎ 보조기억장치 (물리장치) | 디스크를 추가/변경하더라도 응용프로그램은 영향받지 않음 |
• 스키마 (Schema)
데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것 → 외부 / 내부 / 개념
| 1. 외부 스키마 | 개인의 입장에서 필요한 데이터베이스의 논리적 구조 |
| 2. 개념 스키마 | 데이터베이스의 전체적인 논리적 구조 조직 전체의 데이터 베이스로, 단 하나만 존재함 |
| 3. 내부 스키마 | 물리적 저장장치의 입장에서 본 데이터베이스 구조 예) 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등 |
2-5. 데이터 베이스 설계
• 데이터 베이스 설계 시 고려사항
| 1. 무결성 | 연산 후 정해진 제약 조건을 항상 만족 |
| 2. 일관성 | 데이터 응답이 처음부터 끝까지 변함없이 일정 |
| 3. 회복 | 시스템 장애 발생시 장애 발생 직전의 상태로 복구 가능 |
| 4. 보안 | 데이터 노출 및 손실로부터 보호 가능 |
| 5. 효율성 | 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등 |
| 6. 데이터베이스 확장 | 운영에 영향 없이 지속적으로 데이터 추가 가능 |
• 데이터 베이스 설계 순서
요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
| 1단계. 요구 조건 분석 | 요구 조건 명세서 작성 |
| 2단계. 개념적 설계 | 개념 스키마, 트랜잭션 모델링, E-R 모델 |
| 3단계. 논리적 설계 | 논리 스키마 설계, 트랜잭션 인터페이스 설계 |
| 4단계. 물리적 설계 | 물리적 구조의 데이터로 변환 |
| 5단계. 구현 | 데이터 베이스 생성, 트랜잭션 작성 |
• 요구조건 분석
데이터 베이스를 사용할 사람들로부터 필요한 용도를 파악
‣ 수행 업무와 필요한 데이터의 종류, 용도, 제약 조건 등 수집 → 요구 조건 명세 작성
• 개념적 설계 (정보 모델링, 개념화)
현실 세계의 인식 → 추상적인 개념 표현
현실 세계에 대한 인식을 추상적인 개념으로 표현하는 과정
‣ 개념 스키마 모델링과 트랜잭션 모델링 병행 수행
‣ 요구 조건 명세 → E-R 다이어크램으로 작성
‣ DBMS에 독립적인 개념 스키마 설계
• 논리적 설계 (데이터 모델링)
추상적 자료 → 논리적 자료 구조
현실 세계에 발생하는 자료를 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정 → Mapping 과정
‣ 개념 스키마를 평가 및 정제하고 DBMS에 따라 논리적 스키마를 설계
‣ 트랜잭션의 인터페이스 설계
‣ 정규화 → 스키마 평가 및 정제
• 물리적 설계 (데이터 구조화)
논리적 구조 데이터 → 물리적 구조 데이터
논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
‣ 데이터 베이스 파일의 저장 구조 및 액세스 경로 결정 → 처리 성능
‣ 데이터가 컴퓨터에 저장되는 방법 묘사
• 데이터 베이스 구현
데이터베이스 스키마 → 파일
논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성
‣ DBMS의 DDL(데이터 정의어)을 이용하여 데이터베이스 파일 생성
‣ 응용 프로그램을 위한 트랜잭션 작성
‣ 데이터베이스 접근을 위한 응용 프로그램 작성
2-6. 데이터 모델의 개념
• 데이터 모델
현실 세계의 정보들을 체계적으로 표현한 개념적 모형
데이터의 구조(Schema)를 논리적으로 표현하기 위한 지능적 도구
• 데이터 모델 구성 요소 : 개체, 속성, 관계
1. 개체 (Entity)
데이터 베이스에 표현하려는 것, 현실 세계의 대상체
‣ 현실 세계에 독립적으로 존재하는 유형, 무형의 정보 (사람, 집, 차 / 여행, 음악, 취미)
‣ 서로 연관된 몇 개의 속성으로 구성
‣ 유일한 식별자(Unique Identifier)에 의해 식별
‣ 다른 개체와 하나 이상의 관계 존재
2. 속성 (Attribute)
데이터 베이스를 구성하는 가장 작은 논리적 단위
‣ 파일 구조상의 데이터 항목(필드)
‣ 개체의 특성을 기술
‣ 속성의 수 = 차수, 디그리(Degree)
- 속성의 특성에 따른 분류
1. 기본 속성 (Base Attribute)
업무 분석을 통해 정의한 속성
‣ 가장 많고 일반적
‣ 단, 업무로부터 분석한 속성이라도 업무상 코드로 정의한 속성은 기본 속성에서 제외
‣ 예) 자동차명, 제조일, 연비
2. 설계 속성 (Designed Attribute)
설계 과정에서 도출해내는 속성
‣ 업무를 규칙화하기 위해 새로 만들거나 변형하여 정의하는 속성
‣ 예) 자동차 코드
3. 파생 속성 (Derived Attribute)
다른 속성으로부터 계산이나 변형을 받아 발생하는 속성
‣ 정합성 유지 시 유의사항이 많으므로 적은수를 정의하는 것이 좋음
‣ 예) 총 판매 수량, 총 판매 금액
- 속성의 특성에 따른 분류
| 1. 기본키 속성 (Primary Key Attribute) | 개체를 유일하게 식별할 수 있는 속성 |
| 2. 외래키 속성 (Foreign Key Attribute) | 다른 개체와의 관계에서 포함된 속성 |
| 3. 일반 속성 | 개체에 포함되어 있고 기본키, 외래키에 포함되지 않은 속성 |
3. 관계 (Relationship)
개체와 개체 사이의 논리적인 연결
‣ 개체 간의 관계와 속성 간의 관계 존재
- 관계의 형태

| 1. 일 대 일 (1:1) | A의 각 원소가 B의 원소 한 개와 대응 |
| 2. 일 대 다 (1:N) | A의 각 원소는 B의 원소 여러 개와 대응하나, B는 A의 원소 한 개와 대응 |
| 3. 다 대 다 (N:M) | A의 각 원소는 B의 원소 여러 개와 대응하고, B의 원소 또한 A의 원소 여러개와 대응 |
- 관계의 종류
| 1. 종속 관계 (Dependent Relationship) | 두 개체 사이의 주종관계를 표현한 것, 식별관계와 비식별 관계로 나뉨 |
| 2. 중복 관계 (Redundant Relationship) | 2번 이상의 종속 관계가 발생, 최적화 작업이 어려워 지양 |
| 3. 재귀 관계 (Recursive Relationship) | 자기 자신과 관계, 순환관계 |
| 4. 베타 관계 (Exclusive Relationship) | 기준에 따라 특성을 분할하는 관계, 배타 AND 관계와 배타 OR 관계로 구분 |
• 데이터 모델 종류 : 개념적, 논리적, 물리적
1. 개념적 데이터 모델
현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
‣ 정보 구조로 표현하기 때문에 정보 모델이라고도 한다.
‣ 예) E-R 모델
2. 논리적 데이터 모델
개념적 구조 → 컴퓨터 환경
개념 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환
‣ 단순 데이터 모델을 뜻함
‣ 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분
3. 물리적 데이터 모델
물리 데이터 베이스 설계 과정
• 데이터 모델에 표시할 요소 : 구조, 연산, 제약 조건
| 1. 구조 (Structiure) | 논리적으로 표현된 개체 타입들 간의 관계 | 데이터 구조 및 정적 성질 표현 |
| 2. 연산 (Operation) | 실제 데이터를 처리하는 작업에 대한 명세 | 데이터베이스를 조작하는 기본 도구 |
| 3. 제약 조건 (Constraint) | 실제 데이터의 논리적인 제약 조건 |
2-7. 식별자 (Identifier)
• 식별자
하나의 개체 내에서 인스턴스를 유일하게 구분할 수 있는 구분자
모든 개체는 한 개 이상의 식별자를 반드시 가져야 한다.
| ✓ 식별자와 키는 같은 의미로 사용 | ||
| 식별자 | 논리 데이터 모델링 단계 | 개체 → 식별자 |
| 키 | 물리 데이터 모델링 단계 | 릴레이션 → 키 |
✓ 인스턴스 (Instance)
속성에 따른 구체적인 데이터 값을 갖고 있는 것
• 식별자의 분류
| 1. 대표성 여부 | 주 식별자 | 개체를 대표하는 유일한 식별자 |
| 보조 식별자 | 주 식별자를 대신해 개체를 식별할 수 있는 속성 | |
| 2. 스스로 생성 여부 | 내부 식별자 | 개체 내에서 스스로 만들어지는 식별자 |
| 외부 식별자 | 관계에 의해 외부 개체의 식별자를 사용하는 식별자 | |
| 3. 단일 속성 여부 | 단일 식별자 | 주 식별자가 한 가지 속성으로 구성 |
| 복합 식별자 | 주 식별자가 두 개 이상의 속성으로 구성 | |
| 4. 대체 여부 | 원조 식별자 | 가공되지 않은 원래의 식별자, 본질 식별자 |
| 대리 식별자 | 복합식별자의 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자, 인조 식별자 |
• 후보 식별자
개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성의 집합
하나의 개체에는 한 개 이상의 후보 식별자가 존재 가능하며, 대표성을 나타내는 식별자를 주 식별자 / 나머지를 보조 식별자로 지정
• 주 식별자의 특징
| 1. 유일성 | 개체 내 모든 인스턴스들은 주 식별자에 의해 유일하게 구분 |
| 2. 최소성 | 유일성을 만족시키기 위해 최소한의 속성으로만 구성 |
| 3. 불변성 | 주 식별자가 한 번 지정되면 변하지 않아야 함 |
| 4. 존재성 | 주 식별자가 지정되면 식별자 속성에 반드시 데이터 값이 존재 |
2-8. E-R 모델 (개체-관계 모델)
• E-R 모델 (Entity-Relationship, 개체-관계 모델)
개체와 개체 간의 관계를 기본 요소로 이용해 개념적인 논리 데이터로 표현하기 위한 방법
‣ 1976년 피터 첸(Peter Chen)에 의해 제안, 기본적인 구성 요소 정립
‣ 개념적 데이터 모델
• E-R 다이어그램
| 사각형 | 개체 | |
| 마름모 | 관계 | |
| 타원 | 속성 | |
| 선, 링크 | 개체와 속성을 연결 | |
| 이중 타원 | 다중값 속성 (복합 속성) | |
| 밑줄 타원 | 기본키 속성 | |
| 복수 타원 | 복합 속성 예) 성명 = 성 + 이름 |
|
| 관계 | 개체 간 관계에 대한 대응수를 선 위에 기술 |







