[SQLD] 과목1 암기노트

정원석·2024년 3월 4일

발생시점에 따른 엔터티 분류

  • 기본 엔터티
  • 중심 엔터티
  • 행위 엔터티

엔터티에 이름을 부여하는 방법

  • 협업 업부에서 사용하는 용어 사용
  • 약어를 사용하지 않는다.
  • 단수명사 사용
  • 모든 엔터티를 통틀어 유일한 이름을 사용해야 한다.
  • 엔터티 생성의미대로 이름 부여해야 한다.

속성이란?

업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소 데이터 단위이다.

도메인이란?

각 속성이 가질 수 있는 값의 범위

속성의 특징에 따른 분류

  • 기본속성 : 테이블의 기본 키로 사용되며, 각 행을 고유하게 식별하는 속성
  • 설계속성 : 다른 속성에 의해 파생되는 값으로, 계산되거나 처리되어 나타남
  • 파생속성 : 다른 속성들로부터 계산되는 값으로, 저장되지 않고 필요할 때마다 계산됨

데이터 모델링의 관계에 대한 설명으로 적절하지 않은 것은?

  1. 관계는 존재에 의한 관계와 행위에 의한 관계로 구분되지만 ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용한다.
  2. UML에는 클래스다이어그램의 관계중 연관관계와 의존관계가 있고 이것은 실선과 점선의 표기법으로 다르게 표현된다.
  3. 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고, 의존관계는 상대방 클래스의 행위에 의해 관계가 형성되는 행위적 관계에 해당한다.
  4. 연관관계는 오페레이션에서 파라미터 등으로 이용될 수 있고, 의존관계는 소스코드에서 멤버변수로 선언하여 사용할 수 있다.
    의존관게 는 오퍼레이션에서 파라미터 등으로 이용할 수 있고, 연관관계는 소스코드에서 멤버변수로 선언하여 사용할 수 있다.

데이터 모델링의 관계 표기법

  • 관계명 : 관계의 이름
  • 관계차수 : 1:1, 1:M, M:N
  • 관계선택사양 : 필수관계, 선택관계

두 엔터티 사이의 관계에 대해 확인할 사항

  • 두 엔터티 사이에 연관규칙이 있는가?
  • 두 엔터티 사이에 정보의 조합이 발생하는가?
  • 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
  • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?

식별자의 종류

[대표성 여부]

  • 주식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
  • 보조식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못함

[스스로 생성여부]

  • 내부식별자 : 엔터티 내부에서 스스로 만들어지는 식별자
  • 외부식별자 : 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자

[속성의 수]

  • 단일식별자 : 하나의 속성으로 구성된 식별자
  • 복합식별자 : 둘 이상의 속성으로 구성된 식별자

[대체여부]

  • 본질식별자 : 업무에 의해 만들어지는 식별자
  • 인조식별자 : 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만들어진 식별자

식별자와 비식별자 관계 비교

항목식별자 관계비식별자 관계
목적강한 연결관계 표현약한 연결관계 표현
자식 주식별자 영향자식 주식별자의 구성에 포함됨자식 일반 속성에 포함됨
표기법실선 표현점선 표현
연결 고려사항- 반드시 부모 엔터티에 종속
- 자식 주식별자 구성에 부모 주식별자 포함 필요
- 상속받은 주식별자 속성을 타 엔터티에 이전 필요
- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성
- 자식 주식별자구성에 부모 주식별자 부분 필요
- 상속받은 주식별자 속성을 타 엔터티에 차단 필요
- 부모쪽의 관계참여가 선택관계

정규형

  • 제1 정규형 : 모든 속성은 반드시 하나의 값을 가져야 한다.
  • 제2 정규형 : 엔터티의 일반속성은 주식별자 전체에 종속적이어야 한다.
  • 제3 정규형 : 엔터티의 일반속성 간에는 서로 종속적이지 않다.

정규화에 대한 설명으로 적절하지 않은 것은?

  1. 정규화는 개념 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 한다.

  2. 제1 정규형은 모든 인스턴스가 반드시 하나의 값을 가져야 함을 의미한다.

  3. 제3 정규형을 만족하는 엔터티의 일반속성은 주식별자 전체에 종속적이다.

  4. 반정규화는 성능을 위해 데이터 중복을 허용하는 것이지만 성능의 향상을 항상 보장하는 것은 아니다.



    정규화는 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 한다.

관계와 조인에 대한 설명으로 적절하지 않은 것은?

  1. 조인이란 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것을 의미한다.
  2. 부모의 식별자를 자식의 일반속성으로 상속하면 식별 관계, 부모의 식별자를 자식의 식별자에 포함하면 비식별 관계라고 할 수 있다.
  3. 관계를 맺는다는 것은 식별자를 상속시키고 해당 식별자를 매핑키로 활용해 데이터를 결합해 보겠다는 것을 의미한다.
  4. "SELECT B.고객명 FROM 주문 A, 고객 B WHERE A.고객번호 = B.고객번호" 쿼리에서 조인기는 "고객번호"이다.

    부모의 식별자를 자식의 일반속성으로 상속하면 비식별 관계, 부모의 식별자를 자식의 식별자에 포함하면 식별 관계라고 할 수 있다.

NULL의 특성

  • NULL은 아직 정의되지 않은 값으로 0 또는 공백과 다르다. 0은 숫자이고, 공백은 하나의 문자이다.
  • 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있다.
  • 널 값을 포함하는 연산의 경우 결괏값도 널 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다.
  • 결괏값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL 함수를 사용한다.
profile
Back-End-Dev

0개의 댓글