성장기

[전공] DB 키워드1 본문

취업 활동/데이터베이스

[전공] DB 키워드1

두드래곤 2023. 11. 3. 15:15
반응형
SMALL

DB 키워드

데이터 사전 = 시스템카탈로그 : 저장되는 데이터에 대한 정보(메타데이터를 유지하는 시스템 DB)

데이터 디렉터리 : 데이터사전에 있는 데이터 실제로 접근하는데 필요한 위치정보를 저장하는 시스템 DB

데이터베이스 특성
실시간 접근성,계속적인 변화, 동시공유, 내용에 의한 참조

DCL 데이터 제어어 역활
접근권한과 보안유지, 무결성 유지, 동시성 제어, 시스템 회복기업 -> 트랜잭션과 연관됨.
명령어 : rollback, revoke, commit, grant

DDL : 정의어 테이블(릴레이션에 대한 정의)
속성 : schema domain table view index

무결성 제약
개체 무결성 : 기본키는 NULL 안됨
참조 무결성 : 외래키는 참조되는 릴레이션의 기본키 값 또는 NULL 이어야함
도메인 무결성 : 속성값은 정의된 도메인 값 또는 범위안에 속해야한다.

View : 외부스키마 == 가상릴레이션
1. 물리적으로 존재하지 않고 논리적으로만 존재( 데이터에 대한 접근을 제한해서 보여줌)
2.검색은 기본적으로 거의 동일하지만 뷰에 대한 사입수정 삭제 연산은 제한적으로 수행
3.수행된 명령어는 실제 기본 테이블에 반영됨.
4.뷰에서 다른 뷰를 만드는것도 된다.
5.뷰가 정의된 실제 테이블 삭제되면 관련된 뷰도 삭제됨.
6. 명령어 create view drop view (alter 정의 는 수정 불가)

데이터베이스 설계
요구분석 개념적 설계-논리적 설계-물리적설계-구현

이상 현상
삽입 이상 : 새 데이터를 삽입하는데 원하지 않은 정보의 강제 삽입
삭제 이상 : 데이터를 삭제할때 필요한 데이터 까지 삭제 (연쇄 삭제에 의한 정보의 손실 수강을 삭제했는데 3학년이라는 정보도 삭제)
갱신 이상 : 중복 투플이나 속성간의 종속성에 의해 다른 튜블(행)을 변경해야되서 생기는 이상현상.

정규화 : 이상현상을 제거하기 위해 속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정
논리적 설계(스키마 설계) 
정규화 특정
논리적 설계 단계에서 수행, 일반적으로 검색시간이 증가한다. 논리적 처리 및 품질에 영향을 미침
(물리적 구조 및 처리에 영향을 주는 것은 아님)

스키마 변환의 원리 : 정보의 무손실, 데이터의 중복성 감소, 분리의 원칙

함수 종속(FD) : 
부분적함수 종속
이행적함수 종속
결정자이면서 후보키 아닌것 제거
정규화 과정
1정규형 : 모든 속성의 도메인(속성값,범위)이 원자값으로 구성
2정규형 : 기본키가 아닌 모든 속성이 완전함수 종속되면 2정규형이다.(부분함수 종속을 제거한것)
3정규형 :
3.5 정규형bcnf :
4정규형 :
5정규형 :

트랜잭션 (동시성 제어)
논리적인 작업의 단위
하나의 트랜잭션은 commit / rollback 되어야함.
장애발생에 대한 복구 작업 병행제어 작업을 위한 중요한 단위
하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아둔것.
sql문들의 모임 집합

회복
트랜잭션 특성
원자성 all or noting 반드시 모드 이루어지거나 아니어야한다. (회복)
일관성 트랜잭션 성공 후 데이터베이스가 일관성 있는 상태를 유지해야함. (무결성,동시성 제어)
고립성 수행중인 트랜잭션이 완료될떄까지 다른 트랜잭션들이 중간 연산에 접근하면 안됨.(동시성 제어)
지속성 완료된 결과의 영속성이 보장해야된다. (회복)


동시성 제어
동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향은 이들을 순차적으로 수행하였을때
DB에 미치는 영향과 같도록 보장
다수 사용자가 데이터 베이스를 동시에 접근하도록 허용하면서 데이터의 일관성을 유지함

직렬 스케줄
비직렬 스케줄
직렬가능

목적
데이터베이스의 공유 최대화
시스템 활용도를 최대화
일관성 유지
응답시간 최소화



병행수행의 문제점(병행 제어가 필요한 이유)
갱신 분실 ==손실
비완료 의존성
모순성
연쇄복귀
오손 데이터 읽기(dirty read)
반복할 수 없는 읽기(

로킹(locking)
로크(lock) : DB 내의 각 데이터 항목과 연관된 하나의 변수
갱신할때는 독점로크 (새로운 요청(독점,공유 로크)에 대해 대기 거부)  
읽을때는 공유로크(공유로크는 허용, 독점로크는 대기)
2단계 로킹 프로토콜

데드록 2개 이상의 트랜잭션들이 서로 상대방이 보유하고 있는 로크를 요청하면서 기다리고 있는 상태
데드록을 해결하기 위해서는 방지기법이나 희생자선정하여 푸는 방법 사용

팬텀문제 한 트랜잭션에 속한 2개 이상의 selecte문이 수행결과가 다른 현상
이중로그 로그를 두개의 디스크에 중복해서 저장(RAID)
트랜잭션 로그

세마포어 및 ....

반정규화

LIST