데이터 공부/데이터베이스 & SQL

03. DB - 데이터베이스 시스템

한소희DE 2021. 6. 3. 21:16
이전 포스팅에서는 데이터베이스의 기본 개념과, 데이터베이스 관리 시스템이 무엇인지 알아보았다.
이번 시간에는 데이터베이스 시스템이 무엇인지 공부해보았고, 이를 정리해보았다.

 

 

⬇ 이전 포스팅 링크

 

01. 데이터베이스 기본 개념

데이터베이스 공부에 앞서 - 데이터베이스 과목은, 학부 수업 때도 제일 흥미있게 들었던 과목이다. 물론 시간이 많이 지나 구체적 내용까지는 기억이 가물가물하지만, 다시한 번 전공 서적을

eng-sohee.tistory.com

 

 

02. 데이터베이스 관리 시스템

오늘은 데이터베이스 관리 시스템에 대해 공부하고 정리해보았다. 앞서, 데이터 베이스의 기본 개념에 대한 직전 포스팅은 아래 링크를 참고해두었다. ⬇ 이전 포스팅 링크 01. 데이터베이스 기

eng-sohee.tistory.com

 

 


 

 

그럼 이제 본격적으로 오늘의 포스팅을 시작해보겠다! 👌

 

 

 

목차

데이터베이스 시스템 정의

데이터베이스 구조

데이터베이스 관리 시스템의 구성

 


 

 

 

01. 데이터베이스 시스템 정의

데이터베이스 시스템이란, 데이터베이스에 데이터를 저장하고,
데이터베이스 관리 시스템으로 저장된 데이터를 관리해 정보를 생성해주는 시스템

 

 

즉, 데이터베이스를 데이터베이스 관리 시스템이 관리하고, 이러한 프로세스를 데이터베이스 시스템이라고 일컫는다.

 

02. 데이터베이스 구조

데이터베이스 구조는 3단계로 이뤄져 있다. 이는 데이터베이스를 어떻게 보느냐에 따라 (즉 관점에 따라) 단계별로 구분한다.

 

 

2-1. 외부단계

 

외부 단계란, 개별 사용자 관점에서 데이터베이스를 이해하고 표현하는 단계

 

이 때 각자 원하는 데이터베이스가 존재하므로, 스키마도 여러 개가 된다. 이를 외부 스키마(=서브 스키마)라고 한다.

 

🔥 외부단계의 예시

만약 쇼핑몰회사라고 가정한다면, 사용자 고객 관리 담당 직원은 고객 관련 데이터만 & 상품 관리 담당 직원은 상품 관련 데이터만 관심이 있을 것이다. 이때, 그들이 원하는 데이터마다 표현되는 스키마는 다 다르다. 

 

 

 

2-2. 개념단계

개념단계란, 조직 전체의 관점에서 데이터베이스를 이해하고 표현하는 단계

 

 

이는 모든 사용자가 사용하는 데이터베이스의 모습을 하나로 합친 모습이며, 이 때의 스키마를 개념 스키마라고 한다. 따라서 이는 통합된 형태기 때문에 개념 스키마 또한 한 개만 존재한다.

 

 

 

2-3. 내부단계

내부단계란, 디스크 등의 저장 장치의 관점에서 데이터베이스를 이해하고 표현하는 단계

 

이는 저장 장치에 저장하는 파일을 구성하는 레코드의 구조/저장되는 방법을 정의하며 이를 내부 스키마라고 한다.

내부스키마 또한 개념스키마처럼 한 개만 존재한다.

 

이 내부스키마를 통해, 필드가 몇 개인지, 레코드 길이는 얼만큼인지, 인덱스가 존재하는지, 어떤 순서로 저장되는지 등을 알 수 있다. 마치 아파트로 예시를 들자면 아파트의 콘크리트 철근 뼈대라고 생각하면 된다.

 

 

 

 

2-4. 논리적 데이터 독립성

논리적 데이터 독립성이란, 개념 스키마가 바뀌어도 외부 스키마에 영향을 주지 않는 것

 

 

예를 들어, 스키마의 이름이 바뀔 경우를 생각해보자. 이는 개념 스키마에서 바뀌는 것이다. 이때, 연관된 외부 스키마의 이름을 또 바꿔 줄 필요가 없다는 뜻이다. 그저, 개념 스키마에서 "변경된 B스키마가 이전의 A라는 이름에 대응된다" 라는 논리적 구조의 변경 사실만 개념 스키마에 저장해주면 된다.

 

 

2-5. 물리적 데이터 독립성

 

물리적 데이터 독립성이란, 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것


