YoonWould!!

[실기] 데이터베이스 본문

<IT기술>/정보처리기사

[실기] 데이터베이스

Hading 2018. 6. 27. 16:28
728x90

데이터 베이스 개념

 

데이터베이스의 정의

 

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

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

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

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

 

데이터베이스의 특징

 

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

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

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

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

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

1. 논리적 독립성 : 응용프로그램과 데이터베이스를 독립시킴으로써 데이터의 논리적 구조를 변경시키더라도 응용프로그램은 변경되지 않는 특징

 

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

 

데이터 언어

 

DDL(데이터 정의어) : 데이터베이스 구조, 데이터 형식, 접근 방식 등 데이터베이스를 구축하거나 변경할 목적으로 사용하는 언어

기능

1. 데이터베이스의 논리적, 물리적 구조를 정의 및 변경한다.

2. 스키마에 사용되는 제약 조건을 정의한다.

3. 데이터의 물리적 순서 규정

 

DML(데이터 조작어) : 데이터 처리를 위해서 응용 프로그램과 DBMS간의 인터페이스를 위한 언어이다. 데이터 처리를 위한 연산의 집합으로 데이터의 검색, 삽입, 삭제, 갱신 연산등이 있다.

 

DCL(데이터 제어어) : 보안 및 권한 제어, 무결성, 회복, 병행 제어를 위한 언어

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

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

3. 데이터 무결성 : 데이터가 정확하고 완전함을 의미한다.

 

 

데이터베이스 사용자

 

- 데이터베이스 관리자(DBA) : DDLDCL을 통해 데이터베이스를 정의하고 제어하는 사람 또는 그룹이다.

- 데이터 관리자(Data Administrator) : 하나의 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안업무를 담당하고 데이터 관리 총괄

- 데이터 설계자(Data Architect) : 기업의 업무 수행에 필요한 데이터의 구조를 체계적으로 정의하는 사람

- 응용 프로그래머(Application Programmer) : 호스트 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근하는 사람

- 일반 사용자(End User) : 질의어를 통해 DBMS에 접근하는 사람

 

 

DBMS의 개념

DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어

 

기존 파일 시스템의 문제점

1. 데이터 종속성으로 인한 문제점 : 응용 프로그램과 데이터 파일 간에 상호 의존적인 관계가 존재하기 때문에 데이터 파일이 저장되는 방법이나 접근 방법을 변경할 때 응용 프로그램도 같이 변경해야 하는 문제점

 

2. 데이터 중복성으로 인한 문제점 : 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어지고, 보안 수준 유지 어려움, 정확성이나 무결성을 효율적으로 유지할 수 없다.

 

DBMS의 기능

 

- 정의 기능 : 데이터의 타입과 구조, 데이터가 데이터베이스에 저장될 때의 제약 조건 등을 명시하는 기능을 제공

- 조작 기능 : 데이터 처리를 위해 데이터 접근 기능(검색, 삽입, 삭제 , 갱신 등)을 명시하는 기능 제공

- 제어 기능 : 데이터의 정확성과 안전성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행 제어 등을 명시하는 기능을 제공

 

DBMS 장단점

 

- 장점

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

2. 데이터를 공동으로 이용할 수 있다.

3. 데이터를 표준화할 수 있다.

4. 데이터의 무결성을 유지

5. 데이터의 실시간 처리 가능

6. 데이터의 중복을 피할 수 있다.

7. 데이터를 통합하여 관리

8. 데이터의 일관성 유지

9. 데이터 보안 유지

10. 항상 최신의 데이터를 유지

- 단점

1. 대용량 디스크로의 집중적인 접근으로 과부하가 발생

2. 데이터의 백업과 회복이 어렵다.

3. 시스템이 복잡해짐

 

데이터 스트림 관리 시스템(DSMS)

무선센서 네트워크나 인터넷 같은 통신상에서 발생하는 대량의 스트림 데이터를 처리하고 관리하는 시스템

 

스키마의 개념

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

-데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의

 

- 구조

사용자 <-> 외부 스키마 <-응용 인터페이스-> 개념 스키마 <-저장 인터페이스-> 내부 스키마 <-장치 인터페이스-> 저장 DB

 

데이터 사전(Data Dictionary)

 

