데이터베이스 모델링 : 프로젝트 진행에 포함되는 단계 중 하나. 테이블의 구조를 결정하는 과정
폭포수 모델의 개발 단계
- 프로젝트 계획
- 업무 분석 : 사용자의 요구 사항이 무엇인지 분석하는 단계
- 시스템 설계 : 업무 분석 단계에서 분석한 내용을 컴퓨터에 적용시키기 위해 알맞은 형태로 다듬는 과정
- 프로그램 구현 : 시스템 설계의 결과를 프로그래밍 언어로 코딩하는 단계. 계획한 내용을 온라인으로 제공하기 위해서는 Javascript, PHP, JSP 등의 프로그래밍 언어를 사용해야 함
- 테스트 : 코딩된 프로그램에 오류가 없는지 확인하는 과정
- 유지 보수 : 실제 프로그램을 운영하며 문제점을 보완하고 기능을 추가하는 과정
데이터베이스 구축 절차
- 데이터베이스 만들기
- 테이블 만들기
- 데이터 입력 / 수정 / 삭제하기
- 데이터 조회 / 활용하기
이제부터 MySQL Workbench를 활용하여 간단한 데이터베이스를 구축해 보겠다. 아래 캡처 화면의 왼쪽 부분에 굵은 글씨로 된 shop_db는 데이터베이스를 만들고, 해당 데이터베이스 안에 member와 product 테이블을 만들고 각 테이블의 내용을 확인, 수정, 삭제하는 작업을 진행할 것이다.
먼저 데이터들의 집인 데이터베이스를 만들어야 한다.
왼쪽 구역에서 마우스 우클릭 후 나타나는 옵션 중 Create Schema를 클릭한다.
생성할 데이터베이스의 이름을 shop_db로 입력하고, 우측 하단에 Apply 버튼을 클릭하여 데이터베이스를 만든다.
이후 하나의 SQL문이 나오는 창이 뜨는데, 이는 SQL문으로 스키마를 생성하는 작업을 표시하는 것이다. 간단히 말해 우리가 하는 작업과 저 문장은 같은 것이라는 것이다. 그러니 다시 한 번 Apply 버튼을 클릭해주자.
이번 단계에서는 members와 product 테이블을 만들고, 각 테이블에 데이터를 삽입해보겠다. 이번에 만들 테이블의 요구 조건은 아래 표와 같다.
열 이름(한글) | 영문 이름 | 데이터 형식 | 최대 길이 | 널 허용 안함(Not Null, NN) |
아이디(기본 키) | member_id | 문자(CHAR) | 8글자 | YES |
회원 이름 | member_name | 문자(CHAR) | 5글자 | YES |
주소 | member_addr | 문자(CHAR) | 20글자 | NO |
열 이름(한글) | 영문 이름 | 데이터 형식 | 최대 길이 | 널 허용 안함(Not Null, NN) |
제품 이름(기본 키) | product_name | 문자(CHAR) | 4글자 | YES |
가격 | cost | 숫자(INT) | - | YES |
제조일자 | make_date | 날짜(DATE) | - | NO |
제조회사 | company | 문자(CHAR) | 5글자 | NO |
남은 수량 | amount | 숫자(INT) | - | YES |
화면의 좌측 구역 중 Tables를 선택하고 마우스 우클릭-Create Table을 클릭한다.
테이블 생성 화면에서 위 테이블 생성 조건에 맞게 Table Name에는 members를 입력한 후, 각 열의 조건도 설정하고 우측 하단의 apply를 클릭하여 하나의 테이블을 만든다. PK와 NN은 체크박스로 클릭하면 된다. 문자열 길이의 최댓값은 ()안에 숫자를 입력하여 지정할 수 있다. 모든 설정을 마치고 우측 하단의 Apply버튼을 누르면 데이터베이스를 생성할 때와 마찬가지로 SQL문이 나와 있는 창이 뜨는데, 이 역시 같은 의미를 가진 것이므로 무시하고 Apply를 클릭한다.
위의 과정을 똑같이 하여 product 테이블도 생성한다.
이번에는 아래의 그림과 같이 데이터를 입력할 것이다.
1.1. 좌측 구역에서 members를 클릭 -> 마우스 우클릭 -> Select Rows를 클릭하면 하나의 표가 나오는데, 해당 창에서 엑셀에서 데이터를 입력하듯이 입력하고 Apply 버튼을 클릭하면 된다!
1.2. product에서도 위와 같이 작업해주자.
데이터 추가/수정하기
2.1. 이미 만들어진 테이블에서 데이터를 수정해보자. 마찬가지로 이미 생성된 테이블을 members를 클릭 -> 마우스 우클릭 -> Select Rows를 클릭하여 선택하고, 수정하고 싶은 데이터를 더블클릭 하고, 수정할 내용을 입력, Apply 버튼을 클릭하면 된다.
데이터 삭제하기
3.1. 삭제하고 싶은 행의 데이터를 선택 후 우클릭 -> Delete Row(s)를 클릭한다. 이후 나오는 창에서 Apply 버튼을 클릭하면 완료.
지금까지 위의 모든 과정을 마우스로 조작했는데, 이를 SQL문을 활용해서 똑같이 할 수 있다. 중간중간 나오는 CREATE, UPDATE, DELETE와 같은 예약어들을 볼 수 있었을 것이다. SQL문으로 테이블을 관리하는 방법에 대해서는 추후 공부하도록 하자.
✔️ 시작하기 전에 알아두자!
아래 캡처 화면의 상단에 있는 버튼들 중 가장 왼쪽에 있는 아이콘을 눌러 새로운 SQL 쿼리 창을 생성해준다. 그러면 코드를 입력할 수 있는 창이 생성되는데, 이 곳에서 SQL문을 입력하여 테이블을 관리할 수 있다.
1. SELECT 활용하기
쿼리 창에 SELECT * FROM members;를 입력한 후, ctrl+Enter를 눌러보자. 아래의 결과 창에 members 테이블이 나타난다.
해당 SQL문은 member 테이블의 모든 열을 보여달라는 의미이다.
- SELECT : 보여주라는 명령어
- : 모든 열, 특정 열만을 보고 싶다면 * 대신 열의 제목을 입력하면 된다.
- FROM : 어떤 테이블에서?
- members : 해당 자리에는 보고싶은 테이블의 이름을 입력한다. 지금은 members 테이블을 입력했는데, product 테이블이 보고싶다면 product를 입력하면 된다.
위의 내용을 활용하여 아이유 회원에 대한 정보만을 추출해보자. 간단한 SQL문 하나를 활용하면 된다.
SELECT * FROM member WHERE member_name = '아이유';
그러면 아래의 결과처럼 member_name이 '아이유'인 행에 대한 결과만 출력되는 것을 확인할 수 있다.