본문 바로가기
DB/SQLD & SQLP

[SQLD] 정리 1 (데이터 모델링의 이해, SQL 기본)

by JiGyeong 2016. 5. 30.

▶데이터 모델링의 이해


엔티티

업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (thing) 명사 (관계는 verb)

- 기본 (Basic) 엔티티 : 독립적 생성 가능 ( 고객 )

- 메인 (Main) 엔티티 : 업무의 중심 ( 계약 )

- 행위 (Active) 엔티티 : 두개 이상의 부모 엔티티로 발생 ( 주문목록 )


* 엔티티 특징

가. 업무에서 필요로 하는 정보

나. 식별이 가능해야 함

다. 인스턴스의 집합

예)

엔티티 : 사건

인스턴스 : 사건 2010-011

라. 업무프로세스에 의해 이용

마. 속성(Attributes)을 포함 ( 사건번호, 사건 발생일 ...)

바. 관계의 존재


* 엔티티 분류

가. 유무형 ( 

유형엔티티 : 사원

사건엔티티 : 주문

개념엔티티 : 조직 )


나. 발생시점 ( 

기본엔티티 : 승용차

중심엔티티 : 사고

행위엔티티 : 주문목록 )


속성

한개의 속성 값을 가져야함.


* 속성 분류

복합속성 : 주소(시, 구, 동)

단순속성 : 나이, 성별


* 도메인 : 속성이 가질 수 있는 값의 범위 (char, Integer )

예) 고객 10char로 만들었을 때, 공통적으로 갖다 쓰면됨.


관계

* 관계 패어링 : 각각 인스턴스 사이에 설정되어 있는 관계

* 관계 : 관계 패어링의 집합을 논리적으로 표현한 것


차수(Degree) : 애트리뷰트의 개수 - 릴레이션 R의 차수

카디널리티(Cardinality) : 릴레이션에 포함되어 있는 튜플의 개수


연관관계 : 실선 (항상 표현됨)

의존관계 : 점선 (상대방 행위에 의해 표현됨)


식별자

* 엔티티 내에서 인스턴스를 구분할 수 있는 구분자

* 업무적으로 구분되는 정보 - 논리 데이터 모델링 단계에서 사용

* (키 - DB접근을 위한 매개- 물리 데이터 모델링 단계에서 사용)

* 특징

 - 유일성 : 주 식별자에 의해 엔티티 내의 모든 인스턴스들을 구별해야 함

 - 최소성 : 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되야 함

 - 불변성 : 주 식별자가 한번 특정 엔티티에 지정되면 그 식별자의 값은 변하면 안됨

 - 존재성 : 주 식별자가 지정되면 그 값은 반드시 존재


대체 식별자 = 주 식별자 != 외부 식별자

(외부 식별자(FK) : 자신이 필요한 속성이 아니라 다른 엔티티와의 관계를 통해 자식 엔티티에 생성되는 속성)


* 대표성 여부 ( 주식별자, 보조식별자 )

* 스스로 생성 여부 ( 내부식별자, 외부식별자 )

* 속성의 수 ( 단일식별자, 복합식별자 )

* 대체여부 ( 본질식별자, 인조식별자 )


* 주식별자 도출기준

- 해당업무에서 자주 이용되는 속성을 주식별자로 지정하도록 함

- 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함

- 속성의 수가 많아지지 않도록 함 ( 인조식별자를 만든다 )


로우체이닝(Row Chaining)

-로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고, 두 개 이상의 블록에 걸쳐 저장되는 형태


로우마이그레이션(Row Migration)

- 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에 저장하지 못하고, 다른 블록의 빈공간에 저장하는 형태


대량 데이터 처리 유형

- RANGE PARTITION : 날짜 OR 숫자값으로 분리

- LIST PARTITION : 지점 별로 분리

- HASH PARTITION : HASH조건으로 분리


슈퍼/서브타입 변환 기준

-데이터 양, 트랜잭션의 유형


Webster 사전

-가설 또는 일정 양식에 맞춘 표현


모델링

-데이터관점 (Data, What)

-프로세스관점 (Process, How)

-상관관점(둘사이)


* 개념적 모델링 : 업무중심적, ERD 생성

* 논리적 모델링 : 정규화( 신뢰성 있는 데이터 구조 얻는 것이 목적 )

* 물리적 모델링 : 컴퓨터 하드웨어에 어떻게 표현될 것인가.


* 외부 스키마 : 사용자 관점, View 단계

* 개념 스키마 : DB에 저장되는 데이터 표현

* 내부 스키마 : 실제 데이터 저장


데이터 모델링의 세 가지 요소

1) 업무가 관여하는 어떤것 (Thing)

2) 어떤 것이 가지는 성격 (Attributes)

3) 업무가 관여하는 어떤 것 (Relationships)


분산데이터베이스 투명성

- 분할 투명성

- 위치 투명성

- 지역 투명성

- 중복(복제) 투명성

- 병행 투명성

- 장애 투명성



▶SQL 기본 및 활용◀


DBMS (Database Management System)

효율적인 데이터 관리, 필요시 데이터를 복구하기 위한 강력한 기능의 SW


DDL(Data Definition Language) 데이터 정의어

CREATE, ALTER, DROP, TRUNCATE


DML(Data Manipulation Language) 데이터 조작어

SELECT, INSERT, DELETE, UPDATE


TCL(Transaction Control Language) 트랜젝션 제어어

COMMIT, ROLLBACK


DCL( GRANT: 권한 부여 / REVOKE : 권한 취소 )



연산자 우선순위




COALESCE ( EXPR1, EXPR2, ... )

임의의 개수 EXPR에서 NULL이 아닌 최초의 EXPR을 나타낸다. 만일 모든 EXPR이 NULL이라면 NULL을 리턴한다.






NULLIF ( EXPR1, EXPR2)

EXPR1이 EXPR2와 같으면 NULL을, 같지 않으면 EXPR1을 리턴한다.

특정값을 NULL로 대체하는 경우에 유용하다.




GROUP BY

- 집계함수를 쓸때 GROUP BY 없으면 ERROR

- GROUP BY 에 ALIAS 쓰면 ERROR


실행순서

DATE



NULL

Oracle에서 NULL은 제일 큰 문자로 취급한다. 그래서 오름차순시 제일 마지막에 나타난다.

SQL Server에서 NULL은 제일 작은문자로 취급된다.



ROWNUM

Oracle에서 ROWNUM절은 WHERE에서 실행되므로 ORDER BY가 먹지 않아 VIEW를 써줘야한다.

SQL Server에서 TOP은 별도의 처리없이 ORDER BY 이후에 실행된다.


TOP

WITH TIES 옵션은 같은 값일 경우 같이 출력되게 한다.


STDDEV( 표현식 )

표현식의 표준 편차를 출력한다.


VARIAN( 표현식 )

표현식의 분산을 출력한다.


트랜잭션

원자성(Atomicity)

일관성(Consistency)

고립성(Isolation)

지속성(Durability)



SQL 문장에서 집합별로 집계된 데이터에 대한 조회 조건을 제공하기 위해서 시용하는 절은?

HAVING