데이터 모델링
: 정보 시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법으로 표현하는 것
: 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리를 수행
- 데이터 모델
: 데이터 모델링을 통해 데이터를 추상화한 것
데이터 모델링 순서
1) 요구사항 수집 및 분석
2) 개념적 데이터 모델링
: 하고자 하는 일의 데이터 간 관계 구상
: 피터 첸 표기법을 통해 ERD 다이어그램을 작성
3) 논리적 데이터 모델링
: 개념적인 데이터 모델을 완성한 후 구체화된 업무 중심의 데이터 모델을 작성
: Key, 속성, 관계 등을 표시하여 정규화를 수행
: 개념적 ERD 다이어그램을 테이블로 재구성
: 구체화적인 데이터로 작성 (데이터 타입 정의, 데이터간 관계, 테이블의 키 지정 등)
※ 정규화
: 데이터 모델의 일관성을 확보하고 중복을 제거하여 신뢰성 있는 데이터 구조를 얻는 것
4) 물리적 데이터 모델링
: 최종적으로 데이터를 관리할 데이터베이스를 선택하고 실제 테이블을 만드는 작업
: SQL을 통해 구현
ERD (Entity Relationship Diagram)
: 개체와 관계를 중점으로 데이터베이스 구조를 한 눈에 알아볼 수 있도록 그린 다이어그램
- Enity
: 정의 가능한 사물 또는 개념
: 데이터베이스의 테이블이 엔티티의 개념
- Attribute
: 엔티티가 가지고 있는 속성
: 데이터베이스의 각 필드 (컬럼)이 속성의 개념
- Domain
: 속성의 값, 타입, 제약 사항 등에 대한 값의 범위를 표현한 것
: 사용자 기호에 따라 속성 타입만 그릴 수 있고 가독성을 위해 생략할 수 있음
: 데이터베이스가 지원하는 타입을 구체화하여 엔티티를 상세화
Entity 관계
- 식별자 관계
: 강한 연결 관계를 표현하며, 실선으로 표현
: 자식의 주 식별자 구성에 포함
- 비식별자 관계
: 약한 연결 관계를 표현하며, 점선으로 표현
: 자식의 일반 속성에 포함
Cardinality
: 한 개체에서 발생할 수 있는 발생 횟수
- 1:1
: 1대1로 매칭되는 관계
: 부모 테이블과 자식 테이블에 1개의 row로만 존재할 수 있는 관계
: 부모 테이블의 PK가 자식 테이블의 FK이자 PK
ex) ID와 비밀번호
- 1:M
: 1대 다수로 매칭되는 관계
: 부모 테이블에 1개, 자식 테이블에 여러 row가 존재할 수 있는 관계
: 부모 테이블의 PK가 자식 테이블의 FK로, 자식 테이블에는 해당 row가 중복될 수 있다
ex) 이름과 취미
- N:M
: 다수 대 다수로 매칭되는 관계
: 부모 테이블과 자식 테이블에 여러 row가 존재할 수 있는 관계
: 부모 테이블의 속성이 자식 테이블의 FK인데, 부모와 자식 테이블에 해당 row가 중복될 수 있다
Reference
'Database > MySQL' 카테고리의 다른 글
MySQL Too many connections 오류 해결 방법 (0) | 2023.11.07 |
---|---|
MySQL 쿼리 성능 테스트 (0) | 2023.10.12 |
MySQL JSON_ARRAYAGG와 JSON_ARRAY의 차이점 (1) | 2023.10.10 |
MySQL 서브 쿼리에 대해서 총 정리 (1) | 2023.10.10 |
MySQL 무결성 제약 조건과 참조 무결성 제약 설정 (0) | 2023.09.23 |