데이터베이스 기초
데이터베이스
일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음
데이터베이스의 요소
관계형 데이터베이스의 요소를 설명하겠습니다.
엔터티
여러 개의 속성을 지닌 명사를 의미합니다.
예를 들어 회원이란 엔터티는 회원번호, 이름, 아이디 등의 속성을 가지고 있습니다.
추상적인 개념으로서 데이터 모델링으로 구체화되어 데이터베이스에 저장됩니다.
릴레이션
DB에서 정보를 구분하여 저장하는 기본 단위입니다.
엔터티를 구체화하여 만든 정보들을 저장하는 데이터베이스의 테이블입니다.
릴레이션에서는 중복이 없고 속성마다 단일 값을 가지고 있어야 합니다.
속성
릴레이션에서 관리하는 엔터티의 정보를 데이터 모델링을 통해 구체화시킨 것입니다.
앞서 말한 회원이란 엔터티의 회원번호, 이름, 아이디 등을 속성이라고 합니다.
도메인
릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합입니다.
예를 들어 회원 정보 테이블에서 성별 속성의 도메인은 { 남, 여 }입니다.
필드, 레코드
필드는 속성과 같습니다. 릴레이션에서 세로축 하나하나를 필드라고 합니다.
레코드는 반대로 가로축을 의미합니다. 회원 정보 테이블에서 회원 하나하나가 레코드입니다.
키
테이블 간의 관계를 조금 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치입니다.
키의 종류는 다음과 같습니다.
슈퍼키 | 각 레코드를 식별할 수 있는 레코드의 고유한 속성 하나 혹은 그 이상의 집합 |
- 후보키 | 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족하는 키 유일성은 슈퍼키의 조건, 최소성은 키를 구성하고 있는 여러 속성 중에서 하나라도 없으면 레코드를 구분할 수 없는, 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성입니다. 최소성에 대해 예를 들면 이름, 주민번호를 기본키로 설정하고 싶을 때, 이름이 없어도 레코드를 구분할 수 있기 때문에 최소성을 만족하지 못한 것입니다. |
- 기본키 | 유일성과 최소성을 만족, 테이블의 데이터 중 고유하게 존재하는 속성으로 후보키중에 하나를 선택한 것 |
- 자연키 | 중복된 값들을 제외하며 중복되지 않는 것을 자연스레 뽑다가 나오는 키, 나중에 변할 수 있다는 특징이 있습니다. |
- 인조키 | ID와 같이 중복되지 않는 속성을 인위적으로 부여한 키, 보통 기본키는 인조키로 설정합니다. |
- 대체키 | 후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고 남은 후보키 |
외래키 | 다른 테이블의 기본키를 그대로 참조하여 두 개의 테이블을 연결해줍니다. |
스키마
데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 정의한 구조입니다.
외부 스키마
사용자가 필요로하는 DB의 논리적 구조를 정의한 것으로 사용자의 관점에서 바라보는 데이터베이스입니다.
사용자에 따라 서로 다른 관점으로 외부스키마를 정의할 수 있기 때문에 하나의 데이터베이스에는 여러개의 외부 스키마가 존재할 수 있습니다.
예를들어 사용자가 회원에 대한 정보가 필요할 때 어떤 사용자는 이름, 전화번호, 아이디가 필요하고 어떤 사용자는 회원번호, 주소가 필요할 수 있습니다.
사용자는 이 외부 스키마를 통해 SQL문으로 DB에 접근합니다.
개념 스키마
관리자의 관점에서 바라보는 데이터베이스입니다.
개체 간의 관계 및 데이터에 대한 제약 조건과 데이터베이스의 접근 권한, 보안에 관한 정의를 포함하고있고 외부 스키마를 기초로 개념 스키마를 정의합니다.
일반적으로 말하는 스키마는 이 개념 스키마를 의미합니다.
내부 스키마
시스템 프로그래머나 설계자의 관점에서 바라보는 데이터베이스입니다.
데이터베이스에 저장될 레코드의 물리적 구조, 레코드를 구성하는 필드 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의합니다.
쉽게말해 개념 스키마에 대한 물리적인 저장 구조를 표현한 것입니다.
개념 스키마와 내부 스키마는 1개만 존재합니다.
※ 잘못된 정보, 혹은 다른 의견이 있다면 댓글로 말해주세요. 감사합니다.