우선 알아야 할 개념들
릴레이션: 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위. DB 테이블을 의미한다고 보면된다.
: ERD 에서의 네모칸 하나하나가 모두 릴레이션이라 생각하면 된다.
ERD(Entity Relationship Diagram)
릴레이션 특징
1. 한 릴레이션에는 똑같은 튜플이 포함될 수 없고, 릴레이션에 포함된 튜플들은 모두 상이하다.
2. 한 릴레이션 내 튜플간에는 순서가 없다.
3. 튜프들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
4. 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요치 않다.
5. 속성의 명칭은 유일해야 하나 속성을 구성하는 값은 동일한 값이 있을 수 있다.
6. 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합 키(Key)로 설정한다.
7. 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다.
속성(attribute)
하나의 릴레이션은 현실세계의 어떤 개체(entity)를 표현하고 저장하는데 사용된다. 이때 개체는 사물이 될 수도 추상적인 개념이 될 수도 있음.
속성이란 내가 저장하고자 하는 개체의 항목들을 의미한다.
속성은 고유한 이름을 지녀 동일 릴레이션 내에서는 같은 이름의 속성이 존재할 수 없다.
차수(degree)
한 릴레이션 내에 있는 속성의 수를 차수라 한다.
결국, 유효한 릴레이션의 최소 차수는 1이 된다.
따라서, 모든 릴레이션은 적어도 하나 이상의 속성을 가지며, 아래 테이블에서의 차수는 4가 된다.
튜플(tuple)
릴레이션의 각 행을 레코드라고 부르고, 이를 더 공식적으로 명명한 것이 튜플이 된다.
카디날리티
릴레이션 튜플의 개수를 의미한다. 아직 데이터가 삽입되지 않은 테이블의 경우 차수와 다르게 0이 될 수 있다.
시간이 지남에 따라 계속 변화한다.
도메인
릴레이션에 포함된 속성들이 각각 가질 수 있는 값들의 집합을 의미한다.
예를 들어 "자동차 소유의 유무"라는 속성이 있을 때 이 속성이 가질 수 있는 값은 "소유" 혹은 "비소유"가 된다.
이 집합 즉 도메인의 이름을 'Car'라고 칭한다면,
"자동차 소유의 유무"라는 속성은 'Car'라는 도메인에 있는 값만 가질 수 있다.
도메인의 이름은 속성 이름과 같을 수도 있고 다를 수도 있다. 또 하나의 도메인을 여러 속성에서 공유할 수도 있다.
스키마
스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합을 의미한다. 스키마는
데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.
- 논리모델
엔티티(Entity)
속성,어트리뷰트(Attribute)
관계, 릴레이션(Relation)
키 그룹(Key group)
- 물리모델
테이블(Table)
컬럼(Column)
관계, 릴레이션(Relation)
인덱스(Index)
시스템 카탈로그란
- 시스템 그 자체에 관련있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함해 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
- DDL의 결과로 구성되는 기본 테이블, 뷰, 인덱스 , 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
- 카탈로그들이 생성되면 자료사전에 저장되므로 좁은 의미로는 카탈로그 자료 사전이라고도 한다.
- 카탈로그에 저장된 데이터를 메타데이터라고 한다.
카탈로그의 특징
1. 일반이용자도 SQL을 이용해 내용을 검색해 볼 수 있다.
2. INSERT,UPDATE,DELETE 문으로 카탈로그를 갱신하는 것은 허용되지 않는다.
3. 데이터베이스 시스템에 따라 상이한 구조를 지닌다.
4. DBMS가 스스로 생성하고 유지한다.
5. 사용자가 SQL문을 실행해 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신한다.
6. 분산 시스템에서의 카탈로그: 보통의 릴레이션, 인덱스, 사용자 등에 대한 정보를 포함하며, 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다.
시스템 카탈로그의 종류
SYSTABLES : 기본 테이블 및 뷰 테이블의 정보를 저장하는 테이블
SYSCOLUMNS : 모든 테이블에 대한 정보를 열(속성) 중심으로 저장하는 테이블
SYSVIEW : 뷰에 대한 정보를 저장하는 테이블
SYSTABAUTH : 테이블에 설정된 권한 사항들을 저장하는 테이블
SYSCOLAUTH : 각 속성에 설정된 권한 사항들을 저장하는 테이블
'DB' 카테고리의 다른 글
SpringBoot + redis 프로젝트 생성 후 JMeter 성능 테스트 해보기 (0) | 2024.11.20 |
---|---|
PostgreSQL DB에서 테이블 Vacuum 처리 (8) | 2024.11.11 |
[DB]DDL,DML,DCL,TCL (0) | 2022.10.18 |