오브의 빛나는 별

[SQL] 과목Ⅰ. 데이터 모델링의 이해 본문

SQL

[SQL] 과목Ⅰ. 데이터 모델링의 이해

오브의 별 2023. 10. 18. 22:12
반응형

<데이터 모델의 개요>

정보화 시스템 구축
- 현실 세계에서 일어나는 사건들을 전산화하기 위한 것
- 정보화 시스템 과정에서 구축된 데이터베이스는 현실 세계의 특정 부분을 반영
- 너무 복잡하기 때문에 현실 셰계를 그대로 반영하지는 못함
- 현실 셰계를 개념화, 단순화하여 가시적으로 표현

데이터 모델링(Data Modeling)
- 현실 세계의 업무적인 프로세서를 물리적으로 데이터베이스화하기 위한 과정
- 실체와 관계를 중심으로 체계적으로 표현하고 문서화하는 기법
- 정보 시스템의 중심을 데이터의 관점에서 접근하는 데이터 중심의 분석 방법
- 어떤 데이터가 존재하여 업무에서 필요로 하는 정보가 무엇인지를 분석하는 과정

업무 프로세스(현실 세계)에서 개념적 데이터 모델링을 하여 개념화하고, 논리적 데이터 모델링을 통해 단순화, 추상화 하여 데이터 모델을 만들고, 개념적 데이터 모델링을 통해 데이터 구조화를 하여 물리적 DB를 만들어 웹 사이트와 통신

데이터 모델링의 주요 목적
- 업무 정보를 구성하는데 기초가 되는 정보를 일정한 표기법으로 표현함으로써 정보시스템 구축 대상이 되는 업무 내용을 정확하게 분석하는 것
- 분석된 모델을 가지고 실제 데이터벵스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것

엔티티, 관계, 속성
- 업무가 관여하는 어떤 것(Entity)
- 업무가 관여하는 어떤 것 간의 관계(Relation)
- 어떤 것이 가지는 성격(Attribute)
예) A와 B가 있고 둘은 사랑하는 사이이다. A의 키는 186이고 성격이 까칠하다. B의 키는 163이고 활발하다.
- 업무가 관여하는 어떤 것(Entity): A, B
- 업무가 관여하는 어떤 것 간의 관계(Relation): 사랑하는 사이
- 어떤 것이 가지는 성격(Attribute): A의 키는 186이고 까칠, B의 키는 163이고 활발

엔티티(Entity=Table)
- 데이터베이스에 자료로 표현하려는 것
- 사람이 생각하는 개념이나 정보단위 같은 현실 세계의 대상체
- 유형, 무형의 정보
- 서로 연관된 몇 개의 속성으로 구성
예) 부서 엔티티, 사원 엔티티

속성(Relation=컬럼)
- 데이터의 가장 작은 논리적 단위
- 하나의 엔티티는 한 개 이상의 속성으로 구성
- 각 속성은 엔티티의 특성, 상태 등을 기술
예) 부서 엔티티의 속성: 부서 번호, 부서명, 위치
      사원 엔티티의 속성: 사원번호, 이름, 주소, 소속부서

관계(Relation)
- 엔티티와 엔티티 혹은 엔티티와 속성 간의 연관성
- 일반적으로 동사형으로 표현
예) 사원이 부서에 소속되어 있다.

개념적 데이터 모델
- 현실 세계에 존재하는 데이터를 의미있는 엔티티아 엔티티 내의 공통된 속성과 엔티티들 사이의 관계를 정의하는 추상화 과정
- 현실 세계를 추상화하여 개념적으로 표현하여 이해하기 쉽게 할 뿐 아니라 의사소통을 원황하게 해주는 과정의 의미
- 정보 모델링이라고도 함
- 개체 관계 모델(E-R, Entity-Relationship Model): 기술된 엔티티 타입과 이 엔티티 타입들 간의 관계를 이용하여 현실 세계를 표현하는 가장 대표적인 개념적 데이터 모델

논리적 데이터 모델
- 개념적 데이터 모델은 DBMS가 직접 이해할 수 없음
- 컴퓨터가 이해할 수 있도록 논리적 데이터 모델로 변환해야 함
- 논리적 데이터 모델은 데이터 모델링이라고도 함
- 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델 등이 있음

