| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터분포
- List
- 성능평가지표
- Linked List
- echo 명령어
- git push -u
- 루키즈33기
- 꽉뚝짝 시장
- Package
- sqld
- node.js
- OT후기
- 수업복습
- 클래스
- pandas
- 패키지
- 함수
- 예외처리
- dropna
- 방콕
- gdgm
- tunder client
- 태국
- 레이블인코딩
- SK쉴더스
- 블록(Block)
- 생성형AI
- 보안공부
- 루키즈
- 지도학습
- Today
- Total
개발 블로그
Database 설계 본문
✏️ 학습 목표
1. SQL, NoSQL에 대해 알아보기
2. 데이터베이스 설계를 어떻게 하는 것이 좋은지 이해하기
3. 로컬 DB를 설치해서 연결해보기
🐢 시작 전, 기초 지식 참고 자료
https://velog.io/@taeha7b/mysql-in-a-nutshell
MySQL 기초 문법 정리
MySQL 기초 문법 간략 정리
velog.io
📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리
데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제
inpa.tistory.com
🐢 SQL과 NoSQL
- SQL
Structured Query Language : 관계형 데이터베이스를 사용하는 시스템에서 데이터를 관리하는 데 사용되는 언어이다. 입출력 속도 보다 정확도와 입출력이 중요할 때 적합하며 데이터가 일관되고 테이블 간의 관계가 잘 정의된 구조화된 데이터에 좋다.
➡️ SQL 쪽의 데이터베이스 시스템: MySQL, PostgreSQL, Oracle Database
- NoSQL
Not Only SQL : SQL을 사용하지 않는 DBMS들을 의미한다. NoSQL 쪽의 데이터베이스는 키 값, 다큐먼트, 그래프 등 다양한 데이터 구조를 지원하기에 데이터가 미리 정의된 스키마를 따르지 않고 데이터 요소 간의 관계가 잘 정의되어 있지 않은 반정형 또는 비정형 데이터에 적합하다.
➡️ NoSQL 쪽의 데이터베이스 시스템: MongoDB, Redis, neo4j, DynamoDB
🐢 본문 내용
데이터베이스의 설계 결과물은 ERD이다.
➡️ ERD 툴 추천: StarUML, AQueryTool
➡️ ERD는 프로젝트 시작과 동시에 설계하는 것이 좋다. 세세한 내용은 언제든지 바뀔 수 있기 때문에 처음부터 완벽하게 만들 필요는 없다.
- 데이터베이스 설계 시 주의사항
1. 테이블 이름과 칼럼의 이름은 모두 소문자로 정한다.
2. 단어 구분은 밑줄로 해주는 것이 좋다. (예를 들면, num_id)
3. 기본키를 위해 각 엔티티 정보 중 유일한 값을 기본키로 설정하기 보다 index를 'id'라고 따로 두는 것이 편하다.
4. 위에서 기본키로 설정한 id의 타입은 int가 아닌 bigint로 한다. (추후 서비스 확장을 고려해서..)
- 데이터베이스 설계 시 주요 타입
1. text 타입: String과 같이 길이 제한이 없는 타입
2. datetime(n) 타입: (n)은 밀리초 소수점 n자리까지 구분한다는 의미
- Hard Delete
기능 구현 시, 회원 탈퇴나 게시글 삭제 등의 지우는 연산을 HTTP Method 중 Delete로 바로 삭제를 해버리는 방법
➡️ 이 방법은 지양하는 것이 좋다. (예를 들면 회원 탈퇴를 철회하는 유저가 생길 수도 있다.)
➡️ 일단 비활성 상태로 두고, 일정 기간동안 비활성인 경우 자동 삭제가 되도록 설계하기!!
- 그렇다면 자동 삭제는 어떻게 하나요?
batch라는 것을 이용한다.
➡️ batch: 정해진 시간에 자동으로 실행되는 프로세스
➡️ batch를 사용하여 자동 삭제하는 것을 soft delete라고 한다. (HTTP Method 중 Patch)
🌠 데이터베이스 관련 용어
와이어 프레임: 웹 사이트의 골격이나 애플리케이션의 사용자 인터페이스(UI) 및 핵심 기능을 나타내는 단순한 선과 도형으로 구성된 다이어그램 또는 다이어그램의 집합
RDB (Relational DataBase): 관계형 데이터 모델에 기초를 둔 데이터베이스 (관계형 데이터베이스)
➡️ 외래키로 서로의 연관 관계를 표시한다.
🐢 데이터베이스 접속 툴
- DataGrip
https://m.blog.naver.com/wideeyed/222141637159
[DataGrip] Database IDE(통합개발환경) 데이터그립 설치 및 실습
JetBrains에서 만든 데이터베이스 통합개발환경툴인 "DataGrip"을 설치하고 간단하게 실습해...
blog.naver.com
'Experience > UMC' 카테고리의 다른 글
| AWS (VPC & Internet Gateway & EC2) (0) | 2024.12.27 |
|---|---|
| 서버란 무엇인가 (소켓 & 멀티 프로세스) (0) | 2024.12.27 |
| npm audit 명령어로 프로젝트 취약점 점검 및 자동 해결 방법 (npm audit fix) (0) | 2024.11.19 |