본문 바로가기

IT Programmer/Certification (정보처리기사)

[정보처리기사 필기 대비] 3과목 데이터베이스 구축


데이터베이스 설계 순서

요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현

개념적 설계
( 정보 모델링 
개념화 )
- 현실 세계에 대한 인식을 추상적인 개념으로 표현.
- 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행.
- E-R 다이어그램으로 작성
논리적 설계
( 데이터 모델링 )
- 물리적 저장장치에 저장할 수 있도록 변호나하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 트랙잭션의 인터페이스를 설계
물리적 설계
( 데이터 구조화 )
- 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정.
- 데이터가 컴퓨터에 저장되는 방법을 묘사.

데이터 모델의 구성 요소

개체
( entity )
: 데이터베이스에 표현하려는 것, 현실 세계의 대상체
독립적으로 존재하거나 그 자체로서도 구별이 가능하다.
유일한 식별자에 의해 식별이가능
다른 개체와 하나 이상의 관계가 있다.
속성
( attribute )
: 데이터베이스를 구성하는 가장 작은 논리적 단위
개체를 구성하는 항목 / 개체의 특성을 기술
속성의 수를 디그리(차수) 라고 한다.
관계
( attribute )
: 개체와 개체 사이의 논리적인 연결을 의미
형태) 1:1(일대일) / 1:N(일대다) / N:M(다대다)

E-R ( Entity-Relatation, 개체-관계) 모델

: 개념적 데이터 모델의 가장 대표적인 것으로 개체와 개체 간의 관계를 기본 요소로 이용.

[ 피터 첸 표기법 ]


관계형 데이터베이스의 Relation 구조

 

튜플 = 카디널리티 (세로) : 릴레이션을 구성하는 각각의 행

- 속성의 모임으로 구성

- 파일 구조에서 레코드와 같은 의미

 

속성 = 디그리 (가로) : 가장 작은 논리적 단위

- 데이터 항목 또는 데이터 필드에 해당

- 개체의 특성을 기술

 

도메인 : 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합


제약 조건

후보키 ( Candidate key ) 기본키 ( Primary Key ) 외래키 ( Foreign Key )
: 식별하기 위해 사용하는 속성들의 부분집합 = 기본키로 사용할 수 있는 속성들 후보키 중에서 특별히 선정된 주키로 중복된 값을 가질 수 없다. 기본키를 참조하는 속성 또는 속성들의 집합
- 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재
- 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함
- 기본키는 후보키의 성질을 갖는다
- 기본키는 null 값을 가질 수 없다.
- 릴레이션 간에 참조 관계를 표현
무결성 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성
개체 무결성 기본 테이블의 기본키를 구성하는 어떤 속성도 null 값이나 중복값을 가질 수 없다는 규정
도메인 무결성 주어진 속성값이 정의된 도메인에 속한 값이어야 한다는 규정
참조 무결성 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. (참조X한 외래키 값을 가질 수 없다.)

관계대수 및 관계해석

 

관계대수

: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어.

Select (시그마) : 수평연산

Project (파이) : 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 생성

(결과에 중복이 발생하면 중복 제거 됨 )

 

관계해석

:  관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.

- 질의어로 표현한다.


정규화

: 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정

- 논리적 설계 단계에서 수행

- 제1정규형, 제2정규형, 제3정규형, 제4규형, BCNF형, 제4정규형, 제5정규형

: 차수가 높아질수록 만족시켜야 할 제약조건이 늘어난다.

목적)

- 안전성 및 무결성 유지

- 효과적인 검색 알고리즘을 생성

- 릴레이션을 재구성할 필요성을 줄임

- 데이터 모형의 단순화가 가능

- 배열 상태 검증이 가능

 

반정규화

: 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위

[ 테이블 통합 / 테이블 분할 / 중복 테이블 추가 / 중복 속성 추가 ]


시스템 카달로그

: 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

- 저장된 정보를 메타 데이터 라고 함.

- 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색할 수 있다.(수정X)

- DBMS가 스스로 생성하고 유지한다.

- 사용자가 SQL문을 실행시켜, 테이블/뷰/인덱스 등에 변화를 주면 시스템이 자동으로 갱신함.

- 데이터 디렉터리는 시스템만 접근할 수 있다.


인덱스 (INDEX)

