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

12. 조인
1) 여러 테이블을 합쳐 원하는 데이터를 얻으려는 작업
2) 내부 조인(INNER JOIN) : 2개 이상의 테이블에서 공통되는 속성을 가진 데이터를 검색하기 위한 연산
3) 외부 조인(OUTER JOIN) : 테이블에서 조인 조건에 해당하는 속성 값이 없는 데이터까지 모두 조회하는 연산
-1 왼쪽 외부 조인(LEFT OUTER JOIN) : 왼쪽 테이블의 모든 데이터가 결과 테이블에 조회
-2 오른쪽 외부 조인(RIGHT OUTER JOIN) : 오른쪽 테이블의 모든 데이터가 결과 테이블에 조회
-3 완전 외부 조인(FULL OUTER JOIN) : 양쪽 테이블에서 조건을 만족하지 않는 데이터까지 모두 포함해 결과
테이블에 조회
'CS > 데이터베이스' 카테고리의 다른 글
| [데이터베이스] 데이터베이스설계 실습3 (1) | 2024.09.16 |
|---|---|
| [데이터베이스] 데이터베이스설계 실습2 (1) | 2024.09.16 |
| [데이터베이스] 데이터베이스설계 실습1 (1) | 2024.09.16 |
| [데이터베이스] 관계 데이터 모델의 개념과 정의문 (2) | 2024.09.15 |
| [데이터베이스] 데이터베이스 관리 시스템 (1) | 2024.09.15 |