basic relation model (기본 관계 모델)
3.1 관계모델은 DB를 relation들의 모임으로 표현
3.1.1 domain, attribute, tuple, relation
Domain : 원자값(더 이상 나눠질수 없는 것)들의
집합, 해당 Domain이 속하는 값들의 datatype을 명시,
NULL은 모든 domain의 멤버, 다른 attribute가 같은 domain을 갖을 수 있다. 구성요소 : 데이터타입, 형식, 이름
릴레이션 스키마 : R이라는 릴레이션 이름과, A_1 이라는
에티르뷰트(도메인과 같은 역할)들로 이루어진다.
릴레이션스키마의 릴레이션(relation state) : n-tuple들의 집합, 실세계의 특정상태에서 해당되는 tuple들만 반영
3.1.2 릴레이션의 특성
릴레이션에서 투플들의 순서는 존재하지 않지만 저장 순서는 존재한다.
투플 내에서의 값들과 순서와 릴레이션의 또 다른 정의 : 투플 내에서 값들의 순서는 중요하지
않다.
투플 내의 각 값은 원자값이다 => 제1 정규형
NULL : 값을 모를 때, 가능하지 않은 값일 때, 이 투플에 그 attribute를
적용할수 없을 때 사용한다.
3.2 관계 모델 제약조건과 관계 DB 스키마
본질적 모델 기반 제약조건 : data model 자체에 존재하는 제약조건
스키마 기반 제약조건 : data model의 schema에서
직접 표현 가능한 제약조건으로 DDL로 명시
응용 기반 제약조건 : schema에서 표현이 불가능한 제약조건으로 응용프로그램에 의해
표현
3.2.1 도메인 제약조건 : 각각의 투플 내에서 각각의 attribute의 값이 반드시 도메인에 속하는 원자값이여야 함
3.2.2 키 제약조건과 널 제약조건
형식 관계 모델에서 relation은 tuple들의
집합으로 정의
releation의 모든 tuple도 중복되지 않아햐 한다. tuple마다 갖는 unique한 attribute를 superkey라 한다.
유일성 제약조건 : super key가 같은 tuple은
존재하지 않는다.
모든 relation은 적어도 하나의 superkey를
갖는다.
KEY : 최소의 superkey
3.2.3 관계 DB와, 관계 DB schema
관계DB는 서로 연관된 다수의 relation을
갖는다.
관계DB schema : relation schema들의 집합과 무결성 제약조건들의 집합이다.
관계DB state : relation state들의 집합
무결성 제약조건을 준수하면 유효한 상태 아니면 유효하지 않은 상태
무결성 제약조건은 DB schema에 명시되어있다
3.2.4 엔티티 무결성 제약조건, 참조 무결성 제약조건, 외래키
엔티티 무결성 제약조건 : 기본키는 null값이
될 수 없다. (기본키는 tuple들을 구별하는데 사용하기
때문)
참조 무결성 제약조건 : 두 릴레이션 사이에 명시되는 제약조건, 한 relation에 있는
tuple이 다른 relation의
tuple을 참조하려면 반드시 참조되는 tuple이 그 relation안에 존재 해야한다.
foreign key : 외래키가 되기 위해서는 참조 무결성 제약조건이 만족되어야 한다. 동일한
relation을 참조할 수 없다. 외래키는 자신의 relation을 참조할 수 있다.
외래키의 attribute는 기본키의 attribute와
동일한 doamin을 갖는다. -> 외래키는 참조한다.
현재 상태의 한 tuple 내의 외래키의 값은 현재상태의 어떤 tuple 내의 기본키와 일치하거나 null값을 가져아한다.
3.3 갱신 연산과 트랜잭션 그리고 제약조건 위반의 처리
관계 모델의 연산은 추출과 갱신(삽입, 삭제, 갱신 또는 수정)으로 나누어진다.
3.3.1
삽입 연산은 relation R에 삽입한 tuple t에
대한 attribute값들의 리스트를 제공한다.
도메인 제약조건, 키 제약조건, 엔티티제약조건, 참조 제약조건 4가지를 위반할 수 있다. 기본은 거부
3.3.2 삭제 연산
참조무결성 제약조건 1개만 위반할 수 있다. 기본은
거부
3.3.3 갱신 연산
relation R에 있는 tuple들 중에서 하나 이상의 attribute값을 변경하는데 사용
기본키나 외래키가 아닌 attribute의 갱신에는 아무런 문제가 없다, 데이터타입과 도메인이 정확한지 확인
3.3.4 트랜잭션 개념 : DB로부터 읽기, 삽입, 삭제, 갱신 같은 DB 연산을 수행하는 program
'SW > Database MySQL' 카테고리의 다른 글
Entity-relation을 사용한 conceptual data modeling (0) | 2017.09.05 |
---|---|
sql의 데이터 정의와 타입 (0) | 2017.09.05 |
Data model, schema, instance (0) | 2017.09.05 |
database 기초상식 (0) | 2017.09.05 |
JOIN (0) | 2017.09.05 |