<데이터베이스>

상태
시작 전
담당자
날짜
숫자
0
데이터베이스의 정의 : 어떤 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 집합체
데이터베이스의 특징
데이터베이스는 데이터의 대규모 저장소, 여러 부서에 속하는 여러 사용자에 의해 동시 사용됨.
모든 데이터가 중복을 최소화하면서 통합됨
한 조직체의 운영데이터 뿐만 아니라 그 데이터에 관한 명세(데이터베이스 스키마 또는 메타데이터)까지 포함
효율적으로 접근이 가능하고 질의(검색, 조회) 가능
데이터베이스 관리 시스템(DBMS : DataBase Management System) :
데이터베이스를 정의하고, 질의어를 지원하고, 출력물을 생성하는 등의 데이터베이스 관련 모든 제반 작업 수행 시스템 소프트웨어(패키지) ex) Oracle, MS-SQL, My SQL…

데이터 베이스 스키마

전체적인 데이터베이스 구조를 뜻하며, 자주 변경 X
데이터베이스의 모든 상태를 미리 정의함
내포(intension)라고 부름

데이터베이스 상태

특정 시점의 데이터베이스의 내용을 의미, 시간이 지남에 따라 계속해서 바뀜
외연(extension)이라고 부름

데이터베이스 시스템(DBS)의 구성 요소

DBS는 응용프로그램과 사용자 DBMS간의 관계로 이루어져있다.
DBMS는 시스템 카탈로그와 저장된 데이터베이스로 구분됨.
시스템카탈로그는 저장된 데이터베이스의 스키마 정보를 유지한다.

DBMS의 개요

사용자가 새로운 데이터베이스를 생성
사용자가 데이터베이스의 구조를 명시할 수 있게 함
사용자가 데이터를 효율적으로 질의 및 수정 가능
시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호
동시에 여러 사용자가 데이터베이스를 접근 제어하는 소프트웨어 패키지
데이터베이스 언어라고 부르는 특별한 프로그래밍 언어를 한 개 이상 제공
SQL은 여러 DBMS에서 제공되는 사실상의 표준 데이터베이스 언어

컴퓨터 시스템에서 DBMS의 위치

하드웨어 - 운영체제 - DBMS - 응용 개발 도구들 - 응용 프로그램 / 사용자
사용자 : 데이터베이스 사용자는 여러 부류로 나눌 수 있음
하드웨어
데이터베이스는 디스크와 같은 보조 기억 장치에 저장됨
DBMS에서 원하는 정보를 찾기 위해서는 디스크의 블록들을 주기억장치로 읽어들여야 하며, 계산이나 비교 연산들을 수행하기 위해 중앙 처리 장치가 사용됨
DBMS 자체도 주기억장치에 적재되어 실행되어야함

데이터베이스 시스템의 요구사항

데이터 독립성
융통성
효율적인 데이터 접근
데이터에 대한 동시 접근
백업과 회복
중복을 줄이거나 제어하며 일관성 유지
데이터 무결성
데이터 보안
쉬운 질의어
다양한 사용자 인터페이스의 제공

2주차

