# What is Database?, Introduction to Computer Science, 6주차

Study date: 04/Apr/2024

Goals :

* 데이터베이스의 개념(concept of database)과 구조(structure)를 설명할 수 있다.
    
* 관계형데이터베이스(relational database) 모델을 이해하고 데이터관리시스템(data management system)을 설명할 수 있다.
    
* 빅데이터의 특징(characteristics)을 이해하고 빅데이터 분석을 위한 기술(the technologies necessary for big data analysis)을 나열할 수 있다.
    

### 1) 데이터베이스(database)

* **데이터베이스의 개념:** 서로 관련 있는 데이터(related data)들을 효율적으로 관리하기 위해 수집된 데이터들의 집합체(collection of data sets)로서, 각 데이터들은 상호 유기적 관계(interrelated relationships)에 의해 구성되어 있다.
    
* **데이터베이스의 사용자 관점(database user perspective)의 구성요소**
    
    * 일반 사용자(user): 질의어(query language)를 이용해서 접근하는 사용자
        
    * 응용 프로그래머(developer): 데이터조작어(DML)를 이용해 데이터베이스를 접근하는 사람
        
    * 데이터베이스 관리자(database administrator): 데이터 정의어(DDL)와 데이터 제의어(DCL)를 사용하여 데이터베이스를 DBMS에 기술해 주고 저장된 데이터를 제어할 목적으로 데이터베이스를 접근하는 사람
        
* **데이터베이스의 언어 관점(database language perspective)의 구성요소**
    
    * 데이터 정의어(DDL): DB를 정의나 수정의(defining or modifying) 목적으로 사용하는 언어
        
    * 데이터 조작어(DML): DB의 처리(조회, 삽입, 삭제, 수정)를 목적으로 사용하는 언어
        
    * 데이터 제의어(DCL): 여러 사용자가 DB를 정확하고 안전하게 사용할 수 있도록 관리 및 통제 기능(managing and controlling functions)을 목적으로 사용하는 언어
        

### 2) 관계형 데이터베이스(relational database)

* **관계형데이터베이스(relational database) 모델이란?**
    
    * 테이블 형식으로 데이터를 저장하는 모델
        
    * 이를 수학적인 용어로 '릴레이션'이라고 한다.
        
    * 카디널리티(Cardinality): 릴레이션을 구성하는 듀플의 수
        
    * 듀플(Tuple): 각 행, 하나의 튜플은 각 애트리뷰트에서 정의된 값들을 이용해서 구성됨
        
    * 애트리뷰트(attribute): 각 열에 부여된 이름
        
* ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1712128824798/841a8924-9761-4656-aed1-6f0e271ec57b.png align="center")
    
* **관계형 데이터관리시스템(data management system)이란?**
    
    * 관계형 데이터 모델을 기반으로하는 DBMS
        
    * 현재 대부분의 상용DBMS가 관계형 데이터 모델을 기반으로 함
        
    * 표준SQL을 데이터베이스 언어로 기본 제공
        
    * ORACLE, MySQL, SQLite, IBM DB2 등
        
* **SQL(Structured Query Language)**
    
    * ANSI, ISO에서 국제 표준으로 채택된 고급 데이터 언어로 SQL을 배우면 모든 DBMS에서 응용이 가능하다.
        
    * 단순히 검색만을 위한 질의어가 아니라 데이터 정의, 조작, 제어기능을 모두 제어한다
        
    * SQL명령어 종류: 데이터정의어(DDL), 데이터조작어(DML), 데이터제의어(DCL)
        

### 3) 빅데이터(Big data)

* **빅데이터란?** 기존 데이터베이스 범위를 넘어서는(exceed the scope of traditional databases) 방대한 양의 데이터 집합(vast amounts of data sets)으로부터 가치 있는 정보를 빠르고 효율적으로 추출하고 분석하는 기술(extracting and analyzing valuable information)
    

* **빅데이터의 특징(characteristics): 5Vs**
    
    * 크기(Volume): 방대한 양의 데이터
        
    * 다양성(Variety): 실시간으로 생산, 빠른 속도로 분석
        
    * 속도(Velocity): 정형데이터+비정형데이터(data in many forms)
        
    * 진실성(Veracity): 진실되고 신뢰할 수 있는 데이터
        
    * 가치(Value): 비지니스로 실현될 가치에 중점을 줌
        
* **빅데이터 분석을 위한 기술(the technologies necessary for big data analysis)**
    
    * 1. **수집 (Data Collection)**:
            
            * 데이터를 수집하는 단계로, 다양한 소스에서 데이터를 수집하고 통합한다.
                
            * 데이터 수집 관련 기술로는 ETL(Extract, Transform, Load)/크롤링/로그수집기/센싱/Open API등이 있다.
                
        2. **저장 (Data Storage)**:
            
            * 수집된 데이터를 안전하게 저장하고 관리하는 단계
                
            * 대용량 데이터를 저장하기 위해 하둡(Hadoop)이나 NoSQL 데이터베이스 (MongoDB, Cassandra 등)를 사용합니다.
                
        3. **처리 (Data Processing)**:
            
            * 저장된 데이터를 처리하고 분석하기 위한 단계
                
            * 데이터 처리 관련 기술로 실시간처리/분산병렬처리/인메모리 처리 등이 있다.
                
        4. **분석 (Data Analysis)**:
            
            * 데이터를 효율적으로 정확하게 분석하여 비지니스 등의 영역에 적용하기 위한 기술
                
        5. **시각화 (Data Visualization)**:
            
            * 분석된 결과를 시각적으로 표현하여 이해하기 쉽게 만드는 단계
                
            * 다양한 차트, 그래프, 대시보드를 생성하여 데이터를 시각화하고 인사이트를 시각적으로 전달
                
            * 시각화 도구로는 Tableau, Power BI, matplotlib, seaborn 등이 사용됨
                
        
        이러한 다섯 가지 단계를 통해 빅데이터를 효과적으로 분석하고 가치 있는 정보를 추출할 수 있다.
        

추가 정보

* 파일 처리 시스템(file processing system)은 데이터베이스시스템(DBMS)이 개발되기 전에 사용된 시스템이다.
    
* 빅데이터 플랫폼(MySQL, Oracle, 등)을 사용하여 빅데이터를 수집, 저장, 처리 및 관리한다.
    
* 마이크로소프트의 Azure는 마이크로소프트에서 제공하는 클라우드 형태의 빅데이터 플랫폼이다