- 데이터 사전은 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템으로, 시스템 카탈로그라고도 합니다.

 

- 데이터 사전에는 '데이터에 관한 데이터(Data About Data)'가 저장되어 있다고 하여 데이터 사전을 메타 데이터라고도 합니다.

 

 

 

메타 데이터(Meta Data)

- '데이터에 관한 데이터', 즉 실제 저장되는 데이터는 아니지만, 저장되는 데이터와 직접 혹은 간접적으로 관계가 있는 정보를 제공하는 데이터를 말합니다.

- 대표적인 메타 데이터 포맷

 

1. MARC(Machine Readable Cataloging)

목록 레코드를 식별하여 축적, 유통할 수 있도록 코드화한 메타 데이터

 

2. DC(Dublin Core)

네트워크 환경에서 각종 전자 정보를 기술하는 메타 데이터

 

3. ONIX(ONline Information eXchange)

유통에 관한 통계와 체계적인 정보를 취급함으로써 정상적인 유통 및 관리를 위한 메타 데이터

4. MODS(Metadata Object Description Schema)

디지털 도서관의 범용 서지 정보 표준 메타 데이터로서 MARC, DC, ONIX 등을 절충하여 상호운용성과 정밀성을 모두 만족시킴

 

- 메타 데이터의 상호운용성을 확보하기 위한 방법에는 자원을 하나의 표준적인 메타 데이터로 통합하여 표현하는 방법, 자원의 특성을 감안하여 다양한 메타 데이터 형식과 기술 구조를 인정하고 상호 매핑을 통해 해결하는 방법, MDR에 의한 해결 방법이 있습니다.

 

cf) MDR(Meta Data Registry)?

 

- 메타 데이터의 등록과 인증을 통하여 메타 데이터를 유지, 관리하며, 메타 데이터의 명세를 공유하는 레지스트리입니다.

 

스키마의 3계층

- 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것

 

- 개념 스키마 : 개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보호 정책 및 무결성 규정에 관한 명세를 정의

 

- 내부 스키마 : 데이터베이스의 물리적 구조를 정의한 것 

 

데이터베이스 설계 => 데이터베이스의 구조, 즉 데이터베이스 스키마를 개발 과정

 

1. 요구조건분석 : 사용자의 요구 조건을 수집하고 분석함으로써 공식적인 요구 조건 명세를 작성

2. 개념적 설계 : ER도형과 같은 추상화 도구를 이용하여 현실 세계를 추상화한 개념 스키마를 만든다.

3. 논리적 설계 : ER도형을 논리 스키마로 변환한다.

4. 물리적 설계 : 효율적이고 구현 가능한 물리 스키마를 기술한다.

5. 데이터베이스 구현 : 실제로 목적에 맞는 특정 DBMSDDL을 이용하여 운용 데이터베이스를 구축한다.

 

키의 개념 및 종류

 

- 기본키 : 후보키 중에서 선정된 키로 중복될 수 없다.

- 후보키 : 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

- 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말함

- 대체키 : 후보키 중에서 기본키를 제외한 나머지 키

- 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

 

무결성의 개념

 

: 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미

 

무결성의 종류

 

1. NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정

2. 고유 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 함

3. 도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다.

4. 키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다.

5. 관계 무결성 : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정

6. 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

7. 개체 무결성 : 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL일 수 없다.

 

관계대수의 개념

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

 

기본 연산 : SELECT, Project, join, division

집합 연산 : Union, Difference, Intersection, Cartesian Product

 

Join => 세타 조인 , 자연 조인

 

관계해석

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

 

이상의 개념

: 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상

 

이상의 종류

1. 삽입 이상 : 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상

 

2. 삭제 이상 : 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, , 연쇄 삭제가 발생하는 현상

 

3. 갱신 이상 : 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

 

정규화의 개념

: 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정으로, 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.

 

1. 1정규화 : 도메인을 원자값으로만 구성

2. 2정규화 : 부분적 함수적 종속 제거

3. 3정규화 : 이행적 함수적 종속 제거

4. BCNF : 결정자이면서 후보키가 아닌 것 제거

5. 4정규화 : 다치 종속 제거

6. 5정규화 : 조인 종속성 이용

 

 

 

 

728x90