Heestory

모델링 본문

개발(~국비)/Project

모델링

까만밀가루 2022. 8. 2. 23:52

8/3 모델링 프로젝트를 위한 정리

 

<수제비>

1.데이터 모델(★★★)

(1)데이터 모델 개념(2021-1)

:현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

요소

연산(Operation)

:데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세,관계 연산(SELECT, PROJECT, JOIN, DIVISION)

구조(Structure)

:DB에 논리적으로 표현할 대상, 개체 타입과 개체 타입 간의 관계 / 데이터 구조 및 정적 요소 표현

제약조건(Constraint)

:DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

데이터 무결성을 위함, 릴레이션 특정 칼럼에 설정하는 제약을 의미

Null / 고유 / 도메인 / / 관계 / 참조 / 개체

- NULL 무결성
- 고유(Unique) 무결성:릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 한다는 규정
예시: <고객> 릴레이션의 기본키인 고객번호 속성에는 동일한 값이 존재하지 않으므로 고유(Unique) 무결성을 만족한다.
- 도메인(Domain) 무결성:특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정
예시 : <고객> 릴레이션의 성별 속성에는 '남 또는 ''의 값만 존재해야 한다.
- (Key) 무결성: 하나의 릴레이션에는 적어도 하나의 키가 존재해야한다.
- 관계(Relationship) 무결성
:릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정


- 참조(Referential) 무결성
: 외래키(Foreign Key) 값은 NULL이거나 참조 릴레이션의 기본키(Primary Key) 값과 동일해야 한다는 규정
예시 :
<고객> 릴레이션은 기본키로 고객번호 속성을 갖고, <물품> 릴레이션은 기본키로 물품번호 속성을 갖는다.
<고객> 릴레이션의 구입물품번호 속성은 <물품> 릴레이션의 기본키인 물품번호를 참조하고 있기 때문에 외래키가 된다.
이런 경우, <고객> 릴레이션의 외래키인 구입물품번호 속성 값은 NULL이거나 <물품> 릴레이션의 기본키인 물품번호 속성 값과 동일해야 한다.
- 개체(Entity) 무결성:기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다는 규정
예시 :
<고객> 릴레이션은 기본키로 고객번호 속성을 갖고, <물품> 릴레이션은 기본키로 물품번호 속성을 갖는다.
이런 경우, 고객번호 속성과 물품번호 속성은 NULL을 가질 수 없다.

 

(2)데이터 모델의 절차(2020-2,2021-1)

: [요개논물] 요구조건 분석/개념적 설계/논리적 설계/물리적 설계

- 요구 분석 사항 : 도출된 요구사항 간 상층을 해결하고 범위를 파악하여 외부 환경과의 상호 작용을 분석을 통해 데이터에 대한 요구 분석

- 개념적 설계 : 사용자 요구에 대한 트랜잭션(쪼갤 수 없는 업무 처리의 최소 단위) 모델링 하는 단뎨

현실 세계에 대한 인식을 추상적, 개념적으로 표현

트랜잭션 모델링, View 통합 방법 및 Attribute 합성 과정 고려

개체관계다이어그램(ERD : 엔터티 간의 관계를 도식화한 다이어그램) / DB와 관계 무관

- 논리적 설계 : 트랜잭션의 인터페이스를 설계하는 단계

DBMS에 맞는 논리적 스키마를 설계, 업무의 모습을 모델링 표기법으로 형상화

정규화 수행, 논리적 DB 구조로 매핑, 스키마의 평가 및 정제

관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델, 객체 지향 데이터 모델, 객체-관계 데이터 모델

-물리적 설계

: 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마(데이터 저장 구조)를 만드는 단계

테이블, 인덱스, , 파티션 등의 객체를 생성

응답 시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계 / 성능 측면에서 반정규화

레코드 집중 분석 및 설계 / 저장 레코드 양식 설계 / 접근 경로 설계

 

2.논리 데이터 모델 검증(★★★)

(1)논리 데이터 모델링 개념

: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스

개념 모델부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현

(2)논리 데이터 모델링 종류

-관계 데이터 모델 : 논리적 구조가 2차원 테이블 형태, 기본키와 이를 참조하는 외래 키 , 1:1/1:M/N:M

-계층 데이터 모델 : 논리적 구조가 트리 형태, 상하관계(부모-자식) , 1:N만 허용

-네트워크 데이터 모델(CODASYL DBTG 모델) : 논리적 구조가 그래프 형태, 상위와 하위 레코드 사이 N:M

(3)관계 데이터 모델

관계 데이터 모델(Relationship Data Model, 2021-1)

:데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델

