모델링
'시스템구현을 포함한' 업무분석 및 형상화를 위함
정혹화, 단순화, 추상화
데이터 모델링의 개념
1. 개념적 모델링 방식
: 추상화 수준 높음, 포괄적
2. 논리적 모델링 방식
3. 물리적 모델링 방식
: 실제 DB에 이식 가능한 수준, 물리적 성격 고려
데이터베이스 스키마 구조
[데이터 독립성요소 (각각의 고유기능O)]
1. 개념스키마
: 통합관점 (모든 사용자) (전체 DB)
2. 외부 스키마
: 사용자 관점 (외부의 사용자)
3. 내부 스키마
: 물리적 관점 (내부의 실질적 데이터) (저장구조, 컬럼정의 등)
"내부" = "물리" / "외부" = "개념"&"논리"
독립성 : 외부의 변수에 영향 받지 X
1. 논리적 독립성 : 개념스키마가 변경되어도 -- 외부 스키마는 영향 받지 X
2. 물리적 독립성 : 내부스키마가 변경되어도 -- 개념스키마와 외부스키마는 영향 받지 X
매핑 Mapping
1. 논리적 사상 : 외부와 개념을 '연결'
2. 물리적 사상 : 내부와 개념을 '연결'
데이터 모델링이 필요한 이유
: DB의 단순 구축 + 업무의 설명 분석
1. 업무내용의 정확한 분석 (정보의 일정한 표기 (!= 별도의 표기))
2. 개발 데이터 관리에 사용 (분석된 모델로 실제 DB 생성)
데이터 모델링 시 유의사항
1. 중복성 Duplication
: 여러 장소에 같은 정보 저장 X
2. 비유연성 Inflexibility
: 데이터의 정의와 데이터 사용프로세스 '분리'하기
(문제에 "변경" 있을 시 비유연성 문제)
3. 비일관성
: 데이터간 상호 연관 관계를 명확히 정의 = 연계성 향상
엔터티
: 2개 이상의 속성과 인스턴스를 가짐 / '정보의 저장과 관리를 위한 집합'
엔터티 배치
가장 중요한 엔터티 -- 왼쪽 상단 배치
-- 왼쪽 상단에서 아래쪽 중앙 배치하여 => 전체 엔터티와 어울릴 수 있도록 함 & 관계선 연결시 용이
엔터티 특징 (조건)
1. 반드시 업무에서 필요하고 관리하고자하는 정보의 집합
2. 유일한 식별자에 의해 식별이 가능해야 함
3. 영속적으로 존재하는 2개 이상의 인스턴스의 집합
4. 업무 프로세스에 의해 이용
5. 2개 이상의 속성을 가짐
6. 다른 엔터티와 최소 1개 이상의 관계를 가짐 (공통코드/통계성 엔터티 제외)
7. 이름에 약어 사용 금지
속성
: 업무에서 관리 가능한 최소한의 의미 단위
1. 기본속성 : 원래 가져야 하는 속성 / 업무로부터 추출한 모든 일반적인 속성 (ex. 이자율)
2. 설계속성 : 업무의 규칙화를 위해 새로 정의 및 변형하는 속성 (ex. 일련번호)
3. 파생속성 : 다른 속성에 영향받아 발생하는 속성
-- 적을수록 좋음, 빠른 조회성능을 위함 (ex. 이자, 합 등 계산된 결과)
- 명칭 = 복합명사 사용 & 구체/명확히 기술 & 전체 데이터에서 유일성 확보 (!= 일관) & 서술식 용어 사용 불가
도메인 Domain
: 속성의 데이터 타입/크기/제약사항 지정 -- 어떤 유형의 값이 들어가는지 정의하는 개념
관계
: 서로에게 연관성이 부여된 상태 (엔터티와 인스턴스의 논리적 연관성)
-- 동사 : 관계 서술
1. 존재적 관계
ex. 소속관계 (부원-사원)
2. 행위에 의한 관계
ex. 배송근거 (주문->배송)
관계 표기법 3가지
1. 관계명
2. 관계 차수 -- 1:1 / 1:N / N:M
3. 선택성 (!= 식별성)
UML Unified Modeling Language 에서의 관계
1. 연관 관계 (실선표기)
: 항상 이용되는 관계 -- ex. 소속
2. 의존 관계 (점선표기)
: 상대 행위에 의해 발생 -- ex.주문
식별자
: 엔터티 내에서 인스턴스 구분 (PK로 사용)
식별자 특징
1. 유일성 : 엔터티 내 모든 인스턴스를 유일하게 구분
2. 최소성 : 최소의 속성으로 구성 (유일성을 만족하는 선에서)
3. 불변성 : 자주 변하지 X (변할 시 이전 기록 말소)
4. 존재성 : 주식별자가 지정되면 반드시 값이 들어와야 함
식별자 종류 8가지
1. 대표성 여부
1-1. 주식별자 : 타 엔터티와 참조관계를 연결함
1-2. 보조식별자 : 연결 안함
2. 스스로 생성 여부
2-1. 내부식별자 : 스스로 생성함
2-2. 외부식별자 : 안함
3. 속성의 수
3-1. 단일식별자 : 속성 1개로 구성
3-2. 복합식별자 : 속성 2개 이상으로 구성
4. 대체
4-1. 본질식별자 : 업무에 의해 생성
4-2. 인조식별자 : 인위적으로 생성
비식별자 관계
: 엔터티의 컬럼 -- 고유하게 식별 X / 중복된 값 포함
ex. 이름, 이메일주소, 등록일자 등
[이해를 위한 예시 : 아이폰]
식별자 = 일련번호 -- 전체 아이폰들 중에서 내 아이폰을 찾아줌
비식별자 = 개통일자 -- 같은 날 개통한 아이폰은 N개임 (유일성을 갖지 않음)
'Study' 카테고리의 다른 글
[SQLD] 서브쿼리 개념 톺아보기 (1) | 2023.11.21 |
---|---|
[SQLD] VIEW는 가상테이블! (0) | 2023.11.21 |
[SQLD] JOIN 종류 : OUTER/INNER/NATURAL/CROSS/SELF (0) | 2023.11.21 |
[Github] 깃허브 입문하기! / git 설치와 초기설정 (0) | 2023.09.22 |
웹에 있는 표 엑셀 파일로 변환하기 [Excel, JSON] (0) | 2023.09.09 |