[데이터베이스] 데이터베이스와 관계형 데이터베이스

suRan·2022년 11월 6일
2

🕋 데이터베이스

목록 보기
1/1

패스트 캠퍼스의 데이터베이스와 SQLD 합격패스 Online를 수강하며 정리한 내용.

데이터베이스


데이터베이스란?

  • 데이터베이스란?

    • 데이터는 모두 IT시스템 내부의 데이터베이스에 저장이 된다. 이 데이터베이스를 관리해주는 것이 데이터베이스 관리시스템이다.
    • 컴퓨터 과학이 발전하면서 점점 더 대용량 데이터를 저장하고 조회하는 요구사항이 증대됐다.
    • 데이터베이스 발명 이전 데이터는 텍스트 파일 형태로 저장 및 관리 되었다. 파일 형태는 여러 사용자가 동시에 공유하기가 어렵다. 파일을 서로 주고받으면서 데이터의 유실 등의 가능성이 항상 존재했다. 누가 수정, 삭제, 입력을 하든 다 같이 활용할 수 있도록 하자는 것이 데이터베이스이다.
  • 지금은 모든 것이 데이터베이스로 관리되는 시대이다. 주소록, 직원관리, 매출관리, 쇼핑몰, 대학, 병원, 공공 등등… 그 중 의미있는 데이터를 분석하는 것이 빅데이터인 것이다.

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

  • 데이터베이스 관리 시스템(database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다.
  • DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
  • 대표적인 DBMS는 오라클. 수많은 기능과 안정성 때문에 많이 사용한다. 접속해서 활용하자.

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

  • 실시간 접근성 (real time accessibility)
    • 데이터베이스는 실시간으로 서비스된다 . 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스 한다.
    • 데이터가 변화된 것을 실시간으로 볼 수 있다. 예를 들어 예매한 영화의 예매가 잘 됐는지 예매내역을 확인하고싶다면 바로 확인할 수 있다. 수 초 내에 결과를 서비스한다는 게 중요함. 그래서 데이터베이스 관리 시 성능이 중요하다.
  • 계속적인 변화 (continuous change)
    • 데이터베이스에 저장된 내용은 계속 바뀐다.
    • 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다
    • 데이터베이스는 삽입, 삭제, 수정 등의 작업을 통하여 바뀐 데이터 값을 저장한다
  • 동시 공유 (concurrent sharing)
    • 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.
    • 동시는 (병행)이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미다
    • 파일 시스템 시대에는 서로 바뀐 것에 대해 데이터를 주고받아야 했다. 그러나 데이터베이스에서는 한 곳에 데이터를 모아두고 그 데이터를 동시에 관리하는 것이다.
  • 내용에 따른 참조 (reference by content)
    • 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조 된다.
    • 즉, 구축이 된 데이터베이스(IDC)의 물리적 위치는 중요하지 않다. 내용에 따른 참조로 데이터를 조회하고 가져오는 게 중요한 거지 물리적 위치는 중요하지 않다는 것.

데이터베이스의 기본 기능

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

    • 조회 : 원하는 데이터를 조회하는 기능 (ex. 영화 시간표 조회)
    • 갱신 :
      • 삽입 : 원하는 데이터를 저장하는 기능 (ex. 영화 예매)
      • 삭제 : 삭제하는 기능 (ex. 영화 예매 취소)
      • 수정 : 수정하는 기능 (ex. 영화 좌석 변경)
    • 영화 예매 시스템은 데이터의 삽입, 삭제, 수정, 조회 기능을 모두 구현해야 운영이 가능함
  • 동시성 제어

    • 여러 명의 사용자가 들어와서 작업할 때 정합성에 대한 문제가 발생하지 않도록 동시성을 제어해주는 것이 동시성 제어. (이건 트랜잭션이랑 관련있을까?)
  • 동시성 제어의 중요성

    • 데이터베이스의 동시성 제어가 보장되지 않는다면 영화관의 경우에 동일 좌석에 대한 결제가 동시에 이루어질 수 있다. 만약 영화관에서 두 관객이 모두 같은 영화관, 같은 시간, 같은 영화, 같은 좌석을 예매한다면 해당 좌석은 두 사람 중 그 누구의 좌석도 아닌 좌석이 되고 영화관은 대혼란을 맞이하게 것이다.
    • 데이터베이스의 동시성은 한 기업의 비즈니스 성패를 좌우할 수 있을 정도로 중요하다.
  • 장애 대응기능

    • 데이터베이스는 데이터가 손실됐다고 해도 어떤 기능을 통해 데이터 복원이 가능해야 함.
    • 즉, 데이터의 보호와 장애에 대한 방안이 있어야 한다.
  • 보안 기능

    • 어디에서 데이터베이스 서버에 접속하든 보안에 위배되지 않는 데이터 조회가 이루어져야 한다. 즉, 데이터베이스의 보안기능은 사용자에게 보여줄 데이터만 보여주는 것. 보안에 위배되는 데이터는 데이터 서버 내에서 관리한다. 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행한다.
    • 정리
      • 데이터베이스의 보안 기능은 사용자에게 보여줄 데이터만 보여주는 것
      • 보안에 위배되는 데이터는 데이터베이스 서버 내에서 관리
      • 사용자는 데이터베이스 내부를 알 필요가 없고 자신이 원하는 정보처리만을 수행
      • 개인 정보의 유출 등은 매우 심각한 사회문제가 되므로 데이터의 보안이 중요함

데이터베이스(DBMS)의 종류

  • 데이터 저장 방식에 따른 데이터베이스 종류

    • 계층형 데이터베이스
    • 관계형 데이터베이스 : 2차원 표 형식으로 데이터 관리 , 가장 널리 사용됨
    • 객체지향형 데이터베이스
    • NOSQL데이터베이스 : 최근 각광받는다. 관계형 데이터베이스 기능 일부 삭제
  • 관계형 데이터베이스의 제품 종류

    • 오라클
    • DB2(IBM)
    • SQL server
    • PostgreSQL
    • Tibero
    • CUBRID

관계형 데이터베이스


관계형 데이터베이스

  • 관계형 데이터베이스
    • 관계형 데이터베이스는 키(key)-값(value)의 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스.
    • 실세계를 그대로 반영하여 직관적인 이해가 가능하게 함
    • 실생활에서 사용하는 모든 정보를 관계형 데이터베이스로 관리할 수 있다.
    • 직관적인 예: 엑셀 파일에 고객 정보를 저장한다고 해보자. 엑셀 파일의 특징은 2차원 표를 이용해서 데이터 목록화 관리를 하는 것이다.

관계형 모델

  • 관계형 모델
    • 관계형 모델은 집합론에 기반을 둔 일종의 데이터베이스 모델이다.
    • 컬럼과 로우를 이루는 하나 이상의 테이블이 존재하고 테이블에 데이터가 저장된다.
    • 각각 테이블에는 각각의 로우를 식별하는 기본 키(Primary Key)가 있다.
    • 컬럼과 로우를 부르는 여러 이름을 숙지하자.
      필드컬럼속성
      튜플로우레코드

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

  • 처음 나왔을 때 어마어마한 혁신이었다. 최초로 2차원 표를 이용한 데이터베이스 소프트웨어.

  • 데이터베이스가 이해할 수 있는 언어인 SQL을 이용하면 간단하게 데이터를 핸들링할 수 있다.

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

    • Ex) 고객 연락처 중 가운데 고객 명 중 “경” 자가 들어가는 고객의 이메일 주소는 무엇인가?
    • SQL을 이용한 데이터 처리는 매우 직관적이고 사용자 편의성이 높다.

