국민대학교에서 "오라클로 배우는 데이터베이스 개론과 실습(2판)" 을 이용한
신인수 교수님의 강의 교안을 이용하여 수업 내용을 정리하였습니다
1. 데이터베이스와 데이터베이스 시스템
1. 데이터, 정보, 지식
데이터 : 관찰의 결과로 나타난 정량적 혹은 정상적인 실제 값
정보 : 데이터에 의미를 부여한 것
지식 : 사물이나 현상에 대한 이해
2. 일상생활의 데이터베이스
데이터베이스 : 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것
데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행함
⇒ 변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말함
- 통합된 데이터(integrated data) : 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거
- 저장된 데이터(stored data) : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
- 운영 데이터(operational data) : 조직의 목적을 위해 사용되는 데이터를 의미한다. 즉 업무를 위한 검색을 할 목적으로 저장된 데이터
- 공용 데이터(shared data) : 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미
💡 데이터베이스는 운영 데이터를 통합하여 저장하며 공용으로 사용
3. 데이터베이스의 특징
실시간 접근성(real time accessibility) : 데이터베이스는 실시간으로 서비스, 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스
계속적인 변화(continuous change) : 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀜
=> 데이터베이스는 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐 데이터 값을 저장
동시 공유(concurrent sharing) : 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 병행되며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미
내용에 따른 참조(reference by content) : 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조
4. 데이터베이스 시스템의 구성
2. 데이터베이스 시스템의 발전
정보 시스템의 발전
1. 파일 시스템
- 데이터를 파일 단위로 파일 서버에 저장
=> 각 컴퓨터는 LAN을 통하여 파일 서버에 연결되어 있고, 파일 서버에 저장된 데이터를 사용하기 위해 각 컴퓨터의 응용 프로그램에서 열기/닫기(open/close)를 요 - 각 응용 프로그램이 독립적으로 파일을 다루기 때문에 데이터가 중복 저장될 가능성이 있음
- 동시에 파일을 다루기 때문에 데이터의 일관성이 훼손될 수 있음
2. 데이터베이스 시스템
- DBMS를 도입하여 데이터를 통합 관리하는 시스템
- DBMS가 설치되어 데이터를 가진 쪽을 서버(server), 외부에서 데이터 요청하는 쪽을 클라이언트(client) 라고 함
- DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
- 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지
3. 웹 데이터베이스 시스템
- 데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템
- 불특정 다수 고객을 상대로 하는 온라인 상거래나 공공 민원 서비스 등에 사용됨
4. 분산 데이터베이스 시스템
- 여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
- 대규모의 응용 시스템에 사용됨
3. 파일 시스템과 DBMS
1. 데이터를 저장하는 방법
1. 데이터를 프로그램 내부에 저장하는 방법
프로그램에 데이터 정의와 데이터 값을 모두 포함하는 방식
=> 구조체를 선언하고 main() 프로그램에서 구조체 배열 변수에 데이터가 저장됨
문제점 : 새로운 데이터가 생길 때마다 프로그램을 수정한 후 다시 컴파일해야 함
(데이터 구조 혹은 데이터 값이 바뀌면 프로그램을 다시 컴파일해야 함)
2. 파일 시스템을 사용하는 방법
파일에 데이터 값, 프로그램에 데이터 정의를 포함하는 방식
=> 새로운 데이터가 추가되어도 프로그램을 수정할 필요 없음
문제점 : 데이터 값이 바뀌면 프로그램에 변경이 없지만, 데이터 구조가 바뀌면 프로그램을 다시 컴파일해야 함
3. DBMS를 사용하는 방법
=> 데이터 정의와 데이터 값을 DBMS가 관리하는 방식
(DBMS는 데이터 정의, 데이터 변경 등의 작업을 할 수 있는 별도의 프로그램을 갖고 있음)
=> 데이터 구조는 DBMS가 관리하고, 데이터 값은 데이터베이스에 저장됨
=> 데이터 값이 바뀌거나 데이터 구조가 바뀌어도 프로그램을 다시 컴파일할 필요 없음
2. 파일 시스템과 DBMS의 비교
4. 데이터베이스 시스템의 구성
1. 데이터베이스 언어
SQL
- 데이터 정의어 (DDL, Data Definition Language)
- 데이터 조작어 (DML, Data Manipulation Language)
- 데이터 제어어 (DCL, Data Control Language)
자세한 내용은 다른 Chapter에서 다룰 예정
2. 데이터베이스 사용자
1. 일반 사용자
프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근하는 일반인
2. 응용프로그래머
일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
(일반 사용자를 위한 사용자 인터페이스와 데이터를 관리하는 응용 로직을 개발)
3. SQL 사용자
응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리
(SQL을 사용하여 업무를 처리하는 IT 부서의 담당자를 생각해보면 됨)
4. 데이터베이스 관리자(DBA, Database Administrator)
데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
(데이터 설계, 구현, 유지보수의 전 과정을 담당)
3. DBMS
4. 데이터 모델
- 계층 데이터 모델(hierarchical data model)
=> 포인터 사용 - 네트워크 데이터 모델(network data model)
=> 포인터 사용 - 관계 데이터 모델(relational data model) : 가장 많이 사용됨
=> 속성 값 사용
- 객체 데이터 모델(object data model)
=> 객체식별자 사용
- 객체-관계 데이터 모델(object-relational data model)
=> 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델
5. 데이터베이스의 개념적 구조
- 외부 스키마
=> 일반 사용자나 응용 프로그래머가 접근하는 계층, 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
=> 여러 개의 외부 스키마(external schema)가 있을 수 있음
=> 서브 스키마(sub schema)라고도 하며, 뷰(view)의 개념임 - 개념 스키마 (= 데이터베이스 1개)
=> 전체 데이터베이스의 정의를 의미
=> 통합 조직별로 하나만 존재하며 DBA가 관리함
=> 하나의 데이터베이스에는 하나의 개념 스키마(conceptual schema)가 있음 - 내부 스키마 (개념 스키마를 참고하여 DB의 내용을 하나씩 전부 정의함 ex. 데이터 용량 등)
=> 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현
=> 내부 스키마(internal schema)는 하나
=> 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨 - 외부/개념 스키마
=> 사용자의 외부 스키마와 개념 스키마 간의 매핑(사상)
=> 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴 - 개념/내부 스키마
=> 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응 시킴
- 데이터 독립성
- 논리적 데이터 독립성(logic data independence)
=> 외부 단계(외부 스키마)와 개념 단계(개념 스키마) 사이의 독립성
=> 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
=> 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념
=> 개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없음 - 물리적 데이터 독립성(physical data independece)
=> 개념 단계(개념 스키마)와 내부 단계(내부 스키마) 사이의 독립성
=> 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원
=> 성능 개선을 위하여 물리적 저장 장치를 재구성할 경우 개념 스키마, 응용 프로그램 같은 외부 스키마에 영향X
=> 물리적 독립성은 논리적 독립성보다 구현하기 쉬움
- 논리적 데이터 독립성(logic data independence)
'Database > 데이터베이스' 카테고리의 다른 글
Chapter 06. 데이터 모델링 (0) | 2024.05.15 |
---|---|
Chapter 05. 데이터베이스 프로그래밍 (1) | 2024.04.16 |
Chapter 04. SQL 고급 (1) | 2024.04.15 |
Chapter 03. SQL 기초 (1) | 2024.04.14 |
Chapter 02. 관계 데이터 모델 (1) | 2024.04.12 |