rueki

SQLD 1장 데이터 모델링 정리 본문

SQL

SQLD 1장 데이터 모델링 정리

륵기 2020. 5. 23. 23:41
728x90
반응형

모델링 : 추상화 - 현실세계를 일정한 형식에 맞추어 표현하는 추상화 의미

           단순화 - 이해하기 쉽게 단순화

           명확화 - 누구나 이해가 가능하도록 정확하게 현상을 기술

           업무 분석 및 업무 형상화

 

 

데이터 모델링 : 데이터 관점의 업무 분석 기법

                     - 업무 정보에 대해 일정한 표기법 = 약속된 표기법

                     - DB구축을 위한 분석 및 설계 단계

                     - 업무의 흐름을 설명하고, 분석

                     - 데이터 베이스를 구축하기 위한 용도이며, 일정한 표기법을 사용

 

데이터 모델링 유의점 : 중복 - 데이터베이스에 같은 정보 저장 X

                               비유연성 - 시스템 업무 변화에 데이터 모델이 수시로 변경되면 안된다.

                               비일관성 - 데이터 간의 상호 연관관계 명확하게 정의, 일관성 있게 데이터 유지

 

개념적 모델링 : 추상화 수준 높음, 업무 중심적, 포괄적 모델링, 전사적 데이터 모델링, EA에 많이 사용

물리적 모델링 : 실제 DB에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링

논리적 데이터 모델링 : key, 속성, 관계표현, 재사용성 높음 (정규화)

 

 

스키마 3단계

- 외부스키마 : 개인적 DB 스키마

- 내부스키마 : 모든 사용자 관점을 통합한 전체 DB

- 개념 스키마 : 물리적 장치에서 데이터가 실제적 저장

 

논리적 독립성 : 개념 스키마가 변경 되어도 외부스키마에 영향 없음

물리적 독립성 : 내부 스키마가 변경되어도 개념, 외부 스키마에 영향 x

 

 

ERD (Entitiy Relationship Model): 1976년 피터 첸이 만듦

작업 순서 : 그리기 - 배치- 관계 설정 - 관계명 기술 -관계 참여도 기술 - 관계 필수여부 기술


엔티티 배치는 왼쪽 상단에서 오른쪽 하단으로 배치

관계 명칭은 관계 표현에 있어서 중요함

 

 

Q. 엔터티로 가장 적절한 것은?

S병원은 여러명의 환자가 존재하고 각 환자에 대한 이름, 주소 등을 관리해야한다.

S병원은 여러명의 환자가 존재하고 각 환자에 대한 이름, 주소 등을 관리해야한다.

1. 병원  2. 환자  3. 이름  4. 주소

 

엔터티는 해당 업무에서 필요하고 관리하고자 하여야하는 정보여야 한다.

유일한 식별자에 의해 식별 가능해야 한다.

두 개 이상의 인스턴스 집합

반드시 속성 있어야 함

다른 엔터티와 최소 1개 이상의 관계 있어야 함

 

엔터티의 개별 요소를 인스턴스라고 한다.

 

* 엔터티 분류

- 유무형에 따른 분류

유형 : 물리적, 안정적, 지속적

개념 :  개념적 정보, 물리적 형태 X

사건 : djqan tngodtl qkftod

 

-발생 시점에 따른 분류

기본 : 업무에 원래 존재하는 정보

중심 : 기본 엔터티로부터 발생, 다른 엔터티와의 관계로 많은 행위 엔터티 생성

행위 : 2개 이상의 부모 엔터티로 부터 발생

 

엔터티 이름 부여 조건

- 약어 사용 금지

- 현업에서 사용하는 용어 사용

- 단수명사 사용, 고유한 이름 사용

- 생성 의미대로 부여


속성 : 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위

 

- 한 개의 엔터티는 2개 이상의 인스턴스 집합

- 한 개의 엔터티는 2개 이상의 속성

- 한 개의 속성은 1개 이상의 속성값을 가진다.

 

속성 분류

- 기본 : 업무에서 추출한 기본 속성

- 설계 : 업무를 규칙화하기 위해 새로 만들거나 변형한 속성

- 파생 : 다른속성에 의해 발생하는 속성

 

도메인 : 속성이 가질 수 있는 값의 범위

 

속성의 명칭 부여

- 해당 업무에서 사용하는 이름 부여

- 서술식 표현 x

- 약어 사용 금지

- 전체 데이터 모델에서 유일성 확보


관계 : 상호 연관성 있는 상태, 엔터티의 인스턴스 사이의 논리적 연관성으로서

         존재의 형태로서나 행위로서 서로에게 연관성 부여

 

- 존재에 의한 관계 (소속 된다.)

- 행위에 의한 관계 (주문한다)

 

존재에 의한 관계, 행위에 의한 관계로 구분 가능하나, ERD에서는 구분하지 않고 단일화 표기법 사용

UML 에는 의존관계, 연관 관계가 있으며, 점선과 실선으로 표기

 

관계의 표기법

관계명, 관계 차수, 관계 선택 사양

 

관계명 : 관계의 이름

관계 차수 : 1:1, 1:M, M:N

관계 선택사양 : 필수관계, 선택 관계

 

관계 체크 사항

- 2개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가?

- 2개의 엔터티 사이에 정보의 조합이 발생되는가?

- 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술 되어 있는가?

- 관계 연결을 가능하게 하는 동사가 있는가?

 

 

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

            논리 데이터 모델링 단계에 사용

            key는 물리 데이터 모델링 단계에 사용

 

특징 : 유일성 - 주식별자에 의해 엔터티 모든 인스턴스 구분

         최소성 - 속성의 수, 유일성 만족하는 최소의 수

         불변성 - 자주 변하지 않는 것

         존재성 - 지정이 되면 값이 들어와야 한다.

 

 

  • 식별자 종류

대표성 여부 : 주식별자, 보조 식별자

스스로 생성 여부 : 내부 식별자, 외부 식별자

속성의 수 : 단일 식별자, 복합 식별자

대체 여부 : 본질 식별자, 인조 식별자

 

주식별자 도출 기준

  해당 업무에서 자주 이용되는 속성

  이름과 명칭은 주 식별자로 사용 불가

  복합으로 주식별자 구성할 때 너무 많은 속성을 사용하면 안된다.

 

 

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

 

비식별자 관계로 연결하는 것을 고려해야 하는 경우

- 부모 없는 자식이 생성 될 수 있는 경우

- 부모와 자식의 생명주기가 다른 경우

- 여러개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가진 경우

- 자식 엔터티에 별도의 주식별자를 생성하는 것이 더 유리한 경우

728x90
반응형

'SQL' 카테고리의 다른 글

MySql과 파이썬 연동하기  (0) 2020.05.29
SQLD 2장 데이터 모델과 성능  (0) 2020.05.24
SQLD 최적화 기본 원리 정리  (0) 2020.05.21
SQL에서의 정규표현식(Regular Expression)  (0) 2020.04.24
SQL CHAR와 VARCHAR2의 차이  (0) 2020.04.24
Comments