관계형 데이터베이스
데이터베이스
구조화된 데이터들의 집합
관계형 데이터베이스
데이터들을 2차원 배열과 같은 테이블에 저장하고 관리
관계 정의
- 1:M 관계 (부자지간 관계)
- M:N 관계 (비즈니스 관계)
- 1:1 관계 (부부 관계)
관계형 데이터베이 특징
1. 고유식별자
- 테이블은 각 행(레코드)를 식별하기 위해 고유 식별자를 정의할 수 있다.
- 고유식별자는 NOT NULL, UNIQUE 속성을 갖는다.
- 고유식별자는 하나 또는 여러 개의 컬럼들로 정의할 수 있다.
2. 참조무결성
- 테이블에서 외래 키를 선언할 수 있다.
- 외래 키는 다른 테이블에 정의된 고유 식별자를 참조한다.
- 외래 키의 값은 다른 테이블에 정의된 고유 식별자의 범위를 넘을 수 없도록 제한된다.
** 정의된 고유 식별자의 범위를 도메인(domain)이라고 한다.
** 정의된 고유 식별자의 범위를 벗어난 것을 "참조 무결성 위배" 한다고 표현한다.
** 참조무결성은 1:M 관계에서 절대적으로 중요한 역할로 나타난다.
RDBMS 개념도
- 인스턴스(머신) 안에는 데이터베이스 스페이스, RDBMS 서버가 있다.
- 클라이언트는 데이터베이스 서버를 통해 데이터를 조회할 수 있다.
- 데이터베이스 내부의 테이블 간에는 관계(Relation)가 있다.
테이블 속성
- 열은 데이터 타입을 갖는다. 그 타입의 범주 내의 값들을 가질 수 있다.
- 관계형 테이블이란 행과 열로 이루어진 2차원 테이블이다.
테이블 구조
테이블(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 |
---|