1. 데이터 모델링의 이해

1.1 데이터 모델의 이해

1.1.1 모델링이란?

현실세계를 단순화하여 표현하는 기법
현실 세계에 필요한 데이터베이스를 구축하기 위한 분석 설계의 과정이다.

1.1.2 모델링의 특징

1.추상화
-현실세계를 일정한 형식으로 표현하는 것 즉 아이디어나 개념을 간략하게 표현하는 과정

2.단순화
-복잡한 현실세계를 정해진 표기법으로 단순하고 쉽게 표현한다는것

3.명확화
불분명함을 제거하고 명확하게 해석할 수 있도록 기술하는 것

1.1.3 모델링의 세가지 관점

1.데이터 관점
데이터 위주의 모델링. 어떤 데이터들이 업무와 얽혀있는지 그 데이터간에 어떤 관계가 있는지 대해 모델링하는 방법

2.프로세스관점
프로세스 위주의 모델링 이 업무가 실제로 처리하고 있는 일이 무엇인지 또는 앞으로 처리해야하는 일이 무엇인지

3.데이터와 프로세스의 상관 관점
데이터와 프로세스의 관계를 위주로 한 모델링. 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링 하는 방법

1.1.4 모델리의 세가지 단계

1.개념적 데이터 모델링
전사적 데이터 모델링 수행시 행해진다.
추상화 레벨이 가장 높은 모델링
업무 중심적이고 포괄적인 수준의 모델링

2.논리적 데이터 모델링
재사용성이 높은 모델리응로 데이터 모델에 대한 키 속성 관계등을 모두 표현하는 단계

3.물리적 데이터 모델링
실제 데이터 베이스로 구현할 수 있도록 성능이다 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계

1.1.5 데이터의 독립성

ANSI-SPARC아키텍쳐는 DBMS의 추상적인 설계표준이다.
스키마를 구분하는데 데이터베이스에 대한 사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적 방식을 분리하기 위함이다.
사용자는 뷰만 보고 DBA는 데이터에 영향을 주지않고 구조만 변경할 수 있어야 되서 독립성이 보장된다고 할 수 있다.

1.3단계 스키마 구조
-외부 스키마 : 뷰단계 사용자의 관점 단계로 사용자가 보는 데이터 베이스의 스키마를 정의한다.
-개념 스키마 : 통합된 관점 단계로 모든 사용작 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것 데이터베이스에 저장되는 데이터들을 표현하고 데이터들 간의 관계를 나타낸다.
-내부 스키마 : 물리적인 관점 물리적인 저장구조를 나타낸다. 실질적인 데이터의 저장구조나 컬럼 정의 인덱스 등이 포함된다.

2.3단계 스키마 구조가 보장하는 독립성
어떻게 독립성이 보장되는가?
-논리적 독립성 : 개념스키마가 변경되어도 외부 스키마는 영향받지 않는다.
-물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.

1.1.6 ERD

시스템에 어떤 엔티티들이 존재하며 그들 간에 어떤 관계가 있는지를 나타내는 다이어그램
ERD 표기방식 책 8쪽 보기 그림이 다양함.
ERD 작성순서
1.엔티티를 도출하고 그린다.
2.엔티티를 적절하게 배치한다.
3.엔티티 간의 관계를 설정한다.
4.관계명을 기입한다.
5.관계의 참여도를 기입한다.
6.관계의 필수 선택 여부를 기입한다.

1.2 엔티티

1.2.1 엔티티란?

독립체, 식별이 가능한 객체를 의미한다.
쉽게 업무에 쓰이는 데이터를 용도별로 분류한 그룹
엔티티는 자신을 더 상세하게 나타내기 위해 속성을 갖게 된다. 속성의 개수는 엔티티 마다 상이해서 용도에 따라 매우 많을 수도 적을 수도 있다.

1.2.2 엔티티의 특징

1.업무에서 쓰이느 정보여야한다.
쓰이지 않는 엔티티는 삭제해야한다.

