가자공부하러!

데이터베이스(1) - 데이터베이스 기본 본문

공부/정보처리기사(실기)

데이터베이스(1) - 데이터베이스 기본

오피스엑소더스 2019. 5. 25. 13:40

1. 데이터베이스 개념

2. 데이터베이스 관리 시스템

3. 스키마

4. 데이터베이스 설계

5. ER(Entity Relationship) 모델


전체적으로 공무원스럽다 개노잼

1. 데이터베이스 개념


1. 데이터베이스의 정의

  > 통합 데이터(Integrated Data) : 검색의 효율성을 위해 중복이 최소화된 데이터의 모임

  > 저장 데이터(Stored Data) : 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터

  > 운영 데이터(Operational Data) : 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터

  > 공유 데이터(Shared Data) : 여러 응용 프로그램들이 공동으로 사용하는 데이터

 

2. 데이터베이스의 특징

  > 실시간 접근성(Real Time Accessibility) : 사용자의 질의에 대하여 즉시 처리하여 응답하는 특징

  > 계속적인 진화(Continuous Evolution) : 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지하는 특징

  > 동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 원하는 데이터를 공용할 수 있는 특징

  > 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 튜플(Tuple)의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용에 따라 참조하는 특징

  > 데이터의 논리적, 물리적 독립성(Independence)

- 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립

ㄴ 데이터의 논리적 구조가 변경되어도 응용프로그램은 변경되지 않는 특징

- 물리적 독립성 : 보조기억장치, 응용프로그램 등의 물리적 장치를 독립

ㄴ 새로운 디스크를 도입하더라도 응용프로그램 등에는 영향을 주지 않고 데이터의 물리적 구조만 변경할 수 있음


3. 데이터베이스 시스템

  > 데이터베이스 시스템? : DB를 이용하여 자료를 저장하고 관리하여 정보를 얻어내는 데 필요한 컴퓨터 중심의 시스템

  > 데이터베이스 시스템의 구성 요소

- 데이터베이스,    스키마,    DBMS(Data Base Management System),    데이터베이스 언어,

데이터베이스 컴퓨터,    데이터베이스 사용자

4. 데이터 언어 ( Data Language )

  > 데이터 언어?  : 데이터베이스를 구축하고 이용하기 위한 데이터베이스 관리시스템과의 통신 수단.

  > 데이터 언어는 기능과 사용 목적에 따라 3가지로 나뉜다

- DDL ( Data Definition Language ) : 데이터 정의어

ㄴ 데이터베이스 구조, 데이터 형식, 접근 방식 등 데이터베이스를 구축하거나 변경할 목적의 언어

ㄴ DDL 컴파일러가 컴파일 한 후 데이터 사전에 저장

ㄴ 기능

ㄴ 데이터베이스의 논리적, 물리적 구조를 정의 및 변경

ㄴ 스키마에 사용되는 제약 조건을 정의

ㄴ 데이터의 물리적 순서를 규정

- DML ( Data Manipulation Language ) : 데이터 조작어

ㄴ 데이터 처리를 위해서 응용 프로그램과 데이터베이스 관리 시스템 간의 인터페이스를 위한 언허

ㄴ 데이터 처리를 위한 연산의 집합으로 데이터의 검색, 삽입, 삭제, 갱신 연산 등이 있다.

ㄴ DML의 형테

ㄴ 절차적 데이터 조작어 : 

ㄴ 사용자가 어떤(What) 데이터를 필요로 하는지 명시

ㄴ 사용자가 어떻게(How) 필요한 데이터를 구하는지까지 명시

ㄴ 배우기도 어렵고 사용도 어렵다.

ㄴ 비절차적 데이터 조작어 : 

ㄴ 사용자가 어떤(What) 데이터가 필요한지만을 명시

ㄴ 사용자가 어떻게(How) 필요한 데이터를 구하는지는 명시하지 않음

ㄴ 학습과 조작은 용이하지만 코드 효율성 면에서 비효율적

- DCL ( Data Control Language ) : 데이터 제어어

ㄴ 보안 및 권한 제어, 무결성, 회복, 병행 제어를 위한 언어이다.

ㄴ DCL의 기능

ㄴ 데이터 보안 : 권한이 없는 접근으로부터 데이터베이스를 보호한다.

ㄴ 데이터 무결성 : 의미적 측면에서 데이터가 정확하고 완전함을 의미한다. 사용자가 무결성 제약 조건을 정의하면 데이터베이스 관리 시스템은 데이터를 삽입, 삭제, 갱신할 때 마다 제약 조건을 자동적으로 검사한다.

ㄴ 데이터 회복 : 시스템 오류 등으로부터 데이터베이스를 회복한다.

