모두의 SQL - ERD

-·2022년 6월 19일
0

ERD란?

데이터베이스 개체 설계도

테이블들의 관계를 그림으로 표현한것

키의 종류

  • 테이블에 모든 열의 데이터를 담는 단일행

  • primary key(기본키)

    유일하게 데이터를 구분할수있는 키값

    식별값, NOT NULL, 변경불가

  • 키값이 아닌 열

  • unique key(고유키)

    중복값이 없는 유일한 값을 가지지만 기본키가 아닌것들

  • foreign key(외래키)

    서로 다른 테이블간의 연결관계를 정의하는 외래키, 다른테이블과의 연결을 위해서 존재

제약조건(constraint)

데이터 무결성을 준수하기 위한 방법

제약조건내용
primary key(기본키)UNIQUE + NOT NULL을 만족하며 테이블을 대표하며 각 행을 유일하게 식별하는 값
foreign key(외래키)열값이 부모 테이블의 참조 열 값을 반드시 참조, 참조되는 열은 unique하거나 primary key임(NULL 허용)
unique key(고유키)중복된 값을 허용하지 않음, 유일한 값으로 존재(NULL 허용)
NOT NULLnull값을 허용하지 않음, 값 입력 필수
CHECK범위나 조건을 설정하여 지정된 값만 허용 ex) CHECK(VALUE6 IN ('A', 'B'))

무결성?

데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 의미

데이터베이스는 무결성이 보장되도록 여러 개체에 규정(제약조건)을 부여하여 운영한다.

즉, 필요없는 데이터는 걸러내고 필요한 데이터만 남아있는 상태를 말한다.

관계

ERD의 예시

  • 사각형들이 테이블

    위에서 부터 순서대로 테이블의 이름, 키, 제약조건을 나타내고 있음

  • 사각형들간의 선이 테이블간의 관계를 나타냄

    형태에 따라서 표기법이 여러개있는데 기본만 알면 어떤걸봐도 이해는 가능함

  • 화살표의 꼬리가 어떤관계인지를 나타냄(1:1, 1:N, M:N)

    화살표의 방향이 어느쪽으로 속하는지를 표현

관계선에 대해

관계선의 종류
  • 실선

    필수관계 서로 없으면 안됨, 반드시 존재해야함

    PK -> FK/PK 관계를 가지는 경우

  • 점선

    선택적관계 서로없어도 되는경우

    PK -> 일반키 관계를 가지는경우

기호의 종류
  • |: 1개 / 실선은(dash) ‘1'을 나타낸다.
  • ∈: 여러개 / 까마귀 발(crow’s foot or Many)은 ‘다수' 혹은 '그 이상'을 나타낸다.
  • ○: 0개 / 고리(ring or Optional)은 ‘0'을 나타낸다.
관계차수에 대한 종류와 설명

  • Type1(실선과 실선): 정확히 1 (하나의 A는 하나의 B로 이어져 있다.)
  • Type2(까마귀발): 여러개 (하나의 A는 여러개의 B로 구성되어 있다.)
  • Type3(실선과 까마귀발): 1개 이상 (하나의 A는 하나 이상의 B로 구성되어 있다.)
  • Type4(고리와 실선): 0 혹은 1 (하나의 A는 하나 이하의 B로 구성되어 있다.)
  • Type5(고리와 까마귀발): 0개 이상 (하나의 A는 0또는 하나 이상의 B로 구성되 있다.)

복합키(Composite Key)

하나이상의 키값을 조합해서 만든키

기본키가 되지 못하는 컬럼들을 서로 묶어서 기본키처럼 사용

애초에 기본키가 있는게 좋음, 키를 묶어서 만드는것이기 때문에 최대한 적게 묶을수록 좋다.

profile
거북이는 오늘도 걷는다

0개의 댓글