티스토리 뷰

데이터베이스의 개념 및 특징

Q. 데이터베이스란?

A. 조직이 관리하는 공용의 중복을 최소화하여 통합, 저장한 운영 데이터의 집합

 

통합된 데이터 (Integrated data)

  • 여러곳에서 사용하던 데이터를 통합하여 하나로 저장.
  • 데이터의 중복을 최소화하여 중복 저장으로 인한 데이터 불일치 최소화 -> 데이터 무결성

저장된 데이터 (Stored data)

  • 컴퓨터 저장장치에 저장된 데이터를 의미한다.

운영 데이터 (Operational data)

  • 조직의 목적을 위해 사용되는 데이터.
  • 업무를 위해 검색을 할 목적으로 저장된 데이터를 말한다.

공용 데이터 (Shared data)

  • 한사람만을, 한 업무만을 위한 데이터가 아니라 공동으로 사용되는 데이터를 의미.
  • 어느 순간에라도 동시에 여러 사용자에 의해 사용될 수 있다.

 

이러한 데이터베이스의 특징 4가지

 

실시간 접근성 (real-time accessibility)

  • 요청이 오면 실시간으로, 즉 수 초 이내로 응답이 와서 결과를 서비스 한다.

계속적인 변화 (continuous change)

  • DB에 저장된 데이터는 어느 순간에도 변경되어 저장될 수 있고, 이렇게 삽입, 수정, 삭제 등으로 바뀐 데이터가 저장된다.

동시 공유 (concurrent sharing)

  • 다수의 사용자에 의해 동시에 하나의 데이터가 접근될 수 있다.

내용에 따른 참조 (reference by content)

  • 물리적인 위치가 아니라 데이터 값에 따라 참조된다.
  • 데이터 값을 사용하여 조건을 제시하여 검색한다. (e.g., select * from table where id='3')

 


데이터베이스 시스템

  • 3가지로 구성된다.
  • DBMS + 데이터베이스 + 데이터 모델

DBMS : 사용자와 DB를 이어주는 인터페이스적 존재, 소프트웨어

데이터베이스 : 데이터가 저장된 공간

데이터 모델 : 데이터가 저장되는 기법, 계층 데이터 모델, 네트워크 데이터 모델, 객체 관계 데이터 모델 등 이 있다.

 

데이터베이스 시스템의 구성

1. 데이터베이스 언어 SQL

 

SQL은 데이터베이스 전용 언어이다. 크게 3가지 종류로 나뉜다.

  • 데이터 정의어, DDL
    • 데이터를 저장하는 공간, 테이블 구조를 정의한다.
    • DB 스키마를 컴퓨터가 알아들을 수 있도록 기술한다. 
    • CREATE, ALTER, DROP
  • 데이터 조작어, DML
    • 데이터 자체를 조작한다. 검색, 삽입, 수정, 삭제를 하는데 사용된다.
    • 데이터를 처리할 수 있도록하는 도구이다.
    • SELECT, UPDATE, INSERT, DELETE
  • 데이터 제어어, DCL
    • 데이터의 수행 권한을 관리한다.
    • 데이터 관리를 위한 도구이다.
    • GRANT (권한부여), REVOKE (권한삭제)

2. 데이터베이스 사용자

  • 일반사용자, 응용 프로그래머, SQL 사용자, DBA가 있다.

3. DBMS

  • 사용자와 데이터베이스를 연결시켜주는 소프트웨어.
  • DB사용자가 데이터베이스를 생성, 공유, 관리 할 수 있도록 지원하는 총체적인 역활을한다.

4. 데이터 모델

  • 데이터를 저장하는 이론적인 방법이다.

대표적인 4가지

  • 계층 데이터 모델 (포인터를 이용해서 연결, 1 : N), 네트워크 데이터 모델 (포인터를 이용해서 연결, N: M)
    • 더이상 사용되지 않는 모델로 포인터를 이용해 데이터를 추적한다.
    • 개별적인 포인터 프로그래밍이 애플리케이션에서 이뤄져야 했다.
  • 관계 데이터 모델 (속성값 사용, 데이터 속성을 다른 데이터에 직접 저장)
    • 현대에 가장많이 사용되는 모델이다. 
    • 2차원 구조인 테이블을 기반으로한다.
    • 질의어(Query)를 사용한 데이터 접근 방법이다.
  • 객체 데이터 모델 (객체 식별자 사용, 객체의 고유 식별자 (id)를 연결된 데이터 테이블에 저장)
  • 객체 - 관계 데이터 모델
    • 관계형 데이터 모델에 객체 데이터 모델의 장점을 선별하여 통합한 모델이다.
    • 기본적으로 관계형 데이터 모델을 기반으로 하면서 객체지향 모델의 장점을 담은것이다.
    • 참조 타입을 지원한다. 객체들로 이뤄진 객체 테이블의 경우 하나의 레코드가 다른 테이블의 레코드를 참조할 수 있다.
    • ORM에 대해서는 JPA, Hiberate에 대해 더 찾아보도록 하자.

현대에는 관계형 데이터 모델을 기본으로 사용하고 객체 데이터 모델의 장점을 수용한 객체 - 관계 데이터 모델로 발전중이다.

 

5. 데이터베이스 개념적 구조

 

3단계 데이터베이스 구조를 갖는다

  • 외부 단계, 개념 단계, 내부 단계로 구성, 각각의 단계에 스키마가 존재한다.

Q. 스키마란?

A. 데이터베이스에 저장되는 데이터 구조와 제약조건 등을 정의한 것.

데이터 베이스의 정적인 구조와 동적인 유지 조건까지 포함한다. (숫자의 크기, 문자열의 길이 등)

 

외부단계

  • 전체 데이터베이스 중에서 하나의 논리적인 부분을 말한다.
  • 여러개의 스키마가 존재할 수 있다. (학생 수강 신청 스키마, 수강 강좌 등록 스키마 등)

개념 단계

  • 전체 데이터베이스의 정의를 의미한다.
  • 모든 사용자들의 관점을 통합하여 전체 조직관점에서 데이터베이스 구조를 정의한 것.
  • 하나의 스키마만이 존재한다.

내부 단계

  • 저장장치 관점에서 전체 데이터베이스의 구조를 정의한 것
  • 물리적 저장장치에 데이터베이스가 실제로 저장된 방법을 표현한다.
  • 하나의 스키마만이 존재한다.

 

3단계 데이터베이스 구조의 특징

 

데이터 독립성을 가질 수 있다. 단계별로 나눠 하위 단계를 추상화 함으로써 상위 단계에 그 세부사항을 숨겨 한 단계 내의 변경에 대해서 다른 단계와 상호작용이 없도록 한다.

 

논리적 데이터 독립성

  • 외부단계와 개념단계 사이의 독립성으로, 개념 스키마가 변경되더라도 외부 스키마에는 영향이 없도록 한다. 개념 단계에서 논리적 구조가 변경되어도 외부스키마가 직접 다루는 테이블이 아니면 영향을 주지 않는다.

물리적 데이터 독립성

  • 개념단계와 내부단계 사이의 독립성으로, 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 주지 않도록 한다. 물리적 저장장치를 성능을 위해 재구성하더라도 개념 스키마, 외부 스키마에는 영향을 주지 않는다.
반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday