ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 이론 정리
    면접 정리 2019. 2. 18. 16:37
    반응형

    내용 보충이 심각함!!! ㅎㅎㅎㅎ




    1. 정규화 

      1) 제 1정규형 : 모든 속성은 반드시 1개씩 있어야합니다. (칼럽은 원자값을 가진다.)

      2) 제 2정규형 : 테이블의 모든 컬럼이 완전 함수적 종속을 만족해야한다.

      3) 제 3정규형 : 기본키를 제외한 속성들 간의 이행적 함수 종속이 없어야합니다.


      * 정규화 목적 

      1.데이터의 구조의 안정성을 최대화한다.

      2. 어떠한 릴레이션이라도 데이터베이스 내에서 표현이 가능하다.

      3. 효과적인 검색 알고리즘을 생성할 수 있다.

      4. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.

      5. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.

      

    ※ 보충설명 ( 데이터베이스 카테고리를 만들어서 예시와 설명 예정 )

         제 1정규형은 릴레이션에 속한 모든 도메인이 원자값을 가진다는 의미인데, 원자값이라는 단어가 애매하지만 이렇게 이해할 수 있다.

          ▶ 모든 칼럼과 튜플의 중복된느 지점에는 한개의 값만 가진다. 

              (원자값이라는 단어 자체에 의미보단 한개의 값만 가지는걸로 1정규화를 이해하자)


          제 2 정규형은 부분 함수적 종속을 제거하고 완전 함수적 종속이 되어야한다.

          ▶ 예를 들어 테이블에 주문번호, 상품ID, 수량, 단가 라는 칼럼들이 있는데 주문번호와 상품 ID가 복합키가 되어있지만 

              단가라는 칼럼은 상품 ID에만 종속이 되어있고, 주문번호와는 별개이다. 이를 부분 함수적 종속이라 하고,

              이 부분함수적 종속을 제거함으로써 제 2정규형이 완성이된다. 

              ( 주문번호, 상품ID, 수량, 단가 ) → ( 주문번호, 상품ID, 수량 ) // ( 상품ID, 단가 ) 


          제 3정규형은 이행적 함수 종속을 제거해야한다.

          ▶ 이행적이란 A=B=C라는 구조가 형성되는 것을 간단하게 이야기할 수 있는데 한 테이블안에 이러한 관계가 형성이 되면 안된다.

              예를 들어 한 테이블안에 ( 주문번호, 회원ID, 회원명, 생년월일, 회원등급 ) 가 있는데 

              주문번호를 통해 회원ID 를 알 수 있고, 회원ID를 통해 회원명, 생년월일, 회원등급을 알 수 있는 주문번호=회원ID=회원명, 생년원일, 회원등급

              과 같은 구조를 형성하고 있으므로 이행적 함수 종속을 제거해야 한다.

              ( 주문번호, 회원ID, 회원명, 생년월일, 회원등급 ) → ( 주문번호, 회원ID ) // ( 회원ID, 회원명, 생년원일, 회원등급 ) 



    2. ERD (Entity Relationship Diagrm) :

        - 데이터 베이스 모델링을 위한 다이어그램


    3. 다 대 다 관계처리 


    4. DDL, DML , DCL 

      1. DDL : Data Definition Language ( create : 테이블 생성, drop:테이블 삭제, alter:테이블 구조 수정 )

      2. DML : Data Manipulation Language ( insert : 정보 저장, select : 정보 조회, update : 정보수정, delete : 정보 삭제 ) -CRUE

      3. DCL : Data Control Language (commit : 정보를 실제 db에 저장, rollback : 작업을 취소)



    5. join 

        - 여러 테이블의 정보를 결합하기 위한 SQL

    - inner join

    - outer join 


    6. group by ~ having

        - 테이블에서 특정 컬럼을 기준으로 그룹화할 때 사용 (having은 group by에서 사용하는 조건절)



    7. Transaction

        - 데이터베이스의 작업 단위를 말한다.

        - 트랜잭션 처리의 목적은 데이터의 무결성(완전성, integrity)을 위해서이다.

        - DCL (commit, rollback)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     Application ( DAO ) Transaction 처리
     
     try {
        connection.setAutoCommit(false); // 자동 커밋 모드 해제
     
        카드 등록
     
        포인트 등록
     
        connection.commit() // 실제 DB에 반영
     
     } catch() {
     
        connection.rollback(); // 문제 발생 시 작업 취소
     
     } finally {
     
     }
    cs



    8. SubQuery

        - SQL 안의 SQL


    9. View, Inline View 

    10. Database Index

    11. Paging SQL 

    12. DBCP (Database Connection Pool)

        - 데이터베이스 연동 시 생성하고 소멸하는 컨넥션을 

          미리 컨넉션 풀에 생성하여 빌려고 반납받는 동작원리로 시스템의 성능을 향상하기 위한 기술



    13. 트리거(Trigger)

      - 어떤 연쇄적인 동작을 수행할때 활용하는 역할입니다.

      - 테이블에 데이터가 입력, 수정, 삭제될 때 다른 테이블에 연관된 작업을 정의하기 위한 목적으로 사용합니다.

      ex) 입고(상품코드, 입고일자, 입고수량, 입고 단가), 상품(상품명, 상품가격, 재고수량), 판매(판매일자, 판매수량, 판매금액) 과 같이

             세개의 테이블이 존재한다고 가정할 때 상품의 입고수량, 판매수량 데이터를 입력하면 재고수량에 영향을 미칠 수 밖에 없다.

             (상품이 8개의 상품이 입고한다면, 기존의 재고수량이 +8이 되어야하고, 그리고 판매수량이 5가 된다면 재고수량 또한 -5가 되어야한다.

              여기서 트리거를 활용해 연쇄적으로 데이터 처리를 할 수 있다.)

      - 데이터의 연관된 작업을 처리하는 프로시저를 여러번 호출해서 여러번 SQL을 실행할 필요가 없기때문에 편하다.

    반응형

    '면접 정리' 카테고리의 다른 글

    Web 기술 이론 정리  (0) 2019.02.14
    JavaSE 이론 정리  (0) 2019.02.12
Designed by Tistory.