728x90
Contents
모델링의 이해
- 모델링의 정의
- 웹스터 사전 : 가설적, 일정 양식에 맞춘 표현
- 복잡한 현실세계를 단순화해서 표현
- 현상세계를 추상화한 반영
- 사물 또는 사건에 대한 양상(aspect)나 관점(perspective)를 연관된 사람이나 그룹을 위해 명확하게 하는 거
- 모델링의 특징
- 추상화 : 현실세계를 일정 형식에 맞춰 표현
- 단순화 : 복잡한 현실세계를 제한된 표기법이나 언어로 표현
- 명확화 : 누구나 이해하기 쉽게 현상 기술
- 모델리의 3가지 관점
- 데이터 관점 : 업무가 어떤 데이터와 연관이 있는지, 데이터 간 관계가 무엇인지에 대해 모델링(what, data)
- 프로세스 관점 : 실제하고 있는 업무는 무엇인지, 무엇을 해야하는지 모덜렝(how, process)
- 데이터와 프로세스의 상관 관점 : 업무가 처리하는 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링(interaction)
데이터 모델의 기본 개념 이해
- 데이터 모델링의 정의
- 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법
- 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙(business rule)에 대하여 참(true) 혹은 거짓(false)를 판별할 수 있는 사실을 데이터에 접근하는 방법(how), 사람(who), 전산화와 별개의 관점에서 이를 명확하게 표현하는 추상화 기법
- 실무적으론... 업무에 필요로 하는 데이터를 방법론에 따라 분석하고 설계하여 정보시스템 구축하는 과정
- 데이터 모델링이란...
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터 베이스를 구축하기 위한 분석,설계의 과정
- 데이터 모델 제공 기능
- 시스템을 현재 또는 원하는 모습으로 가시화
- 시스템의 구조, 행동 명세화
- 시스템 구축하는 구조화된 틀 제공
- 시스템 구축 과정에서 결정한 것을 문서화
- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 관점
- 특정 목표에 따라 구체화한 상세 수준의 표현 방법
데이터 모델의 중요성과 유의점
- 데이터 모델의 중요성
- 파급 효과 : 데이터 모델 변경하면 다른 것도 전부 영향 받음
- 복잡한 정보 요구사항의 간결한 표현 : 요구사항을 이해하고 이를 운용할 수 있는 앱을 개발하고 데이터 정합성을 유지
- 데이터 품질 : 데이터 정확성 보장
- 중복 : 동일 데이터가 저장되지 않게...
- 비유연성 : 데이터 혹은 프로세스의 작은 변화가 DB에 영향을 주지 않도록 한다.
- 비일관성 : 상호 연관관계에 따른 명확한 정의는 비일관성 위협을 감소.
데이터 모델의의 3단계 진행
- 데이터 모델링의 3단계 진행(아래로 갈 수록 추상적 → 구체적)
- 개념적 데이터 모델링 : 추상화 수준 높고, 업무 중심-포괄적인 모델링 진행
- 사용자 요구사항 분석에 따라 '엔터티-관계 다이어그램' 생성 & 전 조직에 이뤄질 경우 전사적 데이터 모델(Enterpricse Data Model).
- 사용자와 개발자가 데이터 요구사항 발견하는 것을 지원
- 추상적이므로 구조화를 쉽게 한다.
- 현 시스템이 어떻게 변형되어야 하는 가를 이해
- 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등 표현
- 어떻게 데이터에 엑세스하고, 누가 데이터에 엑세스하는지 등을 모델링
- 시스템 전 과정을 지원하는 과정의 도구
- 정규화를 통해 일관성을 확보하고, 중복을 제거하여 속성들이 적절한 엔터티에 배치하도록 한다.
- 물리적 데이터 모델링 : 실제로 DB에 이식할 수 있도록 성능, 저장 등 고려하여 설계
- 논리 데이터 모델이 어떻게 하드웨어에 표현될 것인가를 다룬다.
- 물리적 스키마, 저장장소, 저장장치, 접근 방법 등에 대한 정의
- 개념적 데이터 모델링 : 추상화 수준 높고, 업무 중심-포괄적인 모델링 진행
프로젝트 생명 주기에서 데이터 모델링
- 프로젝트 생명주기에서 데이터 모델링
- 폭포수 기반 모델링에서는 데이터 모델링의 위치가 분석과 설계 단계로 분리되어 정의된다.
데이터 모델링에서 데이터 독립성의 이해
- 데이터 독립성의 필요성
- 데이터의 독립성 확보 시 이점
- 각 뷰(view)의 독립성 유지, 계층별 뷰에 영향을 주지 않고 변경
- 단계 별 스키마에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공
- 데이터베이스 3단계 구조
- ANSI/SPARC의 3단계 구성의 데이터 독립성 모델 : 외부(사용자의 관점) - 개념(공통 사항을 처리하는 통합된 뷰를 스키마 정의) - 내부적 단계(물리적으로 저장된 방법에 대한 스키마 구조)
- 독립성 요소 상세
- 2개 영역의 데이터 독립성
- 사상(Mapping) : 상호 독립된 개념을 연결시켜주는 다리
데이터 모델리의 3가지 요소
- 업무가 관여하는 어떤 것(Things) → 엔터티
- 어떤 것이 가지는 성격(Attributes) → 속성
- 업무가 관여하는 어떤 것 간의 관계(Relationships) → 관계
- 단수와 집합의 명명 차이 → 헷갈리면 아래 링크 참조
데이터 모델리의 이해관계자
- DBA가 단독으로 데이터 모델링을 하지는 않음
- 업무 시스템을 개발하는 응용 시스템 개발자가 업무에 대해 더 이해하기 때문에 데이터 모델링까지 하는 경우가 많음
데이터 모델리의 표기법 ERD 이해
- ERD(Entity Relationship Diagram)은 업무 분석에서 도출된 엔터니와 엔터티 간의 관계를 도식화된 다이어그램으로 표현
- 엔터티 배치는 가장 중요한 엔터티를 왼쪽 상단에 배치하고, 그것을 중심으로 다른 엔터티를 나열하면서 전개한다.
- 엔터티 배차 이후 관계 있는 엔터티 간의 관계를 설정 → 초기에는 Primary Key로 속성이 상속되는 식별자 관계 설정, Circle 관계도 발생하지 않도록 유의
- 관계 설정이 완료되면 연결 관계에 관계 이름을 부여 (지나치게 포괄적인 의미는 사용주의)
- ERD 관계 차수와 선택성 표시
- 엔터티 내의 인스턴스들이 얼마나 관계에 참여하는지를 나타내는 관계차수(Cardinality)를 표현
- IE 표기는 하나(1)의 관계는 실설, 바커는 점선과 실선을 혼합하여 표기
- 다수 참여(Many)의 관계는 까마귀발과 같은 모양
- 필수-선택 표시는 관계선에 원 표현하여 ERD
좋은 데이터 모델의 요소
- 완전성 : 모든 데이터가 데이터 모델에 정의(Completeness)
- 중복 배제 : 동일 사실은 한번만 기록
- 업무 규칙 : Business Rules를 데이터 모델에 표현하고, 사용자에게 제공
- 데이터 재사용 : 재사용성을 증가시키려면 통합성과 독립성에 대해 고려
- 외부의 변화에 대해 데이터 구조적으로 영향을 덜 받기 위해 확장성, 유연성에 힘을 기울임
- '행위의 주체'가 되는 집합의 통합, '행위의 대상'이 되는 집합의 통합, '행위 자체'에 대한 통합 필요
- 의사소통 : 설계자가 정의한 많은 업무 규칙들을 동일한 의미로 받아들이고 활용하게끔 하는 역할
- 통합성 : 바람직한 데이터 구조는, 조직 전체에서 1번만 정의되고, 다른 영역에서 참조-활용(integration) 되는 것
엔터티의 개념
- 엔터티 정의 모음
- 변별할 수 있는 사물
- 데이터베이스 내에서 변별 가능한 객체
- 정보를 저장할 수 있는 어떤 것
- 정보가 저장될 수 있는 사람, 장소, 물건, 사건 개념 등
- 1번 문항의 공통점
- 엔터티는 사람, 장소, 물건, 사건, 개념등의 명사
- 엔터티는 업무상 관리가 필요한 관심사
- 엔터티는 저장이 되기 위한 어떤 것(Thing)
- 요약하면...
- 엔터티란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
- 인스턴스의 집합
엔터티와 인스턴스 내용, 표기법
- 정의 예시
엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보
- 유니크한 식별자에 의해 식별 가능
- 영속적으로 존재하는 인스턴스의 집합
- 엔터티는 업무 프로세스에 의해 이용
- 엔터티는 반드시 속성 포함
- 엔터티는 타 엔터티와 최소 1개 이상 관계 존재
엔터티의 분류
- 유무형에 따른 분류
- 유형 엔터티(Tangible Entity) : 물리적인 형태 ,안정적, 지속적 활용 → 사원, 물품, 강사 같은 것
- 개념 엔터티(Conceptual Entity) : 물리형태 미존재, 개념적 정보 → 조직, 보험상품
- 사건 엔터티(Event Entity) : 업무 수행 시 발생하는 엔터티 → 주문, 청구, 미납
- 발생시점에 따른 분류
- 기본 엔터티(Fundamental Entity) : 그 업무에 원래 존재하는 정보, 독립 생성 가능, 부모 역할 → 사원, 부서, 고객 등
- 중심 엔터티(Main Entity) : 기본 엔터티로부터 발생, 업무에서 중심 역할, 행위 엔터티 생성 → 계약, 사고, 예금원장, 청구, 주문 등
- 행위 엔터티(Active Entity) : 2개 이상의 부모 엔터티로부터 발생, 내용 변경, 데이터 증가 → 주문 목록, 사원 변경 이력 등
엔터티의 명명
- 현업 사용 용어부터 시작
- 가능하면 약어 자제
- 단수 명사
- 모든 엔터티에서 유일한 이름 부여
- 생성 의미대로 이름 부여
속성의 개념
- 사물의 성질, 본질적인 성질 등으로 정의
- 업무에서 필요로 하는 정의
- 의미 상 더 이상 분리되지 않는 정의
- 엔터티를 설명하고 인스턴스를 구성하는 요소
엔터티, 인스턴스, 속성, 속성값에 대한 내용과 표기법
- 엔터티 내에 하나의 인스턴스는 각각의 속성에 대해 한개의 속성값 만을 가질 수 있음
- 하나의 엔터티는 2개 이상의 인스턴스 집합
- 하나의 엔터티는 2개 이상의 속성
- 하나의 속성은 하나의 속성값
속성의 표기법
- 아래와 같이 엔터티 내에 이름 포함 표현
속성의 분류
- 기본 속성(Basic Attribute) → 코드성 데이터, 엔터티 분류위한 일련번호, 다른 속성을 계산,영향을 받아 생성된 속성을 제외한 모든 속성은 기본 속성
- 설계 속성(Designed Attribute) → 데이터 모델링을 위해 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
- 파생 속성(Derived Attribute) → 다른 속성에 영향을 받아 생성되는 속성으로 보통 계산된 값
엔터티 구성 방식에 따른 분류
- 엔터티를 식별할 수 있는 속성을 PK(Primary Key) 속성, 다른 엔터티와의 관계에서 포함된 속성을 FK(Foreign Key) 속성, 엔터티에 포함되어 있고, PF,FK에 미포함 속성을 일반 속성이라 함. 이 외 단수형, 복합형으로 도 분류할 수 있음.
도메인
- 속성은 가질 수 있는 값의 범위가 있는데 그 속성의 도메인(Domain)이라 함. 예를 들어 학점이라는 속성의 도메인은 0.0 ~ 4.0 사이의 값으로 정의하는 것과 유사.
속성의 명명
- 용어사전이라는 업무 사전을 프로젝트에 사용
- 아랭와 같이 명명하여 데이터 타입의 일관성 확보
관계(Relation)
- 정의 : 상호 연관성이 있는 상태
- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태나 행위로서 서로에게 연관성이 부여된 상태
- 관계의 페어링(paring)
- 엔터티 안의 인스터스는 개별적으로 관계를 가지고(pairing)이고, 이것의 집합을 관계로 표현
- 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 페어링(Relation Pairing)으로 표현
관계(Relation)의 분류
- 관계는 '존재에 의한 관계'와 '행위에 의한 관계'로 분류할 수 있음.
관계의 표기법
- 관계명(Membership) : 관계의 이름으로 관계에 참여하는 형태 지칭
- 관계차수(Cardinality) : 1:1, 1:M, M:N (수학적인 의미론 집합의 크기를 의미)
- 관계선택사양(Optionality) : 필수관계, 선택관계 → 예를 들어 지하철 출발과 지하철문 닫힘은 필수적으로 연결관계가 있는 것과 같이, 데이터 모델의 관계에서는 필수 참여 관계(Mandotory)가 됨. 반면 지하철 방송은 지하철 출발과 필수 참여 관계가 아닌 선택적 관계(Optional)이 됨
- 만약 관계가 표시된 양쪽 엔터티에 모두 선택 참여가 표시된다면, 즉 0:0의 관계가 된다면 잘못되었을 확률이 높음
관계의 정의 및 읽는 방법
- 관계 체크 사항
- 엔터티 사이에 관심있는 연관 규칙 존재
- """"... 정보의 조합 발생
- 업무기술서, 장표 관계 연결 규칙 서술
- 업무기술서, 장표 관계 연결 가능하게 하는 동사 존재
- 관계 읽기
- 기준 엔터티를 하나 또는 각(Each)로 읽고, 대상 엔터티의 개수를 읽고 관계선택사양과 관계명 읽기
식별자(Identifier)
- 식별자는 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자
- 엔터티를 대표할 수 있는 속성
- 하나의 엔터티에는 유일한 식별자가 존재하여야 함
식별자 특징
- 주 식별자에 의해 엔터티 내의 모든 인스턴스가 구분 가능
- 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
- 지정 주 식별자 값은 자주 변하지 않아야 함
- 주 식별자 지정 시 반드시 값이 들어와야 함
- 대체 식별자 → 주 식별자의 특징과 유사하지만, 참조무결성 제약조건(Referntial Integrity) 특징
식별자 분류
- 주식별자(Primary Identifier)와 보조 식별자(Alternate Identifier)로 구분
- 엔터티 내 스스로 생성 유무에 따라, 내부 식별자와 외부 식별자로 구분
- 단일 속성으로 식별 유무에 따라 단일 식별자, 복합 식별자로 구분 가능
주 식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주 식별자로 지정
- 명칭, 내용 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자 미지정
- 복합으로 주식별자 구성될 경우 너무 많은 속성이 포함되지 않도록 한다
식별자관계와 비식별자관계의 결정
- 외부식별자는 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 의미.
- FK 의 역할을 수행
- 식별자관계 : 부모로부터 받은 식별자를 자식엔터티의 주식별자로 사용하는 경우, Null 값이 오면 안되므로 반드시 부모 엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우
- 비식별자 관계 : 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용되지 않고, 일반적인 속성으로만 사용되는 경우
- 식별자 관계로만 데이터 모델을 개발할 경우 문제점 → 주식별자 속성이 지속적으로 증가할 수 밖에 없다. → 연결되는 만큼 PK 가 늘어난다
- 비식별자 관계로만 데이터 모델 개발 시 문제점 → 연결되지 않은 비식별자 관계로 인해 SQL 구문이 길어짐
- 식별자 관계와 비식별자 관계 모델링 파악 기준
REF
- 데이터베이스의 구성 요소
- 엔터티의 개념
728x90
'DATA' 카테고리의 다른 글
SQLD 2과목 2장 정리 (0) | 2021.07.14 |
---|---|
SQLD 2과목 1장(SQL 기본) 정리 (2) | 2021.06.12 |
SQLD 1과목 2장(데이터 모델과 SQL) 정리 (0) | 2021.05.24 |
3년간 진행했던 데이터 분석 프로젝트 회고 (0) | 2021.05.22 |
카카오톡 대화내용 엑셀 파워쿼리로 정리하기 (0) | 2021.03.06 |
Pandas : 조건에 따른 데이터프레임 누적합 계산 (0) | 2020.09.11 |
Uploaded by Notion2Tistory v1.1.0