ㄴ 병행 제어 : 여러 사용자가 동시에 데이터베이스를 공유할 수 있도록 한다.

 

5. 데이터베이스 사용자

  > 데이터베이스 관리자 (DBA : DataBase Administraror)

- DDL과 DCL을 통해 데이터베이스를 정의하고 제어하는 사람 또는 그룹

- 데이터베이스 관리 시스템과 컴퓨터 시스템, 그리고 조직 내의 전산 업무에 상당한 지식을 보유해야 한다.

- 주요 임무는 DB설계, 관리, 운용, 통제이며 효율성과 경제적 효용성 향상을 위해 시스템을 감시하고 성능을 분석.

  > 데이터 관리자 (Data Administrator)

- 하나의 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안 업무를 담당할 뿐 아니라 기업 또는 조직 전반에 걸쳐 존재하는 데이터에 대한 관리를 총괄하고 정보 활용에 대한 중앙 집중적인 계획 수립 및 통제를 수행한다.   

- 전사적으로 수립된 데이터 표준 원칙, 데이터 표준, 데이터 표준 준수 여부 관리

  > 데이터 설계자 (Data Architect)

- 기업의 업무 수행에 필요한 데이터의 구조를 체계적으로 정의하는 사람

- 데이터 구조를 정의하기 위해 데이터 구조 전반에 걸쳐 데이터 구조 원칙, 데이터 구조 정보, 데이터 구조 관리 등을 정의해야 한다.

- 데이터 표준, 데이터 관리 체계 등을 포함하는 데이터 영역을 분류하며, 이를 기준으로 데이터 모델을 생성.

  > 응용 프로그래머 (Application Programmer)

- 호스트 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근하는 사람

- 호스트 프로그래밍 언어를 사용할 수 있고, 데이터베이스 관리 시스템에 대해서도 알고 있는 전산 전문가를 지칭

  > 일반 사용자 (End User)

- 질의어(Query Language)를 통해 데이터베이스 관리 시스템에 접근하는 사람을 지칭

- 컴퓨터나 데이터베이스 관리 시스템에 대한 지식 필요 없음

- 데이터 삽입, 삭제, 갱신, 검색 등의 목적으로 데이터베이스 관리 시스템 활용

 

2. 데이터베이스 관리 시스템


1. 데이터베이스 관리 시스템의 개념

  > 사용자와 DB 간 사용자의 요구에 따라 정보를 생성해주고 DB를 관리해 주는 소프트웨어


2. 데이터베이스 관리 시스템의 필수 기능

  > 정의 기능(Definition Facility) : 데이터의 타입, 구조, 저장 시의 제약조건 등을 명시하는 기능 제공

  > 조작 기능(Manipulation Facility) : 체계적 데이터 처리를 위해 데이터 접근 기능을 명시(검색, 삽입, 삭제, 갱신 등)

  > 제어 기능(Control Facility) : 데이터의 정확성과 안전성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행제어 명시


3. DBMS의 장/단점

  > 장점 : 

- 데이터의 논리적, 물리적 독립성 보장

- 데이터 공동 이용 가능

- 데이터 표준화 가능

- 데이터 무결성 유지 가능

- 데이터 실시간 처리 가능

- 데이터 중복 배제 가능

- 데이터를 통합하여 관리 가능

- 데이터의 일관성 유지 가능

- 데이터의 보안 유지 가능

- 항상 최신의 데이터를 유지 가능

  > 단점 : 

- 데이터베이스 전문 인력 부족

- 대용량 디스크로의 집중적인 접근 때문에 과부하 발생 가능성 존재

- 전산화 비용 증가

- 데이터의 백업과 회복이 어려움

- 시스템 복잡도 증가

 

3. 스키마


1. 스키마의 개념

  > 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 의미

  > 스키마는 DB를 구성하는 요소들을 전반적으로 정의한다.

- 데이터 개체(Entity), 속성(Attribute), 관계(Relationship), 데이터 조작 시 데이터 값들이 갖는 제약 조건 등

  > 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.


2. 스키마의 특징

  > 데이터의 구조적 특성을 의미

  > 데이터 사전에 저장됨(Data Dictionary)

  > 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.

  > 시간에 따라 불변인 특성을 보유

  > 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술


3. 스키마의 3계층

  > 외부 스키마

- 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것

- 서브스키마 라고도 한다 (전체 DB의 한 논리적인 부분으로 볼 수 있기 때문)

- 하나의 DBMS에 여러개의 외부 스키마가 존재할 수 있다.

- 하나의 외부 스키마는 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.

- 각각의 외부 스키마는 동일한 DB에 대해 서로 다른 관점을 정의할 수 있도록 허용됨

  > 개념 스키마

