데브허브 | DEVHUB | supabase 강의 3편: 데이터베이스 기본 원리(테이블을 만들어봅시다!)supabase 강의 3편: 데이터베이스 기본 원리(테이블을 만들어봅시다!)
- 프론트엔드, 서버, 데이터베이스는 각각 유저, 회사, 데이터 저장 컴퓨터 역할을 하며, 프론트-서버-DB 순으로 상호작용합니다. 🌐
- Supabase는 서버와 데이터베이스 기능을 통합하여 백엔드 관리 부담을 줄이는 BaaS(Backend as a Service) 솔루션입니다. 🚀
- 데이터베이스는 엑셀과 유사한 2차원 구조로, '테이블' 안에 '컬럼'(세로 항목)과 '로우'(가로 데이터 레코드)로 데이터를 정리합니다. 📊
- 각 컬럼의 데이터는 '최소 단위'여야 하며, '원천 데이터'를 저장하여 유연성을 확보해야 합니다 (예: '출생 연도' 대신 '나이'). 💡
- 컬럼에는 문자열, 정수, 날짜/시간, 불리언 등 다양한 '데이터 타입'이 있으며, 'NULL 허용' 여부, '고유성(Unique)', '자동 증가(Auto-increment)', 'ENUM' 등의 제약 조건을 설정할 수 있습니다. 🏷️
- '기본 키(Primary Key)'는 테이블의 각 로우를 고유하게 식별하는 가장 적합한 컬럼으로, 중복되지 않고 항상 값이 존재해야 합니다. 🔑
- 데이터베이스 관계는 '1대1', '1대다', '다대다'로 나뉘며, 특히 '다대다 관계'는 중간 테이블을 통해 해결해야 합니다. 🔗
- '1대1 관계'는 목적이 다르거나 빈 컬럼을 피하기 위해 테이블을 분리할 때 사용될 수 있습니다. 🤝
- '1대다 관계'는 한 엔티티가 여러 다른 엔티티와 연결될 때 사용되며, '다' 쪽에 '1' 엔티티의 기본 키를 참조합니다. 🌳
- '다대다 관계'는 양쪽 엔티티가 서로 여러 개와 연결될 수 있을 때 사용되며, '중간 테이블'을 생성하여 각 엔티티의 기본 키를 복합 키로 가집니다. 🕸️
- 데이터베이스 설계 시, 현실 세계의 데이터를 분석하여 테이블, 컬럼, 관계를 정의하는 연습이 중요합니다. ✍️