개념적 데이터 모델링
- 현실 세계에 존재하는 엔티티를 인간이 이해할 수 있는 정보 구조로 표현하는 과정
- 정보 모델링이라고도 함
- 대표적인 것: 1976년 Peter Chen에 의해 제안된 개체 관계 모델(E-R)

E-R 다이어그램(Entity-Relationship Diagram)
- 엔티티와 이들 간의 관계를 알기 쉽게 미리 약속된 도형을 사용하여 일목요연하게 표현
- 빨간색: 엔티티(Entity)
- 파란색: 관계(Relation)
- 초록색: 속성(Relation)
- 밑줄: 기본키

E-R 다이어그램 표기법

 

<개념적 데이터 모델>

엔티티 타입
- 정보가 저장될 수 있는 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 엔티티
- 사원처럼 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것
- 동일한 속성들을 가진 엔티티들의 틀
- 엔티티들은 엔티티 타입으로 분류

엔티티의 집합
- 동일한 속성들을 가진 엔티티들의 모임
- 각 엔티티는 속성(Attribute)으로 알려진 특성들로 정의되며 E-R 다이어그램에서 엔티티 타입은 직사각형으로 표시

엔티티 인스턴스
- 엔티티 타입을 구성하는 원소
- 엔티티는 엔티티 타입에 속하는 하나의 인스턴스

속성(Attribute)
- 정보의 요소로써 관리되는 항목으로 엔티티의 성질, 분류, 수량, 상태, 특성 등을 구체적으로 나타내는 세부 항목
- 속성은 엔티티에 포함된 컬럼
ex) 사원 엔티티(테이블)에 속성(컬럼)을 이름, 주소, 주민번호를 넣겠다.

속성값(Attribut value): 엔티티의 특성이나 상태가 현실화된 값

엔티티와 속성
- ERD에서 속성은 엔티티 집합을 나타내는 직사각형에 실선으로 연결된 타원형으로 표현

속성(Attribute)의 유형
- 단순 속성과 복합 속성
- 단일 값 속성과 다중 값 속성
- 유도 속성과 저장 속성
- 널(Null) 속성

단순 속성: 더 이상 작은 구성원소로 분해할 수 없는 속성 ex) 주민번호
복합 속성: 몇 개의 기본적인 단순 속성으로 분해할 수 있는 속성 ex) 주소(기본, 상세, 우편번호), 입사일(년, 월, 일)

단일 값 속성: 각 엔티티에 대해 하나의 값만 갖는 것 ex) 주민번호, 혈액형
다중 값 속성: 한 엔티티에 대해서 여러 개의 값을 갖는 것 ex) 연락처, 취미

유도 속성: 속성의 값이 다른 속성이나 엔티티가 가지고 있는 값으로부터 유도되어 결정되는 경우 ex) 나이
저장 속성: 유도 속성을 생성하는데 사용된 속성 ex) 생년월일
생년월일 -> 나이

널 속성
- 널 값을 갖는 속성
- 어느 특정 속성에 대한 값을 가지고 있지 않을 때 이를 명시적으로 표시하기 위해 사용

관계 타입
- 엔티티-관계 모델에서 엔티티 사이의 연관성을 표현하는 개념
- 두 개의 엔티티 타입 사이의 업무적인 연관성을 논리적으로 표현한 것
- 관계를 정의할 때 동사구로 관계를 정의
- 엔티티 집합(타입)들 사이의 대응, 즉 사상을 의미

관계 집합
- 한 관계 타입에 속하는 모든 관계 인스턴스를 말함
- EDR에서 엔티티들 사이의 관계 타입은 마름모를 사용하여 표현한 후 그 관계에 연관된 엔티티에 선으로 연결하여 표시

관계의 유형
- 관계에 참여하는 하나의 엔티티에 대해 다른 엔티티가 몇 개 참여하는지를 나타내는 것
- 카디날리티(Cardinality: 관계의 대응 엔티티 수)라고도 함

카디날리티
- 하나의 관계에 실제로 참여할 ㅅ 있는 인스턴스 수를 의미
- 표현 방법: 일대일(1:1), 일대다(1:N), 다대다(N:M)

키 속성: 각 엔티티 인스턴스를 유일하게 식별하는데 사용

