1. 연산의 종류
(1) select
- 조건에 맞는 레코드를 선택
- ex) select * from student where 40 <= age and age <50;
(2) projection
- 특정한 컬럼만 출력
- ex) select name, age from student;
(3) union (합집합)
- ex) (select * from student where 35 <= age and age <45) union (select * from student where 30 <= age and age <= 40);
(4) difference(minus) (차집합)
- mysql 지원 x
(5) intersection (교집합)
- mysql 지원 x
2. Key
- 테이블의 레코드를 검색할 때 하나의 레코드를 구별(지정)할 수 있도록 하는 기준
- Unique 만족해야함
- Key가 없는 테이블도 충분히 존재할 수 있음 단지 불편할 뿐
- 단일키 혹은 복합키도 가능 (복합키: 여러개의 컬럼을 묶은 것. ex) [대학명, 학번])
- 하나의 테이블에 여러 개의 후보키가 있을 수 있음
(1) Super Key
- 각 행을 유일하게 식별할 수 있는 속성들의 집합
- 후보키의 전 단계
- ex) [학번], [주민등록번호], [학번+주민등록번호], [학번+주민등록번호+이름]
- [이름] -> 서로 같을 수 있기 때문에 슈퍼키가 될 수 없다.
(2) Candidate Key
- 기본키가 될 수 있는 가능성이 있는 키
- ex) [학번], [주민등록번호]
(3) PK: Primary Key
- 후보키 중 선택된 키
- ex) [학번]
(4) Alternate Key
- 후보키 중 기본키를 제외한 나머지
- ex) [주민등록번호]
(5) FK: Foreign Key
- 다른 테이블(릴레이션)에서 기본키로 사용되는 컬럼이 현재 테이블에서 컬럼으로 사용되고 있을 경우
- 의도적인 중복 (join 시)
3. 식별관계와 비식별관계
(1) Identifying Relationship
- FK가 PK인 경우
(2) Non-Identifying Relationship
- FK가 일반컬럼인 경우
4. 인덱스와 키의 관계
(1) 기본 인덱스가 달리는 컬럼
- MySQL: PK(Primary Key), FK(Foreign Key) * PK, FK가 아니면 수동으로 인덱스 달아줘야함.
- Oracle : PK(Primary Key), UK(Unique Key)
(2) 명시적으로 인덱스를 달아야하는 경우
- CREATE INDEX 문 사용
(3) Index 종류
- 단일 인덱스: 단일 컬럼으로 구성
- 복합 인덱스: 여러 개의 컬럼으로 구성
5. Foreign Key
- 참조무결성 제약조건(RI: Referential Integrity)
: 외래키로 연결되어 있는 테이블의 경우에는
외래키로 연결 테이블을 검색하면 데이터가 존재해야 함.
∴ 삽입과 삭제에 순서가 있어야함
- 순서를 어기면 에러발생
- 원 레코드 삭제 시 참조 레코드 먼저 삭제해야.
- 외래키를 가지는 레코드 추가시 연결테이블에 레코드를 먼저 추가해야.
'Database' 카테고리의 다른 글
[Database] DDL 제약조건, DCL(Data Control Language), DML (0) | 2022.04.19 |
---|---|
[Database] DDL(Data Definition Language)/ Join (0) | 2022.04.19 |
[Database] DML(Data Manupulation Language) 1 (0) | 2022.04.19 |
[Database] RDBMS의 기본구조 (테이블, 외래키, 정규화) (0) | 2022.03.17 |
[Database] 데이터의 종류 (정형, 반정형, 비정형) (0) | 2022.03.17 |
댓글