SQL과 관계형 모델

dong5854·2022년 6월 20일
0

SQL이란?

SQL 이란 관계형 데이터베이스(RDB)에 질의를 하기 위한 언어이다.

관계형 모델

관계형 모델이란 실제 세계의 데이터를 "관계"라는 개념을 사용해 표현한 데이터 모델이다.

이러한 관계형 모델을 이해하는데 가장 중요한 개념은 관계(릴레이션)이다.

릴레이션(관계)의 정의

릴레이션(관계)에 대해 이해할 때 가장 일반적으로 하는 실수는 이를 테이블 사이의 관계라고 오해하는 것이다. 나 또한 ERD(Entity Relationship Diagram)을 사용해 테이블 사의의 관계를 디자인하여 이러한 오해를 하고 있었다.

SQL에 있어 릴레이션에 해당하는 것은 테이블이다.

관계형 모델에서 릴레이션의 정의는 다음과 같다. 릴레이션은 제목(Heading)과 본체(Body)로 구성돼 있다.

제목은 속성(Attribute)이 n개 모인 집합으로 속성은 이름과 데이터형으로 되어있다. 본체는 속성값 집합인 행 또는 영어로 말하면 튜플(tuple)의 집합이다.

튜플에 포함된 속성값은 이름과 데이터 형이 제목에서 지정한 것과 서로 일치해야한다. 제목에서 정의하지 않은 속성이 튜플에 존재하거나, 제목에는 포함된 속성이 튜플에는 존재하지 않는 경우는 규칙 위반이다. 이를 바꿔서 말하면 릴레이션이란 튜플의 집합이고, 튜플은 모두 같은 n 개의 속성값의 집합으로, 데이터 구성이 서로 같다.

출처: 오쿠노 미키야, 관계형 데이터베이스 실전 입문, 위키북스, 2016, 6쪽

위의 그림은 릴레이션의 예를 보여준다. 제목은 국가, 국가번호, 지역이라는 3개의 속성으로 구성되어있다. 엄밀히 따지면 튜플의 집합이 릴레이션의 본체이며 원래 의미는 본체와 제목의 쌍을 가진 관계라고 하지만 문맥에 따라서는 제목이 포함돼 있거나 포함되지 않기도 하기 때문에 이는 문맥에 맞춰 적절하게 바꿔서 이해해야 한다.

튜플과 속성을 SQL에서는 각각 행(row)와 열(column)이라고 한다. 이렇게 관계형 모델과 SQL에는 각각에 맞는 개념이 있음에도 불구하고 명칭이 다른 것은 성질이 다르기 때문이다.

출처: 오쿠노 미키야, 관계형 데이터베이스 실전 입문, 위키북스, 2016, 7쪽

위 표는 관계형 모델과 SQL에 대한 각 객체를 정리하고 있다.

본 게시물은 관계형 데이터베이스 실전 입문(오쿠노 미키야 지음, 위키북스)를 참고하여 작성되었습니다.

profile
https://github.com/dong5854?tab=repositories

0개의 댓글