데이터베이스 개론 - 2 (아키텍처)

김대한·2022년 9월 14일
0

데이터베이스 개론

목록 보기
2/14

데이터베이스 아키텍처

용어 정의

Data Model : 실데 데이터의 저장구조와 연산을 의미하며 일반적으로 관계형 모델을 가장 많이 사용하며, 그 외로 계층형, 망형 모델이 있다.

Database Model Structure에는 element(data type)을 포함하며 groups of element(entity, record, table)와 이들의 relationships를 포함 한다.

Database Model Operations는 기본적인 model operation(generic insert, delete, updata)와 user-defined-operation을 포함한다.

Database Schema(intenstion) : description of the database로 데이터의 타입, 제약, 구조에 대한 내용을 담고 있음 즉, database에 들어가 있는 수치, 즉 states들이 어떤 식으로 데이터베이스 안에서 구성이 되고 있는지를 설명해주는 역할

schema diagram

Database State(instanec)(extenstion) : 실제 Database instance라고도 불리는 Database state는 database에서 실질적인 데이터 값을 의미. Schema가 데이터베이스 구성에 대한 부분을 나타내주었다면, 그 안에 들어가는 데이터 값을 Database state. 즉, 데이터베이스의 데이터 값이 될 수도 있고 문자열로 구성된 데이터베이스 안의 특정 단어나 내용이 될 수도 있다.

Data Model진행

  1. concptual(high level, semantic, 개념적 데이터 모델)
    • 가장 개념적인 데이터 모델이며 주로 ER모델을 통해 표현한다.
    • 속성들로 기술된 개체 타입과 이 개체 타입간의 관계를 이용하여 현실세계 표현
  2. logical(논리적 데이터 모델) data model
    • 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터 세계의 환경에 맞도록 변화하는 과정
    • 데이터 모델이라 하면 논리적 모델을 의미
    • 데이터 간의 관계를 어떻게 표현함에 따라 관계, 계층, 네트워크 모델 등이 있음
  3. physical(low-level, interal, 물리적 데이터 모델 ) data model
    • Record의 상세 스펙을 기술한 모델로 실제 컴퓨터에 데이터가 어떻게 저장되는 지를 기술
  4. implementation(representational) data model
    • 상위 두 모델의 연결하는 모델로 컴퓨터가 이해할 수 있는 방식의 모델
  5. self-describe
    • NOSQL방식의 데이터 모델

데이터 설계 플로우

요구 사양서 -> 개념적 데이터 모델 설계 -> 논리적 데이터 모델 설계 -> 물리적 데이터 모델 설계 -> 구현

Tree-schema Architecture

1) 외부 스키마 (External Schema)

  • 데이터 추상화의 최상위 단계로서 전체 데이터 베이스의 일부분만을 기술해 놓는다.
    = 서브 스키마(Sub Schema)라고도 불림
  • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
  • 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
    = 사용자 뷰(View)라고도 불림
  • 하나의 외부 스키마를 여러 개의 응용프로그램이나 사용자가 공용할 수 있음
  • 일반 사용자는 질의어(SQL)를 사용하여 데이터베이스를 사용
  • DML을 이용하여 데이터 접근 -> 딱 사용자 창

2) 개념 스키마(Conceptual Schema)

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

3) 내부 스키마(Internal Schema)

  • 데이터베이스의 물리적 구조를 정의
  • 데이터의 실제 저장방법을 기술(데이터의 물리적인 설계도)
  • 물리적인 저장장치와 밀접한 계층(데이터의 저장위치, 데이터의 구조, 파일 구성 및 보안대책 등)
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마


데이터 모델과 스키마의 차이는?

데이터 모델은 데이터베이스를 설계하기 위한 모든 개념들을 정의 내린 것. 데이터베이스의 구조, 연산자, 제약조건 등이 정의 되어있으며, 이를 활용하여 데이터 모델링을 진행함. ER 모델 같은 것이 데이터 모델입니다.

스키마라고 하면 앞서 설명한 데이터모델을 이용하여 실제 데이터베이스를 설계할 때, 각 객체와 관계에 대해 정의 내리고, 제약조건이나 연산자 정의. 제약조건이나 연산자는 데이터 모델에서 제공하는 것을 사용할 수도 있고, 사용자가 직접 정의할 수도 있음. 즉, 데이터 모델은 툴이라고 보면, 스키마는 그 툴을 이용하여 설계도를 그리는 단계.

