1. 관계 데이터베이스 특징

- 개체(Entity)나 관계(Relationship)를 모두 릴레이션(Relation)이라는 표로 표현한다.
- 릴레이션은 개체를 표현하는 개체 릴레이션, 관계를 나타내는 관계 릴레이션으로 구분할 수 있다.
- 장점 : 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.
- 단점 : 성능이 다소 떨어진다.

 

2. 관계 데이터베이스의 Relation 구조

데이터들을 표의 형태로 표현한 것으로 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.

 

튜플(Tuple)

- 릴레이션을 구성하는 각각의 행을 의미한다.

- 속성의 모임으로 구성된다.
- 파일 구조에서 레코드와 같은 의미이다.

 

속성(Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위이다.
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다.
- 개체의 특성이다.

도메인(Domain)
- 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(atomic) 값들의 집합이다.
- 실제 애트리뷰트 값이 나타날 때 그 값의 합법여부를 시스템이 검사하는 데에도 이용된다.
차수(Degree) : Attribute의 개수
기수(대응수; Cardinality) : Tuple의 개수

 

3. KEY의개념 및 종류

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 애트리뷰트이다.

 

후보키(Candidate Key)

 

- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말한다.
- 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다.

 

기본키(Primary Key)

 

- 후보키 중에서 선택한 주 키(Main Key)
- 한 릴레이션에서 특정 튜플을 유일하게 구별 할 수있는속성이다.
- Null 값을 가질 수 없다.
- 기본키로 정의된 속성에는 동일한 값이 중복되어 저장 될 수 없다.

 

대체키 (Alternate Key)

 

- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말한다.
- 보조키라고도 한다.

 

슈퍼키(Super Key)

- 릴레이션에서 같은 튜플이 발생하지 않는 키를 구성할 때, 속성의 집합으로 구성하는 것을 말한다.
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못한다.

 

외래키 (Foreign Key)

- 관계(Realtionship)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성이다.
- 외래키로 지정되면 참조테이블의 기본키에 없는 값은 입력할 수 없다.

 

널 값(NULL Value) : 데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 "해당없음" 등의 이유로 정보 부재를 나타내기 위해 사용하는, 이론적으로 아무것도 없는 특수한 데이터

 

4. 무결성

 

- 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 널(NULL) 값이나 중복값을 가질 수 없다.
- 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함 즉, 릴레이션은 참조할 수 없는 외래키값을 가질 수 없다.

 

5. 순수관계 연산자

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다.

Select
- 릴레이션에 존재하는 튜플중에서 선택조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다.
- 릴레이션의 행(가로)에 해당하는 튜플을 구하는 것이므로 수평연산이라고도 한다.
- 연산자의 기호는 그리스문자 시그마(σ)를 사용한다.
- 표기 형식 : σ<조건>(R) 단, R은 릴레이션 이름

Project
- 주어진 릴레이션에서 속성 List에 제시된 Attribute만을 추출하는 연산자이다.
- 릴레이션의 열(세로)에 해당하는 Attribute을 추출하는 것이므로 수직 연산자라고도 한다.
- 연산자의 기호는 그리스문자 파이(π)를 사용한다.
- 표기 형식 : π<속성리스트>(R) 단, R은 릴레이션 이름

Join

- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다.
- 연산자의 기호는 그리스문자 ▷◁를 사용한다.
- 표기 형식 : R ▷◁키속성r=키속성sS
단, 키속성 r은 릴레이션 R의 속성이고, 키속성 s는 릴레이션 S의 속성이다.

Division
- X ⊃ Y인 2개의 릴레이션에서 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을구하는 연산이다.
- 표기 형식 : R [속성r ÷ 속성s] S
단, 속성 r은 관계 R의 속성이고 속성 s는 관계 S의 속성이며, 속성 r과 속성 s는 동일 속성값을 가지는 속성이어야 한다.

 

6. Anomaly(이상)의 개념 및 종류

이상(Anomaly) : 정규화(Normalization)를 거치지 않은 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작시 발생하는 예기치못한 곤란한 현상이다.

 

삽입이상 - 릴레이션에 데이터를 삽일 할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상이다.

삭제이상 - 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없이 값들도 함께 삭제되는 연쇄 삭제 현상이다.

갱신이상 - 릴레이션에서 튜플에 있는 속성값을 갱신할 떄 일부 튜플의 정보만 갱신되어 정보에 모순이 생기게 되는 현상이다.

 

7. SQL의 분류

 

DDL(데이터 정의어)
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다.
- 데이터베이스 관리자나 데이터베이스 설계자가 사용한다.
- 데이터 정의어(DDL)의 3가지 유형

CREATE, ALTER, DROP

 

DML(데이터 조작어)

 

- 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어이다.
- 데이터베이스 사용자와 데이터베이스관리시스템 간의 인터페이스 제공이다.
- 데이터 조작어(DML)의 4가지 유형

SELECT , INSERT, DELETE, UPDATE

 

DCL(데이터 제어어)

 

데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는데 사용하는 언어이다.
- 데이터베이스 관리자가 데이터 관리를 목적으로 사용한다.
- 데이터 제어어(DCL)의 종류

COMMIT, ROLLBACK, GRANT, REVOKE

 

8. 시스템 카탈로그

- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
- 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
- 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지,접근권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
- 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 자료사전이라고도 한다.
- 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 한다.
- 카탈로그의 특징 ․ 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.

- INSERT, DELETE, UPDATE문으로 갱신하는 것은 허용하지 않음 ․ DBMS가 스스로 생성하고, 유지한다. 카탈로그는 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신하다.

 

9. 뷰(View)

 

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

- 권한이 있는 상태로 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.
- 뷰 (View)의 특징 ․ 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 가지며, 조작도 기본 테이블과 거의 같다 ․ 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다 ․ 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다 ․ 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다 ․ 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만삽입, 삭제, 갱신 연산이 가능하다 ․ 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다 ․ 하나의 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

 

 

- 뷰의 장점 : 논리적 데이터 독립성을 제공한다. 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를지원해준다 ․ 사용자의 데이터 관리를 간단하게 해준다 ․ 접근제어를 통한 자동 보안이 제공된다.
- 뷰의 단점 : 독립적인 인덱스를 가질 수 없다 ․ 뷰의 정의를 변경할 수 없음 ․ 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따른다.

 

10. 자료구조의 분류

- 선형 구조 : 선형리스트, 연결리스트, 스택, 큐, 데크

- 비선형 구조 : 트리, 그래프

 

11. Stack

- 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조이다.
- 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO;Last-In, First-Out) 방식으로 자료를 처리한다.
- TOP : Stack으로 할당된 기억공간에 가장 마지막으로 삽입된 자료가 기억된 공간을 가리키는 요소, 스택 포인터라고도 한다.
- Bottom : 스택의 가장 밑바닥이다.
- Stack의 용도

 ․ 부프로그램 호출시 복귀주소를 저장할 때

 ․ 인터럽트가 발생하여 복귀주소를 저장할 때

 ․ 후위표기법(Postfix Notation)으로 표현된 산술식을 연산할 때

 ․ 0 주소 지정방식 명령어의 자료저장소

 ․ 재귀(RECURSIVE)프로그램의 순서제어

 ․ 컴파일러를 이용한 언어번역시 

 

