카테고리 없음

SQLD 대비 요점 정리

아리빠 2023. 9. 4. 20:13

ER표기법 종류

 

-Peter Chen

-IDEF1X

-IE

-Backer


발생 시점에 따른 엔터티 분류

분류 설명
기본 업무에 원래 존재하는 정보, 다른 엔터티와 관계에 의해 생성되지 않음=> 독립적
다른 엔터티의  부모 엔터티로 다른 엔터티로부터 식별자 상속 받지 않고, 자신의 식별자를 가짐
중심 기본 엔터티로부터 발생, 업무에서 중심적인 역할
많은 데이터 발생 + 다른 엔터티와의 관계를 통해 행위 엔터티 생성
행위 2개 이상의 부모 엔터티로부터 발생, 자주 내용 변경 or 많은 데이터 생성 

도메인: 데이터 모델에서 엔터티 속성이 가질 수 있는 값의 범위


.배타적 관계로 설계시 

 

A ---

          C           C에 A와 B의 값이 모두 입력되도록 구현하면 안됨

B----


관계 고려한 트랜잭션 구성

 

-트랜잭션은 일의 최소 단위

-> 하나의 트랜잭션으로 묶인 두개 이상의 연산은 동시에 처리해야함

BUT 현재의 저장 기술로는 동시에 처리가 불가능..!

DBMS는 트랜잭션의 원자성을 지원하기 위해 All or Nothing 방식을 사용하여 두개 이상의 연산을 모두 성공하거나 모두 실패하도록 처리하는 방식을 사용


인조 식별자의 장단점

 

엔터티에는 데이터를 유일하게 식별할 수있는 속성이 반드시 존재해야하는데 이를 식별자라 칭함

업무 정의에 따라 엔터티 설계 과정에서 자연스럽게 도출된 식별자: 본질 식별자

설계자의 필요에 의해 인위적으로 도출한 식별자: 인조 식별자

 

인조식별자 사용시 데이터 모델의 식별자 구조가 단순해지고, 모델의 유연성도 좋아짐(어떤 데이터든 유연하게 받아들일 수 있다)

 

본질 식별자 대신 인조 식별자 사용을 고려해야하는 경우는

-본질 식별자의 속성 값이 변경 될 수 있는 경우

-본질 식별자의 속성 값이 NULL을 허용할 경우

-데이터 발생 규칙이 변경 될 수 있는 경우


VARCHAR(n)

-> n바이트의 문자열 데이터 저장가능( 영문자 및 숫자 1글자는 1바이트)


CEIL : 입력된 인자값보다 크거나 같은 정수 값을 반환하는 함수

SIGN: 인자 값이 양수면 1, 음수면 -1, 0이면 0을 반환하는 함수


NVL

expr1이 널이 아니면 expr1을 반환, 널이면 expr2를 반환

NVL(expr1, expr2)

NULLIF

expr1과 expr2가 서로 다르면 expr1을, 같으면 널을 반환

NULLIF(expr1, expr2)

COALESCE

널이 아닌 첫번째 expr을 반환

COALESCE(expr,[, expr] ...)

CROSS JOIN 은 카티션 곱을 발생시킨다


CUBE는 지정한 표현식의 모든 조합을 집계

CUBE(C1, C2) = GROUPING SETS((C!1,C2),C1,C2,()) 와 동일


ROW_NUMBER 함수는 이어진 ORDER BY 절로 지정한 순서에 따른 고유한 순번을 반환

정렬한 값이 동일하더라도 임의의 순서로 다른 순번을 부여하기에 정렬값이 동일한 행의 저장 순서가 변경될 경우 순번이 변경 될 수 있다.

 

ex) 

empno ename sal c1
7800 han 905 1
7654 kim 1250 2
8665 park 1250 3
9000 hwang 1600 4

-> 동일한 sal 1250에 대해 다른 순번을 부여


LAST VALUE

윈도우 끝 행의 칼럼 값을 반환, IGNORE NULLS 키워드 기술 시 널 무시 

LAST_VALUE(expr) [IGNORE NULLS] OVER (analytic_clause)

수량사

? 0회 또는 1회 일치
* 0회 또는 그 이상의 횟수로 일치
+ 1회 또는 그 이상의 횟수로 일치
{m} m회 일치
{m,} 최소 m회 일치
{,m} 최대 m회 일치
{m,n} 최소 m회 최대 n회 일치

' (.)\1 '패턴은 동일한 문자가 2회 반복된 문자열 검색