Learn & Record

SQL 문법 MariaDB (모델링, 기획, 분석, 설계, 구현, 유지, 보수, 엔티티, 관계, 1:1관계) 본문

Dev/SQL

SQL 문법 MariaDB (모델링, 기획, 분석, 설계, 구현, 유지, 보수, 엔티티, 관계, 1:1관계)

Walker_ 2024. 2. 13. 13:51

1. 모델링

 - 큰 프로젝트 시 규모가 크기에 체계없이 진행하다가는 시행착오와 비용 낭비, 실패 가능성 급증

 - 그래서 많은 방법론이 등장. 폭포수 모델, 애자일 모델 등

 - 폭포수 모델 : 기획 > 분석 > 설계 > 구현 > 테스트 > 수정

 - 오랜 기간 경험에 의해 검증된 만큼 효율성 높음

 - 각 단계는 엄격히 분리되어 있어 앞 단계를 제대로 수행한 후 다음 단계로 가야함. 거꾸로 되돌리기 쉽지 않고 비용상승

 

2. 기획

 - 어떤 프로그램을 누구 어떻게 작성할 지 계획을 세우며 요구 기능, 예산, 개발 기간을 결정

 - 책임자 역할

 

3. *중요* 분석

 - 실제 수작업을 면밀히 분석하는 업무 파악부터 시작

 - 업무의 개요와 목적, 수행 방법, 규칙과 절차 등의 비즈니스 로직을 문서로 정리

 - 개발자는 실무를 모르고 현업 실무자는 전산을 모르니 이 단계가 길 수밖에 없음

 - 분석을 대충한 채로 개발에 들어가는 것보다, 기간이 길더라도 확실하게 분석하는 것이 훨씬 좋음

 

4. 설계

 - 분석 문서를 참조하여 구현 방법을 결정

 - 모델링 : 비즈니스 로직에 따라 실세계의 사물을 테이블로 정의하고 관계를 설정하는 작업

 - 엔티티 정의 > 속성 정의 > 식별자 선정 > 관계 설정 > 정규화

 - 모델링은 건축의 설계도에 해당

 - 모델링은 일반화된 모범 답안이 없어 숙련된 노하루를 요하는 고급 기술

 - 처음부터 완벽할 수는 없어 중간에 구조를 변경하는 불가피한 경우가 있지만 설계에 만전을 가하면 수정 횟수 최소화

 

5. 구현 

 - 모델링한 데이터를 테이블로 구체화하고 효율적인 운영을 위한 인덱스, 프로시저 등을 정의

 - 분서과 설계가 제대로 되어 있다면 구현은 설계를 그대로 옮기는 것에 불과해 예상보다 시간이 오래 걸리지 않음

 

6. 유지, 보수

 - 구현 완료한 프로그램을 실제 업무에 사용

 - 확장성까지 고려하여 개발하면 유지 보수 간편

 

7. 엔티티 

 - 모델링은 제작과정에서 분석 다음 단계인 설계에서 해야 하는 작업

 - 모델링 첫 단계 : 데이터베이스에 저장할 대상인 엔티티를 정의하고 추출(속성 추출)하는 것

 - 엔티티 : 정보에 해당하는 모든 실체이며 전산화의 대상

 - 엔티티 추출 대상이 명확히 보이지 않는 경우, 명사 먼저 엔티티 정의 후 명사에 가해지는 동작도 엔티티로 정의

 - 상세할수록 좋지만 불필요한 정보까지 포함하여 용량을 낭비할 필요는 없음

 - 추출한 다음 속성 중에 엔티티를 대표하는 키본키를 선정

 - 레코드끼리 구분 가능한 고유성이 있고 자주 검색하는 속성을 선정해야 함

 

8. 관계

 - 각각의 엔티티는 독립적으로 존재하지 않고 업무적으로 서로 연관

 - 관계는 엔티티간의 연결 형태이며 관계형 DB의 특징을 결정하는 핵심

 - 반드시 연결해야 하는 필수 관계와 필요할 때만 하는 선택 관계가 있음

 

9. 1:1 관계

 - 양쪽 테이블의 인스턴스를 하나씩 연결

 - 이때 두 테이블의 레코드끼리 짝을 찾을 수 있는 연결 고리가 필요

 - 관계형 DB에서 레코드의 순서는 의미가 없어 순서로 연결할 수는 없음

 - 양쪽 테이블에 똑같은 키를 만들어 주면 연결 관계를 알 수 있는데 이런 용도로는 고유번호가 적합