12. 큐(Queue)

-선형 리스트의 한쪽에서는 삽입작업이 이루어지고 다른 쪽에서는 삭제 작업이 이루어지도록 구성한 자료구조이다.
-가장 먼저 삽입된 자료가 가장 먼저 삭제되는 선입선출(FIFO; First-In,First-Out) 방식으로 처리한다.
-Queue를 이용하는 예

 ․ 창구업무처럼 서비스 순서를 기다리는 등의 대기행렬의 처리에 사용한다.

 ․ 운영체제의 작업 스케줄링에 사용함

 

13. 데크(Deque)

- 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료구조이다.
- Stack과 Queue의 장점만 따서 구성한 것이다.
- 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력제한과, 입력은 양쪽에서 일어나고 출력은 한곳에서만 이루어지는 출력 제한이 있다.
- 입력 제한 데크 : Scroll
- 출력 제한 데크 : Shelf

 

14. 이진트리의 운행법(Traversal)

 

- Preorder 운행 : Root → Left → Right 순
- Inorder 운행 : Left → Root → Right 순
- Postorder 운행 : Left → Right → Root 순

 

15. 해싱(Hashing)

 

- Hash Table이라는 기억공간을 할당하고, 해시함수(Hash Function)를 이용하여 레코드 키에 대한 Hash Table 내의 Home Address를 계산한 후 주어진 레코드를 해당 기억장소에 저장하거나 검색작업을 수행하는 방식이다.

