2021. 04. 26(월)

Dylan·2021년 4월 26일
0

DataBase

데이터베이스

  • 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합관리되는 정보의 집합이다.
  • 데이터베이스는 관련성 있는 데이터의 모음이다.
  • 은행, 예약, 검색, 쇼핑 등 일상 속에서 이둉하고 있는 많은 온라인 서비스들에서 DB를 활용한다.
  • 데이터베이스는 반드시 데이터베이스 관리 시스템(DataBase Management System, DBMS)과 함께 한다.

데이터베이스 관리 시스템

  • 다수의 사용자들이 데이터베이스 내의 데이터를 접급할 수 있도록 해주는 소프트웨어 도구의 집합이다.
  • DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.
  • 장점
    • 자료의 통합성을 향상시킨다.
    • 데이터의 접근성이 쉬워진다.
    • 데이터의 통제가 강화된다.
    • 보안이 강화된다.
  • DBMS를 통해 DB를 사용한다.
  • 관계형 데이터베이스(Relational DataBase)를 관리해주는 RDBMS가 가장 많이 사용된다.

사용자 관점에서의 데이터베이스

  • DB는 관련있는 데이터를 모아놓은 것이다.
  • 데이터가 많은 경우에 효율적으로 관리하거나 접근관리 등 여러가지 추가적인 기능들을 지원한다.
  • 데이터베이스에서 원하는 데이터를 가져올 때는 직접 데이터베이스에 요청하지 않고, DBMS를 통해서 질의(Query)하게 된다.
  • DBMS에 질의하기 위해서는 SQL이라는 언어를 사용한다.
  • DBMS는 입력된 SQL을 처리하고 필요하다면 DB에 접근하여 작업을 수행한다.
  • 데이터베이스는 구조화된 데이터를 저장한다.
  • 현실 세계의 데이터를 데이터베이스에 저장하기 위해서는 모델링 작업이 필요하다.
  • 관계형 데이터베이스에서는 객체-관계 모델링(Entity-Relationship Modeling, ERD)방법으로 데이터를 모델링한다.

관계형 데이터 모델

  • 관계형 모델에서는 이론적으로 데이터베이스를 관계(Relation)의 집합으로, 관계를 행(Tuple)의 집합으로, 행을 속성(Attribute)의 집합으로 본다.
  • 관계형 데이터베이스에서는 관계가 테이블(Table), 행이 레코드(Record), 속성이 컬럼(Column)으로 대치된다.
  • 관계라는 이름으로 불리는 이유는 속성과 행이 어떤 관계에 의해 모여진 집합으로 보기 때문이다.
  • 관계형 데이터 모델에서 속성은 해당 속성이 가질 수 있는 모든 값에 대한 도메인을 가지며, 원자적이어야 한다.
  • 관계형 데이터베이스에는 관계의 집합과 제약 조건의 집합으로 이루어져 있다.

SQL

  • RDBMS를 통해 DB를 사용하기 위해 사용하는 특수 목적의 프로그래밍 언어다.
  • SQL의 종류
    • 데이터 조작 언어
    • 데이터 정의 언어
    • 데이터 제어 언어

데이터베이스의 특징

  • 실시간 접근을 지원한다.
  • 다수의 사용자 혹은 프로그램이 동시에 데이터를 이용할 수 있다.
  • 데이터에 대한 접근이 용이하다.
  • 레코드의 주소나 위치가 아닌 내용으로 데이터를 탐색할 수 있다.
  • 항상 최신의 데이터를 유지한다.

SQL

  • Structured Query Language
  • 구조화된 질의 언어
  • 데이터베이스와 관련된 명령을 작성할 때 사용하는 언어
  • SQL의 종류
    • DDL(Data Definition Language)

      • 데이터 정의 언어
      • 데이터베이스의 구조를 정의하는 명령어다.
      • 데이터베이스의 주요 객체를 생성,삭제,변경하는 작업 수행한다.
        • (주요 객체: 테이블, 뷰, 인덱스, 시퀀스, 동의어, 트리거, 사용자 ...)
      • 주요 명령어
      명령어설명
      CREATE새로운 데이터베이스 객체 생성
      DROP기존 데이터베이스 객체 삭제
      ALTER기존 데이터베이스 객체 변경
      TRUNCATE데이터를 되돌릴 수 없도록 제거
    • DML(Data Manipulation Language)

      • 데이터 조작 언어
      • 데이터베이스에서 데이터를 추가/조회/변경/삭제하는 작업을 수행한다.
      • 주요 명령어
      명령어설명
      INSERT테이블에 새로운 데이터 행을 추가한다.
      SELECT테이블에서 데이터를 조회한다
      UPDATE테이블의 데이터를 변경한다
      DELETE테이블에 저장된 특정 데이터 행을 삭제한다
    • DCL(Data Control Language)

      • 데이터 제어 언어
      • 권한제어, 트랜잭션 제어 작업을 수행한다.
      • 주요 명령어
      명령어설명
      GRANT특정 사용자에게 특정 작업을 수행을 권한을 부여
      REVOKE사용자에게 부여된 권한을 박탈
      COMMIT트랜잭션을 실행
      ROLLBACK트랜잭션을 취소
      SAVEPOINT롤백지점을 설정한다

SQL의 장점

  • 배우기 쉽다.(사람의 언어와 유사하다.)
  • 효율적이다
  • 기능적으로 완벽하다(SQL을 사용하여 테이블의 데이터를 정의, 검색, 조작이 가능하다.)
    • 1970년에 E.F. Codd박사 데이터베이스 시스템을 위한 관계형 모델을 제안하는 논문발표

테이블

  • 데이터베이스에서 데이터의 실질적인 저장소 역할을 수행한다.
  • 2차원 표(테이블)의 형태로 데이터를 저장한다.
  • 하나의 데이터베이스는 여러 개의 테이블이 존재한다.
  • 구성요소
      • 다른 행과 완전히 독립적이다.
      • 행의 순서는 중요하지 않으며, 행은 특정한 정보의 모든 데이터를 나타낸다.
      • 데이터의 속성을 나타낸다(데이터의 이름, 데이터의 자료형)
      • 같은 열은 같은 종류의 값을 가진다.
      • 열은 서로 다른 이름을 가지고 있다.
      • 하나의 테이블에 이름이 같은 열은 존재할 수 없다.

0개의 댓글