1. ER 모델

- 개념적 데이터 모델의 가장 대표적인 것 개념 스키마 표현

- ER 도형 정의 함

 

2. ER 도형

도형

의미

도형

의미

개체 타입

(null)

개체타입과 속성을 연결

관계 타입

ISA 관계

(상위객체와 하위객체간의 관계 상속)

속성

다중값 속성

기본키 속성

유도 속성

(추상화)

개체타입 간의 연관성

복합 속성

 

3. 개체 및 개체 타입

- 개체 : 현실 세계의 객체

    유형(실제 존재하는 개체) 또는 무형(개념적 개체)의 정보 대상으로 존재

    서로 구별될 수 있는 것

    개체의 특성을 나타내는 속성을 가짐

- 개체 어커런스 / 개체 인스턴스 : 하나의 개체

- 개체 타입 : 개체 어커런스들의 집합에 대한 공통의 특성을 갖는 개체 클래스

 

4. 관계 및 관계 타입

- 관계 : 2 개 이상의 개체 사이에 존재하는 연관성

- 관계 타입 : 같은 관계들의 집합 또는 틀

차수에 따른 관계

대응 카디널리티에 따른 관계

관계에 참여하는 개체 타입의 개수에 대한 차수

관계에 참여하는 개체 어커런스의 개수에 대한 대응 카디널리티

단항 관계 : 관계 참여 개체 타입이 1

이항 관계 / 삼항 관계 / n항 관계

1 : 1 관계 : 관계 참여 두 개체 타입이 모두 하나씩의 개체 어커런스 갖는 관계

1 : N 관계 : 한 개체 타입은 하나의 개체 어커런스 가지고 한 개체 타입은 다수의 개체 어커런스 갖는 관계

N : M 관계 : 두 개체 타입 모두 다수의 개체 어커런스를 갖는 관계

- ISA 관계 :

- 같은 속성을 갖는 여러 개체들은 하나의 상위 개체로 결합 가능

-> 특정 개채는 서로 구별되는 여러 하위개체로 나누어질 수 있음

상위 개체 멤버가

(1)

disjoint

overlapping

하나의 하위 개체에만 포함되는 것

 disjoint

여러 하위 개체에 포함될 수 있는 것

 overlapping

(2)

total

partial

하위 개체에 속하는 것

개체와  사이 이중 연결선

하위 개체에 속하지 않을 수 있는 것

개체와  사이 단일 연결선



5. 속성

- 속성 : 개체의 특성이나 상태를 기술한 것

관계, 개체 모두 속성을 가질 수 있음

- 도메인 : 속성이 가질 수 있는 모든 가능한 값들의 집합

- 기본키 속성 : 모든 개체 타입은 그 개체를 유일하게 식별해 주는 기본키에 속하는 속성을 포함함

- 단순 속성 : 더 이상 다른 속성으로 나눌 수 없는 속성

   복합 속성 : 2개 이상의 속성들로 분해할 수 있는 속성

 

1. 데이터베이스 설계의 개념

- DB의 구조, DB 스키마를 개발하는 과정

- 요구조건 분석-> 개념적 설계-> 논리적 설계-> 물리적 설계-> 데이터베이스 구현

- 데이터 중심 설계와 처리 중심 설계를 병행

데이터 중심 설계

DB 구조에 치중

처리 중심 설계

데이터 처리 및 응용에 치중

 

2. 요구 조건 분석

- 사용할 사람이 필요로 하는 용도를 파악

- 사용자의 요구 조건 수집, 분석-> 공식적인 요구 조건 명세 작성

- 요구 조건

    - 정적 정보 구조 : 개체, 속성, 관계, 제약 조건 등

    - 동적 데이터베이스 처리 요구 조건 : 트랜잭션 유형, 트랜잭션 실행 빈도 등

    - 범기관적 제약 조건 : 기관의 경영 목표 및 정책, 규정


* 트랜잭션 : DB에서 하나의 논리적 기능을 수행하기 위한 일련의 연산집합. 작업의 단위

- 작성된 요구 조건 명세는 주요 사용자 그룹과 함께 다시 검토, 확인-> 최종 시스템 명세로 확정

 

3. 개념적 설계

- 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해, 다른 사람과 통신하기 위해 현실 세계에 대한 인식

추상적 개념으로 표현하는 과정

