DongDD's IT

[정보처리기사 실기] 데이터베이스 - 데이터베이스, ER Model, 관계형 데이터 모델, Key, 무결성, 관계 대수 본문

자격증/정보처리기사

[정보처리기사 실기] 데이터베이스 - 데이터베이스, ER Model, 관계형 데이터 모델, Key, 무결성, 관계 대수

DongDD 2018. 4. 4. 14:18

[정보처리기사 실기] 데이터베이스



데이터베이스


- 상호 관련된 데이터들의 모임


1. 통합 데이터(Integrated Data)

- 중복이 최소화된 데이터들의 모임

2. 저장 데이터(Stored Data)

- 접근 가능한 저장 매체에 저장된 데이터

3. 운영 데이터(Operational Data)

- 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터

4. 공유 데이터(Shared Data)

- 여러 프로그램들이 공동으로 사용하는 데이터


특징


1. 실시간 접근성(Real Time Accessibility)

- 사용자의 요청에 대해 즉시 처리, 응답

2. 계속적인 진화(Continous Evolution)

- 항상 최신의 정확한 데이터를 동적으로 유지

3. 동시 공유(Concurrent Sharing)

- 여러 사용자가 데이터를 동시에 공용

4. 내용에 의한 참조(Content Reference)

- 데이터 참조 시 주소나 위치가 아닌 내용으로 참조

5. 독립성(Independence)

1) 논리적 독립성

- 응용 프로그램과 DB를 독립 -> DB의 논리적 구조를 변경해도 응용 프로그램에 영향 X

2) 물리적 독립성

- 응용 프로그램과 물리적 장치 독립 -> 새로운 물리 장치를 도입해도 응용 프로그램에 영향 X


데이터 언어


1. DDL(Data Definition Language)

- 구조, 형식, 접근 방식 등 데이터베이스를 구축, 변경하기 위한 언어

- DB의 논리적, 물리적 구조 정의, 변경

- 스키마 제약 조건 정의

- 데이터의 물리적 순서 규정

2. DML(Data Manipulation Language)

- 데이터 처리를 위한 언어(검색, 삽입, 삭제, 갱신)

- 절차적 DML : 사용자가 어떤(What) 데이터와 어떻게(How) 데이터를 구하는지 명시하는 언어

- 비절차적 DML : 사용자가 어떤(What) 데이터를 필요로 하는지만 명시하는 언어

3. DCL(Data Control Language)

- 보안, 권한 제어, 무결성, 회복, 병행 제어를 위한 언어


사용자


1. 데이터베이스 관리자(DBA)

- DDL, DCL로 DB를 정의하고 제어

- 설계, 관리, 운용, 통제, 감시, 성능분석

2. 데이터 관리자

- 데이터에 대한 정의, 체계화

- 데이터 관리, 통제

3. 데이터 설계자

- 데이터 구조를 체계적으로 정의

- 데이터 모델 생성

4. 응용 프로그래머

- 호스트 프로그래밍 언어에 DML을 삽입해 DB에 접근

5. 일반 사용자

- 쿼리문을 이용해 DB에 접근(삽입, 갱신, 삭제, 검색)



데이터베이스 관리 시스템(DBMS)


- 사용자-데이터베이스 관계에서 사용자의 요구에 따라 정보 생성, 데이터베이스 관리해주는 소프트웨어

- 기존 파일 시스템이 갖는 데이터 종속성, 데이터 중복성 문제 해결

-> 데이터 종속성 : 데이터 저장, 접근 방식 변경에 따라 응용도 수정해야함

-> 데이터 중복성 : 데이터의 중복으로 일관성 X, 동등한 보안 유지 X, 무결성 X


장점


- 무결성

- 실시간 처리

- 일관성

- 보안

- 논리적, 물리적 독립성



- 대용량 디스크로의 집중 접근 -> 과부하

- 비용이 큼

- 데이터 백업, 회복 어려움

- 시스템 복잡


스키마(Schema)


- 데이터베이스의 구조, 제약 조건에 대한 명세


특징


- 데이터 사전(Data Dictionary)에 저장

- 시간에 따라 불변하는 특성

- 데이터의 논리적 단위에 명칭 부여


