본문 바로가기
자격증/SQLD

SQLD 요약 - (1) 데이터 모델링의 이해

by 땅콩둘기 2021. 5. 24.
반응형

모델링 특징

추상화  현실세계, 다양한 현상 일정한 양식인 표기법에 의해 표현
단순화  복잡한 현실세계를 약속된 규약 의해 제한된 표기법이나 언어로 표현
명확화  누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거

모델링의 세 가지 관점

✔ 데이터 관점: 업무가 어떤 데이터와 관련이 있는지, 데이터간 관계 무엇인지 (What, Data)

✔ 프로세스 관점: 업무가 실제하고 있는 일 무엇인지, 무엇을 해야하는지 (How, Process)

✔ 상관 관점 : 업무 처리하는 방법에 따라 데이터 어떻게 영향 받고 있는지 (Interaction)

데이터 모델링 정의

정보시스템 구축 위한 데이터 관점의 업무 분석기법으로 현실세계 데이터에 대해 약속된 표기법에 의 해 표현하는 과정이고 데이터베이스 구축하기 위한 분석, 설계과정이다.

데이터모델링 기능 

명세화, 구조화, 문서화, 다양한 관점, 상세수준 표현

데이터 모델링의 유의점 

중복 , 비유연성, 비일관성

데이터 모델링 중요성

⭐ 파급효과가 크다(Leverage)

⭐ 복잡한 정보 요구사항의 간결한 표현(Conciseness)

⭐ 데이터 품질을 유지 (Data Quality)

데이터 모델링의 3단계 진행

(추상적)개념적 -> 논리적 -> 물리적(구체적)

1️⃣ 개념적 데이터 모델링(in 계획분석단계) : 추상화, 업무중심적, 포괄적, 전사적, EA수립시 사용

2️⃣ 논리적 데이터 모델링(in 분석단계) : KEY, 속성, 관계 표현. 재사용성 높음 (정규화)

3️⃣ 물리적 데이터 모델링(in 설계단계) : 실제 데이터베이스 이식할 수 있도록 성능,저장 등 물리적 성격 고려

데이터 모델링 세가지 요소 

💡 어떤 것(Thing) - 엔티티(Entity) , 속성(Attribute), 관계(Relationships)

좋은 데이터 모델의 요소 

완정성, 중복배제, 업무규칙, 데이터 재사용, 의사소통, 통합성

데이터 모델에 표시할 요소

✔ 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현

✔ 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본도구

✔ 제약조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

데이터 독립성 요소

🔥 외부 스키마 : 개개 사용자가 보는 개인적 DB 스키마

🔥 개념 스키마 : 모든 사용자 관점을 통합한 전체 DB

🔥 내부 스키마 : 물리적 장치에서 데이터가 실제적 저장

데이터 독립성 필요 이유

유지보수 비용증가, 데이터 중복성, 복잡성 증가, 요구사항 대응 저하

ANSI / SPARC 3단계 구조

✔ 논리적 독립성(외부단계-개념적단계) : 개념적스키마 변경, 외부스키마 영향 없음. 논리적 구조 변 경되어도 응용프로그램 영향 없음

✔ 물리적 독립성(개념적단계-내부적단계) : 내부스키마 변경, 외부/개념스키마 영향 없음. 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향없음


개체(Entity)의 개념 

💡 데이터베이스에 표현하기 위한 어떤 것(Thing)

개체(Entity)의 특징

업무에서 필요한 정보, 식별이 가능해야 함, 인스턴스의 집합(두개이상), 속성을 포함하고 관계가 존재

개체(Entity)의 분류

💥 유무형

     -유형 : 물리적인 형태, 안정적 (사원, 물품, 강사)

     -개념 : 물리적 형태 존재하지 않고 관리해야 할 개념적 정보 (조직, 보험상품)

     -사건 : 업무 수행함에 따라 발생됨 (주문, 청구, 미납)

💥 발생시점 (기본->중심-> 행위)

    -기본 : 원래 존재하는 정보. 독립적으로 생성 가능. (사원, 부서, 고객)

    -중심 : 기본엔터티로부터 발생되고 업무에 있어서 중심적인 역할 ( 계약, 접수)

    -행위 : 두 개 이상의 부모엔터티로부터 발생되고 자주 내용 바뀌거나 데이터 양 증가(주문내역, 계약진행)

속성(Attribute)의 개념

💡 데이터의 가장 작은 논리적 단위, 개체를 구성하는 항목, 파일 구조상의 데이터 항목

속성(Attribute)의 분류

✔ 기본속성(업무로부터 추출한 모든 속성_원래속성)

✔ 설계 속성 (코드성 속성, 1:1치환), 파생 속성(계산된 값)

인스턴스 - 속성 - 엔터티 의 관계

인스턴스 2개 이상 엔터티, 2개 이상 속성을 엔터티는 가짐, 1:1 (속성 : 속성값)

도메인(Domain)의 정의

각 속성이 가질 수 있는 값의 범위

관계(Relationships)의 개념

💡 개체간의 관계 또는 속성간의 관계

엔티티의 인스턴스사이의 논리적인 연관성 존재(페어링) -> 페어링의 집합이 관계(Relation)

관계(Relationships) 표기법

관계명(Membership), 관계차수(Cardinality), 관계선택사양(Optionality_필수관계, 선택관계 )

관계(Relationships) 체크사항

연관규칙 존재, 엔터티 사이 정보 조합이 발생, 관계연결에 대한 규칙 서술, 관계연결 가능하게 하는 동사


식별자 정의

엔터티 내에서 인스턴스를 구분하는 구분자

식별자 분류

➡ 대표성 여부(주식별자/보조식별자)

➡ 스스로 생성 여부(내부식별자/외부식별자)

➡ 속성의 수 (단일식별자/복합식별자)

➡ 대체 여부(본질식별자/인조식별자)

식별자의 특징

유일성, 희소성, 불변성, 존재성

비식별자 정의

부모 속성을 자식의 일반 속성으로 사용

식별자/ 비식별자 관계 (상속여부가 Key Point)

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

✔ 비식별자 관계 : 부모로부터 속성 받았지만 일반속성으로 사용 (약한 연결관계, 점선 표현)

비식별자 관계 설정 고려사항 

관계분석(부모 없는 자식이 생성될 수 있는 경우) -> 관계의 강/약 분석(약) -> 자식테이블 독립PK필요(필요) -> SQL 복잡도 증가 (비식별자) 식별자 관계설정 고려사항 : 강한관계, 주식별자 PK사용

반응형

댓글