파일 시스템 VS DBMS
파일 시스템을 사용한 기존의 데이터 관리
파일 시스템은 DBMS가 등장하지 않았을 때인 1960년대부터 사용되어 왔음.
파일의 기본적인 구성요소는 순차적인 레코드들
한 레코드는 연관된 필드들의 모임
파일을 접근하는 방식이 응용 프로그램 내에 상세하게 표현되므로 데이터에 대한 응용 프로그램의 의존도가 높음
파일 처리 : 응용 프로그램에 필요한 데이터를 별도의 파일로 구성하여 처리, 재래적 처리 방식으로 소규모 응용 프로그램에서 사용
데이터에 대한 응용 프로그램의 의존도에 따른 문제점
데이터가 저장된 순서대로 응용 프로그램에서 순서대로 읽기 / 쓰기 등 작업
파일 시스템의 단점
데이터가 많은 파일에 중복해서 저장됨
(예시 : 다수 파일에서 사원의 부서 정보가 중복되어 저장 관리 → 사원의 부서이동으로 여러 파일에 저장된 부서 정보를 모두 변경해야하며, 데이터 불일치 가능성 높아짐)
다수 사용자들을 위한 동시성 제어 제공 X
검색하려는 데이터를 쉽게 명시하는 질의어가 제공 X
보안 조치 미흡
회복 기능 X
프로그램 - 데이터 독립성 X → 유지보수 비용 많이 소요됨
데이터 모델링 개념 부족
무결성 유지 어려움
파일을 검색하거나 갱신하는 절차가 상대적으로 복잡 → 프로그래머의 생산성 낮음
데이터의 공유와 융통성 부족
DBMS를 사용한 데이터베이스 관리
여러 사용자와 응용 프로그램들이 데이터베이스를 공유
사용자의 질의를 빠르게 수행할 수 있는 인덱스 등의 접근 경로를 DBMS가 자동적으로 선택하여 수행
권한이 없는 사용자로부터 데이터베이스를 보호
여러 사용자에 적합한 다양한 인터페이스를 제공
데이터 간의 복잡한 관계를 표현하며, 무결성 제약조건을 DBMS가 자동적으로 유지
시스템이 고장나면 데이터베이스를 고장 전의 일관된 상태로 회복시킴
데이터베이스는 표준화된 형식으로 저장되며 통합된 데이터베이스에 대한 접근이 모두 DBMS를 통하여 이루어짐
프로그램에 영향을 주지 않으면서 데이터베이스 구조 변경 가능 (프로그램 - 데이터 독립성)
DBMS의 장점
중복성과 불일치 감소
사용자에게 보다 나은 서비스 제공
시스템의 융통성 향상
시스템을 개발하고 유지하는 비용 감소
표준화 시행 용이
보안 향상
무결성 향상
조직체의 요구사항 식별 가능
다양한 유형의 고장으로부터 데이터베이스 회복 가능
데이터베이스의 공유와 동시 접근 가능
DBMS의 단점
추가적인 하드웨어 구입 비용
DBMS 자체의 구입 비용도 상당히 고가
직원들 교육 비용도 많이 소요
응답 시간이 많이 걸릴 수 있음
파일 방식에 비해 고장의 영향을 더 크게 받을 수 있음
비밀과 프라이버시 노출 등의 단점 존재할 수 있음

파일 시스템과 DBMS 방식 비교

파일 시스템
DBMS
데이터에 대한 물리적 접근만 조정
데이터에 대한 물리적 접근과 논리적 접근을 모두 조정
동일한 파일을 두 개 이상의 프로그램이 동시 접근 불가
동일한 데이터를 다수 사용자가 동시 접근 가능
비구조적 데이터 형식, 중복성과 유지보수의 고비용
구조적 데이터 형식, 중복성과 유지보수 비용 저비용
임의 프로그램이 기록한 데이터를 다른 프로그램에서 읽을 수 없는 경우 다수
접근 권한이 있는 모든 프로그램이 데이터를 공유함
데이터 접근은 미리 작성된 프로그램을 통해서만 접근 가능
질의어를 사용하여 데이터에 대한 융통성 있는 접근 가능
각 응용 프로그램마다 파일이 각각 존재하여 데이터 통합 X
데이터 중복을 최소화하면서 통합되어 있음

DBMS 선정시 고려사항

기술적 요인
DBMS에 사용되고 있는 데이터 모델 DBMS가 지원하는 사용자 인터페이스, 프로그래밍 언어, 응용 개발 도구, 저장 구조, 접근 방법 등
경제적인 요인
소프트웨어와 하드웨어 구입 비용, 유지 보수 비용, 직원들의 교육 지원 등

DBMS 발전 과정

