[SQLD] 개념정리 2과목 - SQL기본

    정보요구사항 (Information Requirements)

    1. 개념

    • 정보요구사항: 비즈니스나 조직에서 필요로 하는 정보의 내용, 형식, 제공 주기, 보고서 형식 등을 명세화한 것으로, 데이터베이스 시스템을 구축하고 운영하기 위한 기본적인 요구사항을 의미함.

    2. 구성 요소

    • 데이터 요구사항(Data Requirements): 필요한 데이터의 종류, 속성, 관계 등을 명세화한 것으로, 데이터베이스에 저장될 데이터의 세부 사항을 기술함.
    • 기능 요구사항(Functional Requirements): 시스템이 수행해야 하는 기능에 관한 요구사항으로, 사용자가 시스템에서 수행할 작업이나 프로세스에 대한 설명을 포함함.
    • 성능 요구사항(Performance Requirements): 시스템이 수행해야 하는 작업에 대한 시간적, 처리량적 제약 사항을 기술한 것으로, 응답 시간, 처리량, 가용성 등을 포함함.
    • 보안 요구사항(Security Requirements): 시스템 및 데이터에 대한 보안 수준을 명시한 것으로, 접근 권한, 데이터 보호, 로그 기록 등을 포함함.

    3. 목적

    • 비즈니스 목표 달성: 정보요구사항을 충족시킴으로써 조직의 비즈니스 목표를 달성할 수 있도록 지원함.
    • 의사 결정 지원: 적절한 정보가 제때에 제공되어 의사 결정에 필요한 데이터를 제공하여 조직의 의사 결정을 지원함.
    • 효율적인 운영: 적절한 정보가 제공되어 비즈니스 프로세스를 효율적으로 운영할 수 있도록 함.

    4. 수집 방법

    • 인터뷰: 관계자와의 인터뷰를 통해 정보요구사항을 파악함.
    • 문서 분석: 기존의 문서나 보고서를 분석하여 필요한 정보를 도출함.
    • 관찰: 업무 프로세스나 시스템 사용 패턴 등을 관찰하여 정보요구사항을 도출함.
    • 설문조사: 관계자에게 설문을 실시하여 정보요구사항을 파악함.

    5.  문서화

    • 요구사항 명세서(Requirement Specification): 정보요구사항을 명세화하여 문서화한 것으로, 데이터 요구사항, 기능 요구사항, 성능 요구사항, 보안 요구사항 등을 포함함.

    DDL, DML, DCL, TCL

    DDL (Data Defined Language_정의)

    CREATE , DROP, ALTER, RENAME, TRUNCATE

    DML (Data Manipulation Language_조작)

    SELECT, INSERT, DELETE, UPDATE

    DCL (Data Control Language_제어)

    GRANT, REVOKE

    TCL (Transaction Control Language_트랜잭션 제어)

    COMMIT, ROLLBACK, SAVEPOINT

    • 트랜잭션 이란 ? : 데이터베이스 논리적 연산 단위 → 사용자의 의해 실행된 SQL문의 집합이다 즉, 변경된 데이터가 TCL에 의해 DB에 반영되는 것이라고 보면 된다.
    • 하나의 트랜잭션은 하나 이상의 SQL문을 가진다.
    • 하나의 트랜잭션은 모두 적용되거나 모두 실패되어야 한다.

    트랜잭션의 특징 ( ACID )

    1. 원자성 (Atomicity) : All or nothing
    2. 일관성 (Consistency) : 트랜잭션 실행 전 오류가 없다면 실행 후에도 오류가 없어야 한다
    3. 고립성 (Isolation) : 하나의 트랜잭션 실행 중에 다른 트랜잭션은 접근할 수 없다
    4. 영속성 (Durability) : 갱신한 내용은 DB에 영구적으로 저장된다.

    WHERE 절

    • SQL에서 조건을 줄 때 사용한다. → 원하는 행만 출력이 가능하다
    • WHERE 절과 함께 쓸 수 있는 연산자
    = : ~와 같다
    < : ~보다 작다
    > : ~보다 크다
    !=, <> : ~가 아니다
    IS NOT NULL : NULL이 아닌것
    NOT 컬럼명 = : ~가 아니다
    LIKE % 문자 % : '문자' 가 들어간 것
    BETWEEN A AND B : A와 B 사이
    IN (1,2,3) : 1,2,3인것
    IS NULL : NULL인 것
    

    Function(함수)

    문자함수

    LOWER / UPPDER : 소문자 or 대문자
    Length : 길이
    Substr : 부분 자르기 
    Instr 
    LPad / RPad
    Trim / LTrim / RTrim : 자르기, 왼쪽 자르기, 오른쪽 자르기 
    Replace : 대체 
    

    숫자 함수

    ROUND : 반올림
    TRUNCATE : 버림
    Ceil / Floor : 가까운 정수 반환
    Power : 제곱 
    

    날짜 함수

    SYSDATE, SYSTIMESTAMP
    ADD_Months, Next_dat, Last_dat
    TO_CHAR
    

    집계 함수

    COUNT
    SUM
    AVG
    MIN
    MAX
    

     

    Group By 절 & Having 절

    • GROUP BY 절
    • : 집합 (테이블) 내 하나 혹은 여러 행을 그룹화해서 평균, 합계, max, min 등 집계함수를 이용해 계산하는 기능
    • HAVING 절 : Grounp By 와 함께 사용 가능한 조건절 ##. Where절, Having 절 모두 조건절 인데, Where는 Group by 하기 전 조건을 줄 때 사용하고, Having 절은 Group by 연산 이후 조건을 주고 싶을 때 사용한다.

    조인(Join)

    - 두 개 이상의 테이블을 결합하여 데이터를 출력하는 명령어
    - PK, FK의 값을 기반으로 JOIN 을 성립시킨다
    - 여러 테이블을 하나의 테이블로 만드는 과정
    
    1. INNER JOIN : 두 개 테이블 간 매칭되는 데이터의 조합 중 같은 것만 출력시킨다.
    2. NATURAL JOIN
    - 양 테이블 간 동일한 컬럼명을 가지고 자동으로 매칭되는 INNER JOIN이다.
    - WHERE 절에서 JOIN 조건을 사용하지 않고, ON 절, USING절에서는도 이 조인을 사용하지 않는다.
    
    1. CROSS JOIN ( = 카티션곱, CARTESIAN PRODUCT)
    - JOIN 하는 테이블 간 조인 조건이 없을 때 실행되는 JOIN이다.
    - 두 개의 테이블 간 매칭되는 모든 테이터의 조합을 출력한다.
    	즉, 조인 조건이 없이 모든 데이터를 만난다.
    - JOIN 조건을 따로 정의하지 않는다.
    
    1. OUTER JOIN : 기준이 되는 한쪽은 매칭되는 값이 없어도 출력한다, 동일값이 업다면 NULL을 출력한다.

    ON vs USING

    • ON절 : 동일하지 않은 이름을 가진 컬럼끼리의 JOIN 조건에 사용한다 (동일해도 사용이 가능한 절이다) ⇒ 즉 대부분 모든 JOIN문에 ‘ON 절’을 사용한다.
    • USING 절 : 두 테이블에 존재하는 공통된 컬럼명을 사용하며, 데이터 유형도 동일해야 한다. ⇒ 아예 동일한 명, 동일 유형일 시 USING절도 사용가능하다.

    댓글