2024. 3. 7. 12:30ㆍ데이터베이스
DBMS(Database Management System)
: 응용 프로그램이 데이터베이스에 정보를 저장하고 분석할 수 있도록 하는 소프트웨어
DBMS의 목적
: 일부 데이터 모델에 따라 데이터베이스의 정의, 생성, 쿼리, 업데이트 및 관리를 지원
data model
: 데이터베이스의 데이터를 설명하기 위한 개념 모음
schema
: 특정 데이터 모델을 사용하여 특정 데이터 컬렉션을 묘사
데이터베이스의 논리적 구조
instance
: 그 당시의 데이터베이스에서 데이터들의 스냅샷 (예시)

relation
: 테이블, 표
순서가 없는(Unordered) 집합
tuple
: relation에서 속성값의 집합
순서가 있는 집합. 순서쌍.
즉, 행
attribute
: 속성
atomic 하다 (원자성)
-> 나누어지지 않는 최소 단위
Relation Model
- high-level language로 데이터 접근
- 외부 스키마(뷰) -> 논리적 스키마(스키마, 제약조건) -> 물리적 스키마(페이지, 파일 등)
<Key>
super key
: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
튜플 식별 가능
모든 튜플에 대해 유일성은 만족, 최소성은 만족 x
예) {ID}, {ID,name}
candidate key
: 릴레이션을 구성하는 속성들 중에서
튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
슈퍼키 중에서 식별가능한 최소의 개수만 가진 키
예) {ID}
primary keys
: 유일하게 한 튜플을 구별가능한 키
후보키 중에서 특별히 선정된 키.
중복된 값과 NULL값 x
-> 유일성, 최소성
foreign key
: 한 릴레이션의 속성이 다른 릴레이션의 튜플에 매핑되도록 지정하는 키
중복 허용, NULL 입력 가능
-> 유일성, 최소성 x
<Relational Algebra: 관계 대수>
: 절차적인 언어.
-> 무엇을 어떻게 다룰지 필요하다.
반면에 SQL은 선언적인 언어.
-> 무엇을 다룰지만 필요하다.
기본 연산자
1. select
: 조건에 만족하는 튜플(행)을 select
* SQL에서 select는 열을 select 한다는 점에서 다름.
조건에서 관계 연산, 논리 연산 가능.
예)


2. project
: unary operation: 인자가 하나.
특정 속성을 가져옴.
릴레이션은 집합이므로 중복된 행은 결과에서 제거됨.
예)


이렇게도 가능.

3. cartesian-product
: 두 릴레이션으로부터 결합
-> 모든 데이터의 조합
-> 릴레이션 1의 행이 M개, 릴레이션 2의 행이 N개라 할 때,
결과는 M*N의 행(튜플) 반환.
릴레이션 1의 속성의 수가 x개, 릴레이션 2의 속성의 수가 y개라면,
결과는 x+y개의 속성 반환.
예)


4. Join
: 두 릴레이션을 cartesian product로 가져오고
조건에 맞는 것만 select 해온다.
예)



5. Union Operation
: 합집합

- r, s의 속성들의 수가 일치해야 함.
- r, s의 속성들의 도메인이 일치해야 함.
예)

6. Set-Intersection Operation
: 교집합

역시나 속성들의 수와 도메인이 일치해야 함.
예)

7. Set Difference Operation
: 차집합

역시나 속성들의 수와 도메인이 일치해야 함.
예)

8. The Assignment Operation
: 별칭을 지어주는 연산자
예)

9. The Rename Operation
: 이름을 새로 지어주는 연산자

-> E라는 릴레이션을 x로 이름 붙이겠다는 뜻.
Equivalent Queries

두 쿼리는 절차는 달라 not identical 하지만
결과는 동일하다.
'데이터베이스' 카테고리의 다른 글
| 6. Normalization (0) | 2024.04.16 |
|---|---|
| 5. E-R model (0) | 2024.04.08 |
| 4. Modern SQL (1) | 2024.04.02 |
| 3. Intermediate SQL (2) | 2024.03.26 |
| 2. Introduction to SQL (0) | 2024.03.18 |