1. 데이터베이스의 태동
기업 등의 대규모 조직의 운영의 변화로 데이터베이스가 생겼다
- 일부 의사결정권자의 과거 경험과 직관 → 전문 분석가 / 경영자에 의해 가공된 정보를 기반한 운영시스템으로 변화
- 이 변화는 데이터의 형태적 다양화 뿐 아닌 데이터의 양적 증가에 기인했다
- 그래서 데이터 관리에 요구되는 시간과 비용이 증가↑ & 별도의 관리장치가 필요 → 이는 데이터베이스로 발전
2. 데이터베이스 시스템의 개요
데이터베이스(Database)는
많은 수의 데이터를 저장해두고 필요시 원하는 데이터를 빠른시간에 검색하여 사용할 수 있도록 지원하는 장치이다.
이러한 데이터를 관리하고 업무를 자동화할 수 있는 프로그램이 있다면 효과으로 업무를 처리할 수 있을 것이다 → DBMS 로 발전
데이터베이스 관리 시스템(DBMS)은
1960년대부터 시작되어 데이터를 편리하고 효과적으로 저장하고 조작하도록 만들어진 시스템이다
즉, 한 조직과 연관된 데이터의 집합(데이터베이스)을 다수의 사용자가 공용으로 사용하기 위해 통합 저장하는 소프트웨어 패키지이다
(데이터의 집합이 데이터베이스라면 이 집합들로 업무 관리(조작/저장)하는 시스템이 DBMS 가 아닐까)
데이터베이스 시스템(Database system)은
DBMS 와 함께 + 사용자에게 서비스 형태로 제공되는 애플리케이션이 포함된 일체의 시스템이다
1990년 이후로 대다수의 기업 / 조직에서 데이터베이스에 대한 접근방식을 웹 인터페이스로 전환하여 시공간을 초월하여 관리
사용자 🔄 웹브라우저 🔄 웹서버 🔄 애플리케이션 서버 🔄 데이터베이스
3. 데이터베이스 관리 시스템의 목적
파일 처리 시스템(file processing system)
1960년대부터 데이터 처리의 유일한 수단은 운영체제에서 지원하는 파일(file)이였다.
이러한 파일을 사용하여 특정업무에 해당하는 데이터를 관리하는 방식을 말한다
파일처리 시스템은 운영체제에 의해 지원되며 운영체제는 여러 파일에 레코드를 기록하고 조작하기 위한 별도의 프로그램을 필요로 한다
→ 즉, 파일처리시스템이란 운영체제의 지원으로 조직에서 업무처리에 사용되는 데이터를 여러 파일에 나누어 영구저장하고 운영하는 시스템을 말한다
하지만 데이터의 종속, 중복, 무결성 훼손 및 동시 접근 이상 등의 문제점들이 있었다
1) 데이터의 종속
해당 프로그램에 종속된 파일의 경우, 데이터의 논리적인 구조와 위치는 해당 프로그램만 알고 있어 데이터 공유가 불가능 하며,
데이터 구조의 변경이 → 프로그램의 변경으로 이어지기 떄문에 프로그램 유지보수에 많은 비용↑이 소요된다
데이터의 독립성은 크게 논리적 데이터 독립성과 물리적 데이터 독립성으로 구분된다
그리고 DBMS는 데이터를 프로그램과 완전 독립시킴으로서 종속(dependency)의 문제를 근본적으로 배제시킨다
- 논리적 데이터 독립성이란
데이터의 논리적 구조가 변하더라도 그에 따른 프로그램의 구조가 유지되는 것을 의미
- 물리적 데이터 독립성이란
보조기억장치같은 물리적시스템 구조가 변경되도 프로그램은 그대로 유지되는 것을 의미
2) 데이터의 중복
프로그램이 사용하는 정보가 여러 파일에 중복적으로 저장될 수 있다
ex) 학생파일과 수강파일은 '학번', '이름' 을 공통으로 가지고 있지만, 프로그램에서 요구하는 데이터의 위치 / 길이 등의 형태가 달라 파일 상호간의 공유는 불가능
데이터 중복성(data redundancy)
하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제이다. 그리고 다음 세가지 관점에서 문제의 원인이 된다
- 일관성(consistency) 문제
하나의 사실을 나타내는 여러개의 데이터가 모두 논리적으로 같은 값을 유지(일관성)해야 하는데
물리적으로 서로 다른 장소에 위치하는 경우 일관성 유지가 매우 어렵다 (데이터 내용간의 불일치, 비일관성)
-보안성(security) 문제
논리적으로 동등한 내용의 데이터에 대해서 똑같은 수준의 보안이 유지되어야 한다
같은 데이터가 중복되어 저장되는 경우, 동일한 수준의 보안을 유지하기가 어렵다
- 경제성(economy) 문제
데이터를 중복 저장하기 위해서는 추가적인 저장공간이 요구된다.
또한 데이터 갱신시 일관성 유지를 위해 모든 중복 데이터에 대해 작업이 동반되어야 하므로 시스템의 갱신비용이 높아진다 ↑
3) 데이터의 무결성 훼손
데이터 무결성이란 데이터 베이스에서 관리되는 데이터의 정확성을 보장하는 것이다
하나의 사실을 표시하는 두 개 이상의 중복된 데이터가 서로 일치하지 않는 경우에도 발생할 수 있다. 그러나 저장된 데이터 값이 일정한 형식의 조건들을 만족하지 않는 부정확한 데이터 저장으로 발생할 수도 있다
ex) 만약 수강할 수있는 최대학점은 18학점이하여야 되는 조건이 있다면,
수강신청할 때마다 수강 정보 전체를 조사해서 18학점 이상인지 확인하는 코드가 추가되어야 한다
그러나 새로운 조건을 추가하거나 조건이 변경될 때마다 관련 프로그램을 변경하는데 많은 비용과 시간이 소요 될것이다
4) 동시접근 이상
여러 사용자가 동시 사용하는 시스템에서 한 데이터에 대한 수정요구가 동시 발생한 경우 비정상적인 데이터 수정이 일어날 수 있다
예측 불가한 값이 발생하는 문제를 막기위해 데이터 동시 접근에 대한 통제가 필요하다
4. 데이터베이스 관리 시스템의 특징
1) 프로그램 - 데이터의 독립성 및 추상화
프로그램 데이터 독립성(program-data independency)
DBMS 에서는 데이터 파일의 구조가 프로그램으로부터 분리되어 DBMS 내부의 시스템 카탈로그에서 별도 관리
프로그램 에서는 데이터의 의미만으로 접근 가능하도록 개념적인 표현(conceptual representation)으로 사용
→ DBMS 는 프로그램 - 데이터 사이를 관리하는 에이전시 같은 개념
2) 자기 기술성
주요 특징 중 하나는 데이터에 대한 정의나 의미까지 관리하는 자기 기술성(self describing)이다
각 파일의 구조 / 각 데이터 항목의 타입 / 저장 형식 / 제약조건 등의 메타 데이터를 포함한다
→ 시스템 카탈로그 / 데이터 사전 에 저장
3) 다중 뷰
DBMS 는 사용자의 역할과 권한에 맞는 데이터에 접근할 수 있도록 데이터베이스에 대해 필요한 부분만을 추출해서 제공할 수 있는 뷰(view) 기능을 지원한다 이를통해 사용자는 독자적으로 데이터베이스를 접근/사용하는 것 같이 보인다
→ 뷰를 이용하면 파일은 하나만 관리하지만 여러 용도의 데이터베이스로 사용가능해진다
4) 다수사용자 요청 처리
여러 사용자가 동시에 데이터베이스에 접근할 수 있는 기능을 제공한다
단일 논리적인 작업을 수행하는 일련의 데이터베이스 명령의 집합인 트랜젝션과 동시성 제어 기법이라는 기능이 내장되어 있다
** 트랜젝션 : 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위
5. 데이터베이스 관리 시스템의 구조
하나의 DB에 대해서 각자 다른 목적을 가진 여러 사용자들에게 최적화된 데이터베이스 사용 환경을 제공해야 한다
- DBMS 는 데이터베이스 내부의 복잡한 구조를 감추어 추상화된 데이터만을 보여줄 필요성이 있다.
(일반 사용자는 자기가 쓰는 기능만 쉽게 사용하고 싶어하기 때문이다)
- DBMS 는 데이터 독립성을 확보하기 위한 구조를 갖추어야 한다
(사용자들의 관점은 시시각각 변하기 떄문에 유연하게 대응해야 되기 때문이다)
1) 데이터 추상화
DBMS 는 능숙하지 않은 사람들이 쉽게 접근할 수 있도록 내부구조를 감추는 추상화가 필요하다
데이터베이스의 3단계 구조
DBMS 는 내부단계 → 개념 단계 → 외부단계 의 3단계 구조로 구성된다. (데이터 추상화 + 데이터 독립성을 확보하기 위해)
- 내부 단계(internal level) : 가장 낮은 추상화 단계로 내부 스키마에 의해 기술
원시수준의 데이터 구조, 저장된 레코드 유형 정의, 인덱스 유무, 컬럼의 표현방식, 레코드의 물리적 순서 등 구체적인 사항에 대해 정의
ex) 학생, 과목, 수강 레코드는 연속적으로 저장된 블럭으로 표현 (DBMS는 하위 단계 저장구조를 숨김)
- 개념 단계(conceptual level) : 전체 구조를 추상화 하는 단계로 개념 스키마에 의해 기술
물리적인 상세사항 등은 배제 / 저장된 데이터와 데이터 간의 관계만 기술 / 보안성 검사, 무결성 검사 등
ex) 학생 스키마 / 수강스키마 / 과목스키마 처럼 각 레코드 타입과 레코드 간의 관계 정의로 표현 (프로그래밍 언어를 사용)
- 외부 단계(external level) : 추상화의 최상위 단계로 뷰(view)에 의해 기술된다
ex) 학적관리팀은 학적관리 뷰(학생의 학번 / 과목의 과목코드 / 수강의 수강일자)를 통해서만 데이터를 확인 / 뷰를 통한 보안 메커니즘 제공
2) 단계 간 사상
데이터베이스의 3단계 구조의 3 스키마는 사상(mapping)을 통해 스키마 간에 연결된다.
외부 - 개념 사상(external-conceptual mapping)
- 외부스키마(뷰)와 개념 스키마 간의 대응관계를 정의한다
- 개념에 변화가 생겨도 그 변화를 외부-개념사상에만 반영시키면 외부 스키마에는 영향이 X (논리적 데이터 독립성이 확보)
개념 - 내부 사상(conceptual-internal mapping)
- 개념 단계의 데이터 스키마가 디스크 내의 내부 필드와 어떻게 대응하는 가를 정의
- 물리적인 변화가 발생해도 그 변화를 개념-내부 사상에만 반영시켜주면 개념스키마에는 영향이 X(물리적 데이터 독립성이 확보)
6. 데이터베이스 언어
사용자들이 DMBS 를 쉽게 다룰 수 있는 언어를 제공
1) 데이터 정의 언어(DDL, Data Definition Language)
DDL 은 스키마와 데이터에 대한 부가적인 특징을 표현한다.
데이터 정의 기능은 물리적 저장구조와 데이터의 원시 수준의 특징을 설명하기 때문에
DDL 에 포함되는 대개의 명령어는 데이터베이스 사용자에게 숨겨져 있다
DDL 명령의 결과
- 메타데이터를 저장하는 시스템 카탈로그(데이터 사전)에서 관리하고,
- DBMS 는 실제 데이터를 읽고 쓰기 전에 항상 데이터 사전을 참조한다
DBMS 는 다음과 같은 세가지 요건을 만족해야 한다
1. 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 데이터 모델에 의거하여 규정한다
2. 데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정한다
3. DBMS 가 물리적 구성을 → 논리적 구성으로 변환할 수 있도록 데이터의 물리적구성과 논리적 구서간 사상을 규정
이밖에도 DDL 은
{ 데이터를 적재하는 방식, 무결성 유지방식, 검증 및 권한 } 등의 기술된 제약사항, 성능 측정 방식, 데이터베이스 재구성 방식
등에 대한 규정이 있다
2) 데이터 조작 언어(DML, Data Manipulation Language)
DML 은 DDL 에 의해 구조화된 데이터에 사용자가 데이터를 삽입/수정/삭제 하고 저장된 데이터를 검색할 수 있도록 지원하는 언어이다
데이터 조작 기능은
단순하고 사용이 쉬우며 모호성 없이 명확하며 DBMS 내부에서 효율적으로 처리될 수 있도록 설계 된다
- 절차적 DML
사용자가 필요한 데이터를 어떻게 구할 것인지를 구체적으로 명시하는 유형이다
반복문 이나 변수 선언 등의 프로그래밍 언어의 기능을 포함 한다
- 선언적 또는 비절차적 DML
사용자가 요구하는 데이터가 무엇인지만 기술하는 유형이다
데이터가 만족해야 하는 조건만 기술해서 절차적 DML 보다 사용이 용이하다
처리 절차를 명시하지 X 비효율적으로 처리될 수 있다는 단점이 있다
'OS & Network' 카테고리의 다른 글
Windows - PowerShell 에서 ohmyzsh git alias 명령어 적용하기 (0) | 2024.06.04 |
---|---|
WSL2 실행에러 - this update only applies to machines with the windows subsystem for linux (0) | 2024.06.03 |
VScode - Python 설치하기 (0) | 2024.02.23 |
Browser - Web Storage란 (브라우저 저장소) (0) | 2024.01.29 |
Network - RESTful API 란 (0) | 2024.01.20 |
댓글