(데이터베이스) 스마트팩토리 - 27

내 이름 안찬찬·2023년 2월 27일
0

데이터 베이스란?


  • 다양한 카테고리의 정보를 저장할 수 있는 구조
  • 각 조직에서 사용하는 데이터를 통합, 관리, 공유할 목적으로 구축된 데이터의 집합
데이터를 저장하는 구조/자료의 모음

데이터베이스의 개념


  1. 통합된 데이터 (integrated data)
  • 데이터를 통합하는 개념
  • 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거

  1. 저장된 데이터 (stored data)
  • 디스크/테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미한다.
  • docs, pdf 등과는 다름

  1. 운영 데이터 (operation data)
  • 조직의 목적을 위해 사용되는 데이터를 의미
  • 업무를 위한 검색을 할 목적으로 저장된 데이터

  1. 공용 데이터 (shared data)
  • 개인이 아닌 공동으로 사용되는 데이터를 의미

데이터베이스의 특징


  1. 실시간 접근성 (real time accessibility)
  • 사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다.

  1. 계속적인 변화 (continuous change)
  • 데이터베이스에 저장된 내용은 어느 한 순간의 상태지만, 데이터 값은
    삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐다.

  1. 동시 공유 (concurrent sharing)
  • 데이터베이스는 서로 다른 업무/여러 사용자에게 동시 공유

  1. 내용에 따른 참조 (reference by content)
  • 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아닌 데이터 값에 따라 참조됨

데이터베이스 예시

  • 신용카드 데이터 -> 은행 데이터베이스
  • 세금 데이터 -> 국세청 데이터베이스
  • 원두 데이터 -> 커피 공장 데이터베이스

파일 시스템 vs 데이터베이스

파일에 데이터를 저장하면 되는데 왜 데이터베이스를 사용할까?


파일 시스템

데이터를 기록하고 여러 사람이 공유하여 사용 가능 (ex. Excel)
  • 단점1: 데이터 중복이 생길 수 있다.
  • 단점2: 데이터 공유에 있어서 제한이 존재한다.
  • 단점3: 구현과 유지보수에 시간이 오래 걸린다.

데이터베이스

파일 시스템의 단점을 개선하기 위해 등장
  • 장점1: 데이터 일치성 증가
  • 장점2: 데이터 공유 원활
  • 장점3: 의도치 않은 데이터 중복 처리 가능
  • 장점4: 데이터 보안 향상

데이터베이스 시스템 구성


  1. 데이터베이스 (DB)
  • 하드 디스크에 저장된 데이터

  1. 데이터베이스 관리 시스템 (DB Management System)
  • 주기억장치에 저장된 소프트웨어

  1. 데이터 모델 (Data Model)
  • 눈에 보이지 않는 논리적인 개념
  • 데이터를 저장하는 이론적인 방법

데이터베이스 언어

  • SQL (Structured Query Language) 사용
    - 관계형 데이터베이스에 정보를 저장, 처리하기 위한 프로그래밍 언어

  1. 데이터 정의어 Data Definition Language(DDL) :
    표를 생성, 수정, 삭제할 때 쓰는 SQL 종류 중 하나
CREATE(생성), ALTER(수정), DROP(삭제), RENAME(이름 변경), TRUNCATE(삭제)

  1. 데이터 조작어 Data Manipulation Language(DML) :
    표 내부에 데이터를 추가, 수정, 삭제할 때 쓰는 SQL 종류 중 하나
SELECT(검색), INSERT(삽입), UPDATE(수정), DELETE(삭제)

  1. 데이터 제어어 Data Control Language(DCL) :
    데이터 사용 권한 부여/회수 관리
GRANT(권한 부여), REVOKE(권한 회수)

  1. 예시


DBMS (DB Management System)란?


  • 사용자와 데이터베이스를 연결시켜주는 소프트웨어
  • DB 사용자가 DB를 생성, 공유, 관리할 수 있도록 하는 역할
  • POSCO X CODINGOn 교육에선 MySQL 사용

DBMS의 기능


  1. 데이터 정의 (Definition)
    • 데이터 구조를 정의하고 구조에 대한 삭제, 변경 기능 수행

  2. 데이터 조작 (Manipulation)
    • 데이터 삽입, 수정, 삭제 작업

  3. 데이터 추출 (Retrieval)
    • 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출

  4. 데이터 제어 (Control)
    • 데이터베이스 사용자 생성 및 접근 제어
    • 백업, 회복, 동시성 제어 기능 지원