- DAM(직접접근) 파일을 구성할 때 해싱이 사용되며, 접근 속도는 빠르나 기억공간이 많이 요구된다.
- 검색 속도가 가장 빠르다.
- 삽입, 삭제 작업의 빈도가 많을 때 유리한 방식이다.
- 해시 테이블(Hash Table) ․ 레코드를 1개 이상 보관할 수 있는 Home Bucket들로 구성한 기억공간으로, 보조기억장치에 구성할 수도 있고 주기억장치에 구성할 수도 있다.
- 버킷(bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수 있는 레코드 수를 의미한다

․ 슬롯(slot) : 한 개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷을 형성한다.
․ Collision(충돌현상) : 서로 다른 두 개 이상의 레코드가 같은 주소를 갖는 현상이다.
․ Synonym : 같은 Home Address를 갖는 레코드들의 집합이다.
․ Overflow : 계산된 Home Address의 Bucket 내에 저장할 기억공간이 없는 상태(Bucket을 구성하는 Slot이 여러 개일 때는 Collision은발생해도 Overflow는 발생하지 않을 수 있다.)

 

16. 순차 파일(Sequential File) = 순서 파일

 

- 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식이다.
- 급여 관리 등과 같이 변동 사항이 크지 않고 기간 별로 일괄 처리를 주로 하는 경우에 적합하다.
- 주로 순차 접근이 가능한 자기 테이프에서 사용된다.
- 순차 파일의 장점 : 기록 밀도가 높아 기억 공간을 효율적으로 사용할 수 있다.
․ 매체 변환이 쉬워 어떠한 매체에도 적용할 수 있음 ․ 레코드를 기록할 때 사용한 키 순서대로 레코드를 처리하는 경우, 다른 편성법보다는 처리 속도가 빠르다.
-순차 파일의 단점 : 파일에 새로운 레코드를 삽입, 삭제하는 경우 파일 전체를 복사해야하므로 시간이 많이 소요되고, 데이터 검색시 처음부터 순차적으로 하기 때문에 검색 효율이 낮다.

 

17. 색인 순차 파일(Indexed Sequential File)

 

- 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값순으로 정렬(Sort)시켜 기록하고, 레코드의 키 항목만을 모은 색인을 구성하여편성하는 방식이다.
- 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM(Index Sequential Access Method)라고도 한다.
- 레코드를 참조하는 경우 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 직접 참조할 수 있다.
- 일반적으로 자기 디스크에 많이 사용되며, 자기 테이프에서는 사용할 수 없다.
- 색인 순차 파일의 구성

․ 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로, 각 레코드는 키 값순으로 저장된다

․ 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구분할 수 있다

․ 오버플로우 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해둔 부분이다.

 

 

'IT > 자격증' 카테고리의 다른 글

산업기사- 전자계산기 구조(2)  (0) 2017.05.25
산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(1)  (0) 2017.05.16
정보처리기사 필기요약(5)  (0) 2017.01.05
정보처리기사 필기요약(4)  (0) 2016.12.28

1. 정보처리 시스템

 

정보시스템

 

- 조직체에 필요한 데이터를 수집, 저장해 두었다가 필요시에 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단이다.
- 사용하는 목적에 따라 경영정보 시스템, 군사 정보시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템 등으로 사용된다.

 

정보와 자료

- 자료(Data) : 관찰이나 측정을 통해 수집한 단순한 사실이나 결과값으로, 가공되지 않은 상태이다.
- 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태, 자료를 가공해서 얻을 수 있는 결과이다.

 

자료처리 시스템 : 정보시스템이 사용할 자료를 처리하는 정보 시스템의 서브시스템으로, 처리형태에 따라서 일괄 처리 시스템, 온라인 실시간처리 시스템, 분산 처리 시스템으로 분류된다.

-데이터 웨어 하우스(DataWare House) : 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새롭게 생성된 데이터베이스로서 의사결정지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터 집합체이다.

 

2. 데이터베이스의 정의

 

- 통합된 데이터(Integrated data) : 자료의 중복을 배제한 데이터의 모임이다.
- 저장된 데이터(Stored data) : 저장 매체에 저장된 자료이다.
- 운영 데이터(Operational data) : 조직의 업무를 수행하는데 있어서 없어서는 안 될 반드시 필요한 자료이다.
- 공용 데이터 : 여러개 응용 시스템들이 공동(공용)으로 소유하고 유지하는 자료이다.

 

3. 데이터베이스의 특징

 

-실시간 접근성 : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리(real time processing) 응답이 가능하다.
-계속적인 변화 : 새로운 데이터의 삽입(insertion), 삭제(deletion),갱신(update)으로 항상 최신의 데이터를 유지한다.
-동시 공용 : 여러 사용자가 동시에 자기가 원하는 데이터를 이용할 수있다. 서로 공용으로 데이터를 사용한다.
-내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때, 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 

4. 기존의 파일 처리 방식의 문제점

 

▶ 종속성으로 인한 문제점
- 종속성 : 응용프로그램과 데이터 파일이 상호 의존적인 관계인 것
- 데이터 파일이 보조 기억 장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때는 종속 되어있기 때문에 응용프로그램도 같이 변경하여야한다.
▶ 중복성으로 인한 문제점
- 일관성 : 중복된 데이터간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어진다.
- 보안성 : 중복되어 있는 모든 데이터에 동등의 보안수준을 유지하기가 어렵다.
- 경제성 : 저장 공간 낭비와 동일한 데이터의 반복 작업으로 인한 비용의 증가
- 무결성 : 제어의 분산으로 인해 데이터의 정확성을 유지할 수 없다.

 

5. DBMS의 필수기능

- 정의(조직) : 데이터의 형과 구조, 데이터가 DB에 저장될 때의 제약조건 등을 명시하는 기능이다.
- 조작 : 처리를 위한 데이터 접근 수단 등을 정하는 기능이다.
- 제어 : 무결성, 보안 및 권한 검사, 병행수행 제어 등의 기능을 정하는 기능이다.

 

6. DBMS의 장단점

장점
- 데이터의 중복을 피할 수 있다.
- 저장된 자료를 공동(공유)으로 이용할 수 있다.
- 데이터의 일관성을 유지할 수 있다.
- 데이터의 무결성을 유지할 수 있다.
- 보안을 유지할 수 있다.
- 데이터를 표준화할 수 있다.
- 데이터를 통합하여 관리할 수 있다.
- 항상 최신의 데이터를 유지한다.
- 데이터의 실시간 처리가 가능하다.
- 데이터의 논리적 물리적 독립성이 보장된다.

 

단점
- 데이터베이스 전문가 부족하다.
- 전산화 비용이 증가한다.
- 대용량 디스크로의 집중적인 Access로 과부하가 발생한다.
- 파일의 예비(Backup)와 회복(Recovery)이 어렵다.
- 시스템이 복잡하다.

 

7. 데이터의 독립성

 

- 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시켜도 응용 프로그램은 변경되지 않는다.

- 물리적 독립성 : 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴으로써, 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경한다. 서로 영향을 주지 않는다.

 

8. 스키마(Schema)의 정의

 

- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한다.
- 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작시 데이터 값들이 갖는 제약조건 등을 전반적으로 정의한다.

 

9. 스키마의 3계층

 

외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)

