반응형
-
관계형 데이터 구조
- 데이터베이스를 릴레이션들의 집합으로 표현
- 데이터와 데이터 간의 관계가 릴레이션(테이블)의 집합으로 표현
- 선언적(비절차적) 언어인 SQL을 사용
- 미리 정의된 물리적 연결 없이 동적 연결을 이용하여, 논리적 연결을 위해 연결자(기본키-외래키)를 이용
- 관계형 DBMS에서 데이터는 일반 사용자에게 테이블 형태로 생각하게 함
테이블 개념 | 관계형 데이터 모델 개념 |
테이블 | 릴레이션(Relation) |
테이블명 | 릴레인션명 |
열(Column), 필드(Field) | 속성 : 도메인 내의 원자값만 유효 |
행(Row), 레코드(Record) | 튜플(Tuple) |
-
관계형 데이터 구조의 사례
- 릴레이션 스키마 : 논리적 구조를 기술
-
릴레이션 인스턴스 : 특정 시점에서의 튜플들의 집합
- 관계형 데이터 모델의 구성 요소
구성요소 | 기본 개념 |
릴레이션(relation) |
|
속성(Attribute) |
|
튜플(Tuple) |
|
도메인(Domain) |
|
키(Key) |
|
무결성 제약 조건 |
|
-
릴레이션(Relation)
-
릴레이션의 정의
- 도메인 D1,D2, …, Dn이 존재할 때 릴레이션 R은 D1, D2, …, Dn의 카테시안 프로덕트(Cartesian Product)의 임의의 부분 집합
- 즉, R ⊆ D1 * D2 * … * Dn
- 튜플들의 집합으로 구성된 2차원 테이블
- 릴레이션 스키마와 릴레이션 인스턴스로 구성
-
릴레이션의 특성
- 속성값은 모두 원자값이어야 하며, 분해가 불가능
- 특정 속성값들은 같은 도메인에 속해야 함
- 각 속성은 한 릴레이션내에서 유일한(상이한) 이름을 가져야 함
- 각 튜플은 유일해야 함(즉, 중복된 튜플이 존재하지 않음)
-
속성 및 튜플의 나열 순서는 무의미
-
-
도메인(Domain)
- 하나의 속성이 취할 수 있는 같은 타입의 모든 값들의 집합
- 단순 도메인
원자값(Atomic Value)만으로 구성
예) 도메인 PRICE = {정수} - 복합 도메인
원자값들의 복합 값으로 구성
예) 도메인 DATE - {<YEAR, MONTH, DAY>} - 특별한 값, Null은 모든 도메인의 원소
- 순수 관계형 데이터 모델에서는 복합 도메인을 지원하지 않음
-
키(Key)
한 릴레이션 내에 튜플을 유일하게 식별할 수 있는 속성 또는 속성들의 집합- 키의 특성
특성 | 기본 개념 |
유일성 (Uniqueness) |
|
최소성 (Minimality) |
|
- 키의 종류
키 | 기본 개념 |
슈퍼키 (Super Key) |
|
후보키 (Candidate Key) |
|
기본키 (Primary Key) |
|
대체키 (Alternate Key) |
|
외래키 (Foreign Key) |
|
-
무결성(Integrity)
데이터베이스에 저장된 값과 그것이 표현하는 현실 세계의 실제값이 일치하는가에 대한 정확성을 의미- 무결성 제약 조건(Constraint)
데이터베이스에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건 - 무결성의 종류
- 무결성 제약 조건(Constraint)
무결성 | 기본 개념 |
개체(Entity) 무결성 |
|
키(Key) 무결성 |
|
고유(Unique) 무결성 |
|
참조(Referential) 무결성 |
|
도메인(Domain) 무결성 |
|
널(Null) 무결성 |
|
의미(Semantic) 무결성 |
|
-
무결성 제약
-
무결성 제약의 의미데이터의 무결성을 보장하기 위해 데이터에 적용하는 일련의 규칙
- 준수 : 데이터베이스는 정확한 상태를 유지
- 위배 : 데이터베이스는 부정확한 상태에 놓임
-
구조적 제약 조건
- 키로부터 유래되는 관계형 데이터 모델의 제약 조건
- 개체 무결성 제약, 참조 무결성 제약 등
-
의미적 제약 조건
- 사용자의 요구 사항과 같이 광범위하고 일반적인 제약 조건(예: 사원의 급여는 상사의 급여를 초과할 수 없음)
- 도메인 무결성 제약 조건
-
-
무결성 제약의 유지 책임
- DBMS가 자동적으로 수행하거나, 응용 프로그래머가 응용 프로그램 코드에 반영
- DBMS에 의해 직접 지원되는 선언적 제약 조건은 스키마 정의 시 DCL로 직접 명세함
-
DCL의 능력 밖에 있는 일반적인 무결성 제약은 별도의 명세 방법이 필요
-
뷰(View)
-
뷰의 정의
- 하나 이상의 특정 테이블들로 부터 조건에 맞는 내용들을 추출하여 생성한 가상 테이블
-
뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가, 생성된 뷰 이름을 질의어에서 사용 할 경우 질의어 내의 뷰 이름이 정의된 질의어로 대체되어 시행
- 뷰는 SELECT문을 이용하여 정의되며, 그 정의는 시스템 카탈로그에 저장
-
뷰의 내용은 실제로 저장 장치 내에 존재하는 것이 아니고, 뷰에 대한 조작이 요구될 때마다 기본 테이블의 테이터를 이용하여 그 내용을 만들게 됨
-
뷰의 특징
-
뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음(실체화 뷰(Materialized View) 제외)
-
실체화 뷰
- 뷰 정의의 내용이 계산되어 물리적으로 저장되어 있는 뷰
- 성능 향상에 중요한 역할을 담당
- 뷰 정의에서 사용되는 데이터가 변경될 때마다 실체화 뷰가 최신 데이터로 변경 되어야 함.
-
- 뷰는 다른 뷰의 정의에 사용될 수 있음
- 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동으로 제거되고, 뷰 제거 시 그 위에 정의된 다른 뷰도 자동으로 제거됨
- 뷰에 대한 검색 연산은 기본 테이블과 동일하나 삽입, 갱신, 삭제 연산에는 제약이 따름
- 한 번 정의된 뷰는 변경할 수 없으며, 삭제한 후 다시 생성해야 함
-
-
뷰의 종류
-
행 부분 집합 뷰
- 어느 한 테이블에 속한 행들의 일부로 구성한 뷰
- SELECT를 통해 생성
- 기본키를 포함하게 되므로 갱신이 가능
-
열 부분 집합 뷰
- 어느 한 테이블에 속한 열들의 일부로 구성된 뷰
- PROJECT를 통해 생성
- 기본키를 포함하고 있는 경우에만 이론적으로 갱신이 가능
-
통계적 요약 뷰
- 기본 테이블에 집단 함수 등을 적용해 통계 요약 정보를 포함한 뷰
- 그룹 함수를 이용해 생성한 뷰
- 갱신 불가
-
조인 뷰
- 둘 이상의 테이블로부터 조인을 통해 구성된 뷰
- 갱신 불가
-
-
뷰의 활용
- 데이터의 논리적 독립성 제공 : 테이블의 구조가 변경되더라도 뷰를 통해 논리적 데이터의 독립성 제공
- 다양한 관점 제공 : 사용자에게 서로 다른 데이터 이름 및 형식으로 데이터 제공
- 데이터 보안 제공 : 뷰는 어떤 사용자들로부터 특정 데이터를 숨길 수 잇는 메커니즘을 제공
- 뷰의 장.단점
-
장점 | 단점 |
|
|
-
변경할 수 없는 뷰
- 상수,계산식, 그룹 합수를 사용해 만들어진 뷰
- DISTINCT, GROUP BY, HAVING을 사용해 만들어진 뷰
- 둘 이상의 테이블에서 유도된 뷰
- 변경하지 못하는 뷰를 토대로 하여 생성된 뷰
반응형
'밥벌이 > 데이터베이스' 카테고리의 다른 글
ADO(ActiveX Data Object) (0) | 2010.09.10 |
---|---|
저장 프로시저(Stored Procedure) (0) | 2010.09.10 |
관계형 데이터 연산 (0) | 2010.09.03 |
SQL(Structured Query Language) (0) | 2010.09.03 |
시스템 카탈로그(System Catalog) / 데이터 사전(Data Dictionary) (0) | 2010.09.03 |