DBMS 소프트웨어에서 SQL (프로그래밍 언어)을 이용
-데이터베이스를 생성/공유/관리 할 수 있다.


SDLC(Software Development Life Cycle) 란?


  • 제품의 요구사항부터 개발, 검증, 향후 유지보수 및 폐기까지의 전 과정을 프로세스화 시켜 소프트웨어 개발에 적용한 것

  • 소프트웨어 개발 중 데이터베이스 개발과정도 포함되어 있다.


SDLC의 5단계


1단계 - 사전조사

소프트웨어 개발을 원하는 고객의 요구사항 파악

2단계 - 시스템 분석

사용자 요구 수집, 시스템 요구 정리
processing modeling: 데이터가 움직이는 프로세스를 구조적/그래픽적으로 나타냄
(이를 ER-D(Entity Relationship Diagram) 이라고 함)

3단계 - 시스템 디자인

ER-Diagram을 통해 Relation Model로 변환하는 작업과 DB의 성능을 결정하는 작업 진행

데이터베이스 성능을 결정해야 하므로 DBMS에 의존

4단계 - 시스템 구현

시스템 구현

5단계 - 유지보수

시스템의 유지보수

번외 (클라우드)


데이터베이스: 데이터를 저장하는 구조 또는 자료의 모음
파일을 컴퓨터에 저장 - 이력 관리가 어려움, 인터넷 연결 없이도 가능, 내 컴퓨터가 항상 있어야 함

hwp, docs 등

클라우드: 가상화 서비스가 이루어지는 인터넷

클라우드 서비스: 인터넷 서비스

클라우드 컴퓨팅:
컴퓨팅 리소스(컴퓨터 자원, ex.Amazon Web Service, google cloud)를 제공하는 회사의 서버, 네트워크를 사용하는 것


클라우드 서비스 모델

IaaS (Infrastructure as a Service) : 서비스형 인프라 / 회사에서 서버, 네트워크, 스토리지, 운영체제 같은 컴퓨터 자원을 "임대"
-> 장점: 하드웨어에 투자 필요 없음 = 클라우드가 하드웨어까지 제공


PaaS (Platform as a Service) : 서비스형 플랫폼 / 클라우드 기반의 애플리케이션 개발 환경, 개발하는데 필요한 요소들을 제공
-> 클라우드가 하드웨어 와 가상서버 까지 제공

운영체제: Windows, Mac OS, Linux, Unix
목적: 컴퓨터 시스템의 자원들을 효율적으로 관리

SaaS (Software as a Service) : 서비스형 소프트웨어 / 고객이 웹 브라우저를 통해 언제, 어디서든 소프트웨어에 접근 가능
-> 클라우드가 하드웨어, 가상서버, 소프트웨어 까지 제공

ex. 노션, 구글드라이브, 네이버 마이박스, MS오피스 365 등

<클라우드 서비스의 장점>

  1. 서버에 들일 시간을 아끼고, 코딩에 집중할 수 있게 됨
  2. 개발 작업 진입 장벽 낮아짐
  3. 비용 절감
ex/
google 문서, Notion, Slack 등 : 
이력 관리가 쉬움,인터넷이 있다면 어디서든 편집 가능



마무리

데이터베이스를 마지막으로 공부한게 정보처리기사 실기 준비할 때였던거 같은데
오랜만에 다시 배우니 까먹었던 기억이 새록새록 떠올랐다.
DDL의 삭제와 DML의 삭제 차이 등

까먹었던 기억이라는 거 자체가 글러먹은 것 같다..
복습의 중요성!! 벨로그를 시작하게 된 계기!!

학교에서 강의를 들었을 때의 기억이 정보처리기사 준비하면서 이게 이런거였구나 싶었는데, 교육을 들으면서는 IaaS, SaaS, PaaS 가 또 이런 의미였구나 깨닫게 됐다.

그리고 여기 적진 않았지만 windows, Mac os가 등장하면서 GUI개념이 처음 등장했다는 사실은 흥미로웠다!!

바탕화면, 마우스 커서, 폴더 등의 개념이 처음 등장한게 windows, Mac os 때라니.. ms-dos가 그리 오래되지 않은 운영체제라는게 실감이 갔고 인터넷시장이 정말 빠르게 발전하고 있구나 느꼈다.

끝!!

profile
스마트팩토리 개발자가 되기 위한 □□ !!

0개의 댓글