데이터베이스 (Database)

박지훈·2020년 8월 5일
0

데이터베이스의 간단한 개념을 정리하는 글을 작성하였습니다. (참고문헌 : 오라클로 배우는 데이터베이스 개론과 실습 '한빛아카데미')


데이터, 정보, 지식

  • 데이터 : 관찰의 결과로 나타난 정량적 or 정성적인 실제 값. (ex)점심시간에 친구와 나눈 대화
  • 정보 : 데이터에 의미를 부여한 것. (ex)관련 주제에 대한 인터넷 신문 스크랩
  • 지식 : 사물이나 현상에 대한 이해. (ex)정보를 해석한 후 의미있는 결과를 도출한 것


데이터베이스 (Database)

데이터베이스란 각 조직에서 사용하던 데이터를 모아서 통합하고 공유할 목적으로 구축된 데이터 대상들이다. 즉 우리에게 필요한 정보들을 구조적으로 모아둔 곳이라고 생각하면 된다.

<개념>

  1. 통합된 데이터 : 여러곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터를 의미한다.

  2. 저장된 데이터 : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미한다.

  3. 운영 데이터 : 조직의 목적을 위해 사용되는 데이터를 의미한다.

  4. 공용 데이터 : 한 사람 또는 한 업무를 위해 사용되는 데이터가 아닌 공동으로 사용되는 데이터를 의미한다. 데이터는 어느 순간이라도 둘 이상의 프로그램 또는 여러 사람이 동시에 사용할 수 있다.


<특징>

  1. 실시간 접근성 : 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다.

  2. 계속적인 변화 : 데이터베이스에 저장된 내용은 한 순간의 상태이지만, 데이터 값은 시간에 따라 항상 바뀐다.

  3. 동시 공유 : 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.(동시=병행 -> 데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 있다는 의미이다.)

  4. 내용에 따른 참조 : 데이터베이스에 저장된 데이터는 물리적인 위치가 아니라 값에 따라 참조된다.



데이터베이스의 테이블(엑셀과 같이 데이터가 저장되어있는 형태를 테이블이라 한다.)은 위 그림과 같은 용어를 사용한다.
테이블의 행 = 파일의 레코드 = 튜플
테이블의 열 = 파일의 필드 = 어트리뷰트(속성)



데이터베이스 시스템 (Database System)

데이터베이스 시스템은 줄여서 DBMS라고 불리는데, 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템이다.
DBMS는 데이터베이스의 데이터를 접근하기 위해 데이터베이스와 연결을 시켜주는 소프트웨어라고 생각하면 된다.

<구성>

  1. DBMS : 사용자와 데이터베이스를 연결시켜주는 소프트웨어

  2. 데이터베이스 : 데이터를 모아둔 토대

  3. 데이터 모델 : 데이터가 저장되는 기법으로, 눈에 보이지 않는 논리적인 개념



데이터베이스 언어 (SQL)

SQL이란 Structured Query Language라고 불리며, DBMS에 저장된 데이터를 조작하고 수신하기 위해 고안된 공용 언어이다.


<명령어 종류>

  • 데이터 정의 언어 (DDL : Data Definition Language) : DBMS에 저장된 테이블 구조를 정의하는 언어
  • 데이터 조작 언어 (DML : Data Manipulation Language) : 데이터를 검색, 삽입, 삭제, 수정하는 데 사용하는 언어
  • 데이터 제어 언어 (DCL : Data Control Language) : 데이터의 사용 권한을 관리하는데 사용하는 언어

언어에 대해서는 추후에 자세히 알아보도록 하겠습니다. 여기 클릭



★ 3단계 데이터베이스 구조

논리적, 물리적 데이터 독립성을 유지하기 위해 ANSI에서 표준을 만들었다.

외부 스키마 (External Schema)

  • 일반 사용자나 응용 프로그래머가 접근하는 계층으로 데이터베이스 중에서 하나의 논리적인 부분을 의미한다.
  • 여러개의 외부 스키마가 존재가능하며, 서브 스키마라고도 불린다. (뷰(view)의 개념이다.)
  • 예를 들면, 학생처의 학생 정보, 교뮤처의 수강 정보 등은 전체 데이터베이스의 일부분으로 각 부서의 사용자들에게만 필요한 각각의 스키마라고 할 수 있다.

개념 스키마 (Conceptual Schema)

  • 데이터베이스의 정의를 의미한다. 즉 하나의 데이터베이스에는 하나의 개념 스키마가 있다.
  • 통합 조직별로 하나만 존재하며 DBA가 관리한다.
  • 개념 스키마는 저장 장치에 독립적으로 기술된다.
  • 데이터와 관계, 제약사항, 무결성에 대한 내용이 포함된다.
  • 예를 들면, 학생 정보, 수강 정보 등이 모두 모인 대학 전체 DB를 의미한다. 개념스키마는 DB에서 매우 중요한 비중을 차지한다.

내부 스키마 (Internal Schema)

  • 물리적 저장장치에 DB가 실제로 저장되는 방법의 표현이다.
  • 내부 스키마는 하나만 존재한다.
  • 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함된다.
  • 예를 들면, 대학 전체 DB가 실제 하드디스크에 저장되는 물리적인 구조를 뜻한다. 즉 저장 방법에 대한 구체적인 내용이 포함된다.

매핑

  • 외부/개념 매핑 : 사용자의 외부 스키마와 개념 스키마 간의 매핑(사상)으로 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킨다.

  • 개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킨다.



데이터 독립성

논리적 데이터 독립성

외부 단계와 개념 단계 사이의 독립성으로, 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원한다는 개념이다. -> 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념이다.

(ex) 개념 스키마 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없다.


물리적 데이터 독립성

개념 단계와 내부 단계 사이의 독립성으로, 저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다는 개념이다.

(ex) 성능 개선을 위하여 물리적 저장 장치를 재구성할 경우에 개념 스키마 or 응용 프로그램 같은 외부 스키마에 영향이 없다.

물리적 독립성은 논리적 독립성보다 구현하기 쉽다!!

profile
Computer Science!!

0개의 댓글