Class #03: 데이타 모델링 (1)
in place March 16, 2002, lasted modified March 22, 2002, Working...
--------------------------------------------------------------------------------
데이타 모델 Data Model
데이타 모델의 개요
데이타 모델과 모델링의 정의
데이타 모델 - 데이타베이스를 구현하기 위하여 서류상으로 만든 개념적인 모형
데이타 모델링 -데이타 모델을 만드는 설계작업
데이타 모델링의 목적
데이타베이스 구현시 지침
발주자, 설계자, 프로그램어 사이의 의사소통
구현 후의 유지 보수
소요 자원 산출 (일정, HW/SW)
데이타 모델링의 순서
요구분석
개념적 설계
논리적 설계
물리적 설계 - Index
데이타 모델의 내용
개체 - Entity
속성 - Attributes
객체간의 관계 - Relationship
제약조건 - Integrity Constraints
개체와 관계
개체 Entity
객체 (Object) - 관심을 가지고 있는 유형 무형의 대상 - 예) 자동차, 성적, 온도
클래스 (Class) - 같은 속성을 가진 객체의 집합
인스턴스 (Instance) - 속성에 특정한 값을 가지는 하나 하나의 객체
속성 Attributes
개체를 구성하는 요소
속성은 속성이름 (Attribut Name) 과 도메인(Domain)으로 구성되어 있 다.
도메인은 속성이 가질수 있는 자료 값들의 집합
속성의 종류는
- 단일 속성 - 하나의 값만 가지는 속성
- 복합 속성 - 두개 이상의 속성으로 구성된 속성 - 이름은 성과 이름이 라는 속성의 구성으로 이루어짐.
- 유도 속성 - 다른 속성에서 유도될 수 있는 속성 - 생년월일로 부터 나이를 유도할 수 있음.
식별자와 키 Identifier and Key
자료 검색을 위해 각 자료가 서로 구별되어야 함
개체의 속성중에 각각의 인스탄스를 구별할 수 있도록 식별자(Identifer)를 선택한다.
식별자로 활용될 수 있는 속성(Attribute)를 키(Key)라 함.
키의 종류는
- 후보 키(Candidate Key) - 개체들을 고유하게 식별할 수 있는 속성
-기본 키(Primary Key) - 후보 키중에 대표로 선정된 키
- 복합 키( Composite Key)- 두개 이상의 속성으로 구성된 키
- 외부 키 - 다른 테이블의 기본 키로 사용되는 속성
- 보조 키 - 복수개의 개체들을 식별할 수 있는 속성
관계와 사상 Relationship and Mapping
각 개체 사이의 관계는 다음과 같은 종류가 있다 (Cardianlity) - 관계가 없는 개체도 고려
일대 일 관계
일대 다 관계
다대 일 관계
다대 다 관계
데이타 모델
데이타 모델의 개념
관심이 대상이 되는 현실세계의 대상과 대상의 변화를 컴퓨터(데이타베이스)에 표현하기 위한 방법
자료구조, 자료간의 관계, 의미, 제약조건 등으로 구성
데이타 모델의 3요소
- 구조 (Data Structure)
- 연산 (Operations)
- 제약조건 (Integrity Constraints)
추상 자료형 (Abstract Data Type) - 자료구조와 관련 연산 및 제약조건
개체-관계 데이타 모델 Entity-Relationship Model
목적에 부합되는 현실의 자료와 구성을 표현하는 모델
1976 Peter Chen에 의해 제안
개체-관계 도표 (Entity-Relationship Diagram)은 개체-관계 모델을 표현한 그림
주로 정적인 자료 구조를 표현하며 시간에 따른 변화를 표현하는데 어려움이 있다.
자료 구조에 대한 연산을 표현하기 어렵다.
차수 (Degree) - 관계에 참여한 개체의 수
관계에 의하여 생성된 개체
그림 3-1. 학생진로관리를 위한 ERD
데이타 모델
컴퓨터(데이타베이스)에서의 업무처리를 위한 모델
개체-관계 모델을 다시 데이타 모델로 바꿈
각 DBMS가 지원하는 데이타 모델에 의해 DBMS의 종류를 나눔
ORACLE - 관계형 데이타베이스, Orion - 객체지향적 데이타베이스
데이타 모델의 종류
관계 데이타 모델 (Relational Data Model)
- 개체를 Table을 이용하여 표현하고 개체간의 관계를 공통속성을 이용하여 표현
- 개체와 개체은 포인터와 같이 직접적으로 연결되지 않고 독립적으로 존재하는 모델
- 개체와 개체의 관계는 공통속성의 값을 이용하여 연결하며 연결에 방향성이 없다.
- 일반적으로 자료구조가 단순한 은행 업무등에 사용하며 현재 가장 많이 사용되는 모델이다.
[img2]
그림 3-2. 학생진로관리를 위한 관계형 데이타 모델
객체 지향적 데이타 모델 (Object-Oriented Data Model)
- 객체지향적 개념(Object Oriented Concept): 클래스, 객체, 객체 ID, 상속관계, 구성관계, 메쏘드, Encapsulation, Polymorphism을 지원하는 모델
- 객체 ID라는 시스템 포인터를 사용한다.
- 사용자 정의 자료형(User Defined Data Type)이 가능한다 - Class Composition Relationship
- 메쏘드(혹은 Member Function)의 정의가 가능하다 - Abstract Data Type)
- 자료 구조와 Method의 Inheritance 가 가능하다 - Polymorphism
[img3]
그림 3-3. 학생진로관리를 위한 객체지향적 데이타 모델
References:
introduction to Object-Oriented Concept (http://engdb.tripod.com/kedb/designdb/odbeng/odbeng04.htm)
- Object, classe, (class/instance) method, interface, message passing, class hierarchy, class composition, encapsulation and polymorphism
- See chapter 3.1, and we will discuss the "polymorphism" .
introduction to Object-Oriented Concept (2) (http://engdb.tripod.com/kedb/designdb/backward/back04.htm)
- See chapter 4.1.
introduction to Object-Oriented Databases (http://engdb.tripod.com/kedb/designdb/odbeng/odbeng04.htm)
- See chapter 3.2.
introduction to Active Object-Oriented Databases (http://engdb.tripod.com/kedb/designdb/backward/back04.htm)
- Event, Condition and Action Rules and TRIGGER and CONSTRAINTS
- See chapter 4.3 and 4.4.
An Example of Object-Oriented Database (Data Definition and Manipulation) (http://engdb.tripod.com/kedb/designdb/odbeng/odbeng05.htm)
- See chapter 4.1.
Comparison between Object Oriented and Relational Databases (http://engdb.tripod.com/kedb/designdb/odbeng/odbeng05.htm)
- Difference between Relational databases and object-oriented databases in data definition and manipulation. See the comparison example (http://engdb.tripod.com/kedb/kms/lectures/lecture03/pdm03sub.htm)
- See the figure 10 and the SOL specification in chapter 4.2.2.
- We will discuss the "reference" concept in chapter 4.1 again.
|