1.
네트워크 DBMS
1960년대 초 최초의 네트워크 DBMS인 IDS 개발
레코드들이 노드로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 하는 네트워크 데이터 모델 사용
네트워크 DBMS에서도 레코드들이 링크로 연결되어 있으므로 레코드 구조를 변경하기 어려움
2.
관계 DBMS
1970년 IBM 연구소에서 관계 데이터 모델을 제안
모델이 간단하여 이해하기 쉬움
예 : Oracle, MS SQL Server, Sybase, DB2, Informix 등
3.
객체 지향 DBMS
1980년대 후반 들어 새로운 데이터 모델인 객체 지향 데이터 모델 등장
객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
데이터와 프로그램을 그룹화, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경 용이
예 : ONTOS, OpenODB, GemStone, ObjectStore, O2등
4.
객체 관계 DBMS
1990년대 후반에 관계 DBMS에 객체 지향 개념을 통합한 객체 관계 데이터 모델 제안됨
예 : Informix Universal Server, Oracle 9i 등

DBMS 언어

데이터 정의어 (DDL)
사용자는 데이터 정의어를 사용하여 데이터베이스 스키마 정의
데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장
데이터베이스를 정의하거나, 그 정의를 수정할 목적으로 사용하는 언어
데이터 정의어의 기본적인 기능
테이블 구조 생성 : CREATE
테이블 구조 변경 : ALTER
테이블 구조 삭제 : DROP
데이터 조작어(DML)
사용자는 데이터 조작어를 사용하여 데이터베이스 내의 원하는 데이터를 검색, 수정, 삽입, 삭제
대부분의 데이터 조작어는 SUM, COUNT, AVG와 같은 내장 함수들을 갖고 있음
단말기에서 대화식으로 입력되어 명령어 형식으로 수행되거나 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 프로그래밍 형태로 사용됨
절차적 데이터 조작어
사용자가 무슨 데이터를 어떻게 접근할 것인가를 명시
초급 데이터 언어
비절차적 데이터 조작어
사용자가 무슨 데이터를 처리할 것인가만 명시, 어떻게 접근할지는 DBMS가 알아서 수행
고급 데이터 언어
데이터 제의어(DCL)
사용자는 데이터 제의어를 사용하여 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소

3주차

DBMS 사용자

일반 사용자
주어진 응용프로그램을 활용해서, 데이터베이스 처리(검색, 삽입, 삭제, 갱신…)
질의어 사용 가능
응용 프로그래머
데이터베이스 응용 프로그램 작성
외부 스키마 생성
DML 사용
데이터베이스 관리자(DBA)
데이터베이스 시스템의 관리 운영 책임자
컴퓨터 시스템 전반에 전문 지식 보유
외부 스키마(일반 사용자, 응용 프로그래머) → 개념 스키마(DBA) → 내부 스키마
데이터베이스 관리자(DBA)
데이터베이스 관리자는 조직의 여러 부분의 상이한 요구를 만족시키기 위해서 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀)
데이터베이스 관리자의 역할
데이터베이스 스키마 생성, 변경
한꺼번에 적재
무결성 제약조건 명시
사용자의 권한 허용, 취소, 사용자의 역할 관리
저장 구조와 접근 방법 정의
백업과 회복
표준화 시행
응용 프로그래머
데이터베이스 위에서 특정 응용(예: 고객 관리, 인사 관리, 재고 관리 등)이나 인터페이스를 구현하는 사람
고급 프로그래밍 언어로 응용 프로그램을 개발하면서 데이터베이스를 접근하는 부분은 내포된 데이터 조작어 사용
이들이 작성한 응용 프로그램을 최종 사용자들이 사용
이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로 기작성 트랜잭션이라 부름
최종 사용자
질의, 갱신, 보고서를 생성하기 위해 데이터베이스를 사용하는 사람
최종 사용자는 다시 데이터베이스 질의어를 사용하여 매번 다른 정보를 찾는 캐주얼 사용자와 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자로 구분
데이터베이스 설계자
CASE도구들을 이용해서 데이터베이스 설계 책임짐
데이터베이스의 일관성을 유지하기 위해 정규화 수행
오퍼레이터
DBMS가 운영되고 있는 컴퓨터 시스템과 전산실을 관리하는 사람

ANSI/SPARC 아키텍처