- 사용자나 응용프로그래머가 개인의 입장에서 필요로 하는 데이터베이스 논리적 구조 정의한다.
- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브스키마(subschema)라고도 한다.
- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공유해서 사용할 수 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.

 

개념 스키마(Conceptual Schema) = 전체적인 뷰(View)

- 데이터베이스의 전체적인 논리적 구조로 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개념 스키마는 개체간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 단순히 스키마(schema)라고하면 개념 스키마를 의미한다.
- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.


내부 스키마(Internal Schema)

- 물리적인 저장장치와 밀접한 계층이다.
- 데이터베이스의 물리적 구조이다.
- 데이터의 실제 저장 방법 기술이다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 

 

10. 데이터베이스 언어

 

데이터 정의 언어(DDL; Data Definition Language)


- DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
- 번역한 결과가 데이터사전(Data-dictionary)이라는 특별한 파일에 여러개의 테이블로서 저장된다.
- 데이터 정의 언의의 기능 , 외부 스키마 명세 정의 , 데이터베이스 정의 및 수정 , 스키마에 사용되는 제약조건에 대한 명세 정의 ․ 데이터의 물리적 순서 규정를 규정한다.


데이터 조작 언어(DML; Data Manipulation Language) = 서브 언어

- 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자와 DBMS간의 인터페이스를 제공한다.
- 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 FORTRAN, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다.
- 대표적인 데이터 조작어(DML)에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(procedural) 데이터 언어이다.

