[SQLD] 1과목 정리 (식별자 관계, ERD, 관계차수, 엔터티, 속성, 인스턴스)

bb·2023년 6월 4일
0
post-thumbnail

1. 엔터티

특징

  1. 업무에서 쓰이는 정보여야 함
  2. 유니크함을 보장할 수 있는 식별자가 있어야 함
  3. 2개 이상의 인스턴스를 가지고 있어야 함
  4. 반드시 속성을 가지고 있어야 함
  5. 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함

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

  • 기본: 독립적, 자식 엔터티 가질 수 있음, 업무에 존재하는 정보
  • 중심: 행위 엔터티 생성, 중심적 역할, 데이터 양 발생
  • 행위: 2개 이상의 엔터티부터 파생, 데이터가 자주 변경됨

유형, 무형에 따른 엔터티 분류

  • 유형
  • 개념
  • 사건

2. 속성 ⊂ 인스턴스

  • 프로세스에 사용되는 데이터로 의미상 더 이상 쪼개지지 않는 레벨
  • 인스턴스에서 관리 됨

3. 엔터티, 인스턴스, 속성, 속성값의 관계

  • 속성값 ⊂ 속성 ⊂ 인스턴스 ⊂ 엔터티
  • 모든 엔터티는 인스턴스를 가지며 인스턴스는 속성으로 자신의 특성을 나타냄
  • 한 개의 엔터티는 두 개 이상의 인스턴스를 갖는다. (까마귀 발 표기법 2개 이상 갈고리 참조)
  • 한 개의 인스턴스는 두 개 이상의 속성을 갖는다.
  • 한 개의 속성은 하나의 속성값을 가진다.

4. 데이터 모델링

데이터 모델링 할 때 지양해야 할 점

  • 중복: 같은 데이터가 '여러 군데 중복'되어 저장되지 않도록 해야 함
  • 비유연성: 데이터의 사용 프로세스와 분리하여 '프로세스가 변화하더라도' 데이터 모델이 수시로 변경될 가능성을 줄임
  • 비일관성: 일관성 유지하도록 '상호 연관 관계'를 명확하게 해야 함 (존재와 행위에 의한 관계를 구분하지 않고 표현

구조 다이어그램 (Structure Diagram) 은 각 요소들의 정적인 면을 보기 위한 다이어그램입니다.
따라서 시스템의 개념, 관계 등의 측면에서 요소들을 나타냅니다.

행위 다이어그램 (Behavior Diagram) 은 요소들의 동적인 면을 보기 위한 다이어그램입니다. 시퀀셜한 표현을 위한 다이어그램이라고 설명하기도 합니다.

5. 관계 차수

필수요소인지 선택사항인지 관계선택사양을 통해 엔터티 선택에 대한 관계를 파악

  • 1:1 관계
  • 1:M 관계
  • N:M 관계

6. ERD(Entity Relationship Diagram)

  1. IE/Crow's Foot 표기법을 가장 많이 사용(까마귀발 표기법)

  2. 이 외에, Peter Chen, IDEFIX, Min-Max/ISO, UML, Case Method/Barker 표기법이 있음

  3. 작성 순서: 엔터티 그리기> 엔터티 적절히 배치> 엔터티 간의 관계 나타내기> 관계명 정의하기> 관계의 참여도 나타내기> 관계의 필수 여부 나타내기

  4. 엔터티 간의 관계
    4-1. 관계명: 관계의 이름
    4-2. 관계차수: 1:1, 1:M, M:N 관계를 나타냄
    4-3. 관계 선택사양: 관계가 필수인지, 선택인지 나타냄

7. 식별자, 비식별자 관계

식별자 관계: 부모 엔터티의 식별자가 자식 엔터티의 '주식별자'가 되며 강한 관계를 가지고 부모 엔터티가 있어야만 생성이 가능 (표현: 실선)

비식별자 관계: 부모 엔터티의 식별자가 자식 엔터티의 '일반 속성'이며 약한 관계를 가지고 부모 엔터티 없는 자식 엔터티를 생성 (표현: 점선)

8. 식별자 관계 분류

8-1. 대표성
주식별자: 유니크하고 대표성을 띰
보조식별자: 자주 사용되고 연결되어 있음

8-2. 스스로 생성 여부
내부 식별자: 스스로 엔터티 생성이 가능 (Primary Key)
외부 식별자: 스스로 엔터티 생성이 불가능하며 타 엔터티로부터 받아오는 매개체 역할 (Foreign Key)

8-3. 속성 개수
속성 구성 개수로 구분
단일식별자
복합식별자

8-4. 주식별자의 속성이 두 개 이상인 경우
원조식별자: 가공되지 않음
대리식별자: 주식별자의 속성이 두 개 이상인 경우 속성을 하나로 묶어서 사용



참조

https://wikidocs.net/170663
https://velog.io/@khyunjiee/UML-Class-Diagram
유선배 SQL 개발자
SQLD 노랭이

profile
Hello World

0개의 댓글