관계형 데이터베이스(Relational Database)
- 관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류다.
- 관계형 데이터베이스란 2차원 테이블(Table) 형태로 이루어져 있으며, 이 테이블은 키(Key)와 값(Value)의 관계를 나타낸다.
- 이처럼 데이터의 종속성을 관계(Relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다.
- 현재 많이 사용되는 관계 데이터 모델 DBMS는 Oracle, MySQL, SQL Server 등이 있다.
관계 데이터 모델의 개념
릴레이션
- 릴레이션(Relation) : 행과 열로 구성된 테이블
- 속성(Attribute) : 세로 값으로 열(Column)이라고도 한다. (고유한 이름을 가지며 동일 릴레이션 내에서는 같은 이름의 속성 존재 불가 단, 릴레이션 다르면 OK
- 튜플(Tuple) : 가로 값으로 행(Row)이라고도 한다.
- 차수(degree) : 속성의 개수 (단,유효한 릴레이션의 최소 차수는 1이다.)
- 카디날리티(cardinality) : 튜플의 개수
- 스키마(schema) : 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의 (첫 행 헤더에 나타내며 각 데이터의 특징을 나타내는 속성, 자료타입 등의 정보를 담아냄.)
- 인스턴스(instance) : 정의된 스키마에 따라 테이블에 실제 저장된 데이터의 집합
위의 그림과 같이 릴레이션이란 데이터를 행과 열로 구성된 테이블로 표현한 것이다. 세로의 값을 속성, 가로의 값을 튜플이라고 하고 여기서 도서번호, 도서이름, 출판사, 가격때문에 차수가 4가 되며, 5개의 가로줄을 가지므로 카디날리티가 5가 된다.
스키마 구성요소
- 속성(Attribute) : 릴레이션 스키마 열
- 차수(Degree) : 속성의 개수
- 도메인(Domain) : 속성이 가질 수 있는 값의 집합
여기서 도메인이란 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합이라고 할 수 있다. 도메인이라는 개념이 필요한 이유는 릴레이션에 저장 되는 데이터 값들이 본래 의도했던 값들만 저장되고 관리하기 위해서다.
인스턴스 구성요소
- 튜플(Tuple) : 릴레이션의 각 행
- 카디날리티(cardinality) : 튜플의 수
튜플(Tuple)이 가지는 속성의 개수는 릴레이션 스키마의 차수와 동일하고, 릴레이션 내의 모든 튜플들은 서로 중복되지 않아야 함
릴레이션 특징
- 속성은 단일 값을 가진다.
- 속성은 서로 다른 이름을 가진다.
- 한 속성의 값은 모두 같은 도메인 값을 가진다. (한 속성에 속한 열은 모두 그 속성에서 정의한 도메인 값만 가질 수 있다.)
- 속성의 순서는 상관없다.
- 릴레이션 내의 중복된 튜플은 허용하지 않는다.
- 튜플의 순서도 상관없다.
키(Key)
키의 개념
- 키(Key)는 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
- 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성(Attribute)다.
키의 특성
- 유일성(=Super Key/슈퍼키) : 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 함.
- 최소성(=Candidate Key/후보키) : 꼭 필요한 최소한의 속성들로만 키를 구성함.
키는 릴레이션 간의 관계를 맺는 데도 사용된다.
키의 종류
- 슈퍼키(Super Key) : 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
- 튜플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 될 수 있다.
- 후보키(Candidate Key) : 튜플을 유일하게 식별할 수 있는 속성의 최소 집합
- 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 한다.
- 기본키(Primary Key) : 여러 후보키 중 하나를 선정하여 대표로 삼는 키
- 후보키가 하나뿐이라면 그 후보키를 기본키로 사용하면 되고, 여러 개라면 릴레이션의 특성을 반영하여 하나를 선택 하면 된다.
- 후보키 중에서 선택한 주키
- NULL값을 가질 수 없다.
- 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다.
- 릴레이션 스키마를 표현할 때 기본키는 밑줄(_)을 그어 표시한다.
여기서 NULL값이란 '없다', '존재하지 않는다'라는 의미로 데이터 값이 입력되지 않은 경우 DBMS는 NULL이라는 특수한 값을 저장한다.
- 대체키(alternate Key) : 기본키로 선정되지 않은 후보키
- 후보키가 두개 이상일 때 기본키를 제외한 나머지 후보키들을 말한다.
- 보조키라고도 한다.
- 외래키(foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성
- 다른 릴레이션의 기본키를 참조하여 관계 데이터 모델의 특징인 릴레이션간의 관계를 표현함
- 참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인은 서로 같아야 한다.
- 참조되는(기본키) 값이 변경되면 참조하는(외래키) 값도 변경된다.
- NULL값과 중복 값 등이 허용된다.
- 자기 자신의 기본키를 참조하는 외래키도 가능하다.
키 예제
다음과 같은 릴레이션이 존재할 때 각각의 키값을 알아보기.
※ 슈퍼키 : 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
따라서 슈퍼키는 고객번호와 주민번호를 포함한 모든 속성의 집합이 슈퍼키로 가능하다.
ex) (고객번호), (주민번호), (고객번호, 이름), (고객번호, 이름, 주소), (주민번호, 이름), (주민번호, 이름, 주소, 핸드폰) 등
※ 후보키 : 튜플을 유일하게 식별할 수 있는 속성의 최소 집합
고객번호, 도서번호가 해당
※ 기본키 : 고객번호, 도서번호 둘중에 하나 선택 가능
고객번호, 도서번호 둘 중에 하나 선택 가능
※ 대체키 : 기본키로 선정되지 않은 후보키
고객번호, 주민번호 중 고객번호를 기본키로 정하면 주민번호가 대체키가 된다.
※ 외래키 : 다른 릴레이션의 기본키를 참조하는 속성을 말한다.
말 그대로 다른 릴레이션의 기본키를 참조하게 되면 그 속성을 바로 외래키가 된다.
데이터 무결성(Integrity)
데이터의 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다.
데이터의 무결성을 유지하는 것은 데이터베이스 관리시스템(DBMS)의 중요한 기능이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.
데이터 베이스에서 말하는 무결성에는 다음과 같은 종류가 있다.
개체 무결성(Entity integrity)
모든 테이블이 기본 키(Primary Key)로 선택된 필드를 가져야 한다.
기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않는다.
참조 무결성(Referential integrity)
관계형 데이터베이스 모델에서 참조 무결성은 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 유지되는 것을 말한다.
도메인 무결성 제약 조건
도메인 무결성은 테이블에 존재하는 필드의 무결성을 보장하기 위한 것으로 필드의 타입, NULL 값의 허용 등에 대한 사항을 정의하고, 올바른 데이터의 입력이 되었는지를 확인하는 것이다. 예를 들어, 주민등록번호 필드에 알파벳이 입력되는 경우는 도메인 무결성이 깨지는 경우라고 볼 수 있다. DBMS의 기본값 설정, NOT NULL 옵션 등의 제약 사항으로 도메인 무결성을 보장할 수 있다.
'Programming > Programming' 카테고리의 다른 글
vi/vim에서 기존 파일을 새 파일로 저장하는 방법 (0) | 2022.07.24 |
---|---|
[Database] 데이타베이스 용어 (0) | 2022.07.24 |
JSP, Javascript, J Query, Java (0) | 2022.07.24 |
[JSP] JSP(Java Server Pages) (0) | 2022.07.24 |
반응형 웹 (0) | 2022.07.24 |