데이터베이스의 정의 : 어떤 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 집합체
데이터베이스의 특징
•
데이터베이스는 데이터의 대규모 저장소, 여러 부서에 속하는 여러 사용자에 의해 동시 사용됨.
•
모든 데이터가 중복을 최소화하면서 통합됨
•
한 조직체의 운영데이터 뿐만 아니라 그 데이터에 관한 명세(데이터베이스 스키마 또는 메타데이터)까지 포함
•
효율적으로 접근이 가능하고 질의(검색, 조회) 가능
데이터베이스 관리 시스템(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
* = 모든 파일
*.*은 무엇을 의미하는가?