릴레이션(Relation) 행과 열로 구성된 테이블
튜플(Tuple) 릴레이션의 행에 해당되는 요소
속성(Attribute) 릴레이션의 열에 해당되는 요소
카디널리티(Cardinality) 튜플의 수
차수(Charge) 애트리뷰트 수
스키마(Schema) 데이터 베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
인스턴스(Instance) 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

관계 데이터 모델의 표현

:데이터 간의 관계를 기본 키와 이를 참조하는 외래 키로 표현(p.3-6)

관계 대수

:관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

-연산자 종류(2020-3)

일반 연산 집합자

: 합집합(Union), 교집합(Intersection) , 차집합(Difference),

카티션 프로덕트(R×S, RS에 속하는 모든 튜플을 연결해 새로운 튜플로 릴레이션 구성)

순수 관계 연산자 [셀프조디]

: 셀렉트( σ조건(R)) : 릴레이션 R에서 조건을 만족하는 튜플 반환

: 프로젝트( ∏속성리스트(R)) 릴레이이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환

: 조인 ()

: 디비전 (R÷S) 릴레이션 S의 모든 튜플과 관련 있는 R 반환

관계 해설

:튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어(원하는 정보가 무엇인가만 선언)

:프레디켓 해석에 기반한 언어

(4)논리 데이터 모델링 속성 [개속관] 개체/속성/관계

-개체(Entity) : 관리할 대상이 되는 실체, 사물 또는 사건으로 정의, 피터 챈 모델로는

-속성(Attribute) : 관리할 정보의 구체적 항목, 개체가 가지고 있는 요소 또는 성질 , 피터 챈 모델로는

-관계(Relationship) : 개체 간의 관계 대응, 피터 챈 모델로는 , 까마귀 발(1:1, 1:M, N:M)

(5)개체-관계(E-R) 모델 ( □ ○ ◇ ◎/다중값 속성/ )

:현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델

논리 데이터 모델에서 모든 이해당사자와 의사소통의 보조자료로도 활용,

요구 사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델

(6)정규화

:관계형 데이터 모델에서 데이터의 중복성 제거하여 이상현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

이상 현상(Anomaly, 2020-4) [삽삭갱] 3-11

:데이터 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상 / 삽입, 수정, 삭제

- 삽입 : 정보 저장시 해당 불필요한 세부 정보를 입력해야 하는 경우

- 삭제 : 삭제시 원치 않은 정보까지 삭제되는 경우

- 갱신 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우)

정규화 단계 (3-12) [원부이 결다조]

1 정규형(1NF) 원자값으로 구성, 반복값 제거
2 정규형(2NF) 부분 함수 종속 제거(완전 함수적 종속 관계), 주식별자 아닌 속성 분리
3 정규형(3NF) 이행함수 종속 제거(A->C), 속성에 종속적인 속성도 분리
보이스-코드 정규형(BCNF) 결정자 후보 키가 아닌 함수 종속 제거
4 정규형(4NF) 다치(다중 값) 종속 제거
5 정규형(5NF) 조인 종속 제거 (완전히 분리)

(7)반 정규화(De-Normalization , 2020-1)

:정규화 된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법, 비정규화, 역정규화

단점 : 데이터 일관성 및 정합성 저하, 유지를 위한 비용 별도 발생

 

 

 

 


 

https://blog.wanzargen.me/4

 

데이터 모델링 :: 3. 제 1 정규화 (중복 데이터 해소)

3. 제 1 정규화 중복 데이터 또는 중복 컬럼(속성)을 별도의 테이블(엔티티)로 만들고, 기존 테이블과 관계를 맺어준다. 여기부터 이제 평화로웠던 디비나라에 격변이 일어나기 시작함... 말로만

blog.wanzargen.me

https://tech.devgear.co.kr/db_kb/333

 

DB전문가 기술자료 - 데이터모델링이란 - 6.정규화

1. 정규화 정의 1972년 E.F CODE 박사에 의해 제안된 이론으로 실세계에서 발생하는 데이터를 수학적인 방법에 의해 구조화시켜 체계적으로 관리할 수 있도록 한 이론 2. 정규화 필요성 가. 엔티티를

tech.devgear.co.kr

-----------------------------------------------아래 포럼 이동 대비를 위한 글 퍼옴

출처:https://tech.devgear.co.kr/db_kb/333

 

1. 정규화 정의

1972년 E.F CODE 박사에 의해 제안된 이론으로 실세계에서 발생하는 데이터를 수학적인 방법에 의해 구조화시켜 체계적으로 관리할 수 있도록 한 이론 


2. 정규화 필요성

가. 엔티티를 구성하는 속성간의 중복을 제거하여 데이터베이스를 최적화

나. 속성간의 함수종속성에 의해 발생하는 이상현상을 제거 

