1. 관계 데이터베이스 모델
1. 관계 데이터 모델(Relation Data Model)
- 실세계 데이터를 행과 열로 구성된 테이블 형태로 구성된 데이터 모델이다.
- 수학자 E.G.Codd 박사가 제안한 모델
2. 관계 데이터 모델의 구성
1. 릴레이션 : 행과 열로 구성된 테이블
2. 튜플 : 릴레이션에 행에 해당되는 요소
3. 속성 : 릴레이션의 열에 해당하는 요소
4. 카디널리티(Cardinality) : 튜플(row)의수
5. 치수(Degree) : 애트리뷰트(Column)의 수
6. 스키마(Schema) : 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조
7. 인스턴스(Instance) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
2. 관계 데이터 언어
1. 관계 대수
1. 관계 대수 개념
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는 가를 기술하는 절차형 정형언어이다.
2. 관계 대수 연산자의 종류
가. 일반 집합 언어
- 수학의 집합 개념을 릴레이션에 적용한 연산자
- 합집합(UNION) R U S: 합경 가능한 두릴레이션의 합집합
- 교집합(INTERSECTION)R ∩ S: 릴레이션에 속하는 모든 튜플로 결과 릴레이션을 구성
- 차집합(Difference)R - S: R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
- 카티션 프로덕트(Cartesian Product) R X S: R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성
나. 순수 관계 연산자
- 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
2. 관계해석
1. 관계 해석 개념
- 튜플관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.
2. 관계 해석 특징
- 프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)이다
3. 관계 해석 종류
가. 도메인 관계 해석
- 원한느 릴레이션을 도메인 해석식으로 정의하는 표기법이다.
cf : 도메인 해석식(Domain Calculus Expression) : 튜플 변수 대신 도메인 변수를 사용하고, 각 변수는 한 애트리뷰트의 도메인을 범위로 갖는 해석식이다.
나. 튜플 관계 해석
- 원하는 릴레이션을 튜플 해석식(Tuple Calculus Expression)으로 정의하는 표기법이다.
- 튜플 관계 해석의 구성요소는 튜플 변수, 한정 애트리뷰트, 원자식, 정형식이 존재한다.
- 원자식 간 연산을 위해 논리 기호를 사용한다.
3. 관계 대수와 관계 해석 비교
[관계 대수]
- 절차적 언어(순서 명시)
- 어떻게 유도하는가?(How)
- 순수관계 연산자, 일반집합 연산자
[관계 해석]
- 비 절차적 언어(계산 수식의 유연적 사용), 프레디킷 해석(Predicate Calculus) 기반
- 무엇을 얻을 것인가?(what?)
- 튜플 관계 해석, 도메인 관계 해석
3. 시스템 카탈로그와 뷰
1. 시스템 카탈로그
1. 시스템 카탈로그(System Catalog)개념
- 시스템에 관련이 있는 객체에 관한 정보를 포함하는 시스템 데이터베이스 이다.
- DDL 실행으로 생성되는 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정볼르 저장
2. 시스템 카탈로그 특징
- 시스템 카탈로그들이 자료 사전(Data Dictionary)이라고도 부른다
- 시스템 카탈로그에 저장된 정보를 메타 데이터(Metadata)라고 부른다
- 시스템 카탈로그는 테이블로 구성되어 있어 SQL을 이용하여 내용을 검색 가능하다.
- INSERT, DELETE, UPDATE문으로 시스템 카탈로그를 갱신하는 것은 허용되지 않는다.(시스템 카탈로그는 DBMS가 스스로 생성하고 유지)
- 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.
- 보통의 릴레이션, 인덱스, 사용자 등에 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보 포함한다.
2. 뷰
1. 뷰(View)개념
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다.
2. 뷰의 특징
- 뷰는 물리적이 아닌 논리적으로 구성되어 있고, 논리적 독립성을 제공
- 뷰를 통해서 데이터를 접근하게 함으로써 뷰에 보이지 않는 데이터를 안전하게 보호하는 효과가 있다.
- 뷰는 데이터 접근 제어에 대한 보안을 제공한다.
- 뷰는 DCL인 CREATE으로 생성, DROP문으로 삭제할 수 있다.(ALTER로 뷰 정의 변경 불가능 하다.)
- 뷰는 삽입, 삭제, 갱신 연산에 제약사항이 따른다.
- 뷰가 정의된 기본 테이블이 삭제되면 뷰는 자동으로 삭제된다.
- 뷰 위에 또 다른 뷰를 정의할 수 있다.