파일을 이용한 데이터 처리
- 데이터의 중복
- 응용 프로그램이 기대하는 물리적 구조
파일을 이용한 데이터 처리의 문제
- 파일을 여러 군데 사용하는 경우 파일의 포맷이 다르므로 특정 프로그램만 읽을 수 있음
- 동일한 데이터를 나타내는 필드, 타입, 길이 등이 다를 수 있음
1. 데이터 종속성(Data Dependency)
- 파일의 내부 구조에 응용 프로그램이 영향을 받게 됨
- 데이터의 구조나 접근방법이 변경된다면, 관련 응용프로그램의 구조도 변경되어야 함
2. 데이터 중복성(Data Redundancy)
- 동일한 내용의 데이터가 중복해서 관리됨
- 데이터 중복으로 인한 문제점
- 데이터 일관성(data consistency) 상실 → 똑같은 데이터인데 서로 맞지 않음 ex) 이름은 같은데 전화번호가 다른 경우
- 보안성(data security) 취약 → 암호가 있는 파일도 있고 없는 파일도 존재
- 경제성 취약
- 데이터 무결성(data integrity=결함이 없다) 취약 → ex) 나이가 -1인 경우 ⇒ 실수로 잘못 표기했는데 코드를 잘못짜서 그대로 남은 경우, 컴퓨터가 갑자기 동작을 멈춘 경우
DBMS의 적용
→ 파일시스템과는 달리 데이터베이스를 통해 동시에 쓰일 때 데이터베이스 관리 시스템을 통해서 관리해줌
- DBMS의 필수 기능
- 데이터 정의(Data Definition) 기능 : 사용할 데이터의 구조를 정의할 수 있어야 함
- 데이터 조작(Data Manipulation) 기능 : 데이터의 검색, 삽입, 삭제, 갱신 (언어도 가능)
- 데이터 제어(Data Control) 기능 : 데이터 무결성 (Data Integrity) 유지 기능→ 데이터는 무조건 양수여야 함, 음수 들어오면 자동으로 막아줌, 권한(Authority)과 보안(Security) 기능, 동시사용에 따른 병행 제어 가능
- DBMS의 장점
-
- 데이터 중복 최소화
- 데이터의 공유 사용 → 동시에 쓰게 해줌
- 데이터 무결성 유지
- 데이터의 보안 보장
- 조직 내 데이터의 표준화
- 데이터 요구의 조정
- DBMS의 단점
- 운영비 증대
- 특정 응용 프로그램의 복잡화 → 알고리즘은 간단한데 자료구조가 복잡해지는 경우
- 복잡한 백업과 회복
- 시스템 취약성 → DBMS 장애가 발생하면 업무를 중단해야 함
데이터 독립성(Data Independency)
- 데이터베이스의 논리적 또는 물리적 구조가 변경되더라도 응용프로그램이 영향을 받지 않게 함
- 논리적 데이터 독립성 (Logical DI) ⇒ 학번, 이름을 바꿔도 상관 없음
- 물리적 데이터 독립성 (Physical DI) ⇒ 디스크의 위치 바꿔도, 즉 list에서 array로 변경해도 영향을 받지 않으므로 수정하지 않아도 됨
- 각 데이터 구조 간에 사상(Mapping) 기능이 필요
데이터 구조 간의 사상과 데이터 독립성
사상이란?
어느 한 응용 프로그램에 DBMS를 통해서 데이터베이스에 접근할려고 할 때 DBMS는 이 3단계 스키마에 있는 모든 개체와 속성 간의 대응 관계를 알아야만 지원할 수 있는데, 이러한 대응 관계에 대한 정의를 사상이라고 함
→ DBMS가 궁극적으로 추구하는 데이터 독립성을 구현하는 방법
예) 개념 스키마에 변화가 생기면 그 변화에 따라 이 사상만 올바르게 변경시켜주면, 외부 스키마에는 아무런 영향을 미치지 않게 되므로 논리적 데이터 독립성을 제공해 주는 것임
DBMS의 발전사
- 초창기 DBMS 없이 파일만을 사용하여 데이터 처리
1. 1960년대
- 계층형 및 네트웤 DBMS 등장
- 계층 또는 네트워크 데이터 모델
- 데이터를 더 쉽게 찾고 처리하기 위해서 사용함
- 60년대 말 ~
- Bachman, 1972 Turing Award
- 원동력
- Random Access Disk 기술
- 온라인 처리 방식
- CODASYL / DBTS 그룹 활동
- DOBOL + DB
- DBMS 예
- IDS, IDMS, IMS 등
- 계층 또는 네트워크 데이터 모델
2. 1970년대
- 관계 DBMS 등장 → 현재까지 쓰고 있음
- 데이터들을 테이블 형태로 구조화하고, 그 관계를 외래키를 사용해서 정의함
- SQL (Structured Query Language)
- 선언적 데이터 조작 (Declarative) ↔ 절차적 (Procedural)
- DBMS에 접근하는 것을 명시함
- 데이터 독립성
- → 물리적, 논리적 독립성
- 단순하지만 우아함!
- 초기 관계형 데이터베이스 시스템들
- System/R(IBM)
- INGRES(U.C Berkeley)
- 주요 RDBMS 회사들
- IBM, DEC, Oracle, Gupta, etc.
3. 1980년대 말 - 90년대 등장 : 객체지향 DBMS
4. 1990년대 말 - : 객체관계 DBMS → 오라클 DB2 상용 DBMS (클래스 기능도 제공)
5. 2000년대 이후 : XML DBMS, No-SQL DBMS
- 컴퓨터공학 & 여성 인력
- 컴퓨터공학 → 컴퓨터가 나오기 전까지는 직접 계산하였음
- 여자를 인간 컴퓨터라고 부르며, 컴퓨터 산업의 개척자 중 상당수가 여성임 → 컴퓨터를 실제로 작동시키는 여성을 여성 컴퓨터로 부름
- 파일 시스템을 이용한 데이터 처리의 경우
- 1960년대 등장 ~ 현재까지 → 테이프를 이용한 자료 처리를 했고, 일괄처리 방식이였음
- 질의문 예
- 절차적 조작어 ⇒ 데이터를 찾는 모든 과정을 조작한다.
객체지향 DBMS
- 1980년대 등장
- 객체 모델에 기반하여 정보의 저장 및 검색을 지원해주는 데이터베이스 → 데이터를 객체 단위로 구조화함
- 데이터들 간의 관계가 복잡할 때 공통된 데이터를 객체로 묶어서 표현하고 이들 간의 관계를 데이터베이스에 반영
- 컴퓨터의 응용분야 확대(80년대 이후)
- CAD, CAM, SE, AI
- 응용 프로그램에서 사용하는 데이터 구조 복잡, 다양
- 메모리 상의 데이터가 데이터베이스에 그대로 저장되었으면…
- 객체지향 데이터모델 지원
- OO Languages + DB capabilities
- ODMG93(ODMG)
- 순수 객체지향 DBMS
- O2(Ardent), Objectivity, ObjectStore, GemStone, Itasca, POET(XML), SOP
- 개념
- 예
→ 301 빌딩에서 일하고 있는 모든 학생들을 찾을려고 할 때
select s from s in Student
where s.dept.location.BNo=301
- 쉽게 생각하면, 공통된 객체 데이터들이 꼬리물기로 연관되어 있다는 것
- 반면에 관계형데이터베이스는 릴레이션에 관련된 데이터들을 테이블에 정형화하고 관계를 표현할 때는 참조 키를 사용함
객체-관계형 DBMS
- 1990년대 : 객체-관계형 데이터모델
- 원동력 : 관계형 DBMS의 시장 장악력, 안전성
- RDB + Object Orientated Concepts → ORDB
- SQL3(ISO-ANSI standard, X3H2)
- 객체/관계형 DBMS : DB2, Oracle11g
- Object Mapping Over RDB(Persistency, Sybase, IBM SMRC)
- O-R (Object - Relational) Mapping
- 객체-관계 매핑
- 객체 지향 프로그램에서 사용되는 객체라는 개념을 구현한 클래스와 관계형 데이터베이스에서 사용되는 테이블을 자동으로 연결하는 것
'Computer Science > DB' 카테고리의 다른 글
[데이터베이스] 5. SQL - DML, DCL이란? (4) | 2024.08.23 |
---|---|
[데이터베이스] 4. SQL - SELECT문을 사용하여 데이터 조회하기 (0) | 2024.08.20 |
[데이터베이스] 3. SQL은 무엇일까? (0) | 2024.07.29 |
[데이터베이스] 1. 데이터베이스의 개념 및 구조 (1) | 2024.05.11 |