공부/데이터베이스 개론

1. 데이터베이스의 기본 개념

dev.jelee 2024. 12. 3. 19:27

이미 정리된 내용을 직접 작성하여 옮기면서 공부하기 위해 글 작성함.


1. 데이터베이스의 기본 개념

1.1 데이터와 정보의 이해

  • 데이터(Data)
    • 데이터는 사실이나 관찰에서 얻어진 원초적인 값 또는 기록이다.
    • 예: 숫자, 문자, 사진, 음성 등.
  • 정보(Information)
    • 정보는 데이터를 처리하여 사용자가 이해하고 활용할 수 있는 유의미한 결과를 제공한다.
    • 예: "3, 5, 7"이라는 데이터는 각각의 의미를 알기 어렵지만, "학생 3명이 수업에 참석했다"는 정보는 데이터를 해석한 것이다.
  • 데이터와 정보의 관계
    • 데이터는 정보로 전환되기 위해 가공 또는 처리 과정을 거쳐야한다.
    • 데이터 -> 처리 -> 정보
  • 예제
    • 데이터: 온도 센서가 기록한 값 (25℃, 27 ℃ , 28 ℃ )
    • 정보: "오늘 하루 동안 온도는 25 ℃에서 28 ℃로 점점 상승하였다."
  • 내 생각 정리
    • 데이터는 우리가 주변에서 얻을 수 있는 원초적인 값들이며 가공되지 않은 사실이나 수치이다.
    • 정보는 특정 목적이나 필요에 맞게 데이터를 정리 또는 가공한 것이다.
    • 예시
      • 한 가게에 오전 10시~11시 사이에 들어온 손님 수가 20명이라면 이는 데이터이다. 즉, 단일한 사실 또는 수치로 추가적인 해석이 없는 원초적인 값이다.
      • 이를 가공하여 매달 오전 10시~11시 사이에 들어온 손님 수의 통계를 구한다는 것은 정보이다. 즉, 여러 개의 데이터를 수집하고 이를 가공하여 의미 있는 형태로 만든 것이다. 이렇게 데이터를 종합적으로 분석하고 정리한 결과가 정보이다.

1.2 데이터베이스 정의 및 특징

  • 데이터베이스(Database) 정의
    • 데이터베이스체계적으로 조직된 데이터의 모음으로, 특정한 목적을 위해 여러 사용자가 공유하고 사용할 수 있도록 구성된다.
    • 예: 도서관의 도서 관리 시스템, 병원의 환자 기록 시스템.
  • 특징
    • 데이터 중복 최소화: 데이터베이스는 데이터를 중앙에서 관리하여 중복을 줄인다.
    • 데이터 무결성: 데이터가 정확하고 일관성있게 유지된다.
    • 데이터 보안성: 데이터 접근 권한을 설정하여 보안성을 유지한다.
    • 데이터 독립성: 데이터베이스 구조와 애플리케이션 간의 독립성을 보장한다.
    • 동시 접근성: 여러 사용자가 동시에 데이터를 읽거나 쓸 수 있다.
  • 구성 요소
    • 데이터: 데이터베이스에 저장된 내용.
    • DBMS(Database Management System): 데이터를 관리하고 사용자와 상호작용을 지원하는 소프트웨어.
    • 사용자: 데이터를 입력하거나 질의하는 사용자.
  • 내 생각 정리
    • 데이터베이스 정의에 대하여
      • 데이터베이스는  원시적인 데이터(가공되지 않은 데이터)와 가공된 데이터(정보)가 모두 저장될 수 있는 시스템이다. 하지만 주로 원초적인 데이터가 들어가 있다.
      • 예시
        • 고객 이름, 구매 시간, 상품 가격 등은 데이터베이스에 저장되는 원시 데이터이다.
        • 반면 이 데이터는 나중에 분석되거나 가공되어 의미있는 정보로 변환될 수 있는데 이 정보를 데이터베이스에 저장할 수 있다. 예를들면 특정 기간 동안의 매출 통계, 손님의 방문 패턴 분석, 가장 인기 있는 제품 등이 될 수 있다.
        • 즉, 데이터베이스에는 가공되지 않은 데이터가 저장되지만 이를 기반으로 분석하여 추출한 값은 정보(가공된 데이터)이며 데이터베이스에 저장될 수 있다.
    • 특징으로는 데이터 중복 최소화, 데이터 무결성, 데이터 보안성, 데이터 독립성, 데이터 접근성이 있다. 여기서 데이터 무결성은 없을 무, 이지러질 결(없다), 성품 성(바탕, 성질, 본질)으로 즉, 올바르고 변조되지 않으며 일관성을 유지되는 상태를 말한다. 쉽게 말하자면 데이터베이스에서 정해진 규칙을 따르도록 하여 데이터가 올바르게 저장되고 변경되지 않도록 하는 것. 
    • 데이터베이스의 구성요소데이터, DBMS, 사용자 이렇게 구분한다.

