database-03-데이터모델링
2021, Apr 08
aggregation function
- sum(), avg(), count(), max(), min
- null이 있을 경우 제외하고 계산을 한다
group by
- Database는 선택 목록의 집계함수를 각 행 그룹에 적용하고 각 그룹에 대해 단일 결과 행을 반환한다
- 이상한 값을 출력하지만 에러가 발생하지 않으므로 setting을 해줘야한다 => ONLY_FULL_GROUP_BY
- select절에 있는 일반열은 group by절에 있어야 정상적으로 동작한다
- 일반 열말고 그냥 sum(salary) 이런거랑 where절 해서 조건에 해당하는 카운트는 셀 수 있다
SET Operator
- 여러 테이블의 행을 연결
- 참고 : join은 여러 테이블의 열을 연결
- select절에 있는 column의 개수와 type이 일치해야 한다
모델링
- 개념적 데이터베이스 모델링
- Enity 를 추출 (예시 회원)
- 속성 구성 (예시 아이디, 비밀번호,email)
- 관계 분석
- 두 entity간의 업무적인 연관성 또는 관련 사실
- 관계차수,
- 선택성 : 선택적인지 반드시인지를 표시
- Entity간의 관계를 정의해서 ER-Diagram 정의
- 논리적 데이터베이스 모델링
- ER-Diagram을 Mapping Rule을 적용하여 스키마 설계
- 기본키, 참조키
- 단순 엔티티 => 테이블
- 속성 => 컬럼
- 식별자 => 기본키
- 관계 => 참조키, 테이블
- 정규화
- 데이터의 중복을 제거하고 속성들을 본래의 제자리에 위치 시키는 것
- 물리적 데이터베이스 모델링
- 데이터베이스 스키마를 좀 더 효율적으로 구현하기 위한 작업
- DBMS 특성에 맞게 실제 데이터베이스내의 개체들을 정의하는 단계
- 데이터 타입 지정 - 역정규화
- 시스템 성능을 고려하여 기존 설계를 재구성하는 것
- 매번 조인을 해야되서 시스템의 성능저하를 가져오는 경우