데이터베이스 기본 개념 및 명령어 요약
프로시저 (Procedure)
- 정의: 절차형 SQL을 활용하여 특정 기능을 수행하는 트랜잭션 언어.
- 특징: 독립적으로 실행 가능, 여러 SQL 문 포함 가능, 재사용 및 유지보수 용이.
함수적 종속 (Functional Dependency)
- 정의: 데이터들이 특정 기준값에 의해 종속되는 현상.
- 예시: 학번 → 이름.
뷰 (View)
- 정의: 사용자에게 제한적으로 자료를 보여주기 위한 가상 테이블.
- 특징: 논리적 데이터 독립성 제공, 접근 제어를 통한 자동 보안 제공.
- 제약: 독립적인 인덱스 없음, 뷰 정의 변경 불가, 삽입/삭제/갱신 연산 제약.
트랜잭션의 특성 (ACID)
- Atomicity (원자성): 트랜잭션의 연산이 모두 반영되거나 전혀 반영되지 않음.
- Consistency (일관성): 트랜잭션 완료 후 항상 일관성 있는 데이터베이스 상태 유지.
- Isolation (독립성): 동시에 실행되는 트랜잭션 간 간섭 불가.
- Durability (영속성): 완료된 트랜잭션의 결과는 영구적으로 반영됨.
DDL (Data Definition Language)
- 정의: 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경, 삭제할 때 사용하는 언어.
- 명령어: CREATE, ALTER, DROP.
DCL (Data Control Language)
- 정의: 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 언어.
- 명령어: COMMIT, ROLLBACK, GRANT, REVOKE.
SQL 명령어
- CREATE TABLE: 테이블 생성.
- DROP TABLE: 테이블 삭제.
- INSERT INTO: 테이블에 새로운 튜플 삽입.
- DELETE FROM: 테이블에서 튜플 삭제.
- UPDATE: 테이블에서 튜플 내용 갱신.
E-R 다이어그램 (E-R Diagram)
- 기호 및 의미: 사각형 (개체 타입), 마름모 (관계 타입), 타원 (속성), 선 (연결).
릴레이션의 특징
- 유일성: 중복된 튜플 포함 불가.
- 순서 없음: 튜플 간 순서 없음.
- 유일한 속성 명칭: 속성의 유일한 식별을 위해 명칭은 유일해야 함.
키의 종류
- 후보키 (Candidate Key): 튜플을 유일하게 식별하는 속성들의 부분집합.
- 슈퍼키 (Super Key): 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키.
- 기본키 (Primary Key): 후보키 중 선정된 주키.
- 대체키 (Alternate Key): 후보키 중 기본키를 제외한 나머지.
- 외래키 (Foreign Key): 다른 릴레이션의 기본키를 참조하는 속성.
널 값 (NULL Value)
- 정의: 데이터베이스에서 아직 알려지지 않거나 모르는 값.
무결성 (Integrity)
- 개체 무결성: 기본키는 NULL 값이나 중복값을 가질 수 없음.
- 참조 무결성: 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함.
관계 대수 (Relational Algebra)
- Select (σ): 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성.
- Project (π): 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션 생성.
- Join: 공통 속성을 중심으로 두 개의 릴레이션을 합쳐 새로운 릴레이션 생성.
- Division (÷): X⊃Y인 두 개의 릴레이션에서 S가 가진 속성을 제외한 속성만을 구하는 연산.
정규화 (Normalization)
- 정의: 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만드는 과정.
- 장점: 데이터 중복 최소화, 데이터 무결성 보장.
이상 (Anomaly)
- 정의: 데이터베이스 내 데이터 중복으로 인해 릴레이션 조작 시 발생하는 문제.
- 종류: 삽입 이상, 삭제 이상, 갱신 이상.
정규화 과정
- 비정규 릴레이션: 정규화 이전의 상태.
- 1NF (제 1 정규형): 모든 속성의 도메인이 원자값.
- 2NF (제 2 정규형): 부분적 함수 종속 제거.
- 3NF (제 3 정규형): 이행적 함수 종속 제거.
- BCNF (보이스-코드 정규형): 결정자가 후보키가 아닌 것 제거.
- 4NF (제 4 정규형): 다치 종속 제거.
- 5NF (제 5 정규형): 조인 종속성을 이용한 분해.
이행적 종속 관계
- 정의: A → B이고 B → C일 때 A → C를 만족하는 관계.
일반 집합 연산자
- 합집합 (UNION): ∪
- 교집합 (INTERSECTION): ∩
- 차집합 (DIFFERENCE): −
- 교차곱 (CARTESIAN PRODUCT): ×
순수 관계 연산자
- Select (σ): 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성.
- Project (π): 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션 생성.
- Join: 공통 속성을 중심으로 두 개의 릴레이션을 합쳐 새로운 릴레이션 생성.
- Division (÷): X⊃Y인 두 릴레이션에서 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만 구하는 연산.
관계 해석
- 정의: 관계 데이터 모델의 제안자인 코드(Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안한 언어.
- 특징: 원하는 정보가 무엇인지만 정의하는 비절차적 언어.
교차곱 (Cartesian Product)
- 정의: 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산.
- 특징: 디그리는 두 릴레이션의 디그리를 더한 것, 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같음.