데이터
- 현실세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값
- 숫자는 물론이고 문자, 이미지, 영상 등을 포함
- 데이터는 처리되지 않은 값
- 정보는 처리하여 얻은 값
- 정보의 유용성을 위해서는 데이터가 정확하고 최근의 것이어야 함
정보
- 의사결정을 할 수 있게 하는 지식으로서 데이터의 유효한 해석이나 데이터 상호 간의 관계를 말함
- 정보는 데이터를 처리해서 얻은 결과
- 데이터 -> 처리기 -> 정보 (I = P(D))
- 정보추출방법을 데이터 처리 또는 정보 처리라 함
데이터와 정보
- 데이터는 현재 당면한 문제와 관련되고 필요시 언제나 이용될 수 있도록 수집, 조직, 저장되어야 함
- 정보는 기업 경영에 관한 의사 결정에 중요한 역할
- 기업들이 독립 부서로 데이터를 관리하고 최고 경영자급 책임자(CIO)를 둠
정보 시스템
- 조직체에 필요한 데이터를 수집, 조직, 저장한 후 필요시 유용한 정보를 생성하고 분배하는 수단
- 경영정보시스템: 기업의 경영 관리(기획, 운영, 의사결정)를 위한 가장 정확하고 최신의 정보를 제공하는 수단으로 사용되는 정보시스템
1. 생산 관리 시스템
2. 은행 관리 시스템
3. 병원 관리 시스템
4. 의사 결정 지원 시스템
5. 지식 관리 시스템
데이터 처리 시스템
1. 일괄 처리
2. 온라인 처리
3. 분산 처리
일괄 처리 시스템
- 급여 명세서나 납세 고지서 출력
- 번호와 같이 순차 접근 방법을 사용하는 업무에 적합
- 작업들을 한데 모아 일괄적 처리하여 낮은 처리 비용
- 시간당 처리되는 작업 수가 많게 되어 높은 시스템 성능
- 사전 준비 작업 필요: 원시 데이터의 수집, 분류 정리하여 파일에 수록
온라인 처리 시스템
- 온라인 실시간 처리: 데이터 생성 후 컴퓨터는 즉시 처리
- 항공권 좌석 예약, 은행 입출금 업무, 쇼핑몰
- 통신 제어기가 필요하여 구조가 복잡
- 응답시간 최소화 필수로 높은 처리 비용
- 보수, 유지, 회복이 매우 복잡
- 사용자 중심의 처리 방식: 데이터 분류 및 정리 작업 절약, 입력 시에 데이터 오류 즉시 발견, 질의/갱신을 통한 데이터 최신성을 편리하게 유지
분산 처리 시스템
- 네트워크로 연결시켜 마치 하나의 시스템처럼 데이터를 처리
- 분산처리기 = 지역 컴퓨터
- 분산 데이터 베이스: 데이터는 가장 많이 이용되는 장소에 저장, 사용자 입장에서는 논리적으로 하나의 데이터베이스로 취급되도록 함
- 통신 네트워크: 논리적으로 한 시스템처럼 운영되도록 하는 네트워크
- 지역 문제 발생에 대한 신속한 조치
- 지역 업무에 대한 명확한 책임 구분
- 새로운 응용에 대한 모듈식 구축 용이
- 장애에 대한 자원 재편성으로 신뢰성 증대
- 상이한 하드웨어 허용으로 지속적 확장 발전 가능
- 컴퓨터 및 통신 비용이 저렴해지고 네트워크의 신뢰성과 융통성이 증진됨에 따라 분산 체제는 보편화되고 있음
분산 컴퓨팅의 발전
중앙 집중 컴퓨팅
- 중앙의 대형 컴퓨터에 직접 접속하여 작업을 수행
- 중앙 시스템에 대한 의존도 높음
- 사용자가 증가에 따라 컴퓨팅 파워 증가
클라이언트/서버 컴퓨팅
- 일정한 작업을 여러 컴퓨터에 분배
- 장점: 서버의 부담 경감
- 단점: 서버의 데이터베이스 로직에 의존적
멀티 티어 방식 (미들웨어 방식)
- 중간 연결 기능을 갖는 미들웨어를 만듦
- 단점: 로컬 네트워크에서는 잘 작동되나 인터넷을 통한 엑세스는 잘 지원 못함
클라우트 컴퓨팅 (웹 서비스)
- xml과 인터넷 프로토콜을 이용하여 분산된 서비스들 간 상호 연동이 가능케 하는 표준 기술
- 서비스 지향 아키텍쳐와 open api를 적용하는데 적합한 기술
- 현재 주요 기업들이 웹 서비스 기술을 기반으로 soa, open api, 클라우드 컴퓨팅 플랫폼을 구현하고 있음
데이터 베이스 이론
- 1960년대 부터 이론 정립
- 정보처리기사, 기술사, 국가전산직
- DB 설계 및 구축, DBMS 기술
- 실무영역: DB 개발자, DB 관리자, 데이터 엔지니어, 데이터 분석가, 기업/공공기관 전산실
데이터베이스란?
- 어느 한 조직의 여러 응용 시스템들이 공용할 수 있도록 통합 및 저장된 운영 데이터의 집합
1. 데이터 베이스는 통합 데이터: 원칙적으로 중복 x, 필요에 따라 통제된 중복
2. 데이터 베이스는 저장 데이터: 저장 매체에 저장
3. 데이터 베이스는 운영 데이터: 조직의 기능을 수행하기 위해서 반드시 유지해야 될 데이터
4. 데이터 베이스는 공용 데이터: 여러 응용 시스템들이 공동으로 이용하는 데이터
데이터베이스의 특성
1. 실시간 접근성: 비정형 질의어에 대한 실시간 처리로 응답 가능
2. 계속적인 변화: 동적이며 삽입/삭제/갱신으로 항상 그 내용이 변함
3. 동시 공용: 여러 사용자가 동시에 접근
4. 내용에 의한 참조: 내용 검색
데이터 베이스의 개념적 구성
- 데이터 베이스는 개념적으로 개체와 관계로 구성
- 개체: 현실세계에 대해 사람이 생각하는 개념이나 정보의 단위 (컴퓨터가 취급하는 파일의 레코드에 대응), 하나의 개체는 하나 이상의 속성, 즉 애트리뷰트로 구성
- 학생이라는 개체: 학번, 성명, 전화번호라는 3개의 속성들로 구성, 여기서 속성들은 개체가 가지고 있는 성질이나 상태를 나타내고 있음
- 각 속성들(학번, 성명, 전화번호)은 그 자체로는 큰 의미있는 정보를 제공해주지 못하지만 이것들이 모여 학생이라는 개체를 구성하여 표현할 때는 상당한 의미를 제공
- 개체 타입은 논리적인 형태를 말하고 개체 인스턴스들은 데이터베이스에 저장되는 구체적인 값들
관계
- 속성 관계: 속성들 간의 관계
- 개체 관계: 개체 집한 간 관계
- 데이터 베이스에서는 일반적으로 개체 관계만 명시적으로 취급하고 속성 관계는 레이블 없이 묵시적으로 표현
- 관계는 정보를 추출하는데 중요한 역할
전통적인 화일 시스템
- 기존 화일 시스템의 문제점: 데이터에 대한 응용프로그램의 의존도가 높음
- 응용 프로그램과 파일 시스템 간으 데이터 종속성이 높음
데이터 종속성, 데이터 중복성
- 데이터 종속성: 응용 프로그램은 데이터의 구성이나 접근방법에 맞게 작성되어야 함, 데이터의 구성이나 접근 방법을 변경할 때는 응용 프로그램도 같이 변경되어야 함
- 데이터 중복성: 같은 내용의 데이터라도 각 응용 프로그램마다 별도의 화일로 만들어 중복되는 경우가 많이 생김, 이와 같이 중복되게 저장 관리되는 것을 데이터 중복성이라 함
데이터 중복성이 나쁜 이유
1. 일관성: 데이터 간 불일치 발생 가능
2. 보안성: 같은 데이터에 같은 보안 유지가 어려움
3. 경제성: 추가적인 저장 공간이 필요, 비싼 갱신 비용 문제
4. 무결성: 데이터의 정확성을 유지하기 어려움
데이터 베이스 관리 시스템
- 기존의 화일 시스템에서 야기되는 데이터 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
- 응용 프로그램들이 데이터 베이슬르 이용하기 위해서는 DBMS를 통해서만 가능
- 데이터 베이스의 구성, 접근방법, 관리 유지에 대한 모든 책임을 DBMS가 가짐
DBMS의 필수 기능
1. 정의 기능
- 데이터 베이스 구조를 정의할 수 있는 기능
- 데이터 정의 언어(DDL)를 사용
2. 조작 기능
- 데이터 베이스를 접근하고 조작할 수 있는 기능
- 데이터 조작 언어(DML)를 사용
3. 제어 기능
- 정확성과 안전성을 유지할 수 있는 기능
- 데이터 제어 언어(DCL)를 사용
DBMS의 장점
1. 데이터 중복의 최소화
2. 데이터의 공용
3. 데이터의 일관성 유지
4. 데이터의 무결성 유지
5. 데이터의 보안 보장
6. 표준화 용이
7. 데이터의 독립성 제공
DBMS의 단점
1. 운영비의 증대
2. 자료 처리 방법이 복잡
3. 백업과 회복 기법이 어려움
4. 시스템의 취약성
데이터 베이스의 DBMS 저장
- 데이터 베이스 값들은 처리를 위해 어떠한 구조로 DBMS에 저장
- 사용자의 입장 또는 DBMS의 입장에 따라 논리적 구조와 물리적 구조로 구별
1. 논리적 구조: 사용자가 생각하는 데이터의 논리적 표현, 사용자 입장에서 보는 구조로서 데이터가 배치되어 있다고 간주하는 가상적인 구조
2. 물리적 구조: 디스크와 같은 저장 장치 위에 물리적으로 저장되어 있는 데이터의 실제 구조, DBMS 입장에서 본 구조로서 저장 데이터의 물리적 배치를 표현
데이터 독립성
- 데이터의 논리적인 구조나 물리적인 구조가 변경되더라도 응용 프로그램에는 영향을 주지 않는 것
1. 논리적 데이터 독립성: 논리적 구조를 변경시키더라도 기존 응용 프로그램들에는 영향을 주지 않는 것
2. 물리적 데이터 독립성: 저장 장치나 새로운 접근 기법의 개발로 성능 개선을 위해 물리적 구조를 변경하더라도 이를 이용하는 응용프로그램들에는 영향을 주지 않는 능력, 이는 논리적 구조에도 영향을 주어서는 안됨, 저장장치의 효율적 개발이 가능
사상
- 논리적 데이터 독립성과 물리적 데이터 독립성은 하나의 논리적 구조로부터 여러가지 다양한 물리적 구조를 지원할 수 있는 사상(mapping) 능력이 있어야 가능
1. 논리적 구조 사상: 논리적 데이터 독립성을 지원
2. 물리적 구조 사상: 물리적 데이터 독립성을 지원
DBMS의 발전 과정
- 아직까지 현장에서는 주로 관계형 RDBMS을 사용
데이터 베이스
- 스키마: 데이터베이스 구조와 데이터 제약조건에 대한 논리적인 정의를 기술하는 것
- 스키마에는 개체, 속성, 관계에 대한 명세와 유지조건을 포함
1. 외부 스키마: 각가의 사용자나 응용 프로그래머가 접근하는 데이터베이스의 논리적인 서브스키마ㅡㄹ 정의
2. 개념 스키마: 조직 전체의 총괄적인 입장에서 본 데이터베이스를 기술
3. 내부 스키마: 개념 스키마에 대한 내부 물리적인 저장 구조를 기술
데이터 베이스 언어
1. 데이터 정의어: DDL, 데이터베이스 스키마를 컴퓨터가 이해할 수 있게끔 기술하는데 사용
2. 데이터 조작어: DML, 데이터 처리(검색, 삽입, 삭제, 변경)를 지원, 절차적(범용 프로그램 언어 속에 삽입된 형태로 사용)/비절차적(일반 사용자가 대화식으로 사용) 데이터 조작어
3. 데이터 제어어: DCL, 데이터 제어(보안, 무결성, 회복, 병행수행)를 정의하고 기술하는 언어
- 이와 같이 정의어/조작어/제어어로 구별되지만 현실적으로는 이들이 별도 언어로 존재하지 않고 하나의 표준화 언어(ex: SQL) 안에서 통합되어 사용
일반 사용자
- 비절차적 DML 언어(query language)를 통해서 데이터베이스를 접근
응용 프로그래머
- 범용 프로그래밍 언어와 DBMS의 절차적 DML 언어를 사용하여 DB를 접근하고 개발하는 사람
데이터 베이스 관리자
- DDL과 DCL을 통해 DB를 정의하고 제어하는 사람
- 데이터 베이스 시스템의 관리/운영에 대한 모든 책임을 지고 있는 사람
1. DB설계와 운영
2. 행정적인 업무(표준화설정, 불평 해결_
3. 시스템 성능 감시 및 각종 통계 정보 분석
데이터 모델
관계형 데이터 모델
- 1970년 IBM의 E.F.Codd에 의해 처음 제안
- 외형적으로는 단순한 테이블의 구조로 표현하지만 내부적으로는 릴레이션과 수학적인 이론을 기초로 하고 있음
- 테이블: 릴레이션(relation)
- 테이블의 열(필드): 애트리뷰트(attribute)
- 테이블의 행(레코드): 튜플(tuple)
- 값: 밸류(value), 더 이상 분해할 수 없는 원자값(atomic value)만을 허용
- 도메인(domain): 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자들의 집합
- 한 릴레이션에서는 모든 애트리뷰트들의 이름이 반드시 달라야 함
- 릴레이션의 차수(degree)는 애트리뷰트(또는 도메인)의 개수
- 릴레이션의 카디널리니(cardinality)는 튜플의 수로 정의
릴레이션의 특성
1. 튜플의 유일성: 한 릴레이션에 포함된 튜플들은 모두 상이, 두개의 똑같은 튜플은 한 릴레이션에 포함될 수 없음
2. 튜플의 무순서성: 한 릴레이션에 포함되어 있는 튜플 사이에는 순서가 x, 릴레이션에서 튜플 순서가 바뀌어도 동일한 릴레이션으로 인식
3. 애트리뷰트의 무순서성: 한 릴레이션을 구성하는 애트리뷰트 사이에는 순서가 x, 애트리뷰트는 순서가 아니라 이름에 의해 참조
4. 애트리뷰트의 원자성: 모든 애트리뷰트 값은 원자값, 애트리뷰트의 값으로 반복 그룹 즉 집합은 될 수 없음
정규화 릴레이션
- 왼쪽은 잘못된 정규화 릴레이션 (교수번호가 그룹되어 있음, 오른쪽처럼 나뉘어져야 o)
- 정규화 릴레이션: 반복그룹(집합)을 애트리뷰트 값으로 허용하지 않는 릴레이션
- 정규화: 비정규 릴레이션을 정규 릴레이션으로 변환하는 과정
- 널(null) 값: 애트리뷰트의 값이 없는 경우 사용하는 특별한 값
학사 관계형 데이터베이스 만들기
- 관계형 데이터 모델은 개체와 관계가 모두 테이블로 표현
- 개체 릴레이션: 학생, 교수, 과목
- 관계 릴레이션: 지도, 강의, 수강
- 릴레이션 스키마: 개체와 관계에 대한 정의만 명세한 것
- 튜플의 유일성을 보장하기 위해 학번, 교수번호, 과목코드와 같은 유일하게 구분할 수 있는 애트리뷰트 삽입
- 개체 및 속성 관계 다이어그램으로부터 각각 4개의 애트리뷰튜르로 작성
- 릴레이션과 애트리뷰트 이름은 DDL 작성을 위해 한글(영어)로 작성
데이터 베이스의 키 개념
- 튜플의 유일성으로 인해 튜플들은 모두 상이
- 실제로는 하나 또는 몇개의 애트리뷰트만 이용해도 튜플들을 유일하게 식별 가능
- 키: 튜블들을 유일하게 식별할 수 있는 애트리뷰트 집합
후보키
- 릴레이션에서 각 튜플들을 유일하게 식별해주는 몇개의 애트리뷰트들의 조합, 다음의 2가지 성질을 만족해야 됨
1. 유일성: 몇개의 애트리뷰트 조합으로 이루어진 후보키만 비교하더라도 그 튜플을 유일하게 표현할 수 있어야 함
2. 최소성: 후보키는 튜플들을 유일하게 식별하는데 꼭 필요한 애트리뷰트들로만 구성
- 후보키가 둘 이상 되는 경우에 그 중에서 어느 하나를 선정하여 기본키라 지정하면 나머지 후보키들은 대체키가 됨
- 기본키: 그 키 값을 가진 튜플을 바로 지정할 수 있음
외래키
- 예시로 강의 릴레이션의 교수번호 애트리뷰트는 교수 릴레이션의 기본키인 교수번호를 참조하는 외래키
- 강의 릴레이션의 교수번호 값은 반드시 교수 릴레이션의 어떤 튜플을 나타내는 교수번호 값으로 존재해야 함
- 강의 릴레이션의 과목코드 값은 반드시 과목 릴레이션의 기본키인 과목코드 값으로 나타나 있어야 함
무결성 제약조건
1. 개체 무결성 제약조건: 기본키에 속해 있는 애트리뷰트는 null값이나 중복값을 가질 수 없음
2. 참조 무결성 제약조건: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음
- 데이터베이스가 삽입/삭제/변경 등의 연산을 통해 변경되어도 무결성 제약조건이 유지되어야 함
변환된 관계형 데이터 스키마
- 독립된 릴레이션으로 관계를 표현
공통 애트리뷰트로 관계를 표현
- 독립된 릴레이션으로 관계를 표현하지 않고 두 릴레이션에 공통되는 애트리뷰트(키)를 공통으로 갖게 함으로써 묵시적으로 관계를 나타낼 수 있음
- 1:n인 경우 n쪽의 릴레이션에 키를 첨가시키는 것이 효율적
'공공 데이터 교육' 카테고리의 다른 글
공공 데이터 10일 (0) | 2021.07.01 |
---|---|
공공 데이터 9일 (0) | 2021.06.29 |
공공 데이터 4-7일 (0) | 2021.06.23 |
공공 데이터 3일 (0) | 2021.06.18 |
공공 데이터 2일 (0) | 2021.06.15 |