예를 들어, 위 그림을 갖고 예시를 들어보겠다. 만약 스키마 Sno와 Sname의 저장 순서를 바꾼다고 할 때, 이 사실을 개념스키마에 알릴 필요가 있을까? 그렇지 않다. 설령 내부 스키마 구조(순서변경 등)가 바뀌어도, 이는 내부 스키마에서만 수정하면 된다. 이처럼, 내부 스키마에 새로운 인덱스가 추가되거나 기존 인덱스가 삭제되는 경우에도, 개념 스키마에는 영향을 받지 않는 것을 물리적 데이터 독립성이라고 한다.

 


 

03. 데이터베이스 관리 시스템의 구성

 

 

출처: 데이터베이스 개론 - 한빛아카데미

여기서 잠깐! 질의 처리기(쿼리 프로세서) 설명 

1. DDL 컴파일러:
데이터 정의어로 작성된 스키마 정의 해석
2. DML 컴파일러: 데이터 조작어로 작성된 스키마 정의 해석
3. DML 프리 컴파일러: 응용 프로그램 내 데이터 조작어를 추출해 DML 컴파일러로 전달
4. 런타임 데이터베이스 처리기: DML 컴파일러에서 해석해 전달된 정보를 DB에 전달해서 실행
5. 트랜잭션 관리자: 데이터베이스 접근해도 되는지 (접근권한, 제약조건 확인 등) 검증

 

 

 

3-1. 사용자

 

3-1-1. 데이터베이스 관리자

데이터베이스 관리자란, 데이터 정의어&제어어를 갖고 사용자를 위해 DB를 설계 및 구축/정의하는 담당

 

데이터베이스 구성 요소를 선정하고, 스키마를 정의하고, 물리적 저장 구조 혹은 접근 방법을 결정하고, 무결성(현실 세계의 실제 데이터와 일치하는, 즉 결함 없이 데이터 저장할 수 있도록 하는 성질)유지를 위한 제약조건을 정하고, 보안이나 접근 문제를 정하고, 백업이나 회복 방법을 정의하고, 시스템 데이터베이스를 관리하는 역할을 수행한다.

 

🔥 여기서 잠깐! 시스템데이터베이스란?

데이터 사전을 저장하는 데이터베이스. 데이터 사전시스템 카탈로그라고도 불린다. 이곳에는 메타 데이터가 저장되는데, 스키마들 간 사상의 정보나 저장되는 데이터의 식별 정보 등의 데이터들을 메타 데이터라고 한다.

 

3-1-2. 최종 사용자

최종 사용자란, 주로 데이터 조작어를 통해 인스턴스를 삭제 수정 추가 하며 DB에 접근/조작하는 담당

 

간혹가다가 데이터 정의어를 사용하기도 한다. 이들은 어느정도 쿼리문을 알고 접근하는 캐주얼 사용자와, 쿼리문 접근 없이 GUI 형태 응용 프로그램으로 DB에 접근하는 초보 사용자로 나뉜다.

 

 

3-1-3. 응용 프로그래머

응용 프로그래머란, 자바 등의 프로그래밍 언어로 응용 프로그램을 작성할 때, 응용 프로그램에서 데이터베이스에 접근할 수 있도록 조작어를 삽입하는 사용자

 

최종 사용자는, 응용 프로그래머가 만든 프로그램 내에서 DB에 접근할 수 있게 된다.

 

 

 

 

 

3-2. 데이터 언어

데이터 언어는 정의어, 조작어, 제어어로 구분된다.

 

3-2-1. 데이터 정의어

테이블 및 스키마를 제약조건에 의거해 CREATE하고, ALTER 및 DROP 하는 명령어를 말한다. 

이 곳에서 정의된 스키마는 데이터 사전(시스템 카탈로그)에 저장되고, 삭제 및 수정이 될 때도 데이터 사전에 반영이 된다.

 

 

3-2-2. 데이터 조작어

데이터의 삭제 삽입 수정 검색 등을 수행할 때 쓰는 언어를 말한다.

이는 데이터를 수집할 때 수집 방법까지 구체적으로 명시하는 절차적 조작어와, 그렇지 않고 수집해야 할 데이터가 무엇인지만 명시하는 비절차적 조작어로 구분된다.

 

 

3-2-3. 데이터 제어어

데이터베이스의 무결성과 일관성을 유지하기 위해, 내부적으로 필요한 규칙이나 기법을 정의하는데 사용되는 언어다.

COMMIT(조작 정상 시 가동), ROLLBACK(비정상 시 복구) 등이 제어어에 해당한다. 

이때 제어어의 목적은 무결성, 보안, 회복, 동시성(여러 사용자의 원활한 동시 접근) 이 되겠다.