2.유니크함을 보장할 수 있는 식별자가 있어야한다.
각가의 인스턴스가 중복이 되거나 식별이 모호하면 설계를 잘못한 것이다.
식별이 가능하도록 설계해야한다.

3.2개이상의 인스턴스를 가지고 있어야한다.
엔티티가 1개만 존재한다면 엔티티로 볼 수 없다.
굳이 엔티티로 만들 필요도 없다.

4.반드시 속성을 가지고 있어야한다.
자신을 상세하게 나타낼 수 있는 속성이 있어야한다.

5.다른 엔티티와 1개 이상의 관계를 가지고 있어야한다.
각각의 엔티티는 다른 엔티티와의 연관성을 가지고 있어야한다.

1.2.3 엔티티의 분류

1.유형 vs 무형
유형 엔티티 : 물리적인 형태 존재 안정적 지속성 예시) 상품, 회원
개념 엔티티 : 물리적이 형태없음 개념적 예시) 부서 학과
사건 엔티티 : 행위를 함으로써 발생 빈번함 통계 자료로 이용가능 예시) 주문 이벤트 응모

2.발생시점
기본 엔티티 : 독립적으로 생성됨 자식엔티티를 가질 수 있음 예시) 상품 회원
중심 엔티티 : 기본 엔티티로부터 파생 행위 엔티티 생성 예시) 주문
행위 엔티티 : 2개이상의 엔티티로부터 파생 예시) 주문내역 이벤트 응모 이력

1.3 속성

1.3.1 속성이란

사람이나 사물을 정의할 때 여러가지 특징들이 수식어로 붙게된다.
즉 사물이나 개념의 특징을 설명해주룻 있는 항목 들을 속성이라고 부른다.
속성은 의미상 더 이상 쪼개지지 않는 레벨이어야 하고 프로세스에 필요한 항목이어야한다.

만약 엔티티에 들어가는 속성이지만 프로세스에 사용되지 않는다면 삭제하는게 바람직하다.

1.3.2 속성값

각가의 속성은 속성값을 가지고 속성값은 엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터라고 볼 수 있다.
하나의 속성은 한개의 속성값만 가질 수 있다. 만약 하나의 속성이 여러개의 속성값을 갖는다면 별도로 분리하는 것이 바람직하다.

1.3.3 엔티티 인스턴스 속성 속성값의 관계

엔티티 ⊃ 인스턴스 ⊃ 속성의 관계가 성립하는 것을 알 수 있다.
1.한개의 엔티티는 두개 이상의 인스턴스를 가진다
2.한개의 인스턴스는 두개 이상의 속성을 갖는다.
3.한개의 속성은 하나의 속성값을 갖는다.

1.3.4 분류

1.특성에 따른 분류
1.1. 기본속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성들이 속함 엔티티의 가장 많은 부분을 차지 일부 설계 속성과 파생속성을 제외한 모든 속성이 해당된다.

1.2. 설계속성 : 프로세스에 존재하지 않지만 설계과정에서 합리적인 모델링을 위해 만들어진 속성 예를들어 학번 과같은 유니크함을 보장하는 속성을 만들어 기본키로 만드는 것을 말한다.

1.3. 파생속성 : 다른 속성으로부터 파생된 속성을 의미한다. 계산된 값이나 가공된 값이 여기에 포함된다. 예를 들어 상품을 주문하는 순간 주문 내역과 주문 상품 인스턴스가 생성되고 주문 상품 인스턴스에는 주문한 상품의 개수가 포함된다. 개수와 상품의 가격을 합산해서 결제액이라는 속성을 만든다고 했을 때 이런 것이 파생속성이라고 할 수 있다.

2.구성방식에 따른 분류
PK(Primary Key)속성 : 엔티티의 인스턴스들을 식별할 수 있는 속성, 각 인스턴스에 유니크함을 부여한느 속성
FK(Foregin Key)속성 : 다른 엔티티의 속성에서 가져온 속성, 다른 엔티티와 관계를 맺게 해주는 매개체 역할을 하는 속성
일반속성 : PK, FK를 제외한 나머지 속성

