데이터 베이스 스키마란?
- 데이터베이스를 구성하는 데이터개체(entity), 속성(Attribute), 관계 및 데이터의 제약조건등에 대한 전반적인 명세를 기술한 것!
- DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스의 구조를 ‘스키마’라고 한다.
스키마의 구분 ( = 3단계 DB구조)
- 3단계 DB구조
데이터베이스를 쉽게 이해, 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것
(외부, 개념, 내부)
- 외부 스키마 (사용자 뷰)
- 개별 사용자의 입장에서 데이터베이스의 논리적 구조를 정의한 것
하나의 DBMS에는 여러개의 외부스키가마 존재할 수 있다.
응용 프로그래머가 개인의 입장에서 필요한 데이터 베이스의 논리적 구조를 정의
전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기에, 서브스키마라고도 한다.
- 개별 사용자의 입장에서 데이터베이스의 논리적 구조를 정의한 것
- 개념 스키마 (전체적인 뷰)
- 데이터베이스 전체의 논리적인 구조, 물리적인 구현은 고려 x
- 개체간의 관계, 제약조건을 나타내고, DB접근권한, 보안, 무결성 규칙에 대한 명세를 정의
- 데이터 베이스 하나에 개념 스키마 하나만 존재
- 내부 스키마 (저장 스키마)
- 전체 데이터베이스가 저장장치에 실제로 저장되는 방법을 정의
- 데이터 베이스 하나에 내부 스키마 하나만 존재
데이터의 독립성
- DBMS의 핵심 원칙 중 하나
- 데이터의 ‘논리적 구조’와 ‘물리적 구조’가 서로 독립적으로 관리되는 특성
- 하위 단계의 데이터 구조가 변경되더라도, 상위단계에 영향을 미치지 않는 속성
데이터의 논리적 구조
- 데이터의 논리적인 조직과 구조,
- 주로 테이블, 열, 관계등과 같은 개념적인 데이터 모델을 포함한다.
관계형 데이터베이스에서는, 테이블이나 열의 정의, 관계등이 포함됨
데이터의 물리적 구조
- 데이터의 실제 저장과 관련
- 디스트에 어떻게 저장되고 인덱싱되는지 등 세부기술이 포함됨
즉 논리적 구조는 데이터의 개념적인 부분을 의미하며, 물리적 구조는 데이터가 실제로 저장되고 관리되는 방식을 나타낸다.
데이터의 논리적 독립성
- 외부 스키마와 개념 스키마 단계의 사상(mapping)이다.
- 응용프로그램에게 영향을 주지 않고 논리적 구조 변경이 가능하다.
- 개념 스키마가 변경되더라도 외부 스키마에 영향을 주지 않음
- 외부 스키마가 변경되더라도 개념 스키마에 영향을 주지 않음
데이터의 물리적 독립성
- 개념 스키마와 내부 스키마 단계의 사상(mapping)이다.
- 응용프로그램에게 영향을 주지 않고 물리적 구조 변경이 가능하다.
- 내부 스키마가 변경되더라도 개념 스키마에 영향을 주지 않음
- 개념 스키마가 변경되더라도 내부 스키마에 영향을 주지 않음
mapping
- 상호 독립적인 개념을 연관 지어주는 것
릴레이션(관계)
관계형 데이터베이스에서 정보를 구분하여 저장하는 기본단위,
DB테이블 하나하나가 릴레이션
릴레이션 스키마, 릴레이션 인스턴스
릴레이션 스키마
- 릴레이션에 어떤 정보가 담길지를 정의
- 릴레이션의 이름, 각 데이터의 특징을 나타내는 속성, 자료타입 등의 정보를 담고 있다.
릴레이션 인스턴스
- 릴레이션 인스턴스는 릴레이션 스키마에 실제로 저장된 데이터의 집합
릴레이션 차수, 카디널리티
릴레이션 차수
- 릴레이션 안에 있는 속성의 개수
유효한 릴레이션 차수의 개수는 최소 1개
열의 개수라고 생각해도 됨
릴레이션 카디널리티
- 릴레이션 튜플(레코드)의 개수를 뜻한다.
테이블 기준으로 행!
도메인
- 하나의 속성이 취할 수 있는 원자값들의 집합
릴레이션 논리모델 vs 릴레이션 물리모델
릴레이션 키(Key)
- 데이터베이스에서 레코드를 고유하게 식별하거나, 레코드간의 관계를 설정하기 위해 사용되는 속성이나 속성의 집합
슈퍼키(super key)
- 유일성을 만족하는 속성, 또는 속성들의 집합
- 최소성은 만족하지 않을 수 있다.
즉 하나 이상의 후보키를 포함할 수 있다.
- 최소성은 만족하지 않을 수 있다.
- 유일성은 키가 갖추어야 하는 기본 특성, 키로 지정된 속성 값은 튜플마다 달라야한다.
키 값이 같은 튜블은 존재하지 않는다.
⇒ 슈퍼키는 후보키보다 일반적인 개념
후보키(candidate key)
- 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성하는 것 - 슈퍼키중에서 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어진 키
기본키(primary key)
- 여러 후보키중에서 기본적으로 사용할 키를 반드시 선택해야하는데, 이것이 기본키
- 기본키 특징
- NULL값을 가질 수 없다.
- 값이 자주 변경 되지 않는 속성으로 구성된 후보키를 기본키로 선택하는 것이 좋다.
대체키(alternate key)
- 기본키로 선택되지 못한 후보키
외래키 (foreign key)
- 속성 또는 집합이, 다른 릴레이션의 기본키가 되는 것
- 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합
- 외래키는 기본키를 참조하지만, 기본키가 아니기 때문에 null값을 가질 수 있다.
외래키가 Null을 갖을 수 있는 이유 설명
"주문"과 "배송 주소"라는 두 개의 테이블이 있다고 가정해 봅시다.
이 두 테이블 간의 관계는 주문을 특정 배송 주소에 연결하는 것입니다. 각 주문은 특정한 배송 주소로 배송되어야 하지만, 아직 배송 주소가 지정되지 않은 상태에서 주문이 이루어질 수 있습니다.
- 주문 테이블 (Orders):
주문 번호 (OrderID, 기본키)
주문 날짜 (OrderDate)
배송 주소 키 (DeliveryAddressID, 외래키)
배송 주소 테이블 (DeliveryAddresses):
- 배송 주소 키 (AddressID, 기본키)
수령인 이름 (RecipientName)
배송 주소 (Address)
이때, 주문이 발생했지만 아직 배송 주소가 사용자에 의해 지정되지 않은 경우, 해당 주문은 주문 테이블에는 기록되지만 배송 주소 키는 NULL일 수 있습니다. 이는 아직 배송 주소가 결정되지 않았거나 선택적으로 제공되는 상황을 반영합니다.
무결성 제약조건
- 데이터베이스에서 정확성과 일관성을 유지하기 위해 설정되는 규칙
도메인 무결성, 개체 무결성, 참조 무결성 총 세가지의 주요 유형이 있다.
이러한 무결성 제약조건들은 데이터베이스 시스템이 데이터를 신뢰성 있게 관리하고 보호할 수 있도록 도와준다. 각 무결성 제약조건은 데이터의 정확성을 유지하고 부정확한 데이터의 삽입, 갱신, 삭제를 방지하는 역할을 한다.
1. 도메인 무결성 (Domain Integrity):
- 도메인은 각 속성이 허용하는 값들의 범위를 나타낸다.
- 도메인 무결성은 각 속성이 그 속성이 속한 도메인에서만 값을 가지도록 하는 규칙
즉, 속성의 값은 그 속성의 정의된 도메인에서 정의돼야한다.
예를 들어, 나이 속성의 도메인이 0 이상의 양의 정수라면, 나이 값은 반드시 0 이상의 양의 정수여야 한다.
2. 개체 무결성 (Entity Integrity):
- 개체 무결성은 기본 키를 가진 각 튜플이 유일하게 식별되도록 하는 규칙
즉, 기본 키는 NULL 값을 가질 수 없고, 중복되지 않아야 한다.
이는 각 튜플이 정확하게 하나의 개체를 나타내고, 기본 키를 통해 해당 개체가 유일하게 식별되도록 보장한다.
3. 참조 무결성 (Referential Integrity):
- 참조 무결성은 관계형 데이터베이스에서 두 테이블 간의 관계를 정의하고 유지하는 규칙
이 규칙은 외래 키를 통해 한 테이블의 튜플이 다른 테이블의 특정 튜플을 참조할 때, 해당 참조되는 튜플이 반드시 존재해야 함을 보장한다. - 또한, 참조 무결성은 참조되는 튜플이 삭제되면 참조하는 튜플도 적절히 처리되어야 함을 의미한다.
? 외래키가 NULL이면 참조 무결성이 깨지는건가?
- 외래 키가 NULL일 경우 참조 무결성이 깨질 수 있다.
참고 블로그
https://jwprogramming.tistory.com/47
https://code-lab1.tistory.com/114
'CS > DB' 카테고리의 다른 글
DBMS, RDBMS (0) | 2024.03.08 |
---|---|
파일시스템, 데이터베이스 (0) | 2024.03.08 |
댓글