SQL 이론 - 1과목 1장 (4)
1. 관계의 개념
- 엔터티의 인스턴스 사이에 연관성
2. 관계의 분류
- 존재에 의한 관계
- 행위에 의한 관계
3. UML(Unified Modeling Language)
- 연관관계 : 항상 이용하는 관계
: 존재적 관계에 해당
: 실선으로 표현
- 의존관계 : 행위에 의해 관계가 형성될 때 구분하여 표현
: 점선으로 표현
* ERD는 존재적 관계 VS 행위에 의한 관계 구분X
UML은 연관관계 VS 의존관계 구분O (점선,실선)
4. 관계의 표기법
- 관계명(Membership) : 관계의 이름
- 관계차수(Cardinality) : 1:1, 1:M, M:N
- 관계선택사양(Optionality) : 필수관계, 선택관계
- 관계명 명명규칙
: 구체적이지 않은 애매한 동사를 피한다
: 현재형으로 표현
- 관계 차수
: 두 개의 엔터티간 관계에서 참여자의 수를 표현
: 한 개가 참여하는 경우는 실선, 다수가 참여한 경우는 까마귀 발과 같은 모양
: 1:1 관계
: 1:M 관계
: M:M 관계
- 관계선택사양
1. 필수관계
: 모든 참여자가 반드시 관계를 가짐
: 예1) 지하철운행과 지하철문의 관계
: 예2) 반드시 지하철 문이 닫혀야 지하철 출발
2. 선택관계
: 예1) 지하철 안내방송시스템
: 예2) 안내방송은 지하철의 출발과 상관없음
: 물리속성에서 Foreign Key (FK)로 연결될 경우 (Null 허용)
* 선택참여는 엔터티 쪽을 원으로 표시, 필수참여는 아무런 표시를 하지 않는다
(참고)
1:M 관계는 1의 엔터티의 속성을 M의 엔터티에 복사한다
예) 학번 : 학생 = 1 : M 이라면 아래와 같이 학번 엔터티의 식별자를 학생 엔터티 식별자에 복사
5. 관계의 정의 및 읽는 방법
- 관계 체크사항
: 엔터티 사이에 연관규칙 존재?
: 엔터티 사이에 정보 조합이 발생?
: 업무기술서, 장표 관계연결에 대한 규칙 서술?
: 업무기술서, 장표 관계연결하는 동사 존재?
- 관계 읽기
: 기준 엔터티를 1개 또는 각으로 읽는다
: 대상 엔터티의 관계참여도를 읽는다
: 관계선택사양과 관계명을 읽는다
** 읽는법 중요 **
- 관계선에 원 있으면 선택참여
- 부서가 여러 사원 소속해도 ok 안해도 ok
- 부서를 기준으로 한 부서에 여러 사원 소속됨
- 반대로 한 사원은 한 부서에 포함됨
- 선택참여라 부모에 값이 있다고 자식까지 값이 있을 필요는 없으나 반대로 자식에 값이 있음
(부모에는 무조건 데이터값이 있어야해)
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=328