1. Database-System Application
(1) Database (DB)와 DBMS
ⓐ Data vs. Information
Data는 일상 생활 속 모든 수식을 의미한다. 그 중에서 의미 있는 data로 가공한 것이 Information이다.
ex. 이메일 주소 --> 스팸 메일
ex. 검색 로그 --> 개인별 맞춤 추천 서비스
ⓑ DB
'organized collection of data'
특정 목적에 대한 대량의 data
ⓒ DBMS
- Database management system
- end user, application, database 자체와 상호작용할 수 있도록 하는 소프트웨어
- DBMS의 구성 요소 : collection of interrelated data (서로 연관되어 있는 데이터들), data에 접근할 수 있는 프로그램 집합
- DBMS의 목적 : DB를 사용하는 데에 있어서 편리하고 효율적인 환경을 만들기 위함.
ex. 대학교의 I-class : 학생의 성적이나 출결, 과목 자료 데이터를 더 효율적으로 보기 위한 web program
(2) Database System
ⓐ Database system이 취급하는 데이터
- Highly valuable : 가치 있는 데이터
- Relatively large : 규모가 큰 데이터
- Accessed by multiple users and applications, often at the same time : 동시다발적 접근이 가능한 데이터
ⓑ Modern database system
복잡한 관계의 거대한 양과 다양한 구조의 데이터들을 관리하고 있음
(3) Database Applications Example
- 회사 : sales, accounting, human resource
- 은행 : 고객 정보, 계좌, 대출, 은행 상호 거래
- 대학교 : 등록 관련, 성적
2. Purpose of Database System
(1) File System의 문제점
ⓐ Data redundancy and inconsistency (데이터의 중복과 비일관성)
- 데이터는 다수의 파일에 저장되어 있는 형태이기 때문에 information에서의 비일관성이 나타날 수 있다.
ex. 학생A : 컴퓨터공학과와 경영학과 복전 상태. 학생A의 정보가 바뀌었을 때, 컴퓨터공학과 자료에서만 수정이 일어나고 경영학과 자료에서는 수정이 안 되는 경우가 생길 수 있음.
ⓑ Difficulty in accessing data (데이터 접근의 어려움)
- 데이터가 여러 파일에 저장되어 있다 보니, 각각의 파일에 일일이 접근해야 하는 번거로움이 발생한다.
ⓒ Data isolation
- ⓐ와 유사한 특징으로, 새로운 정보가 입력되었을 때 기존의 모든 파일을 수정해야 한다.
- 위와 같은 이유로 새로운 program 개발의 어려움이 있다.
ⓓ Integrity problems (무결성 문제)
- 무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말함
ex. 계좌의 잔액은 0보다 크거나 같아야 하는데, 이런 제약 조건이 어떤 파일에는 명시되어 있지 않은 경우도 있다.
ⓔ Atomicity of updates (원자성 문제)
- 데이터의 부분적인 업데이트로 인해 에러가 날 수 있음.
ex. A가 300원을 B에게 송금했다. A의 계좌는 300원 출금으로 -300이 되어야 하고, B의 계좌는 300원 입금으로 +300이 되어야 한다. 이때, 둘 중 하나의 계좌가 0으로 나타나는 오류가 나타난다면 문제가 생긴다.
ⓕ Concurrenet access by multiple users (동시 접근이 가능해야 함)
ex. 잔고 100원에 A와 B가 동시에 접근하여, A는 70원을 B는 30원을 인출한다. 그러면 계좌의 잔고는 0이 되어야 하는데 오류가 나서 A의 출금만 처리된 것처럼 표현된다면 (잔고 30원) 문제가 생긴다.
ⓖ Security problems
- File system 전체 데이터에 접근할 수 있다면 문제가 발생한다.
ex. 학생 관리 프로그램에서 개개인의 성적도 볼 수 있는 문제가 생긴다.
(2) File system의 문제점 예시
① Data redundancy
- ID와 Name 정보가 중복된다.
② Data insoncistency
- 만약에 James가 전공을 바꿨다면 왼쪽의 정보만이 바뀐다. 오른쪽의 정보에서는 data 변화가 없으므로 inconsistency가 발생한다.
③ Data security
- GPA 정보는 유출되면 안되는 보안상 정보이다.
④ Concrurrent-access
- John과 James가 동시에 똑같은 책을 온라인 도서관에서 예약하면 어떻게 될까?
3. View of Data
(1) View of Data
- Database system의 주 목적은 user들에게 data의 추상화된 형태를 제공하는 것이다.
- 종류
ⓐ Data models
: data를 설명하고, 관계와 의미, 제한 조건들을 위한 도구들의 모음
ⓑ Data abstraction
: data 구조의 복잡함을 숨기고 user들에게 추상화된 데이터의 세부적인 계층으로 data를 제공한다.
(2) Data models
- Data
- Data relationships
- Data semantics (의미)
- Data constraints (제한 조건)
- 종류
ⓐ Relational Model
ⓑ Entity-Relationship data model (ER - model): database 설계
(3) Relational Model (RDB)
- Ted Codd에 의해 만들어짐
- 모든 데이터는 다양한 table에 저장됨 (table을 relation이라고 부른다)
- column은 attribute라고 부른다.
- table (relation) 형태를 schema라고 부른다.
(4) Levels of Abstraction
ⓐ Physical level
- data가 물리적으로 어디에 저장되는지 보여준다.
- 일반 end user들이 접근 불가능하다.
ⓑ Logical level
- data가 sw적으로 어떻게 저장되는지 보여준다.
- 일반 end user들이 접근 불가능하다.
ⓒ View level
- application 단의, end user들이 볼 수 있는 program.
- 특정 정보는 보안 상의 목적으로 숨겨진다.
(5) Instances and Schemas
ⓐ Logical Schema
- DB의 설계 부분에서 application에 영향이 가장 큰 부분.
- 변수, data type 과 비슷하다.
ex. 고객과 은행 계좌 정보의 쌍의 정보, 그리고 그 둘의 관계
ⓑ Physical Schema
- DB에서 전반적인 physical 구조
ⓒ Instance
- 실질적인 데이터베이스에서의 값
- 변수에서의 값과 비슷하다.
(6) Physical Data Independence
- 대부분의 application은 logical schema에 영향을 받는다.
- logical schema를 바꾸지 않고서는 physical schema는 변하지 않는다.
'[ CS 전공 ]' 카테고리의 다른 글
[ DB ] Relational Model (1) : Structure, Database Schema, Keys, Schema Diagrams, Relational Query Lang. (0) | 2022.03.26 |
---|---|
[ DB ] 데이터베이스 Introduction (2) : DB Language, Design, Engine, Architecture, Users and Administrators (0) | 2022.03.17 |
[ 네트워크 ] ARP 통신 (0) | 2022.03.03 |
[ 네트워크 ] VLSM (0) | 2022.03.02 |
[ 네트워크 ] 서브네팅 (Subneting) (0) | 2022.03.01 |