본문 바로가기
Oracle SQL Developer

DB 데이터 모델링(Data Modeling)

by wanttosleep1111 2023. 1. 5.

DB 데이터 모델링(Data Modeling)

 

# 데이터베이스(DateBase) : 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임

 

데이터베이스가 없을 때에는 각각의 파일을 사람들이 가지고 있어서 서로 비교하며 맞춰야 했지만,  데이터베이스가 있음으로 접근할 권한을 가진 모든 사람들이 서로의 데이터를 가공할 수 있다.

 


 

1. 데이터베이스 모델링 : 현실 세계의 대상을 데이터베이스로 표현하는 방법

 

현실 개체 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링 → 데이터베이스

 

① 개념 데이터 모델링

업무에 필요한 현실 세계의 복잡한 대상들을 추상화, 단순화하여 대표적인 엔티티와 속성을 만들고 이 엔티티들에 대한 관계를 그려내는 과정

 

 

  • 엔터티(Entity) : 업무에 필요하고 유용한 정보를 관리하기 위한 집합적인 것
    엔터티 안에는 2개 이상의 인스턴스, 1개 이상의 속성, 1개 이상의 관계를 가진다.
    ex) 회원, 영상, 계좌, 학교 등

  • 인스턴스(Instance) : 엔터티 안에 개별적인 것들
    ex) 회원 엔터티 안에 '회원A', '회원B', '회원C' 등
  • 속성 : 엔터티의 특징을 설명해주는 것
    하나의 속성에는 하나의 속성값을 가진다.
    ex) 회원 엔터티의 '회원A'의 나이는 23살이며, 이름은 강길동이다. (O)
           이름은 [강길동, 홍태우]이며, 나이는 [25, 23]이다. (X)

  • 관계 : 엔터티 사이의 관계
    ex) 선생과 학생 엔터티의 관계는 가르치고 배우는 관계이다.

  • ERD : 핵심 엔터티(Entity)와 그들 간의 관계(Relationship)를 발견하고 엔터티-관계 다이어그램(Diagram)으로 표현하는 구조화 작업

 

※ ERD 그리기 예시

 

엔터티 그리기, 엔터티 배치

엔터티 관계 설정

관계명 기술

관계 참여도(Cardinality) 기술 : 엔터티 안의 인스턴스들이 얼마나 참여하는지를 의미

ex) 하나의 부서(1)은 여러 직원(N)을 가진다.

ex) 하나의 직원(N)은 하나의 부서(1)을 가진다.

ex) 강감찬은 급여부 소속이다. 급여부에는 강감찬이 있다.

ex) 손흥만은 인사부 소속이다. 인사부에는 손흥만이 있다. 

 

관계의 필수여부(Optionality) 기술 : 엔티티 안의 인스턴스들이 반드시 참여하는지를 의미

ex) 하나의 직원은 반드시 하나의 부서에 소속된다. 하지만 어떤 부서에는 직원이 아직 없을 수 있다.

 


 

2. 논리적 데이터 모델링

 

ERD를 기준으로 보다 상세하게 속성 기입, 식별자 입력, 정규화, 관계 규칙 등을 설정한다.

이 설계도는 개발 단계에서 DB가 어떻게 구현되어 있는지 참고 하는 역할을 한다.

① 식별자, 식별키(PK, Primary Key)

엔터티 내에서 특별한 인스턴스를 식별할 수 있는 컬럼의 집합

값이 비어 있지 않고, 자주 변하지 않는 특징

 

② 정규화

중복 데이터를 저장하지 않도록 엔터티를 더 쪼개보는 활동

 

 

③ 외래키(FK, Foreign Key)

서로 다른 엔터티끼리 관계를 연결해주는 키

 


 

3. 물리적 데이터 모델링

 

상세하게 설계된 논리적 데이터 모델링을 가지고 실제 DB를 구축한다.

 

 

'Oracle SQL Developer' 카테고리의 다른 글

SQL GROUP BY, HAVING, ORDER BY  (0) 2023.01.24
SQL FROM, JOIN  (0) 2023.01.24
SQL WHERE  (1) 2023.01.23
SQL SELECT 연산, 내장형 함수  (0) 2023.01.09
SQL 기본  (0) 2023.01.08

댓글