1. PK, FK, ER 모델이란?
- PK: 테이블에서 유일하게 각 Row를 구분하는 속성
- FK: 다른 테이블의 PK의 값을 참조하여 테이블에 표현하는 컬럼
- ER
- 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계성으로 기술하는 데이터 모델
- 개체(Entity): 개체란 단독으로 존재하는 객체를 의미하며 동일한 객체는 존재하지 않는다.
- 속성: 개체가 갖는 속성을 의미한다.
- 관계: 엔티티 타입 간의 관계를 의미
2. 참조 무결성이란?
- 기본키와 참조키 간의 관계가 항상 유지됨을 보장한다.
- 참조되는 테이블의 행을 이를 참조하는 참조키가 존재하는 한 삭제될 수 없고 기본키도 변경할 수 없다.
3. RDBMS
- 모든 데이터를 2차원 테이블로 표현
- 테이블은 ROW과 컬럼으로 이루어진 기본 데이터 저장 단위
- 상호관련성을 가진 테이블의 집합
4. Commit & Rollback
- commit: 쿼리문을 수행하고 크 쿼리문 수행결과에 대해서 확정을 짓는 것
- rollback: 사용자가 쿼리문을 실수로 수행했을 때 데이터를 원복시키기 위해 사용하는 것
5. DB 정규화란?
- 데이터의 일관성, 데이터 중복을 최소화하기 위해 하나의 테이블을 둘 이상 분리하는 작업
6. DB 정규화 목적?
- 자료 저장에 필요한 저장 공간을 최소화하고 자료의 삽입, 갱신 및 삭제에 따른 이상현상을 제거하고(데이터 무결성 유지), 자료 구조의 안정성 최대화를 위해서 이다.
7. 정규화
- 1 정규화: 원자값이 아닌 도메인을 분해
- 2 정규화: 부분 함수 종속성을 제거
- 3 정규화: 이행 함수 종속 제거
- BCNF: 결정자가 후보키가 아닌 함수 종속 제거
8. SQL
- DDL: CREATE, DROP
- DML: UPDATE, SELECT, DELETE
- DCL: GRANT, REVOKE
- TCL: COMMIT, ROLLBACK
9. 데이터베이스 이상
- 삽입 이상: 원하지 않은 자료가 삽입
- 삭제 이상: 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하지 않은 정보가 손실
- 갱신 이상: 일부만 변경하여 데이터가 불일치 하는 모순
10. 인덱스
- 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상 시키기 위한 자료 구조
- 사용하면 좋은 경우
- 규모가 작지 않은 테이블
- INSERT, UPDATE, DELETE가 자주 발생하지 않는 컬럼
- JOIN이나 WHERE 또는 ORDER BY에 자주 사용되는 컬럼
- 데이터의 중복도가 낮은 컬럼
11. 트랜젝션
- 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위
- 특성
- 원자성: 트랜잭션이 데이터베이스에 모두 반영되거나, 전혀 반영되면 안된다.
- 일관성: 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야한다.
- 독립성: 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 점
- 지속성: 트랜잭션이 성공적으로 완료되었을 경우 경과는 영구적으로 반영되어야 한다.
12. 뷰
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
- 뷰는 저장장치내에는 물리적으로 존재 X
- 장점
- 논리적 데이터 독립성을 제공
- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원한다,
- 사용자의 데이터 관리를 간단하게 해준다.
- 접근 제어를 통한 자동 보안이 제공된다.
- 단점
- 독립적인 인덱스를 가질 수 없다.
- ALTER를 사용할 수 없다.
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.
13. 데이터 베이스 스키마
- 데이터 베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
- 개념 스키마: 데이터베이스의 전체적인 논리적 구조
- 내부 스키마: 물리적인 저장장치에 입장에서 DB가 저장되는 방법을 기술
- 외부 스키마: 사용자의 입장에서 필요한 데이터베이스 정의
14. 프로시저, 트리거, 사용자 정의 함수
- 프로시저: 처리 결과를 반환하지 않거나 한 개 이상의 값을 반환
- 트리거: 데이터 베이스 시스템에서 이벤트가 발생할 때 마다 자동적으로 수행되는 절차형 SQL
- 프로시저와 유사하고 RETURN을 사용하여 처리 결과를 단일 값으로 반환