일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- paging
- 페치조인
- 대량쿼리
- namedQuery
- javascriptcalendar
- 자바서블릿
- 스프링데이터흐름
- Generic
- JQuery
- 제너릭
- LIST
- 제네릭
- 엔티티직접사용
- JPA
- values()
- jscalendar
- joinfetch
- jQuery값전송
- fullcalendar
- JPQL
- 프로젝트생성
- fetchjoin
- jQuery값전달
- calendar
- jQueryUI
- javaservlet
- 페이징
- 벌크연산
- Hibernate
- springflow
- Today
- Total
가자공부하러!
데이터베이스(2) - 관계형 데이터베이스와 관계 연산 본문
1. 관계형 데이터 모델
1. 관계형 데이터 구조 : 릴레이션
> 릴레이션? : 데이터를 원자 값(Atomic Value)으로 갖는 이차원의 테이블
- 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적 구조이다.
ㄴ 그러므로 다양한 정렬 기준을 통해 릴레이션을 표현할 수 있다.
> 릴레이션 구성 : 릴레이션 스키마 + 릴레이션 인스턴스(Relation Schema + Relation Instance)
- 릴레이션 스키마 : 구조를 나타냄
- 릴레이션 인스턴스 : 실제 값
> 릴레이션의 열을 속성(Attribute)이라 하고 행을 튜플(Tuple)이라 한다.
> 도메인?
- 릴레이션에서 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
- 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용된다.
2. ER 모델을 관계형 데이터 모델로 변환
> 개념적 데이터 모델인 ER 모델 -> 변환 -> 논리적 데이터 모델인 릴레이션 스키마
- 매핑 룰(Mapping Rule) 이라고도 한다
> 관계형 데이터 모델의 표현 방법
- ER모델의 개체 -> 개체 릴레이션(관계형 데이터 모델)
- ER모델의 관계 -> 관계 릴레이션(관계형 데이터 모델)
- 속성 -> 컬럼
- 식별자 -> 기본키
- 릴레이션간 관계 -> 기본키와 외래키
> 표 만들기임
2. 키의 개념 및 종류
1. 슈퍼키(Super Key)
> 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
> 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.
- 슈퍼키는 꼭 필요한 최소의 속성만으로 구성되지는 않지만 유일하다
2. 후보키(Candidate Key)
> 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 유일성과 최소성 모두 만족
3. 기본키(Primary Key)
> 후보키 중에서 특별히 선정된 키로, 중복된 값을 가질 수 없다.
- 유일성과 최소성 모두 만족
> NULL값을 가질 수 없고 튜플을 식별하기 위해 반드시 필요하다.
4. 대체키(Alternate Key)
> 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미
5. 외래키(Foreign Key)
> 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
> 릴레이션 간의 관계를 표현할 때 활용됨
- 해당 릴레이션의 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.
3. 무결성
1. 무결성?
> DB에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미
> 무결성 제약조건?
- 정확하지 않은 데이터가 DB에 저장되는 것을 방지하기 위한 제약조건
2. 무결성의 종류
> NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
> 고유(Unique) 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값이 서로 달라야 한다는 규정
> 도메인(Domain) 무결성 : 특정 속성의 값이 미리 정해진 도메인에 속한 값이어야 한다는 규정
> 키(Key) 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
> 관계(Relationship) 무결성 :
ㄴ 특정 튜플 삽입 가능 여부를 지정한 규정
ㄴ 한 릴레이션과 다른 릴레이션의 튜플들 간 관계의 적절성 여부를 지정한 규정
> 참조 무결성 : 외래키 값은 NULL이거나 참조릴레이션의 기본키값과 동일해야 한다는 규정
> 개체 무결성 : 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다는 규정
4. 관계대수
1. 관계대수?
> 관계형 DB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
> 하나 또는 두개의 릴레이션을 입력받아서 새로운 릴레이션을 결과로 출력하는 연산들의 집합
> 관계대수에 포함된 연산의 종류
- 기본 연산 : SELECT, PROJECT, JOIN, DIVISION 등
- 집합 연산 : UNION, DIFFERENCE, INTERSECTION, CARTESIAN PRODUCT 등
2. 순수 관계 연산자
> SELECT
- 릴레이션에 존재하는 튜플 중 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션 생성
- 수평연산 : 릴레이션의 행에 해당하는 튜플을 구하는 연산자이기 때문
> PROJECT
- 속성값을 추출하여 새로운 릴레이션 생성
- 연산결과에 중복이 발생하면 중복 제거
- 수직연산 : 릴레이션의 열에 해당하는 속성을 추출하는 연산자이기 때문
> JOIN
- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션 생성
- JOIN 연산 결과 릴레이션의 차수는, 조인된 두 릴레이션의 차수의 합과 같다
- 조인의 종류
ㄴ 세타 조인 : 비교 연산자(>, <, = 등)를 세타로 일반화하여 표현될 수 있는 조인
ㄴ 자연 조인 : 조건이 = 일 때 중복된 속성을 제거
> DIVISION
- R[속성r / 속성s]S
- 속성r과 속성s는 동일 속성 값을 가지는 속성이어야 한다.
- 릴레이션 R 에서 속성 r을 제외한 릴레이션을 추출한다.
- 단, 릴레이션 S의 속성 s의 모든 튜플과 연간되어있는 튜플만 추출한다.
- 쉽게 말해 릴레이션 R에 있는 값 중 릴레이션 S의 속성(들) s를 모두 가지고 있는 튜플에서 속성(들)r을 제외하고 추출
3. 일반 집합 연산자
> 수학적 집합 이론에서 사용하는 연산자
- 합집합(UNION) : 두 릴레이션의 튜플의 합집합 추출. 중복 되는튜플은 제거.
- 교집합(INTERSECTION) : 두 릴레이션의 튜플의 교집합 추출.
- 차집합(DIFFERENCE) : 두 릴레이션 튜플의 차집합 추출
- 교차곱(CARTESIAN PRODUCT) : 두 릴레이션 튜플들의 결합된 정보 연산
ㄴ 곱이라 보면 됨.
ㄴ 릴1(튜플1,튜플2), 릴2(튜플A,튜플B) 일 때
ㄴ 릴1 X 릴2 == 릴3(튜플1-튜플A, 튜플1-튜플B, 튜플2-튜플A, 튜플2-튜플B) 이런식
* 합병조건을 만족해야 수행 가능한 연산 : UNION, DIFFERENCE, INTERSECTION
4. 관계해석
> 관계 데이터의 연산을 표현하는 방법(튜플 관계해석, 도메인 관계해석)
> 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님.
> 질의어로 표현
'공부 > 정보처리기사(실기)' 카테고리의 다른 글
데이터베이스(4) - SQL(JOIN, DML, DCL) (0) | 2019.05.29 |
---|---|
데이터베이스(3) - SQL(DDL, SELECT) (0) | 2019.05.28 |
데이터베이스(1) - 데이터베이스 기본 (0) | 2019.05.25 |
알고리즘(8) - 실무응용2 (0) | 2019.04.03 |
알고리즘(7) - 배열응용2, 실무응용 (0) | 2019.04.02 |