데이터 모델이란?
데이터 모델은 구조(S), 연산(O), 제약조건(C)로 이루어져 있음
1. 구조 : 데이터의 구조
- 정적 성질, 객체 타입과 이들간의 관계를 명세함
2. 연산 : 데이터의 동적 성질
- 객체 인스턴스를 처리하는 작업에 대한 명세
- 데이터 조작 기법
3. 제약조건 : 데이터의 논리적인 제약
- 구조로부터 파생 의미적 제약
- 데이터 조작의 한계를 표현하는 규정
예) 정수
구조 : -2.-1,0,1,2...
연산 : 사칙연산
제약조건 :정수의 제한 2.5는 정수가 아님
관계형 데이터 모델을 사용하는 이유
- 모델의 구조가 단순함
- 집합 이론이라는 수학족 이론에 기반하여 모델이 강건함
- SQL이라는 간단한 비절차적 언어로 사용하기 쉬움
관계형 데이터 모델
- 구조 : 릴레이션 (또는 테이블)
- 연산 : 관계대수
- 제약조건 : 무결성 제약조건
관계형 데이터 모델의 구조와 연산
1. 관계형 데이터 모델의 구조
- 릴레이션
- 2차원 테이블 형태
- 테이블의 열 => 속성 (도메인:속성이 가질수 있는 값의 범위)
- 테이블의 행 => 튜플 (릴레이션 튜플들의 집합)
2. 릴레이션의 특징
1) 튜플의 유일성
-릴레이션은 튜플의 집합임
- 집합은 중복을 혀용하지 않음
2) 튜플의 무순서성
- 집합에서 원소들 간의 순서는 없음 ({1,2,3}={2,3,1})
3) 속성의 무순서성
- 릴레이션 스키마(구조정보)는 속성들의 집합임
4) 속성의 원자성
- 속성의 값은 원자값임
- 논리적으로 더 분해할 수 없음
3. 관계형 데이터 모델의 연산
- 관계대수 : 시스템 관점
- SQL : 사용자 위주
4. 관계 대수의 연산자의 분류
1) 일반 집합 연산자
- 합집합, 교집합, 차집합, 카티션 프로덕트
- 합병호환성 : 연산의 피연산자들이 지켜야할 제약조건
· 차수(속성의 수)가 같아야 함
· 대응되는 속성 쌍 별로 타입 (또는 도메인)이 같아야 함
· 대응되는 속성 쌍 별로 의미가 같아야 함
(1,2조건은 시스템에서 확인해줌, 3조건은 사람이 해야함)
2) 순수관계 연산자
- 릴레이션 2차원 구조이기 때문에 유도되는 연산자 (셀렉트, 프로젝트, 조인, 디비전)
관계형 데이터 모델의 제약조건
1.키
키의 개념 : 하나의 테이블 내에서 각 튜플의 유일하게 식별할 수 있느 속성들의 집합
- 실생활의 키
- 하나의 자물쇠를 열 수 있는 열쇠는 하나임
- 생활의 편리성을 위하여 키를 복제하여 쓰지만 논리적ㅇ으로는 하나임
키의 종류
1) 후보키 : 한 릴레이션 R에 대한 속성의 집합 K으로 다음과 같은 성질을 만족함
- 유일성 : 서로 다른 두 튜플의 속성집합 K의 값은 같지않음
- 최소성 : K는 서로 다른 두 튜플을 식별하기 위한 최소한의 속성들로만 이루어져 있음
2) 슈퍼키
- 유일성을 만족하는 속성 집합
- 최소성을 만족하지 않아도 됨
- 일반적으로 후보키는 슈퍼키의 부분 집합임(슈퍼키는 후보키를 포함함)
3) 기본키
- 하나의 릴레이션에는 후보키가 여러 개일 수 있음
- 여러 개의 후보키 중 DBA가 지정한 하나의 키임
4) 대체키
- 후보키 중 기본키를 제외한 나머지 후보키
5) 외래키
- 한 릴레이션 R1의 튜플과 다른 릴레이션 R2의 하나의 튜플과의 연관 관계를 표시하기 위하여 사용함
- R1의 속성 집합 FK의 도메인이 R2의 기본키일때, FK를 R1의 외래키라고 함
- R1을 참조 릴레이션, R2를 피참조 릴레이션이라고 함.
2. 무결성 제약조건
1) 개체 무결성
- 의미 : 서로다른 두 튜플은 같을 수 없음
- 정의 : 기본키 값은 언제고 어느 때고 NULL값일 수 없음
2) 참조 무결성
- 외래키 값은 피참조 릴레이션의 기본키 값이거나 NULL값임
- 추가 지정을 통해 NULL을 가질 수 없다고 제약을 걸 수 있음
3) 도메인 무결성
- 속성값은 해당 속성 도메인에 속한 값들 중 하나이어야 함
- DBMS는 데이터베이스의 상태 변화(삽입, 갱신, 삭제)에도 항상 무결성 제약조건을 검사하고 유지시킴
'인공지능 > 데이터 사이언스' 카테고리의 다른 글
데이터 분석 연습2 - 서울시 범죄 현황 분석 (1) | 2020.06.19 |
---|---|
데이터 분석 연습1 - 서울시 구별 CCTV 현황 분석 (0) | 2020.05.10 |
소셜 데이터 마이닝 분석 (0) | 2020.02.22 |
소셜 빅데이터 마이닝 개념과 분석 유형 (0) | 2020.02.20 |
데이터베이스의 기초 (0) | 2020.01.19 |