현재의 대부분의 상용 DBMS 구현에서 사용되는 일반적인 아키텍처는 1978년 제안된 ANSI/SPARC 아키텍처
ANSI/SPARC 아키텍처의 3단계는 물리적, 개념적, 외부 단계로 이루어짐
외부 단계 : 각 사용자의 뷰 (외부 뷰)
데이터베이스의 각 사용자가 갖는 뷰
여러 부류의 사용자를 위해 다수의 서로 다른 뷰가 제공될 수 있음
일반적으로, 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분에만 관심을 가짐
개념 단계 : 사용자 공동체의 뷰 (개념 스키마)
조직체의 정보 모델로서 조직체 전체에 관한 스키마 포함
데이터베이스에 어떤 데이터가 저장되어 있으며, 데이터 간에는 어떤 관계가 존재하고, 어떤 무결성 제약조건들이 명시되어 있는가를 기술함
전체 데이터베이스의 논리적인 구조 기술
데이터베이스에 대한 사용자 공동체의 뷰를 나타냄
데이터베이스마다 오직 한 개의 개념 스키마 존재
내부 단계 : 물리적 또는 저장 뷰 (내부 스키마)
실제의 물리적인 데이터 구조에 관한 스키마
데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술함
내부 단계 아래는 물리적 단계
물리적 단계는 DBMS의 지시에 따라 운영 체제가 관리함
데이터 독립성 : 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미
외부 단계 - 개념 단계 = 논리적 데이터 독립성
개념 단계 - 내부 단계 = 물리적 데이터 독립성

데이터베이스 시스템 아키텍처

데이터 정의어 컴파일러 모듈
데이터 정의어를 사용하여 테이블 생성을 요청하면 테이블을 파일 형태로 데이터베이스에 만들고, 이 테이블에 대한 명세를 시스템 카탈로그에 저장
질의 처리기 모듈
데이터 조작어를 수행하는 기계어 코드로 번역
런타임 데이터베이스 관리기 모듈
디스크에 저장된 데이터베이스를 접근
트랜잭션 관리 모듈
동시성 제어 모듈
회복 모듈
데이터베이스 API
ODBC는 마이크로소프트 사가 주도적으로 개발한 데이터베이스 API
ODBC를 지원하는 DBMS간에는 서로 상대방의 데이터베이스 접근 가능
동시접근 가능 사용자 수에 따른 분류
단일 사용자 시스템 - PC용 DBMS들
다중 사용자 시스템 - 대부분의 상용 DBMS들
DB가 설치된 사이트에 따른 분류
중앙집중식 DBMS : 데이터베이스 시스템이 하나의 컴퓨터 시스템에서 운영됨
분산 DBMS
DB가 여러 컴퓨터 사이트에 위치한 시스템
네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있으며, 데이터베이스 시스템도 여러 컴퓨터 시스템에서 운영됨
사용자는 다른 사이트에 저장된 데이터베이스도 접근 가능
클라이언트-서버 데이터베이스 시스템
데이터베이스가 하나의 데이터베이스 서버에 저장되어있음
PC 또는 워크스테이션처럼 자체 컴퓨팅 능력을 가진 클라이언트를 통해 데이터베이스 서버를 접근
서버는 데이터베이스를 저장하고 DBMS를 운영하면서 여러 클라이언트에서 온 질의를 최적화, 권한 검사 수행, 동시성 제어와 회복 기능 수행, 데이터베이스의 무결성 유지, 데이터베이스 접근 관리
클라이언트는 사용자 인터페이스를 관리하고 응용들을 수행
클라이언트-서버 데이터베이스 시스템의 장점
데이터베이스를 보다 넓은 지역에서 접근 가능
하드웨어 비용 절감됨
다양한 컴퓨터 시스템을 사용 가능
클라이언트-서버 데이터베이스 시스템의 단점
보안이 다소 취약할 수 있음
2계층 모델
클라이언트와 데이터베이스 서버가 직접 연결됨
3계층 모델
클라이언트와 데이터베이스 서버 사이에 응용 서버가 추가됨.

5주차

데이터 모델 : 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화 형태로 체계적으로 표현할 수 있는 개념적 모델
데이터 모델링 : 데이터 모델을 이용하여 현실 세계의 정보 구조를 표현하는 작업 (개념적 구조 → 논리적 구조)

3개의 데이터 세계

