[CS] 정보처리기능사 실기_02.데이터베이스 기초 활용

본 문서는 정보처리기능사 실기 시험 대비용 필기입니다

데이터베이스 기초 활용

데이터베이스의 개념

데이터베이스(Database)

  • 특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 모임
  • 통합된 데이터(Intergrated Data) : 검색의 효율성을 위해 중복이 최소화된 데이터의 모임
  • 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
  • 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 데이터
  • 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터

데이터베이스 설계

  • 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것

  • 데이터베이스 설계 순서

    • 요구 조건 분석 : 요구 조건 명세서 작성
    • 개념적 설계 : 개념 스키마, 트랜잭션 모델링, E-R 모델
    • 논리적 설계 : 목표 DBMS에 맞는 논리 스키마 설계, 트랜잭션 인터페이스 설계
    • 물리적 설계 : 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
    • 구현 : 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스 생성, 트랜잭션 작성

스키마(Schema)

데이터베이스를 구성하는 개체, 속성, 관계 등 구조에 대한 정의와 이에 대한 제약 조건 등을 기술하는 것

  • 3계층 스키마
    • 외부 스키마(External Schema = Sub Schema) : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터 베이스의 논리적 구조를 정의한 것
    • 개념 스키마(Conceptual Schema) : 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재
    • 내부 스키마(Internal Schema) : 물리적 저장장치의 입장에서 본 데이터베이스 구조, 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄

데이터베이스 사용자

  • 데이터베이스 관리자(DBA; DataBase Administrator)
    • 데이터베이스 시스템을 관리하고 운영에 관한 모든 것을 책임지는 사람이나 그룹
    • 데이터베이스의 스키마를 정의, 생성, 삭제한다
    • 데이터베이스 구성요소를 결정
    • 데이터베이스의 저장 구조 및 접근 방법을 정의
    • 보안 및 데이터베이스의 접근 권한 부여 정책을 수립
    • 장애에 대비한 예비(Back Up) 조치와 회복(Recovery0)에 대한 전략을 수립
    • 무결성을 위한 제약 조건을 지정
    • 사용자의 변화 요구와 성능 향상을 위해 데이터베이스를 재구성
  • 응용 프로그래머
    • 일반 호스트 언어로 프로그램을 작성할 때 데이터 조작어를 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게, 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람들
  • 일반 사용자(End User)
    • 보통 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람들

DBMS(데이터베이스 관리 시스템)

DBMS(DataBase Management System)의 정의

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어
  • 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 줌
  • DBMS는 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐
  • DBMS의 필수기능
    • 정의 : 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터 타입과 구조에 대한 정의, 이용방식, 제약 조건 등을 명시하는 기능
    • 조작 : 데이터 검색, 갱신, 삽입, 삭제 등을 체게적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
    • 제어 : 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어하는 기능

DBMS의 종류

  • 계층형 DBMS
    • 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 DBMS
    • 개체 타입 간에는 부모(Owner)와 자식(Member) 관계가 존재하며, 1:N 대응 관계만 존재
    • 종류 : IMS, System2000 등
  • 망형 DBMS
    • 그래프를 이용해서 데이터 논리 구조를 표현한 DBMS
    • 상위(Owner)와 하위(Member) 레코드 사이에서 1:1, 1:N, N:M 대응 관계를 모두 지원
    • 종류 : IDS, TOTAL, IDMS 등
  • 관계형 DBMS
    • 가장 널리 사용되는 DBMS로, 계층형 DMBS와 망형 DBMS의 복잡한 구조를 단순화시킨 DBMS
    • 파일 구조처럼 구성한 2차원적인 표(Table)를 하나의 DB로 묶어서 테이블 내에 있는 속성들 간의 관계(Relationship)를 설정하거나 테이블 간의 관계를 설정하여 이용
    • 종류 : Oracle, SQL Server, MySQL 등

DBMS의 장단점

  • 장점
    • 데이터의 논리적, 물리적 독립성이 보장됨
    • 데이터의 중복을 피할 수 있어 기억공간이 절약됨
    • 저장된 자료를 공동으로 이용할 수 있다
    • 데이터의 보안, 일관성, 무결성을 유지할 수 있다
    • 데이터를 표준화할 수 있다
    • 데이터를 통학하여 관리할 수 있다
    • 항상 최신의 데이터를 유지한다
    • 데이터의 실시간 처리가 가능
  • 단점
    • 데이터베이스의 전문가가 부족
    • 전산화 비용이 증가
    • 대용량 디스크로의 집중적인 접근으로 과부화(Overhead)가 발생
    • 파일의 Backup과 Recovery가 어려움
    • 시스템이 복잡함

데이터 모델

데이터 모델의 정의

현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형

  • 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임
  • 현실 세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조(Schema)를 논리적으로 표현하기 위해 사용되는 지능적 도구

데이터 모델의 구성 요소

  • 개체(Entity)
    • 데이터베이스에 표현하려는 것, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
    • 유형 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성됨
    • 파일 시스템의 레코드에 대응하는 것으로 어떤 정보를 제공하는 역할을 수행
    • 독립적으로 존재하거나 그 자체로서도 구별 가능
  • 속성(Attribute)
    • 데이터의 가장 작은 논리적 단위 파일 구조상의 데이터 항목 또는 데이터 필드
    • 어떤 데이터 개체의 구성요소로서 그 개체의 성질이나 상태를 기술해 주는 역할을 하며, 그 자체로는 중요한 의미를 가지지 못한다
    • 릴레이션에서는 열(Column)에, 파일 시스템에서는 필드(Field)에 해당
    • 속성은 개체를 구성하는 항목
  • 관계(Relationship)
    • 두 개 이상의 개체 간의 연관성을 결정짓는 의미 있는 연결, 개체간의 관계 또는 속성 간의 관계
    • 개체 집합 구성 원소 사이의 대응성을 명시하는 것, 현실 세계를 개념 세계로 표현할 때 집합들의 구성 원소사이에 1:1, 1:N, N:M 등의 사상을 의미
    • 관계의 형태 : 1:1, 1:N, N:M

