될때까지

((Database)) 데이터베이스, 관계형 데이터베이스, 테이블의 관계, 스타벅스 모델링 본문

프로젝트/wecode

((Database)) 데이터베이스, 관계형 데이터베이스, 테이블의 관계, 스타벅스 모델링

랖니 2022. 6. 27. 21:04
728x90

데이터베이스란?

컴퓨터 시스템에 저장된 정보나 데이터들을 모두 모아놓은 집합을 데이터베이스라고 한다. 이러한 데이터를 저장하고 관리하는 시스템을 데이터베이스 관리 시스템(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값은 무엇일까...?? 잘 모르겠지만 멘토님들께 질문하는 분들이 많아 못물어봤다 ㅠㅠ 일단 기록해두자!

728x90