본문 바로가기
기술이야기/CS 및 기술들

데이터 베이스에 대해 정리했던 내용들

by SeO.V 2022. 12. 6.

예전에 노션에 정리했던 글을 들고 옴. 데이터베이스에 대한 개념 정리용이었음.

Database

Data

⇒ Data, in the context of databases, refers to all the single items that are stored in a database, either individually or as a set. Data in a database is primarily stored in database tables, which are organized into columns that dictate the data types stored therein
데이터베이스에서 데이터한, 데이터베이스에 저장된 하나의 아이템들으로서 이들의 개별 혹은 집합을 의미한다. 이들은 데이터베이스 테이블에 주로 저장되며, 정리된 컬럼(세로단)에서 문법적으로 지정된 데이터 타입으로 저장된다.

데이터의 형태

데이터는 크게 정형 데이터(structured data)와 비정형 데이터(unstructured data)로 나눌 수 있다.


source: https://thebook.io/006977/ch01/01/03/

정형(구조화, structured) 데이터는 구조와 관리 체계에 규칙이 정해져 있는 데이터를 일컬음.

오라클, MySQL 등은 정형 데이터를 다루는 관계형 데이터베이스 시스템(RDBMS)에 속함.

기업에서는 안정성 때문에 관계형 데이터베이스를 많이 사용.

SQL은 정형 데이터로 만들어진 관계형 데이터베이스를 조작하는 언어.

비정형 데이터는 정형 데이터에 상반되는 개념

비정형 데이터는 최근 빅데이터가 주목을 받기 시작하면서 부각된 데이터 형태인데, 정형 데이터 외의 모든 데이터가 비정형 데이터.

이를테면 이메일 내용과 소셜미디어 포스트, 각종 텍스트 문서, 음원과 이미지, 스마트폰에 기록되는 각종 행동 정보와 기계에서 출력되는 각종 메시지와 로그(log, 기록)등.

what is DB = DataBase?

⇒ In computing, a database is an organized collection of data stored and accessed electronically.

컴퓨터로 정리되어 저장되어서 접근 가능한 데이터의 모음을 데이터베이스라고 한다.

  • Byte들이 모여서 숫자나 문자 등 특정한 종류의 데이터를 저장하기 위한 영역을 필드(Field) 라고 하며, 필드가 모이면 레코드(Record) 가 되고, 레코드들이 모이면 파일(File) 이 됨. 그리고 여러 개의 관련 있는 파일을 논리적으로 연결해 필요한 부분을 적절히 찾고 활용할 수 있도록 한 것을 데이터베이스(Database) 라고 함.
  • 특징
  • 실시간 접근성 : 사용자의 요청에 따라 실시간으로 처리되는 데이터베이스
  • 계속적인 변화 : 데이터 값은 요청에 의해 수시로 변화. (insert/update/delete)
  • 동시 공유 : 서로 다른 업무 또는 여러 사용자에게 동시에 공유
  • Reference by content : 데이터는 물리적인 위치가 아니라 데이터 값에 따라 참조.

데이터베이스 종류

  • 관계형 데이터베이스 Relational Database :
    • 관계형 데이터베이스는 열(column, 컬럼)과 행(row, 로우)을 갖는 2차원 테이블을 중심으로 설계된 데이터베이스. 수많은 데이터를 ‘키(key)’와 ‘관계’라는 연결 고리로 연결하여 원하는 데이터를 조회하고 가공하는 방식의 데이터베이스.
    • 대표적 : 오라클, DB2, MySQL, MS SQL Sever
  • 계층형 데이터베이스 Hierarchical Database model :
    • 트리구조를 기반으로 하는 계층형 데이터 모델을 사용.
    • 계층형 데이터모델에서 데이터는 트리 형태로 구성되며,각 데이터 요소(개체)들은 상하 관계를 나타내는 링크로 구성
  • 객체 지향 데이터베이스 object-oriented Database :
    • 1980년대 후반에 등장한 데이터베이스로서, 객체 지향 프로그래밍 개념에 기반을 두고 있음. 이 모델은 데이터와 프로그램을 독립적인 객체의 형태로 구성하여 복잡한 데이터 유형을 처리하기 용이하고 객체들을 이해하기 쉽다는 장점이 있으나 이 모델은 다소 개념적인 형태로서 실제로는 사용하기 어려운데 아직까지는 완전한 형태의 객체 지향형 데이터 베이스를 구현하고 못하고 있는 실정이기 때문.
  • XML 데이터베이스
    • W3C(World Wide Web Consortium)의 XML 표준 문서 구조를 계층형 트리 형태로 저장하거나 관리하기 위해 만든 데이터베이스

DBMS=DataBase Management System

⇒ DBMS는 database management system의 약자로 데이터베이스 관리 시스템을 말한다. 자료에 대한 사용자의 다양한 요구를 적절히 처리하고 응답해 줌으로써 이를 사용할 수 있도록 해주는 시스템으로 종류는 Oracle, MySQL, MS SQL, MariaDB 등 많다.