ER(Entity Relationship) 모델

ER 모델

개념적 데이터 모델의 가장 대표적인 것, 개체 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER 도형(ERD; Entity Relationship Diagram)을 정의하고 있다

ERD

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

관계형 데이터베이스의 개요

  • 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현
  • 개체 릴레이션, 관계 릴레이션으로 분류
  • 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이

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

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

  • 튜플(Tuple)
    • 릴레이션을 구성하는 각각의 행
    • 튜플은 속성의 모임으로 구성됨
    • 파일 구조에서 레코드와 같은 의미
    • 튜플의 수 = Cardinality = 기수 = 대응수
  • 속성(Attribute)
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
    • 개체의 특성을 기술
    • 속성의 수 = Degree = 차수
  • 도메인(Domain)
    • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
    • 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용

릴레이션의 특징

  • 한 릴레이션에는 똑같은 튜플이 포함될 수 없다
  • 튜플 사이에는 순서가 없다
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 한다
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정한다
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장

키의 개념 및 종류

키(Key) : 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성

슈퍼키(Super Key)

한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

  • 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
  • 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다

후보키(Candidate Key)

튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

  • 후보키는 유일성과 최소성을 모두 만족한다

기본키(Primary Key)

후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없음

  • 기본키는 후보키의 성질을 갖는다. 즉 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키
  • 기본키는 NULL 값을 가질 수 없다. 즉 튜플에서 기본키로 설정된 속성에는 NULL 값이 있어서는 안됨

대체키(Alternate Key)

후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미

외래키(Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미

  • 외래키는 릴레이션 간의 관계를 표현할 때 사용함
  • 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인상에서 정의되었을 떄의 속성 A를 외래키라고 한다
  • 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가짐

무결성(Integrity)

무결성의 개념 및 종류

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

  • 무결성 제약 조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건을 말함

  • 무결성의 종류

    • 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정
    • 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
    • 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야한다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
      외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 한다
    • 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족해야 한다는 규정
    • NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
    • 고유 무결성 : 릴레이션
    • 키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
    • 관계 무결성 : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정

정규화(Normalization)

정규화의 개요

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

  • 데이터베이스의 개념적 설계 단계와 논리적 설계 단계 사이에서 수행
  • 개체들에 존재하는 데이터 속성의 중복을 최소화하여 일치성을 보장하며 데이터 모델을 단순하게 구성
  • 개체에 존재하는 함수적 종속 관계를 이용하여 데이터베이스 구조를 안정화시킴
  • 정규화는 논리적 처리 및 품질에 큰 영향을 미침

  • 정규화 과정

정규화의 목적

  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함
  • 효과적인 검색 알고리즘을 생성 가능
  • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지
  • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
  • 자료 저장공간의 최소화 및 데이터 구조의 안정성을 최대화
  • 데이터베이스 내부 자료의 뮤결성 유지를 극대화

이상(Anomaly)의 개념 및 종류

정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생

  • 삽입 이상(Insertion Anomaly) : 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들도 함께 삽입되는 현상
  • 삭제 이상(Deletion Anomaly) : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상
  • 갱신 이상(Update Anomaly) : 릴레이션에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

고급 데이터베이스 기능

뷰(View)

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

  • 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주 됨
  • 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조로 되어 있으며, 조작도 기본 테이블과 거의 같음
  • 실제 내용을 사용자 편의에 따라서 사용하는 외부 스키마에 해당하는 논리적 구조를 갖으며, 데이터의 논리적 독립성을 어느정도 제공

인덱스(Index)

데이터 레코드의 검색 시간을 단축시키기 위해 만든 보조적인 데이터 구조

  • 레코드가 저장된 물리적 구조에 접근하는 방법을 제공
  • 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행할 수 있다
  • 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적
  • 인덱스가 없으면 특정한 값을 찾기 위해 모든 데이터 페이지를 확인하는 TABLE SCAN(테이블에 있는 모든 레코드를 순차적으로 읽는 것)이 발생
  • CREATE문을 이용하여 생성

시스템 카탈로그(System Catalog)

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

  • 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블
  • 카탈로그들이 생성되면 데이터 사전에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 한다
  • 시스템 카탈로그에 저장된 정보를 메타 데이터(데이터에 대한 속성정보등을 설명하기 위한 데이터) 라고 한다

트랜잭션(Transaction)

데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업 단위, 데이터 베이스 관련 연산의 가장 기본적인 단위

  • 트랜잭션은 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위
  • 하나의 트랜잭션은 데이터베이스에 접근하고 갱신하는 하나의 질의문 또는 여러 질의문으로 구성된다
  • 트랜잭션은 일반적으로 회복의 단위로 Commit 되거나 Rollback 된다
  • 트랜잭션은 원자성, 일관성, 독립성, 영속성의 특징을 가짐
    • 원자성(Atomicity) : 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다는 성질
    • 일관성(Consistency) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다는 성질
    • 독립성, 격리성(Isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다는 성질
    • 영속성(Durability) : 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다는 성질

© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6