1.3.5 도메인

속성이 가질 수 있는 속성값의 범위를 도메인이라고 한다.

1.4 관계

1.4.1 관계란

엔티티와 엔티티와의 관계르르이미 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위관계로 나눌 수 있다.

1.존재관계
-엄마와 아기처럼 존재 자체로 연관이 있는 관계

2.행위관계
-특정한 행위를 함으로써 연관성이 생기는 관계를 의미한다.

표기법은 책 25페이지참조
관계명은 문장으로 나타낸다.
관계차수는 참여하는 수 1대1 1대다 다대다 등등
관계선택 사양은 필수적으로 참여해야하는지 선택적으로 참여하지 않아도되는지

1.5 식별자

1.5.1 식별자란

모든 엔티티는 인스턴스를 가지고 있고 인스턴스는 속성으로 자신의 특성을 나타낸다고 한다. 식별자는 이런 속성 중에 각가의 인스턴스를 구분 가능하게 만들어주는 대표격인 속성을 의미한다.

1.5.2 주식별자

주식별자는 기본키 PK(Primary Key)에 해당하는 속성이다. 하나의 속성이 주 식별자가 될 수도 있고 여러개의 속성이 주식별자가 될 수도 있다.
특징은 다음과 같다.
1.유일성 : 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 해야한다.
2.최소성 : 유일성을 보장하는 최소 개수의 속성이어야한다.
3.불변성 : 속성값이 되도록 변하지 않아야한다.
4.존재성 : 속성값이 NULL일수 없다.

1.5.3 분류

식별자를 분류하는 방식은 다음과 같다.

1.대표성여부 :
주식별자 - 유일성,최소성,불변성,존재성을 가진 대표식별자 다른 엔티티와 참조 관계로 연결
보조식별자 - 인스턴스를 식별할수는 있지만 대표식별자가 아니다. 다른 엔티티와 참조관계로 연결되지 않는다.

2.스스로 생성되었는지 여부
내부식별자 - 엔티티 내부에셔 스스로 생성된 식별자
외부식별자 - 다른 엔티티에서 온 식별자 다른 엔티티와의 연결고리 역할

3.단일속성여부
단일식별자 - 하나의 속성으로 구성된 식별자
복합식별자 - 두 개 이상의 속성으로 구성된 식별자

4.대체 여부
원조식별자 - 업무프로세스에 존재하는 식별자 가공되지 않은 원래의 식별자
대리식별자 - 주 식별자의 속성이 두개 잇아인 경우 그 속성들을 하나로 묶어서 사용하는 식별자

1.5.4 식별자 관계 vs 비식별자 관계

1.식별자 괸계
부모 엔티티의 식별자가 자식 엔티티의 주식별자가 되는 관계이다.
주식별자는 반드시 존재해야하므로 부모 엔티티가 있어양 생성가능하며 단일 식별자인지 복합식별자인지에 따라 1대1 1대다 가 결정된다.

2.비식별자 관계
부모 엔티티의 식별자가 자식 엔티티의 주식별자가 아닌 일반 속서이 되는 관계이다. 일반 속성의 속성값은 NULL이 될 수 있으므로 부모 엔티티가 없는 자식 엔티티의 생서잉 가능하고 마찬가지의 이유로 자식 엔티티가 존재하는 상태에서 부모 엔티티가 삭제될 수도 있다.

'개념정리 > SQLD' 카테고리의 다른 글

SQLD SQL기본 3  (1) 2023.10.26
SQLD SQL기본 2  (0) 2023.10.25
SQLD SQL기본  (0) 2023.10.24
SQLD 데이터 모델링과 SQL  (0) 2023.10.24
자격증 SQLD 공부시작!  (0) 2023.10.23

+ Recent posts