데이터 레코드를 빠르게 접근하기 위해 <키, 값, 포인터> 쌍으로 구성되는 데이터 구조.

- 레코드가 저장된 물리적 구조에 접근하는 방법을 제공

- 인덱스의 개수를 최소로 하는 것이 효율적이다.

- 물리적 순서가 인덱스의 엔트리 순서와 일치하게 유지되도록 구성되는 인덱스 : 클러스터드 인덱스

 

뷰 (VIEW)

접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블.

- 저장장치 내에 물리적으로 존재하지 않는다.

- 기본 테이블과 같은 형태의 구조를 사용

- 데이터의 논리적 독립성을 제공

- 독립적인 인덱스를 가질 수 없다.


클러스터 (Cluster)

데이터 저장시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법.

특징)

- 조회속도는 향상 시키지만, 데이터 입력, 수정, 삭제에 대한 성능은 저하시킴.

- 데이터 분포도가 넓을수록 유리.

대상 테이블)

- 분포도가 넓은 테이블 / 대량의 범위를 자주 조회하는 테이블 / 자주 조인되어 사용되는 테이블 등

 

파티션 (partition)

대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것.

범위 분할 지정한 열의 값을 기준으로 분할
해시 분할 해시 함수를 적용한 결과 값에 따라 데이터를 분할
조합 분할 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
( 범위분할 → 해시함수 적용 : 재분할 )

분산 데이터베이스의 목표

위치 투명성 DB의 실제 위치를 알 필요 없이 단지 DB의 논리적인 명칭만으로 액세스
중복 투명성 동일 data가 여러 곳에 중복되어 있더라고 사용자는 마치 하나의 데이터만 존재하는 것 처럼 사용
병행 투명성 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
장애 투명성 장애에도 불구하고 트랜잭션을 정확하게 처리

암호화

 

개인키 암호 방식 = 비밀키 암호 방식

: 동일한 키로 데이터를 암호화하고 복호화.

- 비밀키는 제3자에게는 노출시키지 않고 DB사용 권한이 있는 사용자만 나누어 가진다.

[ 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFER) ]

 

공개키 암호 방식 

: 서로 다른 키로 데이터를 암호화하고 복호화.

- 암호화 시 사용하는 키는 DB 사용자에게 공개, 복호화 시 키는 관리자가 비밀리에 관리.

[ RSA ]


데이터베이스 보안 - 접근 통제

신분 기반 IBP 단일주체 최소권한
GBP 복수주체 역할기반 (주체의 역할 근거)
규칙 기반 MCP 기밀분류 관련  
CBP 기밀 허가  

스토리지

: 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

[ DAS / NAS / SAN ]

 

DAS : 서버-저장장치를 전용 케이블로 직접 연결하는 방식

NAS : 서버와 저장장치를 네트워크를 통해 연결하는 방식

SAN : 서버-저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식.

( FC<파이버 채널>스위치를 이용하여 네트워크 구성 )


DDL / DML / DCL

 

DDL (데이터 정의어)

: 정의하거나 변경 또는 삭제할 때 사용하는 언어.

CREATE CREATE VIEW / CREATE INDEX
ALTER ALTER TABLE
DROP  

DML (데이터 조작어)

: 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어

SELECT SELECT 범위 FROM 테이블명
INSERT INSERT INTO 테이블명
DELETE DELETE FROM 테이블명 ( 모든 레코드 삭제 시, WHERE절 생략 → 테이블 구조는 남아있으므로 DROP X )
UPDATE UPDATE 테이블명 SET 속성명=데이터

DCL (데이터 제어어)

: 데이터베이스 관리자가 데이터 관리를 목적으로 사용.

COMMIT  
ROLLBACK  
GRANT GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION]
REVOKE 권한취소 : REVOKE 권한_리스트 ON 개체 FROM 사용자

CASCADE : 참조 테이블의 튜블이 삭제되면 기본 테이블의 관련 튜플도 모두 삭제됨.


프로시져 ( Procedure ) / 트리거 ( Trigger )

DECLARE (필수)
BEGIN (필수)

END (필수)

 

사용자 정의 함수

- DML문의 호출에 의해 실행 됨.6

- 예약어 RETURN을 통해 값을 반환하므로 출력 파라미터가 없다.

- SELECT를 통한 조회만 할 수 있다.

- DML문에서 반환값을 활용하기 위한 용도로 사용