일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- UML 다이어그램
- 팬아웃
- 아키텍처 패턴
- 브로커 패턴
- 메타 데이터
- 데이터 입출력
- 클라이언트 서버 패턴
- 요구사항 분석
- 알고리즘 문제
- baekjoon
- 데이터베이스
- 단계적 분해
- 마스터 슬레이브 패턴
- 백준
- 기능 모델링
- 동적 모델링
- C++
- 정보처리기사
- Unreal Engint4
- UML
- UnrealEngine
- 정보처리기사 실기
- 정보 은닉
- 파이프 필터 패턴
- 언리얼엔진5
- 언리얼엔진 함수
- 요구사항 확인
- 정처기
- UnrealEngine5
- DBMS
Archives
- Today
- Total
게임 개발자를 향해
관계형 데이터베이스의 구조 / 관계형 데이터 모델 본문
1. 관계형 데이터베이스
- 관계형 데이터베이스는 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 데이터베이스이다.
- 개체와 관계를 모두 릴레이션이라는 표로 표현하여 개체 릴레이션과 관계 릴레이션이 존재한다.
- 장점은 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.
- 단점은 성능이 다소 떨어진다.
2. 관계형 데이터베이스 릴레이션 구조
릴레이션(Relation)은 데이터들을 표(table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.
이미지 출처: http://wiki.hash.kr/index.php/%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98
<여기서 Tip!>
아래에 릴레이션의 구성요소의 정의를 설명하고 위 학생 릴레이션을 예로 들어 설명하겠다.
3. 튜플(Tuple)
- 튜플은 릴레이션의 행을 뜻한다.
- 설명하자면 학생 릴레이션이면 한 학생이 가지고있는 정보를 통틀어 튜플이라 한다. (클래스의 인스턴스 개념)
- 학생 릴레이션에는 4개의 튜플이 있으며 이는 4명의 학생 정보가 있다는 것이다.
- 튜플의 수를 카디널리티(cardinality) 한글로는 기수 라고 한다.
4. 속성(Attribute)
- 속성은 릴레이션의 열을 뜻한다.
- 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위이다.
- ["이름"은 문자열], ["나이"는 0 ~ 200 사이의 정수] 등 도메인을 기준으로 저장하고 관리한다.
- 속성의 수를 디그리(Degree), 한글로는 차수 라고 한다.
- 학생 릴레이션에서 속성은 [학번], [이름], [성별], [학과] 등이 있다.
5. 도메인
- 도메인은 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합이다.
- 학생 릴레이션의 성별 속성은 "남", "여" 문자열 외에 값은 입력될 수 없다.
- 도메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용된다.
<여기서 Tip!>
예를들어 20세 이하 고객 위주의 릴레이션이라면 나이 속성의 도메인은 [ 0 ~ 20 사이의 정수] 이며, 이외의 숫자는 들어갈 수 없다.
속성은 튜플들에 저장될 정보의 분류이며 그 속성마다 도메인을 기준으로 값을 저장한다.
6. 릴레이션의 특징 (너무나도 중요)
- 한 릴레이션에는 똑같은 튜플이 존재할 수 없다.
- 한 릴레이션 에 포함된 튜플 사이에는 순서가 없다.
- 튜플들의 삽입 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.
- 속성의 값은 논리적으로 더이상 쪼갤 수 없는 원자값만을 저장한다.
<여기서 Tip!>
속성들의 순서가 상관없는 이유는 어차피 쿼리문을 사용할 때 사용자의 임의로 순서를 지정하기 때문이다.
나이 | 성별 | 이름 |
20 | 남 | 김뿌단 |
20 | 남 | 김뿌단 |
위와같이 이름과 나이와 성별이 같은 튜플이 존재할 수 없다.
독자들은 생각할것이다.
??? : "다른사람일 수 있잖아?"
나이 | 성별 | 이름 | 회원번호 |
20 | 남 | 김뿌단 | 0018 |
20 | 남 | 김뿌단 | 0019 |
만약 같은 정보를 가진 사람이 2명이라면 서로를 식별할 수 있는 회원번호라는 속성(기본키)을 사용해야한다.
기본키가 되는 속성은 밑줄이 그어진다.
키에 관한 내용은 다음 챕터에 자세히 다루겠다.
나이 | 성별 | 이름 | 회원번호 |
20 | 남 | 김뿌단 | 0018 |
20 | 남 | 김뿌단 | 0019 |
나이 | 성별 | 성 | 이름 | 회원번호 |
20 | 남 | 김 | 뿌단 | 0018 |
20 | 남 | 김 | 뿌단 | 0019 |
또한 속성은 논리적으로 쪼갤 수 없는 원자값만 저장한다.
7. 관계형 데이터 모델
- 관계형 데이터 모델은 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조이다.
- 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 데이터 간의 관계를 표현한다.
- 계층 모델과 망 모델의 복잡한 구조를 단순화 시킨 모델이다.
- 관계형 모델의 대표적인 언어는 SQL 이다.
<여기서 Tip!>
DB 개념에서 빠질 수 없는 아주 중요한 개념이니 무조건 알고 가는게 좋다.

읽어주셔서 감사합니다!
정처기 화이팅!
'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글
관계형 데이터베이스의 제약조건 - 무결성(Integrity) (0) | 2022.09.05 |
---|---|
관계형 데이터베이스의 제약 조건 - 키(Key) (0) | 2022.09.05 |
E-R(개체 - 관계) 모델 (0) | 2022.09.04 |
데이터 모델의 구성 요소 (0) | 2022.09.04 |
데이터 모델의 개념 (0) | 2022.09.04 |