현실 세계 개념 세계 = 정보 모델링
개념 세계 컴퓨터 세계 = 데이터 모델링
논리적 데이터 구조 → 저장 데이터베이스 = 데이터 구조화
정보 모델링
인간의 이해를 위해 현실 세계를 추상적 개념으로 표현하는 과정
정보 구조 : 정보 모델링으로 얻은 결과
데이터 모델링
개념 세계의 정보 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 적합하도록 변환하는 과정
데이터 구조화
논리적 데이터 구조를 컴퓨터가 접근할 수 있는 저장 장치에 표현 가능하도록 물리적 데이터 구조를 변화시키는 과정

데이터 모델링의 종류

개념적 데이터 모델링
추상적 측면에서 속성들로 기술한 개체 집합과 이 개체 집합들간의 관계를 표현
논리적 데이터 모델링
개념적 측면에서 데이터 필드로 기술한 데이터 타입과 이 타입들 간의 관계를 표현
데이터 모델 종류
계층형 / 네트워크형 / 관계형 / 객체지향형 / 객체관계형 데이터모델

정보 모델링 구성 중요 요소

엔티티
현실 세계에 독립적으로 존재하는 식별 가능한 유형, 무형의 정보 객체
현실 세계 정보의 집합적 특성을 표시함
구체적인 정보 특성을 표현하는 속성을 가짐
엔티티 유형
일반 엔티티 : 식별을 위한 키를 갖고 있음
약한 엔티티
다른 엔티티에 의존되어 독자적으로 존재 X
독자적인 키 갖지못함, 부분키를 가질 수 있음
다른 엔티티의 키를 이용해서 약한 엔티티 식별 (소유 엔티티 또는 식별 엔티티의 키 사)
슈퍼 엔티티 : 여러 엔티티의 상위 엔티티
서브 엔티티 : 엔티티의 하위 엔티티, 서브 타입이라고도 함
속성
속성은 엔티티의 특성을 표시
반드시 속성값을 가짐
속성의 유형
단순 속성 : 더 이상 작은 구성요소로 분해 X, 일반적인 속성 형태
복합 속성 : 단순 속성으로 분해 O, ex) 주소 (도/시/군/읍)
단일값 속성 : 하나의 속성값을 가짐 ex) 학번, 주민번호 등
다중값 속성 : 여러 개의 속성값을 가짐 ex) 자동차 색상
유도 속성 : 다른 속성값으로부터 값을 유도 가능, 필요할 때마다 계산(유도)되어 저장할 필요 X ex) 저장 속성인 출생년도로부터 나이 속성을 유도하는 것
널 속성 : 속성값으로 null을 가질 수 있음 ex) 주택 보유 여부
키 : 엔티티를 유일하게 식별할 수 있는 식별자 속성
키의 유형
후보키 : 엔티티의 유일한 식별자로 사용할 수 있는 속성들
기본키 : 후보키 중에서 실제 엔티티 식별자로 사용하기 위해 선정된 속성
외래키 : 다른 테이블에서 기본 키, 참조하려는 이곳에서는 기본키가 아닌 키, 두 테이블을 연관시킬 때 사용
복합키 , 슈퍼키 : 여러 속성이 모여, 엔티티를 유일하게 식별할 때
데이터 모델링의 핵심 요인
엔티티
시스템의 구성 요소
관계
구성 요소간의 관계
관계의 유형
도메인 : 관계를 형성하는 엔티티 집합, 정의역
레인지 : 관계의 값의 범위, 치역
카디널러티 : 관계를 구성하는 도메인과 레인지의 수
단일 관계
이항 관계
삼항 관계

6주차