- 개념 스키마 모델링 / 트랜잭션 모델링 병행 수행

개념 스키마 모델링

* 대표적 표현 방식

ER 도형

데이터의 조직과 표현에 치중하는 데이터 중심 설계

개념적 데이터 모델에서의 데이터 구조, 즉 개념 스키마를 기술하는 과정

개념적 데이터 모델 유도 기본 원리 : 추상화

* 추상화 : 복잡한 것들 단순화하는 것

집단화

여러 속성들을 그룹지어 하나의 개체로 만드는 것

일반화

공통 성질을 가진 여러 부류의 개체들을 보다 일반적이고 포괄적인 개체로 만드는 것

트랜잭션 모델링

응용을 위한 데이터 처리에 치중하는 처리 중심 설계

트랜잭션의 입 출력과 기능적 형태를 정의하는 트랜잭션 명세 작성

트랜잭션을 개념적이고 시스템 독립적으로 정의

입력 데이터, 출력 데이터, 제어의 기능적 흐름 명세

 

4. 논리적 설계

- 현실 세계에서 발생하는 데이터 형태를 컴퓨터가 이해하고 처리할 수 있는 특정 DB 관리 시스템이 지원하는 논리적 데이터 구조로 변환시키는 과정

- 논리 스키마 설계 : 데이터의 구조 설계

-

특정 DB 관리 시스템 선정

선정 시 고려할 사항

소프트웨어 획득 비용

유지 비용

- DB 구축 및 전환 비용

교육 및 운용 비용

-

관계형 DB 관리 시스템을 선정

ER 도형(개념스키마!)를 정형적 규칙에 따라 릴레이션 스키마로 변환

정규화 : 데이터 모델을 좀 더 구조화하고 개선시켜 나가는 과정

정규화 과정 : 더 좋은 릴레이션 스키마를 만들기 위해 수행

- 트랜잭션 명세(개념적 설계)-> 트랜잭션의 전체적 골격 개발 & 인터페이스 정의

 

5. 물리적 설계

- 응용 프로그램에 대한 성능향상을 위해 DB 파일에 대한 특정한 저장 구조접근 경로 결정하는 과정

- 물리 스키마 설계 : 효율적이고 구현 가능한 물리적 DB 구조 설계

-

물리적 설계 :

저장 구조를 위한

레코드 양식, 순서, 저장 공간 등의 설계

접근 경로를 위한

인덱싱, 클러스터링, 해싱 등의 설계

특정 DB 관리 시스템 & 특정 하드웨어 및 운영체제 특성 고려

-

효과적인 물리적 설계를 위해

DB 트랜잭션을 요청해 응답을 얻기까지의 응답 시간

등을 고려

DB 파일과 접근 경로 구조에 대한 저장 공간 효율성

일정 단위 시간 동안 처리되는 트랜잭션 평균수인 트랜잭션 처리도

- 트랜잭션 인터페이스(논리적 설계)-> 상세 트랜잭션을 정의

 

6. 데이터베이스 구현

- DB 실제로 구축하는 과정

- 선정된 DB 관리 시스템의 DDL로 기술된 명령문을 실행시켜 DB 스키마와 DB 파일을 생성

    필요한 경우 DB에 데이터 입력

- 응용 프로그래머에 의해 상세 트랜잭션이 실행 트랜잭션으로 구현

    DML로 기술된 명령문을 가지는 프로그램 코드가 작성 됨

1. 스키마의 개념

- 데이터베이스의 구조와 제약 조건에 관한 전반적 명세

데이터베이스를 구성하는

개체(무형의 정보를 대상으로 존재, 서로 구별될 수 있는 것)

속성(개체의 특성이나 상태를 기술. 데이터의 가장 작은 단위)

관계 (2개 이상 개체 사이의 연관성을 기술)

데이터 조작 시 데이터 값들이 갖는 제약 조건

등에 관해 전반적으로 정의

- 외부 스키마 / 개념 스키마 / 내부 스키마


2. 스키마의 특징

- 데이터의 구조적 특성을 의미

- 데이터 사전에 저장됨

- 현실 세계의 특정한 한 부분의 표현(객체) 특정 데이터 모델을 이용해서 만들어짐

- 시간에 따라 불변

- 데이터의 논리적 단위에 명칭을 부여, 그 의미를 기술

 