Data Dictionary(시스템 카탈로그)


- DB에 저장되는 모든 data에 대한 정보를 유지, 관리하는 시스템

- 데이터에 관한 데이터(Metadata) 저장


Metadata format


1. MARC : 목록 레코드 식별 -> 축적, 유통을 위해 코드화한 메타데이터

2. DC(Dublin Core) : 네트워크 환경에서 전자정보를 기술한 메타데이터

3. ONIX : 정상적인 유통, 관리를 위한 메타데이터

4. MODS : 디지털 도서관 범용 서지 정보 표준 메타데이터(MARC, DC, ONIX를 절충 -> 상호운용성, 정밀성 만족)

ref) MDR : 등록과 인증을 통해 메타데이터를 유지, 관리


계층


1. 외부 스키마(= 서브 스키마)

- 사용자, 응용 프로그래머가 각자 필요로하는 DB의 논리적 구조 정의

- 하나의 DBMS에 여러 개의 외부 스키마 존재 가능, 하나의 외부 스키마는 여러 사용자에 의해 공유 가능

2. 개념 스키마

- 개체 간의 관계, 제약 조건, 접근 권한, 보안 정책 등에 대한 명세

- DBA에 의해 작성

3. 내부 스키마

- DB의 물리적 구조 정의

- 시스템 프로그래머, 시스템 설계자가 보는 관점의 스키마


데이터베이스 설계


- 데이터베이스 구조(스키마)를 설계, 개발하는 과정


1. 요구 조건 분석

- 사용자 요구 조건 분석 -> 요구 조건 명세 작성

2. 개념적 설계

- 개념 스키마 모델링, 트랜잭션 모델링

3. 논리적 설계

- 컴퓨터가 처리 가능한 데이터 형태로 DBMS가 지원하는 논리적 데이터 구조로 변환

- 정규화 과정, 트랜잭션의 기본과 인터페이스 설계

4. 물리적 설계

- DB 구조, 물리 스키마 설계

- 트랜잭션 Throughput 고려

- 트랜잭션 인터페이스로부터 상세 트랜잭션 정의

5. 데이터베이스 구현

- DDL로 스키마, DB 구축


ER(Entitiy Relationship) Model


- 개념적 데이터 모델

- 개체, 속성, 관계를 ER도형(ERD)으로 표현


1. 관계(Relationship)

- 개체 사이의 연관성

- 차수(Degree) : 관계에 참여하는 개체 타입의 수

- 대응 카디널리티(Mapping Cardinality) : 관계에 참여하는 개체 occurence의 수

- 차수에 따른 종류 : 단항관계, 이항관계, 삼항관계, n항 관계(관계에 참여하는 개체 타입의 개수)

- 대응 카디널리티에 따른 종류 : 1:1 관계, 1:N 관계, N:M 관계(관계에 참여하는 개체 타입이 가진 개체 occurence )

- ISA 관계 : 상위-하위 개체로 표현되는 관계

-> disjoint : 상위 개체가 하위 개체 하나에만 포함

-> overlapping : 상위 개체가 하위 개체 여러 개에 포함

2. 속성

- 개체의 특성, 상태

- Domain : 속성이 가질 수 있는 모든 값들의 집합



관계형 데이터 모델


- 데이터를 원자 값으로 갖는 2차원 테이블로 표현(릴레이션)

- 릴레이션 스키마 : 구조, 릴레이션 인스턴스 : 값

- 열 : 속성, 행 : 튜플

- Domain : 하나의 속성의 가질 수 있는 모든 값들의 집합

- Degree : 속성의 수, Cardinality : 튜플의 수


ER 모델 -> 관계형 데이터 모델


- 개체 -> 개체 릴레이션, 관계 -> 관계 릴레이션

- 매핑룰이라고도 불림


1. 변환 과정

1) 개체 A,B를 독립적인 릴레이션 A, B로 표현

2) 관계에 따라(A:B)

-> 1 : 1 관계 : A의 기본키를 B의 외래키로 OR B의 기본키를 A의 외래키로 추가

-> 1 : N 관계 : A의 기본키를 B의 외래키로 추가

-> N : M 관계 : A, B의 기본키를 모두 포함한 별도의 릴레이션으로 표현(교차 릴레이션)