ERM(Entity Relationship Model) : 데이터베이스 설계를 위해 데이터를 시각적으로 표현하는 방법. 주로 데이터베이스 구조를 정의할 때 사용되며, 엔티티와 그들 사이의 관계를 표현함 주요 요소는 엔티티, 관계, 속성
ERD 표기법 : ERM을 시각화한 다이어그램, 데이터베이스 설계 시 사용됨. 사각형 : 엔티티를 나타냄 타원형 : 속성을 나타냄 다이아몬드형 : 관계를 나타냄 직선 : 엔티티와 속성, 또는 엔티티와 관계를 연결함.
Chen’ Model
1976년 Peter Chen이 제안한 ERD 표기법
엔티티와 관계를 명확히 구분하며, 관계를 다이아몬드 형태로 표현
각 엔티티와 관계의 타입, 다중성, 선택성을 명확히 표시하여 데이터베이스의 구조와 규칙을 직관적으로 파악할 수 있게 함
Crow’s Foot Model
관계형 데이터베이스의 구조를 표현하는 ERD 표기법
주로 데이터베이스 설계 도구에서 많이 사용되며, 관계의 다중성을 직관적으로 표현함
까마귀 발 모양 기호로 다중성을 나타내는 것이 특징
Rein85 Model
IDEF1X Model

추상화 기법

