1. 데이터 모델링
- 현실세계를 데이터 베이스로 표현하기 위해서 추상화한다.
- 고객의 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해서 모델링을 한다.
- 모델링은 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링을 해야한다.
- 데이터 모델링은 고객의 업무 프로세스를 추상화하고 소프트웨어를 분석, 설계하면서 점점 더 상세해진다.
2. 데이터 모델링의 특징
- 데이터 모델링은 추상화 해야한다. -> 추상화는 공통적인 특징을 찾고 간략하게 표현한다.
- 데이터 모델링은 단순화 해야 한다. -> 복잡한 문제를 피하고 누구나 이해할 수 있게 표현한다.
- 데이터 모델링은 명확해야 한다. -> 의미적 해석이 모호하지 않고 명확하게 해석되어야 한다.
3. 데이터 모델링 단계
- 개념적 모델링 (conceptual data modeling)
- 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링을 정한다.
- 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계이다. 업무적 관점에서 모델링하며 기술적인 용어는 가급적 사용하지 않는다.
- Entity 와 Attribute(속성)을 도출하고 개념적 ERD 를 작성한다.
- Entity란, 실체, 객체라는 의미. 즉 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명할 수 있다.
- Entity는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
- 논리적 모델링 (Logical Data Modeling)
- 개념적 모델링을 논리적 모델링으로 변환하는 작업이다. 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.
- 정규화를 수행해서 데이터 모델의 독립성을 확보한다.
- 정규화의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는다는 것이다.
- 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다.
- 물리적 모델링 (Pysical Modeling)
- 데이터베이스를 실제 구축한다. 즉 테이블, 인덱스, 함수 등을 생성하다.
- 성능, 보안, 가용성을 고려해서 구축한다.
3. 데이터 모델링 관점
4. 데이터 모델링을 위한 ERD
- ⭐️ERD 작성 절차⭐️
- 엔티티를 도출하고 그린다 : 업무에서 관리해야 하는 집합을 도출한다.
- 엔티티를 배치한다 : 중요한 엔티티를 왼쪽 상단에 배치한다.
- 엔티티 간의 관계를 설정한다
- 관계명을 서술한다 : 엔티티 간의 어떤 행위나 존재가 있는지 표현한다.
- 관계 참여도를 표현한다 : 관계 참여도는 한 개의 엔티티와 다른 엔티티 간의 참여하는 관계 수를 의미한다. 즉, "고객이 여러 개의 계좌를 개설할 수 있다." 와 같은 의미를 표현하는 것이다.
- 관계의 필수 여부를 표현한다 : 필수는 반드시 존재해야 하는 것이다. 예를 들어 "모든 고객은 반드시 하나의 계좌를 개설해야한다" 와 같은 의미를 표현한다.
5. 데이터 모델링 고려사항
- 데이터 모델의 독립성 : 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있다. 독립성을 확보하기 위해서는 중복된 데이터를 제거해야한다. 데이터의 중복을 제거하는 방법이 바로 정규화이다.
- 고객 요구사항의 표현 : 데이터 모델링으로 고객과 데이터 모델 간에 의사소통을 할 수 있어햐 하므로, 고객의 요구사항을 명확하게 표현해야 한다.
- 데이터 품질 확보 : 데이터 베이스 구축 시에 데이터 표준을 정의하고 표준 준수율을 관리해야한다. 데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있다. (제약사항)
2. 3층 스키마 (3-Level Schema)
1) 3층 스키마
- 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터 베이스를 기술하고 이들 간의 관계를 정의한 ANSI 표준이다.
- 3층 스키마는 데이터베이스의 독립성을 확보하기 위한 방법이다. -> 1 DB에서 A 테이블과 2 DB에서 A 테이블은 서로 다르다.
- 데이터의 독립성을 확보하면 데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용절감 등의 장점을 갖는다.
- 3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 뷰(View) 라고도 한다. -> 가상 테이블
3층 스키마의 독립성
- 논리적 독립성 : 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것이다.
- 물리적 독립성 : 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것이다.
⭐️ 외개내
외부스키마 :
직원이 직접 접근해서 사용
관련된 데이터베이스의 뷰를 표시
응용프로그램이 접근하는 데이터베이스를 정의한다.
개념스키마 :
설계자 관점, 사용자 전체 집단의 데이터베이스 구조
전체 데이터베이스 내의 규칙과 구조를 표현 (표준 정하기)
통합 데이터베이스 구조 -> 규칙
내부스키마:
개발자 관점, 데이터베이스의 물리적 저장구조
데이터 저장 구조, 레코드 구조 필드 정의, 인덱스 정의
관계 :
관계 차수의 종류
1. 일대일
2. m대 n -> 단순화할 필요가 있다.
3. 필수적 관계와 선택적 관계
| / 0
필수적 관계 : 반드시 하나가 있어야 하는 관계 -> 고객이 반드시 있어야 계좌를 개설할 수 잇다.
선택적 관계 : 없을수도 있는 관계
'👩💻 BackEnd > 📊데이터베이스 [Database]' 카테고리의 다른 글
[ SQL / DB ] ERD Cloud 작성하기 : 식별 관계와 비식별 관계, 관계차수 (0) | 2024.03.19 |
---|---|
[ SQL / DB ] 쿼리 저장소 (1) | 2024.03.18 |
[SQL] MySQL 쿼리문 연습 (0) | 2023.10.13 |
Oracle 테이블 간의 참조, 함수, 답변형 게시판 구조 (0) | 2023.08.01 |
[GROUP BY] 진료과별 총 예약횟수 출력 (0) | 2023.04.28 |