* 데이터 사전

- 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지 관리하는 시스템

- 시스템 카탈로그!

- 데이터에 관한 데이터. - > 메타 데이터 라고 함


* 메타 데이터

- 데이터에 관한 데이터 : 실제 저장되는 데이터는 아니고, 저장되는 데이터와 직접 또는 간접적으로 관계가 있는 정보를 제공하는 데이터

- 메타 데이터 포멧

 MARC (Machine Reading Cataloging)

 목록 레코드를 식별하여 축적 유통할 수 있도록 코드화 한 메타 데이터

DC (Dublin Core)

 네트워크 환경에서 각종 전자 정보를 기술하는 메타 데이터

ONIX

(ONline Information eXchange)

 유통에 관한 통계와 체계적인 정보를 취급함으로써 정상적인 유통 및 관리를 위한 메타 데이터

MODS

(Metadata Object Description Schema)

 디지털 도서관의 범용 서지 정보 표준 메타 데이터

 MARC, DC, ONIX 등으르 절충하여 상호 운용성과 정밀성을 모두 만족 시킴

  

* 메타 데이터의 상호 운용성을 확보하기 위한 방법

- 자원을 하나의 표준적인 메타 데이터로 통합하여 표현

- 자원의 특성을 감안하여 다양한 메타 데이터 형식과 기술 구조를 인정 - > 상호 매핑을 통해 해결

- MDR에 의한 해결

    MDR : 메타 데이터의 등록과 인증을 통해 메타 데이터를 유지 관리, 명세를 공유하는 레지스트리


3. 스키마의 3계층

1) 외부 스키마

- 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조 정의

- 전체 데이터베이스의 한 논리적 부분 - > 서브스키마

- 1 DB : Sub schema

    1 Sub schema : 응용 프로그램 / 사용자 (공유)

- 동일한 데이터베이스에 대해 서로 다른 관점을 정의할 수 있도록 허용


2) 개념 스키마

- 개체 간의 관계와 제약 조건, 데이터베이스 접근 권한, 보안 정책 및 무결성 규정에 관한 명세 정의

- 전체적인 논리적 구조. 1 DB : 1 개념 스키마

- 기관이나 조직의 관점에서 데이터베이스 정의한 것

- 데이터베이스 관리자에 의해 작성됨


3) 내부 스키마

- 데이터베이스의 물리적 구조 정의

물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세

1 DB : 1 내부 스키마

- 개념 스키마의 물리적 저장 구조에 대한 정의를 기술

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

1. 데이터베이스 관리 시스템

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

- 기존의 파일 시스템이 갖는 종속성과 중복성의 문제를 해결하기 위해 제안됨

    모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해줌

- 데이터 종속성으로 인한 문제점 : 응용프로그램과 데이터 파일 간에 상호 의존적인 관계가 존재

    데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때 응용

    프로그램도 같이 변경해야 한다는 문제점

- 데이터 중복성으로 인한 문제점 : 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생 

- > 일관성 없어지고 중복된 모든 데이터에 동등한 보안수준 유지 어렵고, 제어의 분산으로 데이터의 정확성이나 무결성을 효율적으로 유지할 수 없음


2. 데이터베이스 관리 시스템의 필수 기능

- 정의 기능 : 데이터 타입, 구조, 데이터가 데이터베이스에 저장될 때의 제약 조건 등 명시

- 조작 기능 : 체계적 데이터 처리를 위해 데이터 접근 기능을 명시(검색, 삽입, 삭제, 갱신)

- 제어 기능 : 데이터의 정확성과 안전성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행 제어 등을 명시


3. DBMS의 장 단점

장점

단점

데이터의 논리적, 물리적 독립성이 보장

데이터 공동으로 이용 가능

데이터 표준화

데이터 무결성 유지

데이터 실시간 처리 가능

데이터 중복 회피

데이터 통합 관리

데이터 일관성 유지

데이터 보안 유지

항상 최신의 데이터 유지

데이터베이스 전문가 부족

대용량 디스크로의 집중적 접근으로 과부하 발생

전산화 비용 증가


