1. 데이터베이스 관리 시스템(DBMS, DataBase Management System)

1) DBMS의 정의

데이터베이스 관리 시스템은 파일 시스템의 문제점을 해결하기 위해 등장한 시스템으로, 데이터베이스의 내용을 정의, 조작, 제어할 수 있도록 함으로서 다수의 사용자와 응용프로그램들이 데이터베이스의 내용을 공유할 수 있도록 운영 및 관리를 하는 소프트웨어 시스템입니다. DBMS는 사용자와 데이터베이스의 중계 역할을 합니다.

 

2) DBMS의 기능

정의기능(Definition Facility): 저장할 데이터의 형태 및 구조와 데이터베이스의 구조에 대해 정의합니다. 이렇게 정의된 것은 시스템 카탈로그의 형태로 저장됩니다.

조작기능(Manipulation Facility): 데이터베이스를 이용할 수 있도록 사용자의 요구에 따라 데이터의 검색 및 삽입, 삭제, 갱신 작업을 가능하게 해줍니다.

- 제어기능(Control Facility): 데이터의 무결성 유지, 보안, 병행 수행제어 기능을 제공하여 데이터베이스의 안정성을 유지합니다.

 

3) DBMS의 장점

자료와의 관계성을 정의하기 때문에 자료 통합성이 증가됨

- 데이터의 중복성과 종속성 최소화 시킵니다.

- 다수 사용자 간의 데이터 공유가 가능합니다.

- 데이터의 무결성과 일관성을 유지합니다.

- 권한과 보안 기능을 지원하여 데이터의 보안성이 높습니다.

 

4) DBMS의 단점

- 파일시스템에 비해 경제적으로 비용이 많이 들어갑니다.

- 한 부분에 장애가 생기면, 전체 시스템에 영향을 주는 취약성이 있음

- 자료 처리가 파일 시스템에 비해 복잡하니다.

- 시스템의 성능에 따라 DBMS가 좌우됩니다.

 

5) 종류

IMS, CODASYL DB, DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL, Objectivity, O2, Versanat, Ontos, Gemstone, Unisql, Object Store, Starburst, Postgres, Tibero, MySQL

 

 

2. 데이터베이스 이용자

데이터베이스는 여러 유형의 사용자들이 이용합니다.

- 일반 사용자(End User): 데이터를 검색하고, 필요한 자료들을 데이터베이스에 삽입, 갱신, 삭제하는 목적으로 이용하는 사람입니다.

- 응용 프로그래머(Application Programmer): 데이터베이스를 활용하며, 사용자 인터페이스를 제공하는 일을 합니다.

- 데이터베이스 관리자(DataBase Administrator): 데이터베이스 전체에 대한 설계와 조작에 관한 책임을 맡습니다. 또한 보안, 권한 부여, 유효성 검사 등을 수행하며, 무결성 유지를 위한 관리를 합니다.

- 데이터 관리자(Data Administrator): 데이터 관리를 총괄합니다. 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안 업무를 담당합니다.

- 데이터 설계자(Data Architect): 조직의 업무 수행에 필요한 데이터의 구조를 정의하는 사람입니다.

1. 데이터베이스 언어

데이터베이스 언어의 종류로는 DDL, DML, DCL이 있습니다.

- 데이터 정의어(Data Definition Language, DDL): 데이터베이스의 구조, 데이터의 형태, 접근방식을 정의, 수정, 삭제하는데 쓰이는 언어입니다.

[예시]

CREATE: 데이터를 저장할 테이블을 생성하는 명령어

ALTER: 데이터를 저정한 테이블의 구조를 변경하는 명령어

DROP: 데이터가 저정된 테이블을 삭제하는 명령어

 

- 데이터 조작어(Data Manipulation Language, DML): 데이터베이스 내에 자료들을 검색하거나 삽입, 수정, 삭제하는 언어입니다.

[예시]

SELECT: 원하는 조건에 따른 데이터를 검색하는 명령어

INSERT: 데이터베이스에 데이터를 저장하는 명령어

UPDATE: 저장된 데이터를 갱신하는 명령어

DELETE: 저장된 데이터를 삭제하는 명령어

 

- 데이터 제어어(Data Control Language): 데이터의 정확성과 안전성을 유지하기 위해, 무결성 유지, 회복, 병행 제어, 보안, 권한 기능을 수행하는 언어입니다.

[예시]

COMMIT: 한 트랜잭션에서 데이터 조작이 정상적으로 완료되었으면, 그 결과를 데이터베이스에 반영하는 명령어

