DB 구조

Minyuk·2022년 9월 21일
0
post-thumbnail

Database key 종류

Primary key

  • candidate key 중 선택한 main key로써, 각 row를 unique하게 구분하는 column(또는 column의 집합)
  • Null 값과 중복된 값을 가질 수 없음.
  • table당 1개만 지정해야 함.

Foreign key

  • 다른 table의 Primary key column과 참조되는 table의 column

Super key

  • 각 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합
  • 유일성 : 하나의 key 값으로 특정 row만을 유일하게 찾아낼 수 있어야 함.
  • ex) 학번, (학번, 이름), 주민등록번호 등

Candidate key

  • Super key 중에서 더이상 쪼개질 수 없는 Super key
  • 각 row를 유일하게 식별할 수 있는 최소한의 속성들의 집합
  • 최소성 : 모든 row를 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어야 함
  • ex) 학번, 주민등록번호

Alternative key

  • 후보키가 두 개 이상일 경우, 기본키로 지정이 되지 못하고 남은 후보키

Composite key

  • table에서 각 row를 식별할 수 있는 두 개 이상의 column으로 구성된 Candidate key

관계형 데이터베이스의 N:M

N:M

양쪽 Entity 모두가 서로에게 1:N 관계를 갖는 구조
N:M 구조에서는 보통 새로운 table(Mapping table)을 통해 관계를 맺음.

1:N

하나의 Entity가 관계를 맺은 Entity의 여러 객체를 가질 수 있는 구조
두 table간의 관계를 mapping cardinality로 표현

  • 1 : 1
  • 1 : N
  • N : M

1:N 구조에서는 보통 primary key - foreign key를 사용하여 관계를 맺음
Foreign(외래키)는 두 table을 연결할 때 한 table의 외래키가 다른 하나의 table의 기본키
위 예시와 같은 상황에서 고객의 정보가 변경되어도 주문내역 table은 수정할 필요가 없어 효율적인 데이터베이스 운영이 가능함

Join

두 개 이상의 테이블을 서로 연결하여 하나의 결과를 만들어 보여주는 것

Inner Join(내부 조인)

두 테이블에 모두 있는 내용만 join되는 방식

Left Outer Join(외부 조인)

왼쪽 table의 모든 행에 대해서 join을 진행

[SQL JOIN 예시]

  • book table
idtitlea_id
1알고리즘2
2자료구조4
3운영체제3
4프로그래밍2
5SQLNull
  • author table
idname전공 설명
1JohnDesign
2HyukCS
3JessiProgramming
select * from book inner join author on book.a_id = author.id;
idtitlea_idname전공 설명
1알고리즘2HyukCS
2자료구조2HyukCS
3운영체제3HyukCS
4프로그래밍3JessiProgramming

두 table에 공통된 데이터가 존재하는 행에 대해서만 데이터를 검색합니다.

select * from book left join author on book.a_id = author.id;
idtitlea_idname전공 설명
1알고리즘2HyukCS
2자료구조2HyukCS
3운영체제3HyukCS
4프로그래밍3JessiProgramming
5SQLNullNullNull

왼쪽 vedio table의 모든 데이터를 포함한 데이터를 검색합니다.

0개의 댓글