본문 바로가기
SQLD/1과목

1과목 개념 (속성 ~ 식별자)

by JHyun0302 2023. 8. 2.
728x90

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

 - 한 개의 속성은 1개의 속성값을 가짐

 

 

1. 구성 방식의 분류: PK, FK, 일반 속성

 

 

2. 속성의 분류: 기본, 설계, 파생 속성

 - 기본: 업무로부터 추출한 모든 일반적인 속성  

 - 설계: 업무를 규칙화하기 위해 새로 만들거나 변형, 정의하는 속성                                                                          ex) 일련번호

 - 파생: 다른 속성에 영향을 받아 발생하는 속성, 빠른 성능을 낼 수 있도록 원래 속성의 값을 계산, 적을수록 좋음        ex) 합

 

 

도메인:  속성에 대한 데이터 타입, 크기, 제약사항 지정

 

 

속성의 명명

1. 해당업무에서 사용하는 이름 부여

2. 서술식 속성명은 사용 금지

3. 약어 사용 금지

4. 구체적으로 명명하여 데이터 모델에서 유일성 확보

 


 

관계:엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태, 관계 페이링의 집합

ex) 강사 --- 가르친다(관계) --- 수강생

 

  • 존재적 관계.   ex) 부서 ---   (소속)   --- 사원
  • 행위적 관계.   ex) 주문 ---(배송근거)--- 배송

 

 

페어링: 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것

 

 

 

UML(통합모델링언어)에서의 관계                 <------->          ERD에서는 관계 & 행위에 의한 관계 구분하는 표기법 존재하지 않음!!

  • 연관관계(실선): 항상 이용하는 관계                          ex) 소속된다.
  • 의존관계(점선): 상대 행위에 의해 발생하는 관계        ex) 주문한다.

 

※ 관계 표기법

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

관계 체크사항

1. 2개의 엔티티 사이에 관심있는 연관 규칙이 있는가?

2. 2개의 엔티티 사이에 정보의 조합이 발생하는가?

3. 업무기술서, 장표에 관계 연결에 대한 규칙 서술했는가?

4. 업무기술서, 장표에 관계 연결을 가능케 하는 동사가 있는가?

 


 식별자: 엔티티 내에서 인스턴스를 구분하는 구분자.

 

식별자의 특징

1. 유일성: 주식별자에 의해 모든 인스턴스들이 유일하게 구분

2. 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함

3. 불변성: 지정된 주식별자의 값은 자주 변하지 않아야 함. 변하면 이전 기록 말소됨

4. 존재성: 주식별자가 지정되면 반드시 값이 들어와야 함

 

 

식별자 분류

 

1. 대표성 여부: 주식별자, 보조식별자

 - : 엔티티 내에서 각 어커런스를 구분 할 수 있는 구분자, 타 엔티티와 참조관계를 연결 가능

 - 보조: 구분자이나 대표성 없음, 참조관계 연결 안됨

 

2. 스스로 생성 여부: 내부식별자, 외부식별자

 - 내부: 스스로 생성되는 식별자

 - 외부: 타 엔티티로부터 받아오는 식별자

 

3. 속성의 수: 단일 식별자, 복합 식별자

 - 단일: 하나의 속성으로 구성

 - 복합: 2개 이상의 속성으로 구성

 

4. 대체 여부: 본질식별자, 인조식별자.

 - 본질: 업무에 의해 만들어지는 식별자

 - 인조: 인위적으로 만든 식별자

 

 

※ 주식별자 도출기준

  1. 해당 업무에서 자주 이용되는 속성임
  2. 명칭, 내역 등과 같이 이름으로 기술되는 것들은 불가능
  3. 복합으로 주식별자로 구성할 경우 너무 많은 속성 지양
    -> 너무 많으면 인조식별자 생성할 것!

 

 

식별자 관계

주식별자: 부모로부터 받은 식별자를 자식 엔티티의 주식별자로 이용하는 경우 (강한 연결 관계 표현, 실선 표기)

               - 식별자 관계로만 설정 시 주식별자 증가로 오류 발생!

 

 

비식별자: 부모 속성을 자식의 일봔 속성으로 사용(약한 연결 관계 표현, 점선 표기)

               - 비식별자 관계로만 설정 시 부모 엔티티와 조인하여 성능 저하!

  1. 부모 없는 자식이 생성 될 수 있는 경우
  2. 부모와 자식의 생명주기가 다른 경우
  3. 여러 개의 개별관계가 통합된 경우
  4. 자식엔티티에 별도의 주식별자를 생성하는 것이 더 유리한 경우
  5. SQL 문장이 길어져 복잡성 증가되는 것을 방지

 

 

 

 

반응형