데이터 제어 언어(DCL; Data Control Language)
- 무결성, 보안 및 권한 제어, 회복을 등을 하기 위한 언어이다.
- 데이터를 보호하고 데이터를 관리를하는 목적으로 사용된다.
- 데이터 제어 언어의 기능 , 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안(Security) , 데이터 정확성을 위한 무결성(Integrity)유지하고 , 시스템 장애에 대비한 데이터 회복과 병행 수행한다

 

11. DBA

데이터베이스 시스템의 모든 관리와 운영대한 책임을 지고 있는 사람이나 그룹이다.

 

데이터베이스 설계와 조작에 대한 책임

- 데이터베이스 구성요소 결정
- 개념 스키마 및 내부스키마 정의
- 데이터베이스의 저장 구조 및 접근 방법 정의
- 보안 및 데이터베이스의 접근 권한 부여 정책 수립
- 장애에 대비한 예비(Back Up) 조치와 회복(Recovery)에 대한 전략 수립
- 무결성을 위한 제약 조건의 지정
- 데이터 사전의 구성과 유지관리한다.
- 사용자의 변화 요구와 성능향상을 위한 데이터베이스의 재구성한다.

 

행정책임
- 사용자의 요구와 불평의 청취 및 해결
- 데이터 표현 방법의 표준화
- 문서화에 대한 기준 설정 시스템 감시 및 성능분석
- 변화 요구에 대한 적응과 성능 향상에 대한 감시
- 시스템 감시 및 성능분석
- 자원의 사용도와 병목현상 조사
- 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석한다.

 

12. 데이터 모델의 정의

- 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다.
- 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계과정에서 데이터의 구조를 표현하기 위해 사용되는 도구이다.
- 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적도구이다.

 

13. 데이터 모델의 종류

개념적 데이터 모델

- 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
- 종류로는 E-R 모델이 있다.


논리적 데이터 모델
-필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
- 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
- 논리적 데이터베이스 모델은 데이터 간의 관계를 어떻게 표현하느냐에 따라서 관계모델, 계층모델, 네트워크 모델로 구분한다.

 

 

14. 데이터 모델의 구성요소

 

개체(Entity)
- 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보단위 같은 현실 세계의 대상체이다.
- 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
- 파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 한다.
- 독립적으로 존재하거나 그 자체로서도 구별이 가능한다.

속성(Attribute)

- 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.
- 개체를 구성하는 항목이다.

관계(Relationship)
- Entity간의 관계 또는 Attribute간의 관계

 

15. 개체-관계(Entity-Relationship) 모델

 

- 개체 타입(entity type)과 이들 간의 관계 타입(relationship type)을 이용해 현실 세계를 개념적으로 표현한다.
- 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다.
- 특정 DBMS를 고려한 것은 아니다.

 

16. 관계형 데이터 모델

 

- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델이다.
- 표(Table)를 이용해서 데이터 상호관계를 정의하는 DB 구조이다.
- 데이터간의 관계를 기본키(primary key)와 이를 참조하는 외래키(foreign key)로 표현한다.
- 대표적인 언어 : Orcle, MS-SQL, Informix가 있다.
- 1:1, 1:N, M:N 관계를 자유롭게 표현할 수 있다.
- 장점 : 간결하고, 보기 편리하고, 다른 데이터베이스로의 변환이 용이하다.
- 단점 : 성능이 다소 떨어진다.

 

17. 계층형 데이터 모델

- 데이터의 논리적 구조도가 트리 형태이고 , 개체가 트리를 구성하는 노드 역할을 한다.
- 개체 집합에 대한 속성 관계를 표시하기 위해서 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한다.
- 개체간의 관계를 부모와 자식간의 관계로 표현한다.
- 개체 타입간에는 상위와 하위관계가 존재하며, 일 대 다(1:N) 대응관계만 존재한다.
- 레코드 삭제시 연쇄 삭제(Triggered Delete)가 된다.
- 개체 타입들간에는 사이클(cycle)이 허용되지 않는다.
- 계층형 모델에서는 개체(Entity)를 세그먼트(Segment)라 부른다.
- 대표적인 DBMS는 IMS가 있다.
- 속성 관계(Attribute Relation) : 세그먼트(개체)를 구성하는 속성들의 관

- 개체 관계(Entity Relation) : 개체와 개체간의 관계를 링크로 표시함

 

18. 망(그래프)형 데이터모델

- CODASYL이 제안한 것으로, CODASYL DBTG 모델이라고도 한다.
- 그래프를 이용해서 데이터 논리구조를 표현한 데이터 모델이다.
- 상위와 하위 레코드 사이에서 다 대 다(N:M) 대응관계를 만족하는 구조이다.
- 레코드 타입간의 관계는 1:1, 1:N, N:M이 될 수 있다.
- 대표적인 DBMS는 DBTG, EDBS, TOTAL가 있다.

'IT > 자격증' 카테고리의 다른 글

산업기사- 전자계산기 구조(1)  (0) 2017.05.18
산업기사 - 데이터베이스(2)  (0) 2017.05.17
정보처리기사 필기요약(5)  (0) 2017.01.05
정보처리기사 필기요약(4)  (0) 2016.12.28
정보처리기사 필기 요약(3)  (0) 2016.12.27

RAID ( Redundant Array of Inexpensive Disks / Redundant Array of Independent Disks )

1988년 버클리 대학의 3명의 과학자가 제안한 이론으로 그 당시에는 하드디스크의 용량이 제한적이었고, 함부로 사용하는 이도 드물 정도로 값도 비쌌기 때문에 보다 저렴하며 용량이 적고, 성능이 낮은 하드디스크를 묶어 중복 구성함으로써, 성능이 좋은 고가의 대용량 하드디스크 장비와 겨뤄 손색이 없도록 하는 것이 주목적이었습니다.
그러나 그들이 열심히 RAID를 연구하는 동안 Storage 기술의 발전으로 용량대비 가격이 지속적으로 하락하였으므로 애초 주목적이었던 가격적인 면보다는 데이터의 안정성과 에러 보정, 그리고 하드디스크의 장애에 의한 데이터의 손실을 막기 위한 측면이 강조되었고, RAID의 의미는 'Inexpensive'에서 'Independent'로 의미가 바뀌게 되었습니다.  단순히 구성으로만 보자면 지금 많이들 사용하는 partition의 반대 비슷한 개념정도 됩니다. 파티션이 하나의 물리적인 드라이브를 여러개의 논리적 드라이브로 분할한것 이라면 레이드는 여러개의 물리적 드라이브를 하나의 논리적 드라이브로 묶는 방식 입니다. RAID 시스템은 동일한 데이터를 여러 개의 디스크에 중복 저장하면서도, 운영체계에는 하나의 단일 디스크로 인식시킴으로써, 내고장성의 증가와 데이터 접근 효율성을 높여주는 장점이 있습니다.

 


