UML(UNIFIED Modeling Language)
소프트 웨어 공학에서 사용되는 표준화된 범용 모델링 언어
-소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법
유스케이스 다이어그램(UseCase Diagram)
액티비티 다이어그램
상호작용 다이어그램
상태 다이어그램
시퀀스 다이어그램
커뮤니케이션 다이어그램
인터렉션 오버뷰 다이어그램
타이밍 다이어그램
이때 시퀀스, 커뮤니케이션, 인터렉션, 타이밍, 상태 다이어그램은 동적 다이어그램이다.
Actor와 시스템이 수행
연관관계
-액터와 유스케이스 간의 상호작용 관계
포함관계
-유스케이스가 실행하기 위해서 반드시 실행되어야하는 유스케이스와의 관계
확장관계
-유스케이스가 실행함으로써 선택적으로 실행되는 유스케이스와의 관계
일반화 관계
유사한 유스케이스 또는 액터들을 모아 그들을 추상화하여
유스케이스/액터를 연결시켜 그룹핑하는 것
정적(구조) 다이어그램으로 uml모델링에서 가장 일반적으로 사용됨
시스템의 구조와 구조 간 상호 관계를 나타내며 시스템의 논리적 및 물리적 구성요소 설계 시 주로 활용
의존 관계 클래스 간의 지역변수에서 참조하는 관계를 의미함
일반화 관계 : 부모클래스 - 자식 클래스 상속 관계
실체화 관계 부모 인터페이스 - 자식 클래스 상속 관계
+:public
-:private
#: protected
package :~
메서드
ex)+addStudent(student:Student):void
+deleteStudent(id:Integer):void
연관관계-실선이나 화살표(클래스들이 개념상 서로 연결되었음을 나타낸다)
일반화 관계-속이 빈 화살표(상속관계, 한 클래스가 다른 클래스를 포함하는 상위 개념일때.)
집합관계-집약관계: 속이 빈 다이아몬드 클래스들 사이의 전체 또는 부분 같은 관계를 나타낸다.
집합관계-합성 관계 - 속이 찬 다이아몬드 클래스들 사이의 전체 또는 부분같은 관계를 나타낸다.전체 객체의 라이프타임과 부분객체의 라이프 타임은 의존적
의존관계-점선 화살표 연관관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때를 나타낸다.-매우 짧은 시간만 유지
실체화 관계-빈 삼각형과 점선 책임들의 집한인 인터페이스와 이 책임들을 실제로 실현한 클래스들 사이의 관계를 나타낸다
시퀀스 다이어그램의 구성
객체: 객체는 위쪽의 사각형 박스 안에 밑줄 친 이름으로 표시하여, 아래쪽으로 생명선을 가지고 있다.
생명선
객체에서 아래로 뻗어 나가는 연쇄선을 의미하며 시간의 흐름에 따라 발생하는 이벤트를 표시한다.
실행
이벤트로 인해 객체의 오퍼레이션이 실행되고 있음을 나타내며 직사각형으로 표시하며, 직사각형이 길수록 수행 시간이 길다는 의미를 가진다.
메시지
객체간 상호 작용은 메시지 교환으로 이루어지며, 다른 객체로 메시지를 전달하여 전달받은 객체의 오ㅗ퍼레이션을 수행한다. 시간 수행 순서는 위에서 아래로 표시한다.
요약: 요설구테유
프로세스 관점
요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
데이터 관점
개념/논리 db설계 물리 db설계 db구축 db튜닝-유지보수
DB 모델링의 주요 개념
엔티티==TABLE
업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체), (유형, 무형, 문서, 이력, 코드)
- 유형: 물리적인 형태 자체가 있는 것.
- 무형 :눈에 보이지는 않지만 개념적으로 존재하는 것.
- 문서 : 업무 절차상 사용되는 문서나 장부, 전표 ex)거래명세서、금전출납부
- 이력 : 업무상에서 반복적으로 이루어지는 행위 – 사건의 내용, 일자, 시간별로 저장하기 위한 엔티티
- 코드 : 국가코드, 색상코드, 직급분류코드, 상태코드.. (무형 엔티티의 일종)-각종 코드 관리를 위한 엔티티.
인스턴스:엔티티의 속성으로 실제로 구현된 하나의 값. row
엔티티의 조건
- 업무의 관심 대상이 되는 사물이어야 된다.
- 마땅한 속성을 소유해야한다.
- 두 개 이상의 인스턴스를 소유해야한다.
속성 명명규칙 4가지-반드시 외울 것.
속성은 의미가 반드시 드러나도록 작성
해당 업무에서 사용하는 이름 부여
서술식(수식어, 약어 )x
엔티티에서 유일하게 식별 가능한 것으로 작성
관계
-두 엔티티사이의 관련성을 나타냄(데이터를 매개로 한 업무의 흐름과 데이터의 흐름을 규명)
카디널리티
속성
COLUMN 엔티티에서 관리해야 할 최소 단위 정보 항목을 말하며 엔티티는 하나 이상의 속성을 포함(기본, 유도, 설계)
주 식별자: 엔티티 내 각 인스턴스를 구별하는 기준이되는 속성
외래식별자: 관계가 있는 엔티티 간의 연결고리 역할을 하는 속성
개념적 설계
요구분석 단계에서 정의된 핵심 개체와 그들 간의 관계를 바탕으로 ERD를 생성하는 과정
논리적 설계
개념 설계에서 추상화된 데이터를 구체화하여 개체, 속성을 테이블화하고 상세화 하는 과정 (상세화 과정 : 정규화, 식별자 확정, M:M 관계 해소, 참조 무결성 규칙 정의)
물리적 설계
논리적 설계의 산출물인 ERD의 요소들을 관계형 데이터베이스의 요소들로 전환하는 과정
개념적 모델링 순서
- 업무 분석 자료를 토대로 엔티티를 도출하여 엔티티 기술서를 작성한다.
- 엔티티 기술서를 토대로 erd로 엔티티를 작성한다.
- 주식별자를선정한다.
1) 컬럼값 중복 여부 확인을 통한 주식별자 선정
2) 복합키 사용 여부
3) 인위적 주식별자- 엔티티 간의 부모-자식 관계 설정
- 관계의 카디널리티(수적 관계) 지정_
- 관계의 참여도(필수/선택) 파악
- 식별/비식별 관계 파악
주식별자에 더 자세히
- 엔티티에 소속된 인스턴스들을 구별하는 기준 역할을 하는 속성
- 주식별자는 하나가 아닌 여러 속성일 수 있다.(복합키)
- 엔티티의 속성 중 주식별자 속성이 없다면 새로운 속성을 만들어준다.(인위적 주식별자)
- 주식별자는 유일성, 최소성, 불변성, 존재성의 특징을 갖는다.
- 연관 있는 엔티티 간의 연결고리 역할을 하는 속성
- 관계가 있는 두 엔티티를 부모, 자식 엔티티로 구분한 후 부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래 식별자로 지정.
- 존재하지 않으면 부모의 주식별자 속성을 자식에게 추가한 후 외래 식별자로 지정.
논리적 모델링
- 개념적 모델링 ERD를 전부 다 그린후, 식별자까지 다 완료한 상태에서 정규화, 테이블 상세화를 진행하는 구간
관계형 데이터베이스에서 데이터를 구조화 하는 작업
데이터의 중복을 방지하고 보다 효율적으로 데이터를 저장하기 위함
삽입, 삭제, 갱신 이상의 발생 가능성을 줄이기 위함.
정규화가 제대로 이루어지지 않거나, 진행되지 않은 엔티티를 대상으로 삽입, 갱신, 삭제 시 데이터 무결성을 침해하는 경우가 발생하는 것을 이상 이라고 함
이상 발생 시 엔티티에 저장된 데이터에 대한 신뢰도가 하락함.
해결방법 : 정규화
다룰 것은 3가지 (원래는 도부이결다조가 있음.)
도메인 제 1 정규화
부분 함수 제 2 정규화