1. C언어 자료형 예약어
unsigned
unsigned는 정수형 자료형 앞에 붙는 예약어로, 음수를 저장하지 않고 0 이상의 값만 저장하게 한다.
unsigned int a;
위 코드는 a라는 변수가 음수를 저장하지 않는 정수형 변수라는 뜻이다.
| 개념 | 정리 |
|---|---|
unsigned | 음수 없이 0 이상의 정수만 저장 |
signed | 양수와 음수 둘 다 저장 가능 |
int | 정수형 자료형 |
char | 문자형 자료형 |
float | 실수형 자료형 |
static | 변수의 생존 기간이나 접근 범위와 관련 |
fixed | C언어 기본 예약어로 보기 어려움 |
핵심 암기
unsigned = 부호 없음 = 음수 X = 0 이상
헷갈리는 보기 정리
static은 자료형이라기보다는 저장 클래스 지정자에 가깝다.
unsigned는 정수형 앞에 붙어서 값의 범위를 바꾸는 역할을 한다.
2. DB 기본 용어
데이터베이스 문제에서는 스키마, 인스턴스, 속성, 튜플, 도메인이 자주 나온다.
스키마
스키마는 데이터베이스의 구조와 제약 조건을 정의한 설계도이다.
예시:
학생(학번, 이름, 학년, 학과)
이 구조 자체가 스키마라고 보면 된다.
| 용어 | 의미 |
|---|---|
| 스키마 | DB의 구조, 속성, 제약 조건을 정의한 설계도 |
| 인스턴스 | 특정 시점에 실제 저장되어 있는 데이터 |
| 속성 | 테이블의 열, column |
| 튜플 | 테이블의 행, record |
| 도메인 | 하나의 속성이 가질 수 있는 값의 범위 |
예시로 이해
| 학번 | 이름 | 학년 |
|---|---|---|
| 101 | 김철수 | 2 |
| 102 | 이영희 | 3 |
| 구분 | 예시 |
|---|---|
| 속성 | 학번, 이름, 학년 |
| 튜플 | 101, 김철수, 2 한 줄 |
| 도메인 | 학년은 1, 2, 3 같은 값 범위 |
| 인스턴스 | 현재 표에 실제로 들어있는 데이터 |
| 스키마 | 학생(학번, 이름, 학년)이라는 구조 |
핵심 암기
스키마 = 설계도
인스턴스 = 현재 데이터
속성 = 열
튜플 = 행
도메인 = 값의 범위
3. 관계대수와 관계해석
관계형 데이터베이스에서 데이터를 다루는 이론적 언어로 관계대수와 관계해석이 나온다.
관계대수
관계대수는 릴레이션에 연산을 수행해서 새로운 릴레이션을 만드는 절차적 언어이다.
즉, “어떻게 구할 것인지” 과정이 중요하다.
| 관계대수 연산 | 의미 |
|---|---|
| SELECT | 조건에 맞는 행 선택 |
| PROJECT | 원하는 열만 선택 |
| JOIN | 두 릴레이션을 조건에 따라 연결 |
| UNION | 합집합 |
| INTERSECTION | 교집합 |
| DIFFERENCE | 차집합 |
| CARTESIAN PRODUCT | 두 릴레이션의 모든 조합 |
예시로 학생 테이블에서 2학년 학생의 이름만 구한다고 하면,
- 2학년 학생을 고른다.
- 이름 속성만 뽑는다.
이런 식으로 과정이 있다. 그래서 관계대수는 절차적이다.
관계해석
관계해석은 원하는 결과가 무엇인지 조건으로 표현하는 비절차적 언어이다.
| 종류 | 의미 |
|---|---|
| 튜플 관계해석 | 튜플 변수를 사용 |
| 도메인 관계해석 | 도메인 변수를 사용 |
관계대수 vs 관계해석
| 구분 | 관계대수 | 관계해석 |
|---|---|---|
| 성격 | 절차적 언어 | 비절차적 언어 |
| 중심 | 어떻게 구할 것인가 | 무엇을 구할 것인가 |
| 결과 | 연산 결과 새 릴레이션 생성 | 조건을 만족하는 결과 표현 |
핵심 암기
관계대수 = 연산 중심 = 절차적
관계해석 = 조건 중심 = 비절차적