과목4. 데이터베이스 구축, 11강. 논리 데이터베이스 설계-데이터 모델(2)
[ 목차 ]
1. 관계 데이터 모델
2. 용어 정리
3. 릴레이션의 특징
4. 키
5. 무결성
6. 제약조건
7. 데이터베이스 무결성 보장 방법
8. 관계 데이터 언어(관계대수, 관계해석)
9. 관계대수
10. 관계 대수 한계
11. 관계해석
12. 관계해석 특징
13. 튜플 관계 해석
14. 도메인 관계 해석
1. 관계 데이터 모델
1) E.F CODD가 1972년에 제안한 데이터 모델로 오늘날 대부분 DBMS에서 지원
2) 실세계 데이터를 행과 열로 된 표(테이블, 릴레이션) 형태로 저장하고 한 테이블의 필드 값을 이용해서 다른 테이블에 관련된 데이터를 찾는 식으로 검색하는 데이터 모델
3) DB는 테이블들의 집합으로 표현되며 테이블은 튜플들의 지합, 튜플은 속성들의 집합으로 구성
속성, 칼럼, 애트리뷰트, 필드 -> 튜플, 행, 레코드 -> 테이블, 릴레이션 -> 데이터베이스1) 각 학생은 레코드로 표시되고 레코드의 각 필드는 단일값을 보유
2) 각 테이블에는 모든 레코드에서 서로 다른 값을 가지는 필드가 있어야 함(PRIMARY KEY)
2. 용어 정리
1) 속성 : 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부 정보의 관리 요소로 개체를 구성하는 항목
2) 튜플 : 릴레이션의 행을 구성하는 속성값들의 집합
3) 차수 degree : 속성들의 수
4) 카디날리티 : 튜플들의 수
5) 도메인 : 하나의 속성이 취할 수 잇는 같은 타입의 원자 값들의 집합으로 속성 값의 범위를 의미
6) 릴레이션 인스턴스 : 릴레이션의 어느 시점에 들어 있는 튜플들의 집합으로 현재 들어가 있는 실제 데이터를 지칭
3. 릴레이션의 특징
1) 한 릴레이션에 포함된 튜플들은 모두 상이함(다름)
2) 한 릴레이션에 포함된 튜플 사이에 순서는 없음
3) 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변화
4) 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않음
5) 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만 속성 값은 동일한 값이 존재 가능
6) 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정
7) 속성은 더 이상 쪼갤 수 없는 원자값만을 저장
8) 릴레이션을 구성하는 튜플을 유일하게 식별하기 위한 속성들의 부분집합을 키로 설정
4. 키
1) DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성
2) 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별 가능해야 함(기본키, 후보키, 슈퍼키)
3) 최소성 : 속성의 집합인 키가 릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미(기본키, 후보키)
슈퍼키 - 유일성
1) 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
2) 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않음
후보키 - 유일성, 최소성
1) 한 릴레이션 내에 있는 모든 튜플들을 유일하게 식별할 수 있는 하나 또는 몇개의 속성 집합
2) 기본키로 사용할 수 잇는 속성들
3) 하나의 릴레이션 내에서 중복된 튜블을 없기에 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재
기본키
1) 후보키 중에 선택한 키
2) 중복(unique)이나 null 불가능
대체키
1) 후보키 중에서 기본키를 제외한 속성들
2) = 보조키
외래키
1) 어떤 릴레이션에서 다른 릴레이션을 참조할 때 기준이 되는 속성
2) 참조하고자 하는 릴레이션의 기본키와 동일
5. 무결성
1) 데이터 무결성 : DB에 저장된 데이터의 일관성과 정확성을 지키는 것으로 무결성을 가지도록 하는 행위를 무결성 강화라 지칭
2) 도메인 무결성 : 열의 값에 관련(속성)된 무결성으로 이를 강화하는 방법은 데이터 형식, NULL/NOT NILL, 기본값, 체크/규칙
3) 엔터티 무결성=테이블 무결성 : 테이블의 모든 행들이 유일하게 식별되는 무결성으로 대부분 기본 키에 의해 강화
4) 참조 무결성 : 서로 관계를 맺은 두 테이블 사이의 무결성으로 외래키에 의해 강화되며 자식 테이블의 외래키는 반드시 부모 테이블의 기본키 값으로 존재하는 값을 가져야 하며 외래키가 참조하는 키본 키 값은 변경, 삭제가 금지
6. 제약조건
1) DB에 저장되는 데이터의 정확성을 보장하기 위해 키를 이용하여 입력되는 데이터에 제한을 주는 것
2) 도메인 제약조건 : 각 필의 값은 반드시 그 필드의 도메인에 속하는 원자값 이어야 함
3) 엔터티 제약조건
1] 테이블마다 튜플을 서로 구분할 수 있는 필드가 존재하며 이 필드를 기본키라 지칭
2] 기본키 값을 널 값이 될 수 없다는 조건을 엔터티 무결성 제약조건이라 지칭(중복도 불가능)
4) 참조 무결성 제약조건
1] 한 테이블의 필드 값이 다른 테이블의 기본 키 값을 참조할 때 두 테이블 사이에 참조무결성 제약조건이 존재
7. 데이터베이스 무결성 보장 방법
1) 응용프로그램 : 데이터를 조작하는 프로그램 내에 무결성 조건을 검증하는 코드를 추가
2) 트리거 이벤트 시 PROCEDURE를 실행하여 무결성 조건 실행
3) 제약조건 : 데이터베이스 제약 조건 기능을 선언하여 무결성 유지
8. 관계 데이터 언어(관계대수, 관계해석)
1) 관계 데이터베이스의 릴레이션을 조작하기 위한 기본연산에는 관계대수와 관계해석이 존재
2) 사용자 입장에서 볼 떄 데이터를 처리하는 데이터 언어가 되며 관계대수는 절차적, 관계해석은 비절차적 언어
3) 기본적으로 해석과 대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등
4) 관계해석으로 표현한 식은 관계대수로 표현 가능
9. 관계대수
1) 관계형 DB에서 원하는 정보와 이를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어(절차 중심)
2) 릴레이션을 처리하기 위해 연산자와 연산규칙을 이용하는 언어
3) 피연산자가 릴레이션이고 결과도 릴레이션
4) SQL의 이론적인 기초
5) 순수 관계 연산자 : 관계 DB에 적용할 수 있도록 특별히 개발한 관계 연산자 / SELECT, PROJECT, JOIN, DIVISION
SELECT
1) 릴레이션에서 주어진 조건을 만족하는 튜플들을 검색하는 것으로 시그마로 표현
2) 행, 수평적 연산
3) 오메가 조건 (테이블명)으로 표현
PROJECTION
1) 릴레이션에서 주어진 조건을 만족하는 속성들을 검색하는 것으로 파이로 표현
2) 열, 수직적 연산
3) 파이 속성 (테이블명)으로 표현
4) 연산 결과에 중복이 발생하면 중복 제거
JOIN
1) 두 개의 릴레이션에서 공통된 속성을 연결하는 것
2) 테이블명1 리본모양 조인속성r = 조인속성s 테이블명2 으로 표현
3) EQUI JOIN과 NATURAL JOIN이 존재
DIVISION
1) 릴레이션R의 속성이 릴레이션S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
2) 릴레이션1 [1.속성 나눗셈 2.속성] 릴레이션2 로 표현
6) 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트(교차곱)
1) 수학적 집합 이론에서사용하는 연산자로 릴레이션 연산에도 적용 가능
2) 합, 교, 차집합은 합병조건이 가능해야 함
3) 합병조건 : 두 릴레이션 간에 속성수가 같고 각 속성이 취할 수 있는 도메인 범위가 같아야 함
합집합 UNION
1) 두 릴레이션에 존재하는 튜플의 합집합을 구하되 결과로 생성된 릴레이션에서 중복되는 튜플 제거
교집합 INTERSECTION
1) 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
차집합 DIFFERENCE
1) 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
카티션 프로덕트 CARTESIAN PRODUCT
1) 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
합집합, 교집합, 차집합 연산은 이항 연산으로 연산에 참가하는 두 릴레이션의 차수와 도메인이 같아야 연산 가능
10. 관계 대수 한계
1) 산술 연산 불가
2) 집단 함수를 지원하지 않음
3) 정렬 표현 불가능
4) DB 수정(삽입, 삭제, 수정) 불가능
5) 프로젝션 연산의 결과에 중복된 튜플을 나타내는 것이 필요할 때 이를 명시하지 못함(자동으로 중복이 제거)
11. 관계해석
1) 비절차적 언어로 결과 중심이며 원하는 정보가 무엇이라는 것만 정의
2) 코드 박사가 제안했으며 수학의 술어해석(프레디킷 해석)에 기반을 두고 있음
3) SQL문과 같은 질의어를 사용하며 튜플 관계해석과 도메인 관계해석으로 구성
4) 원하는 데이터만 명시하고 질의 수행 방법은 명시하지 않는 선언적 언어
12. 관계해석 특징
1) 비절차 언어
2) 튜플 관계 해석과 도메인 해석이 존재
3) 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능, 능력 면에서 동등
4) 수학의 프레디킷 해석에 기반
5) 관계해석으로 질의어를 표현
6) 연산들의 절차를 사용하여 데이터를 가져옴(관계 데이터의 연산을 표현)
7) 기본적인 연산자로 UNION, INTESECTION, DIFFERENCT를 사용
8) 전체관계를 조작하는데 사용되는 연산들의 집합
13. 튜플 관계 해석
1) 원하는 릴레이션을 튜플 해석식으로 정의하는 표기법
2) 대표적인 언어 : QUEL : SQL과 더불어 관계형 DBMS에서 많이 사용되는 질의언어
3) 튜플 관계해석의 일반식 형태
4) 튜플 변수 = 범위 변수
1] 지정된 릴레이션의 튜플을 하나씩 그 값으로 취할 수 있는 변수(하나의 튜플을 담을 수 있는 변수)
2] 튜플 변수가 특정 릴레이션의 튜플들을 하나씩 그 변수값으로 취한다는 표현을 명시적으로 하기 위해서 범위식을 사용
3] 위의 예제에서 주문(a)에 해당
4] 범위식 주문(a)는 튜플 변수a로 하여금 범위 릴레이션 주문의 튜플들을 하나씩 그 변수값으로 취한다는 의미를 보유
5) 한정 어트리뷰트
1] 릴레이션 r에 대해 튜플 변수 t가 나타내는 튜플의 어떤 어트리뷰트A의 값을 표현하기 위한 것으로 t.A 또는 t[A]로 표현
2] 위의 예제에서 a.주문수량, a.주문액수, a.고객번호에 해당
6) 원자식
1] 튜플 해석식의 가장 기본이 되는 식으로 범위식과 조건식과 같은 형태가 있음
2] 원자식은 범위식에 해당하는 주문(a)과 조건식에 해당하는 a.고객번호 = 200을 예로 들 수 있음
7) 정형식 : 원자식, AND 연산자(ㅅ), OR 연산자(역ㅅ), NOT 연산자(ㄱ), 정량자가 결합된 식
1] 자유변수 : 정량자로 한정되지 않는 튜플 변수
2] 속박변수 : 정량자로 한정된 튜플 변수
14. 도메인 관계 해석
1) 원하는 릴레이션을 도메인 해석식으로 정의하는 표기법
2) 대표적 언어로 QBE가 존재
3) 튜플 관계 해석과 기본 형식은 같으나 튜플 변수 대신 도메인 변수를 사용하는 것이 차이점
'자격증 > 정보처리기사 4과목' 카테고리의 다른 글
4-13강. 논리 데이터베이스 설계-데이터 모델링 및 설계(2) (0) | 2020.05.06 |
---|---|
4-12강. 논리 데이터베이스 설계-데이터 모델링 및 설계(1) (1) | 2020.05.06 |
4-10강. 논리 데이터베이스 설계-데이터 모델(1) (0) | 2020.05.06 |
4-9강 SQL 응용-절차형 SQL 작성(2) (0) | 2020.05.06 |
4-8강 SQL 응용-절차형 SQL 작성(1) (0) | 2020.05.06 |