추상화
어떤 객체에서 관계가 적은 특성은 생략, 주요 특성을 선택할 때 사용하는 지적인 과정
어떤 객체를 가장 기본적인 특성으로 압축시키는 과정
종류
일반화 - 몇 개의 개체 집합들을 합해서 상위 레벨의 한 개체 집합으로 만드는 과정
특수화 - 하나의 개체 집합을 몇 개의 하위 레벨 개체 집합으로 분할하는 과정
집단화
몇 개의 구성 객체를 하나의 복합 개체 집합으로 추상화시키는 방법
한 객체의 속성들을 집단화시켜 하나의 개체로 만드는 경우
개체 집합과 개체 집합 간의 관계 집합 자체를 하나의 복합 개체로 만들어 일반 개체 집합으로 취급하는 경우
개체 - 관계 모델
1976, 피터 첸이 제안하여 개념적 설계에 가장 많이 사용
처음에는 개체, 관계, 속성으로 구성
일반화와 집단화 개념들이 추가되어 확장된 개체 - 관계 모델로 발전
확장된 개체 - 모델의 목적 → 현실 세계를 보다 정확하게 데이터베이스에 표현할 수 있도록 지원
개체 - 관계도
개체 - 관계 모델의 기본 아이디어를 그래픽 방식으로 표현하는 도구
사각형 : 개체 집합을 표현 (현실 세계에 존재하는 객체)
타원형 : 속성 표현 (개체들이 가지고 있는 성질 혹은 특성)
다이아몬드 : 관계 집합을 표현 (개체 집합들의 인스턴스들 사이의 관련성)
링크 : 개체와 개체 사이를 연결
개체
현실 세계에 존재하는 객체를 의미
의미 있는 유용한 정보를 제공하기 위해 기록하여 관리하고자 하는 데이터로서 사람, 장소, 사물, 사건, 개념 등을 의미
다른 개체와 구별할 수 있는 자기 자신의 식별자를 가져야 함
주로 명사로 표시되며, 속성을 가짐
속성
개체에 내포되어 있는 성질 혹은 특성
개체 또는 관계의 성질을 표현
속성의 이름은 명사를 사용, 타원으로 표시하여 관련 있는 개체에 연결
관계
객체 사이의 연관 관계
주로 동사로 표시
카디널리티(관계 수)를 가짐
후보키
개체 집합의 각 인스턴스를 유일하게 식별할 수 있는 속성, 혹은 속성들의 집합
예 : 학생 개체 집합을 위한 후보키는 학번, 사원 개체 집합은 사원번호와 이름 + 주소
기본키
개체 집합의 유일한 식별로 사용하기 위해 선택된 후보키
다중값 속성
동일한 개체에 대하여 여러 개의 값을 갖는 속성
예 : 기술 속성은 사원 개체의 속성 중 하나, 각 사원들이 하나 이상의 기술 소지한 경우 기술은 다중값 속성
관계
개체 - 관계 모델의 다양한 구성 요소들을 함께 결합시키는 역할
하나 혹은 그 이상의 개체 집합들의 인스턴스들 사이의 연관성 표현
관계 이름은 개체들을 연결하는 링크 위에 동사구로 표시
관계 표현 예. 사원 - 이수하다 - 교육과정
단일 관계 표시
한 개체 집합의 인스턴스들 사이의 관계
순환 관계 ex. 사람 - 결혼 (1:1 관계), 사원 - 관리 (1:n 관계)
이진 관계
두 개체 집합의 인스턴스들 사이의 관계
데이터 모델에서 사용되는 관계의 가장 일반적인 유형
ex. 사원 - 배정 - 주차 장소 (1:1 관계), 학생 - 등록 - 과목 (m:n 관계)
관계의 원소수
두 개체 집합 A와 B가 관계에 의해 연결되어 있다고 가정할 때, 개체 A의 각 인스턴스와 연관될 수 있는 개체 B의 인스턴스의 수
일대일, 일대다, 다대다
개체 관계도 작성
해당 업무 영역에서 필요한 정보를 얻기 위한 기본 데이터로부터 개체 정의
수행되는 업무 규칙으로부터 얻어지는 데이터 간의 연관 관계로부터 관계 정의
개체 정의
개체의 선정 대상
지속적인 관심의 대상
데이터를 저장할 수 있어야함
중복성이 배제되는 특성을 갖는 현실 세계의 객체
핵심 개체 : 현실 세계에 물리적으로 존재하는 것을 표현
개념 개체 : 현실 세계에 존재하지 않지만 사고의 간편화를 위해 논리적인 개념으로 표현
관련 개체 : 개체 간의 거래, 사건으로 파생된 것을 표현
개체 추출 : 업무 정의서, 협업 사용자와 면담 내용, 자료 흐름도, 각종 서식 및 장부 등으로부터 개체 추출
개체 검증
중복성, 유용성, 속성 존재, 개체 간 식별 가능성, 하나 이상의 다른 개체와 관계의 존재 가능성을 기준으로 추출한 개체 검토
개체를 창조하지 말고 사용자와 함께 반복적인 검토, 수정 실시
관계 정의
관계 추출
현업에서 사용하는 동사 사용
장표와 장부에서 함께 나타나는 개체들 간, 즉 2개 이상의 개체를 결합하여 업무적으로 의미 있는 정보 추출
상상력을 동원하여 관계 창조 금지
관계 정의
개체 - 관계도의 복잡성을 줄이기 위해 다대다의 관계를 일대일의 관계로 정의
관계 이름은 관계의 방향성을 고려하고, 관계 정의표 사용
관계 검증
관계의 중복이나 다대다의 관계를 단순화하는 등의 기본적인 검증
정상 관계, 자기 관계, 병렬 관계, 상호배타 관계 등의 검증
관계의 여러 가지 유형
정상 관계 (부서 - 사원)
자기 관계 (사원 - 사원)
병렬 관계 (사원 - 대리점)
상호배타적 관계 (영업직 - 사원 - 판매직)
개체 - 관계도 작성
논리적 데이터 모델의 토대를 구성하는 동형화 기법
데이터베이스 분석가, 개발자 및 사용자와의 인터페이스를 담당하는 도구
데이터베이스 골격이 표현되고, 데이터베이스 모델링에서 중요한 역할
개체의 표기
개체 정의 단계에서 추출되어 검증된 개체들을 사각형으로 표기
개체의 배열
개체를 배열하는 일반적인 지침
프로세스 진행 주기와 관련되는 개체는 진행 순서를 고려하여 좌→우, 상→하, 중심부에 배열
중심에 배열된 개체와 관계를 가진 2차 개체를 가까운 쪽에 배열
배열된 개체와 관계를 갖는 핵심 개체를 외곽으로 전개
관계의 연결
개체들 간의 관계를 연결할 때, 관계가 존재하는 개체 간에는 실선
관계선이 겹치지 않도록 주의
관계 이름의 표현
개체와 개체를 연결하는 링크의 좌우, 상하에 표기
관계 이름 기록 시 시계 방향에 따라 관계 방향을 일치
관계의 기수성 표시
해당 개체의 한 건에 대한 상대 개체의 기수성을 상대 개체 쪽에 표기
관계의 중복을 피하고, 다대다 관계는 2개의 일대다 관계로 분할
관계의 선택성 표시
해당 개체의 한 건에 대한 상대 개체의 선택성을 상대 개체 쪽에 표기
select * from friend * = 모든 파일
*.*은 무엇을 의미하는가?