2013년 8월 3일 토요일

Database


데이터베이스

1. 시스템 카탈로그란..?

- 시스템 카탈로그에 저장되는 내용을 메타 데이터라고도 한다.
 - 시스템 자신이 필요로 하는 스키마 및 여러 가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
- 기본 데이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.

-> 시스템 카탈로그는 사용자가 직접 생성하고 유지한다 (x)


데이터베이스 시스템 카탈로그

          
DBMS가 유지하는 데이터베이스의 각종 정보와 정보들 간의 관계를 저장한 것으로 그 자체가 하나의 작은 데이터베이스라고 볼 수 있습니다.

특징

- 카탈로그 자체도 일반 테이블과 같이 시스템 테이블로 구성
- 일반 사용자도 내용을 검색할 수 있으나 카탈로그의 내용을 삽입 삭제 갱신 등은 불가능 함
- 사용자가 SQL문을 실행하면 시스템이 자동적으로 관련 카탈로그 테이블을 갱신



2.DBMS의 필수 기능 중 정의기능이 갖추어야 할 요건


- 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야한다.


DBMS의 필수기능
- 정의 Definaition - 
-> 데이터의 형과 구조 데이터가 데이터베이스에 저장될 때의 제약조건 등을 명시
-> 보기에선// 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야한다.

- SQL명령어 - 
-> DDL(Create, Drop, Alter)
-> DML(Select, Delect, Update, Insert)
-> DCL(Revork, Recover, commit, rollback)


- 조작 Mainoulation - 
-> 데이터 검색, 갱신, 삽입 삭제 등을 체계적으로 처리하기 위해 데이터 접근 수단 명시
-> 보기에서//데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되게 해야 한다.

- 제어 Control
-> 데이터의 저호가성과 안전성을 유지하기 위한 무결성, 보안 및 권한 검사, 병행수행 제어 등의 기능을 정하는 기능
->보기에선// 여러 사용자가 데이터베이스를 동시에 접근하여 처리할 때 데이터베이스와 처리 결과가 항상 정확성을 유지하도록 병행 제어를 할 수 있어야 한다.


DBMS의 장,단점
장점
- 데이터의 논리적, 물리적 독립성이 보장된다.
- 데이터의 중복을 피할 수 있다.
- 저장된 자료를 공동으로 이용할 수 있다.
- 데이터의 일관성과 무결성을 유지할 수 있다. - 중복을 최소화 함으로써
- 데이터를 통합하여 관리할 수 있다.
- 항상 최신의 데이터를 유지한다.
- 데이터의 실시간 처리가 가능하다.

단점
- 데이터베이스의 전문가가 부족하다.
- 전산화 비용이 증가한다.( 유지 보수가 어렵다.)
- 대용량 디스크로의 집중적인 Access로 과부하가 발생한다.
- 파일의 예비와 회복이 어렵다.
- 시스템이 복잡하다.


3. 관계대수란

- 원하는 릴레이션을 정의하는 방법을 제공하며 절차적인 언어이다.
- 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
- 일반 집합 연산과 순수 관계 연산으로 구분된다.
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.


4. 정규화의 필요성(목적)


- 데이터 구조의 안정성 최대화
- 수정, 삭제시 이상현상의 최소화
- 테이블 불일치 위험의 최소화(=간소화)
- 중복 데이터의 비활성화(=최소화)


정규화(Normalization)


개념

- 중복을 없애는 과정으로 좋은 DB 스키마를 생성해 내고, 불필요한 data의 중복을 방지하여 정보검색을 용이하게 할 수 있도록 허용한다.
- 함수적 종속성 등의 종속성 이론을 이용하여, 잘못 설계된 관계형 스키마를 더 작은 속성의 Set로 쪼개어 바람직한 스키마를 만들어 가는 과정
- 정규화가 되지 않은 상태에서는 data를 뽑아내지 못한다.



5. SQL명령어


- SQL명령어 - 
-> DDL(Create, Drop, Alter)
-> DML(Select, Delect, Update, Insert)
-> DCL(Revork, Recover, commit, rollback)


6. 정규화 과정에서 발생하는 이상(Anomaly)란..?


 - 이상은 속성들 간에 존재하는 여러 종류의 종속관계를 하나의 릴레이션에 표현할 때 발생한다. ( 하나의 릴레이션에 많은 속성들이 존재함으로 인해 중복/종속으로 발생하는 문제점)
- 정규화는 이상을 제거하기 위해서 중복성 및 종속성을 배제시키는 방법으로 사용한다.
- 1NF의 이상은 해결하기 위해서는 프로젝션에 의해 릴레이션을 분해하여 부분 함수 종속을 제거해야 한다.