ROLLBACK: 트랜잭션 내에서 데이터를 수정하는 도중 이상이 생겼을때, 변경하기 이전으로 돌아가는 명령어

GRANT: 사용자에게 권한을 부여하는 명렁어

REVOKE: 부여된 권한을 취소하는 명령어

 

 

2. 시스템 카탈로그(System Catalog)

1) 시스템 카탈로그 정의

시스템 카탈로그는 데이터 사전(Data Dictionary)이라고도 부르며, 데이터베이스에 저장된 모든 데이터 요소들(테이블, 뷰, 제약조건, 사용자 등)에 대한 정보를 저장한 것입니다.

시스템 카탈로그에 저장된 데이터들메타 데이터(Meta Data)라고 부릅니다.

 

2) 시스템 카탈로그 특징

- 시스템 테이블의 형태로 구성되어있습니다.

- 사용자가 SQL문을 실행시켜 테이블,뷰,인덱스,제약조건 등에 변화를 주면 DBMS에 의해 시스템 카탈로그 내용 갱신이 자동적으로 이루어집니다.

- 일반사용자는 시스템 카탈로그의 내용을 검색할 수 있지만, 시스템 카탈로그의 내용들을 변경하는 것은 불가능합니다.

 데이터베이스는 개체, 속성, 관계라는 구성요소가 있습니다.


1. 개체(Entity)

 개체란 데이터로 표현하고자 하는 현실 세계의 대상체입니다. 이는 현실 세계에서 사람이 생각하는 개념 및 정보의 단위가 되며, 서로 구별이 가능합니다. 이러한 개체는 하나 이상의 속성으로 구성됩니다. 개체의 종류로는 독립 개체, 종속 개체가 있습니다.

[예시] 한 회사 내에서 일을 하고있는 직원 한명한명, 서점에 있는 책 한권학권 등등

- 독립 개체(Independant Entity):  다른 개체에 종속되지 않고, 스스로 존재할 수 있는 개체입니다.

- 종속 개체(Dependent Entity): 부모 개체로 불리는 다른 개체 집합의 존재에 존재성이 의존되는 개체입니다. 자식 개체라고도 부릅니다.

[예시] 각각의 학생에 대한 정보를 기록해놓은 데이터베이스가 있을때, '가족 사항'이라는 개체는 '학생'개체에 종속된 종속개체입니다.

 

※ 개체 집합: 같은 형태를 가진 개체들을 모은 집합

[예시]

- 학생, 교수, 교직원 개체는 '사람'이란 집합이 됩니다.

- 전자공학과, 기계공학과, 국문학과, 영문학과, 철학과 개체는 '학과'라는 집합이 될 수 있습니다.

 


2. 속성(Attribute)

 

 속성은 저장할 필요가 있는 개체에 관한 정보로, 개체의 특성 및 상태를 기술합니다. 이러한 속성은 데이터베이스를 구축하는 가장 작은 논리적 단위이며, 속성 하나만으로는 대상을 구분하기 어렵습니다. 속성의 종류로는 단순 속성, 복합 속성, 파생 속성이 있습니다.

[예시] 서점의 책이 개체라면, 속성은 책의 서명, 저자, 분류, 가격, 출판사가 될 수 있습니다.

 - 단순 속성: 값을 더이상 나눌 수 없는 속성입니다.

- 복합 속성: 2개 이상의 의미있는 값으로 분해할 수 있는 속성입니다.

[예시] 주민등록번호 전체를 저장하는 속성의 경우, '주민등록번호 앞자리'와 '주민등록번호 뒷자리'로 나뉠 수 있습니다.

 


3. 관계(Relation)

 2개 이상의 개체간의 연관성입니다. 주로 동사의 형태로 표현됩니다. 관계는 사상수에 따라 1:1(일 대 일), 1:n(일 대 다), N:M(다 대 다)로 구분할 수 있습니다. 또한 한 관계에 연관된 개체집합의 차수에 따라 일진관계성, 이진관계성, 삼진관계성등으로 구분되어집니다.

[예시] 사장이란 개체와 사원이란 개체는 '고용'이란 관계에 있습니다. 학생과 과목사이에는 '수강'이란 관계가 있습니다

 

- 1:1 관계: 개체로 구분되는 사람과 그 사람의 주민등록번호의 관계.

 




- 1:n 관계: 한 음식점과 음식점 메뉴의 관계



- n:m 관계: 여러 전공들과 여러 학생들의 관계

 

