코딩공작소

관계형 데이터모델 본문

어플리케이션개발/DB

관계형 데이터모델

안잡아모찌 2018. 10. 7. 17:25

※관계형 데이터 모델이란?


 - 관계의 집합으로서의 데이터를 대표하는것



<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