SQL 기본 지식

  • SQL이란?

    • RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 전세계 표준이라 RDBMS는 다 SQL언어를 공통적으로 사용할 수 있다.
    • RDBMS에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
    • 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택 중이다.
  • SQL의 용도

    • 관계형 데이터베이스에서 데이터를 조회 및 갱신하기 위한 언어
  • SQL의 장점

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

    • 관계용 데이터베이스와 SQL의 용어로 SQL의 기초를 학습하는데 있어서 반드시 이해하고 넘어가야 한다.
    • 행과 열이 교차하는 부분은 셀이다.
      항목설명
      테이블관계형 데이터베이스의 2차원 표
      데이터 관리하는 유일단위
      테이블 설계는 데이터베이스 설계의 중요부분
      테이블 가로축
      텍스트 파일로 치면 한 개의 라인
      테이블의 세로축
  • SELECT, INSERT, UPDATE 예제

관계형 데이터베이스를 다루기 위한 사전 지식

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

    • 관계형 데이터베이스를 사용하기 위해서는 DBMS를 설치해야 한다.
  • 데이터베이스와 DBMS의 차이

    항목설명
    데이터베이스추상적 개념
    DBMS실제적 개념
    기능 및 구조 실현을 위한 구체적 소프트웨어
    • oracle은 DBMS고 데이터베이스 자체는 아니다. 데이터베이스를 구체화한 게 DBMS인 거임
  • 일반적인 IT 시스템이 탄생하는 과정

    • DBMS와 여러 소프트웨어의 연동으로 IT시스템이 구축된다. 보통 이런 과정을 SI(System Integration)과정이라고 부른다.
  • DBMS와 운영체제

    • DBMS는 다양한 운영체제와의 조합으로 구축이 가능하다. DBMS도 소프트웨어이기 때문에 OS위에 올라간다.
    • IT예산, 제품의 기능 및 용도, 개발자와 엔지니어의 기술 스펙 등 고려해야할 요소가 많다.
    • AIX는 IBM에서 만든 OS임
  • DBMS의 마이그레이션

    • 구축한 데이터베이스를 교체해야할 때 데이터베이스를 마이그레이션(이주)해야 한다.
    • 마이그레이션이란 물리적인 서버는 바뀌더라도 기존의 데이터베이스는 그대로 유지되어야 한다는 것이다. 데이터베이스 분야에서 마이그레이션은 굉장히 자주 발생하는 작업이다.
    • 마이그레이션의 3가지 예시
      • OS만 바뀌는 경우
      • DBMS만 바뀌는 경우
      • OS 및 DBMS가 모두 바뀌는 경우
  • 애플리케이션

    • 비즈니스 처리기능을 가진 소프트웨어
    • 보통의 경우 WAS 서버에서 동작한다.
    • 일반적으로 JAVA, C 등의 프로그래밍 언어를 이용해서 구현한다.
    • 필연적으로 DBMS에 연동해서 각종 프로그램을 구축한다.
  • 애플리케이션 구현방식

    방식특징
    직접 개발• JAVA, C 등의 프로그래밍 언어로 직접 프로그래밍 구현

    • 개발비용 매우 높음
    • 고객(사용자)의 디테일한 요구사항 수용가능 |
    | 솔루션 구매 | • 솔루션 등 소프트웨어 자체를 구매한다.
    • 개발비용 절감, 소프트웨어 구매비용 증가
    • 고객(사용자)의 디테일한 요구사항 수용불가
    • 커스터마이징을 위해서는 추가비용 필요 :
    (바뀐 비즈니스를 위한 커스터마이징이 필요할 때 추가 비용 필요) |

연습문제

  • 관계형 데이터베이스의 혁신성과 거리가 것은?
    ① 시스템 개발 시 개발 생산성에 도움을 준다 .
    ② 직관적인 개발이 가능하다 .
    ③ SQL 언어를 이용하여 간편한 데이터 추출이 가능하다 .
    ④ JAVA 언어를 이용할 수 있어 시스템의 성능이 좋아진다
  • 관계형 데이터베이스는 개발 편의성이 높은 언어인 SQL을 사용하기 때문에 시스템 개발 시 개발 생산성에 도움을 준다. (정답: ④ )

더 알아볼 것


  • 객체 접근 조정 관리란?
profile
개발 공부를 해라

0개의 댓글