RAID Level 0 : 필요 드라이브 최소 2개이상, 빠른 입출력 목적


레이드 0은 같은 모델의 하드디스크와 같은 용량이어야 한다는 전제 조건이 있습니다. 레이드 0 구성시 중요데이터는 반드시 Back-up 하셔야 합니다. 레벨 0은 RAID의 가장 기본적인 구현방식으로 Striping(스트라이핑)이라고 합니다. 이것은 하나의 데이터를 여러 드라이브에 분산 저장을 함으로써 빠른 입출력을 가능하게 합니다. 1부터 100까지의 숫자로 이루어진 데이터가 있다면 이것을 1부터 100까지 순서대로 읽게 되는 상황이 일반적인 하드디스크의 구성이고 2개의 하드 디스크로 레벨0 을 구성하면 하나는 1~50 까지만 읽고 다른 하나는 51부터 100까지만 읽고 저장하기 때문에 그 속도는 2배가 됩니다. 즉 3개로 구성되면 속도는 3배가 되고 10개로 구성되면 그 속도는 1/10 로 줄어 들게 됩니다. 다시말하면 하나의 데이터는 Stripe(스트라이프) 기술을 이용해서 여러 개의 같은, 일정한 크기로 쪼개집니다. 그리고 이 쪼개진 하나하나의 조각을 Stripe Unit(스트라이프 유닛)이라고 합니다. 레벨 0은 분산 저장에만 초점이 맞춰져 있어 하드디스크의 속도 향상에는 무척 도움이 되지만, Striping(스트라이핑) 되어 있는 하드디스크 중 1개만 장애를 일으키더라도 데이터를 모두 유실할 위험성이 있습니다. 예를들어, "어린이" 라는 단어를 2개의 드라이브(하드 디스크)로 구성된 Raid 0 에  저장한다면 한개의 드라이브는 "ㅇ , ㄹ, ㄴ, ㅇ" 라는 자음만 저장하고 다른 하나는 " ㅓ, ㅣ, ㅣ " 이런 모음만 저장합니다. 따라서 저장하거나 불러오는 속도는 빠르지만 하나의 디스크에서 에러가 발생하면 완전한 데이터를 불러오지 못하게 되는 것입니다. 300GB 두개로 레이드0 을 구성하면 600GB의 단일 드라이브로 나타나고 성능 또한 2배이지만 하나의 디스크에서 손실이 발생하면 둘다 사용하지 못하게 되는 안전성이 낮은 구성입니다.


RAID Level 1 : 필요 드라이브 최소 2개이상, 안정성의 목적


레벨 1은 2개의 하드디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 고스란히 복사되는 방법으로 저장하게 됩니다. 두 개의 하드디스크에는 한치의 오차도 없이 똑같은 데이터가 저장이 되기 때문에 Mirroring(미러링)이라고 합니다. 이 경우 2개의 하드디스크 중 1개가 장애를 일으키더라도 남은 1개의 데이터는 장애를 일으킨 하드디스크의 데이터와 똑같기 때문에 안정성 측면에서 상당히 우수한 구성입니다.
읽기에서는 성능의 향상이 있으나, 쓰기에서의 속도 향상은 별반 차이가 없고, 전체 공간의 50%만 이용할 수 있다는 문제점이 있습니다. 때문에 매우 중요한 파일을 백업 받을 일이 없는 개인 사용자의 경우 하드디스크 두 개로 한 개 용량만 사용해야 한다는 단점이 있습니다.


RAID Level 2 : 기록용 드라이브와 테이터 복구용 드라이브가 별도로 필요4개 하드 디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 되기 때문에 효율성 측면에서 거의 사용하지는 않습니다. RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징입니다. 레벨 4가 나오면서 거의 사용하지 않는 기술입니다.


 

Raid Level 0  Striping(스트라이핑) 데이터를 쪼개서 저장하는 분산 저장 해서 속도향상을 위한 레벨이고.

Raid Level 1 
 Mirroring ( 미러링 ) 안전성을 좋지만 드라이브 용량 이용의 비효율성이 있습니다.

