본문 바로가기
Database/SQL

[SQL] 데이터 모델링 기초 다시 잡기 (1)

by keyhong-DE 2023. 12. 24.

관계형 데이터베이스

데이터베이스

구조화된 데이터들의 집합

관계형 데이터베이스

데이터들을 2차원 배열과 같은 테이블에 저장하고 관리

관계 정의

  • 1:M 관계 (부자지간 관계)
  • M:N 관계 (비즈니스 관계)
  • 1:1 관계 (부부 관계)

관계형 데이터베이 특징

1. 고유식별자

  • 테이블은 각 행(레코드)를 식별하기 위해 고유 식별자를 정의할 수 있다.
  • 고유식별자는 NOT NULL, UNIQUE 속성을 갖는다.
  • 고유식별자는 하나 또는 여러 개의 컬럼들로 정의할 수 있다.

2. 참조무결성

  • 테이블에서 외래 키를 선언할 수 있다.
  • 외래 키는 다른 테이블에 정의된 고유 식별자를 참조한다.
  • 외래 키의 값은 다른 테이블에 정의된 고유 식별자의 범위를 넘을 수 없도록 제한된다.

 

** 정의된 고유 식별자의 범위를 도메인(domain)이라고 한다.

** 정의된 고유 식별자의 범위를 벗어난 것을 "참조 무결성 위배" 한다고 표현한다.

** 참조무결성은 1:M 관계에서 절대적으로 중요한 역할로 나타난다.

RDBMS 개념도

  • 인스턴스(머신) 안에는 데이터베이스 스페이스, RDBMS 서버가 있다.
  • 클라이언트는 데이터베이스 서버를 통해 데이터를 조회할 수 있다.
  • 데이터베이스 내부의 테이블 간에는 관계(Relation)가 있다.

RDMS 개념도

테이블 속성

  • 열은 데이터 타입을 갖는다. 그 타입의 범주 내의 값들을 가질 수 있다.
  • 관계형 테이블이란 행과 열로 이루어진 2차원 테이블이다.

행(row)와 열(column) 구분

테이블 구조

테이블(table, relation, entity)

컬럼 속성들로 구성된 여러 개의 레코드들의 집합

  • 테이블 명으로 구분한다.
  • 스키마 객체의 하나로 관계형 데이터베이스를 구성하는 기본 데이터 구조이다.
  • 테이블을 대상으로 데이터를 입력(insert), 수정(update), 삭제(delete), 조회(select)할 수 있다.

열(column, attribute, 속성, property)

테이블의 속성들의 집합

행(row, tuple, record)

하나 이상의 속성들의 집합을 모아놓은 행

  • record(레코드)는 row와 동의어이다.

주식별자(PK, Primary Key)

  • 하나의 레코드를 고유하게 구분할 수 있는 것으로 하나의 컬럼 또는 여러 개의 컬럼이 모여 Primary Key를 구성한다.
  • NOT NULL과 UNIQUE 속성을 모두 같는다.

  • Primary Key는 테이블 등록시 명시해 주어야 한다.
  • 만일 ID가 Primary Key로 선언되지 않으면 번호들이 중복으로 들어가는 것이 허용된다.
  • ID가 Primary Key로 선언되면 중복된 값을 넣으려고 할 때 거부되며 에러가 발생한다.

 

** 주식별자 이외에도 후보식별자(보조식별자)가 있다. 식별자들의 공통점은 유일성(UNIQUE)이다. 

** 보조식별자는 주식별자와 달리 NULL을 허용한다. 예를 들어 전화번호는 행을 구별할 수 있는 유일성을 가지지만, 전화번호를 가지고 있지 않는 사람이 분명히 있을 수도 있다. 

'Database > SQL' 카테고리의 다른 글

[SQL] 데이터 모델링 기초 다시 잡기 (2)  (0) 2023.12.24