데이터베이스 3강을 보며 배운내용
정리(TL;DR)
관계형 모델은 표다
그 표를 릴레이션이라고 하고
그 릴레이션과 함께 사용되는 용어들은
컬럼, 레코드, 키, 스키마 등이 있다
그리고
이 표를 원하는 데이터를 가지고 있게 연산할 수 있다
릴레이션 1개에 사용하는 셀렉트, 프로젝트 등
릴레이션 2개이상에 사용하는 조인, 카티시언 프로덕트 등이 있다
다음 강의 4강은
데이터베이스를 듣기 시작한 이유인 SQL!
기본만 잘 알아놓자!
관계형 모델은 언제 사용하더라?
데이터베이스 2강에서 봤던 그림 호출
논리적 데이터 모델링이란?
- DBMS 구현 모델에 맞춰 데이터 표현하는 과정
- 데이터 정의 언어로 적은 개념 스키마 생성
왜 논리적 데이터 모델링이 필요한가?
- 구현 모델에 맞춰 데이터 수정
- ERD를 RDBMS가 수용가능한 구조로 변경
관계형 모델(Relational Model)
- 릴레이션(Relation)으로 데이터 표현
- 데이터 포현 단순하고 직관적 구조화 모델
- 현재 다수의 DBMS의 기초
- Oracle, DB2, PostreSQL, MYSQL 등
릴레이션은 뭘까?
단어가 어렵지~~ 그냥 표다
이렇게
Q. 표가 가지고 있는 열의 제목들은?
A. 스키마
Q. 스키마에 맞게 값을 채워넣은 것은?
A. 레코트(튜플)
그러고 보니 TypeScript에서 본 튜플이랑 비슷하게 생겼구만
Q. 각 열은 뭐라 그러지?
A. 컬럼(속성, 필드) 이름 많아
✅ 릴레이션의 특징
- 유일성: 같은 레코드 존재 불가능
- 레코드 & 컬럼 무순서성: 순서 의미 없다
- 원자성: 모든 값은 하나의 의미만 갖는다
🗝️ 키(Key)
역할
레코드를 유일하게 식별할 수 있는 값
속성
유일성(Uniqueness)
최소성(Irreducibility)
종류
- 수퍼키(Super key): 유일성만 만족하는 컬럼들의 집합
- 후보키(Candidate key): 유일성 & 최소성 만족하는 컬럼들의 집합
- 기본키(Primary key: PK): 후보키중에 하나. 레코드 구분하는데 사용되는 중요한 키!
- 외래키(Foreign key: FK): 다른 릴레이션에 참조되는 기본키
관계형 모델의 제약조건
- 영역 제약 조건: 칼럼에 정의된 영역(domain)을 벗어나는 값 설정 불가능
- 키 제약: 키로 지정된 컬럼에는 다른 값이 들어갈 수 없다
- 개체 무결성 제약: 어떤 기본키도 Null 될 수 없다
- 참조 무결성 제약: 반드시 존재하는 레코드의 기본키만 참조 가능
ERD => 관계형 모델 변환
✅ 방법
🤖 예시(일 대 다)
관계 연산이란?
기존의 릴레이션 이용해서 새로운 릴레이션 생성
즉 기존의 데이터 표에서, 새로운 데이터 표를 추출하는 방법 wow!!
추출할 때 관계 대수를 사용한다
관계 대수(Relational Algebra)
- 관계 연산 정의
- 셀렉트, 조인 등
- 새로운 릴레이션 생성
- 연산 처리 표현
🧮 연산
- 셀렉트
릴레이션에서 조건을 만족하는 레코드로 새로운 릴레이션 생성
- 프로젝트
선택한 컬럼만 갖는 릴레이션 생성(좀더 필터를 적용시키는 느낌)
- 조인
두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션 생성
- 카티시언 프로덕트
두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 이항 연산자
셀렉트랑 프로젝트는 한 릴레이션에서 사용
조인과 카티시언 프로덕트는 2개이상 릴레이션에서 사용
집합 연산자
합집합, 교집합, 차집합
집합 연산자 조건
릴레이션 차수가 동일해야 한다
같은 도메인이 가지고 있어야 한다
'Computer Science > Database :: 데이터베이스' 카테고리의 다른 글
데이터베이스 5강 :: 데이터 조작 언어 INSERT, UPDATE, DELETE, SELECT (0) | 2022.03.04 |
---|---|
데이터베이스 4강 :: SQL, 데이터 정의 언어 (0) | 2022.03.03 |
데이터베이스 2강 :: 데이터베이스 모델링 왜? 개체집합, 관계집합 (0) | 2022.02.28 |
데이터베이스 1강 :: 데이터베이스 등장배경, DBMS, 시스템 아키텍처 (0) | 2022.02.24 |
[데이터베이스] SQL - 관계형 데이터베이스 표준 언어 (0) | 2021.04.28 |