[정보처리기사] 데이터베이스 구축
3과목 : 데이터베이스 구축
정규화 과정
- 1NF : 모든 도메인이 원자 값으로만 구성
- 2NF : 기본키가 아닌 속성이 기본키에 대한 완전 함수적 종속을 만족, 부분적 함수 종속을 제거한 정규형
- 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속 관계를 만족하지 않는 정규형
- BCNF : 모든 결정자가 후보키인 정규형, 종속성 보존X
- 4NF : 다치 종속이 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족
- 5NF : 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
인덱스
- 데이터베이스 성능에 많은 영향을 주는 DBMS의 구성 요소
- 테이블과 클러스터에 연관되어 독립적인 저장 공간을 보유
- 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 별도로 구성한 순서 데이터
- 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제
- 인덱스 생성 : CREATE
- 인덱스 삭제 : DROP
데이터 사전
- 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스
- 시스템 카탈로그(System Catalog), 메타 데이터(Meta Data)라고도 함
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL 문을 이용하여 내용 검색이 가능
- 사용자가 시스템 카탈로그를 직접 갱신할 수 없음
- SQL 문으로 여러 가지 객체에 변화를 주면 시스템이 자동으로 갱신함
릴레이션
- 튜플의 유일성 : 모든 튜플은 서로 다른값을 가짐
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없음
- 속성의 원자성 : 속성값은 원자값을 가짐
- 속성의 무순서성 : 각 속성은 릴레이션내에서 유일한 이름을 가지며, 순서는 큰 의미가 없음
뷰
- 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있음
- 뷰는 일종의 가상 테이블이며, update에는 제약이 따름
- 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있음
- 뷰는 논리적으로만 존재 함
트랜젝션 용어
- Partially Committed: 마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
- Committed: 트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태
트랜젝션 특성
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨
트랜잭션 설계단계
- 개념적 설계 : 트랜잭션 모델링/ 독립적인 개념 스키마 모델링/ 개념스키마 설계/ E-R 다이어그램
- 논리적 설계 : 트랜잭션 인터페이스 설계/ DBMS에 맞는 논리스키마 설계/ 테이블 설계/ 논리적 매핑/ 스키마 평가 및 정제
- 물리적 설계 : 레코드 집중의 분석,설계/ 저장레코드 양식 설계 / 저장 구조 및 액세스 경로 설정
키의 종류
- Super key(슈퍼키)
- 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
- Candidate key(후보키)
- 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 기본키(Primary Key)
- 테이블의 각 레코드를 고유하게 식별하는 필드나 필드의 집합
- 테이블에 기본키 설정은 필수가 아님
- 기본키를 설정하지 않고도 다른 테이블과의 관계를 설정할 수 있음
- 기본키는 혼합속성(다수 필드)에 설정할 수 있음
- 테이블의 각 레코드를 고유하게 식별하는 필드나 필드의 집합
- 외래키
- 관계형 데이터베이스에서 한 테이블 속성 집합이 다른 테이블의 기본키가 됨.
- 데이터베이스 내에 존재하는 테이블들의 관계에서 참조의 무결성을 보장하기 위함임
- 중복되는 값, 비어있는 값(Null) 가질 수 있음(<->기본키)
- 관계형 데이터베이스에서 한 테이블 속성 집합이 다른 테이블의 기본키가 됨.
데이터 모델의 구성 요소
- 구조(Structure):논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현
- 연산(Operation):실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본 도구
- 제약 조건(Constraint):DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
논리 데이터 모델의 구성요소
- 개체
- 속성
- 관계
분산 데이터베이스의 목표
- 위치 투명성(Location Transparency):하드웨어와 소프트웨어의 물리적 위치를 사용자가 알 필요가 없음
- 중복(복제) 투명성(Replication Transparency):사용자에게 통지할 필요없이 시스템 안에 파일들과 자원들의 부가적인 복사를 자유롭게할수 있음
- 병행 투명성(Concurrency Transparency):다중 사용자들이 자원들을 자동으로 공유할 수 있음
- 장애 투명성(Fai ure Transparency):사용자들은 어느 위치의 시스템에 장애가 발생했는지 알 필요가 없음
DCL
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언
- ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구
- GRANT : 데이터베이스 사용자에게 사용 권한 부여
- REVOKE : 데이터베이스 사용자로부터 사용 권한 취소
DDL
- CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
- ALTER : TABLE에 대한 정의를 변경하는 데 사용
- DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제
DML
- SELECT : 테이블에서 조건에 맞는 튜플을 검색
- INSERT : 테이블에 새로운 튜플을 삽입
- DELETE : 테이블에서 조건에 맞는 튜플을 삭제
- UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경
E-R 모델
- 마름모 : 관계
- 사각형 : 개체
- 선 : 관계-속성 연결
데이터베이스 병행 제어
- 목적
- 여러 사용자들의 데이터베이스 공동 사용을 최대화
- 사용자의 응답 시간 최소화
- 데이터베이스 시스템의 활용도 최대화
- 데이터베이스의 일관성 유지
- 여러 사용자들의 데이터베이스 공동 사용을 최대화
데이터베이스 물리적 설계 시 고려 사항
- 어떤 인덱스를 만들 것인지에 대한 고려
- 성능 향상을 위한 개념 스키마의 변경 여부 검토
- 레코드의 크기
- 파일과 구조 저장을 위한 최소한의 공간
- 빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려사항
- 응답 시간
- 저장 공간의 효율화
- 트랜잭션 처리량
- 응답 시간
관계 해석
- ∃: 존재한다(There exist)
- ∈: t가 r에 속함( t ∈ r )
- ∀: 모든 것에 대하여(for all)
- ∪: 합집합
관계 대수 연산
- 일반 집합 연산자
- 합집합
- 교집합
- 차집합
- 카티션 프로덕트
- 합집합
- 순수 관계 연산자
- Select
- Project
- Join
- Division
- Select
분산 데이터베이스의 구성요소
- 분산 처리기
- 분산 데이터베이스
- 통신 네트워크
- 분산 트랜잭션
로킹
- 병행제어 기법의 종류 중 하나
- 직렬화 기법
- 데이터베이스, 파일, 레코드 등은 로킹단위가 될 수 있음
- 한번에 로킹할 수 있는 객체의 크기를 로킹단위라고 함
- 로킹 단위가 작은 경우 : 예를들어 레코드와 같은 작은 단위로 잠그면 여러개를 잠궈야하기 때문에 관리가 복잡해져서 오버헤드(처리시간,메모리)가 증가하고 단위가 작으므로 일부 잠궈도 나머지 사용할 수 있는 개수가 많으므로 병행성(=공유도)가 높아짐
- 로킹이 큰 경우 : (위와 반대로 생각) 오버헤드가 감소하고 병행성(=공유도)가 낮아짐
###