-
데이터베이스 이론 정리면접 정리 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)
123456789101112131415161718Application ( 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