- 데이터 스트림 관리 시스템 (DSMS)

    - 무선센서 네트워크나 인터넷 같은 통신상에서 발생하는 대량의 스트림 데이터 처리, 관리하는 시스템

    - DBMS : 디스크 릴레이션에 저장된 정적이고 영구적인 데이터 처리, 관리

    - DSMS : 온라인상의 데이터 스트림이라는 동적인 특성을 가진 데이터를 처리하고 관리

    - 온라인 상에서 연속적인 질의 실행하면서 실시간으로 데이터 처리, 관리

        - > 질의의 입력 순서에 따라 데이터의 처리 결과 달라짐

1. 데이터베이스 정의

- 통합 데이터 : 검색의 효율성 - > 중복 최소화 데이터 모임

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

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

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


2. 데이터베이스의 특징

- 실시간 접근성 : 사용자의 질의에 대하여 즉시 처리하여 응답

- 계속적인 진화 : 삽입, 삭제, 갱신을 통해 항생 최근의 정확한 데이터를 동적으로 유지

- 동시 공유 : 여러 사용자가 동시에 원하는 데이터를 공용

- 내용에 의한 참조 : 사용자가 요구하는 데이터의 내용에 따라 참조


- 데이터의 논리적, 물리적 독립성

    - 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써 데이터의 논리적 구조를 변형

        시키더라도 응용 프로그램은 변형되지 않는 것

    - 물리적 독립성 : 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시킴으로써 새로운 디스크를

        도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경


3.데이터베이스 시스템

- 구성 요소 데이터베이스 / DBMS(데이터베이스 관리 시스템) / 데이터베이스 컴퓨터

4. 데이터 언어

1) DDL (데이터 정의어)

- 데이터베이스를 구축하거나 변경할 목적으로 사용하는 언어

- 데이터베이스 구조, 데이터 형식, 접근 방식 등

- DDL 컴파일러가 컴파일한 후 데이터 사전에 저장

- DDL의 기능

    - 데이터베이스의 논리적, 물리적 구조를 정의 및 변경

    - 스키마에 사용되는 제약조건 정의

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


2) DML (데이터 조작어)

- 데이터 처리를 위해 응용 프로그램과 데이터베이스 관리 시스템 간의 인터페이스를 위한 언어

- 데이터 처리를 위한 연산의 집합

- 데이터의 검색, 삽입, 삭제, 갱신 연산 등

- DML의 형태

    - 절차적 데이터 조작어 : 사용자가 어떤(what) 데이터를 필요로 하는지 + 필요한 데이터를 어떻게(how)

    - 비절차적 데이터 조작어 : 사용자가 어떤(what)데이터가 필요한지만 명시. 어떻게(how)구하는지는 명시


3) DCL (데이터 제어어)

- 보안 및 권한 제어, 무결성, 회복, 병행 제어

- DCL의 기능

    - 데이터 보안 : 권한이 없는 접근으로부터 데이터베이스 보호

    - 데이터 무결성 : 의미적 측면에서 데이터가 정확하고 완전함을 의미

    - 데이터 회복 : 시스템 오류 등으로부터 데이터베이스 회복

    - 병행 제어 : 여러 사용자가 동시에 데이터베이스를 공유할 수 있도록 함



5. 데이터베이스 사용자

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

- DDLDCL을 통해 데이터베이스를 정의하고 제어하는 사람 또는 그룹

- 데이터베이스 설계, 관리, 운용 및 통제 / 효율성과 경제적인 효용성을 높이기 위해 시스템을 감시하고 성능을 분석


2) 데이터 관리자 (Data Administrator)

- 데이터에 대한 정의, 체계화, 감독 및 보안 업무

        데이터에 대한 관리를 총괄, 정보 활용에 대한 중앙 집중적인 계획 수립 및 통제를 수행

- 전사적으로 수립된 데이터 표준 원칙, 데이터 표준, 데이터 표준 준수 여부 관리


3) 데이터 설계자 (Data Architect)

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

- 데이터 구조 전반에 걸쳐 데이터 구조 원칙, 데이터 구조 정보, 데이터 구조 관리 등을 정의

- 데이터 표준, 데이터 관리 체계 등을 포함하는 데이터 영역을 분류, 데이터 모델 생성


4) 응용 프로그래머

- 호스트 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근하는 사람


5) 일반 사용자

- 질의어(Query Language)를 통해 데이터베이스 관리 시스템에 접근하는 사람

5. 속성 (Attribute)


1) 속성

- 업무에서 필요한 정보인 엔터티가 가지는 항목