이상(Anomaly)
- 삭제이상((Deletion Anomaly) : 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 인해 원하지 않는 정보가 손실되는 문제점
- 삽입이상(Insertion Anomaly) : 원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점
- 갱신이상(Update Anomaly) : 정확하지 않거나 일부의 튜플만 갱신됨으로 인해 정보가 모호해지거나 일관성이 없어져 정확한 정보가 파악되지 않는 문제점




8. which of the following is not a property of the transaction to ensure integrity of the data?

(다음 중 데이터의 무결성을 보장하기 위해 트랜잭션의 속성이 아닌것은?)

autonomy(자율)    //      나중에 알아보장..ㅠㅠ


9. 데이터베이스의 물리적 설계 옵션 선택시 고려사항

- 응답시간 최소화
- 저장 곤강의 효율화
- 트랜잭션 처리도(throughput)(처리능력)


10. 분산 데이터베이스란..?

- 지역 자치성이 높다.
- 효용성과 융통성이 높다
- 분산 제어가 가능하다.

- 소프트웨어 개발 비용이 저렴하다?!!(x)

분산DB 정의: 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 컴퓨터 사이트에 분산되어 있는 데이터베이스를 말함

목표
- 위치 투명성(Location Transparency) : 엑세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 엑세스할 수 있다.

- 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.

-병행 투명성(Concurrency Transparency) : 분산데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.

- 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.


장점
- 지역 자치성이 높다.(자치 : 자기 일을 스스로 다스림)
- 자료의 공유성이 향상된다.
- 분산제어가 가능하다.
- 시스템 성능이 향상된다.
- 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않는다.
- 효용성과 융통성이 높다.
- 신뢰성 및 가용성이 높다.
- 점진적 시스템 용량 확장이 용이하다.


단점
- DBMS가 수행할 기능이 복잡하다.
- 데이터베이스 설계가 어렵다.
- 소프트웨어 개발 비용이 증가한다.
- 처리 비용이 증가한다.
- 잠재적 오류가 증가한다.


11. 릴레이션이란..?



[릴레이션의 특징]
- 릴레이션에 포함된 튜플들은 모두 다르다.
- 릴레이션에 포함된 튜플 사이에는 순서가 없다.
- 튜플들의 삽입, 삭제들의 작업으로 인해 릴레이션은 시간에 따라 변한다.
- 릴레이션 스키마를 구성하는 애트리뷰트들 간의 순서는 중요하지 않다.
- 애트리뷰트의 유일한 식별을 위해 애트리뷰트의 명칭은 유일해야 하지만, 애트리뷰트를 구성하는 값은 동일한 값이 나올 수 있다.
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 애트리뷰트들의 부분집합을 키로 설정한다.
- 애트리뷰트는 더 이상 쪼갤 수 없는 원자 값만을 저장한다.


12. 물리적 데이터베이스 설꼐 수행시 결정 사항.

- 어떤 인덱스를 만들 것인지에 대한 고려
- 성능 향상을 위한 개념 스키마의 변경 여부 검토
- 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려

14. selection sort : 나열된 숫자를 작은수가 앞으로 오도록 나열하는 알고리즘


15. 트리의 차수(degree) -> degree는 가지수를 말하며, 가장 많은 가지에 수가 차수가 된다.



16. 병행제어 기법 중 로킹에 대해


- 로킹의 대상이 되는 객체의 크기를 로킹 단위라고 한다.
- 로킹의 단위가 작아지면 로킹 오버헤드가 증가한다.
- 로킹의 단위가 커지면 데이터베이스 공유도가 저하한다.


로킹(locking)
 : 로킹을 사용하는 목적은 병행제어를 하기 위함이다.

병행제어 : 동시에 여러 개 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 트렌잭션 간의 상호 작용을 제어

병행제어 목적
- 데이터베이스 공유 최대화
- 시스템 활용도 최대화
- 데이터베이스 일관성 유지
- 사용자에 대한 응답시간 최소화

로킹(locking) : 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스 할 수 없도록 하는 방식

로킹의 단위
- 병행제어에서 한꺼번에 로킹 할 수 있는 단위
- 로킹 단위가 크면 로크수가 작다. 관리측면에서 관리가 수원해지고 병행성 수준이 낮아진다.
- 로킹 단위가 작으면 로크수가 커진다. 관리가 복잡해지고 병행성 수준이 향상된다.



17. Continuous Evolution(지속적인 변화)

 - 어느 한 시점에서 데이터베이스가 저장하고 있는 내용은 곧 데이터베이스의 상태를 의미한다. 데이터 베이스의 상태는 정적이 아니라 동적이다. 즉, 데이터베이스는 새로운 데이터의 삽입, 삭제, 갱신을 통해 현재의 정확한 자료를 유지하면서 변환한다는 것이다.



18.  뷰(view)에 대한 설명

- 뷰는 Create view 명령을 사용하여 정의
- 하나의 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제
- 뷰를 제거할 때는 DROP 문을 사용한다.

- 뷰의 정의는 ALTER VIEW 문을 사용하여 변경한다.;;;;;;;;


19. 릴레이션에 대한 degree는 무엇이냐?!

앤트리뷰트을 n의 관계 스키마의 번호이다.?!
the number of attributes n of its relation schema.

댓글 없음:

댓글 쓰기