아키텍처(Architecture) 란?  

  1. 시스템을 만들기 위한 물리 레벨의 조합(서버의 기능, 저장소와 네트워크 기기의 조합 등)
  2. 데이터베이스 설계에서 시스템의 구성
  3. 아키텍처 통해 시스템의 용도와 목적 추측 가능 

 

● IT 아키텍처(Architecture)

:  일정 기준과 절차에 따라 조직 전체의 정보화 구성요서를 통합분석 후 그 관계를 구조적으로 정리한 체제 이를 바탕으로 정보시스템을 효율적으로 구성하기 위한 방법 

 

 

● IT 시스템 아키텍처 예시

- 아키텍처 구성을 시스템의 목적에 맞게 결정하는 과정, 서버, OS, 미들웨어, 저장소 등 폭젋은 지식 필요 

- 적정 비용으로 필요 시스템 구축하기 휘해서도 매우 중요 

 

● IT 아키텍처의 역사 

단계 특징
Stand-alone - 1980년대까지 널리 이용
- 데이터베이스만으로 시스템 운용
클라이언트 / 서버  - 1990년대 ~ 2000년
- 클라이언트와 서버로 계층 분리
- 상호 네트워크 접속
WEB 3계층  - 2000년 ~ 현재
- WEB, WAS, DBMS로 구분
- 클라이언트 / 서버 단계를 발전시킨 현재의 주료 모델 

- 최근에는 클라우드 시대를 맞이하여 기존의 틀을 뒤엎은 다양한 IT 아키텍처가 등장

- 서버가 마치 존재하지 않는 것처럼 운영되는 서비스 개념도 존재

- 다양한 클라우드 서비스 업체가 경쟁

- 클라우드를 이해하기 위해서도 기존의 전통적인 방식의 IT 아키텍처의 지식 필수 

 

1. Stand - alone 단계(DBMS 관점) 

: DBMS 서버가 네트워크 접속 없이 독립적으로 작동, 20세기 현대적 컴퓨터의 최초 등장시기 

장점 단점
- 구축 과정이 간단함(소규모 작업 및 테스트를 빨리
   처리할 수 있음)
- 높은 보안(네트워크 연결 불가)
- 물리적 떨어진 장소에서 접근 불가
- 복수 사용자가 동시에 작업 불가(1명만 이용가능)
- 낮은 가용성(Availability) - 서버가 단 1대임
- 확장성 부족 

 

 

2. 클라이언트 / 서버 단계 (DBMS 관점) 

: 네트워크 연결을 통한 복수 사용자가 동시에 사용가능, DB 서버 한대에 복수 사용자가 접속하는 구성이 주를 이룸