- 원자값 : 더 이상 분리되지 않는 단위. 의미적으로도 더 이상 분해되지 않음

- 업무에 필요한 데이터를 저장할 수 있음

- 인스턴스의 구성요소


2) 속성의 특징과 종류

(1) 속성의 특징

- 업무에서 관리되는 정보 / 하나의 값만 가짐 / 주 식별자에게 함수적으로 종속됨 (기본키가 변경되면 속성의 값도 변경됨)


(2) 속성의 종류

* 분해 여부에 따른 속성의 종류

단일 속성 

 - 하나의 의미로 구성된 것

   회원 ID, 이름 등 

복합 속성

 - 여러 개의 의미로 구성된 것

   주소.... 시 군 구로 분해될 수 있음 

다중값 속성 

 - 속성에 여러 개의 값을 가질 수 있는 것

 - 다중값 속성은 엔터티로 분해됨

   상품 리스트 .,.. 


* 특성에 따른 속성의 분류

 기본 속성

 - 비즈니스 프로세스에서 도출되는 본래의 속성

   회원 아이디. 이름, 계좌번호 ... 

 - 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성

 설계 속성

 - 데이터 모델링 과정에서 업무를 규칙화하기 위해 발생되는 속성

 - 유일한 값을 부여

   상품코드, 사원코드 등.. 

 파생 속성

 - 다른 속성에 의해서 만들어지는 속성 (보통 계산된 값들)

   합계, 평균 


* 도메인 : 속성이 가질 수 있는 값의 범위 / 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것


6. 관계 (Relationship)

1) 관계

- 엔터티 간 관련성

- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태


2) 관계의 종류

(1) 존재 관계 : 엔터티 간의 상태. 두 개의 엔터티가 존재 여부의 관계가 있는 것

(2) 행위 관계 : 엔터티 간에 어떤 행위가 있는 것. 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것


3) 관계 차수

- 두 개의 엔터티 간에 관계에 참여하는 수

* 필수적 관계와 선택적 관계

필수적 관계 

 반드시 하나는 존재해야 하는 관계 

선택적 관계

 없을 수도 있는 관계 


* 몇 대 몇 관계

1 대 1

 완전 1 : 1

  

 - 하나의 엔터티에 관계되는 엔터티의 관계가 하나 있는 경우

 선택적 1 : 1

 

 - 하나의 엔터테에 관계되는 엔터티의 관계가 하나이거나 없는 경우

 1 대 N

 

 - 엔터티에 행이 하나 있을 떄 다른 엔터티의 값이 여러개 있는 관계

 M 대 N

 

 - 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 경우

 - 관계형 DB에서 M대N 관계의 조인(Join)은 카테시안 곱이 발생

   -> M : N =>> 1 : M , N : 1 로 해소 

      (두 엔터티를 각각 1:.N으로 만들어줄 엔터티를 추가함)


4) 식별 관계와 비식별 관계

* 강한 개체 : 누구에게도 지배되지 않는 독립적인 개체

* 약한 개체 : 개체의 존재가 다른 개체의 존재에 달려있는 개체


항목 

식별자관계 

비식별자관계 

목적 

강한 연결관계 표현 

약한 연결관계 표현 

자식 주식별자 영향 

자식 주식별자의 구성에 포함됨 

자식 일반 속성에 포함됨 

표기법 

실선 

점선 

연결 고려사항 

 - 반드시 부모엔터티 종속

 - 자식 주식별자구성에 부모 주식별자 포함

 - 상속받은 주식별자속성을 타 엔터티에 이전 필요 

 - 약한 종속관계

 - 자식 주식별자 구성을 독립적으로 구성

 - 자식 주식별자구성에 부모 주식별자 부분 필요

 - 상속받은 주식별자속성을 타 엔터티에 차단 필요

 - 부모쪽의 관계 참여가 선택 관계 


(1) 식별 관계

- 식별 관계 : 강한 객체가 자신의 기본키를 약한 객체의 기본키로 공유시켜 약한 객체의 존재가 강한객체의 존재 여부에 따라 달라지는 관계

실선으로 표시

- 강한 개체의 기본키 값이 변경되면 약한 개체의 엔터티 값도 변경됨


(2) 비식별 관계

- 비식별 관계 : 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것

   점선으로 표시

+ Recent posts