[1] What database is? - 서로 관련있는 데이터들의 모임
- 전화번호부
- 사전
- 메일
- 도서관 도서 목록
- 학적부
- 일기
- 신문
* 데이터베이스 관리 시스템
(DBMS ; DataBase Management System)
- 데이터베이스를 구축해서 관리 및 사용 할 수 있는
프로그램들
- Oracle, MSSQl, MySql
* 데이터베이스 시스템 (DBS ; DataBase System)
- 사용자가 데이터베이스 관리 시스템을 통하여
물리적인 데이터베이스와 소통하는 형태의 시스템
* 데이터베이스 관리 시스템의 장점
- 데이터의 중복성/불일치성 감소
- 데이터 보안
- 질의 처리에 효율적인 저장 구조
- 백업 및 복구
- 다양한 인터페이스
- 일관 데이터를 유지
* 데이터베이스 관리 시스템의 단점
- 자원이 많고 복잡하며 비싸다
* 데이터베이스 시스템 사용
- 데이터베이스와 응용 프로그램이 매우 단순하고
변경이 별로 없는 경우
- 단일 사용자만이 데이터베이스에 접근하는 경우
- 실시간성이 제일 중요한 시스템의 경우
[2] 데이터베이스 시스템
* 데이터베이스 스키마(Schema)
- 데이터베이스의 구조와 제약조건에 대해서
분명하고 자세하게 기술한 것
- 구체적으로 데이터베이스를 구성하는
애트리뷰트와 관계 등의 집합
- 표에서 제목에 해당
* 데이터베이스 상태
- 특정 시점의 데이터베이스 내용
- 일반적으로 데이터베이스 스키마는 잘 변하지 않지만,
데이터는 수시로 입력/삭제 되므로
인스턴스라고 부르기도 함
* 데이터베이스 언어 : 데이터베이스를 정의하고, 모든 저장 데이터베이스의
접근을 지원하는 통신 수단
- 데이터 정의어(DDL; Data Definition Language)
- 데이터 조작어(DML; Data Manipulation Language)
- 데이터 제어어(DCL ; Data Control Language)
(1) 데이터 정의어(DDL; Data Definition Language)
- 데이터베이스 관리자나 설계자가 데이터 간의 관계를
정의하거나 이미 정의된 데이터베이스의 구조 변경 및
수정에 사용
(2) 데이터 조작어(DML; Data Manipulation Language)
- 데이터베이스 사용자가 응용 프로그램이나 질의어를
이용해서 저장된 실제 데이터를
검색, 삭제, 변경(SELECT, DELETE, UPDATE) 또는 입력
(INSERT) 등을 수행할 때 사용
(3) 데이터 제어어(DCL ; Data Control Language)
- 데이터베이스 관리자가 데이터를 관리하기 위해
데이터의 보안, 무결성, 데이터 복구, 병행 수행 제어
등을 정의하거나 사용자 권한 설정에 사용
* 데이터베이스 사용자 (Database User)
- 구축된 데이터베이스를 사용하는 사람들의 총칭
- 데이터베이스 관리자, 시스템 프로그램 개발자,
업무 분석가, 응용 프로그램 개발자, 일반 사용자
* 데이터베이스 설계자 (Database Designer)
- 데이터베이스 요구사항을 분석해서 데이터베이스의
개념적, 물리적 스키마의 설계를 책임
* 최종 사용자(End User)
- 일반 사용자, 초보 사용자, 전문 사용자 등
- 데이터베이스에 질의/갱신 연산을 주로 하는
단순 사용자
* 시스템 분석가/응용 프로그램 개발자
- 최종 사용자를 위해 잘 정의된 기능의 응용 프로그램을
설계/구현
[3] 데이터베이스 추상화와 데이터 모델
* 데이터베이스 단위
- 필드(Field) : 문자와 워드로 구성된 컴퓨터 상에
정보를 표현할 때 의미가 있는
데이터 표현의 최소 단위
- 레코드(Record) : 하나 이상의 필드의 모임
- 파일(File) : 레코드들이 모여서 구성된 관련 레코드들의 집합
* 데이터베이스 추상화와 데이터 독립성
- 추상화 : 알 필요가 없는 복잡한 부분을 은폐 하는 것 (View 사용 등)
- 데이터 독립성 : 특정 스키마를 변경할 때
상위 단계의 스키마에 영향을
미치지 않는 것
그러므로, 데이터베이스의 구조를 변경하더라도
사용자의 사용 방법이나 응용 프로그램의 구조 변경이
필요없도록 하는 것.
- 3계층 스키마 : 사용자의 응용 프로그램과 물리적 데이터베이스를 분리
하는 것이 목적
(1) 내부 단계 : 내부 스키마를 가짐
데이터베이스의 물리적인 저장 구조 기술 및
물리적 데이터 모델 사용
데이터베이스 접근 경로 기술
(2) 개념 단계 : 개념 스키마를 가짐
전체 데이터베이스 구조 기술
(단순히 스키마라고도 함)
엔티티, 관계, 제약조건, 무결성 규칙 등의
기술에 중점
ERD와 같은 고수준 데이터 모델 또는
구현 데이터 모델로 표현됨
3) 외부 단계 : 외부 스키마와 뷰를 가짐
사용자나 응용 프로그램 개발자가
관심을 갖는 데이터베이스 부분을 기술하고
사용자에게는 데이터베이스의 나머지 부분이
감춰짐
* 논리적 데이터 독립성 (Logical Data Independence)
- 외부 스키마나 응용 프로그램을 변경하지 않고
개념 스키마 변경 가능
- 고수준 데이터 독립성
* 물리적 데이터 독립성 (Physical Data Independence)
- 개념 스키마를 변경하지 않고 내부 스키마 변경 가능
- 저수준 데이터 독립성
* 데이터 모델
- 실세계를 데이터베이스화 할 때 어떻게 진행할지 결정하는 기준
ex) 네비게이션 시스템
목표에서 멀어지는 쪽으로는 가지 않는다' 험한 길은 가지 않는다' '막힌 길은 가지 않는다'
- 데이터베이스를 구성하는 데이터의 성격과 의미, 데이터 간의 관계, 그에 따른 제약 조건 등에 따라
데이터베이스화가 이루어지도록 함
- 분류 : 물리적 모델, 논리적 모델, 개념적 데이터 모델
(1) 물리적 모델
- 데이터가 어떻게 저장되는지에 관심
- 레코드의 형식, 레코드 순서, 접근 경로 같은 정보
(2) 개념적 데이터 모델
- 사용자가 데이터를 어떻게 인식하는지에 관심
- 데이터 저장은 나타내지 않음
- 엔티티 관계(Entity Relationship) 데이터 모델