02-1 데이터베이스 모델링
<aside>
📌 프로젝트 단위에서 생각해보면
, 데이터베이스 모델링은 프로젝트 진행에 포함되는 단계 중 하나로, 테이블의 구조를 결정하는 과정이다.
</aside>
<aside>
📌 현실 세계와 비유해서 생각해보면
, 데이터베이스 모델링은 테이블의 구조를 미리 설계하는 개념으로 건축 설계도를 그리는 과정과 비슷하다. 프로젝트를 진행하기 위해서는 대표적으로 ‘폭포수 모델’을 사용하며, 이 단계를 거치면 가장 중요한 데이터베이스 개체인 테이블 구조가 결정되는 것이다.
</aside>
프로젝트 진행 단계
<aside>
📌 일단 데이터베이스 모델링에 대해서 알기 전에 프로젝트에 대한 전반적인 흐름을 파악해보자.
</aside>
- 폭포수 모델(waterfall model)
소프트웨어 개발 절차
의 여러 가지 방법 중 한 가지 방법이다.
-
- 프로젝트 계획 2) 업무 분석 3) 시스템 설계 4) 프로그램 구현 5) 테스트 6) 유지 보수
- 장점)
- 단점)
- 문제가 발생할 경우 다시 앞 단계로 돌아가기가 어렵다.
- 그럼에도 각 단계가 명확하기 때문에 지금도 많이 사용되고 있다.
데이터베이스 모델링은 폭포수 모델에서 2) 업무 분석 3) 시스템 설계 단계에 해당
된다.
데이터베이스 모델링
- 데이테베이스 모델링이 무엇?
- 데이터베이스 모델링은
- 프로젝트 단위에서 생각해보면, 2) 업무 분석 3) 시스템 설계 단계에 해당한다.
- 현실 세계와 비유해서 생각해보면, 현실 세계의 슈퍼마켓을 인터넷 쇼핑몰로 만드는 프로젝트에서 ‘현실에서 쓰이는 것을 테이블로 변경하는 작업’ 으로 생각해볼 수 있다.
- 그러니까 어쨌든, 테이블을 만드는 것을 데이터베이스 모델링이라고 한다.
- 더욱 중요한 것은, 결국 나중에 이 테이블에 있는 값을 꺼내고, 테이블에 값을 넣고 검색하고 등의 작업을 할텐데, 더 빠르게 작업하기 위해서 이 테이블을
어떻게 더 잘 만들 것인가
에 초점을 맞추는 것이다.
- 현실 세계의 슈퍼마켓은
- 진열된 물건, 직원, 고객, 구매 등의 정보를 가진다.
- 이 정보를 테이블이라는 개체로 변경하기 위한 작업이 데이터베이스 모델링이다.
- 예를 들어, 물건 테이블은
- 제품의 이름, 가격, 제조일자, 제조회사, 재고량 등의 정보를 담는다.
<aside>
📌 현실 세계의 슈퍼마켓을 쇼핑몰로 만드는 프로젝트에서 물건, 직원, 고객, 구매 등의 정보를 각각의 테이블로 만드는 구나.
데이터베이스 모델링이 무엇인지 아는 것도 중요하다. 대충 뭔지 알았다면, 어떻게 모델링을 하는 지를 파악하는 게 더 중요하다.
</aside>
전체 데이터베이스 구성도
- 데이터베이스 용어
- 데이터 - 하나하나의 단편적인 정보
- 테이블 - 회원이나 제품의 데이터를 입력하기 위해 표 형태로 표현한 것을 말한다. 위 그림에서 회원 테이블과 제품 테이블이 해당된다.
- 데이터베이스 - 테이블이 저장되는 저장소를 말한다. 각 데이터베이스는 이름이 서로 달라야 한다.
- DBMS - 데이터베이스 관리 시스템 또는 소프트웨어를 말한다. 1장에서 설치한 MySQL 이 바로 DBMS 이다.
- 데이터 형식 - 열에 저장될 데이터의 형식을 말한다. 회원 테이블의 회원 이름 열은 ‘1234’ 와 같은 숫자가 아닌 ‘나훈아’ 같은 문자 형식이어야 한다. 그리고 제품 테이블의 가격 열은 숫자 형식이어야 한다.
- 기본키- 기본키 열은 각 행을 구분하는 유일한 열을 말한다. 더 쉽게는 네이버의 회원 아이디, 학번, 주민등록번호 같은 것이라고 생각하면 된다. 그래서 기본키는 중복되어서는 안되며, 비어 있어서도 안된다.
- SQL - DBMS 에서 작업을 하고 싶다면 DBMS 가 알아듣는 언어로 해야 한다. SQL 은 DBMS 와 사람이 소통하기 위한 언어이다.
<aside>
📌 이 책은 어떻게 테이블을 잘 만드는지에 초점을 두진 않는다.
</aside>
02-2 데이터베이스 시작부터 끝까지
<aside>
📌 SQL 을 사용해서 데이터베이스를 다뤄보자.
</aside>