DBMS(DataBase Management System)

- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 해주고, 데이터베이스를 관리해 주는 소프트웨어

 

기존의 파일 처리 방식에서의 문제점

- 종속성으로 인한 문제점

  • 일관성: 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어짐
  • 보안성: 중복되어 있는 모든 데이터에 동등한 보안 수준을 유지하기가 어려움
  • 경제성: 저장공간의 낭비와 동일한 데이터의 반복 작업으로 인한 비용의 증가
  • 무결성: 제어의 분산으로 인해 데이터의 정확성을 유지할 수 없음.

스키마(Schema)

- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술

- 데이터베이스를 구성하는 데이터 객체, 속성, 관계 및 데이터 조작 시 데이터값들이 갖는 제약조건 등에 관해 전반적으로 정의

- 스키마는 데이터 사전에 저장되며, 다른 이름으로 메타 데이터라고도 한다.

 

스키마의 3계층

외부 스키마 = 서브 스키마 = 사용자 뷰

- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 부른다.

- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수 있다.

- 일반 사용자는 SQL을 사용하여 DB를 사용한다.

 

개념 스키마 = 전체적인 뷰

- 데이터베이스의 전체적인 논리적 구조로서, 조직 전체의 데이터베이스로 하나만 존재한다.

- 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의

- 단순한 스키마라고 하면 개념 스키마를 의미

- 데이터베이스 관리자에 의해서 구성

 

내부 스키마

- 물리적 저장장치의 입장에서 본 데이터베이스 구조

- 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

- 데이터베이스의 물리적 구조를 정의한다.

 

데이터베이스 언어(Database Language)

-  DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어

- 데이터 정의 언어의 기능

  • 외부 스키마 명세 정의
  • 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조의 정의 및 수정
  • 스키마에 사용되는 제약조건에 대한 명세 정의

데이터 조작 언어(DML, Data Manipulation Language) = 서브 언어

  • 사용자로 하여금 데이터를 처리할 수 있게 하는 도구 => 사용자(응용 프로그램)과 DBMS 간의 인터페이스를 제공
  • 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적 데이터 언어이다.

데이터 제어 언어(DCL, Data Control Language)

  • 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어
  • 데이터를 보호하고 데이터를 관리하는 목적으로 사용
  • 데이터 제어 언어의 기능
    • 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안
    • 데이터의 정확성을 위한 무결성 유지
    • 시스템 장애에 대비한 데이터 회복과 병행수행 제어

데이터베이스 사용자

DBA

- 데이터베이스 시스템의 모든 권리와 운영에 대한 책임을 지고 있는 사람이나 그룹

- 개념 스키마와 내부 스키마 정의

- 무결성을 위한 제약조건의 지정

- 보안 및 데이터베이스의 접근 권한 부여 정책 수립

 

응용 프로그래머

- 일반 호스트 언어로 프로그램을 작성할 때, 데이터 조작어를 삽입해서 일반 사용자가 응용 프로그램을 사용할 숭 ㅣㅆ게, 인터페이스를 제공할 목저긍로 데이터베이스를 접근하는 사람들

- 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가

 

일반 사용자

- 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어(SQL)이나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람들

 

데이터 모델

- 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형

- 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약 조건 등을 기술하기 위한 개념적 도구들의 모임.

 

데이터 모델의 종류

  1. 개념적 데이터 모델
    • 인간이 이해할 수 있는 구조로 표현하기 때문에 정보 모델이라고도 부름.
    • 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 셰계를 표현하는 방법
    • 개체-관계 모델(E-R)
  2. 논리적 데이터 모델
    • 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있도록 변환하는 과정
    • 단순히 데이터 모델이라고 한다면 논리적 데이터 모델을 의미한다.
    • 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다.

데이터 모델에 표시할 사항

  • 구조 - 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현
  • 연산 - 데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시
  • 제약조건 - 실제 데이터의 논리적인 제약조건 표시

 

데이터 모델의 구성 요소

  • 개체(Entity)
    • 독립적으로 존재하거나 그 자체로서도 구별이 가능
    • 파일 시스템의 레코드에 대응
  • 속성(Attribute)
    • 데이터의 가장 작은 논리적 단위로서 파일 구조의 데이터 항목 또는 데이터 필드에 해당
  • 관계(Relationship)
    • 개체 간의 관계 또는 속성 간의 관계

개체-관계(Entity-Relationship) 모델

  • 개념적 데이터 모델의 가장 대표적인 것.
  • 데이터를 개체, 관계, 속성으로 묘사
  • E-R 다이어그램으로 표현
  • 특정 DB를 고려한 것이 아니기 때문에 관계 표현에 제약이 없다.

E-R 다이어그램

 

관계형 데이터 모델 -> 여기부터 논리적 데이터 모델에 관한 설명

- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델

- 표를 이용해서 데이터 상호 관계를 정의하는 DB 구조

- 데이터 간의 관계를 기본키와 이를 참조하는 외래키로 표현

- 대표적인 DBMS: Oracle, MS-SQL, Informix 등

 

계층형 데이터 모델

- 데이터의 논리적인 구조도가 트리 형태이며, 개체가 트리를 구성하는 노드 역할을 한다.

- 개체를 노드로 표현하고, 개체 집합들 사이의 관계를 링크로 연결

- 개체 타입 간에는 상위와 하위 관계가 존재하며, 1:N 대응 관계만 존재한다.

- 레코드 삭제 시 연쇄 삭제가 된다.

- 개체 타입들 간에는 사이클이 허용되지 않는다.

- 계층형 모델에서는 개체를 세그먼트라 부른다.

- 대표적인 DBMS는 IMS이다.

 

망(그래프, 네트워크)형 데이터 모델

- 그래프를 이용해서 데이터 논리 구조를 표현한 데이터 모델

- 상위와 하위 레코드 사이에서 N:M 대응 관계를 만족하는 구조

- 상위의 레코드를 Owner, 하위의 레코드를 Member라 하여 Owner-Member 관계라고도 한다.

- 레코드 타입 간의 관계는 1:1, 1:N, N:M이 될 수 있다.

 

 

 

 

 

'CS > 데이터베이스' 카테고리의 다른 글

동시성 제어  (0) 2025.04.10
B-tree, B+tree  (0) 2025.04.10
데이터베이스 설계  (0) 2025.04.07

+ Recent posts