4.1 프로젝트 진행 단계
프로젝트란 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정이다.
초기에는 혼자서 하는 프로젝트의 경우 별 문제가 되지않았지만 근래에 들어서 프로그램을 작성해야 하는 규모가 커지고 사용자들의 요구사항이 복잡해지며 문제가 생겼다.
큰 규모의 프로젝트를 할 당시 계획하고 분석하기보다는 만들기에 급급해 코딩하는 습관에만 길들어져 있어 프로그램을 삭제하고 처음부터 다시 짜야하는 상황이 자주 발생했다.
그 원인이 분석과 설계 작업을 등한시 하는 고질적인 문제점을 깨닫고 해결하기 위해 소프트웨어 개발 방법론이 나타났다.
폭포수 모델
소프트웨어 개발 모델은 많지만 가장 오래되고 전통적으로 사용되어 왔다.
말 그대로 폭포가 떨어지듯이 각 단계가 끝나면 바로 다음 단계로 진행한다.
장점은 프로젝트의 진행 단계가 명확해지는 점이 있다.
단점은 문제점이 발생될 경우 앞 단계로 올라가기 어렵다는 점이 있다.
4.2 데이터베이스 모델링
4.2.1 데이터베이스 모델링 개념
데이터베이스 모델링이란 현 세계에서 사용되는 작업이나 사물들을 DBMS의 데이터베이스 개체로 옮기기 위한 과정이다.
쉽게 말하면 현실에서 쓰이는 것들을 테이블로 변경하는 작업이다.
구현하고자 하는 업무에 대한 폭 넓고 정확한 지식이 필요하고 데이터베이스 시스템에 대한 깊은 지식과 경험이 요구된다.
4.2.2 데이터베이스 모델링 실습
데이터베이스 모델링은 개념적 모델링, 논리적 모델링, 물리적 모델링으로 나뉠 수 있다.
개념적 모델링
주로 업무 분석 단계에 포함된다.
처음 현실 세계에서 추상화 수준의 높은 수준을 형상화 하기 위해 개념적 모델링을 한다.
조직 사용자의 데이터 요구 사항을 찾고 분석하는 것부터 시작하며, 특정 자료의 중요도와 유지 여부를 결정한다.
엔티티-관계 다이어그램을 생성하는 역할이다.
논리적 모델링
논리적 모델링은 업무 분석의 후반부와 시스템 설계의 전반부에 걸쳐 진행된다.
엔티티 중심의 데이터 모델이 완성되면 구체적인 모습과 흐름에 따른 구체화된 업무 중심의 데이터 모델을 만들어 낸다.
물리적 모델링
시스템 설계 후반부에 주로 진행된다.
논리적 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다.
매장을 찾는 고객의 명단과 구매 내역을 기록이 되어 있다.
물건을 구매한 내역이 없는 고객 을 위쪽으로 다시 정렬 해보면 L자형 테이블이 된다.
L자형 테이블의 문제는 공간이 낭비된다는 것이다.
L자형 테이블을 빈칸이 있는 곳과 없는 곳으로 분리해보면 고객 테이블과 구매 테이블로 나눠지게 된다.
빈 부분이 없어져 공간을 절약할 수 있으나 두 가지 문제점이 생긴다.
고객 테이블과 똑같은 정보가 중복된다는 것이다.
그래서 중복을 없애주고 각각의 고객을 구분하기 위해 고객 키를 기본 키로 두어야 한다.
구매 테이블만 보니 누가 구매한 것인지를 알 수 없기 때문에 구분할 수 있는 기본 키로 설정된 고객 이름을 넣어준다.
테이블 구분이 잘 되었다. 하지만 구매 테이블만으로는 고객에게 배송할 수 없기에 두 테이블의 연관성을 맺어줘야 한다.
이를 관계라고 한다.
부모와 자식을 구분하는 방법은 주가 되는 쪽은 부모로, 상세가 되는 쪽을 자식으로 설정한다.
왜래키는 부모 테이블의 기본 키와 일치되는 구매 테이블의 고객 이름으로 설정해야 한다.
만약 고객 테이블에 존재하지 않는 고객 이름을 구매 테이블에 추가하려고 한다면 제약 조건을 위배하므로 추가될 수 없다.
또한 부모 테이블의 데이터를 삭제하기 위해서는 자식 테이블에 연결되어 있는 데이터를 확인하고 삭제해야 한다.
MySQL Workbench 모델링 툴 사용법
file에 New Model을 선택한다.
mydb에 오른쪽 버튼을 클릭하고 Edit Schema를 선택한다.
데이터베이스의 이름을 바꿀 수 있다.
Model Overvie에서 Add Diagram을 더블클릭한다.
EER Diagram 탭이 추가되었으면 다이어 그램을 그릴 수 있는 상태가 된다.
왼쪽 Place a New Table은 테이블을 생성한다.
테이블을 더블클릭하면 아래와 같은 창이 뜨며 컬럼을 만들 수 있다.
제일 아래 쪽에 있는 Place a Relationship Using Existing column을 클릭하고 buyTBL userName과 userTBL userName을 클릭하면 1:N관계가 생성된다.
file에 Save Model을 클릭하여 파일 확장자를 mwb로 저장한다.
해당 파일을 다시 열어 Database에 Forward Engineer를 선택한다.
다음과 같이 설정하고 계속 Next
성공적으로 데이터베이스에 적용되는 것을 확인할 수 있다.
새로고침하면 데이터베이스와 테이블이 추가된 것을 확인할 수 있다.
'Database > MySQL' 카테고리의 다른 글
이것이 MySQL이다. [Chapter 7 - SQL 고급(데이터 형식, 변수, 내장함수)] (0) | 2024.03.09 |
---|---|
이것이 MySQL이다. [Chapter 6 - SQL 기본(SELECT문, SQL문, CTE)] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 5 - MySQL 유틸리티 사용법(외부 Mysql 서버 관리, 사용자 관리)] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 3 - MySQL 전체 운영 실습( 데이터베이스 구축 절차, 테이블, 인덱스, 뷰] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 1 - DBMS와 MySQL 소개] (0) | 2024.03.03 |