1. 데이터베이스의 정의와 특징
- 데이터베이스를 '데이터의 집합' 이라고 정의한다면 DBMS는 이 데이터베이스를 관리, 운영하는 역할을 한다.
- 데이터베이스는 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야 한다.
1) 정의
- 데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임이다.
1. 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임이다.
2. 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다.
3. 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료이다.
4. 고용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다.
2) 특징
1. 실시간 접근성(Real-Time Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
2. 계속적인 변화(Continuous Evolution) : 데이터베이스의 상태는 동적이다. 즉 새로운 데이터의 삽입(Insert),삭제(Delete),갱신(Update)로 항상 최신의 데이터를 유지한다.
3. 동시공용(Concurrent Sharing): 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
4. 내용에 의한 참조(Content Reference): 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.
2. DBMS의 특징
1) 데이터의 무결성
- 데이터베이스 안의 데이터는 어떤 경로를 통해 들어 왔던지 데이터에 오류가 있어서는 안 된다.
- 무결성을 위해서 데이터베이스는 제약 조건 이라는 특성을 가진다.
- 각각의 데이터마다 고유 제약 조건을 갖고 중복되는 값이 있으면 안 된다.
예) 학생을 조회하기 위해 있는 학번(제약 조건)
2) 데이터의 독립성
- 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 한다.
- 서로 의존적 관계가 아닌 독립적인 관계여야 한다.
예) 데이터베이스가 저장된 디스크가 새 것으로 변경되어도 기존에 사용하던 응용 프로그램은 아무런 변경 없이 계속 사용되어야 한다.
3) 보안
- 데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
- 접근할 때도 사용자의 계정에 따라서 다른 권한을 가져야 한다.
4) 데이터 중복의 최소화
- 동일한 데이터가 여러 개 중복되어 저장되는 것을 방지한다.
- 각각의 데이터가 사람마다 관리되는것이 아닌 데이터베이스에 통합하여 하나의 테이블에 저장하고 공유함으로써 데이터 중복이 최소화된다.
5. 응용 프로그램 제작 및 수정이 쉬워짐
- 기존 파일 시스템을 사용할 때는 각각 파일의 포멧에 맞춰 개발해야 하는 응용 프로그램을 데이터베이스를 이용함으로써 통일된 방식으로 응용 프로그램 작성이 가능해지고, 유지보수 또한 쉬워쥔다.
6. 데이터의 안전성 향상
- 대부분 DBMS가 제공하는 백업, 복원 기능을 이용함으로써ㅡ 데이터가 깨지는 문제가 발생할 경우에 원상으로 복원 또는 복구하는 방법이 명확해진다.
3. 데이터베이스의 발전
오프라인 -> 파일시스템의 사용 -> 데이터베이스 관리시스템(DBMS)
- 데이터베이스 관리시스템(DataBase Management System)
1) 이전의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 윤영하기 위해서 사용되기 시작한 것
2) DBMS는 데이터의 집합인 '데이터베이스'를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어를 말한다.
3) SQL(Structured Query Language)를 사용해서 중요한 정보들을 입력하고 관리하고 추출할수 있다.
4. DBMS 분류
1. 계층형 DBMS
- 처음으로 나온 DBMS 개념으로 1960년대에 시작되었는데 그림과 같이 각 계층은 트리 형태를 가지며 1 : N 관계를 갖는다.
- 즉 사장 1명에 부서가 3개 연결되어 있는 구조
- 처음 구축한 이후에는 그 구조를 변경하기가 상당히 까다롭다.
- 주어진 상태에서의 검색은 상당히 빠르지만, 접근의 유연성이 부족해서 임의의 검색에는 어려움이 따른다.
2. 망형 DBMS
- 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 시작되었으며 1 : 1, 1 : N, N : M (다대다) 관계가 지원되어 효과적이고 바른 데이터 추출이 가능해졌다.
- 계층형과 마찬가지로 매우 복잡한 내부 포인터를 사용하고 프로그래머가 이모든 구조를 이해해야만 프로그램의 작성이 가능하다는 단점이 여전히 존재한다.
3. 관계형 DBMS
- 1969년 E.F.Codd 라는 학자가 수학 모델에 근거해서 고안하면서 시작되었다.
- RDBMS의 핵심 개념은 "데이터베이스는 테이블이라 불리는 최소 단위로 구성되어 있다. 그리고 이 테이블은 하나 이상의 열로 구성되어 있다."
- 정보를 저장하기 위해서 하나의 테이블이 아닌 여러 개의 테이블로 나누어서 저장함으로써 불필요한 공간의 낭비를 줄이고 테이터 저장의 효율성을 보장해 줄 수 있다.
- 테이블의 관계를 기본 키(Primary key)와 외래 키(Foreign Key)를 사용해서 맺어 줌으로써, 두 테이블을 부모와 자식의 관계로 묶어 줄 수 있다.
- 부모 테이블과 자식 테이블을 조합해서 결과를 얻고자 할 경우에는 SQL의 조인 기능을 이용하면 된다.
- 업무가 변화될 경우에 쉽게 변화에 순응할 수 있는 구조이며 유지보수 측면에서도 편리한 특징을 가지고 있다는 것이다.
- 대용량 데이터의 관리와 데이터 무결성의 보장을 잘 해주기 때문에 동시에 데이터에 접근하는 응용 프로그램을 사용할 경우에 좋다.
- 반면 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려지는 것이다.
'DB' 카테고리의 다른 글
VIEW 와 SELECT 실행 순서 (0) | 2023.09.21 |
---|---|
SQL (0) | 2023.09.21 |
키(Key)의 종류 (0) | 2023.09.15 |
RDBMS(관리형 데이터베이스 관리시스템), 릴레이션 스키마 / 인스턴스 (0) | 2023.09.15 |
스키마와 3단계 데이터베이스 구조 (0) | 2023.09.15 |