SQL 자격증 과목 1 - 1장_01

ROK·2022년 8월 23일
0

SQL

목록 보기
1/3

SQL 자격검정 실전문제를 풀면서 문제 해답을 보면서 정리하기

과목 1 : 데이터 모델링의 이해

데이터 모델링

문제 1 : 모델링의 특징

  1. 현실세계를 일정한 형식에 맞춰 표현하는 추상화의 의미를 가질 수 있다.
  2. 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있다.
  3. 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.
  4. 모델링은 단지 시스템을 구현하기 위해 수행하는 태스크(업무)가 아니라 시스템 구현을 포함한 업무분석 및 업무 형상화를 하는 목적도 있다.

문제 2 : 데이터 모델링이 필요한 이유

  1. 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현
    • 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석
  2. 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것

단순히 데이터베이스 구축을 위해서 하는 것이 아니라 데이터 모델링 자체로 업무를 설명하고 분석하는 부분에서 중요한 의미를 가진다

문제 3 : 데이터 모델링 유의 사항

유의할 사항 세 가지 : 중복성, 비유연성, 비일관성

중복성(Duplication)

  • 데이터는 여러 장소에 같은 정보를 저장하면 안된다.

비유연성(Inflexibility)

  • 잘 못 만들면 작은 변화에도 데이터 모델이 바뀐다. 그러면 안됨
  • 데이터 모델링은 작은 변화가 애플리케이션, 데이터베이스에 변화를 일으킬 수 있는 가능성을 줄여야 한다.

비일관성(Inconsistency)

  • 중복이 없어도 비일관성은 발생할 수 있다.
  • 데이터끼리 연결이 제대로 되어있지 않으면 모순이 발생할 수 있다.
    • 예를들어 신용상태가 업데이트 안되서 신용불량인데도 대출해줌
  • 데이터간의 상호 연관 관계를 명확하게 정의해야 한다.
  • 사용자가 처리하는 프로세스 또는 이와 관련된 프로그램과 테이블의 연계성을 높이면 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점이 된다.

문제 4 : 데이터모델링의 유의점

  • 변화의 가능성을 줄인다 : 비유연성
  • 데이터 모순 : 비일관성
  • 정보를 여러 장소에 저장 : 중복성

문제 5 : 개념, 논리, 물리

개념적 데이터 모델링

  • 추상화 수준이 높다
  • 업무 중심적이고 포괄적인 수준의 모델링
  • 전사적 데이터 모델링
  • EA 수립 시 많이 이용

논리적 데이터 모델링

  • 구축하고자 하는 업무에 대해 key, 속성 관계 등을 정확하게 표현
  • 재사용성이 높다

물리적 데이터 모델링

  • 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려해 설계

스키마

문제 6 : 데이터베이스 스키마 구조

  • 데이터베이스 스키마 구조는 3단계로 구분
  • 각각은 상호 독립적인 의미를 가지고 고유한 기능을 가짐

외부스키마(External Schema)

  • 최상위 단계로 뷰(View) 단계라고도 한다.
  • 각 사용자를 의미하는 개인적 데이터베이스 구조
  • 사용자 뷰를 포함 개인의 논리적 데이터 구조로 이루어져 있다
    • 전체 데이터베이스의 논리적 부분을 보여주기 때문에 서브 스키마라고도 한다.
  • ex) 컴퓨터학과 학생은 컴퓨터학과 관련 데이터만, 경영학과 학생은 경영학과 관련 데이터만 볼 수 있다.

개념스키마(Conceptual Schema)

  • 데이터베이스의 전체 구조를 추상화하는 단계
  • 전체적이고 종합적인 측면을 나타내는 스키마
  • 모든 스키마는 개념 스키마로부터 생성
  • 사용자가 필요로하는 데이터 및 응용프로그램들을 관리
  • 객체, 관계, 제약 조건, 관리적 측면에서 필요한 데이터, 정책, 권한, 규칙 등을 포함

내부스키마(Internal Schema)

  • 물리적 단계라고도 하며 추상화의 최하위 단계
  • 하나의 내부 스키마가 존재
  • 개념 스키마에 대한 저장 구조를 정의한 것으로 저장 스키마라고도 한다.
  • 데이터베이스의 물리적 저장 구조를 정의
    • 물리적 저장 장치로 저장 구조, 세부사항, 접근 경로 등을 기술

엔터티

문제 7 : 엔터티란?

엔터티의 정의

  • 엔터티는 실체, 객체라고 할 수 있다.
  • 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당
  • 업무상 관리가 필요한 것에 해당된다.
  • 엔터티는 저장 되기 위한 어떤 것에 해당된다.

예시
수업에는 과목이라는 엔터티가 존재
엔터티는 인스턴스의 집합으로 나타난다.
과목이라는 엔터티가 있고, 수학, 영어, 과학 등과 같은 인스턴스는 과목 엔터티에 포함된다

엔터티의 특징

  • 반드시 업무에서 필요하고 관리해야하는 정보
  • 유일한 식별자에 의해 식별 가능
  • 영속적으로 존재하는 인스턴스의 집합
    • 인스턴스는 반드시 '두 개' 이상
  • 엔터티는 반드시 속성이 있어야 한다.
  • 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다

문제 8 : ERD

ERD 작성 순서

  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치
  3. 엔터티간 관계를 설정
  4. 관계명 기술
  5. 관계의 참여도 기술
  6. 관계의 필수여부 기술

엔터티의 배치

위 작성 순서 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 : 속성의 명칭 부여

속성을 명명하는 원칙은 엔터티와 비슷하다

속성의 명명

  • 해당 업무에서 사용하는 이름
  • 서술식 용어는 사용하지 않는다.
  • 약어는 사용하지 않는다.
  • 유일성을 확보해야 한다.
profile
하루에 집중하자

0개의 댓글