데이터베이스
데이터 저장소, 데이터베이스 , DBMS
- 데이터 저장소
- 데이터를 논리적인 구조로 조직화 하거나, 물리적인 공간에 구축한 것을 의미
- 데이터 베이스
- 공동으로 사용될 데이터를 중복을 배제하여 통합
- 데이터를 저장장치에 저장하는 것
- DBMS
- 데이테베이스를 관리해주는 소프트웨어
정의, 조작, 제어
기능이 존재
스키마
- 데이터베이스의 구조와 제약조건을 기술한 것.
- 외부스키마
- 사용자나 프로그래머의 입장에서 데이터 베이스의 논리적 구조를 정의한 것
- 개념 스키마
- 데이터 베이스의 논리적 구조
- 내부 스키마
- 물리적 장치 입장에서 본 데이터 베이스의 구조
데이터베이스 설계
데이터베이스는 무결성, 일관성, 회복, 보안 ,효율성, 데이터베이스 확장
을 고려해서 작성해야함.
설계 순서
요구조건분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
- 요구조건 분석
- 데이터베이스의 필요용도 파악, 요구조건 명세 작성
- 개념적 설계
- 개념 스키마 모델링, ER 모델링 수행.
- 논리적 설계
- 논리적스키마, 인터페이스 설계
- DBMS가 지원하는 논리적 자료구조로 벼환
- 물리적 설계
- 물리적스키마, 논리적설계로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
데이터베이스 관계
개체와 개체 사이의 논리적인 연결
데이터베이스와 데이터베이스사이의 관계.
- 종속관계
- 식별과 비식별 관계
- 중복관계
- 두 개체 사이의 두번 이상 종속관계가 발생한는 관계
- 재귀관계
- 개체가 자기자신과 관계를 갖음.
- 베타 관계
- 개체가 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계, AND, OR
키
- 후보키
- 유일하게 식별하기 위해 사용되는 속성의 부분집합
- 유일성, 최소성
- 기본키
- 후보키중 선정된 키
- 대체키
- 후보키중 기본키를 제외한 나머지 키
- 슈퍼키
- 유일성은 만족하지만 최소성은 x
- 속성의 잡합으로 구성된 키
- 외래키
- 다른 릴레이션을 참조하는 속성
무결성
데이터베이스에 저장된 값과 현실세계의 값이 일치하는 정확성
- 개체 무결성
- 기본키를 구성하는 어떤 속성도 NULL을 가질수 없음
- 참조 무결성
- 외래키 값은 NULL일수 있음
- 도메인 무결성
- 주어진 값이 도메인(속성의 정해진 값)에 속해야함.
이상
테이블에서 문제가 발생하는 현상
- 삽입 이상
- 원하지 않는 값들로 인해 삽입이 되는 현상
- 삭제 이상
- 연쇄 삭제가 발생
- 갱신 이상
- 갱신의 실수로 정보에 불일치 발생
정규화
- 제 1정규화
- 도메인의 원자성
- 제 2정규화
- 제 1정규화를 만족한 테이블의 부분 함수 종속을 제거
- 제 3정규화
- 제 2정규화를 만족한 테이블의 이행적 함수 종속 제거
- BCNF
- 결정자이면서 후보키가 아닌 것을 제거
- 제 4정규화
- 다치 종속 제거
- 제 5정규화
- 후보키를 통하지 않는 조인 종속 제거
트랜잭션
- 한꺼번에 모두 수행되어야할 일련의 연산
- 원자성, 일관성, 독립성, 영속성
CRUD
Create, Read, Update, Delete를 이용하여 트랜잭션을 분석하는 것.
클러스터 / 파티션
- 클러스터
- 동일한 성격을 가진 데이터들을 블럭으로 묶어서 저장하는 방법
- 파티션
- 대용량의 테이블이나 인덱스를 작은 논리적인 단위인 파티션으로 나누는 것.
- 범위 분할 : 지정된 열의 값을 기준으로 분할
- 해시 분할 : 해시함수를 적용하여 분할
- 조합 분할 : 범위 분할 후 해시함수를 적용.
분산데이터베이스
하나의 시스템을 여러 공간에 나누어 저장하는 데이터 베이스.
- 위치투명성 : 실제 위치를 알 필요 없음.
- 중복투명성 : 실제로 중복이 존재해도 하나의 데이터만 존재한다고 사용자는 인식함.
- 병행투명성 : 다수의 트랜잭션이 동시에 실현되도 결과는 투명
- 장애투명성
RTO (Recovery time objective)/ RPO(Recovery point objective)
- RTO
- 복구되어 다시 가동할때까지 소요시간
- RPO
- 데이터를 복구할 수 있는 기준점
DDL, DML, DCL
- DDL
- Create, Alter, Drop
- DML
- Select, insert, delete, update
- DCL
- Grant revoke, rollback, commit
프로그래밍
정렬
|정렬|시간복잡도| |–|–| |삽입정렬, 선택정렬, 버블정렬| o(n^2)| |퀵정렬, 힙정렬|o(nlog2n)|
트리
- 디그리 -각 노드에서 뻗어나온 가지 수
- 차수
- 노드중 디그리가 가장많은 수
«««< HEAD
556b15ccf837a943e5c54149cb34497d44fad17d