1) Entity-Relation Diagram
https://woongsin94.tistory.com/186?category=730536
2) Table 표현하기
3) View & Index
View : DB 사용자들에게 접근이 허용된 Data들을 보여주기 위해 테이블(들)로 부터 유도된 가상 테이블이다.
(실제 물리적으로 존재하는 것이 아닌 가상으로 존재하는 데이터이다)
// View create
CREATE VIEW 뷰이름
AS SELECT 컬럼1, 컬럼2
FROM 테이블이름;
// View delete
DROP VIEW 뷰이름 RESTRICT;
DROP VIEW 뷰이름 CASCADE;
Index : DB의 data에 빠르게 접근하기 위해 존재하는 장치(색인)
CREATE INDEX 인덱스이름 ON TABLE(컬럼명 ASC);
CREATE INDEX 인덱스이름 ON TABLE(컬럼명 DESC);
4) Foreign Key
외래키에 대한 공부는 언제나 중요하다!
테이블 구성시 외래키를 삽입할 때 처음부터 삽입하면 에러가 날 경우에는 테이블을 구성한 다음, 아래의 쿼리문으로 제약조건을 추가해줄 수 있다.
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명
FOREGIN KEY (참조할 속성)
REFENCES 테이블명(참조될 속성);
5) 스키마(Schema)
스키마(Schema) : 스키마란 DB의 전반적인 구조와 제약 조건 등을 종합한 메타데이터이다.
사용자의 관점에 따라 3가지의 스키마로 구분되는데 다음과 같다.
- 개념스키마 : Table 자체에 대한 스키마, SQL 문을 통해 데이터 처리 가능(실제 DBA가 관리하는 데이터 스키마)
- 내부스키마 : Index를 통한 스키마, SQL 문을 통해 데이터 처리 가능(물리적인 저장 장치를 위한 스키마)
- 외부스키마 : View를 통한 스키마(사용자가 필요한 view를 통한 스키마)
6) DBMS와 file 차이점(ACID)
- DB는 SQL을 지원한다
- 스키마(구조화 정의)가 포함되어 있다(VIEW를 제공한다)
- 여러 사용자의 동시 Access(File system도 가능하긴 함), Transaction 처리(우수)
7) Key attribute
- Key attribute는 개체를 고유적으로 구분할 수 있는 속성을 뜻한다.
- Multivated attribute는 속성값이 여러 개 존재할 수 있는 속성을 뜻한다(Ex. 부서의 위치가 1층과 4층 등 여러 곳에 존재할 수 있다면 Location 속성은 다중값 속성이 될 수 있다)
- Partial key attribute는 약한 개체를 구분할 수 있는 속성을 뜻한다.
- Composite attribute는 여러 속성들이 함께 구성하고 있는 속성을 뜻한다(Ex. FName과 Minit가 합쳐서 만들어진 Name 속성) 더 작은 단위로 쪼갤 수 있는 속성이다.
- Derived attribute는 다른 속성으로부터 유도되어 가지게 된 속성을 뜻한다(Ex. 전체 직원 수 속성, 직원 월급 속성 으로 부터 유도된 전체 직원 총 월급 예산 속성)
8) 무결성 제약조건(Intergrity constraint)
INSERT DELETE UPDATE 연산들에 대한 제약조건이다.
실제 외래키로 이어진 데이터들에 대해 DELETE/ UPDATE 처리 시 어떻게 할지 옵션 지정
FOREIGN KEY(referencing_columns) REFERENCES referenced_table [(referenced_columns)]
[ON DELETE {CASCADE|SET NULL|SET DEFAULT|NO ACTION|RESTRICT}]
[ON UPDATE {CASCADE|SET NULL|SET DEFAULT|NO ACTION|RESTRICT}]
제약 조건은 수정이 불가능 -> 삭제 후 추가하기!
drop constraint, add constraint
9) 관계대수와 관계해석
https://woongsin94.tistory.com/178?category=730536
10) 함수종속성(Functional Dependency)
https://3months.tistory.com/193
정규식(1NF, 2NF, 3NF, BCNF)
- 1NF 도메인이 원자값 : 도메인 값이 값이 1개 즉, 원자값이어야 한다(보통 Tuple 분할로 해결)
- 2NF 부분적 함수 종속 제거 : 다중 속성으로 구성된 기본 키 중에서 하나의 속성이 없어도 다른 속성을 결정지을 수 있는 경우 제거 (보통 테이블 분할로 해결)
- 3NF 이행적 함수 종속 제거 : A -> B, B -> C 이면 A -> C 인 경우 제거(보통 테이블 분할로 해결)
- BCNF 결정자가 후보키 : 다른 속성을 결정짓는 속성들은 무조건 후보키어야 한다, 최소성을 만족해야 한다(보통 테이블 분할로 해결)
Closure를 통해 Super key 찾기 -> 해당 키를 집합 {}에 추가한 뒤 종속성 특성에 따라 추적하여 모든 속성들이 집합에 포함될 수 있다면 Super key이다.
'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글
Chap 3. Table Index & B+tree (0) | 2019.10.22 |
---|---|
Chap 2. ER diagram (0) | 2019.10.22 |
Chap 0. Oracle 기본 및 접속법 (0) | 2019.10.22 |
B+ Tree의 삽입 (0) | 2019.10.16 |
Oracle Table Index (0) | 2019.10.16 |