1. 데이터베이스
① 여러 사용자 및 프로그램에서 사용하기 위해 저장 및 관리하는 데이터 집합
② 구성 요소
- 개체 (entity, 엔터티): 데이터로 표현하려는 대상
- 속성 (attribute): 개체의 특성 및 상태
- 관계(relationship): 개체 간 관계
2. 관계형 데이터베이스
① 테이블을 이용해 데이터의 종속성과 구조를 나타내는 데이터베이스
② 용어
- 스키마(schema): 데이터의 구조와 표현 방식, 제약 조건 등을 정의해 데이터베이스의 전체적인 구조를 나타냄
- 릴레이션(relation): 데이터베이스에서 데이터의 개념적 모델
- 테이블(table): 릴레이션을 실제로 구현한 개체로, 행과 열로 관계형 데이터베이스를 구성함
- 튜플(tuple): 테이블의 행에 해당하는 데이터 묶음으로, 레코드라고도 함
- 속성(attribute): 테이블의 열에 해당하고 이름과 타입을 가짐, 필드라고도 함
3. NoSQL 데이터베이스
① 비관계형 데이터베이스로, 다양한 형태의 데이터를 저장함
② 대용량 데이터 조회 시 속도가 빠르고 수평적 확장성이 좋음
4. 키
① 데이터베이스에서 튜플을 구분하기 위한 속성 또는 속성의 집합
② 종류
- 슈퍼 키: 튜플 식별이 가능하며 유일성은 만족하나 최소성은 만족하지 않아도 됨
- 후보 키: 튜플 식별이 가능하며 유일성과 최소성을 만족해야 함
- 기본 키: 후보 키 중 메인이 되는 키로 NULL 값을 가지면 안 됨
- 대체 키: 후보 키 중 기본 키를 제외한 키
- 외래 키: 다른 테이블의 기본 키를 참조하는 키
5. 무결성
① 데이터베이스의 데이터와 현실의 데이터가 일치하는 정확성과 데이터의 일관성을 의미함
② 종류
- 개체 무결성: 모든 테이블의 NULL 값이 아닌 기본 키를 가져야 함
- 도메인 무결성: 테이블의 속성 값은 도메인에 속해야 함
- 참조 무결성: 외래 키의 값은 참조하는 테이블의 기본 키 값과 동일하거나 NULL이어야 함
6. 인덱스
① 튜플 검색 성능을 높이기 위해 속성 값과 튜플이 저장된 주소를 저장하는 것
② 장점: 정렬된 상태를 유지해 데이터 검색 속도를 향상함
③ 단점
- 인덱스 테이블을 저장하기 위한 저장 공간이 따로 필요하고 데이터 추가/수정/삭제 시 속도가 느림
- 삭제 연산 시 인덱스 테이블에는 값이 남아서 불필요한 데이터가 남게 됨
④ 종류
- 해시 테이블 인덱스: 등호 연산만 가능
- B+- 트리 인덱스: 비교 연산 가능
7. 트랜잭션
① 데이터베이스의 상태를 바꾸기 위해 수행하는 작업의 단위
② 특성: 원자성, 일관성, 독립성, 영속성
③ TCL: 트랜잭션을 제어하는 데 사용하는 명령어의 집합
- COMMIT: 트랜잭션의 정상 종료, 데이터베이스에 변경 사항 반영
- ROLLBACK: 트랜잭션의 비정상 종료, 데이터베이스를 이전 상태로 되돌림
- SAVEPOINT: 트랜잭션의 특정 지점 지정
8. 락
① 트랜잭션이 처리되는 순서를 보장해 데이터베이스의 무결성을 유지하려고 사용함
② 종류
- 공유 락: 데이터를 읽는 락, 여러 공유 락이 동시 접근 가능
- 베타 락: 데이터를 수정하는 락, 하나의 베타 락이 처리 중일 때 다른 베타 락이 동시 접근 불가능
9. 트랜잭션의 교착 상태
① 트랜잭션이 자신이 처리 중인 데이터에 대해 락을 가진 상태에서 다른 트랜잭션이 처리 중인 데이터에 대해 락을 요청하면서 무한 대기 상태에 빠진 현상
② 해결 방법
- 예방 기법: 트랜잭션 처리 전 필요한 데이터에 대해 미리 락을 획득함
- 회피 기법: 트랜잭션이 들어온 순서에 따라 락을 획득하거나 트랜잭션이 종료되는 방식으로, wait-die와 wound-wait가 있음
10. 이상
① 트랜잭션 처리 중 속성 간 종속이나 데이터 중복 때문에 발생하는 문제
② 종류
- 삽입 이상: 의도하지 않은 데이터가 삽입됨
- 갱신 이상: 일부 튜플만 갱신되어 데이터 모순 발생
- 삭제 이상: 의도하지 않은 데이터가 삭제됨
11. 정규화
① 데이터베이스의 이상 현상을 해결하기 위해 테이블을 분해하는 것
② 정규화를 필요 이상으로 진행하면 테이블이 많아져 연산 시간이 증가할 수 있음
③ 정규화 단계

12. 조인
① 여러 테이블을 합쳐 원하는 데이터를 얻으려는 작업
② 내부 조인: 2개 이상의 테이블에서 공통되는 속성을 가진 데이터를 검색하기 위한 연산
③ 외부 조인: 테이블에서 조인 조건에 해당되는 속성 값이 없는 데이터까지 모두 조회하는 연산
- 왼쪽 외부 조인
- 오른쪽 외부 조인
- 완전 외부 조인
'공부 기록 > CS' 카테고리의 다른 글
| 4.2 선형 자료구조 (0) | 2024.08.05 |
|---|---|
| 4.1 복잡도 (0) | 2024.08.02 |
| 3.4 조인 (0) | 2024.07.31 |
| 3.3 트랜잭션 (0) | 2024.07.30 |
| 3.2 관계형 데이터베이스 (0) | 2024.07.29 |