Hyunebee
SQLD - 엔티티, 속성, 관계 본문
엔티티
데이터의 집합, 저장되고 관리되어야 하는 데이터
엔티티의 유형
유형과 무형에 따른 엔티티
-유형 : 업무에서 도출되며 지속적으로 사용되는 엔티티
-개념 : 물리적인 형태가 없다, 개념적으로 사용
-사건 : 비스니스 프로세스를 실행하면서 생성되는 엔티티이다.
발생시점에 따른 엔티티
-기본 : 키엔티티라고도 한다., 다른 엔티티로부터 영향을 발생X 독립적으로 생성
-중심 : 기본으로 부터 발생해서 행위를 생성하는것이다.
-행위 : 2개 이상의 엔티티로부터 발생
식별자
엔티티를 대표할 수 있는 유일성을 만족하는 속성이다.
-주식별자(기본키)
1.최소성
2.대표성
3.유일성
4.불변성
데이터베이스 키
-기본키 : 후보키 중에서 엔티티를 대표할 수 있는키
-후보키 : 유일성과 최소성을 만족하는 키
-슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 못함
-대체키 : 키본키를 선정하고 남은 후보키
-외래키 : 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해서 사용
속성
엔티티가 가지는 항목으로 더이상 분리되지 않는 단위로 인스턴의 구성요소이고 의미적으로 더 이상 분해되지 않는다.
속성의 특징
-속성은 업무에서 관리되는 정보이다.
-단일값만 가진다.
-주식별자에게 함수적으로 종속된다. PK가 변경되면 속성값도 변경된다.(ex ID가 바뀌면 그에따른 회원 정보도 바뀐다.)
속성의 종류
분해 여부에 따른 속성의 종류
-단일 : 하나의 의미로 구성
-복합 : 여러 개의 의미가 있는 것(ex 전화번호 국번 + 번호)
-다중 : 속성에 여러 개의 값을 가질 수 있는 것, 이것은 엔티티로 분해할 수 있다.
특성에 따른 속성의 종류
-기본 : 비즈니스 프로세스에 도출되는 본래의 속성
-설계 : 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여한다.
-파생 : 다른 속성에 의해서 만들어지는 속성이다.(ex 합계)
도메인
속성이 가질 수 있는 값의 범위
관계
엔티티 간의 관련성을 의미하며 존재,행위 관계로 분류한다.
존재 관계 : 엔티티 간의 상태를 의미(존재 여부의 관계)
행위 관계 : 엔티티 간에 어떻 행위가 있는것 (두개의 엔티티가 어떤 행위에 의한 관련성이 있는 것이다.)
관계차수
1:1
관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 하나의 관계만 가지고 있다.
-완전 1:1 : 하나의 엔티티에 가ㅗㄴ계되는 엔티티의 관계가 하나인 경우 반드시 존재해야 한다.
-선택적 1:1 : 하나의 엔티티에 관계되는 엔티티의 관계가 하나이거나 없을 수 도 있다.
1:N
관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 하나의 이상의 관계를 가지고 있다. 그 반대에 참여하는 관계는
하나의 관계를 가진다.
N:M
관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 여러개의 관계를 가지고 있다. 그 반대의 관계 또한 여러개의 관
계를 가진다. 양쪽이 서로 1: N관계라 생각하자!
하나의 주문에는 여러 제품을 포함한다. 그리고 하나의 제품은 여러 주문에 포함된다.
관계 선택사항: 필수관계와 선택관계
필수참여
참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔티티의 참여자와 연결이 되어야 하는 관계이다. 아무것도 표시하지 않는다.
선택참여
ERD에서 관계를 나타내는 선에서 선택 참여하는 엔티티 쪽을 원으로 표시한다. 만약 관계가 표시된 양쪽 엔티티가 모두 선택참여라 면 0:0 관계가 성립됨으로 관계설정을 확인해야 한다.
식별 관계와 비식별 관계
식별 관계
-고객과 계좌 엔티티에서는 고객은 독립적으로 존재할 수 있는 강한 개체이다.
-강한 개체는 독립적으로 존재가능하다.
-강한 개체는 다른 엔티티와 관계를 가질 때 다른 엔티티에게 기본키를 공유한다.
-강한 개체는 식별 관계로 표현된다.
-즉 식별관계란 고객 엔티티의 기본키인 회원 ID를 계좌 엔티티의 기본키의 하나로 공유하는 것이다.
비식별 관계
-비식별 관계는 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것이다.
-비식별 관계는 점선으로 표현한다.
'MySQL' 카테고리의 다른 글
SQLD - DB (0) | 2022.02.12 |
---|---|
SQLD - 정규화, 반정규화 (0) | 2022.02.08 |
SQLD - 스키마 (0) | 2022.02.07 |
SQLD - ERD 단계 (0) | 2022.02.06 |
SQLD - 데이터 모델링 (0) | 2022.02.06 |