개발공부/데이터베이스

[DB] 데이터베이스 언어 종류 | 데이터베이스 키 종류 | 무결성 제약조건

개발자 찐빵이 2021. 11. 7. 20:24
728x90
반응형

데이터베이스 언어

데이터 정의어

데이터베이스 개채를 생성, 변경, 삭제하기 위한 명령어.
Create, Alter, Drop

데이터 조작어

데이터를 검색, 추가, 삭제, 업데이트하기 위한 명령어.
Select, Insert, Delete, Update

데이터 제어어

보안 및 권한 제어, 무결성, 회복, 병행 제어를 위한 명령어.
Grant, Revoke, Commit, Rollback 등

외래키와 기본키 열의 데이터 형식과 저장 공간의 크기가 일치해야 하는 이유

데이터 형식이나 저장 공간의 크기가 다르면, 논리적으로는 같은 값이라고 하더라도 물리적인 이진 값은 같지 않기 때문이다.

데이터베이스 키

What is key?

데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성이다.

기본키(Primary Key)

테이블의 각 레코드들을 고유하게 식별해주는 역할을 한다.

기본키 특징

  • 속성이 항상 고유한 값을 가져야 한다.
  • NULL 값 안됨!
  • 변경될 가능성이 높은 속성은 기본키로 선정하지 않는 게 좋다.
  • 가능하면 작은 정수 값이나 짧은 문자열이 좋다. (데이터를 빠르게 검색하기 위해서)
  • 복합 기본키는 가능하면 피하기
  • 테이블에 기본키는 하나만 만들 수 있다.
  • 모든 테이블에 기본키를 두도록 한다.

후보키

기본키가 될 수 있는 후보들
테이블에서 각 튜플들을 구별하는 데 기준이 되는 하나 혹은 그 이상의 칼럼들의 집합이다.
후보키는 테이블에 있는 각 튜플을 고유하게 식별할 수 있어야 한다.

대체키

후보키에서 기본키로 사용될 잠재적 역량을 가졌지만 선택되지 못한 키.
하나의 후보키가 기본키로 선택되면 다른 후보키들은 대체키가 된다.

복합키

각 튜플들을 식별할 수 있는 두 개 이상의 속성들로 구성된 후보키

슈퍼키

특정 튜플을 고유하게 식별할 수 있는 키

슈퍼키와 후보키의 차이점

슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.
후보키최소성을 만족한다.

유일성 : 하나의 키 값으로 하나의 튜플을 유일하게 식별할 수 있어야 하는 것
최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 하는 것

외래키

관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성

외래키 제약조건

기준 테이블의 열에 반드시 Primary KEY, unique 제약조건이 설정되어 있어야 한다.

정리

무결성 제약조건

무결성 : 데이터에 결함이 없는 상태

개체 무결성

기본키는 NULL값이 될 수 없다.

기본키의 목적은 튜플의 유일성을 판단해주고, 각 튜플에 쉽게 접근할 수 있도록 하는 것인데, 기본키가 NULL이 된다면, 본래의 목적을 상실하게 된다.

참조 무결성

외래키는 참조할 수 없는 값을 가질 수 없다.

외래키는 다른 릴레이션의 기본키를 참조하는 속성이고, 릴레이션 간의 관계를 표현하는 역할이다.
그런데 자신이 참조하는 릴레이션의 기본키와 상관없는 값을 가지게 되면, 두 릴레이션을 연관시킬 수 없으므로 본래의 목적을 상실하게 된다.

도메인 무결성

특정 속성 값은 그 속성이 정의된 도메인에 속한 값이어야 한다.
데이터베이스에 삽입되는 데이터들에 제약조건을 의미한다. 삽입되는 데이터, null, 기본값 등을 설정, 제한한다.

키 무결성

릴레이션에는 최소한 하나의 키가 존재한다.

Null 무결성

특정 속성은 null 값을 가질 수 없다.

고유 무결성

특정 속성값은 서로 달라야 한다.

참고 사이트

릴레이션 키 개념 & 종류
무결성 제약조건

반응형