컴퓨터 과학 기초발행일 2023. 3. 20.원본 https://blog.naver.com/jword_/223050016623 ↗

관계형 데이터베이스 (관계 데이터 모델)

관계형 데이터베이스 (관계 데이터 모델) — #관계형데이터베이스 #관계데이터모델 컴퓨터 공학과 학사과정 중에 공부한 내용을 정리했습니다. **정보처...

#Basic keyword#Naver Blog

#관계형데이터베이스 #관계데이터모델

​

컴퓨터 공학과 학사과정 중에 공부한 내용을 정리했습니다.

​

**\\정보처리기사 필기 준비중이라면?\*\***

> 정보처리기사 총정리 바로가기

관계형 데이터 베이스

개발자라면 누구나 RDBMS에 대해 들어 봤을 것입니다. 대표적인 프로그램이 바로 MySQL인데요. 저도 이전글을 통하여 MySQL을 직접 사용하여 정리하는 글을 작성한적이 있습니다.

​

오늘은 관계형 데이터 베이스를 실무적으로 다루는 것이 아닌 학문적으로 세세하게 분리하여 개념을 정리해볼까 합니다.

데이터를 처리하는 방법

이미지

현실에서 데이터베이스까지

현실에서 관찰 가능한 모든 것은 데이터로 불릴 수 있습니다. 하지만, 모든 데이터를 담아버리면 양이 너무 방대해져 관리하기가 어렵고 비효율적입니다. 궂이 저장하지 않아도 될 데이터를 저장할 필요는 없습니다.

​

그래서 우리는 정말 필요한, 가치가 있는 데이터들을 잘 추려서 저장하는 능력이 필요합니다. 저장할때는 그냥 데이터 베이스에 무작정 넣는 것이아니라 단계가 존재합니다.

이미지

개념적 모델링

먼저 관찰할 대상(개체: entity)을 선정한 뒤, 그 대상의 특징을 나눌 필요가 있습니다. 예를 들어 옆집 강아지 뽀삐를 관찰 대상으로 정하면, 뽀삐의 견종, 털 색깔, 크기, 몸무게, 주인이름 등 데이터의 사용목적에 따라 다양하게 나눌 수 있습니다. 이렇게 나누는 것을 개념적 모델링이라고 부릅니다. 개념적 모델링에 대해서는 다음에 정리해두겠습니다.

​

이미지

​

논리적 모델링

뽀삐라는 대상과, 뽀삐의 특징, 그리고 뽀삐의 특징에 해당하는 실제 값을 데이터 베이스에 넣어야합니다. 이를 우리는 논리적 모델링이라고 부릅니다.

​

이미지

​

논리적 모델링을 하기전에 필요한 것은 데이터 베이스가 어떻게 구성되어있는지 먼저 이해할 필요가 있습니다. 예를들어 위와 같은 옷장에 옷을 넣는다고 생각해봅시다. 겉옷을 거는 부분, 바지를 넣는 부분, 티셔츠를 넣는 부분, 양말 및 속옷을 넣는 부분 등 옷의 종류에 따라 분류해서 넣는게 보기에도 좋고, 실제로 사용하기에도 효율적입니다.

​

옷장(database)에 옷(data)을 잘 정돈해서 넣으려면 옷장의 특성을 잘 이해하여 적절하게 넣는게 중요하듯이, 데이터 베이스에 데이터를 넣기 위해서는 데이터베이스의 특징을 이해할 필요가 있습니다.

이미지

관계적 데이터 모델

옷장에서 시야를 좀 더 확장해 봅시다. 위에서 사용한 옷장은 우리집(My home) 내 방(My room)에 위치한 옷장입니다. 크게보면 내 방(My room)의 가구들 중에 옷장은 하나의 가구에 속합니다. My Room이라는 데이터베이스 옷장은 하나의 데이터에 불과하다는 것이죠. 그럼 My room은 어떤가요? My Room은 My Home의 하나의 요소에 불과합니다.

​

이처럼 데이터 베이스가 관계적으로 얽히고 얽혀있는 것을 관계적 데이터 모델이라고 부를 수 있습니다. 우리는 이제 현실세계에 있는 데이터를 관계적 데이터 모델에 넣기 위하여 데이터 베이스가 어떻게 구성되어있는지 알 필요가 있습니다.

