Data, Database, DBMS, RDMBS, MySQL

Lee Yong Seok·2022년 5월 25일
0
post-thumbnail
post-custom-banner

🔍 Data

  • 현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실이나 값

  • 관찰된 팩트, 즉 사실을 수집해서 모아 놓은 것

  • 사실을 나타내는 수치

  • 양적 데이터와 질적 데이터로 구성

  • 사실에 대한 정량적 , 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명인 메타데이터로 구성

  • 양적 데이터
    2015493
    정량값 : 2015493
    메타데이터 : 000의 사원번호

  • 질적데이터
    크다
    정성값 : 크다
    메타데이터 : 000의 키

🔍 Database

1) 정의

  • 조직에서 여러 업무에 사용할 목적 으로 컴퓨터 기억 장치 내에 체계적 으로 분류/정리하여 모아 놓은 데이터의 집합
  • 특정 조직의 업무 처리 를 위해 애플리케이션 시스템에서 사용되는 데이터의 집합(인사관리, 학생관리, 공급망관리, 고객관리...)

2) 등장 배경

  • 여러 사용자가 데이터 를 공유해야 할 필요가 생김
  • 데이터의 수시적인 구조 변경에 대해 응용 프로그램을 매번 수정하는 번거로움을 줄이고 싶음
  • 물리적인 주소가 아닌 데이터 값에 의한 검색을 수행하고 싶음 .

3) Database의 특징

  • Database는 통합된 데이터 (자료 중복 배제 )
    -- 데이터의 중복을 최소화하여 효율성을 증대
  • Database는 공용 데이터 (여러 응용 시스템이 공용 으로 소유 및 유지 )
    -- / / 사용자 시스템이 공동으로 소유 사용하는 데이터의 집합
  • Database는 운영 데이터 (존재 목적이나 유용성 면에서 필수적인 데이터 )
    -- 고유 기능 수행을 위해 필요한 데이터의 집합
  • Database는 저장된 데이터 (컴퓨터가 접근할 수 있는 저장매체에 저장된 데이터 )
    -- 컴퓨터에 의해 접근 가능한 매체에 저장

4) Database 구성의 장점

  • 데이터 중복 최소화
  • 여러 사용자에 의한 데이터 공유
  • 데이터의 일관성
  • 데이터의 무결성
  • 정확한 최신의 정보이용 가능
  • 데이터 처리속도 증가
  • 많은 양의 종이파일 간소화

※ 파일 처리 시스템

  • 파일 처리 시스템을 사용하는 경우 조직에서의 개별적 업무에 별도의 개별적인 파일을 유지
  • 업무에 따라 생성되는 다양한 파일에는 업무의 유사성 으로 인해, 부분적으로 동일한 데이터가 저장될 수도 있어서 다양한 문제가 발생

※ 데이터의 종속성

  • 데이터 파일이 보조 기억 장치에 저장되는 방법이나 저장된 데이터의 접근 방법이 각 응용 프로그램의 논리에 명세 되어있어서 데이터의 구성 방법이나 접근 방법을 변경할 때는 자연히 이것을 기초로 한 응용 프로그램도 같이 변경시켜야 함

※ 물리적 데이터 독립성

  • 기존 응용 프로그램에 영향을 주지 않고 데이터의 물리적 구조를 변경할 수 있는 것

🔍 DBMS (Database Management System)

  1. DBMS(Database Management System)

    1) A collection of storage and retrieval programs used to manage the database.
    2) It can organize, process, and present selected data elements from the database in response to
    queries from users.
    3) 데이터 문제가 발생하지 않도 록 여러 가지 관리 기능을 수행하는 소프트웨어 패키지
    4) 종속성과 중복성의 문제 를 해결하기 위해서 제안된 시스템
    5) 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 Database를 공유할 수 있도록 관리
    6) Database의 구성, 접근 방법, 관리유지에 대한 모든 책임을 진다.

※ Database System

  • 사용자가 DBMS에 접근하기 위해 사용하는 별도의 Application Program
  • 정보를 Database에 저장/관리하여 사용자에게 제공하는 컴퓨터 기반 시스템
  • 서버와 클라이언트 모두 합친 전체 집합의 개념
  1. DBMS의 필수기능

1) 정의 기능(Definition Facility)

  • 데이터의 형, 구조, 데이터가 Database에 저장될 때의 제 약조건 등을 명시하는 기능
  • 데이터의 논리적 구조와 물리적 구조 사이의 변환이 가능하도 록 두 구조 사이의 사상(Mapping)을 명세하여 하나의 물리적 구조로 여러 응용 프로그램이 요구하는 데이터 구조 를 지원하게 하는 것
  • 다양한 응용 프로그램과 Database가 서로 인터페이스 를 할 수 있는 방법 제공

2) 제어 기능(Control Facility)

  • 데이터 무결성(Integrity) 유지
  • 보안(Security)과 권한(Authority) 검사
  • 병행수행 제어(Concurrency Control)

3)조작 기능(Manipulation Facility)

  • 데이터 요청, 변경 등을 위한 질의를 수행
  • Database를 접근하여 데이터의 검색, 삽입, 삭제, 갱신 등의 연산 작업을 위한 사용자와 Database 사이의 인터페이스 수단 제공

🔍 RDBMS (Relational Database Management System)

  • RDB를 생성, 수정, 관리할 수 있는 소프트웨어이다.
  • RDBMS는 Relational DataBase Management System의 약자로 관계형 모델을 기반으로 하는 DBMS 유형이다.
  • RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
  • 정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행하는 것이 더 쉽다.
  • 데이터의 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Dutability)을 유지하며 데이터 무결성을 높인다.
  1. 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.

  2. 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.

  3. 독립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다. 공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다. 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조건이다. 자세한 내용은 관련 문서를 참조해야 한다.

  4. 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다. 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다. 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.

  • MSSQL, MySQL, Oracle이 RDBMS의 몇 가지 예이다.

🔍 MySQL

1995년 상용버전으로 서비스를 시작하여 현재는 Oracle에 합병되었다. 중소기업 뿐만 아니라 최근 많은 대기업에서도 사용하고 있는 DBMS인데 상업적으로 사용할 때 비용이 발생하나, Oracle에 비해서 저렴하고 오픈소스이며 기본적으로 무료 프로그램이라는 장점 때문에 현재 시장 점유율 2위를 기록하고 있다.

Window, Linux, Unix 등 다양한 OS에 설치 가능하고, 클라이언트/서버 시스템에 적용 가능하며 임베디드 시스템에서도 동작이 가능하다.

웹 기반 애플리케이션을 개발한다면 최고의 DB라고 할 수 있다. 프로시저를 통해서 데이터 레코드의 삽입, 삭제와 같은 단계를 하나로 묶어서 사용될 수 있으며 이벤트식으로 동작하는 트리거도 존재한다. 5천건 이하의 데이터를 다루는데 적합하며, 속도, 안정성, 확장 가능성을 가장 추구하는 DBMS라고 할수있다.

🔍 Reference

Data, Database, DMBS Reference
https://github.com/swacademy/MySQL/blob/main/1.%20Introduction.pdf

ACID Reference
https://ko.wikipedia.org/wiki/ACID

MySQL Reference
https://velog.io/@choijaehyeokk/DBMS%EC%99%80-RDBMS#mysql

profile
Today I Learned 🌙
post-custom-banner

0개의 댓글