Database 실기
· 약 55분
DB 정의
- 통합된 데이터(Integrated Data): 검색의 효율성을 위해 중복이 최소화된 데이터의 모임
- 저장 데이터(Stored Data): 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
- 운영 데이터(Operational Data): 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
- 공유 데이터(Shared Data): 여러 응용 프로그램들이 공동으로 사용하는 데이터
DB 특징
- 실시간 접근성(Real Time Accessibility): 사용자의 질의에 대해 즉시 처리하여 응답하는 특징
- 계속적인 진화(Continuous Evolution): 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지하는 특징
- 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 원하는 데이터를 공용할 수 있는 특징
- 내용에 의한 참조(Content Reference): 주소나 위치에 의해서가 아니라 사용자가 요구하는 내용에 따라 참조하는 특징
- 데이터의 논리적, 물리적 독립성(Independence)
- 논리적 독립성: 응용 프로그램과 DB 를 독립시킴으로써 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않는 특징
- 물리적 독립성: 응용 프로그램과 보조기억장 치와 같은 물리적장치를 독립시킴으로써 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경될 수 있는 특징
데이터 언어
- Data Language
- DDL(데이터 정의어): 데이터베이스를 구축하거나 변경할 목적으로 사용하는 언어
- DML(데이터 조작어): 데이터 처리를 위해 응용 프로그램과 DBMS 사이의 인터페이스를 위한 언어
- DCL(데이터 제어어): 보안 및 권한제어, 무결성, 회복, 병행제어를 위한 언어
DB 사용자
- DB 관리자(DBA): DDL 과 DCL 을 통해 DB 를 정의하고 제어하는 사람 또는 그룹
- 데이터 관리자(Data Administrator): 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안업무 등 데이터에 대한 관리를 총괄하고 정보 활용에 대한 계획 수립 및 통제를 수행한다.
- 데이터 설계자(Data Architect): 데이터의 구조를 체계적으로 정의하는 사람
- 응용 프로그래머: 호스트 프로그래밍 언어에 DML 을 삽입하여 DB 에 접근하는 사람
- 일반 사용자(End User): 질의어를 통해 DBMS 에 접근하는 사람
DBMS 개념
- 사용자와 DB 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB 를 관리해주는 소프트웨어
- 기존 fs 가 갖는 데이터의 종속성과 중복성문제를 해결하기 위한 시스템으로 모든 응용 프로그램들이 DB 를 공유할 수 있도록 관리해준다.
- 데이터 종속성으로 인한 문제점: 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때 응용 프로그램도 같이 변경해야하는 문제점
- 데이터 중복성으로 인한 문제점: 중복된 데이터 간에 데이터의 정확성이나 무결성을 효율적으로 유지할 수 없다는 문제점
DBMS 필수기능
- 정의 기능(Definition Facility): 데이터의 타입과 구조, 데이터가 DB 에 저장될 때의 제약조건 등을 명시하는 기능
- 조작 기능(Manipulation Facility): 체계적 데이터 처리를 위해 데이터 접근 기능(CRUD)을 명시하는 기능
- 제어 기능(Control Facility): 데이터의 정확성과 안정성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행제어 등을 명시하는 기능
DSMS
- 데이터 스트림 관리 시스템(Data Stream Management System)
- 대량의 스트림 데이터를 처리하고 관리하는 시스템
- 온라인상의 데이터 스트림이라는 동적인 특성을 가진 데이터를 처리하고 관리하는 시스템
- 입력 순서에 따라 데이터의 처리결과가 달라질 수 있다.
스키마
- DB 의 구조와 제약 조건에 대한 전반적인 명세
- 개체, 속성, 관계 및 제약조건 등에 관해 전반적으로 정의
- 외부 스키마, 개념 스키마, 내부 스키마
- 개체: 현실 세계의 객체로 유형 또는 무형의 정보를 대상으로 존재하며 서로 구별될 수 있는 것
- 속성: 개체의 특성이나 상태를 기술하는 것으로 데이터의 가장 작은 단위
- 관계: 2 개 이상의 개체 사이에 연관성을 기술한 것
스키마 특징
- 데이터의 구조적 특성을 의미
- 데이터 사전에 저장된다.
- 현실세계의 특정한 한 부분의 표현으로 특정 데이터 모델을 이용해 만들어진다.
- 시간에 따라 불변적이다.
- 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술
데이터 사전
- 데이터 사전은 DB 에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지관리하는 시스템
- 시스템 카달로그
메타 데이터
- 데이터에 관한 데이터
- 저장되는 데이터와 직간접적으로 관계가 있는 정보를 제공하는 데이터
- MARC(Machine Readable Cataloging): 목록 레코드를 식별하여 축적유통할 수 있도록 코드화한 메타 데이터
- DC(Dublin Core): 네트워크 환경에서 각종 전자 정보를 기술하는 메타 데이터
- ONIX(ONline Information eXchange): 유통에 관한 통계와 체계적인 정보를 취급함으로써 정상적인 유통 및 관리를 위한 메타 데이터
- MODS(Metadata Object Description Schema): 디지털 도서관의 범용 서지 정보 표준 메타 데이터
메타 데이터의 상호 운용성
- 하나의 표준적인 메타 데이터로 통합하여 표현하는 방법
- 상호 매핑을 통해 해결하는 방법
- MDR에 의한 해결방법
- Meta Data Registry
- 메타 데이터의 등록과 인증을 통해 메타 데이터를 유지관리하며, 메타 데이터의 명세를 공유하는 레지스트리
스키마 3 계층
외부 스키마
- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB 의 논리적 구조를 정의
- 하나의 DBMS 에는 여러 개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마는 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.
개념 스키마
- 개체 간의 제약 조건을 나타내고 DB 의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의
- DB 의 전체적인 논리적 구조로 데이터를 통합한 조직 전체의 DB 명세로서 하나만 존재한다.
- 기관이나 조직의 관점에서 DB 를 정의
내부 스키마
- DB 의 물리적 구조를 정의
- 물리적 저장장치의 관점에서 본 전체 DB 의 명세로 하나만 존재
- 개념 스키마의 물리적 저장 구조에 대한 정의를 기술
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
DB 설계
- DB 스키마를 개발하는 과정
- 요구 조건 분석(Requirement Analysis)
- 개념적 설계(Conceptual Design)
- 논리적 설계(Logical Design)
- 물리적 설계(Physical Design)
- DB 구현(Database Implementation)
요구 조건 분석
- DB 를 사용할 사람이 필요로 하는 용도를 파악하는 작업
개념적 설계
- 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
논리적 설계
- 시스템이 지원하는 논리적 데이터 구조로 변환시키는 과정
물리적 설계
- 저장 구조와 접근 경로를 결정하는 과정
- 응답 시간, DB 파일과 접근 경로 구조에 대한 저장 공간의 효율성, 트랜잭션 처리도 등을 고려
DB 구현
- DB 를 실제로 구축하는 과정
- DBMS 의 DDL 로 기술된 명령문을 실행시켜 DB 스키마와 DB 파일을 생성
- DML 로 기술된 명령문을 가지는 프로그램 코드가 작성된다.
ER 모델
- 네모: 개체 타입(Entity Type)
- 마름모: 관계 타입(Relationship Type)
- 타원: 속성
- 밑줄타원: 기본키 속성
- N:M: 개체 타입 간의 연관성
- 선: 개체 타입과 속성을 연결
- ISA: 특정 개체는 서로 구별되는 여러 하위 개체로 나눠질 수 있는데 이러한 상위 개체와 하위 개체 간의 관계를 ISA 관계라고 한다.
- ex) 학생 개체 => 재학생, 휴학생, 졸업생 개체
개체 및 개체 타입
- 개체는 현실 세계의 객체로 유형 또는 무형의 정보 대상으로 존재하며 서로 구별될 수 있는 것
- 개체의 특성을 나타내는 속성을 갖는다.
- 하나의 개체를 개체 어커런스 = 개체 인스턴스라한다.
- 개체 어커런스들의 집합에 대한 공통의 특성을 갖는 개체 클래스를 개체 타입이라 한다.
관계 및 관계 타입
- 관계는 2 개 이상의 개체 사이에 존재하는 연관성
- 개체 타입의 개수에 대한 차수와 개체 어커런스의 개수에 대한 대응 카디널리티를 갖는다.
- 차수에 따른 관계 종류
- 단항(Unary): 관계에 참여하고 있는 개체타입이 1 개인 관계
- 이항(Binary)
- 삼항(Ternary)
- n 항(n-ary)
- 1:1: 두 개체 타입이 모두 하나씩의 개체 어커런스를 갖는 관계
- 1:N: 한 개체 타입은 하나의 개체 어커런스, 다른 한 개체 타입은 여러개의 개체 어커런스를 갖는 관계
- N:M: 두 개체 타입 모두 여러 개의 개체 어커런스를 갖는 관계
- ISA
ISA
- disjoint: 상위 개체의 멤버가 하나의 하위 개체에만 포함될 때
- overlapping: 상위 개체의 멤버가 여러 하위 개체에 포함될 때
- total: 상위 개체의 멤버가 하위 개체에 속할 때
- partial: 상위 개체의 멤버가 하위 개체에 속하지 않을 때
속성
- 개체의 특성이나 상태를 기술한 것
- 도메인: 속성이 가질 수 있는 모든 가능한 값들의 집합
- 단순 속성: 더 이상 다른 속성으로 나눌 수 없는 속성
- 복합 속성: 2 개 이상 속성들로 분해할 수 있는 속성
릴레이션
- 데이터를 원자값으로 갖는 이차원의 테이블
- 릴레이션의 구조는 물리적인 구조를 나타내는 것이 아닌 논리적 구조
- 릴레이션 스키마: 릴레이션 구조
- 릴레이션 인스턴스: 실제 값
- 속성: 릴레이션의 열(Column)
- 튜플: 릴레이션의 행(Row)
ER 모델을 관계형 데이터 모델로 변환
- 개념적인 데이터 모델인 ER 모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것
- 매핑 룰(Mapping Rule)이라고 한다.
- N:M 관계이면 릴레이션 A 와 B 의 기본키를 모두 포함한 별도의 릴레이션으로 표현한다. 이 때 생성된 별도의 릴레이션을 교차 릴레이션 또는 교차 엔티티라고 한다.
관계의 표현
- 1:1(┼─┼): 양쪽에 반드시 1 개씩 존재
- 1:0 또는 1:1(┼─Θ├): 왼쪽에는 반드시 1 개, 오른쪽에는 없거나 1 개 존재
1:N(┼─<)
: 왼쪽에는 반드시 1 개, 오른쪽에는 반드시 여러개- 1:1 또는
1:N(┼─┤<)
: 왼쪽에는 반드시 1 개, 오른쪽에는 1 개 또는 여러개 존재 - 1:0 또는 1:1 또는
1:N(┼─Θ│<)
: 왼쪽에는 반드시 1 개, 오른쪽에는 0 개 또는 1 개 또는 여러개 존재
식별관계
- Identifying
- 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 외래키이면서 동시에 기본키가 되는 관계
- ER 도형에서 실선으로 표시
비식별관계
- Non-identifying
- 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계
- B 개체의 존재 여부는 A 개체의 존재 여부와 관계없이 존재
- ER 도형에서 점선으로 표시
슈퍼키
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.
후보키
- Candidate Key
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성과 최소성을 모두 만족한다.
복합키
- 2 개 이상의 필드를 조합하여 만든 키
기본키
- Primary Key
- 후보키 중에서 특별히 선정된 키
- 중복된 값을 가질 수 없다.
- NULL 일 수 없다.
대체키
- Alternate Key
- 대체키는 후보키 중에서 선정된 기본키를 제외한 나머지 후보키
외래키
- Foreign Key
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
무결성
- Integrity
- DB 에 저장된 데이터 값과 그 것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미
- 무결성 제약조건(Constraint): DB 에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 DB 에 저장되는 것을 방지하기 위한 조건
무결성 종류
- NULL 무결성: 특성 속성 값이 NULL 이 될 수 없음
- 고유 무결성(Unique): 특정 속성에 대해 각 튜플이 갖는 속성 값이 서로 달라야 한다.
- 도메인 무결성: 특정 속성의 값이 그 속성이 정의된 도메인에 속해야한다.
- 키 무결성: 하나의 릴레이션에는 적어도 하나의 키가 존재해야한다.
- 관계 무결성(Relationship): 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정
- 참조 무결성(Referential): 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
- 개체 무결성(Entity): 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다.
관계대수
- Relational Algebra
- 관계형 DB 에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
- 기본연산: SELECT, PROJECT, JOIN, DIVISION
- 집합연산: UNION, DIFFERENCE, INTERSECTION, CARTESIAN PRODUCT
순수 관계 연산자
SELECT
- 릴레이션에 존재하는 튜플들 중 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만든다.
- 튜플을 구하는 것이므로 수평 연산
- 시그마 σ를 사용한다.
- σ
<조건>(테이블)