DB / SQL 관련

 

작성중


1. DB의 특징

  1) 무결성 : 동일 내용에 대해 서로 다른 데이터가 저장되는것을 허용하지 않음

    (1) 개체 무결성

    (2) 참조 무결성

    (3) 도메인 무결성

  2) 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정

  3) 회복성 : 장애 발생 시 특정 상태로 복구

  4) 보안성 : 불법적인 노출, 변경, 손실로부터 보호

  5) 효율성 : 응답시간, 저장공간 활용 등이 최적화되어 사용자 소프트웨어, 시스템 등의 요구 조건 만족

 

 

2. 정규화

  1) 제 1 정규화 : 도메인 원자값

    반복되는 속성 제거, 결정자 찾기

  2) 제 2 정규화 : 부분적 함수 종속

    부분함수 종속성 제거 (X,Y->Z일때 X->Z or Y->Z인 경우 부분함수 종속)

  3) 제 3 정규화 : 이행적 종속

    이행함수 종속성 제거 (X->Y, Y->Z 일때 X->Z를 만족하는 경우)

  4) BCNF (보이스/코드) : 3차 정규화 + 모든 결정자가 후보키 집합에 속함.

    결정자 함수 종속성 제거 : 결정자에서 FD(조인 종속) 관계가 있다면 테이블 분리

  5) 제 4 정규화 : 다치 종속

    다중값 종속성 제거 : 상호 관계 없는 Entity는 Entity별로 분리

  6) 제 5 정규화 : 조인 종속

    조인 종속 제거 : 후보키를 통하지 않은 조인 종속 제거

  7) 정규화 효과 : 데이터 간 중복성 / 불일치 제거, 이상현상 제거, 데이터 무결성 확보. 

 

3. 명령어

  1) 권한 / Role 부여 - GRNAT <> 회수 - REVOKE

  2) 기본 연산

    (1) Insert : 데이터 추가

    (2) Select : 데이터 불러오기 (선택)

    (3) Update : 저장된 데이터 수정

    (4) Delete : 테이블 내 데이터 삭제

 

  3) 테이블

    (1) Create : 테이블 구성, 기본키 / 외래키 지정

    (2) Alter : 테이블 제약조건, 속성 수정

    (3) Drop : 테이블 삭제

 

5. 트랜젝션 4가지 특성

  1) 원자성 : 작업은 더이상 쪼개질 수 없음. 정상적으로 수행되거나 전혀 수행되지 않아야 함.

  2) 일관성 : 트랜젝션 수행이 DB의 일관성을 보존해야 함. 데이터 불일치 발생해서는 안됨

  3) 독립성 : 트랜젝션 수행은 독립적으로 수행되어야 함.

  4) 지속성 : 트랜젝션이 성공한 이후에는 변경전까지 데이터가 보존되어야 함.

 

6. 프로시저

  1) 개념 : 절차형 SQL을 활용, 특정 기능 수행 트랜젝션. 데이터 조작어 (DML) 수행이 일반적.

  2) 구성 

    (1) Declare : 프로시저의 명칭, 변수/인수, 데이터 타입 정의

    (2) Begin/End : 프로시저의 시작과 종료. Begin - End 쌍으로 'Block'을 구성.

    (3) Control : 특정 비교 조건에 따라 조건에 맞는 Block 혹은 문장 실행 (if - else와 유사)

    (4) SQL : Select / Insert / Update / Delete 등을 사용.

    (5) Exception : 예외 처리 부

    (6) Transaction : 수행된 내역의 DBMS 적용/ 취소 (Commit / RollBack) 여부 결정. 완료 처리.

 

7. SQL 사용자 정의 함수

  1) 개념

    (1) 프로시저와 동일하게 절차형 SQL을 사용. 연산 결과를 단일값으로 반환 가능

    (2) DBMS 공통 함수 외의 사용자 직접 정의

    (3) 사용자 정의 함수의 호출을 통해 실행. 반환 단일값을 조회 / 삽입 / 수정 작업에 이용 가능

    (4) 프로시저와 유사하나 '종료 시 단일값 반환' 이 가장 큰 차이점.

 

  2) 명령어

    (1) Create : 사용자 정의 함수 생성

    (1+) Or Replace : 이미 동일 명칭의 함수가 있다면 새로 작성한 함수로 교체

    (2) Return : 결과값 반환

+ Recent posts