SQL 자격검정 실전문제를 풀면서 문제 해답을 보면서 정리하기
과목 1 : 데이터 모델링의 이해
데이터 모델링
문제 1 : 모델링의 특징
- 현실세계를 일정한 형식에 맞춰 표현하는 추상화의 의미를 가질 수 있다.
- 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있다.
- 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.
- 모델링은 단지 시스템을 구현하기 위해 수행하는 태스크(업무)가 아니라 시스템 구현을 포함한 업무분석 및 업무 형상화를 하는 목적도 있다.
문제 2 : 데이터 모델링이 필요한 이유
- 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현
- 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석
- 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것
단순히 데이터베이스 구축을 위해서 하는 것이 아니라 데이터 모델링 자체로 업무를 설명하고 분석하는 부분에서 중요한 의미를 가진다
문제 3 : 데이터 모델링 유의 사항
유의할 사항 세 가지 : 중복성, 비유연성, 비일관성
중복성(Duplication)
- 데이터는 여러 장소에 같은 정보를 저장하면 안된다.
비유연성(Inflexibility)
- 잘 못 만들면 작은 변화에도 데이터 모델이 바뀐다. 그러면 안됨
- 데이터 모델링은 작은 변화가 애플리케이션, 데이터베이스에 변화를 일으킬 수 있는 가능성을 줄여야 한다.
비일관성(Inconsistency)
- 중복이 없어도 비일관성은 발생할 수 있다.
- 데이터끼리 연결이 제대로 되어있지 않으면 모순이 발생할 수 있다.
- 예를들어 신용상태가 업데이트 안되서 신용불량인데도 대출해줌
- 데이터간의 상호 연관 관계를 명확하게 정의해야 한다.
- 사용자가 처리하는 프로세스 또는 이와 관련된 프로그램과 테이블의 연계성을 높이면 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점이 된다.
문제 4 : 데이터모델링의 유의점
- 변화의 가능성을 줄인다 : 비유연성
- 데이터 모순 : 비일관성
- 정보를 여러 장소에 저장 : 중복성
문제 5 : 개념, 논리, 물리
개념적 데이터 모델링
- 추상화 수준이 높다
- 업무 중심적이고 포괄적인 수준의 모델링
- 전사적 데이터 모델링
- EA 수립 시 많이 이용
논리적 데이터 모델링
- 구축하고자 하는 업무에 대해 key, 속성 관계 등을 정확하게 표현
- 재사용성이 높다
물리적 데이터 모델링
- 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려해 설계
스키마
문제 6 : 데이터베이스 스키마 구조
- 데이터베이스 스키마 구조는 3단계로 구분
- 각각은 상호 독립적인 의미를 가지고 고유한 기능을 가짐
외부스키마(External Schema)
- 최상위 단계로 뷰(View) 단계라고도 한다.
- 각 사용자를 의미하는 개인적 데이터베이스 구조
- 사용자 뷰를 포함 개인의 논리적 데이터 구조로 이루어져 있다
- 전체 데이터베이스의 논리적 부분을 보여주기 때문에 서브 스키마라고도 한다.
- ex) 컴퓨터학과 학생은 컴퓨터학과 관련 데이터만, 경영학과 학생은 경영학과 관련 데이터만 볼 수 있다.
개념스키마(Conceptual Schema)
- 데이터베이스의 전체 구조를 추상화하는 단계
- 전체적이고 종합적인 측면을 나타내는 스키마
- 모든 스키마는 개념 스키마로부터 생성
- 사용자가 필요로하는 데이터 및 응용프로그램들을 관리
- 객체, 관계, 제약 조건, 관리적 측면에서 필요한 데이터, 정책, 권한, 규칙 등을 포함
내부스키마(Internal Schema)
- 물리적 단계라고도 하며 추상화의 최하위 단계
- 하나의 내부 스키마가 존재
- 개념 스키마에 대한 저장 구조를 정의한 것으로 저장 스키마라고도 한다.
- 데이터베이스의 물리적 저장 구조를 정의
- 물리적 저장 장치로 저장 구조, 세부사항, 접근 경로 등을 기술
엔터티
문제 7 : 엔터티란?
엔터티의 정의
- 엔터티는 실체, 객체라고 할 수 있다.
- 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당
- 업무상 관리가 필요한 것에 해당된다.
- 엔터티는 저장 되기 위한 어떤 것에 해당된다.
예시
수업에는 과목
이라는 엔터티가 존재
엔터티는 인스턴스의 집합으로 나타난다.
과목
이라는 엔터티가 있고, 수학
, 영어
, 과학
등과 같은 인스턴스는 과목 엔터티에 포함된다
엔터티의 특징
- 반드시 업무에서 필요하고 관리해야하는 정보
- 유일한 식별자에 의해 식별 가능
- 영속적으로 존재하는 인스턴스의 집합
- 엔터티는 반드시 속성이 있어야 한다.
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다
문제 8 : ERD
ERD 작성 순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치
- 엔터티간 관계를 설정
- 관계명 기술
- 관계의 참여도 기술
- 관계의 필수여부 기술
엔터티의 배치
위 작성 순서 2번에서 적절하게 배치를 어떻게 할까??
사람의 눈은 왼쪽에서 오른쪽
, 위에서 아래
로 이동하는 경향이 있다
따라서 중요한 엔터티는 왼쪽 상단
에 배치. 이를 중심으로 엔터티를 나열하면서 전개한다.
엔터티의 관계
엔터티의 중요한 큰 특징 중 하나는 다른 엔터티와 관계를 가져야 하는 것이다.
하지만 공통코드, 통계성 엔터티의 경우는 관계를 생략할 수 있다.
문제 12 : 엔터티의 분류
발생시점에 따른 분류
기본/키 엔터티(Fundamental/Key Entity)
- 해당 업무에 원래 존재하는 정보
- 다른 엔터티와 관계에 의해 발생•생성 되는 것이 아니라 독립적으로 존재하는 엔터티
- 독립적으로 생성이 가능해 다른 엔터티의 부모 역할을 한다.
중심엔터티(Main Entity)
- 기본 엔터티로 발생
- 업무에 있어 중심적인 역할
- 일반적으로 데이터 양이 많다
- 다른 엔터티와의 관계를 통해 행위 엔터티를 생성
행위 엔터티(Action Entity)
- 두 개 이상의 부모 엔터티로 주로 발생
- 엔터티의 내용이나 데이터 양이 자주 변경됨
- 분석 초기 단계보다 상세 설계, 프로세스와 상관모델링을 진행하면서 도출
정리
기본 엔터티 >> 중심 엔터티 >> 행위 엔터티 : 앞이 부모, 뒤가 자식
문제 13 : 엔터티 이름 부여
엔터티 명명하는 일반적인 기준
- 현업업무에서 사용하는 용어 사용
- 약어를 사용하지 않는다
- 단수명사 사용
- 유일한 이름 부여
- 생성의미대로 이름 부여
속성
문제 14 : 속성(Attribute)
속성은 사전적으로 사물의 성질, 특징, 본질적인 성질이다.
사물이나 개념이 어떤 것인지 나타내고, 이를 다른 것과 구별하는 성질
데이터모델링 관점의 속성
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 더 이상 분리되지 않는 최소 데이터 단위
엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스 집합
- 한 개의 엔터티는 두 개 이상의 속성을 가진다.
- 한 개의 속성은 한 개의 속성값을 가진다. (1대1 관계)
문제 16 : 속성의 분류
속성의 특성에 따른 분류
기본 속성(Basic Attribute)
- 업무 분석을 통해 바로 정의한 속성
- 일반적이고 많은 속성
- 코드성 데이터, 엔터티 식별을 위해 부여한 일련번호, 다른 속성을 계산하거나 영향 받아 생성된 속성은 기본 속성이 아니다.
설계 속성(Designed Attribute)
- 새로 만들어지거나 변형된 속성
- 주로 업무상 필요에 의해 변형해 만든다.
- 일련번호와 같이 단일 식별자를 부여해 사용
파생 속성(Derived Attribute)
- 다른 속성에 영향을 받아 발생하는 속성
- 일반적으로 계산된 값들이 해당
- 파생 속성은 가급적 적게 정의하는 것이 좋음
엔터티 구성 방식에 따른 분류
PK(Primary Key) 속성
FK(Foreign Key) 속성
일반 속성
- 엔터티에 포함되어 있고, PK, FK에 포함되지 않는 속성
세부 의미 유무에 따른 분류
단순 속성(Simple Attribute)
- 나이, 성별과 같은 데이터
- 더 이상 다른 속성들로 구성될 수 없는 단순한 속성
복합 속성(Composite Attribute)
- 주소는 시, 구, 동, 번지와 같이 여러 세부 속성들로 구성
- 여러 속성들로 구성
문제 18 : 도메인(Domain)
- 도메인은 속성의 값이 가질 수 있는 범위를 의미
- 속성값이 가질 수 있는 데이터 타입, 크기, 추가적인 제약사항 등
문제 19 : 속성의 명칭 부여
속성을 명명하는 원칙은 엔터티와 비슷하다
속성의 명명
- 해당 업무에서 사용하는 이름
- 서술식 용어는 사용하지 않는다.
- 약어는 사용하지 않는다.
- 유일성을 확보해야 한다.