💁♀️ DB Modeling이란,
주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업
👀 DB Modeling 개요
👉 릴레이션

- 속성(attribute) = 필드(field) = 열(column) = 세로
- 튜플(tuple) = 레코드(record) = 행(row) = 가로
👉 무결성
💁♀️ 무결성이란,
데이터 값이 정확한 상태를 의미 (완전성과 정확성)
- 정합성은 데이터가 서로 모순이 없이 일관되게 일치해야 함을 의미하는 반면 무결성은 데이터가 완전하고 정확해야 한다는 의미
👀 ERD
👉 엔터티(Entity)
💁♀️ 엔터티(Entity)란,
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 알아야 하는 유, 무형의 사물(개체)를 의미
[1] 엔터티의 도출 원칙
- 두 개 이상의 인스턴스를 소유
- 데이터의 정체성이 분명해야함
- 데이터 종속성에 의해서 하나의 주제만을 관리하는 정의가 명확한 모델이어야함
- 엔터티의 인스턴스를 식별할 수 있는 식별자(Identifier)가 존재해야함
- 동일한 성격의 데이터는 유일해야함
- 엔터티 명은 관리하고자 하는 데이터의 성격(주제)을 가장 잘 표현하는 이름으로 함
👉 식별자(Identifier)
[1] 주식별자(Primary Identifier)
💁 엔터티에 소속된 인스턴스들을 구별하는 기준 역할을 하는 속성
📍 주식별자의 특징
- 유일성 : 주식별자에 의해 엔티티 내의 모든 인스턴스들이 유일하게 구분되어야함 (중복 X)
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함
- 불변성 : 주식별자가 한번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야함
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재해야함 (NULL값 허용 X)
[2] 외래식별자(Foreign Identifier)
- 관계가 있는 두 엔터티를 부모, 자식 엔터티로 구분한 후 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래식별자로 지정
- 자식 엔터티에 부모 엔터티 주식별자 공통 속성이 없을 경우 자식에게 속성을 추가한 후 외래식별자로 지정
👉 관계(Relationship)
💁♀️ 관계(Relationship)란,
두 개 이상의 엔터티 간에 존재하는 연관성을 나타냄
- 하위(자식) 엔터티의 속성으로 관리될 때만 관계를 표현
- 관계에는 종속관계와 참조관계가 존재
- 종속관계 : 부모 엔터티와 자식 엔터티 간의 관계로 부모 엔터티가 존재해야 자식 엔터티가 존재. 반대로 말하면 부모 엔터티 없이 관계를 삭제하고 자식 엔터티만 존재할 수 없음.
- 참조관계 : 엔터티간에 연관성이 존재하긴 하지만 다른 엔터티가 없다고 존재할 수 없는 관계는 아님. 단순히 참조 데이터를 관리하므로 관계를 삭제해도 한 속성에 대한 연관성만 문제가 되고 하위 엔티티 존재에는 지장 X.
[1] 관계의 구성요소
✅ 카디널리티(Cardinality)
💁 카디널리티를 통해 관계가 있는 두 엔터티는 일대일(1:1), 일대다(1:M), 다대다(M:M) 관계를 나타냄
✅ 옵셔널리티(Optionality)
💁 상위(부모) 엔터티와 하위(자식)엔터티가 서로 연관되는 값이 반드시 존재해야 하는지 존재하지 않아도 되는지를 의미
- Mandatory : 서로 연관되는 값이 반드시 존재 (최소 1개 이상)
- Optional : 서로 연관되는 값이 반드시 존재하지 않아도 됨 (최소 0개 이상)
[2] 특별한 관계의 종류
✅ 일대일 관계(One-to-One Relationship)
상위(부모)엔터티의 하나의 인스턴스가 하위(자식)엔터티의 하나의 인스턴스와 연관되는 관계

✅ 배타 관계(Exclusive Relationship)
두 개 이상의 상위(부모) 엔터티와 관계를 가지며 상호 배타적(하위(자식)엔터티의 하나의 인스턴스가 한번에 하나의 부모 엔터티와 관계를 가지게 됨)일 때의 관계

✅ 재귀 관계(Recursive Relationship)
하나의 엔터티에서 인스턴스가 같은 엔터티의 다른 인스턴스와 관계
(JOIN 해야 할 엔터티가 늘어나는 것을 방지)

👀 물리 모델 TEST
[1] 완성된 논리 모델 준비

[2] 물리 탭에서 테이블 편집 (테이블명, 컬럼명, 자료형, 길이 설정)


[3] 엔터티를 선택한 상태에서 스크립트 작성 클릭

[4] 스크립트 생성 클릭시, 스크립트 자동 생성된 것 확인 가능
