1. 데이터베이스의 개념 

데이터베이스(Database) 통저운공
- 통합된 데이터(Integrated Data): 중복이 최소화된 데이터의 집합
- 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 매체에 저장된 데이터
- 운영 데이터(Operational Data): 현재 운영 중인 데이터
- 공용 데이터(Common Data): 여러 사용자 또는 응용 시스템들이 공유하는 데이터
데이터베이스 설계 요개논물구
- 요구 조건 분석: 어떤 데이터가 필요한지, 무엇을 해야 하는지 정리
- 개념적 설계: 필요한 정보를 그림(도식)으로 쉽게 표현
- 논리적 설계: 사용할 데이터베이스에 맞게 구조를 구체적으로 설계
- 물리적 설계: 실제 저장 방식과 성능을 고려해 데이터 저장 방법 결정
- 구현: 데이터베이스를 실제로 만들고 사용할 수 있게 준비
스키마(Schema)
- 외부 스키마(External Schema): 사용자 관점, 각 사용자가 보는 스키마
- 개념 스키마(Conceptual Schema): 통합 관점, 조직 전체의 데이터베이스
- 내부 스키마(Internal Schema): 물리적 관점, 실질적인 데이터의 저장 구조
데이터베이스 사용자
-
데이터베이스 관리자(DBA; DataBase Administrator)
- 스키마를 정의, 생성, 삭제
- 저장 구조 및 접근 방법 정의
- 보안 및 접근 권한 정책 관리
- 장애 예비 조치와 회복에 대한 전략 수립
- 무결성을 위한 제약조건
- 데이터 사전 구성
- 성능 향상을 위해 데이터베이스 재구성
- 응용 프로그래머(Application Programmer): 데이터베이스에 접근하여 일반 사용자가 사용할 수 있는 인터페이스 제공
- 일반 사용자(End User): 터미널을 통해 데이터베이스에 접근하여 자원을 활용
2. 데이터 모델 

데이터 모델의 정의
데이터 모델은 실제 세계의 정보를 컴퓨터가 표현할 수 있도록 단순화, 추상화, 체계화한 개념적 모델이다.
데이터 모델의 구성 요소 개속관
- 개체(Entity): 데이터베이스에 표현하려는 대상, 실세계의 객체나 개념
- 속성(Attribute): 개체의 특성을 나타내는 가장 작은 논리적 단위
- 관계(Relationship): 개체들 간의 의미 있는 연관성
개체(Entity)의 구성 요소
- 개체 타입(Entity Type): 속성들로만 정의된 개체의 정의
- 개체 인스턴스(Entity Instance): 각 속성에 값을 가진 개별 개체
- 개체 세트(Entity Set): 개체 인스턴스들의 집합
관계(Relationship)의 형태 일일다다
- 일대일(1:1): A의 각 원소가 B의 정확히 하나의 원소와 대응
- 일대다(1:N): A의 각 원소가 B의 여러 원소와 대응, B의 각 원소는 A의 하나의 원소와 대응
- 다대다(N:M): A의 각 원소가 B의 여러 원소와 대응, B의 각 원소도 A의 여러 원소와 대응
3. ER(Entity Relationship) 모델 

ER 모델의 정의
Peter Chen이 1976년에 제안한 가장 대표적인 개념적 데이터 모델로, ERD(Entity Relationship Diagram)를 통해 개체, 속성, 관계를 쉽게 표현할 수 있다.
ER 도형의 종류
도형 | 의미 |
---|---|
사각형 | 개체 타입(Entity Type) |
마름모 | 관계 타입(Relationship Type) |
타원 | 속성(Attribute) |
밑줄 친 타원 | 기본키(Primary Key) 속성 |
이중 타원 | 다중값 속성(Multivalued Attribute) |
점선 타원 | 유도 속성(Derived Attribute) |
삼각형(ISA) | ISA 관계 |
선 | 개체 타입과 속성을 연결 |
겹치는 타원 | 복합 속성(Composite Attribute) |
ISA 관계
특정 개체를 여러 하위 개체로 나눌 수 있을 때, 상위 개체와 하위 개체 간의 관계를 나타낸다.
예: 학생 → 재학생, 휴학생, 졸업생
4. 관계형 데이터베이스의 구조 

