정보처리기사 필기 정리 (데이터베이스 구축)
관계형 데이터 모델
Relation 구조 : 행(row) 튜플(tuple) 레코드(recod) - 카디널리티
열(column) 필드(field) 속성(attribute) - 디그리, 차수
도메인(domain) - 속성이 가질 수 있는 원자값들의 집합
데이터 모델
구성요소 – 개체 : 사람이 생각하는 개념이나 정보단위
- 속성 : 데이터의 가장작은 논리적 단위(데이터 항목 또는 필드)
- 관계 : 개체간의 관계
개념적 데이터 모델(추상적 개념으로 표현) ; E-R(Entitt – Relation) 모델
논리적 데이터 모델(컴퓨터 세계: 환경에 맞도록 변환) ; 관계모델 ,계층모델, 네트워크 모델
데이터 모델에 표시할 요소 : 구조(stucture) , 연산(operation), 제약조건(constraint)
관계
형태: 일대일/일대다/다대다
종류: 종속(dependant) / 중복(redundant) / 재귀(recursive) / 배타(exclusive)
데이터 베이스 용어
릴레이션 : 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위(DB – 테이블)
한 릴레이션에는 똑같은 튜플이 포함될 수 없다. 릴레이션에 포함된 튜플들은 모두 상이
한 릴레이션에 포함된 튜플 사이에는 순서가 없다
속성의 유일한 식별을 위해 속성의 명칭은 유일해야하지만 속성을 구성하는 값은 동일한 값이 있을 수 있다
릴레이션을 구성하는 튜플은 유일하게 식별하기 위해 속성들의 부분집합 키로 설정
속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다.
튜플(Tuple) - 테이블의 행 / 레코드
카드날리티(Cardinality) - 튜플의 개수 / 0을 가질 수 있다
속성(Attribute) - 테이블의 열
차수(Degree) - 한 릴레이션 안에 있는 에트리뷰트 수 / 0을 가질 수 없다
도메인(Domain) - 릴레이션에 포함된 속성들을 각각 가질 수 있는 값들의 집합
스키마 – 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터 집합
인덱스(Index) : 데이터 레코드를 빠르게 접근하기 위해 [키, 값, 포인터]쌍으로 구성하는 데이터 구조
데이터베이스의 물리적 구조와 밀접한 관계를 가짐
클러스터에 연관되어 독립적인 저장공관을 보유 데이터베이스에 저장된 자료를 빠르게 조회하기위해 사용
트랜잭션(Transaction) : 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위
역정규화(Denormalization) : 정규화를 통해 분리되었던 릴레이션에서 중복을 허용하고 다시 통합하거나 분할하여
구조를 재조정하는 과정
반정규화 : 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발운영의 단순화를 위해 중복, 통합, 분리 등을
수행하는 데이터 모델링 기법
트리거(Trigger) : 어느 특정한 동작에 반응해 자동으로 필요한 동작을 실행하는 것
후보키(Candidate Key) : 릴레이션을 구성하는 속성 중 튜플을 유일하게 식별하기 위한 기본키로 사용 할 수 있는
속성들 유일성, 최소송 반드시 하나이상 후보키 존재
기본키(Primary Key) : 후보키 중에서 선택된 주 키 중복x, null x , 유일성 최소성
슈퍼키(Super Key) : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 튜플에 대해 유일성은 만족 최소성은 만족x
외래키(Foregin Key) : 관계를 맺고 있는 참조...
논리모델 vs 물리모델
논리모델 물리모델
개체(entity) 테이블(table)
속성(attribute) 컬럼(column)
관계(relation) 관계(relation)
키그룹(key group) 인덱스(index)
데이터 모델 : 현실 세계의 정보를 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
구성요소 : 논리적 데이터 구조, 연산, 제약조건
절차 : 개념적 데이터 모델 > 논리적 데이터 모델 > 물리적 데이터 모델
데이터베이스 설계 단계
1단계 요구 조건 분석 / 명세 : 데이터베이스의 사용자, 사용목적, 사용범위, 제약조건 등에
대한 내용을 정리하고 명세서를 작성
2단계 개념적 설계(정보모델링, 개념화) : 정보를 구조화 하기위해 추상적 개념으로 표현하는
과정으로 개념 스키마 모델리오가 트랜잭션 모델링을 병행 하고 요구조건 분석을
통해 DBMS 독립적인 E-R 다이어그램을 작성
3단계 논리적 설계(데이터모델링) : 자료를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 자료 구조로 변환하는 과정
4단계 물리적 설계(데이터구조화) : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
저장구조 및 액세스 경로 설정 / 레코드 집중의 분석설계 / 저장 레코드 양식 설계
목표 DBMS 에 맞는 종속적인 / 물리적 구조의 데이터로 변환 / 저장레코드 . 접근경로 설정
* 물리적 설계시 고려사항
어떤 인덱스를 만들것인지에 대한 고려 / 레코드의 크기 / 파일과 구조저장을 위한 최소한의 공간
성능 향상을 위한 개념 스키마의 변경 여부 검토
빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려사항(응답시간/저장공간의효율화/트랜잭션처리량)
5단계 구현 : 명령문을 실행하여 실제로 생성
트랜잭션의 특징 (데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위)
원자성(Atomicity) : 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느
하나라도 오류가 발생한다면 트랜잭션 전부가 취소되어야 한다.
일관성(Consistency) : 트랜잭션 수행 전, 후 데이터간의 불일치가 생겨서는 안된다.
독립성(Isolation) : 여러 트랜잭션이 동시에 수행되어도 각각 독립적으로 수행되어야 한다.
영속성(Durability) : 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야 한다.
트랜잭션의의 상태
1. 활성화(Active) :트랜잭션이 작업을 시작하여 실행중인 상태
2. 실패(Failed) : 트랜잭션에 오류가 발생하여 실행이 중단된 상태
3. 철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
4. 부분완료(Partially commited) : 트랜잭션의 마지막 연산까지 실행하고 commit요청이 들어온 직후에 상태.
최종결과를 데이터베이스에 아직 반영하지 않은 상태
5. 완료(Commited) : 트랜잭션이 성공적으로 종료되어 commit연산을 실행한 후의 상태
병행제어 : 다중 프로그램의 이점을 활용하여 동시에 여러개의 트랜잭션을 병행수행할 때 실행되는
트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 기술
로킹(Locking) : 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기
데이터베이스, 파일, 레코드, 필드 등 로킹의 단위가 될 수 있다
로킹의 단위가 크면 오버헤드 감소, 병행수준이 낮음, 데이터베이스 공유도 저하
로킹의 단위가 작으면 오버헤드 증가, 병행수준 높음, 데이터베이스 공유도 증가
병행제어의 목적 : 데이터베이스의 공유를 최대화 / 시스템활용 최대화 / 사용자에 대한 응답시간을 최소화
단위 시간당 트랜잭션 처리 건수를 최대화 / 데이터베이스의 일관성을 유지
뷰 (VIEW) : 허용된 데이터를 제한적으로 보여주기 위해 하나 이상의 테이블에서부터 유도된 가상테이블
DBA는 보안 측면에서 뷰를 활용 / 뷰 위에 또다른 뷰 정의 가능 / 독립적인 인덱스를 가질 수 없다
삽입, 갱신, 삭제 연산 시 제약사항이 따른다.
정규화 : 정규화된 결과 / 하나의 렐레이션에 하나의 의미만 존재할 수 있도록 릴레이션을 분해해 나가는 과정
정규화함으로써 얻게 되는 효과는 자료의 저장 공간을 최소화하고 자료 불일치를 최소화하며
자료 구조를 안정화 시킴은 물론 이상현상을 방지하는 효과
비정규 릴레이션 : 하나의 튜플에서 속성을 입력되는 도메인 값으로 여러개의 값이 들어와서 원장성을 가지지 못한 경우
|
| 도메인이 원자값
|
제 1정규형(1NF) : 릴레이션에 속하는 속성의 속성 값이 모두 원자 값만으로 구성되어야 한다/ 더 이상 쪼갤 수 없음
|
| 부분적 함수 종속 제거
|
제 2정규형(2NF) : 제1정규형이면서 기본키에 속하지 않은 속성 모두가 기본키에 완전 함수 종속인 정규형
이행적 함수 종속성 (속성이 A->B이고 B->C이면서 A->C의 관계에 있는 것)
|
| 이행적 함수 종속 제거
|
제 3정규형(3NF) : 제 2정규형이면서 이행적 함수 종속성을 제거한 정규형
|
| 결정자이면서 후보키가 아닌 것 제거
|
보이스 / 코드 정규형 (BCNF): 제 3정규형을 조금 더 강화시킨 개념
|
| 다치종속
|
제 4정규형(4NF) :
|
| 조인종속 이용
|
제 5정규형(5NF) :
정규화의 필요성
데이터 구조의 안정성 최대화
수정, 삭제시 이상현상의 최소화
테이블 불일치 위험 최소화
중복 최소화
이상현상(anomaly) : 테이블 내의 데이터들이 불필요하게 중복되어 테이블을 조작할 때 발생되는 데이터 불일치
현상/ 정규화를 거치지 않아 발생하게 되는 것
삭제이상: 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들로 함께 삭제되는 연쇄 삭제현상
삽입이상: 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 함께 삽입되는 현상
갱신이상: 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
무결성 : 데이터베이스의 값이 정확하다는 것 의미 / 정확한 데이터 유지 / 데이터의 정밀성과 정확성을 의미
개체 무결성(Entity Integrity) : 기본키를 구성하는 어떤 속성도 null값이나 중복값을 가질 수 없다
도메인 무결성(Domain Integrity) : 속성값이 정의된 도메인에 속한 값이어야 한다
참조 무결성(Referential Integrity) : 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야한다는 규정
사용자 정의 무결성(User-Defined Integrity) : 속성값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정
메타데이터
카탈로그에 저장된 정보
시스템 카탈로그
시스템 카탈로그의 갱신은 무결성 유지를 위하여 SQL을 이용하여 시스템에서 자동갱신
데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지관리
DBMS가 스스로 생성하고 유지하는 데이터 베이스 내의 특별한 테이블 집합체
카탈로그에 저장된 정보를 메타데이터라고도 함
관계대수 연산
주어진 릴레이션 조작을 위한 연산의 집합
일반 집합연산과 순수 관계 연산으로 구분
질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시
관계해석 기호
∃: 존재한다(There exist)
∈: t가 r에 속함( t ∈ r )
∀: 모든 것에 대하여(for all)
∪: 합집합
데이터베이스 언어
DDL(Data Definition Language) 데이터 정의어 : CREATE / ALTER / DROP
DML(Data Mainpulation Language) 데이터 조작어 : SELECT / INSERT / DELETE / UPDATE
DCL(Data Control Language) 데이터 제어어 : GRANT / REVOKE / COMMIT / ROLLBACK / SAVEPOINT
E-R다이어 그램 표기법
개체타입 – 사각형
속성 – 타원
관계타입 – 마름모
개체타입과 속성을 연결 – 선
OLAP (Online Anaytical Processing) : 대용량 업무 데이터베이스를 구성하고 BI(Business Intelligence)를
지원하기 위해 사용되는 기술
데이터 웨어 하우스나 데이터 마트와 같은 대규모 데이터에 대해 최종 사용자가 정보에 직접 접근하여 대화식으로
정보를 분석하고 의사결정에 활용할 수 있는 실시간 분석처리
분석방법 : Drill Down – 특정한 주제 영역에서 큰범위에서 작은 범위로 단계적 접근하는 분석방법
Roll Up – Drill Down과 반대방향의 단계적 접근 분석방법
Pivort/ Rotating – 보고서의 행, 열, 페이지 차원을 무작위로 바꾸어 볼 수 있는 기능
slicing / Dicing - 주요 비즈니스 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
UNION 과 UNION ALL의 사용법과 차이점
UNION(DISTIINCT) - 쿼리의 결과를 합친다. 중복된 ROW는 제거
UNION ALL – 모든 컬럼값이 같은 ROW도 결과로 보여준다 중복을 제거하지 않는다.
분산 데이터 베이스
물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고 분산된 작업 처리를 수행하는
데이터베이스를 분산 데이터베이스라고 한다.
투명성을 제공해야한다.
투명성 종류(분할투명성/위치투명성/지역사상투명성/중복투명성/장애투명성/병행투명성)
분산데이터베이스의 설계 방식 (상향식 설계 방식 / 하향식 설계 방식)
장점(데이터베이스 신뢰성과 가용성이 높다. 분산 데이터베이스가 병렬처리를 수행하기 때문에 빠른 응답이 가능하다
분산데이터베이스를 추가하여 시스템 용량 확장이 쉽다.)
단점(데이터베이스가 여러 네트워크를 통해서 분리되어있기 떄문에 관리와 통제가 어렵다. 보안관리가 어렵다
데이터 무결정 관리가 어렵다 / 설계가 복잡하다.)