문딤·2022년 9월 27일
0
post-custom-banner

키(KEY)란?

키는 DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때
다른 튜플들과 구별할 수 있는 유일한 기준이되는 속성(attribute)

+@ 튜플
릴레이션을 구성하는 각각의 행의 모임으로 구성된다.
파일구조에서는 레코드와 같은 개념이다.
튜플의 수 = 카디널리티 = 기수 = 대응수라 한다.

+@ 카디널리티

차수?

중복도가 '낮으면' 카디널리티가 '높다'고 표현
중복도가 '높으면' 카디널리티가 '낮다'고 표현
전체 행에 대한 특정 컬럼의 중복 수치를 나타낸다.

id의 경우 중복된 값이 없으므로 다른 컬럼에 비해 카디널리티가 높다.
name의 경우 distinct 시 6건이 나온다. => id 에 비해 상대적으로 카디널리티가 낮다.
location의 경우 카디널리티가 제일 낮다고 볼수 있겠다.

  • distinct 값이 많다는 건 중복도가 낮다는 의미이다.

+@ 릴레이션

행과 열로 이루어진 데이터의 집합인 테이블에 제약을 추가한것.

  1. 모든 값은 유일한 값을 가진다.
  2. 하나의 릴레이션에서 중복되는 행이 존재하면안된다.
  • 위 조건을 충족하는 테이블만이 릴레이션이 될 수 있기 때문에 모든 릴레이션은 테이블이지만 모든 테이블이 릴레이션인건 아니다.

+@ 컬럼

테이블을 구성하는 데이터들 중 세로로 묶은 데이터셋을 의미한다.
일반적으로 옅은 그 테이블의 속성을 의미하며 열을 구성하는 값들은 도메인으로 되어있다.
이 또한 관계형DB에서는 속성이라는 이름으로 불린다.

+@ 도메인

DB에서 필드에 채워질수 있는 값의 집합.

+@ 스키마

  • 전반적인 DB 구조를 기술한 것이다.
  • DB를 구성하는 데이터 레코드의 크기, 키의 정의 , 관계등을 정의한 것.
  • USER관점에 따라 외부, 내부, 개념 스키마로 구분짓는다.
  • 명세된 USER의 요구를 개념 스키마 형태로 변환하고, 이를 다시 내부 스키마형태로 변환한다.

외부 스키마
사용자의 입장에서 정의한 데이터베이스의 논리적 구조. 데이터들을 어떤 형식, 구조, 화면을 통해 사용자에게 보여줄 것인가에 대한 명세를 말하며 하나의 데이터베이스에는 여러개의 외부 스키마가 있을 수 있다.일반 사용자에게는 질의어를 이용해 DB를 쉽게 사용할 수 있도록 하고 응용 프로그래머는 언어를 사용해서 DB에 접근하도록 한다.

개념 스키마
조직체 전체를 관장하는 입장에서 DB를 정의한 스키마. DB에 대한 모든 논리적 구조를 기술하기 때문에 데이터베이스에 하나만 존재하며, 통상 스키마 라고 하면 개념 스키마를 일컫는다.

내부 스키마
데이터베이스가 어떻게 저장장치에 저장될 지에 대한 명세. 물리적인 저장장치와 데이터베이스 간의 관계를 정의하므로 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

기본키

  • 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성이다.
  • 테이블에서 기본키는 오직 1개만 지정할 수 있다.
  • 기본키는 NULL값을 절대 가질수 없고, 중복된 값을 가질수 없다.

대체키

  • 슈퍼키중에서 속성은 최소한의 갯수로 구분지을 수 있어야 후보키가 될 수 있다.
  • 최소성을 만족하지 못해서 후보키가 될 수 없다.
  • 후보키 중에서 기본 키로 선택되지 않은 키.

후보키

  • 유일성과 최소성을 만족하며, 기본키가 될 수 있는 후보 키 .

외래키

  • 어떤 릴레이션간의 기본 키를 참조하는 속성이다.
  • 테이블들간의 관계를 나타내기 위해 사용된다.

참조 될 테이블(A)과 참조하는 테이블(B) 값이 입력되어 있어야한다.

참조 될 테이블(A)열의 값은 기본키로 설정 되어 있어야한다.

참조하는 테이블 값은 기본키와 동일한 속성을 지닌다.

부모 테이블이 먼저 생성된 두, 참조하는 자식테이블이 생겨야한다.
또한, 부모 테이블이 먼저 삭제 될 수 없다.
==> 자식 테이블을 먼저 삭제 한 후 부모테이블을 삭제해야한다.
EX) 참조 무결성 제약조건

슈퍼키

  • 유일성을 만족하는 키,

어떤 속성끼리 묶던지 중복값이 안나오고 서로 구별만 할 수 있으면 된다.

업로드중..

참고

https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%ED%82%A4KEY-%EC%A2%85%EB%A5%98-%F0%9F%95%B5%EF%B8%8F-%EC%A0%95%EB%A6%AC

https://limkydev.tistory.com/108

profile
풀스택개발자가 될래요
post-custom-banner

0개의 댓글