과목 1 : 데이터 모델링의 이해
제 1장 : 데이터 모델링의 이해
제 1절 : 데이터 모델의 이해
제 2절 : 엔터티
제 3절 : 속성
제 4절 : 관계
제 5절 : 식별자
[문1] 데이터 모델링의 특징으로 가장 적절하지 않은 것은?
1) 현실 세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있다.
2) 시스템 구현만을 위해 진행하는 사전 단계의 작업으로서 데이터베이스 구축을 위한 사전 작업의 의미가 있다.
3) 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게 하는 단순화의 의미를 가지고 있다.
4) 모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.
해설 > 모델링은 시스템 구현만을 위해 수행하는 태스크가 아니며, 시스템 구현을 포함한 업무 분석 및 업무 형상화를 하는 목적도 있다.
관련 개념 > 모델링의 특징
1. 단순화 (Simplification)
- 현실을 단순화, 불필요한 세부사항 제거, 복잡한 현실세계를 이해하고 표현하기 쉬워짐
2. 추상화 (Abstraction)
- 현실세계의 다양한 현상을 일정한 형식(표기법)에 맞추어 간략하게 대략적으로 표현
3. 명확화 (Clarity)
- 애매모호함 제거, 정확하게 현상을 기술, 모델을 이해하는 이들의 의사소통을 원활하게 함
[문2] 데이터 모델링에 대한 설명으로 가장 적절하지 않은 것은?
1) 업무 정보를 구성하는 기초가 되는 정보들을 일정한 표기법으로 표현한다.
2) 분석된 모델로 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.
3) 데이터베이스를 구축하는 목적으로 데이터 모델링을 수행하며 업무에 대한 설명은 별도의 표기법을 이용한다.
4) 데이터 모델링 자체로서 업무의 흐름을 설명하고 분석하는 부분에 의미를 가지고 있다.
해설 > 단지 데이터베이터만을 구축하기 위한 용도로 쓰이는 것이 아니라 데이터 모델링 자체로도 업무를 설명하고 분석하는 부분에서 매우 중요한 의미가 있다.
관련 개념 > 모델링의 목적
1. 업무 정보를 구성하는 기초 정보들을 일정한 표기법으로 표현하여 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석
2. 분석된 모델로 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용
[문4] 아래에서 설명하는 데이터 모델링의 유의점은?
<아래>
데이터모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터모델이 수시로 변경되어 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리하여 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
1) 중복
2) 비유연성
3) 비일관성
4) 일관성
해설 > ** 아래 개념 참고
관련 개념 > 데이터 모델링 유의점
1. 중복 (Duplication)
-한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
2. 비유연성 (Inflexibility)
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의, 데이터 정의를 프로세스와 분리
3. 비일관성 (Inconsistency)
- 데이터베이스 냉의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 데이터간 상호연관 관계를 명확히 정의
- 데이터 품질 관리 필요
- 데이터 중복이 없더라도 비일관성은 발생할 수 있음
[문5] 데이터 독립성의 구성요소에 대한 설명으로 가장 적절하지 않은 것은?
1) 통합된 모든 사용자의 관점은 개념스키마와 관련이 있다.
2) 물리적인 저장구조를 표현하는 스키마는 내부스키마이다.
3) View 단계는 여러 사용자 관점으로 구성하는 개념 스키마에 해당한다.
4) 논리적인 데이터 독립성을 고려하는 단계는 외부단계와 개념적 단계이다.
해설 > 여러 사용자 관점으로 구성하는 것은 외부스키마 이다.
관련 개념 > 스키마 3단계 구조
* 스키마
: 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
: 사용자의 관점과 실제 설계된 물리적인 방식을 분리하기 위해 고안됨
1. 외부 스키마
- 사용자가 보는 관점에서의 데이터베이스 스키마를 정의
- 사용자나 응용 프로그램이 필요한 데이터를 정의 (View : 사용자가 접근하는 대상)
2. 개념 스키마
- 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
- 전체 데이터베이스의 개체, 속성, 관계, 데이터 타입 등을 정의
3. 내부 스키마
- 데이터가 물리적으로 어떻게 저장되는지를 정의
- 데이터의 저장 구조, 컬럼, 인덱스 등을 정의
[문9] 아래 시나리오에서 엔터티로 가장 적절한 것은?
<아래>
S병원은 여러 명의 환자가 존재하고 각 환자의 이름, 주소 등을 관리해야 한다.
(단, 업무범위와 데이터의 특성은 위 시나리오에 기술되어 있는 사항만을 근거하여 판단해야 함)
1) 병원
2) 환자
3) 이름
4) 주소
해설 > '여러 명'의 복수 인스턴스와 이름, 주소 등의 복수 속성을 가진 '환자'가 엔터티로 가장 적절하다. (병원은 S병원 1개이므로 엔티티로 성립되지 않는다). 엔티티는 2개 이상의 속성과 2개 이상의 인스턴스를 가져 소위 면적으로 표현될 수 있어야 엔티티의 자격을 가진다.
관련 개념 > 엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
2. 유일한 식별자에 의해 식별이 가능해야 한다.
3. 영속적으로 존재하는 인스턴스의 집합이어야 한다. (두 개 이상)
4. 엔터티는 업무 프로세스에 의해 이용되어야 한다.
5. 엔터티는 반드시 속성이 있어야 한다. (두 개 이상)
6. 하나의 인스턴스는 각각의 속성들에 대한 1개의 속성 값만을 가진다.
7. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
[문16] 아래에서 수행한 정규화 작업으로 가장 적절한 것은? (단, 이후 필요한 정규화 작업은 계속 수행될 예정)
<아래>
1) 1차 정규화
2) 2차 정규화
3) 3차 정규화
4) 4차 정규화
해설 > 주문상품 엔터티의 주문상품명은 주문상품 코드에만 종속적이다.
관련 개념 > 정규화
1. 제 1 정규화
- 테이블의 컬럼이 원자성(한 속성이 하나의 값을 갖는 특성)을 갖도록 테이블을 분해하는 단계
2. 제 2 정규화
- (제 1 정규화를 진행한 테이블에 대해) 완전 함수 종속을 만들도록 테이블 분해
- 완전 함수 종속 : 기본키를 구성하는 모든 컬럼의 값이 다른 컬럼을 결정짓는 상태
- PK 가 2개 이상일 때 발생 👉 PK 의 일부와 종속되는 관계 (복합키를 구성하는 키들 중 일부 키에 대해서 다른 컬럼의 값들이 1 대 1 대응관계를 가지는 상황 = 부분 함수 종속 관계)가 있다면 분리해야 함
- 위의 상황을 완전 함수 종속성 위배 라고 함
3. 제 3 정규화
- (제 2 정규화를 진행한 테이블에 대해) 이행적 종속을 없애도록 테이블을 분리
- 이행적 종속성 : A → B, B → C 일 때, A → C 가 성립되는 것
- (A,B) 와 (B,C)로 분리 = 제 3 정규화
[문20] 데이터 모델링의 관계에 대한 설명으로 가장 적절하지 않은 것은?
1) 관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD 에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용한다.
2) UML(Unified Modeling Language)에는 클래스다이어그램의 관계 중 연관관계(Association)와 의존관계(Dependency)가 있고 이것은 실선과 점선으로 다르게 표현이 된다.
3) 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고, 의존관계는 상대방 클래스의 행위에 의해 관계가 형성되는 행위적 관계에 해당한다.
4) 연관관계는 오퍼레이션에서 파라미터 등으로 이용할 수 있고, 의존관계는 소스코드에서 멤버변수로 선언하여 사용할 수 있다.
해설 > 연관관계는 소스코드에서 멤버변수로 선언하여 사용하게 하고 의존관계는 오퍼레이션에서 파라미터 등으로 이용할 수 있도록 되어있다.
관련 개념 > 데이터 모델링에서의 관계
* 관계(Relationship)
: 엔터티간의 - 인스턴스간의 논리적인 연관성
: '관계를 맺는다' = 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키(조인키)로 활용 = 부모 자식을 연결
* ERD 기준 >
1. 존재에 의한 관계
- 한 엔터티의 존재가 다른 엔터티의 존재에 영향을 미치는 관계
- 엔터티 간의 상태를 의미 (ex) 사원 엔터티는 부서 엔터티에 소속
2. 행위에 의한 관계
- 엔터티 간의 어떤 행위가 있는 것을 의미 (ex) 주문은 고객이 주문할 때 발생
※ ERD에서는 존재관계와 행위관계를 구분하지 않는다.
* UML 기준 >
1. 연관관계(Association)
- 항상 이용하는 관계로 존재적 관계에 해당
- 실선으로 표현 + 소스코드에서 멤버변수로 선언하여 사용
2. 의존관계(Dependency)
- 상대방 클래스의 행위에 의해 관계가 형성되는 행위적 관계
- 점선으로 표현 + 행위를 나타내는 코드인 오퍼레이션(메서드)에서 파라미터 등으로 이용
[문22] 아래에서 설명하는 데이터 독립성은?
<아래>
- 데이터베이스의 파일 구조의 변화가 논리스키마(Schema)에 영향을 주지 않음
- 데이터베이스의 색인 구조의 변화가 응용 프로그램에 영향을 주지 않음
1) 논리적 독립성
2) 물리적 독립성
3) 개념적 독립성
4) 내부적 독립성
해설 > 물리적 독립성은 물리 스키마가 변경 ( = 파일 저장 구조의 변경 )되어도 논리 스키마와 응용 프로그램에 영향을 주지 않는다.
관련 개념 > 스키마 독립성
* 독립성
: 물리적, 논리적 구조를 변경하더라도 사용자가 사용하는 응용 프로그램에 영향을 주지 말아야 함
1. 논리적 독립성
- 논리적 데이터 구조가 변경되어도 ( = 개념 스키마 변경 ) 응용 프로그램에 영향을 주지 않는 특성
2. 물리적 독립성
- 물리적 구조가 변경되어도 ( = 내부 스키마 변경 ) 개념/외부 스키마에 영향을 주지 않는 특성
★몇개로 분류하는 개념들 정리
모델링
개논물
1. 개념적
- 업무 중심적 + 포괄적 (전사적)
- 추상화 수준이 가장 높음
- 업무 분석 후 핵심 엔터티를 추출하는 단계 → 관계 표현을 위해 ERD 작성
2. 논리적
- 개념적 모델링 결과에 세부 속성, 식별자, 관계 등을 표현 (데이터 구조 정의) ▶ 데이터 정규화 수행
- 비슷한 업무에서 동일 형태 데이터 사용 시 재사용 가능 + 동일한 논리적 모델 사용 시 쿼리 재사용 가능
- 재사용성이 높은 논리적 모델은 유지보수가 용이
3. 물리적
- 직접 물리적으로 생성 : 데이터베이스 성능, 디스크 저장구조, 하드웨어 보안성, 가용성 등을 고려
- 추상화 수준 가장 낮음 ▶ 가장 구체적임
스키마
외개내스키~
1. 외부 스키마
- 사용자가 보는 관점에서의 데이터베이스 스키마를 정의
- 사용자나 응용 프로그램이 필요한 데이터를 정의 (View : 사용자가 접근하는 대상)
2. 개념 스키마
- 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
- 전체 데이터베이스의 개체, 속성, 관계, 데이터 타입 등을 정의
3. 내부 스키마
- 데이터가 물리적으로 어떻게 저장되는지를 정의
- 데이터의 저장 구조, 컬럼, 인덱스 등을 정의
엔터티
1) 유/무형
유개사(ㄱ) : 유개삭
1. 유형
- 물리적 형태가 있음 (실체가 있는 대상)
- 안정적 + 지속적 활용
- 업무로부터 구분하기가 가장 용이 (ex) 사원, 물품, 강사 등
2. 개념
- 물리적 형태가 없음
- 관리 대상 개념 정보로부터 구분됨 (ex) 조직, 보험 상품 등
3. 사건
- 업무 수행에 따라 발생
- 발생량이 많고 각종 통계자료에 이용 (ex) 주문, 청구, 미납 등
2) 발생시점
기중행 : 귀중해앵~
1. 기본
- 그 업무에 원래 존재하는 정보 ▶ 독립적으로 생성 (관계에 의한 생성X)
- 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가짐 ( = 타 엔터티의 부모 역할)
(ex) 사원, 부서, 고객, 상품 등
2. 중심
- 기본엔터티로부터 발생 (그 업무에서 중심적인 역할) ▶ 많은 데이터가 발생
- 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성
(ex) 계약, 사고, 청구, 주문, 매출 등
3. 행위
- 두 개 이상의 부모 엔터티로부터 발생 ▶ 자주 내용이 변경, 데이터양 증가
- 분석 초기 단계보다는 상세 설계 단계나 프로세스와 상관모델링을 진행하면서 도출
(ex) 주문(고객과 상품 엔터티로부터 발생, 행위엔터티이기도 함), 사원변경이력, 이력 등
식별자
1) 대표성 여부
주식별자 | 보조식별자 | |
유일성, 최소성 | 만족 | 만족 |
대표성 | O : 엔터티를 대표 | X |
인스턴스 구분 | O : 엔터티 내에서 각 인스턴스를 유일하게 구분 | O |
참조관계 여부 | O : 타 엔터티와 참조관계 연결 가능 | X |
2) 생성 여부
내부식별자 : 다른 엔터티 참조 없이 엔터티 내부에서 스스로 생성
외부식별자 : 다른 엔터티와의 관계로 만들어짐 = 외래키
3) 속성 수
단일식별자 : 하나의 속성으로 구성
복합식별자 : 2개 이상의 속성으로 구성
4) 대체 여부
본질식별자 (원조식별자) : 비즈니스 프로세스에서 만들어지는 식별자
인조식별자 : 인위적으로 만들어지는 식별자 (ex) 자동 증가하는 일련번호 같은 형태
'어학공부와 자격증 등 > SQLD' 카테고리의 다른 글
[자격증/SQLD] 드디어 SQLD 와의 악연을 끊다...삼수생 어떤데😹 (5) | 2025.06.24 |
---|---|
[자격증/SQLD] 2과 1장 오답 풀이 + 개념 정리 (0) | 2025.05.28 |
[자격증/SQLD] 1과 2장 오답 풀이 + 개념 정리 (2) | 2025.05.25 |