Data Independence

사용자가 외부 스키마를 통해 데이터를 요구하면 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환하는 과정을 거처 해당 디스크로 접근하여 데이터를 추출한 뒤 해당 데이터를 다양한 형태롤 사용자에게 제공

하위 스키마에 대한 구조가 바뀌어도 사용자는 데이터 독립성에 의해 영향을 받지 않으며 사용자의 편의성 응용의 안정성 제공해중
파일 시스템의 경우파일 구조가 변경되면 이를 사용하는 응용 프로그램이 심각한 영향을 받게 됨

논리적 독립성

  • 개념 스키마가 변경되어도, 외부 스키마에 영향을 주지 않는다.

물리적 독립성

  • 내부 스키마가 변경되어도, 개념 스키마 / 외부 스키마에 영향을 주지 않는다.

DBMS 언어

DDL(data definition language) : 데이터 정의어

  • 데이터 베이스를 정의하는 언어를 말하며 데이터를 수정 삭제 등에 사용
  • ex. create, alter, drop, truncate

DML(data manipulation laguage) : 데이터 조작어

  • 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할을 함, 테이블의 행과 열을 조작하는 언어
  • ex. select, insert, update, delete

DCL(data control) : 데이터 제어어

  • 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 함

DBS component Modules

DBS architecture

1. 시스템 배치 방식에 의한 분류

중앙 집중형
통합센터에서 시스템과 데이터를 저장하고 운영하는 방식이다.
대용량 서버에 통합 데이터베이스를 구성하여 아키텍처가 간단하다.
하지만 통합센터에 장애가 발생할 시 모든 서비스가 다운된다.

분산형
지역별로 데이터를 분산하여 시스템을 동작한다.
중소형 서버를 여러개 운용하며 부하 분산 효과를 가질 수 있다.
하지만 데이터베이스 무결성 관리고 어렵고 복잡해진다.

2. 응용 프로그램 제공 방식에 의한 분류

클라이언트-서버 아키텍처
시스템의 기능을 서버와 클라이언트에 분리하여 위치시키는 구조이다.
데이터 관리, 프로세스, 프리젠테이션 영역을 어디에 위치시키냐에 따라 담당하는 역할이 달라진다.
클라이언트에서 응용 프로그램을 동자기켜 UI를 구현시킬 수 있다.
게임, 메신저, 터미널 서버등이 있다.

웹 시스템 아키텍처
서버에 모든 기능을 구현하고 클라이언트는 웹브라우저로 이용만 한다.
미들웨어를 통해 안정적인 성능을 보장할 수 있으며 재사용성이 높다.
PC와 모바일 환경 동시에 사용이 가능하다.

3. 시스템 계층에 의한 분류

2티어 아키텍처

  • 2티어 구조는 데이터 저장을 서버에서하고 프로세스는 클라이언트에서 하는
    클라이언트-서버 아키텍처와 동일한 구조
  • 업무를 클라이언트와 서버로 분할하여 여러 대의 컴퓨터를 사용함 서버 측에서 모든 사용자의 연결정보를 가지고 있어야 하며, 연결상태를 유지해야 함 (부담) -> 사용자가 많아지면 성능 저하
  • 주로 lan을 통한 printer, web, email server가 이렇게 구성 되어 있다.

3티어 아키텍처

  • 2티어를 초월하기 위하여 만들어졌다.
    – 서버를 기능에 따라 여러 개로 분리함 (응용서버, DB서버)
    – 응용서버를 여러 개 둘 수 있으며, DB는 필요할 때만 (클라이언트가모르게) 연결하므로 보안강화, 성능향상 (대용랑 DB, 사용자가 많을 때사용) 효과
  • 프리젠테이션과 데이터 사이에 비즈니스 로직을 처리하는 티어를 따로 두어 유연성과 확장성을 얻었다.
  • 클라이언트에 DB접속 정보가 없으며 배포가 유연해진다.
  • 하지만 복잡하고 하드웨어 추가 구입이 발생한다.

Referrence

https://whoishoo.tistory.com/244

profile
나는 고양이야 다만 개같을 뿐이지

0개의 댓글