1 장 통계데이터베이스
1.1 데이터베이스개요
- 데이터베이스 (database; DB)
- 여러 응용프로그램 또는 사용자들이 공유/이용할 수 있도록 체계적으로 통합, 저장한 데이터들의 집합
- 데이터베이스의 특징
- 최소한의 중복(minimal redundancy)만을 허용하는 통합 데이터(integrated data)
- 보조기억공간(디스크 등)에 저장하여, 필요 시에 검색하는 저장 데이터(stored data)
- 특정 단체의 작업 수행에 필요한 운영 데이터(operational data)
- 여러 사용자가 응용 프로그램, 응용 시스템을 통해 공동으로 사용하는 공용 데이터(shared data)
- 데이터베이스 관리시스템(DBMS; Database Management System)
-
데이터베이스를 관리하는 소프트웨어시스템으로 DB에 접근하여 사용하기 편리하도록 만들어진 애플리케이션으로 구성된 시스템
- DBMS의 유형
- 계층형(Hierarchical), 망형(Network), 관계형(Relational) 등이 있고 대부분의 DBMS는 관계형 DBMS임
- DBMS의 제품
-
DBMS는 아래의 표와 같이 다양하며 제품별 특징이 있음
DBMS 특징 MySQL 오픈소스와 상용으로 구분 MariaDB 오픈소스, MySQL과 유사, 초기 개발자가 만듦 PostgreSQL 오픈소스, Ubuntu Linux에 기본 탑재 Oracle 주로 상용, 시장 점유율 1위 SQL Server MS-Windows서버용, 중대형 Access MS-Windows PC용 SQLite 메모리 기반, 모바일, 오픈 소스(무료)
- DBMS의 활용 예
- 기업 : 제품 판매에 관한 데이터 유지
- 학교 : 학생에 관련된 (성적, 증명, 수업료 등) 정보 관리나 도서관의 목록, 대출 관리
- 항공사 : 비행 정보, 예약 상황 관리 등
- 통계학에서의 데이터베이스
- 대용량 데이터의 효율적인 관리 및 활용
- 분석용 데이터의 처리 및 분석 결과의 저장
- 데이터웨어하우스(data warehouse; DW)
- 분석을 위하여 여러 개의 데이터 저장소들에 흩어져 있는 각종 데이터를 하나의 저장소로 모은 데이터베이스
- 일반적인 운영계(operational) 데이터베이스와는 구별되는 분석계(analytical)데이터베이스
- Data warehousing: 데이터 웨어하우스를 구축하고 사용하는 프로세스
1.2 데이터 모델
데이터 모델 (data model): 현실 자료를 추상화하여 정형화된 형태로 표현하는 방식
데이터베이스 모델 (database model)
- DBMS가 지원하는 공식 언어로 기술된 DB 구조나 형식
- DBMS와 결합하는 데 사용되는 데이터 모델
관계형 데이터모델 (relational data model): 테이블 형식을 이용하여 데이터를 정의하고 설명하는 데이터 모델
관계형데이터 베이스: 관계형 데이터 모델을 이용한 데이터베이스
1.3 관계형데이터모델
관계형데이터모델에서의 용어
- 튜플(tuple, 레코드)
- 유일성(uniqueness) : 테이블 내에는 2개 이상의 동일 튜플이 존재할 수 없음
- 튜플들은 순서를 갖지 않음
- 속성(attribute, column, 통계데이터에서는 변수(variable))
- 순서를 갖지 않음
- 속성값(attribute value)은 반드시 원자값(atomic value)을 가져야 함
- 테이블스키마(schema) : 데이터베이스 관리 시스템에서 데이터 구조를 기술
- 데이터베이스스키마: 데이터베이스에서 테이블 스키마의 집합
- 스키마(schema): 구조와 표현법에 대한 정의
키(key) : 테이블에서 특정 튜플을 식별 가능하게 하는 속성의 집합. 다음과 같은 종류가 있음
- 슈퍼키(super key): 아무런 제약없이 튜플을 구분할 수 있는 속성의 집합, 예를 들면 주민등록번호, (학번, 주민등록번호)가 슈퍼키가 될 수 있음
- 후보키(candidate key): 키 중 최소한의 속성만으로 구성된 키 (ex. 주민등록번호)
- 기본키(primary key) : 후보키중 하나만을 선택하여 식별자로 사용
- 외래키(foreign key) : 다른 테이블의 기본키를 참조
기본키와 외래키
기본키와 외래키
1.4 SQL 개요
- SQL (Structured Query Language)
-
DBMS를 다루기 위한 표준언어, 응용 프로그램과 DBMS 사이의 중간 다리 역할 담당
SQL의 역할
1.4.1 SQL의 역할 분류
SQL은 (1) DBMS를 제어, (2) 데이터를 정의, (3) 데이터를 조작으로 분류할 수 있으며 각 역할에 따라 SQL은 세가지 언어로 구성
- 데이터제어 언어(Data Control Language; DCL)
- 데이터베이스에서 데이터 액세스를 제어
- 사용자의 특정 조작에 대한 권한부여(GRANT) 또는 박탈(REVOKE)
- 데이터정의 언어(Data definition Language; DDL)
- 데이터의 저장 구조를 정의하는 언어
- DB스키마, 테이블스키마를 정의, 수정, 삭제 / 인덱스의 생성 및 삭제하는 기능을 함
- 데이터조작 언어(Data Manipulation Language; DML)
- 데이터에 접근 및 조작하는 언어
- 튜플의 검색, 삽입, 삭제 수정과 같은 명령문
1.4.2 SQL 역할별 구문 작성법
SQL 데이터 제어문: 데이터베이스 객체 이용권한 부여
- GRANT - DENY - REVOKE GRANT CREATE TABLE TO ‘사용자 계정’SQL 데이터베이스/테이블 정의문: 데이터베이스 객체 생성, 삭제, 수정
- CREATE : 생성 - DROP : 삭제 - ALTER : 수정 CREATE DATABASE [데이터베이스_이름]SQL 데이터 조작문: 테이블 검색, 삽입, 갱신, 삭제
- SELECT - INSERT - UPDATE - DELETE SELECT * FROM ‘테이블_이름’