[Computer Science] Database(DBMS)

Arkiee·2022년 10월 25일
0

Computer Science

목록 보기
5/9
post-thumbnail

Database란?

  • 데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임입니다.

    • 통합된 데이터(Integrated Data): 자료의 중복을 배제한 데이터의 모임
    • 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
    • 운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료
    • 공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

왜 사용할까?

  • 데이터베이스가 존재하기 전에는 파일 시스템을 이용해 데이터를 관리했습니다. 데이터를 각각의 파일로 저장해서 처리하면 데이터의 중복성, 무결성 문제가 발생할 수 있습니다. 그래서 데이터베이스를 사용합니다.

DB 시스템 구성요소

  • 데이터베이스
  • 스키마
  • DBMS(데이터베이스 관리 시스템)
  • 데이터베이스 언어
  • 데이터베이스 컴퓨터
  • 데이터베이스 사용자

특징

  1. 독립성

    • 물리적 독립성: 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.

    • 논리적 독립성: 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

  2. 무결성: 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정 시 제한을 두어 안정성을 저해하는 요소를 막아 데이터 상태들을 항상 옳게 유지하는 것을 의미한다.

  3. 보안성: 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.

  4. 일관성: 연광된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한, 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.

  5. 중복 최소화: 데이터베이스는 데이터를 통합해 관리함으로써 파일 시스템의 단점 중 하나의 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.


스키마(Schema)란?

  • 데이터베이스의 구조, 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합입니다.

  • 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

  • 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.


DBMS(Database Management System)란?

  • 데이터 집단과 데이터를 관리하는 프로그램의 집합체로 운영체제 위에서 작동된다. 데이터 정의, 조작, 제어 3가지 기능을 가지고 있다.

장단점

  • 장점
    • 데이터 중복 최소화
    • 데이터 공유
    • 데이터 표준화
    • 데이터 보안 유지
    • 데이터 무결성 유지
    • 데이터 통합적 관리
    • 데이터 일관성 유지
  • 단점
    • 구축이 복잡하다(규모가 방대하고 복잡한 관리 체계를 유지해야 함)
    • 구축 비용이 많이 든다.
    • 예비(Backup자료)와 회복(원상복귀) 절차 수립이 어렵다.
    • 한 부분의 장애로 전체 시스템에 영향을 주는 취약성이 있다.

필수기능

  • 정의(Definition) 기능
    모든 응용프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형과 구조에 대한 정의, 이용방식, 제약조건 등을 명시하는 기능이다.

  • 조작(Manipulation) 기능
    데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능이다.

  • 제어(Control) 기능

    • 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 해야한다.

    • 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안을 유지하고 권한을 검사할 수 있어야 한다.

    • 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리결과가 항상 정확성을 유지하도록 병행제어(Concurrency Control)을 할 수 있어야 한다.


[참고]

https://coding-factory.tistory.com/216/
https://coding-factory.tistory.com/entry/DB%EA%B8%B0%EC%B4%88-DBMS%EC%9D%98-%EA%B8%B0%EB%8A%A5-%EB%B0%8F-DBMS%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0

profile
꿈을 꾸는 개발자

0개의 댓글