데이터베이스 구축
슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합
후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
대체키 : 기본키로 선택되지 못한 후보키
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
비절차적 특성은 관계해석이 지니고 있다.
데이터베이스 용어
차수 = Degree = Attribute의 수 = 속성의 수(관계 DB의 열)
기수 = Cardinality = Tuple의 수 = 대응수(관계 DB의 행)
- 테이블
데이터베이스에서 데이터들을 저장해두는 공간 - 뷰
테이블로부터 유도된 가사의 테이블 - 인덱스
자주 검색되는 컬럼-where 조건식에 자주 언급-에 부여하는 책갈피같은 것 - 스키마
테이블, 뷰, 인덱스 등의 데이터베이스 객체들의 집합 - 필드
엑셀에서 열 column에 해당하는 가장 작은 단위의 데이터 - 레코드(튜플)
엑셀에서 행 row에 해당하는 연관된 필드의 집합 - 엔티티
업무에 필요, 데이터를 저장 및 관리. 테이블 - 속성
엔티티의 한 부분, 업무에 필요하고 최소 값의 단위. 컬럼. - 도메인
속성의 값, 타입, 제약사항에 대한 값의 범위
ㅋㅋ?
Partially Committed: 마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
Committed: 트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태
-> partially committed -> committed
active | |
| V
-> failed -> aborted(rollback연산)
시스템 카탈로그
- 데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지관리한다.
- DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
- 카탈로그에 저장된 정보를 메타 데이터라고도 한다.
- 시스템 그 자체에 관련 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에관한 정보를 유지 관리하는 시스템 테이블이다.
동시성 제어
로킹기법 : 같은 자원을 엑세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜젝션의 순차적 진행을 보장하는 직렬화 기법.
타임스탬프 기법 : 트랜젝션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 트랜젝션 작업을 수행하여 트랜잭션 간의 처리순서를 미리 정하는 기법
E-R 다이어그램 표기법
네모네모 : 개체
동그라미 : 속성
동그밑줄 : 기본키
마름모모 : 관계
선선선선 : 개테 타입과 속성을 연결
트랙잭션의 특성
원자성(atomicity) = 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 오류나면 전부 취소
일관성(consistency) = 트랜잭션의 수행 전, 후의 데이터간의 불일치가 생겨서는 안된다.
격리성(isolation) = 여러 트랜잭션이 동시에 수행되어도, 각각 독립적으로 수행되어야한다.
영속성(=지속성)(durability) = 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야한다.
-CRUD 분석은 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 영어 앞글자를 모아 만든 용어이며, CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것이다.
스키마
- 외부 스키마
사용자 관점의 스키마
사용자 또는 프로그램의 입장에서의 논리적 구조로 여러개가 존재 - 개념 스키마
사용자와 관리자 관점의 스키마
전체를 정의한 것
실제로 어떤 데이터가 저장됐으며, 데이터 간의 관계 정의
전체 관점으로 한 개만 존재, 접근권한, 보안 및 무결성 정의 - 내부 스키마
저장장치와 설계자 및 개발자 관점의 스키마
개념 스키마를 물리적 저장장치에 구현에 사용
물리적 구조 및 내부 레코드의 물리적 순서 표현
데이터베이스 설계 단계
- 개념적 설계
사용자의 요구사항 분석 후, 데이터베이스에 대한 추상적인 형태를 설계
개념스키마 모델링 / 트렌젝션 모델링 / 독립적인 개념스키마설계 / E-R 다이어그램 - 논리적 설계
논리적 모델을 이용하여 논리적 스키마 생성
트렌젝션 인터페이스 설계 / 스키마 평가 및 정제 / 목표 DBMS에 맞는 논리스키마 설계 / 논리적구조의 데이터로 모델화 / 정규화 - 물리적 설계
특정 DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계- 어떤 인덱스를 만들 것인지에 대한 고려
- 성능 향상을 위한 개념 스키마와 변경 여부 검토
- 레코드의 크기
- 파일과 구조 저장을 위한 최소한의 공간
- 빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려사항
- 응답 시간
- 저장 공간의 효율화
- 트랜잭션 처리량
함수 종속의 추론 규칙
- 분해 규칙
X -> YZ이면 X -> Y와 X -> Z이다. - 이행 규칙
X -> Y이고 Y -> Z이면 X -> Z이다. - 반사 규칙
X -> Y이면 X -> Y와 X -> X이다. - 결합 규칙
X -> Y이고 X -> Z이면 X - > YZ이다.
제 1, 2, 3, BCNF 정규화 #
제 4, 5 정규화 #
비정규 릴레이션
↓(도메인이 원자값)
1NF
↓(부분적 함수 종속 제거)
2NF
↓(이행적 함수 종속 제거)
3NF
↓(결정자이면서 후보키가 아닌것 제거)
BCNF
↓(다치 종속)
4NF
↓(조인 종속성 이용)
5NF
도부이결다조(=두부이걸다줘?)식으로 앞부분만 순서대로 암기하시면 쉽습니다.
몰루
- DCL - control
COMMIT
ROLLBACK
GRANT
REVOKE - DDL - definition 정의
CREATE
ALTER
DROP - DML - manipulation 조작
SELECT
INSERT
DELETE
UPDATE
이상의 종류
삽입 / 갱신 / 삭제
순수관계 연산자
select σ / project π / join ⋈ / division ÷
관계 해석
* ∃: 존재한다(There exist)
* ∈: t가 r에 속함( t ∈ r )
* ∀: 모든 것에 대하여(for all)
* ∪: 합집합
분산데이터베이스의 투명성 조건
- 분할 투명성 Division
하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을 인식할 필요가 없음 - 위치 투명성 Location
데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적 명칭만으로 액세스할 수 있음 - 지역사상 투명성
지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능 - 중복 투명성 Replication
동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행 - 장애 투명성 Failure
장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장함 - 병행 투명성 Concurrency
다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
이상 현상
갱신 이상(Modification Anomaly): 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.
삽입 이상(Insertion Anomaly): 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.
삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.
데이터베이스의 무결성 규정
개체무결성 = 모든 테이블이 기본키로선택된 컬럼을 가져야함
참조무결성 = 참조관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지해야함
도메인무결성 = 테이블에 존재하는 필드의 무결성을 보장하기 위한것 ex ) 어떤 값의 허용 에 대한 사항을 정의하고 올바른데이터가 입력되엇는가 확인하는것
무결성규칙 = db에서 무결성규칙은 데이터무결성을 지키기 위한 모든 제약사항을 뜻함
!! 비즈니스 규칙은 데이터베이스 유저들마다 각각 다르게 적용됨 !!
로킹
로킹단위↑ : 로크 수↓, 병행성↓, 오버헤드↓, 공유도↓, 제어기법 간단하여 관리 수월
로킹단위↓ : 로크 수↑, 병행성↑, 오버헤드↑, 공유도↑, 제어기법 까다로워 관리 복잡
릴레이션의 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른값을 갖는다
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다
- 속성의 원자성 : 속성값은 원자값을 갖는다
- 속성의 무순서성 : 각 속성은 릴레이션내에서 유일한 이름을 가지며, 순서는 큰 의미가 없다