Raid Level 3,4 
 Parity ( 패리티 : 데이터 오류 체크 기술)로 레벨0의 불안전성을 보완한 것입니다.

 

RAID Level 5 ( 레이드 5 ) : 필요 드라이브 최소 3개이상


레벨 5는 레벨 3과 레벨 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전담하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장합니다. 이 방식은 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 Level 3, 4의 단점이었던 병목을 줄여주지만, 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 읽게 되기 때문에 성능 저하가 생길 수밖에 없습니다. 이러한 단점 역시 컨트롤러에 지능형 캐쉬를 내장하여 속도저하를 최소화시키는 역할을 하고 있습니다. 성능면에서 Raid 0 보다 떨어지지만 성능, 안정성, 용량 3 부분을 고려한 형태입니다.하나의 드라이브가 고장날 경우 다른 드라이브에 별도로 저장된 패리티( Parity ) 정보를 정보를 통해서 복구하고 손상된 드라이브의 패리티 ( Parity ) 정보는 나머지 하드에 있는덷 테이터를 토대로 다시 작성할 수 있습니다.그러나 별도의 패리티 정보를 저장하는 작업을 해야 하기 때문에 RAID Level 1 보다는 쓰기 성능이 떨어집니다.

RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식입니다.


RAID Level 6 ( 레이드 6 ) : 필요 드라이브 최소 4개이상

레벨 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있습니다. RAID 5보다 더욱 데이터 안정성을 고려하는 시스템에서 사용합니다. 
하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수합니다. 패리티 정보를 2중으로 저장하며 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않습니다.


RAID Level  0+1 / 1+0 (레이드 01 / 10 ) : 필요 드라이브 최소 4개 

간단히 말하자면 레이드 레벨 0과 레벨 1의 복합 구성입니다. 레벨 0의 Striping과 레벨 1의 Mirroring의 기능이 합쳐진 것으로, 분산 저장을 통한 성능 향상을 꾀할 수 있으면서 데이터의 안정성 또한 보장받을 수 있습니다. 때문에 속도 및 안정성 두 마리의 토끼를 다 잡은 듯 보이지만, 여전히 전체 용량의 50%만 사용할 수 있는 것은 변함이 없으며, 비용이 많이 든다는 문제점이 있습니다.


01과 10의 차이는 어느 쪽을 먼저 구성하느냐의 차이입니다.  4개의 드라이브로 구성한다면 위의 이미지 처럼 그 차이는 없습니다.

 

그러나 6개의 드라이브로 구성한다면 01의 구성은 3:3 으로 구성되지만 10의 구성은 2:2:2 로 구성되게 됩니다. RAID 0+1은 RAID 0으로 구성된 드라이브들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드 가 나눠지며, RAID 1+0은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성됩니다. 
  
RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체를 복구해야 하지만, RAID 1+0으로 만든 시스템은 고장난 하드가 하드 1개라고 하면 미러링으로 묶인 하드를 통해 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 1+0 이 훨씬 유리합니다.

 

 

Raid 51 / 15 ,  Raid 05 / 50 , Raid 60, Raid100

기존의 레벨의 복합적 구성입니다.


레벨 0 이 들어가면 성능의 향상을 기대할수 있으나 안정성은 불안하게 됩니다. 
레벨 1 이 들어 가면 안전성을 확복할수 있으나 용량의 감소 또한 감수 해야 됩니다.
레벨 5나 6의 구성에 최소 3~4개의 드라이이브가 소모되기 때문에 이들의 복합적인 구성은 최소 6개 이상의 드라이브가 있어야 가능한 구성입니다. 랜덤 읽기/ 쓰기의 성능의 향상은 체감속도의 향상과 같습니다. 프로그램을 런칭하는 속도가 랜덤 엑세스의 성능과 비례한다고 보시면 됩니다. 그리고 순차 읽기 / 쓰기는 영화파일과 같은 대용량의 파일을 이동할때의 성능 이라고 생각하시면 됩니다.

'IT > IT자료' 카테고리의 다른 글

DLP  (0) 2017.02.21
Active Directory(2)  (0) 2017.02.19
Active Directory(1)  (0) 2017.02.19

+ Recent posts