01. 관계 데이터 모델
1. 릴레이션
- 행과 열로 구성된 테이블
1) 개념
- 수학정 정의 : 카티션 프로덕트의 부분 집합
- 개념적 정의 : 릴레이션 스키마+ 릴레이션 인스턴스
2. 스키마와 인스턴스
1) 스키마
- 정의 : 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의
- 테이블의 첫 행인 헤더에 나타남
- 속성, 자료 타입 등의 정보를 담고 있음
- 속성 : 릴레이션 스키마 열
- 도메인 : 속성이 가질 수 있는 값의 집합
- 차수(Degree) : 속성의 개수
2) 인스턴스 : 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합
- 투플, 행, 카디날라티(투플의 수) 이라고도 함
3. 릴레이션의 특징
- 속성은 단일 값을 가진다. (여러개의 값을 가질 수 없다.)
- 속성은 서로 다른 이름ㅇ르 가진다.
- 한 속성의 값은 모두 같은 도메인 값을 가진다.
- 속성의 순서는 상관 없다
- 릴레이션 내의 중복된 투플은 허용하지 않는다.
- 투플의 순서는 상관 없다.
- 한 투플의 각 속성은 원자 값을 가진다.
4. 관계 데이터 모델
- 관계 데이터 모델은 데이터를 2차원 테이블 형태인 릴레이션으로 표현.
- 릴레이션에 대한 제약조건, 관계 대수등을 정의한다.
02 무결성 제약 조건
- 데이터베이스에 저장된 데이터는 결함이 없어야 하며 질의에 대한 신뢰성 답을 제공해야함
1. 키
1) 의미 : 릴레이션에서 특정 투플을 식별할 때 사용하는 속성의 집합이다.
2) 종류
ⓐ 수퍼키 : 한 릴레이션 내의 특정 투플을 고유하게 식별하는 속성의 집합 ex) 학번, 주소, (학번, 이름) 등
ⓑ 후보키 : 각 투플을 고유하게 식별하는 최소한의 속성의 모임 ex)학번, 주소
- 후보키는 유일성과 최소성이라는 2가지 조건 모두 만족해야 함
- 모든 릴레이션에는 최소 한 개 이상의 후보키가 있음
- 후보 키도 두 개 이상의 복합 속성으로 이뤄질수 있음.
ⓒ 대체 키 : 기본 키가 아닌 후보키
ⓓ 외래 키 : 어떤 다른 릴레이션의 기본 키를 참도하는 속성
2. 릴레이션 쿼리 언어
1) 특징
- 데이터 베이스에서 데이터를 조작하고 검색하는 것을 허용함
- 관계형 모델의 주요 장점 – 간단하고 강력한 데이터 쿼리 지원
- 쿼리 언어 != 프로그래밍 언어
– QL은 복잡한 계산에 사용할 수 없다.
– QL은 대규모 데이터 세트에 대한 쉽고 효율적인 액세스를 지원
– QL은 논리에 기반한 강력한 형식적 기반을 가지고 있음.
- QL은 많은 최적화를 허용합니다.
- 쿼리를 직관적으로 작성할 수 있으며, 효율적인 평가는 DBMS가 담당합니다.
– 관계형 쿼리에 대한 정확한 의미를 이해합니다.
– 옵티마이저가 작업을 광범위하게 재정렬하고 답변이 변경되지 않도록 할 수 있습니다.
두 가지 수학적 쿼리 언어는 '실제' 언어(예: SQL)의 기초를 형성합니다.
> 관계 대수
– 더 많은 운영적(관계적), 실행 계획을 나타내는 데 매우 유용
> 관계 해석
– 사용자가 계산 방법보다 원하는 것을 설명할 수 있게 함 , 선언적
> 관계대수학을 이해하는 것은 SQL, 쿼리 처리를 이해하는 열쇠입니다!
3. sql 개요
1) 데이터 정의문 : 테이블이나 관계의 구조를 생성하는데 사용함 ex) CREATE(생성), ALTER(변경), DROP(삭제)
* purge : 이 명령어를 사용하면 삭제 시 복원이 완전 불가능하다.
CREATE TABLE 이름
DROP TABLE 이름
ALTER TABLE 이름
2) 데이터 조작문 : 테이블에 데이터를 검색, 삽입, 수정, 삭제 하는데 사용 ex) select, insert, delete, update
// 검색
SELECT * (속성이름)
FROM Student S (테이블)
WHERE S.age = 18; (검색 조건)
//삽입
INSERT INTO students (sid, name, login, ange, gpa)
VALUES (53688, 'Smith', 'smith@ee', 18, 3.2)
//삭제
DELETE
FROM Student S
WHERE S.NAME = 'Smith'
//변경
UPDATE account
SET balance = balance*1.06
WHERE balance > 10000
3) 데이터 제어어 : 데이터의 사용 권한을 관리하는 데 사용 ex) GRANT, REVOKE
2. 무결성 제약 조건
- 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.
- 도메인 무결성 제약 조건 : 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 을 가져야 함
- 개체 무결성 제약조건 : 기본 테이블의 기본 키를 구성하는 어떤 속성도 null값을 가질 수 없음
- 참조 무결성 제약조건 : 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인일 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는 것.