sqld

조영혜·2022년 2월 22일
0

데이터 모델링

: 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
: 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정정
: 데이터베이스를 구축하기 위한 분석/설계의 과정

중복/비유연성/비일관성 유의!

중복 
: 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 
  도움을 줌으로써 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다. 

비유연성
: 데이터 모델을 어떻게 설계했느냐에 따라 
  사소한 업무변화에도 데이터 모델이 수시로 변경됨으써유지보수의 어려움을 가중시킬 수 있다. 
  데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세의
  작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다. 

비일관성
: 데이터의 중복이 없더라도 비일관성을 발생할 수 있는데, 
  예를들어 신용상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 경우이다. 
  개발자가 서로 연관된 다른 데이터와 모순된다는 고려 없이 
  일련의 데이터를 수정할 수 있기 때문에 이와 같은 문제가 발생할 수 있다. 
  데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의한다면 
  이러한 위험을 사전에 예방하는 데 도움을 줄 수 있다. 
  사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 
  데이터 모델이 업무변경에 취약하게 만드는 단점에 해당한다. 

개념적 데이터 모델링

: 추상화 수준이 높고 업무중심적이고 포관적인 수준의 모델링 진행.
: 전사적 데이터 모델링, EA수립시 많이 이용.

논리적 데이터 모델링

: 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현. 재사용성이 높음.

물리적 데이터 모델링

: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하려 설계.

  • 모델링은 단지 시스템 구현만을 위해 수행하는 타스크가 아니며, 시스템 구현을 포함한 업무분석 및 업무형상화 하는 목적을 가지고 있음.

  • 데이터모델링은 단지 데이터베이스만을 구축하기 위한 용도로 쓰는 것이 아니고 데이터모델링 자체로서 업무를 설명하고 부분에서도 중요한 의미를 가지고 있음.

  • 성능을 고려한 데이터모델링은 정규화를 수행->용량산정과 트랙젝션 유형을 파악하여 반정규화를 수행->또한 pk/fk등을 조정하여 인덱스의 특징을 반영한 데이터모델로 만들고->데이터모델을 검증.

SELECT절 처리순서

FROM->WHERE->GROUB BY->HAVING->SELETE->ORDER BY


NULL

NULL값이 포함된 사칙연산의 값은 모두 NULL
NULL은 연산대상 아님!

NVL, ISNULL

NVL(EXPR1, EXPR2) / ISNULL(EXPR1, EXPR2)
: EXPR1의 결과값이 NULL이면 EXPR2의 값 출력.

NULLIF

NULLIF(EXPR1, EXPR2)
: EXPR1이 EXPR2와 같으면 NULL, 같지 않으면 EXPR1을 리턴.
특정 값을 NULL로 대체하는 경우 유용하게 사용 가능.

COALESCE

: 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 리턴.

  • NULL이 아닌 경우를 찾아내는 문장 = select*from mytable where column1 IS NOT NULL

AGGREGATE

논리 연산자의 우선순위

괄호연산->NOT->비교연산->AND->OR

0개의 댓글