티스토리 뷰
[한빛아카데미] 오라클로 배우는 데이터베이스 개론과 실습 책으로 학습한 내용을 정리한 것입니다.
* 데이터, 정보, 지식
- 데이터(Data) : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
- 정보(Information) : 데이터에 의미를 부여한 것
- 지식(Knowledge) : 사물이나 현상에 대한 이해
* 데이터베이스의 개념 및 특징
- 개념 : 각 조직에서 사용하던 데이터를 모아서 통합하고 공유할 목적으로 구축됨
1) 통합된 데이터(Integrated Data) : 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터를 의미
2) 저장된 데이터(Stored Data) : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
3) 운영 데이터(Operational Data) : 조직의 목적을 위해 사용되는 데이터를 의미
4) 공용 데이터(Shared Data) : 한 사람 또는 한 업무를 위해 사용되는 데이터가 아닌 공동으로 사용되는 데이터를 의미
- 특징
1) 실시간 접근성(Real Time Accessibility) : 사용자가 데이터를 요청하면 수초 내에 결과를 서비스함
2) 계속적인 변화(Continuous Change) : 삽입(Insert), 삭제(Delete), 수정(Update) 등의 작업으로 바뀐 데이터 값을 저장
3) 동시 공유(Concurrent Sharing) : 서로 다른 업무 또는 여러 사용자에게 동시에 공유
4) 내용에 따른 참조(Reference by content) : 저장된 데이터는 데이터의 물리적인 위치가 아닌 데이터 값에 따라 참조
* 파일 시스템과 DBMS의 비교
- 파일 시스템 : DBMS가 없는 시스템으로, 데이터는 파일 단위로 저장되며 파일을 다루는 파일 서버가 있음
구분 | 파일 시스템 | DBMS |
데이터 정의 및 저장 | 데이터 정의 : 응용 프로그램 데이터 저장 : 파일 시스템 |
데이터 정의 : DBMS 데이터 저장 : 데이터베이스 |
데이터 접근 방법 | 응용 프로그램이 파일에 직접 접근 | 응용 프로그램이 DBMS에 파일 접근을 요청 |
사용 언어 | 자바, C++, C 등 | 자바, C++, C등과 SQL |
CPU/주기억장치 사용 | 적음 | 많음 |
* DBMS(Database Management System)
- 사용자와 데이터베이스를 연결시켜주는 소프트웨어로, 데이터베이스 사용자가 데이터베이스 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할을 함
[기능]
데이터 정의(Definition) | 데이터 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함 |
데이터 조작(Manipulation) | 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 삽입, 수정, 삭제 작업 지원 |
데이터 추출(Retrieval) | 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함 |
데이터 제어(Control) | 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함 백업과 회복, 동시성 제어 등의 기능을 지원함 |
* DBMS의 장점
- 데이터 중복 가능성 낮음
- 중복 제거로 데이터의 일관성 유지
- 데이터 정의와 프로그램의 독립성 유지 가능
- 데이터 복구, 보안, 동시성 제어 및 데이터 관리 기능 등을 수행
- 짧은 시간에 큰 프로그램을 개발할 수 있음
- 데이터 무결성 유지, 데이터 표준 준수 용이
* 데이터베이스 시스템(Database System)의 구성
- 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템
- 데이터베이스 관리 시스템(DBMS), 데이터베이스(Database), 데이터 모델(Data Model)로 구성됨
1) 데이터베이스 관리 시스템(DBMS) : 사용자와 데이터베이스를 연결시켜주는 소프트웨어로 주기억장치에 저장됨
2) 데이터베이스(Database) : 데이터를 모아둔 토대로, 하드디스크에 저장된 데이터
3) 데이터 모델(Data Model) : 데이터가 저장되는 기법에 관한 내용으로, 눈에 보이지 않는 논리적인 개념
-> 데이터가 어떻게 구조화되어 저장되는지를 결정함
* 3단계 데이터베이스 구조
- 1975년 ANSI에서는 데이터베이스를 개념적으로 이해하기 위해 데이터베이스 구조에 관한 안을 만듦
- 안은 데이터베이스를 보는 관점을 세 단계로 분리한 것이며, 구조는 데이터베이스의 복잡한 구조를 단순화하여 표현함
- 외부스키마 : 개념 스키마 중 사용자에게 필요한 부분 스키마를 의미함
- 개념스키마 : 전체 데이터베이스의 정의를 말하는 것으로 통합 조직별로 하나만 존재하고, 저장 장치에 독립적으로 기술됨
데이터와 관계(Relationshop), 제약사항, 무결성에 대한 내용 포함
- 내부스키마 : 물리적 저장 장치에서 데이터베이스가 실제로 저장되는 방법의 표현
인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항 포함
외부스키마(External schema) | 개념스키마(Conceptual schema) | 내부스키마(Internal schema) | |
다른 명칭 | 서브스키마 | 스키마 | 저장스키마 |
대상 | 사용자, 응용 프로그래머의 관점 | 데이터베이스 관리자(DBA)의 관점 | 시스템 프로그래머, 시스템 설계자 관점 |
특징 | 응용프로그램이 데이터베이스의 일부를 보는 관점 |
데이터베이스 자체의 전체적인 논리적 구조 |
물리적 저장장치의 입장에서 본 실제 데이터베이스 구조 |
용도 | 사용자 뷰 | 전체적인 뷰 | 레코드의 물리적 구조 |
* 데이터 독립성(Data Independence)
- 3단계 데이터베이스 구조의 특징으로, 하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
- 논리적 데이터 독립성(Logical Data Independence) : 외부 단계와 개념 단계 사이의 독립성으로, 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원함
- 물리적 데이터 독립성(Physical Data Independence) : 개념 단계와 내부 단계 사이의 독립성으로, 저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원함
(참고) 물리적 독립성은 논리적 독립성보다 구현하기 쉬움
'개인공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 프로그래밍 (0) | 2023.12.04 |
---|---|
[데이터베이스] SQL 고급 (0) | 2023.12.04 |
[데이터베이스] SQL 기초 (0) | 2023.12.04 |
[데이터베이스] 관계대수(Relational Algebra) (0) | 2023.12.04 |
[데이터베이스] 관계 데이터 모델(Relational Data Model) (0) | 2023.12.04 |