1.3 데이터 과학 시대의 데이터 분류

  • 데이터 분류 기준
    • 구조화된 데이터(Structured Data)
      • 고정된 형식(테이블 형태)으로 저장된 데이터.
      • 예: 관계형 데이터베이스의 레코드(표 형식).
    • 반구조화된 데이터(Semi-Structured Data)
      • 고정된 스키마는 없지만 구조적 요소를 포함.
      • 예: JSON, XML 파일.
    • 비구조화된 데이터(Unstructured Data)
      • 형식화되지 않고 다양한 형태로 존재하는 데이터
      • 예: 이메일, 동영상, 이미지 파일.
  • 데이터 크기에 따른 분류
    • 작은 데이터(Small Data): 데이터 양이 작고 개별 PC나 간단한 분석으로 처리 가능.
    • 빅 데이터(Big Data): 방대한 양의 데이터로, 기존 도구로 처리하기 어려운 데이터.
  • 데이터 생성 방식에 따른 분류
    • 정적 데이터(Static Data): 생성 후 변경되지 않는 데이터.
    • 동적 데이터(Dynamic Data): 실시간으로 변하는 데이터.
  • 데이터 활용 목적에 따른 분류
    • 운영 데이터(Operational Data): 실시간 트랜잭션 처리에서 사용.
    • 분석 데이터(Analytical Data): 의사 결정을 위한 분석에 사용.
  • 예제
    • 구조화된 데이터
      • 고객 정보 테이블: 고객 ID, 이름, 주소, 연락처
    • 반구조화된 데이터
      • {
            "customer": {
                "id": "12345",
                "name": "홍길동",
                "contact": "010-1234-5678"
            }
        }
    • 비구조화된 데이터
      • 고객과의 통화 녹음 파일, 제품 사용 후기 이미지.
  • 내 생각 정리
    • 데이터 분류 기준은 구조화된 데이터, 반구조화된 데이터, 비구조화된 데이터 이렇게 나뉜다.
      • 구조화된 데이터형식이 일정하고 규격화된 데이터를 말한다. 예를 들어, 우리가 MySQL로 데이터베이스를 만들 었을 때를 생각해보면 된다. **PK(Primary Key)**와 **FK(Foreign Key)**를 사용하는였는데, 이를 관계형 데이터베이스라고 한다. 그리고 이 관계형 데이터베이스에서 테이블 만들어서 데이터를 저장했는데, 이 데이터가 구조화된 데이터에 해당한다..
        • MySQL은 관계형 데이터베이스 시스템으로, 데이터를 테이블 형태로 저장하고.
        • 각 테이블은 **행(Row)**과 **열(Column)**로 구성되며, 형식이 일정하고 규격화된 데이터를 저장한다.
      • 반구조화된 데이터JSON, XML 형태를 보면 유연한 구조를 가지고 있으며, 일정한 규칙이 있지만 그 규칙이 완전히 고정되거나 엄격하지 않은 데이터를 말한다. 요약하자면 고정된 스키마가 없는 구조이다.
        • 스키마(Schema)는 데이터의 구조를 정의한 것이다. 쉽게 말해서 데이터가 어떻게 저장되고 조직되는지에 대한 청사진이라고 할 수 있다. 구체적으로 말하자면 데이터베이스에서 테이블의 구조와 관계를 정의하고 데이터가 어떤 형식으로 저장될지, 각 데이터 항목의 어떤 속성을 가질지를 명시하는 거다.
      • 비구조화된 데이터형식화되지 않고 다양한 형태로 존재하는 데이터인데 이메일, 텍스트 파일, 이미지, 오디오, 비디오 등 다양한 형식으로 저정된다. 예를들어 SNS의 게시글, 비디오 파일, 오디오 파일 등이 모두 비구조화된 데이터에 해당된다.
    • 데이터 크기에 따른 분류는 작은 데이터와 빅 데이터로 나뉜다. 작은 데이터는 데이터 양이 작고 개별 PC나 간단한 분석으로 처리가 가능하고 빅 데이터는 방대한 양의 데이터로 기존 도구로 처리하기 어려운 데이터이다.
      • 여기서 빅데이터는 단순히 많은 양의 데이터가 아니라 "빠르게 생성되는", "다양한 형태로 존재하는", "복잡한 관계를 가진" 데이터를 말한다.
      • 예를들어 소셜 미디어의 게시글 처럼 하루에 수십억 건처럼 방대한 양의 데이터나 IoT 장치나 소셜 미디어, 온라인 쇼핑몰에서 발생하는 실시간 데이터나 텍스트, 이미지, 비디오, 오디오, 센서 데이터 처럼 여러 형태의 다양한 형태의 데이터를 말한다.
    • 데이터 생성 방식에 따른 분류정적 데이터와 동적 데이터가 있다.
      • 정적 데이터는 시간이 지나도 변하지 않는 고정된 데이터를 말하며, 동적 데이터는 시간에 따라 변하거나 업데이트되는 데이터이다.
      • 정적 데이터 예시로는 PDF, Word 파일이나 회사 규정 문서, 제품의 사양서, 고객의 정보 등 일반적으로 자주 변경되지 않는 데이터를 예를 들 수 있다.
      • 동적 데이터는 소셜 미디어 피드, IoT 센서 데이터, 실시간 교통 정보와 같은 실시간으로 변화하는 데이터를 예를 들 수 있다.
    • 데이터 활용 목적에 따른 분류운영 데이터와 분석 데이터가 있다.
      • 운영 데이터실시간 트랜잭션 처리에 사용되고 분석 데이터의사결정을 위한 분석에 사용된다.
      • 운영 데이터 예시로는 물건 배송을 보면 물건이 접수되고 물류창고로 이동한 다음에 고객한테 배송되기 까지의 실시간으로 처리되는 것을 운영 데이터라고 한다.
      • 분석 데이터 예시로는 쇼핑몰에서 12월 3일 오전에 10건의 주문이 있었고, 오후에는 20건의 주문이 발생하고 이러한 데이터들을 수집하여 시즌별 분석하거나 누가 어떤 제품을 많이 구매하는지 이런 것을 분석 데이터라고 한다.

여기까지 정리 끝