일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git
- C언어
- ChatGPT
- Spring Boot
- Spring
- Database
- KAKAO
- LINUX MASTER
- VSCode
- ICT멘토링
- OSS
- 코딩도장
- Resnet
- cloud
- Machine Learning
- 크롤링 개발
- Github
- GoogleDrive
- rnn
- Web
- API
- Rocky Linux
- suricata
- Docker
- 인터넷의이해
- Powershell
- 고등학생 대상
- 국가과제
- colab
- Python
- Today
- Total
코딩두의 포트폴리오
Database - # 05 본문
관계 데이터 모델: 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스라고 함
5.1 관계 데이터 모델의 개념
관계 데이터 모델의 기본 용어
릴레이션(relation)
하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
파일 관리 시스템 관점에서 파일(file)에 대응
속성(attribute)
릴레이션의 열 - ex) 고객아이디, 고객이름, 나이, 등급, 직업, 적립금
파일 관리 시스템 관점에서 필드에 대응
튜플(tuple)
릴레이션의 행 - 속성 값 6개를 모아놓은 것으로 고객 개체의 인스턴스
파일 관리 시스템 관점에서 레코드에 대응
도메인(domain)
하나의 속성이 가질 수 있는 모든 값의 집합 - ex) vip, gold, silver, bronze
도메인 포함 여부가 속성 값 입력 및 수정 시 적합성 판단기준이 됨
But 고객아이디, 고객이름, 나이 등 속성은 도메인 정의가 어려움 -> 도메인을 속성의 특성을 고려한 데이터 타입으로 정의
관계 데이터 모델의 기본 용어
널(null)
속성 값을 아직 모르거나 해당되는 값이 없음
숫자 0, 공백문자와는 다름
차수(degree)
하나의 릴레이션에서 속성의 전체 개수 - ex) 고객 릴레이션 차수는 6
모든 릴레이션은 최소 1 이상의 차수를 유지
카디널리티(cardinality)
하나의 릴레이션에서 튜플의 전체 개수
튜플이 없는 릴레이션이 존재할 수 있음 - ex) 고객
릴레이션과 데이터베이스의 구성
릴레이션 스키마(relation schema)
릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의한 릴레이션의 논리적 구조
릴레이션 스키마는 DBMS가 내부적으로 데이터 정의어를 이용해 정의
- 릴레이션이름(속성이름1, .... 속성이름n)
- ex) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
릴레이션 인스턴스(relation instance)
어느 한 시점에 릴레이션에 존재하는 튜플(릴레이션 스키마에서 정의한 각 속성에 대응하는 실제 값)들의 집합
DBMS는 데이터 조작어를 이용해 릴레이션 인스턴스의 튜플을 검색, 새로운 튜플 삽입과 기존 튜플 삭제 및 수정
데이터베이스는 릴레이션 여러 개로 구성 - ex) 인터넷 쇼핑몰 DB = 고객 + 상품 + 주문(릴레이션)
데이터베이스 스키마(database schema) - DB의 전체 구조로, DB를 구성하는 릴레이션 스키마의 모음
데이터베이스 인스턴스(database instance) - DB를 구성하는 릴레이션 인스턴스의 모음
릴레이션의 특성
튜플의 유일성: 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
튜플의 무순서: 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
속성의 무순서: 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다.
키(Key) - 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
키의 특성
- 유일성 - 키 값이 같은 튜플은 존재 X
- 최소성 - 꼭 필요한 최소한의 속성들로만 키를 구성
키(Key)의 종류
슈퍼키(super key)
유일성을 만족하는 속성 또는 속성들의 집합
ex) 고객 릴레이션의 슈퍼키: 고객아이디, (고객아이디, 고객이름)
후보키(candidate key)
유일성과 최소성을 만족하는 속성 또는 속성들의 집합
슈퍼키 중에서 최소성을 만족하는 것이 후보키가 됨
ex) 고객 릴레이션의 후보키: 고객아이디 단, (고객아이디, 고객이름)은 후보키가 될 수 X
기본키(primary key)
후보키 중에서 기본적으로 사용하기 위해 선택한 키
ex) 고객 릴레이션의 기본키: 고객아이디 속성만 후보키이기 때문에 이 속성이 기본키가 됨(밑줄로 표현)
대체키(alternate key)
기본키로 선택되지 못한 후보키
ex) 고객 릴레이션의 대체키: (고객이름, 주소)
키의 관계
널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합
값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합
단순한 후보키를 기본키로 선택 - 자릿수 적은 정수, 단순 문자열인 속성으로 구성되거나 구성하는 속성의 개수가 적은 후보키
외래키
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
참조하는 릴레이션: 외래키를 가진 릴레이션
참조되는 릴레이션: 외래키가 참조하는 기본키를 가진 릴레이션
외래키 사용 예시 ex) 다른 릴레이션 사이 -> 고객 주문 및 주문 릴레이션
외래키 사용 예시 ex) 다른 릴레이션 사이 -> 학생 상담 DB의 학생, 상담, 교사 릴레이션
외래키 사용 예시 ex) 같은 릴레이션 내, 외래키 자신이 속한 릴레이션의 기본키를 참조하도록 외래키 정의
5.2 관계 데이터 모델의 제약
무결성 제약조건(integrity constraint)
데이터의 무결성을 보장하고, 일관된 상태로 유지하기 위한 규칙
개체 무결성 제약조건(entity integrity constraint)
기본키를 구성하는 모든 속성은 널 값을 가질 수 없는 규칙
참조 무결성 제약조건(referential integrity constraint)
외래키는 참조할 수 없는 값을 가질 수 없는 규칙
'Database' 카테고리의 다른 글
Database - # 07_01 (0) | 2024.04.11 |
---|---|
Database - # 06 (0) | 2024.04.05 |
Database - # 04 (1) | 2024.03.31 |
Database - # 03 (0) | 2024.03.30 |
Database - # 02 (0) | 2024.03.30 |