Skip to content

213am/til-dbms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

데이터베이스 모델링

1. DB(데이터 베이스)와 DB 관리 시스템(DBMS)은 다른 개념이다.

  • DB: 데이터를 저장하는 공간
  • DBMS: DB를 관리하는 시스템

2. 데이터베이스 모델링

  • 데이터베이스 모델링: 데이터베이스를 설계하는 과정
  • 데이터를 잘 분류해서 저장하는 방안을 고려하는 과정
  • 잘 분류해두면 데이터를 쉽게 찾을 수 있고,
  • 잘 분류해두면 데이터를 쉽게 삭제할 수 있고,
  • 잘 분류해두면 데이터를 쉽게 수정할 수 있다

3. 데이터베이스 모델링에서 최종 목적

  • 데이터의 중복을 제거한다
  • 데이터의 무결성을 보장한다
  • 데이터의 일관성을 보장한다

4. 우리는 관계(Relation) 형태의 데이터베이스 모델링을 사용한다

  • RDBMS(Relational Database Management System) : 관계형 데이터베이스 관리 시스템
  • 관계형 데이터베이스는 테이블(table) 형태로 구성된다
  • 테이블은 열(column)과 행(row)으로 구성된다
  • 열(column)은 필드(Field)라고도 한다.
  • 행(row)은 레코드(Record)라고도 한다.
  • MySQL, PostgreSQL, MariaDB, Oracle, MSSQL 등이 있다.

5. 데이터베이스 모델링 과정

5.1 요구사항 분석

  • 서비스 기획 참석이후
  • 문장으로된 다양한 서비스 내용에 대해서 우선 대표적 속성(Attribute)을 추출한다
  • 추출된 속성(Attribute)들을 묶어서 하나의 개체(Entity)로 분류한다
  • 개체(Entity) 간의 관계(Relation)를 정의한다
  • 이러한 개체(Entity)들을 묶어서 하나의 스키마(Schema)로 분류한다

5.2 개념적 데이터 모델링

  • ERD : Entity Relationship Diagram

5.3 논리적 데이터 모델링

  • Excel 활용 및 PK(Primary Key), FK(Foreign Key), Relation Model 만들기

5.4 물리적 데이터 모델링

  • 테이블 정의서, SQL-Script 최종 생성

5.5. 데이터베이스 구축

  • Reverse Engineering
  • Forward Engineering

6. 데이터베이스 모델링 예제

6.1. 핵심 : 중복되는 데이터 제거

  • Schema 폴더 생성하기 : 소문자 폴더로 저장합니다
  • Entity(객체)를 파일로 table 생성함 : 소문자s(복수형 명사) 로 생성함
  • 속성(Attribute) 생성함 : 소문자로 칼럼 명을 생성함
  • 속성 중 PK(Primary Key) : 절대 중복되지 않는다는 조건 : 자동증가 또는 유니크 속성을 부여해야 함 : 자동증가는 auto increment 속성을 부여해야 함 : 유니크 속성은 uuid 속성을 부여해야 함
  • 속성 중 FK(Foreign Key) : 외래키 속성을 부여해야 함 : 다른 테이블 즉, Entity 와 관계를 연결시키는 키 : 일반적으로 다른 테이블의 PK(Primary Key)를 참조하는 속성을 부여함

6.2. 핵심 : 데이터의 내용은 1개여야 한다

  • 만약 레코드 즉, 입력된 데이터가 여러개라면 : 데이터를 하나씩 배치하여서 FK(Foreign Key) 로 연결시킨다 : 만약 FK 가 여러개 배치된다면 : 새로운 표를 생성해서 각 FK 를 통해서 연결시킨다

6.3. 대응수 알아보기

  • 꼭 엑셀을 만들지 않더라도 대응수를 파악할 수 있다
  • 대응수란 하나의 테이블이 다른 테이블의 FK 활용하는 것을 나타내는 기회다
  • 대응수는 1 : 1 구조, 1 : N 구조, M : N 구조 가 있다

대응수 알아내기 요령

  • A 와 B 의 관계
  • A 는 B 를 ~~~ 한다
  • B 는 A 에 의해 ~~~ 한다
  • 하나의 A 는 한개/여러개 의 B 를 ~~~ 한다
  • 하나의 B 는 한개/여러개 의 A 에 의해 ~~~ 한다

6.3.1. 1 : N 구조

  • 회원과 이메일의 관계를 파악해 보자

  • 회원은 이메일을 소유하고 있다

  • 이메일은 회원에게 소유되어 있다

  • 한명의 회원은 여러개의 이메일을 소유하고 있다(1:N)

  • 하나의 이메일은 한명의 회원에게 소유되어 있다(1:1)

  • 최종적으로 회원 : 이메일 은 1 : N 구조이다

  • N 쪽에 FK 를 부여해야 한다

6.3.2. M : N 구조

  • 학생과목의 관계

  • 학생과목을 수강 한다

  • 과목학생에 의해 수강 되어진다

  • 한명의 학생은 여러개의 과목을 수강 한다(1:N)

  • 하나의 과목은 여러명의 학생에 의해 수강 되어진다(1:N)

  • 최종적으로 학생 : 과목 은 1 : N 구조이다

  • 학생과 과목은 M : N 구조이다

  • 무조건 table 생성하고 FK 를 모은다

6.3.3. 1 : 1 구조

6.4. ERD 그리기

About

데이터베이스 모델링 기초이론

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published