관계형 데이터베이스의 개요
- 1970년 IBM의 E. F. Codd에 의해 처음 제안
- 개체와 관계를 모두 릴레이션(Relation)이라는 표로 표현
- 개체 릴레이션과 관계 릴레이션으로 구분
릴레이션의 구조
- 릴레이션 스키마: 릴레이션의 구조를 나타냄 (속성들의 집합)
- 릴레이션 인스턴스: 실제 값들 (튜플들의 집합)
릴레이션의 구성 요소
-
속성(Attribute): 릴레이션을 구성하는 가장 작은 논리적 단위
- 디그리(Degree): 속성의 개수
-
튜플(Tuple): 릴레이션을 구성하는 각각의 행
- 카디널리티(Cardinality): 튜플의 개수
릴레이션의 특징 유순변중원키
- 유일성: 동일한 튜플이 존재할 수 없음
- 순서 무관: 튜플들 간의 순서는 중요하지 않음
- 변화성: 시간에 따라 변함 (삽입, 삭제 등)
- 중복 배제: 속성명은 유일해야 함
- 원자값: 속성값은 더 이상 분할할 수 없는 원자값
- 키 설정: 튜플을 유일하게 식별하기 위한 키 설정
도메인(Domain)
하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합
예: 성별 속성의 도메인 = {‘남’, ‘여’}
5. 키(Key)의 개념 및 종류 

키의 정의
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
키의 종류 슈후기대외
슈퍼키(Super Key)
- 릴레이션 내 속성들의 집합으로 구성된 키
-
유일성은 만족하지만 최소성은 만족하지 않음
예: (학번, 주민등록번호), (학번, 주민등록번호, 성명)
후보키(Candidate Key)
- 튜플을 유일하게 식별하기 위한 속성들의 부분집합
-
유일성과 최소성을 모두 만족
예: 학번, 주민등록번호
기본키(Primary Key)
- 후보키 중에서 특별히 선택된 키
- NULL 값을 가질 수 없음
- 중복값을 가질 수 없음
대체키(Alternate Key)
- 기본키로 선택되지 않은 나머지 후보키
외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 릴레이션 간의 관계를 표현하는 데 사용
키의 특성
- 유일성(Uniqueness): 하나의 키 값으로 단일 튜플을 유일하게 식별
- 최소성(Minimality): 최소한의 필요 속성으로 구성되어 하나의 속성을 제거하면 유일성을 잃음
6. 무결성(Integrity) 

무결성의 정의
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
무결성 제약 조건
데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 저장되는 것을 방지하는 제약 조건
무결성의 종류 개도참사NULL고키관
개체 무결성(Entity Integrity)
- 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없음
예: <학생> 릴레이션에서 '학번'이 기본키면 반드시 값을 입력해야 하고 중복 불가학생>
도메인 무결성(Domain Integrity)
- 주어진 속성 값이 정의된 도메인에 속한 값이어야 함
예: <수강> 릴레이션의 '과목명'이 '영어', '수학', '전산'만 허용되면 이 값들만 입력 가능수강>
참조 무결성(Referential Integrity)
- 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함
- 외래키와 참조하는 테이블의 기본키는 도메인과 속성 개수가 같아야 함
사용자 정의 무결성(User-Defined Integrity)
- 속성 값들이 사용자가 정의한 제약조건에 만족해야 함
NULL 무결성
- 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
고유 무결성(Unique Integrity)
- 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 함
키 무결성(Key Integrity)
- 하나의 릴레이션에는 적어도 하나의 키가 존재해야 함
관계 무결성(Relationship Integrity)
- 릴레이션에 튜플의 삽입 가능 여부 또는 릴레이션 간 튜플들의 관계에 대한 적절성 여부를 지정
7. 정규화(Normalization) 