이상현상                                     내용
입력이상 데이터 입력 시 필요없는 속성까지 입력해야 하는 현상         
수정이상 데이터 수정시 원하지 않는 데이터까지 수정되는 현상
삭제이상 데이터 삭제 시 필요한 데이터까지 삭제되는 현상



3. 정규화 종류

    정규화 종류                           내용함수종속성
1차 정규화 모든 속성은 원자값을 가짐 
복수의 속성 값을 갖는 속성을 분리
 
2차 정규화 주식별자에 종속적이지 않은 속성의 분리         
부분 종속 속성을 분리
부분함수종속성
3차 정규화 속성에 종속적인 속성의 분리 
이전 종속 속성의 분리
이행함수종속성
보이스-코드 정규화    다수의 주식별자 분리  
4차 정규화 속성간의 다중종속성 제거 다중종속성
5차 정규화 Join 종속성 제거 Join 종속성



1) 1차 정규화

반복되는 속성이나 그루브이 속성을 제거하고, 새로운 엔티티를 추가한 후에 기존의 엔티티와 일대다의 관계를 형성한다. 

하나의 제품에 대해 여러 개의 주문서가 접수된 내용이다. 



위의 예에서 데이터의 내용이 반복되는 속성으로 인해 일부 속성이 중복된다면 입력, 수정, 삭제시 이상 현상이 발생하게 된다. 

  • 입력 이상 : 주문이 발생되어야만 제품 정보를 등록할 수 있다.
  • 수정 이상 : 마우스의 수량을 9702에서 15000으로 변경하고자 한다면 데이터를 3번 수정해야 한다.
  • 삭제 이상 : 제품번호가 1201인 스피커를 주문한 내역을 삭제하면 제품명, 재고수량 정보도 모두 삭제된다. 

제품에 관련된 정보로부터 반복되어 생성되는 주문 관련 정보를 분리함으로써 1차 정규화를 수행한다. 

   




2) 2차 정규화 

복합식별자로 구성된 경우 해당 엔티티 안의 속성들은 복합식별자 전체에 의존적이어야 한다.

만일 복합식별자 일부에 의존적인 속성이 존재한다면 이를 제거해야 한다.(부분종속속성 제거) 

제품번호 + 주문번호에 종속적인 속성 : 주문수량

주문번호에 종속적인 속성 : 수출여부, 고객번호, 사업자번호, 우선순위  

  • 입력 이상 : 고객정보 입력 시 주문정보도 입력해야 함
  • 수정 이상 : 만약 주문번호 AB345의 우선순위를 1에서 10으로 수정할 경우, 1001+AB345와 1007+AB345를 같이 수정해야 함
  • 삭제 이상 : 주문번호 삭제시 고객번호도 함께 삭제됨 

주문번호에 완전히 종속적인 속성을 분리하여 별도의 엔티티를 구성했다.



3) 3차 정규화 

한 엔티티 안의 모든 주식별자가 아닌 속성들은 주식별자에 의존해야 한다. 속성에 종속적인(이전종속) 속성이 있다면 분리해야 한다. 

  • 입력 이상 : 새로운 고객 등록 시 주문이 없으면 입력이 안됨
  • 수정 이상 : 한 고객이 여러 번 주문한 경우 고객 정보가 반복적으로 발생. 고객 정보 수정시 여러 개의 데이터를 수정해야 한다.
  • 삭제 이상 : 고객번호 4520이 주문을 취소하면 주문 정보만 삭제되는 것이 아니라 고객 정보도 모두 삭제된다. 

고객번호에 종속적인 속성을 분리하여 별도의 엔티티를 구성했다. 



4) 보이스-코드 정규화 

데이블에 존재하는 식별자가 여러 개 존재할 경우 식별자가 중복되어 나타나는 현상을 제거 



주식별자 후보 : 납품업체코드 + 제품코드

                       납품회사명 + 제품코드 

이 중 하나를 선택하면 3차 정규화까지 만족하게 된다. 

  • 입력 이상 : 새로운 사반(주) 에서 새로운 제품을 납품하면 납품업체코드 01과 남품회사명 사반(주)가 모두 입력. 중복 입력으로 인한 문제 발생
  • 수정 이상 : 납품회사명을 수정하려 하면 데이터가 중복되어 존재하므로 여러 로우에 해당하는 데이터를 수정해야 함
  • 삭제 이상 : 제품코드가 B001 이고 납품업체코드가 03인 납품정보를 삭제하면 시그마(주)라는 납품업체 정보가 사라짐 

'개발(~국비) > Project' 카테고리의 다른 글

trim  (0) 2022.08.24
ResultMap  (0) 2022.08.24
파이널 프로젝트 1주차 (8/1 ~ 8/7)  (0) 2022.08.02
API  (0) 2022.07.30
개인프로젝트ⓛ  (0) 2022.07.18