- 개념 스키마는 단 하나만 존재 > DB의 전체적인 논리적 구조이다

- 개체 간의 관계와 제약조건이 명시되어 있음

- DB 접근 권한, 보안 정책, 무결성 규정에 관한 정의를 포함

- 단순히 스키마라고 하면 개념 스키마를 의미한다

- 개념 스키마는 기관이나 조직의 관점에서 데이터베이스를 정의한 것

- 개념 스키마는 데이터베이스 관리자에 의해서 작성됨

  > 내부 스키마

- 데이터베이스의 물리적 구조를 정의한 것

- 물리적 저장장치의 관점에서 본 전체 DB의 명세이며 단 하나만 존재한다.

- 개념 스키마의 물리적 저장 구조에 대한 정의를 기술한 것

- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

 

4. 데이터베이스 설계


1. 데이터베이스 설계의 개념

  > DB의 구조, 즉 DB 스키마를 개발하는 과정을 뜻함

  > 요구조건 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > DB 구현 > 요구조건 분석 > ... 

  > 데이터 중심 설계 + 처리 중심 설계

- 데이터 중심 설계 : DB구조 설계에 집중

- 처리 중심 설계 : 데이터 처리 및 응용 방법 설계에 집중


2. 요구 조건 분석

  > DB를 사용자가 필요로 하는 용도를 파악하는 작업 

  > 사용자의 요구조건을 수집하고 분석하여 공식적인 요구 조건 명세 작성

- 정적 정보 구조(개체, 속성, 관계, 제약 조건 등)

- 동적 DB 처리 요구 조건(트랜잭션의 유형, 트랜잭션의 실행 빈도 등)

- 범기관적 제약조건에 대한 요구 조건(기관의 경영 목표, 정책, 규정 등)

  > 작성된 요구 조건 명세는 주요 사용자 그룹과 다시 검토하고 확인한 후 최종 시스템 명세로 확정


3. 개념적 설계

  > 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

- 정보의 구조를 얻기 위하여 현실 세계의 무한성과 계속성을 이해하고 다른 사용자와 통신하기 위함

  > 개념 스키마 모델링 + 트랜잭션 모델링 병행 수행

- 개념 스키마 모델링 : 데이터의 조직과 표현에 집중된 데이터 중심 설계

- 트랜잭션 모델링 : 응용을 위한 데이터 처리에 집중된 처리 중심 설계

  > 요구조건 분석의 결과로 나온 요구조건 명세를 토대로 개념적 데이터 모델에서의 데이터 구조(개념스키마)를 기술

- 기술 절차의 기본 원리는 추상화이다.

ㄴ 추상화 : 복잡한 것들을 단순화 하는 것을 의미. (집단화, 일반화 등 포함)

ㄴ 집단화 : 여러 속성들을 그룹지어 하나의 개체로 통합하는 추상화 방법

ㄴ 일반화 : 공통된 성질을 가진 여러 부류의 개체들을 보다 일반적이고 포괄적인 개체로 만드는 추상화 방법


4. 논리적 설계

  > 현실 세계에서 발생한 데이터 형태를 컴퓨터가 이해할 수 있도록 논리적 데이터 구조로 변환시키는 과정

- 특정 DB관리 시스템을 우선적으로 선정하고, 해당 시스템이 지원하는 논리적 데이터 구조로 변환해야 한다

- 시스템 선정 시 비용 고려 필요(소프트웨어 획득 비용, 유지 비용, DB구축 및 전환 비용, 교육 비용)

  > 논리적 데이터 모델에서의 데이터 구조(=논리 스키마)를 설계한다

  > 관계형 DBMS를 선정한 경우

ㄴ 개념적 설계에서 기술한 ER 도형을 정형적인 규칙에 따라 릴레이션 스키마로 변환

  > 더욱 좋은 릴레이션 스키마를 제작하기 위해 정규화 과정을 수행한다.

  > 개념적 설계에서 기술한 트랜잭션 명세로 부터 트랜잭션의 전체적인 골격을 개발하고 인터페이스를 정의한다.


5. 물리적 설계

  > DB 파일에 대한 특정한 저장 구조와 접근 경로를 결정하는 과정

- 목적 : 효율적이고 구현 가능한 물리적 데이터베이스 구조(물리 스키마) 설계

- 목적2 : 주어진 응용프로그램에 대한 성능 향상

  > 물리적 설계의 내용

- 저장 구조 명세 관련 : 레코드 양식 설계, 레코드의 순서 설계, 저장 공간 설계

- 접근 경로 명세 관련 : 인덱싱 설계, 클러스터링 설계, 해싱 설계

  > 효과적인 설계를 위한 고려사항

