일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bcrypt
- crud2
- manytomanyfield
- CORS
- typescript
- javascript
- nodeJS
- 호이스팅
- 자바스크립트
- docker
- pm2
- 스코프
- 트랜잭션
- westagram
- Django
- wecode
- django westagram
- TypeError: this.boardRepository.createBoard is not a function
- Jest
- JWT
- 노드
- 프로미스
- node
- 장고초기세팅
- OSI7계층
- rebase
- 실행 컨텍스트
- async/await
- status code
- on_delete
- Today
- Total
될때까지
((Database)) 데이터베이스, 관계형 데이터베이스, 테이블의 관계, 스타벅스 모델링 본문
데이터베이스란?
컴퓨터 시스템에 저장된 정보나 데이터들을 모두 모아놓은 집합을 데이터베이스라고 한다. 이러한 데이터를 저장하고 관리하는 시스템을 데이터베이스 관리 시스템(DBMS)이라고 한다.
프로그래밍에서 변수를 선언하면 여기저기서 그 값을 가져다 사용할 수 있다. 하지만 RAM 메모리에 저장되는 변수들은 컴퓨터를 껐다키면 사라진다. 중요한 데이터 혹은 다시 재사용할 필요가 있는 데이터들은 체계적으로 보존하고 관리해야하는데, 이럴 때 DBMS를 사용하여 관리한다. 데이터는 필요할 때 내가 원하는 자료만 꺼내 읽을 수 있어야 의미가 있으므로 체계적으로 이를 정리하고 관리하기 위해서 데이터 베이스를 사용한다.
관계형 데이터베이스란?
데이터베이스는 관계형/비관계형 데이터베이스가 있다. 데이터 사이의 관계에 기초를 둔 데이터베이스 시스템을 관계형 데이터베이스라고한다. 관계형 데이터베이스는 각각의 테이블들이 서로 상호관련성을 가지고 서로 연결되어있다.
테이블의 관계
1:1 - 주민등록번호('나'는 1개의 주민등록번호를 가지고, 내 주민등록번호는 '나'만 나타낸다.)
1:M - 애완동물(애완동물은 주인 한사람만 갖지만 주인은 여러 애완동물을 가질 수 있다.)
-> 1대 M의 경우 M의 관계에 1의 FK가 달린다.(1의 PK가 Many의 FK로 달린다.)
M:M - 학생과 수업(한 명의 학생이 여러 수업을 듣고, 한 수업은 여러 학생을 수용한다.)
-> 테이블을 분리해서 중간 테이블을 만들고, 거기에 1:M의 관계 생성하기
Primary Key 고유키 : 테이블의 각 로우가 가지고 있는 고유한 값
Foreign Key 외래키 : 다른 테이블과 연결하기 위해 필요한 키
스타벅스 모델링
사용한 사이트 : dbdiagam.io
인스타그램 모델링
어려웠던 개념
- 팔로우 : 유저1이 여러명 팔로잉, 팔로잉된 사람은 여러명으로부터 팔로잉한다. 그럼 M:M의 관계니까 중간 단계의 테이블을 생성한다. 그러면 User테이블은 알겠는데 Followers테이블에 들어가야하는 column값은 무엇일까...?? 잘 모르겠지만 멘토님들께 질문하는 분들이 많아 못물어봤다 ㅠㅠ 일단 기록해두자!
'프로젝트 > wecode' 카테고리의 다른 글
((Git & Github)) 터미널에서 깃, 깃허브 사용하기 (0) | 2022.06.29 |
---|---|
((미니콘다)) 설치하기 (0) | 2022.06.28 |
((MySQL)) 삭제하고 재설치하는 방법 (0) | 2022.06.27 |
((Python)) How import statement finds modules and packages (0) | 2022.06.25 |
((Python)) 데코레이터 끝내버리겠다. (0) | 2022.06.24 |