데이터 베이스 해체하기

이미지

이제 본격적으로 데이터 베이스를 해체할 시간입니다. 위에서 언급했듯이 데이터베이스의 구성요소를 알아보고 각각의 특징을 이해할 필요가 있습니다.

​

릴레이션(relation)

릴레이션(relation)은 하나의 주제(개체)를 표로 나타낸 개념입니다. 이 릴레이션을 세부적으로 나눠서 알아볼 필요가 있습니다.

​

속성과 튜플

속성(attribure)는 개체를 나누는 특성입니다. 예를들어 뽀삐의 견종, 털 색깔 등에 해당되는 부분이죠. 반면 튜플은 속성에 해당하는 값들의 집합으로 볼 수 있습니다. 견종은 푸들이고, 털은 갈색이라면 (푸들, 갈색)이 하나의 튜플이 되는것이죠.

​

속성은 릴레이션의 열(column)로 튜플은 릴레이션의 행(row)로 생각하시면 됩니다. 속성의 갯수를 차수(degree)로 부르고, 튜플의 갯수를 카디널리티(cardinality)라 부릅니다.

​

도메인

도메인(domain)은 속성값들을 제한하는 기능입니다. 예를들어 뽀삐의 자식수를 데이터 베이스에 저장하고 싶을때, 자식수는 숫자로만 저장해야합니다. 하지만 사용자가 "세 마리"이렇게 문자로 저장할수도 있습니다. 이때 문자로 작성하지 않도록 제한하는 기능을 도메인이라고 이해하시면 됩니다.

​

예를들어 MySQL에서 데이터 베이스를 만들때 사용하는 char, int같은것이 도메인입니다.

릴레이션 스키마와 인스턴스

릴레이션 스키마

릴레이션 스키마는 릴레이션의 이름 그 자체와 릴레이션 속성의 모든 이름입니다. 뽀삐 예시에서는 뽀삐 자체와 뽀삐의 속성(견종, 털색깔, 자식수 등)을 합친 개념입니다. 한번 만들어 놓으면 자주 변경되지 않는 정적인 성질이 있습니다.

​

릴레이션 인스턴스

릴레이션 인스턴스는 각 속성에 해당하는 값들(투플)의 집합입니다. 개체를 속성으로 나누고 실제 들어가는 값들을 인스턴스라 부릅니다. 사용자가 SQL명령어를 사용하여 삽입, 삭제, 수정 등을 할 수 있기 때문에 동적인 성질이 있습니다.

​

데이터 베이스 스키마와 인스턴스

용어가 너무 많이 나옵니다. 그림으로 헷갈리지 않게 이해를 돕겠습니다.

​

이미지

​

앞서서 말한 릴레이션은 개체의 하나를 의미한다고 했습니다. 뽀삐(개체)만의 특성을 고려하여 작성한 것이죠. 하지만, 이번에는 아파트 전체 강아지들을 저장한다고 가정하겠습니다. 그럼 데이터 베이스이름은 00아파트 강아지들로 저장할 수 있고, 뽀삐, 코코, 초코, 보리 등 다양한 릴레이션이 존재할 수 있습니다.

​

데이터 베이스 스키마와 인스턴스

그럼이제 데이터 베이스 스키마는 각 릴레이션 스키마의 전체 합으로 볼 수 있습니다. 그럼 데이터 베이스 인스턴스는 각 릴레이션 스키마에 해당하는 데이터 값이 될 수 있겠죠?

​

​

​

내용이 길어져 글을 나누겠습니다. 다음글에서는 릴레이션의 특징에 대해 알아보겠습니다.

​

다른 CS전공지식 배우러가기

Basic Keyword

웹브라우저란? 서버란? 클라이언트란?

​

IP/DNS/Domain/Port란 무엇인가?

​

네트워크란, 공유기란 무엇인가?

​

HTTPS란 무엇인가?

​

DOM이란? (웹브라우저 렌더링 과정)

​

[\[자바스크립트기초\] 변수와 객체에 대한 이해](https://m.blog.naver.com/PostView.naver?blogId=jword_&logNo=222883330509&navType=by)

​

자바스크립트 함수에 대한 아주 쉬운 이해(+Method)

​

API,JSON,XML,AJAX에 대한 간단이해

​

자료구조 공부하기

자료구조 총정리