Database 개요 (3)

2021. 7. 29. 10:58
728x90

드디어 대망의 마지막 포스트 개요 3탄이다.

여기까지 읽느라 고생이 많았다. 하지만 아직도 읽을게 산더미니까 조금만 더 존버 정신을 보이는게 좋겠다. (특히 중요한 View, 기본키,  index에 관한 내용이 나오니까 집중!)

Meta-Database = DBMS가 제 기능을 잘 할 수 있도록 DB에 관한 정보를 모아놓은 시스템 DB
- "시스템 view", 테이블", "catalogue" 라고도 부름
- Meta DB가 포함하는 객체 : DB, table,  view, index, 사용자, 제약조건 등
- Meta DB의 정보들은 사용자 DB의 정보들처럼 table형태로 저장됨

뷰(view) : 실존하지 않는 가상 테이블. 원하는 data만을 조작할 수 있게 해서 table을 단순화 시키고 data의 보안성을 높임
- view 관련 data가 Meta-Database에 저장되어 사용됨 (= view를 통한 연산은 베이스 table에 대한 연산으로 변경되어 실행됨)
- view는 DB를 논리적으로 재구성하여 논리적 데이터 독립성을 제공함으로써 기존의 사용자/ 응용 프로그램에 영향을 주지 않음

 [ Key ] 

* 유일성 : 테이블의 서로 다른 튜플들이 같은 키 값을 갖지 않는다
  최소성 : 유일성을 만족하기 위해 키가 최소의 속성으로만 구성된다

1. 후보키 : 유일성, 최소성을 만족하는 키
- 유일성 O / 최소성 O
- 1개의 튜플에서 후보키가 여러개 존재할 수 있다
- NULL 값 X

2. 기본키 (Primary Key) : DB 설계자에 의해 지정된 하나의 후보키로 중심이 되는 키 (가장 많이 조회되는 키)
- 유일성 O 
- NULL 값 X
- 변경될 수 없음
- 기본키가 char형일 때 장점: char형으로 하면 data의 name과 같은 문자열 가져오기 위해 따로 join 해줄 필요가 없어서 join 연산의 횟수가 적어짐
- 기본키가 char형일 때 단점: SQL Server는 character type을 ASCII 값으로 변환하는 과정을 거치므로, 기본키를 int형으로 설정했을 때보다 조회 속도가 느림

3. 대체키 : 기본키를 제외한 나머지 후보키

4. 슈퍼키 : 후보키를 포함하는 모든 속성과의 조합. 
- 유일성 O / 최소성 X

5. 외래키 : 다른 테이블과 관계 형성하기 위해 다른 테이블의 기본키를 해당 테이블의 속성으로 사용

 [ Index ] 

인덱스(Index) : 특정 열에 index를 만들면 DB 시스템이 그 열에 대한 추가 정보를 보관하여 검색 속도가 빨라짐.
- 추가 정보는 DB 시스템이 가장 빠르게 찾을 수 있는 순서로 내부 table에 보관하므로 필요에 따라 index를 쓰기도, 안 쓰기도 함.
- 장점:
     1. Select문 (조회 쿼리)에 빠르게 접근 가능
     2. 해당 쿼리의 부하가 줄어서 시스템 성능이 향상됨 (쿼리 속도 향상)

- 단점:
     1. DB 크기의 10%정도 추가 공간이 필요함 (trade-off)
        - trade-off 때문에 모든 column 말고 자주 검색하게 될 몇 개만 indexing하는게 효율적임
     2. Indexing하는 데 시간이 오래 걸림
     3. Insert, Update, Delete가 자주 일어나면 시스템 성능이 저하됨

*Index 추가하는 쿼리:

ALTER TABLE 테이블명
        ADD (column명);
728x90

'Database' 카테고리의 다른 글

실행계획 예제  (1) 2023.10.23
정규화 (Normalization)  (0) 2021.07.29
Database 개요 (2)  (0) 2021.07.29
Database 개요 (1)  (0) 2021.07.29

BELATED ARTICLES

more