장점 단점
- 원격지에서도 사용가능 
- 복수의 사용자가 동시에 사용 가능 
- 인터넷 환경에서 접속시 보안이 위험
- 각자의 사용자 PC에서 애플리케이션 설치
  (수정 및 배포의 어려움 존재

 

 

3. WEB3 계층 (DBMS 관점)

: 애플리케이션을 WAS 서버에서 관리 , 시스템을 3가지 계층의 조합으로 인식하기 시작(WEB, WAS, DBMS) 

장점 단점
- 직접적인 접속 요청을 웹서버 계층에 한정하여 보안이 향상
- 애플리케이션 계층에 비즈니스 로직이 집중
  (관리의 용이성 및 비용 절감) 
- Stand - Alone 및 클라이언트 / 서버 방식에 비해 크게
  단점이 존재하지 않음. 

 

 

● 가용성과 확장성 확보 

 

가용성이란 ? 

  1. 가용성이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다. 
  2. 가용성을 수식으로 표현할 경우, 가용성(Availability) 이란 정상적인 사용시간(Uptime)을 전체 사용시간                (Uptime + Downtime)으로 나눈 값을 말한다. 이 값이 높을수록 "가용성이 높다" 고 표현한다. 
  3. 가용성이 높은 것은 고가용성(HA, High Availiability) 이라고 한다. 

 

 

- 가용성이 100이라면 단 한번도 장애없이 동작한 시스템이다. 

 

 

확장성이란 ? 

  1. 화가작성(Scalability)는 IT 시스템에서 대규모적인 재설계 및 재설치가 필요없이 확장이 얼마나 쉽고 가능한지에 대한 용이성을 뜻한다.
  2. DBMS 설계자는 DBMS의 확산이나 거대한 성장을 도모해야한다. 
  3. 절대적인 사용자가 수가 증가하더라도 이를 수용할 수 있도록 확장성 있게 설계해야 함을 의미한다. 
  4. 최근의 클라우드 시스템이 각광받는 이유 중 하나가 바로 탁월한 확장성에 있다. 

 

● 가용성을 높이는 전략

고품질 - 소수 저품질 - 다수
- DBMS 서버의 고품질을 추구
- 소수의 DBMS 서버를 이용
- 소수의 DBMS 서버를 높은 견고함과 신뢰성으로 무장
- DBMS 서버가 품질이 떨어지더라도 다수의 DBMS를 사용하는 전략
- 클러스터링 전략(동일 기능의 DBMS 서버를 다수로 구축

 

● 저품질 - 다수 전략의 용이성

 

- 동일 기능을 하는 DBMS 서버를 여러 대 설치 및 운영하여 병렬화 시킴

- 여러 대의 DBMS 서버가 한 개의 시스템을 위해서 존재

- 다중화/여유도 확보

- 서버를 늘릴수록 장애 발생률은 확률적으로 자연 감소함

 

● 단일 장애 점(SPOF, Single Point Of Failure) 

 

- 단일 장애 점(SPOF, Single Point Of Failure)은 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다. 높은 가용성을 추구하는 네트워크, 소프트웨어 애플리케이션, 사용 시스템에 단일 장야점이 있는것은 바라직하지 않다. 

- 높은 신뢰성을 요구하는 시스템은 단일 컴포넌트에 의존하지 않는 것이 좋다(ex 금융권 시스템) 

 

● 신뢰성 vs 가용성

신뢰성 (Reliability) 가용성 (Availability)
- 하드웨어나 소프트웨어가 고장 나는 빈도 밑 고장 기간
- 컴포넌트 자체의 문제 
- 사용자 입장에서 시스템을 어느 정도 사요할 수 있는가
- 시스템 전체 수준의 문제 

- 신뢰성이 낮아도 여러 대의 서버를 구축하는 클러스터링 기법을 통해 가용성 확보가 가능하다. 

 

'빅데이터 > SQLD' 카테고리의 다른 글

[SQLD] 관계형 데이터베이스란  (0) 2020.12.06
[SQLD] 데이터베이스란  (0) 2020.12.06

관계형 데이터베이스(Relational Database)란

  1. 관계형 데이터베이스(relational DataBase)는 키(Key)와 값(Value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스임 보통 RDB라고 불림.
  2. 2차원 표를 이용한 데이터 목록화 관리를 하는 것이 주목적(Excel, Google 스프레드 시트)
  3. 실세계를 그대로 반영함으로 직관적인 이해가 가능(주소록, 출석부, 가계부 등)
  4. 우리는 실생활에서 사용하는 모든 정보를 관계형 데이터베이스로 관리 가능  

 

● 관계형 모델 

  • 관계형 모델(relational model)은 집합론에 기반을 둔 일종의 데이터베이스 모델임 이 모델은 에드거 커드에 의해 최초로 제안되고 체계화 되었다. 
  • 컬럼(열)과 로우(행)를 이루는 하나 이상의 테이블이 존재 하고 테이블에 데이터가 저장
  • 각각의 테이블은 각각의 로우를 식별하는 기본키(Primay Key)가 있음
  • 컬럼은 필드(Field) 혹은 속성(Attribute)라고도 불림, 로우는 레코드 혹은 튜플(Tuple)로 불림

 

 

● 관계형 데이터 베이스의 혁신성 

특징 설명
역사적 혁신성 최초로 2차원 표를 이용한 데이터베이스 소프트웨어
기능적 혁신성 직관적인 바업으로 데이터를 추출할 수 있음
 - SQL 언어를 이용한 간편한 데이터 추출
 - 데이터베이스 사요아 층의 빠른 증가에 기여
 - 개발 및 업무 생산성 확대

 

SQL 기초 

● SQL 이란? 

  1. SQL(Structured Query Language)는 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계 된 특수 목적의 프로그래밍 언어이다. 
  2. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. 
  3. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다. 

● SQL의 용도 

 

● SQL의 장점

  • 일반 프로그래밍 언어에 비해 간결
  • 모국어 말하는 것처럼 데이터 조회 및 갱신 가능 즉 간단한 영어 문장을 사용
  • 간단한 기본 조장 명령어(SELECT, INSERT, UPDATE, DELETE)

● 테이블, 행, 열 

: 관계용 데이터베이스와 SQL의 용어, SQL의 기초를 학습하는데 있어서 반드시 이해고 넘어가야합니다.

함복 설명
테이블(TABLE) 관계형 데이터베이스의 2차원 표
데이터 관리하는 유일 단위
테이블 설계는 데이터베이스 설계의 중요 부분
행(ROW)  테이블의 가로축
텍스트 파일로 치면 한 개의 라인
열(COLUMN)  테이블의 세로축 

- 행과 열이 교차하는 부분을 셀(CELL)아라고 함 

 

 

관계형 데이터베이스 기초 

관계형 데이터베이스 소프트웨어(=DBMS)

  1. 관계형 데이터베이스를 사용하기 휘해서 DBMS를 설치
  2. 대표적인 관계형데이터베이스 소프트웨어 - Oracle , MySQL, SQL Server 등 

● 데이터베이스와 DBMS의 차이 

항목 특징
데이터베이스 추상적개념
DBMS 실체적개념
기능 및 구조 실현을 위한 구체적 소프트 웨어 

Oracle은 DBMS이고 데이터베이스 자체는 아닙니다. 

 

'빅데이터 > SQLD' 카테고리의 다른 글

[SQLD] 데이터베이스 아키텍처 (1)  (0) 2020.12.07
[SQLD] 데이터베이스란  (0) 2020.12.06

데이터베이스(DataBase) 란? 

  • 데이터 베이스는 컴퓨터 시스템에 전자적으로 저장된 체계적 데이터의 모듬
  • 컴퓨터가 초기 발명된 시점에는 과학적인 연구의 용도(수학적 계산)로 사용
  • 컴퓨터 과학이 발전하면 점점 더 대용량의 데이터를 저장하고 조회하는 요구사항 증가
  • 이러한 환경에서 데이터베이스의 개념 도입 

 

● 데이터 베이스 사용 이전 

 

- 일반 텍스트 파일 사용

- 데이터베이스 발명 이전에 데이터는 텍스트 파일 형태로 저장 및 관리 

- 파일 형태는 여러 사용자가 동시에 공유하기 어려움

- 파일을 서로 주고받으면서 데이터의 유실 등의 가능성 존재 

 

 

 

● 모든 것이 데이터 베이스로 관리되는 시대

 

- 현재 모든 것이 데이터 베이스로 관리 

- 주소록, 직원관리, 매출관리, 쇼핑몰, 영화 예매, 증권, 등등

- 텍스트, 그림, 동영상, 파일 등 모든 데이터가 데이터베이스로 관리 

 

 

데이터 베이스 관리 시스템이란? 

 

데이터베이스 관리 시스템(database managements system, DBMS)은 다수의 사용자들이 데이터베이스의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합. 

 

② DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용하도록 함. 

 

데이터 베이스 시스템의 특징 

특징 설명
실시간 접근석(real time accessibility) - 데이터 베이스는 실시간으로 서비스 된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스 한다. 
계속적인 변화(continuous change) - 데이터 베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. 

- 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통하여 바뀐데이터 값을 저장한다. 
동시 공유(concurrent sharing) - 데이터 베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 

- 동시는 병행 이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미이다. 
내용에 따른 참조(reference by content)  - 데이터베이스에 저장된 데이터는 데이터의 물지적인 위치가 아니라 데이터 값에 따라 참조된다. 

 

 

● 데이터 베이스의 기본 기능 

 

데이터 삽입, 삭제, 수정, 조회 기능 

 

 

- 동시성 제어 

ex) 영화 예매 

 

한 사람이 결제를 진행하고 있는 상태라면 같은 시간, 같은 좌선은 선택할 수 없다. 

동시성 제어의 중요성 

 

① 데이터 베이스의 동시성 제어가 보장되지 않는다면 같은 좌석에 대한 결제가 동시에 진행될 수 있다.

② 만약 같은 시간, 같은 자리, 간은 영화를 예매한다면 해당 좌석은 누구의 다리도 아닌 좌석이 된다. 

③ 영화관의 대혼란을 맞이한다.

④ 데이터베이스의 동시성은 한 기업의 비즈니스 성패를 좌우할 수 있을 정도로 중요하다.  

 

 

 

- 장애 대응 기능 

: 데이터베이스는 데이터 손실이 발생한 겨웅에 복원이 가능해야한다. 즉, 데이터의 보호와 장애에 대한 방안이 있어야한다. 

 

- 보안기능

  • 데이터베이스의 보안 기능은 사용자에게 보여줄 데이터만 보여주는 것
  • 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리
  • 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행
  • 개인 정보의 유출등 매우 심각한 문제가 되므로 데이터의 보안이 중요

 

● 데이터 베이스의 종류 

종류 명  설명
계층형 데이터베이스  계층 구조로 데이터 관리, 최초의 현대적 데이터베이스
관계형 데이터베이스 2차원 표 형식으로 데이터 관리, 가장 널리 사용됨
객체 지향형 데이터베이스  아직 널리 사용되지 않음
NOSQL 데이터베이스  Not Only SQL, 최근 각곽받고 있으며, 관계형 데이터베이스 기능 일부 삭제 

 

- 데이터베이스 세계 순위 

 

'빅데이터 > SQLD' 카테고리의 다른 글

[SQLD] 데이터베이스 아키텍처 (1)  (0) 2020.12.07
[SQLD] 관계형 데이터베이스란  (0) 2020.12.06

+ Recent posts