키가 필요한 예
- 'A'이란 사원의 주소가 필요한데 'A'이란 이름을 갖고 있는 사원이 2명이라면 둘 중에 어느 사원을 원하는 것인지 알 수 없는 경우

강한 엔티티 타입
- 엔티티 타입 내에서 자신의 키를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입
- 독립 엔티티, 부모 엔티티, 정규 엔티티 타입이라고도 함

약한 엔티티 타입
- 키를 형성하기에 충분한 속성들을 갖지 못한 것
- 자기 자신의 속성만으로는 키를 명세할 수 없는 엔티티
- 종속 엔티티, 자식엔티티라고도 함
- 소유 엔티티 타입이 있어야 존재
- 소유 엔티티 타입을 식별 엔티티 타입이라고도 부름

구별자: 약한 엔티티 타입을 구별하기 위해서 사용되는 이름은 단독으로 엔티티를 구분할 수 없다는 속성
부분키: 구별자는 강한 엔티티와 연관된 약한 엔티티 집합 내에서만 서로 구별할 수 있음
- 가족 엔티티(약한 엔티티 타입) 키는 사원 엔티티(강한 엔티티 타입) 키와 부양 가족 부분키(구별자)로 구성
- 가족 엔티티가 부양 관계에 이중 링크로 연결된 것은 가족 엔티티가 전체 참여를 하고 있다는 것을 나타내기 위한 것
예) {사번, 이름)

ISA 관계
- 상위 엔티티와 하위 엔티티 간의 관계를 의미
- 특정 엔티티는 서로 구별되는 여러 하위 엔티티로 나눠질 수 있음
- 휴학생, 재학생, 졸업생은 학생의 속성인 학생번호, 이름, 성별을 가지고 있음. 거기에 추가되는 것
- 이 관계를 상속받는다고 표현

 

<논리적 데이터 모델>

논리적 데이터 모델링
- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터 환경에 맞도록 변환하는 과정
- 데이터 모델링이라고도 함

논리적 데이터 모델링 목적
- 개념적 설계에서 추출된 실체와 속성들의 관계를 관계형 데이터베이스 이론에 맞게 구조적으로 설계하는 단계(스키마의 설계)
- 정확한 업무 분석을 통한 자료의 흐름을 분석하여 실체와 속성들의 관계를 구조적으로 설계

관계(Relation) 데이터 모델
- 계층 모델과 망 모델의 복잡한 구조를 단순화 시킨 모델
- 표를 이용해서 데이터 상호관계를 정의하는 구조

관계 데이터 모델을 ERD 표기법 중 관계 스키마, 정보 공학 표기법으로 나타낸 것
정보 공학 표기법

 

<요약>

데이터 모델: 현실 세계를 데이터베이스로 구축하기 위한 중간 과정. 즉, 데이터베이스 설계 과정에서 현실 세계의 정보를 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 데이터의 구조를 표현하기 위해 사용되는 도구

개념적 데이터 모델: 현실 세계에 존재하는 데이터를 의미 있는 엔티티와 엔티티 내의 공통된 속성과 엔티티 사이의 관계를 정의하는 추상화 과정

논리적 데이터 모델: 개념적 구조를 컴퓨터에서 처리하기 위해서는 컴퓨터가 이해할 수 있도록 변환

데이터 모델의 구성요소
- 데이터의 구조
- 연산
- 제약조건

엔티티-관계 모델: 엔티티 타입과 이들 간의 관계 타입을 이용하여 현실 세계를 개념적으로 표현한 개념적 데이터 모델 중 가장 대표적인 모델링 방법

E-R 다이어그램: 엔티티와 이들 간의 관계를 일목요연하게 표현하기 위해서 알기 쉽게 미리 약속된 도형을 사용하여 표기하는 방법

카디날리티
- 1:1(일대일)
- 1:N(일대다)
- N:M(다대다)

논리적 데이터 모델
- 관계 데이터 모델
  - 릴레이션, 테이블의 집합으로 표현
- 네트워크 데이터 모델
  - 데이터 구조가 그래프 형태
  - 오너-멤버 관계
- 계층적 데이터 모델
  - 데이터 구조가 트리 형태
  - 사이클이 없는 구조
  - 부모-자식 관계

논리적 데이터 모델에서 N:M의 직접 표현을 제공하지 않음
- 두 레코드 사이의 1:N 구조로 표현
반응형