[DataBase] 관계형 DB 스키마

Jane Yeonju Kim·2022년 3월 15일
0

DataBase

목록 보기
1/3
post-thumbnail
post-custom-banner

A database schema defines how data is organized within a relational database; this is inclusive of logical constraints such as, table names, fields, data types, and the relationships between these entities.
Schemas commonly use visual representations to communicate the architecture of the database, becoming the foundation for an organization’s data management discipline. This process of database schema design is also known as data modeling.
출처: IBM Cloud Education에서 말하는 DB Schema


데이터베이스 스키마란 데이터베이스의 구조에 대해서 얘기할 때
시각적인 자료로 많이 쓰인다고 합니다!
스키마를 디자인하는 과정을 데이터 모델링이라고 하기도 하네요.


☕커피를 파는 입장이라고 생각하고
관계형 데이터베이스 스키마를 모델링 해보겠습니다!


1:N 관계

커피 종류에 따라서 여러 종류의 커피 상품이 존재할 수 있습니다.
그래서 하나의 커피는 하나의 카테고리와 연결될 수 있지만,
하나의 카테고리는 여러 종류의 커피와 연결될 수 있습니다.

이런 관계를 1:N관계라고 부릅니다!

N:M관계

커피 상품과 알러지 정보의 관계를 볼까요?
이번에는 하나의 커피 상품마다 여러 개의 알러지 정보가 연결될 수도 있고,
하나의 알러지 정보는 여러 커피 상품과 연결될 수 있습니다!
이런 N:M관계를 그대로 표현하면 효율적인 데이터베이스를 만들 수가 없습니다.

그래서 1:N관계로 쪼개기 위한 중간 테이블이 필요합니다!
중간 테이블에서 products테이블과 1:N관계로 연결하고,
allergies테이블과 N:1관계로 연결하면 해결할 수 있습니다.

다이어그램

다이어그램 링크



정규화

효율적인 데이터베이스를 설계하기 위해서는 정규화 규칙을 잘 지켜줘야 합니다. 정규화를 통해 데이터 베이스의 중복을 최소화하고 (보통 큰 데이터베이스에서) 작고 잘 정리된 관계를 만들면 용량도 줄일 수 있고 예상하지 못한 이상 현상도 방지할 수 있습니다!

정규화 원칙은 7가지나 되지만 너무 많은 정규화를 적용한 데이터베이스는 성능 상의 이유로 오히려 반정규화를 하기도 합니다. 정규화에 대해서는 따로 다루겠습니다. 😋


profile
안녕하세요! 김개발자입니다 👩‍💻 🐈
post-custom-banner

0개의 댓글