정규화의 정의
함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
정규화의 목적 효중삽저무
- 효과적인 검색 알고리즘 생성
- 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생 방지
- 삽입 시 릴레이션 재구성 필요성 감소
- 저장공간 최소화 및 데이터 구조의 안정성 극대화
- 무결성 유지 극대화
정규화 단계 도부이결다조
- 도메인이 원자값 (1NF)
- 부분적 함수 종속 제거 (2NF)
- 이행적 함수 종속 제거 (3NF)
- 결정자이면서 후보키가 아닌 것 제거 (BCNF)
- 다치 종속 제거 (4NF)
- 조인 종속성 이용 (5NF)
이상(Anomaly)의 종류 삽삭갱
- 삽입 이상(Insertion Anomaly): 데이터 삽입 시 의도와 상관없이 원하지 않은 값들도 함께 삽입
- 삭제 이상(Deletion Anomaly): 한 튜플 삭제 시 의도와 상관없는 값들도 함께 삭제
- 갱신 이상(Update Anomaly): 일부 튜플의 정보만 갱신되어 정보에 모순 발생
함수적 종속성(Functional Dependency)
릴레이션의 어떤 속성의 값이 다른 속성의 값을 고유하게 결정하는 것
표기: X → Y (X가 Y를 함수적으로 결정)
다치 종속(Multi Valued Dependency)
A, B, C 3개의 속성을 가진 릴레이션 R에서 (A, C)에 대응하는 B 값의 집합이 A 값에만 종속되고 C 값에는 무관할 때
표기: A →→ B (B는 A에 다치 종속)
8. 고급 데이터베이스 기능 
뷰(View)
- 하나 이상의 기본 테이블로부터 유도된 가상 테이블
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여줌
- 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주
- 논리적 독립성 제공
인덱스(Index)
- 데이터 레코드의 검색 시간을 단축시키기 위한 보조적인 데이터 구조
- CREATE문을 이용하여 생성
- TABLE SCAN 방지
- 삽입/삭제가 빈번한 경우 인덱스 개수 최소화 필요
시스템 카탈로그(System Catalog)
- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 메타데이터(Meta-Data) 저장
- 데이터 사전(Data Dictionary)에 저장
9. 트랜잭션(Transaction) 
트랜잭션의 정의
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업 단위로, 데이터베이스 관련 연산의 가장 기본적인 단위
트랜잭션의 특징
- 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위
- 하나의 트랜잭션은 하나의 질의문 또는 여러 질의문으로 구성
- 일반적으로 Commit 또는 Rollback됨
ACID 특성 원일독영
- 원자성(Atomicity): 트랜잭션의 연산은 모두 반영되거나 전혀 반영되지 않음
- 일관성(Consistency): 트랜잭션이 성공적으로 완료되면 일관성 있는 데이터베이스 상태로 변환
- 독립성(Isolation): 동시 실행되는 트랜잭션들이 서로 간섭하지 않음
- 영속성(Durability): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영
Commit과 Rollback
- Commit: 명령 수행 결과를 실제 물리적 디스크에 저장하고 정상 완료를 관리자에게 알림
- Rollback: Commit되지 않은 변경 내용을 취소하고 데이터베이스를 이전 상태로 복원
10. DBMS 

DBMS의 정의
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어
DBMS의 필수 기능 정조제
- 정의 기능(Definition): 데이터 구조, 형, 제약조건 등을 명시
- 조작 기능(Manipulation): 데이터 검색, 갱신, 삽입, 삭제 등의 인터페이스 제공
- 제어 기능(Control): 데이터 무결성 유지를 위한 제어
DBMS의 종류 계망관
- 계층형 DBMS: 트리 구조, 1:N 관계만 지원 (IMS, System2000)
- 망형 DBMS: 그래프 구조, 1:1, 1:N, N:M 관계 모두 지원 (IDS, TOTAL, IDMS)
- 관계형 DBMS: 2차원 표 구조, 가장 널리 사용 (Oracle, SQL Server, MySQL)
DBMS의 장단점
장점 논물공일무보표통최실
- 논리적, 물리적 독립성 보장
- 물리적 중복 피해 기억공간 절약
- 공동 이용 가능
- 일관성 유지
- 무결성 유지
- 보안 유지
- 표준화 가능
- 통합 관리 가능
- 최신 데이터 유지
- 실시간 처리 가능
단점 전전대백시
- 전문가 부족
- 전산화 비용 증가
- 대용량 디스크 집중적 Access로 과부하 발생
- 백업과 회복 어려움
- 시스템 복잡
비관계형 DBMS(NoSQL)
- 데이터 간의 관계를 정의하지 않고 비구조적 데이터를 저장
- 빅데이터 처리를 위한 시스템으로 각광
- 수평적 확장 및 분산 저장 가능
- 데이터 구조에 따라 Key-Value, Document, Graph DBMS 등으로 분류