[MySQL] 1. DBMS 개요

DBMS 개요

데이터베이스의 정의와 특징

  • 데이터베이스: 데이터들의 집합
  • DBMS: 데이터베이스 관리, 운영 역할로 여러 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야하는 프로그램

DBMS의 특징

  1. 데이터의 무결성
    • 데이터베이스 안의 데이터는 어떤 경로를 통해 들어왔던지 데이터에 오류가 있어서는 안된다.
    • 무결성을 위해 데이터베이스는 제약 조건의 특성을 가진다.
    • ex) 학생 데이터에 모든 학생은 학번이 반드시 존재해야 한다. - 학번 중복 불가능의 제약 조건
  2. 데이터의 독립성
    • 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존 작성된 응용 프로그램은 영향을 받지 않아야한다.
    • 데이터베이스가 저장된 디스크가 새 것으로 변경되어도 기존 사용하던 응용 프로그램은 아무 변경없이 계속 사용되어야 한다.
  3. 보안
    • 데이터베이스 안 데이터에는 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
    • 접근 시 사용자 계정에 따라 다른 권한을 가져야한다.
  4. 데이터 중복의 최소화
    • 동일한 데이터가 여러개 중복 저장되는 것을 방지하여야 한다.
  5. 응용 프로그램 제작 및 수정이 쉬워짐
    • 기존 파일 시스템을 이용할 때는 각각 파일의 포맷에 맞춰 개발해야 했다.
    • 데이터 베이스를 이용함으로써 통일된 방식으로 응용 프로그램 작성이 가능해지고 유지보수가 쉬워진다.
  6. 데이터의 안전성 향상
    • DBMS가 제공하는 백업, 복원 기능을 이용함으로써 데이터가 깨지는 문제가 발생할 경우 원상으로 복원 또는 복구하는 방법이 명확해진다.

데이터베이스의 발전

  • 데이터베이스의 발전 과정
  1. 오프라인 관리
    • 종이에 직접 기록
  2. 파일 시스템 사용
    • 컴퓨터 사용 이후 종이에 기록하던 내용을 컴퓨터 파일에 기록 저장
    • 대개 하나의 응용 프로그램마다 하나의 데이터 파일 할당
    • 어떤 기능을 구현하기 위해서 기능의 개수만큼 데이터 파일이 필요 → 데이터의 수가 늘어나면 중복으로 인한 데이터 불일치 문제 발생
  3. 데이터베이스 관리 시스템(DBMS)
    • 대량의 데이터를 효율적으로 관리하고 운영하기 위한 시스템
    • 데이터의 집합인 데이터베이스를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어
    • DBMS에 데이터를 구축하고 관리하고 사용하기 위한 언어로 SQL 사용

DBMS 분류

  1. 계층형 DBMS
    • 처음 나온 DBMS 개념
    • 각 계층이 트리 형태를 이루며 1:N 관계를 갖는다.
    • 처음 구축한 이후 구조를 변경하기 까다롭다.
    • 주어진 상태에서 검색은 빠르지만 접근의 유연성이 부족해 임의 값 검색의 어려움
  2. 망형 DBMS
    • 계층형 DBMS의 문제점을 개선하기 위해 시작된 DBMS
    • 1:1, 1:N, N:M 관계 지원으로 효과적이고 빠른 데이터 추출
    • 복잡한 내부 포인터를 사용해 프로그래머가 구조를 이해해야만 프로그램 작성이 가능하다는 단점
  3. 관계형 DBMS (RDBMS)
    • 데이터베이스를 테이블이라 불리는 최소 단위로 구성: RDBMS의 가장 기본적인 구성
    • 테이블은 하나 이상의 열로 구성
    • 테이블: 데이터를 효율적으로 저장하기 위한 구조
    • 정보 저장을 위헤 하나의 테이블이 아닌 여러 개의 테이블로 나누어 저장함으로써 불필요한 공간의 낭비를 줄이고 데이터 저장의 효율성 보장
    • 나뉜 테이블의 관계를 기본키와 외래 키를 사용해 연결할 수 있다.
    • 부모 테이블과 자식 테이블을 조합해 결과를 얻고싶을 경우 SQL의 join기능을 활용하면 된다.
    • 대용량 데이터의 관리와 데이터의 무결성 보장 → 동시에 데이터에 접근하는 응용 프로그램을 사용할 경우 적절한 DBMS
    • 단점: 시스템 자원을 많이 차지해 시스템이 느려질 수 있다.

SQL 개요

  • 일반적인 프로그래밍 언어와는 조금 다른 특성을 갖는다.
  1. DBMS 제작 회사와 독립적
    • 각 제작회사가 표준 SQL에 맞추어 DBMS 개발
  2. 다른 시스템으로 이식성이 좋다.
  3. 표준이 계속 발전한다.
  4. 대화식 언어
    • 바로 질의하고 결과를 얻는 대화식 언어로 구성
  5. 분산형 클라이언트/서버 구조
    • 클라이언트에서 질의하면 서버에서 질의를 받아 처리한 후 클라이언트에게 전달

homebdy
homebdy 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람.
comments powered by Disqus