DBMS 장점

  • 데이터 중복 최소화
  • 중복 제거로 인한 데이터 일관성 유지
  • 데이터 무결성 유지
    • 개체 무결성 : 모든 테이블은 PK(기본키)를 갖으며, PK는 중복된 값을 가질 수 없다.
    • 참조 무결성 : 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되어야 한다.
    • 도메인 무결성 : 테이블에 존재하는 필드의 무결성을 보장해야 하는 것. 데이터의 타입에 맞아야 한다.
    • NULL 무결성 : 테이블의 특정 속성 값을 null 이 될 수 없도록 제한했다면 해당 속성에 null이 있으면 안된다.

데이터베이스 시스템 구성

데이터 베이스 언어

  • SQL : Structured Query Language
    • DDL (Data Definition Language) : CREATE, ALTER, DROP
    • DML (Data Manipulation Language) : SELECT, INSERT, DELETE, UPDATE
    • DCL (Data Control Language) : GRANT, REVOKE

데이터 베이스 사용자

  • 일반 사용자
  • 프로그래머 : 애플리케이션 개발자
  • SQL 사용자 : 쿼리를 작성하는 엔지니어
  • DBA : 운영 조직의 데이터 베이스 시스템을 총괄하는 엔지니어

DBMS

  • 사용자와 데이터 베이스를 연결하는 소프트웨어
  • DBMS의 구성
    • SQL을 번역하는 DML/DDL 컴파일러
    • 응용 애플리케이션에 삽입된 SQL을 번역하는 Embedded DML 컴파일러
    • 번역된 SQL을 처리하는 질의처리기 (알고리즘)
    • 트랜잭션 관리자
    • 파일 관리자
    • 버퍼 관리자
  • DBMS 기능
    • 데이터 정의
      • 데이터 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
    • 데이터 조작
      • 데이터를 조작하는 소프트웨어가 요청하는 데이터의 검색, 삽입, 수정, 삭제 지원
    • 데이터 추출
      • 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터 추출
    • 데이터 제어
      • 데이터 베이스 사용자를 생성하고 모니터링하며 접근을 제어
      • 백업과 회복, 동시성 제어 기능을 지원

데이터 모델

  • 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지 결정
    • 계층 데이터 모델 & 네트워크 데이터 모델 Hierarchical Data Model & Network Data Model
      • 프로그래밍 언어 레벨에서 포인터 타입을 이용하여 데이터를 저장하는 방식
      • 프로그램 속도가 빠르지만 애플리케이션 개발 속도가 느리다는 단점이 있다.
    • 관계 데이터 모델 Relational Data Model
      • A 테이블에서 사용되는 값 x를 B 테이블에 저장하는 방식
      • 포인터를 사용할때보다 느리지만, 애플리케이션 개발이 빠르다는 장점이 있다.
      • RDBMS
    • 객체 데이터 모델 Object Data Model
      • 테이블 하나가 하나의 객체로 인식.
      • PK 대신 OID(Object Id)를 사용하며, PK처럼 객체의 속성에 의존하지 않고 시스템에 의존하기 때문에 일단 생성되면, 값의 변경이 발생하지 않는다.
      • 객체지향 언어의 상속, 캡슐화의 개념을 도입한다
    • 객체-관계 데이터 모델 Object-Relational Data Model
      • 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델
    • 데이터 모델링은 데이터를 이해하고 유형화하고 구조화하는 과정을 말한다. 현실 세계의 데이터를 본질적으로 분석해 현상을 이해하고 추상화하는 과정이다. ⇒ '추상화', '단순화', '명확화'

Structured Query Language(SQL)

⇒SQL stands for Structured Query Language

SQL is a standard language for accessing databases

SQL has been an international standard (ISO) since 1987


source: https://thebook.io/006977/ch01/01/05/

SQL 특징

  1. 사용하기 쉽다.
    • 구조와 문법 체계가 직관적이며 익히기 쉽다.
  2. 절차가 없는 비절차적 언어다.
    • 실행 순서와 관계없이 처리 내용을 기술.
  3. 관계형 데이터베이스의 데이터를 조작할 수 있다.
    • 데이터를 정의, 검색, 조작할 수 있다.
  4. 표준 언어다.
    • 데이터베이스뿐만 아니라 다양한 분야에서 응용할 수 있다.

관계형 데이터베이스Relational Database


source : https://prepinsta.com/dbms/rdbms/

릴레이션(Relation)은 2차원의 테이블

레코드(Record)는 릴레이션에서 각 행(Row) : 튜플(Tuple)은 레코드를 좀더 공식적으로 부르는 용어

애트리뷰트(Attribute)는 릴레이션에서 이름을 가진 열(Column)  == 필드(Field)

⇒ Domain : column이 정의되는 집합 : 정의역(함수에서) / 데이터 타입들

Database VS Storage

데이터베이스 = 스토리지 + 시스템

데이터베이스는 체계적인 데이터 모음으로 데이터 저장 및 조작을 지원한다. 스토리지에 저장된 데이터를 더욱 사용하기 쉽게 만들어주는 것이 데이터베이스 서버라고 생각하면 된다.

스토리지는 말 그대로 데이터(정보)를 저장하는 공간이자 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품으로, 하드디스크와 동일한 역할을 수행하는 부품이다.(비휘발성 기억장치)

설명 잘 된 글


== Reference ==

'기술이야기 > CS 및 기술들' 카테고리의 다른 글

How the Internet Works in 5 Minutes 정리  (0) 2022.11.29