중간고사 끝냈고 이제 시험 한달밖에 안남았으니까
진도를 좀 빠르게 빼보자
point3. 엔터티 (Entity)
- 엔터티
엔터티는 업무에서 관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야하는 데이터이다.
엔터티는 개념, 사건, 장소 등의 명사이다.
- 엔터티의 도출
엔터티는 고객의 비즈니스 프로세스에서 관리되어야 하는 정보를 추출해야 한다.
ex) db에서 테이블들의 항목같은 느낌
고객 |
회원id |
패스워드 이름 주소 전화번호 |
계좌 |
계좌번호 |
계좌명 예수금 계좌개설 지점 계좌 담당자 |
- 엔터티의 특징
식별자 - 엔터티는 유일한 식별자가 있어야한다. (ex- 회원id, 계좌번호)
인스턴스 집합
- 2개 이상의 인스턴스가 있어야 한다.
- 즉, 고객 정보는 2명 이상 있어야 한다.
속성
- 엔터티는 반드시 속성을 가지고 있다.
- ex) 고객 엔터티에 회원id, 패스워드, 이름, 주소, 전화번호
관계
- 엔터티는 다른 엔터티와 최소 한 개 이상 관계가 있어야 한다.
- ex) 고객은 계좌를 개설한다.
업무
- 엔터티는 업무에서 관리되어야 하는 집합이다.
- ex) 고객, 계좌
- 엔터티의 종류
엔터티의 종류는 유형과 무형에 따른 종류, 엔터티가 발생하는 시점에 따른 종류로 나누어진다.
엔터티를 유형과 무형으로 분류하는 기준은 물리적 형태의 존재 여부이다.
- 유형과 무형에 따른 엔터티 종류
유형 엔터티 - 업무에서 도출되며 지속적으로 사용되는 엔터티 (ex - 고객, 강사, 사원 등)
개념 엔터티
- 유형엔터티는 물리적 형태가 있지만, 개념 엔터티는 물리적 형태가 없다
- 개념적으로 사용되는 엔터티이다.
- ex) 거래소 종목, 코스닥종목, 생명보험 상품 등
사건 엔터티 - 비즈니스 프로세스를 실행하면서 생성되는 엔터티이다. (ex - 주문체결, 취소주문, 수수료청구 등)
- 발생시점에 따른 엔터티 종류
기본엔터티
- 키엔터티 라고도 한다
- 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티이다.
- ex) 고객, 상품, 부서 등
중심 엔터티
- 기본 엔터티와 행위 엔터티 간의 중간에 있는 것이다.
- 즉, 기본 엔터티로부터 발생되고 행위 엔터티르 생성하는 것이다.
- ex) 계좌, 주문, 취소, 체결 등
행위 엔터티 - 2개 이상의 엔터티로부터 발생된다. (ex-주문 이력, 체결 이력 등)
point4. 속성 (Attribute)
- 속성
속성이라는 것은 업무에서 필요한 정보인 엔터티가 가지는 항목이다.
속성은 더이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다.
- 속성의 특징과 종류
- 속성의 특징
속성은 업무에서 관리되는 정보이다.
속성은 하나의 값만 가진다.
주 식별자에게 함수적으로 종속된다. 즉, 기본키가 변경되면 속성의 값도 변경된다는 것
- 속성의 종류
- 분해 여부에 따른 속성의 종류
단일 속성 - 하나의 의미로 구성된 것으로 회원id, 이름 등이다.
복합 속성
- 여러 개의 의미가 있는 것으로 대표적으로 주소가 있다.
- 주소는 시, 군, 동 등으로 분해될 수 있다.
다중값 속성
- 속성에 여러 개의 값을 가질 수 있는 것으로 예를 들어 상품 리스트가 있다.
- 다중값 속성은 엔터티로 분해된다.
- 특성에 따른 속성의 종류
기본속성
- 비즈니스 프로세스에서 도출되는 본래의 속성이다.
- ex) 회원id, 이름, 계좌번호, 주문 일자 등
설계 속성
- 데이터 모델링 과정에서 발생되는 속성이다.
- 유일한 값을 부여한다.
- ex) 상품코드, 지점코드 등
파생 속성
- 다른 속성에 의해서 만들어지는 속성이다.
- ex) 합계, 평균 등
도메인(domain) - 속성이 가질 수 있는 값의 범위
ex) 성별이라는 속성의 도메인은 남자와 여자이다.
point5. 관계 (Relationship)
- 관계
관계는 엔터티 간의 관련성을 의미하며 존재 관계와 행위 관계로 분류된다.
존재 관계는 두 개의 엔터티가 존재 여부의 관계가 있는 것이고, 행위 관계는 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것이다.
- 관계의 종류
- 존재 관계
- 존재 관계는 엔터티 간의 상태를 의미한다.
- ex) 고객이 은행에 회원가입 -> 관리점 코드 할당, 할당된 관리점에서 해당 고객 관리
- 행위 관계
- 행위 관계는 엔터티 간에 어떤 행위가 있는것으로, 계좌를 사용해서 주문을 발주하는 관계가 만들어진다.
- ex) 증권회사 계좌 개설 -> 주문 발주 (주문 - 주문일자, 주문번호, 수량, 금액 등)
- 존재 관계
- 관계 차수
관계 차수는 두 개의 엔터티 간에 관계에 참여하는 수를 의미한다.
예를 들어 한명의 고객은 여러개의 계좌를 개설할 수 있다. 이런 경우는 1대N 관계가 된다.
- 관계차수의 종류
1대1 관계
- 1대1 관계는 '완전 1대1 관계'와 '선택적 1대1 관계'가 있다.
- ex) 고객 - 고객등급
완전 1대1 관계 - 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우, 반드시 존재한다.
선택적 1대1 관계 - 하나의 엔터티에 관계되는 엔터티의 고나계가 하나이거나 없을 수도 있다.
1대N 관계
- 1대N 관계는 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러개 있는 관계이다.
M대N 관계
- M대N 관계는 두개 에넡티가 서로 여러개의 관계를 가지고 있는 것이다.
- ex) 학생 1명은 여러 개의 강의를 수강 가능 <-> 한 과목으 ㄴ여러 학생이 들을 수 있음
- 관계형 데이터베이스에서 M대N 관계의 조인(Join)은 카테시안 곱이 발생한다. 그래서 M대N 관계를 1대N, N대1 로 해소해야 한다.
필수적 관계와 선택적 관계
필수적 관계는 반드시 하나는 존재해야 하는 관계이고 선택적 관계는 없을 수도 있는 관계이다.
필수적 관계는 "|" 로 표현되고 선택적 관계는 "O" 로 표현된다.
- 식별 관계와 비식별 관계
- 식별관계
- 고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체 이다.
- 강한 개체는 어떤 다른 엔티티에게 의존하지 않고 독립적으로 존재한다.
- 강한 개체는 다른 엔터티와 관계를 가질 때 달느 엔터티에게 기본키를 공유한다.
- 강한 개체는 식별 관계로 표현된다.
- ex) 고객 엔터티의 기본키인 회원id -> 계좌 엔터티의 기본키의 하나로 공유하는 것
- 강한 개체의 기본키 값이 변경되면 식별관계에 있는 엔터티의 값도 변경되니다.
- 식별관계는 실선으로 표시한다
- 비식별 관계
- 비식별 관계는 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것이다.
- 비식별 관계는 점선으로 표시한다
point6. 엔터티 식별자
- 주 식별자 (기본키, Primary Key)
- 최소성 : 주식별자는 최소성을 만족하는 키이다.
- 대표성 : 주식별자는 엔터티를 대표할 수 있어야 한다.
- 유일성 : 주식별자는 엔터티의 인스턴스를 유일하게 식별한다.
- 불변성 : 주식별자는 자주 변경되지 않아야 한다.
키의 종류
- 기본 키 : 후보키 중에서 엔터티를 대표할 수 있는 키이다.
- 후보 키 : 후보키는 유일성과 최소성을 만족하는 키이다.
- 슈퍼 키 : 슈퍼키는 유일성은 만족하지만 최소성을 만족하지 않는 키이다.
- 대체 키 : 대체키는 여러 개의 후보키 중에서 기본키를 선정하고 남은 키이다.
- 외래 키 : 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해서 사용되는 키 이다. 즉, 허용된 데이터 값만 데이터베이스를 지정하기 위해서 사용된다.
- 식별자의 종류
- 식별자의 대표성
주 식별자
- 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자이다.
- 다른 엔터티와 참조 관계로 연결될 수 있다.
보조 식별자
- 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자이다.
- 생성 여부
내부 식별자
- 내부 식별자는 엔터티 내부에서 스스로 생성되는 식별자이다.
- ex) 부서코드, 주문번호, 종목 코드 등
외부 식별자
- 다른 엔터티와의 관계로 인하여 만들어지는 식별자이다.
- ex) 계좌 엔터티에 회원id
- 속성의 수
단일 식별자
- 하나의 속성으로 구성된다 (ex - 고객 엔터티에 회원 id)
복합 식별자
- 두개 이상의 속성으로 구성된다.
- 대체 여부
본질 식별자
- 비즈니스 프로세스에서 만들어지는 식별자이다.
인조 식별자
- 인위적으로 만들어지는 식별자이다
- 인조 식별자는 후보 식별자 중에서 주 식별자로 선정할 것이 없거나, 주 식별자가 너무 많은 칼럼으로 되어 있는 경우에 사용한다.
- 즉 순서번호를 사용해서 식별자를 만드는 것
오늘은 여기까지 하고 내일은 확인문제 한번 풀어보면서 한번 쭉 복습해보고
다음 스텝으로 넘어가보자
'파이썬 > SQLD' 카테고리의 다른 글
[SQLD] 시험준비 1주 4일차 - 함수적 종속성(Functional Dependency) (0) | 2022.04.30 |
---|---|
[SQLD] 시험준비 1주 3일차 - 데이터 모델링 문제 풀기 + Section2.데이터모델과 성능 (0) | 2022.04.29 |
[SQLD] 시험준비 1주 1일차 - Oracle SQL Developer 다운, 데이터 모델링의 이해 (0) | 2022.04.09 |
[SQLD] 시험준비 0일차2 - DB유틸리티 다운로드 (0) | 2022.04.06 |
[SQLD] 시험준비 0일차 - 오라클XE 설치 (0) | 2022.04.04 |