데이터 단위
- bit -> byte -> KB -> MB -> GB -> TB -> PB(petabyte) -> EB(exabyte) -> ZB(zettabyte)
빅데이터 처리
- IOT -> BigDate -> AI : data-based learning
데이터 관리의 필요
- 대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치
데이터 관리의 역사
1960년대에 만들어진 파일관리 시스템
- 전통적 데이터 관리 방식 : 각각 파일 만들어 사용
- 데이터베이스가 개발되기 전에 데이터 관리에 사용
- 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장/관리하는 시스템
- 발생 가능한 문제
- 데이터 종속 : 저장된 데이터가 특정 HW에서 또는 사용자 및 SW에서 사용될 수 있도록 제한됨 -> 물리적 데이터 종속
- 데이터 중복 문제 : 동일한 사항에 대한 중복 데이터는 일관성, 보안성, 경제적 측면에서 문제 발생
- 일관성 : 한 사실에 대해 한개의 데이터 값을 유지 -> 데이터의 정확성 떨어짐(쓸모없는 데이터)
- 보안성 : 같은 데이터에 같은 수준의 보안 유지
- 경제성 : 데이터에 대해 최소한의 저장 공간 만을 점유
- 무결성 훼손 문제 : 실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건)를 포함, 파일시스템은 데이터 물결성을 보장하기위한 기능을 제공하지 않음
- 현상에 대한 값 (예: '홍길동'의 수강과목)
- 가능범위의 예: 1학기 최대 수강과목 18학점
- 데이터의 정확성 보장
- 데이터의 값과 값에대한 제약조건을 동시에 만족
- 동시 접근의 문제 : 동일 데이터에 다수 사용자의 접근 허용시 일관성 훼손
데이터베이스의 특징
데이터베이스 사용의 의미
- 사용자가 직접 디스크에 접근하지 않고 데이터베이스만 디스크에 접근할 수 있음
-> 사용과 관리의 영역 분리
데이터베이스의 특징
- 데이터베이스 시스템의 자기 기술성
- 데이터와 데이터의 정의 및 설명(메타데이터)을 포함
- 프로그램과 데이터의 격리 및 추상화
- 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상
- 다중 뷰 제공
- 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
- 데이터 공유와 다수 사용자 트랜젝선 처리
- 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업을 수행
데이터베이스 시스템의 구성
- 값 : value
- 데이터 : 값에 두개이상의 설명 태그가 붙음
- 메타데이터 : 데이터에 붙은 설명 태그
DBMS의 3단계 구조
다수 사용자 트랜잭션 처리
- 트랜잭션의 정의 : 하나의 논리적 작업을 처리하기 위한 일련의 데이터베이스 명령의 집합
- 하나의 트랜잭션을 다 처리되기 전까지는 다음 트랜잭션 처리 안함
- 동시에 접근 불가
데이터베이스 관련 용어
- 데이터 : 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에대한 설명
- 데이터베이스 : 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합
- DBMS : 데이터베이스에 저장된 데이터의 구성, 저장, 관리 사용을 위한 소프트웨어 페키지(데이터베이스와 DBMS 혼용사용하지만 다름)
- 데이터베이스 시스템 : 정보를 데이터베이스에 저장/관리하여 사용자에게 요구된 형태의 정보고 제공하는 컴퓨터 기반 시스템
데이터베이스의 구성요소
데이터베이스 언어
- DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스 제공
- 역할에따라 두 종류의 언어로 구분
- 데이터 정의 언어(DDL) : 데이터베이스 객체를 생성/수정/삭제 하기 위한 언어
- 데이터 조작 언어(DML) : 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정) -> 데이터의 조작이 쉽고 간편, 조작 기능이 정확하고 완전, 가용자의 요청을 시스템 내부에서 효율적으로 처리 가능
- 현대 데이터베이스 언어는 자연어와 유사한 형태 -> SQL
데이터베이스 시스템 아키텍쳐
- 중앙집중식 방식
- 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
- 중앙 컴퓨터의 과부하고 전체적인 성능 저하
과거 >>>>>>>>> 현재
- 분산 시스템 방싱
- 클라이언트 장치의 설능 향상으로 자체적인 처리 능력 보유
- 클라이언트-서버 데이터베이스 시스템
- 애플리케이션 프로그램의 부하를 분산
- 소프트웨어의 유지보수 비용을 절감 및 이식성 증가
-> 3계층 구조는 처음엔 시간 비용 많이 들지만 유지보수 용이
-> 시스템 특징에 맞춰 어떤 것이 좋을지 결정해야 함(꼭 분산, 3계층이 좋은 건 아닐 수 있음)