코딩공작소
관계형 데이터모델 본문
※관계형 데이터 모델이란?
- 관계의 집합으로서의 데이터를 대표하는것
<Domain> --> Attribute
- Domain D : atomic valid value들의 집합
- Atomic : 각각의 원자적인 나누어질수 없는 value
- Specifying a domain : 각각의 도메인을 위해 명시된 데이터 타입( ex, int , String ...)
<관계 스카미와 instance >
Relation schema R
- R(A1,A2,.....)으로 명시됨
- 관계 이름 R과 특성의 리스트(A1,A2,....)로 만들어져 있다.
Attribute Ai
- 관계 스키마 R안에 있는 어떤 도메인 D에 의해 행해지는 역할의 이름
Degree of relation
- 그것의 관계 스키마의 특성의 개수. (n개의 특성을 가지고 있는 것)
DB는 relation들의 집합, relation은 튜플들의 집합이다.
<Relation>
R : set of n-tuples r={t1,t2,...}
각각의 튜플은 순서가 없지만 튜플안에 있는 n value 리스트는 순서가 있다.
t=<v1,v2,......>
각각의 value는 dom(A)의 요소이거나 특별한 null 값이다.
<Schema>
Degree = 5, Cardinality = 3 이다.
Relation(or relation state) r(R)
- n개의 도메인들 (dom(A1),dom(A2),....)의 수학적 관계로 이루어져 있다.
**Cartesian product
Cardinaliy of relation : 관계안에서 튜플의 총 숫자
Current relation state : 주어진 시간에서 관계 상태, 현실 세계의 특정한 상태를 대표하는 타당한 튜플들만을 반영한다.
Attribute name : 다른 역할 , 해석 들을 도메인을 위해 가리킨다.
<관계 타입의 특성 >
- 관계에서 튜플의 순서는 의미가 없다
- 튜플안에서의 value들의 순서와 관계의 대체 정의 : 속성과 값의 일치성이 유지되는 한 속성과 값의 순서는 중요하지 않음
- 관계의 대체 정의 : 튜플은 (<속성>,<값>)쌍의 집합으로 이루어져있다. 각 쌍은 도메인에 속성부터 값까지 mapping의 value를 준다.
- 관계의 첫 정의의 사용 : 순서가 있는 튜플안에서의 속성과 값.
<튜플안에서의 값과 null>
- 튜플안에서의 각 값들은 atomic하다
- Flat Relation model : Composite, multivalued 속성은 허락되지 않는다.
- Multivalued 속성 : 분리된 관계에 의해 대표되어야 한다.
- Composite 속성 : 기본 관계모델안에서 간단한 구성요소 속성으로 인해 대표되어야 한다.
- Null values : 알지못하거나 튜플에 적용될 수 없는 속성의 값을 대표한다.
<관계모델 정의를 위한 제약조건>
관계모델을 정의하기 위해 내려지는 몇가지 제약조건
- 도메인 제약조건 : 속성 값들은 상응하는 도메인의 멤버여야 한다. (데이터 타입이 맞는 도메인에 값이 저장되어야 한다)
- 키 제약조건 : 서로 다른 두개의 튜플은 같은 키 속성을 갖을 수 없다.
- 슈퍼 키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성O but 최소성 X
- 후보 키 : 관계 스키마는 하나 이상의 키를 갖을 수 있다. 주키가 될 수 있는 키들의 속성
- 주 키: 후보키들중에 하나, 밑줄로 표시 ,DB디자니어가 선택
- 대체 키 : 후보 키가 둘 이상일 때, 주키를 제외한 나머지 후보키들을 말함.
- 외래 키 : 참조되는 릴레이션의 기본 키와 대응되어 릴레이션 간의 참조관계를 표현하는 도구 - Entity integrity 제약조건 : 어떤 주키도 null값을 갖을 수 없다.
- 참조 무결성 제약조건 : Relation A의 튜플이 Relation B의 튜플을 참조하려면 참조하려는 그 튜플은 relation B에 존재해야 한다.
외래 키(FK) : PK값중에 하나를 갖아야 함. 한쪽의 entity와 다른 쪽의 entity의 관계가 있는지 없는지 알기위해 사용.
FK가 PK안에 있는 key여야 한다.
Relational DB schema S --> 틀
- 관계스키마들의 집합
- 무결성 제약조건들 IC의 집합
- valid state : 모든 제약조건을 만족하는 집합 IC
Relational DB state -->값
- 관계 states들의 집합
테이블, 관계 인스턴스 들은 DB인스턴스에 포함된다.
<DML 동작> <-- DB instance를 바꿀 때
retrievals 과 update : 검색과 업데이트
기본동작 : 삽입,삭제,업데이트
삽입과정 :
- tuple을 table에 삽입해준다.
- DBMS에 의해 적합성을 검사 당한다.
- 제약조건을 위배하지 않도록 삽입을 해야 한다. 만약 위배된다면 거절됨
삭제과정 :
- 참조 무결성 제약조건만이 위배될 가능성이 있다.
- Restrict : 삭제를 거절한다.
- Cascade : 참조하고 있던 참조개체까지 같이 삭제해 버린다.
- set null or set default
업데이트과정 :
- 존재하는 튜플의 특정한 값을 바꾸는 것.
- 만약 속성이 주키나 외래키가 아니면 아무 문제가 발생하지 않는다.
- 주키/외래키는 업데이트 할때 : 삽입/삭제 과정과 같은 문제가 발생할 수 있다.
'어플리케이션개발 > DB' 카테고리의 다른 글
DB하드웨어(디스크저장,기본파일구조,해싱) (0) | 2018.10.21 |
---|---|
Logical Design by ER Relation Mapping (0) | 2018.10.13 |
ER Model (0) | 2018.10.05 |
데이터베이스 설계 (0) | 2018.10.05 |
DBMS (0) | 2018.10.02 |