- 일진 관계성(Unary Relationship): 하나의 개체 집합에서만 관계가 있습니다. 이를 순환관계성(Recursive Relationship)이라고도 합니다.

[예시] '사람'이란 개체집합 사이에서 '결혼'이란 관계가 있습니다.

 

이진 관계성(Binary Relationship): 2개의 개체집합 사이의 관계를 말합니다.

[예시] '학생'이란 개체집합과 '과목'이란 개체집합에서 '수강' 관계가 있습니다.

 

삼진 관계성(Binary Relationship): 3개 이상의 개체집합에 관한 관계입니다.

[예시] '학생', '과목', '교수'라는 3개의 개체집합 간의 관계

1. 데이터베이스 도입 배경

파일시스템을 통하여 데이터들을 저장하고 처리할 수 있었지만, 파일 시스템에서는 독립된 파일 단위로 데이터들을 저장하였기 때문에, 데이터의 중복성(Data Redundancy)데이터의 종속성(Data Dependency)이 발생한다는 문제가 있었습니다. 결국 이것은 데이터의 무결성(Integrity)를 위배하는 결과를 가져오게 됩니다. 그래서 이러한 파일시스템의 문제점을 해결하기 위해 도입된 시스템이 데이터베이스 시스템입니다.


※데이터 중복성(Data Redundancy): 한 시스템이 같은 내용의 데이터가 여러 파일에 중복된 채 저장되어 관리되는것. 데이터 중복성은 한 데이터가 수정되면 중복된 데이터들을 모두 수정해야하는 불편함을 주며, 만일 일부만 수정되었을 경우 불일치성을 야기합니다. 또 저장공간의 낭비도 야기하게 됩니다.

[예시] 어느 회사에서 '영업부'에 '김영희'라는 이름의 사원이 있다고 가정합니다. 이 사원의 이름, 부서정보를 A파일과 B파일에 저장하였습니다.

여기서 김영희라는 사원의 부서가 영업부에서 '마케팅부'로 변경되었다면, A와 B파일의 데이터 모두를 갱신해야합니다.

만일 A파일만 갱신되었고 B파일을 갱신하지 않으면 A에서는 김영희의 부서가 마케팅부이지만 B파일에는 여전히 영업부로 남아있는 불일치가 생깁니다.

※데이터 종속성(Data Dependency): 데이터와 응용프로그램이 의존관계가 있는 것. 만일 데이터의 구성이나 접근방법이 변경된다면 관련 응용프로그램의 구조도 변경되어야 한다는 불편함이 있습니다. 

[예시] .hwp파일데이터는 한글 프로그램에서만 읽을 수 있고, .pptx 파일데이터는 프레젠테이션 관련 응용프로그램에서만 실행 가능합니다. 


2. 데이터베이스 정의

데이터베이스는 여러 사용자나 응용 프로그램이 공용으로 사용되는것을  통합 저장되어 관리하는 운영상의 데이터 집합을 말합니다.

- 통합된 데이터(Integrated Data): 자료의 중복을 배제 또는 최소화 한 데이터의 집합

- 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장매체에 저장되어 사용자나 응용 시스템이 언제든지 이용할 수 있는 데이터 집합

- 운영 데이터(Operational Data): 조직의 운영에 없어서 안되는 필수적인 데이터들의 집합

- 공용 데이터(Shared Data): 다수의 사용자 및 응용시스템이 공유하는 데이터들의 집합


3. 데이터베이스의 특징

- 계속적인 변화(Continuous Evolution): 데이터의 삽입, 갱신, 삭제 작업을 통해  항상 최신의 데이터를 유지합니다.

- 실시간 접근(Real Time Accessibility): 질의(Query)에 대해 실시간 처리 및 응답을 하여, 사용자가 원한다면 언제든지 접근할 수 있습니다.

- 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 사용할 수 있습니다.

- 내용에 의한 참조(Content Refence): 데이터의 물리적 주소가 아닌 내용, 즉 데이터의 값에 의한 참조를 할 수 있습니다.

[예시] 사람들의 이름과, 그에 사람의 전화번호가 저장되어있는 데이터베이스가 있습니다.

여기서 '홍길동'이란 사람의 전화번호를 찾을때, 이 데이터가 저장되어있는 물리적인 주소를 가지고 찾는것이 아니라, 질의문에 '홍길동'이라는 값을 넣어 이름을 가지고 검색할 수 있습니다.

- 데이터 중복의 최소화(Redundancy Minimize): 동일 데이터의 중복을 최소화합니다.


+ Recent posts