💡 A database generally refers to a structured collection of structured information or data stored electronically in a computer system. The database is usually controlled by a database management system (DBMS). Data and DBMS are referred to as 'database systems' along with related applications, and are also collectively referred to as 'databases' for short. (Oracle)
👶 어쨌든 데이터는 데이터이고, 여기서 포인트는 'structured'라고 생각이 되는데, 잘 구조화된 정보를 잘 구조화된 컬렉션으로 모아놓는거구나! 라고 이해했다. 그래서.. 구조화가 중요하단 말이지!
👶 그리고 이러한 데이터들을 제어하고 관리하는게 데이터베이스 관리시스템 (DBMS, Database Management System)
이고, 관련된 다른 어플리케이션을 통틀어서 데이터베이스 시스템
혹은 DB
라고 말하기도 한다.
- 데이터를 오랜기간 저장 및 보존
cf) 메모리에 보관하는 경우 어플리케이션이 종료되면 그 정보가 날라간다. 하지만 DB에 저장하면 날라가지 않는다!
- 데이터를 체계적으로 보존
내가 언제든 쉽게 그 데이터를 찾아올 수 있어야 한다!
👉 말 그대로 데이터 사이의 관계에 기초를 둔 데이터베이스 시스템이다!
Database에는 크게 관계형(RDBMS)와 "NoSQL"로 명칭되는 비관계형 database가 있다.
Primary Key는 내가 가지고 있는 키, 모든 테이블은 제일 처음에 ID라는게 부여되는데 그게 바로 PK이다.
Foreign Key는 테이블과 테이블을 연결해 주는 핵심이다. 다른 테이블의 PK를 내가 가지고 있게 되면 그게 바로 FK가 된다.
그런데 어떤 관계? 바로 1:1, 1:N, N:N
관계! 다시 말해, RDBMS에선 정보를 2차원 table로 저장한 다음 관계형으로 저장하고 참조할 수 있도록 하는 방식으로 관리한다.
✅ One to One
✅ One to Many
✅ Many to Many
위 배운 내용을 바탕으로 스타벅스 서비스를 모델링 해보았다.
툴 사용하는데 너무 시간이 걸려 손으로 드로잉 해보았는데, 지저분하지만,, 여기에서 얻은 것을 정리해보고자 한다.
👶 내가 한 방식
1. 우선 데이터들의 관계를 생각한다. ( 1 : 1, 1 : N, N : N )
2. 그 다음 데이터 들에 따라 PK와 FK의 위치를 생각하여 연결한다.
👍 잘한 점
1. 문제를 생각한 방식 - 멘토님도 관계를 먼저 생각하라고 하셨다. 잘 안 될 때는 각각의 테이블 그려보기
2. 알러지와 음료를 다대다로 묶은 것 - 다대 다 관계를 이해하게 된 계기가 되었다.
🤔 보완할 점
1. 별도 관리할 정보들과 함께 관리할 정보를 우선 고려해야 함 ==> 주어진 모든 정보들을 다 테이블로 만들어 서로 연결했는데, 그게 아니라 음료설명과 같은 단순한 관계에 있는 것들은 아예 음료테이블의 정보 중 하나로 넣어버리면 된다.
2. 화살표 방향 헷갈리지 말기 ^^;