- DB 트랜잭션을 요청해서 응답을 얻기까지의 응답 시간

- DB 파일과 접근 경로 구조에 대한 저장 공간의 효율성

- 단위 시간동안 처리되는 트랜잭션의 평균 수, 즉 트랜잭션 처리도

  > 논리적 설계에서 기술한 트랜잭션의 인터페이스로부터 상세 트랜잭션을 정의


6. 데이터베이스 구현

  > DB를 실제로 구축하는 과정

  > 미리 선정된 관리 시스템의 DDL로 기술된 명령문을 실행하여 DB 스키마와 DB 파일을 생성

- 필요에 따라 DB에 데이터 입력

  > 구현 단계에서는 응용 프로그래머에 의해 상세 트랜잭션이 실행 트랜잭션으로 구현된다

- DML로 기술된 명령문을 가지는 프로그램 코드가 작성됨

  

5. ER(Entity Relationship) 모델


1. ER 모델

  > ER 모델 ?

- 개념적 데이터 모델의 가장 대표적인 모델

- 1976, 피터 첸(Peter Chen)에 의해 제안됨

  > 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER도형(ERD : Entity Relationship Diagram)을 정의하고 있다.


2. ER 도형

  > ER모델은 몇 가지 도형들을 이용하여 현실 세계를 표현한다. 

  > ER 모델에서 사용하는 중요한 도형에는 다음과 같은 것이 있다.


3. 개체 및 개체 타입

  > 개체는 현실 세계의 객체이다.

- 유형 또는 무형의 정보 대상으로 존재

- 개체의 특성을 나타내는 속성을 갖는다.

  > 하나의 개체는 개체 어커런스 또는 개체 인스턴스로 지칭한다.

  > 개체 인스턴스의 집합에 대한 공통 특성을 갖는 개체 클래스를 개체 타입이라 한다.


4. 관계 및 관계 타입

  > 관계? : 2개 이상의 개체 사이에 존재하는 연관성을 뜻하며 차수와 카디널리티를 갖는다

- 차수(Degree) : 관계에 참여하는 개체 타입의 개수

ㄴ 차수에 따른 관계의 종류 : 

ㄴ 단항(Unary) 관계 : 관계에 참여하고 있는 개체 타입이 1개인 관계

ㄴ 이항(Binary) 관계 :                     "                        2개인 관계

ㄴ 삼항(Ternary) 관계 :                   "                        3개인 관계

ㄴ n항(n-ary) 관계 :                       "                        n개인 관계

- 카디널리티(Mapping Cardinality) : 관계에 참여하는 개체 인스턴스의 개수

ㄴ 대응 카디널리티에 따른 관계의 종류

ㄴ 1:1 관계 : 관계에 참여하고 있는 두 개체 타입이 모두 하나씩의 개체 인스턴스를 갖는 관계.

ㄴ 1:N 관계 : 관계의 참여하고 있는 한 개체 타입은 여러 개의 개체 인스턴스를 가질 수 있고, 다른 한 개체 타입은 하나의 개체 인스턴스를 갖는 관계.

ㄴ N:M 관계 : 관계에 참여하고 있는 두 개체 타입이 모두 여러 개의 개체 인스턴스를 가질 수 있는 관계.

ㄴ ISA 관계 : 

ㄴ 같은 속성을 갖는 여러 개체들을 하나의 상위 개체로 결합할 수 있다

ㄴ 특정 개체는 서로 구별되는 여러 하위 개체로 나누어 질 수 있다.

ㄴ disjoint : 상위 개체의 멤버가 하나의 하위 개체에만 포함

ㄴ overlapping : 상위 개체의 멤버가 여러 하위 개체에 포함 될 수 있음

ㄴ total : 상위 개체의 멤버가 하위 개체에 속하는 경우

ㄴ partial : 상위 개체의 멤버가 하위 개체에 속하지 않는 경우

  > 관계 타입? : 같은 관계들의 집합 또는 틀을 뜻함


5. 속성

  > 개체 또는 관계의 특성이나 상태를 기술한 것

  > 속성이 가질 수 있는 모든 가능한 값들의 집합을 도메인이라 한다.

  > 모든 개체 타입은 그 개체를 유일하게 식별해 주는 기본키에 속하는 속성을 포함한다.

  > 속성에는 단순 속성(Simple Attribute)과 복합 속성(Composite Attribute)이 있다.

ㄴ 단순 속성 : 더 이상 다른 속성으로 나눌 수 없는 속성

ㄴ 복합 속성 : 2개 이상의 속성들로 분해할 수 있는 속성


 

 

 

 












Comments