-> ISA 관계 : 상위 개체의 기본키를 하위 개체들의 외래키로 추가하는 방법, 상위 개체의 속성을 포함하는 하위 릴레이션을 생성하는 방법


식별관계/비식별관계


1. 식별관계(Identifying)

- 개체 A, B 관계에서 A의 기본키가 B의 외래키이면서 기본키인 관계(혹은 반대)

2. 비식별관계(Non-identifying)

- 개체 A, B 관계에서 A의 기본키가 B의 기본키가 아니면서 외래키인 관계(혹은 반대)



Key


1. 슈퍼키(Super Key)

- 속성들의 집합으로 구성된 키

- 유일성 O, 최소성 X


2. 후보키(Candidate Key)

- 튜플을 유일하게 식별하기 위한 속성들의 부분집합

- 유일성 O, 최소성 O


3. 기본키(Primary Key)

- 후보키 중에서 선정된 키

- 중복된 값 X

- 유일성 O, 최소성 O

- 튜플들을 식별하기 위해 반드시 필요

- NULL 값을 가질 수 없음


4. 대체키(Alternate Key)

- 후보 키 중에서 기본키를 제외한 나머지 키


5. 외래키(Foreign Key)

- 다른 릴레이션의 기본키를 참조하는 속성, 속성들



무결성


- 데이터 값과 실제 값이 일치하는 정확성


무결성 제약 조건


- 정확하지 않은 data가 DB에 저장되는 것을 방지하기 위한 제약 조건


1. NULL 무결성

- 릴레이션의 특정 속성이 NULL이 되지 않도록 함

2. 고유(Unique) 무결성

- 특정 속성에 대해 각 튜플이 갖는 값이 달라야함

3. 도메인(Domain) 무결성

- 특정 속성의 값이 그 속성에 정의된 Domain에 속해야함

4. 키(Key) 무결성

- 릴레이션에는 적어도 하나의 키가 존재해야함

5. 관계(Relation) 무결성

- 릴레이션에 튜플 삽입 가능 여부 확인, 서로 다른 릴레이션의 튜플들 사이 관계의 적절성 여부 지정

6. 참조(Reference) 무결성

- 외래키 값은 NULL이거나 참조 릴레이션의 기본키와 동일해야함

7. 개체(Entity) 무결성

- 기본키를 구성하는 속성이 NULL이 아니어야함



관계대수


- 관계형 데이터에서 원하는 정보와 그 정보를 유도하는 방법을 나타내는 절차적 언어


순수 관계 연산자


1. SELECT

- 특정 조건을 만족하는 튜플들의 부분집합을 릴레이션으로 생성

- 수평 연산(튜플을 이용)

σ(조건)(R)


2. PROJECT

- 주어진 속성들 값만 추출해 새로운 릴레이션 생성

- 중복을 삭제함

π(속성 리스트)(R)


3. JOIN

- 공통 속성을 중심으로 2개의 릴레이션을 합쳐서 새로운 릴레이션 생성

- 차수 = 두 릴레이션 차수의 합

- Cartensian Product + SELECT와 같음

- R1 (조건)R2

- 세타 조인 : 조건을 일반화하여 세타로 표현

- 자연 조인(Natural Join) : 중복된 속성을 제거하여 같은 속성은 한번만 표시(R1 ᛞ R2)


4. DIVISION

- R1[X ÷ Y]R2

- R2의 Y 속성의 모든 튜플과 연관되어 있는 R1의 튜플들 출력(X 속성 제외되고 출력됨)


일반 집합 연산자


1. UNION

- 튜플들의 합집합

- 중복된 튜플 제거됨

- R1 ∪ R2


2. INTERSECTION

- 튜플들의 교집합

- R1 ∩ R2


3. DIFFERENCE

- 튜플들의 차집합

 - R1 - R2


4. Cartensian Product

- 튜플들의 교차곱, 결합된 튜플들로 구성

- R1 × R2


관계해석


- 관계 데이터의 연산 표현

- 원하는 정보가 무엇인지만 정의 -> 비절차식 언어

- 질의어 표현

- 도메인 관계해석, 튜플 관계해석

Comments