sec 36) 데이터 모델의 개념(B)
* 데이터 모델 - 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형, 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약 조건등을 기술하기 위한 개념적 도구들로 구성되어 있다. DB 설계과정에서 데이터의 구조(Schema)를 논리적으로 표현하기 위해 지능적 도구로 사용.
- 데이터 모델 구성 요소: 개체, 속성, 관계
- 데이터 모델 종류: 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
- 데이터 모델에 표시할 요소: 구조, 연산, 제약조건
*개념적 데이터 모델 - 현실 세계에 대한 인간의 이해를 돕기위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정. 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실세계를 표현한다. 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 한다. 대표적인 개념적 데이터 모델로는 E-R모델이 있다.
*논리적 데이터 모델 - 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다. 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현한다. 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다. 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다. 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계모델, 계층모델, 네트워크 모델로 구분한다.
필기 20.9
* 데이터 모델에 표시할 요소
- 구조(Structure) - 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 연산(Operation) - 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본도구
- 제약조건(Constraint) - DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
sec 37) 데이터 모델의 구성요소(B)
* 개체(Entity) - DB에 표현하려는 것, 사람이 생각하는 개념, 정보단위 같은 현실세계의 대상체. 실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성. 독립적으로 존재, 자체로서도 구별이 가능하며, 유일한 식별자나(Unique Identifier)에 의해 식별. 다른 개체와 하나 이상의 관계(Relationship)가 있다.
ex)
속성 개체 타입(레코드 타입)
개체 세트
교수번호 | 성명 | 전공 | 소속 |
12 | 조성진 | 곤충 | 안산대 |
13 | 박윤영 | 미생물 | 강원대 |
14 | 강현준 | 식물 | 서울대 |
개체 인스턴스
교수개체
교수개체의 구성요소
속성: 개체가 가지고 있는 특성, 교수번호 성명 전공, 소속
개체타입: 속성으로만 기술된 개체의 정의
개체 인스턴스: 개체를 구성하고 있는 각 속성들이 값을 가져 하나의 개체를 나타내는 것으로 개체 어커런스(Occurrence)라고도 함.
개체 세트: 개체 인스턴스의 집합
* 속성(Attribute) - DB를 구성하는 가장 작은 논리적 단위
파일 구조상의 데이터 항목 또는 데이터 필드에 해당
속성은 개체를 구성하는 항목으로 개체의 특성을 기술.
속성의 수는 디그리(Degree) 또는 차수.
속성은 속성의 특성과 개체 구성방식에 따라 분류.
* 속성의 특성에 따른 분류
기본속성(Basic Attribute) - 업무분석을 통해 정의한 속성, 속성 중 가장 많고 일반적, 업무로부터 분석한 속성이라도 업무상 코드로 정의한 속성은 기본 속성에서 제외
설계속성(Designed Attribute) - 원래 업무상 존재하지 않고 설계과정에서 도출해내는 속성, 업무에 필요한 데이터 외에 데이터 모델링을 위해 업무를 규칙화하려고 속성을 새로 만들거나 변형하여 정의하는 속성
파생속성(Derived Attribute) - 다른 속성으로부터 계산이나 변형 등의 영향을 받아 발생하는 속성, 파생속성은 되도록 적은 수를 정의하는 것이 좋음
* 속성의 개체구성 방식에 따른 분류
- 기본키 속성(Primary Key Attribute) - 개체를 유일하게 식별할 수 있는 속성
- 외래키 속성(Foreign Key Attribute) - 다른 개체와의 관계에서 포함된 속성
- 일반 속성 - 개체에 포함되어 있고 기본키, 외래키에 포함되지 않는 속성
* 관계(Relationship) - 개체와 개체사이의 논리적인 연결. 개체간의 관계와 속성간의 관계가 존재.
* 관계의 형태
- 일대일(1:1) - 개체 집합 A의 각 원소가 개체 집합 B의 원소 한 개와 대응하는 관계
- 일대 다(1:N) - 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러개와 대응, 개체 집합 B의 각 원소는 개체 집합 A의 원소 한 개와 대응하는 관계
- 다대다(N:M) - 개체 집합 A의 각 원소는 개체 집합 B의 원소 여러개와 대응하고, 개체 집합 B의 각 원소도 개체 집합 A의 원소 여러개와 대응하는 관계
* 관계의 종류
- 종속관계(Dependent Relationship) - 두 개체 사이의 주종 관계, 식별관계와 비식별 관계있음
- 중복관계(Redundant Relationship) - 두 개체 사이에 2번 이상의 종속 관계가 발생하는 관계
- 재귀관계(Recursive Relationship) - 개체가 자신과 관계를 갖는 것, 순환관계(Recursive Relationship)
- 배타관계(Exclusive Relationship) - 개체의 속성이나 구분자를 기준으로 개체의 특성을 분할하는 관계, 배타 AND 관계와 배타 OR관계로 구분함
sec 38) 식별자(Identifier) (D)
* 식별자 - 하나의 개체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 구분자. 모든 개체는 한 개 이상의 식별자를 반드시 가져야 함.
* 식별자의 분류
>> 대표성 여부
- 주 식별자(Primary Identifier): 개체를 대표하는 유일한 식별자
- 보조 식별자(Alternate Identifier): 주 식별자를 대신하여 개체를 식별할 수 있는 속성.
>> 스스로 생성 여부
- 내부 식별자(Internal Identifier): 개체 내에서 스스로 만들어지는 식별자
- 외부 식별자(Foreign Identifier): 다른 개체와의 관계(Relationship)에 의해 외부 개체의 식별자를 가져와 사용하는 식별자
>> 단일 속성 여부
- 단일 식별자(Single Identifier): 주 식별자가 한 가지 속성으로만 구성된 식별자
- 복합 식별자(Composit Identifier): 주 식별자가 두 개 이상의 속성으로 구성된 식별자
>> 대체여부
- 원조 식별자(Origianl Identifier): 업무에 의해 만들어지는 가공되지 않은 원래의 식별자로, 본질 식별자라고도 함
- 대리 식별자(Surrogate Identifier): 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자로, 인조 식별자라고도 함
* 후보 식별자 - 개체에서 각 인스턴스를 유일 식별 할 수 있는 속성(하나의 개체에 한 개 이상의 후보 식별자가 존재 가능, 주 식별자, 보조 식별자로 구분지정).
* 주 식별자의 특징
- 유일성 - 개체 내의 모든 인스턴스들은 주 식별자에 의해 유일하게 구분
- 최소성 - 유일성을 만족시키기에 필요한 최소한의 속성으로만 구성되어야 함
- 불변성 - 주 식별자가 특정 개체에 한 번 지정되면 그 식별자는 변하지 않아야 함
- 존재성 - 주 식별자가 지정되면 식별자 속성에 반드시 데이터 값이 존재
sec 39) E-R(개체-관계) 모델(A)
* E-R(Entity-Relationship, 개체-관계)모델
- E-R모델은 개체와 개체 간의 관계를 기본 요소로 이용해 현실세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하는 방법
- E-R 모델은 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적인 구성요소가 정립됨
- 개념적 데이터 모델의 가장 대표적인 것
- 개체타입(Entity type)과 이들간의 관계 타입(Relationship Type)을 이용해 현실 세계를 개념적으로 표현
- E-R모델에서는 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사
- E-R 다이어그램으로 표현하며, 1:1, 1:N, N:M 등의 관계유형을 제한 없이 나타낼 수 있음
필기 20.9,20.6
* E-R 다이어그램
- 사각형 - 개체(Entity)타입필기 20.9,20.6
- 마름모- 관계(Relationship)타입필기 20.9,20.6
- 타원 - 속성(Attribute)필기 20.9,20.6
- 이중타원 - 다중값 속성(복합속성)
- 밑줄타원 - 기본키 속성
- 복수 타원 - 복합속성 _ ex)성명은 성과 이름으로 구성
- 관계 - 1:1, 1:N, N:M 등의 개체간 관계에 대한 대응수를 선위에 기술
- 선, 링크 - 개체 타입과 속성을 연결필기 20.9,20.6
sec 40) 관계형 데이터베이스의 구조/ 관계형 데이터 모델(A)
* 관계형 데이터베이스 - 2차원 표(Table)로 데이터 상호관계 정의하는 DB
- 1970년 IBM이 근무하던 코드(E. F. Codd)에 의해 처음 제안
- 개체(Entity)와 개체(Relationship)를 모두 릴레이션(Relation)이라는 표(Table)로 표현하기 때문에 개체를 개체 릴레이션과 관계 릴레이션이 존재
- 장점: 간결하고 보기 편하며, 다른 데이터베이스로의 변환이 용이
- 단점: 성능이 다소 떨어짐
필기 20.9, 20.8, 20.6
* 관계형 데이터베이스의 릴레이션 구조
릴레이션(Relation)은 데이터들을 표(Table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성(릴레이션 인스턴스: 데이터 개체를 구성하고 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 가진 것)
<학생> 릴레이션
학번 | 이름 | 학년 | 신장 | 학과 |
12 | 가나다 | 1 | 170 | CD |
13 | 라마바 | 2 | 169 | CD |
14 | 사아자 | 3 | 180 | ID |
15 | 차카타 | 4 | 175 | ED |
속성
릴레이션 스키마
튜플 릴레이션
릴레이션 인스턴스
학년의 도메인
필기 20.9,20.8
* 튜플(Tuple)
- 튜플은 릴레이션을 구성하는 각각의 행을 말함
- 속성의 모임으로 구성
- 파일 구조에서 레코드와 같은 의미
- 튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응수라고 함
필기 20.9,20.8
* 속성(Attribute)
- 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
- 속성은 개체의 특성을 기술
- 속성의 수를 디그리(Degree) 또는 차수
필기 20.6
* 도메인(Domain)
- 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
- 도메인은 실제 애트리뷰트 값이 나타날 때 그값의 합법 여부를 시스템이 검사하는데에도 이용
* 릴레이션의 특징
- 한 릴레이션에 같은 튜플이 포함X , 릴레이션에 포함된 튜플들은 모두 상이
- 한 릴레이션에 포함된 튜플 사이에는 순서X
- 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간 따라 변함
- 릴레이션 스키마를 구성하는 속성들 간의 순서 중요X
- 속성의 식별 위해 속성의 명칭을 유일해야 하지만, 속성을 구성하는 값은 동일 값 존재가능
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정
- 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.
* 관계형 데이터 모델(Relational Data Model)
- 관계형 데이터 모델은 2차원적인 표(Table)을 이용해 데이터 상호관계를 정의하는 DB구조를 말함
- 가장 널리 사용되는 데이터 모델
- 파일 구조처럼 구성한 테이블들을 하나의 DB로 묶어서 테이블 내에 있는 속성들 간의 관계(Relationship)를 설정하거나 테이블 간의 관계를 설정해 이용
- 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터간의 관계를 표현
- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델
- 관계형 모델의 대표적인 언어 SQL
- 1:1, 1:N, N:M 관계를 자유롭게 표현 할 수 있음