1. 다음의 용어들을 간략히 설명하시오.
① 데이터베이스
=> 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말한다. 자료항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높인다. 현대적인 의미의 데이터베이스 개념을 확립한 사람은 당시 제너럴일렉트릭사(社)에 있던 C.바크만으로 그는 1963년 IDS(Integrated Data Store)라는 데이터베이스 관리시스템을 만들었다
=> 관련된 데이터의 모임 또는 집합
=> 정형화되고 조작 가능한 (처리하기에 용이한) 컴퓨터에 저장된 데이터의 모임
=> 특정 목적을 위해 계산, 저장, 검색, 정렬 등의 “데이터 처리” 작업을 수행
=> 예) 성적 처리, 마케팅을 위한 상품 판매 분석 등
=> 데이터베이스란 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모습
② 일시적 데이터
=> 일시적 (transient) 데이터
=> 해당 프로세스가 실행되는 동안만 일시적으로 존재 / 예) 프로그램의 변수
=> 일반적인 데이터베이스는 지속적인 데이터의 모임을 뜻함
③ 영구적 데이터
=> 영구적 (persistent) 데이터
=> 어떤 프로세스의 생명주기에 종속적이지 않고 스스로 존재
=> 비휘발성 매체에 저장
④ 데이터 무결성
=> 데이터의 입력이나 변경등을 제한하여 데이터의 안전성을 저해하는 요소를 막는 것을 의미한다. 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다.
=> 데이터 무결성(無訣性; integrity), 데이터베이스 내의 데이터가 얼마나 정확한가를 뜻함
=> 나이가 200 또는 –23 ?, 데이터 중복으로 인한 불일치 문제
⑤ 데이터 독립성
=> - DBMS 의 궁극적 목적.
- 하위 단계의 데이터 구조가 변경되더라도 상위 단계에 영향을 미치지 않는 속성.
- 파일시스템의 경우 응용 프로그램과 데이터가 상호 밀접하게 연관되어 있어 데이터의 종속성과 중복성이 발생.
1) 데이터 종속성 : 데이터가 변경되면 응용 프로그램이 수정되어야 한다.
2) 데이터 중복성 : 데이터의 일관성 문제 발생.
- 이러한 배경으로 DBMS 탄생
=> 응용 프로그램과 데이터 간의 독립성
=> 응용 프로그램은 데이터가 디스크에 구체적으로 어떻게 저장되어 있는 지 몰라도 됨
=> 데이터에 종속적(data-dependent)
=> 데이터의 구조와 저장형태를 고려한 응용프로그램 구현으로 나중에 데이터의 저장형태나 구조를 바꾸려 할 때 응용프로그램도 바꾸지 않으면 안됨
⑥ 장애 복구
가. 데이터 베이스 장애복구의 정의
- 데이터베이스 운영 도중 예상치 못한 장애 발생시, 데이터베이스를 장애 발생 이전의 일관된 상태로 복원하는 행위
나. 장애의 유형(관점 / 분류 / 내용)
- 시스템 / CPU,메모리,디스크 / Fault Tolerance 구현으로 예방, RAID 1,5로 예방, 정기적 백업
- 사용자 / 구문,성능장애 / SQL 문법오류가 DB장애의 90%이상차지, 비효율적 SQL문사용
- DBMS / 인스턴트장애,처리능력 저하,트랜잭션 장애 / 인스턴스(DBMS프로세스+메모리)의 장애, Hit 율 저하, Deadlock 발생, 과도한 동시성제어 2PL, 잦은 Rollback, 사용자제한초과
- 환경관점 / 전산실환경 / 항온항습,천재지변,전원공급
⑦ 데이터 모델
데이터 모델링 데이터 모델링은 비즈니스나 그 밖의 상황에서 사용되는 데이터 객체들을 분석하고, 이러한 데이터 객체들 사이의 관계를 확인하는 것이다. 데이터 모델링은 객체 지향 프로그램 설계에 있어 첫 번째 단계이다. 데이터 모델링의 결과로서, 프로그램 객체를 위해 템플릿을 제공하는 클래스를 정의할 수 있다. 모델을 가시화하기 위해 데이터 모델을 만드는 단순한 접근 방식은, 각각의 개별적인 데이터 항목을 나타내기 위해 사각형을 그린다음, 이러한 각각의 데이터 항목들 간의 관계를 is part of나 is used by, 또는 uses 등의 말로 표현하는 것이다. 이러한 전체적인 표현으로부터, 모든 관계들을 정의하는 일련의 클래스와 서브클래스 세트를 만들 수 있다. 이런 것들은 프로그램으로서 실행될 때, 새로운 트랜잭션들의 변수들과 실세계를 효과적으로 표현하기 위한 방법들을 처리하는 객체를 위한 템플릿이 된다. 데이터 모델링과 표기법에 관한 몇 가지 다른 접근방식이나 방법론들이, 최근 표준 모델링 언어가 될 것으로 기대되고 있는 UML에 통합되었다
⑧ 데이터베이스 관리 시스템
=> (DBMS, Database Management System = 데이터베이스 관리자 시스템)
데이터베이스에서 데이터 조작, 저장, 검색, 보안 및 통합을 제어하는 프로그램(시스템)이다.
컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
DBMS 종류들
외산: Oracle, MS SQL-Server, DB2, Sybase, dBase, FoxPro, MS Access
국산 : 큐브리드(CUBRID), 티베로(Tibero) – 티맥스소프트, ALTIBASE
공개 S/W : MySQL, PostgresSQL, (큐브리드)
2. 파일 시스템과 DBMS의 차이점을 비교하고 이들 간의 관계를 설명하시오
① 파일시스템을 이용한 데이터관리
- 각각의 응용프로그램마다 별도의 파일
- DBMS가 등장하기 전(1960년대)부터 지금까지 사용되고 있음 /
- *.xls, *.xml, *.txt, *.hwp 등
② 파일시스템을 이용한 데이터관리의 문제점
- 각각의 응용프로그램마다 별도의 파일을 유지 및 관리.(용량이 많이 든다)
- 데이터(파일)에 대한 의존도가 크고, 데이터가 구조가 변경될 경우 응용프로그램도 동시에 변경해야 함.
- 고용량의 데이터를 관리에는 적절하지 않음.
- 다수 사용자들의 동시접근 불가.(파일이 깨진다)
- 데이터 검색이 쉽지 않음.
- 보안 조치가 미흡.
- 회복(Recovery) 기능 미비.
- 데이터의 중복과 불일치 발생
- 서로다른파일에 같은 내용이 중복되어 나타남(ex, 이름)
- 내용를 변경할시 모든 파일의 내용을 고쳐야 함(모두 바꾸지 않으면 불일치가 나타남)
③ DBMS을 이용한 데이터관리의 장단점
- 장점
중복과 불일치가 감소
사용자에 좋은 서비스 제공
시스템 개발/유지/보수 용이
표준화 가능
보안 향상
무결성 향상
백업과 회복이 용이(입력해온 내용을 날짜별로 다른곳에 저장을 해놓고 있음)
동시접근 가능
- 단점
구매 및 유지 비용의 증가
사용하기 복잡함
데이터베이스 파손 시 모든 데이터 상실 가능성 존재
3. 테이블 스키마와 테이블 인스턴스에 대하여 간략히 설명하시오.
- 스키마(schema)
데이터베이스의 구조와 제약조건에 관한 전반적인 명세(Specification)를 기술한다.
데이터베이스를 구정하는 데이터 개체(Entity), 속성(Attribute), 관계(RelationShip) 및 데이터 조작시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의.
- 인스턴스
①일반적으로 어떤 집합에 대해서, 그 집합의 개별적인 요소. 객체 지향 프로그래밍(OOP)에서, 어떤 등급에 속하는 각 객체를 인스턴스라고 한다. 예를 들면 ‘목록(list)’이라는 등급을 정의하고 그 다음에 ‘본인 목록(my list)’이라는 객체를 생성(기억 장치 할당)하면 그 등급의 인스턴스가 생성된다. 또한 변수가 포함되어 있는 어떤 논리식의 변수에 구체적인 값을 대입하여 식을 만들면 원래 식의 인스턴스가 만들어진다. 이런 의미에서 인스턴스를 실현치라고 한다.
②프로그램 작성 언어 에이다(Ada)에서 매개 변수를 사용해서 절차를 일반적으로 정의한 범용체(generic package)에 대해, 그것으로부터 도출한 구체적인 실체.
4. 다음의 데이터베이스 스키마는 쇼핑몰의 고객(customer)과 상품(product) 그리고 고객이 구매한 상품에 관한 정보(buy)를 저장하기 위한 스키마이다. 다음의 물음에 답하시오.
customer(customer_id, resident_id, address, level)
product(product_id, product_name, category)
buy(customer_id, product_id, quantity)
(1) 각 테이블에서 기본키를 정의하라.
ALTER TABLE customer ADD CONSTRAINT PRIMARY KEY (customer_id);
ALTER TABLE product ADD CONSTRAINT PRIMARY KEY (product_id);
ALTER TABLE buy ADD CONSTRAINT PRIMARY KEY (customer_id, product_id);
(2) 각 테이블에서 외래키를 정의하고, 각 외래키가 참조하는 테이블도 명시하라.
ALTER TABLE customer ADD CONSTRAINT FOREIGN KET (cust_id) REFERENCES Customers (cust_id)
ALTER TABLE product ADD CONSTRAINT FOREIGN KET (product_id) REFERENCES Customers (product_id)
(3) 문제 (2)에서 정의한 외래키는 널 값을 가질수 있는가? 그 이유는 무엇인가?
FOREIGN KEY 제약 조건은 다른 테이블의 PRIMARY KEY 제약 조건으로 연결될 수도 있고 다른 테이블에 있는 UNIQUE 제약 조건의 열을 참조하도록 정의할 수도 있습니다. FOREIGN KEY 제약 조건은 Null 값을 포함할 수 있습니다. 그러나 복합 FOREIGN KEY 제약 조건의 어떤 열에 Null 값이 포함되면 FOREIGN KEY 제약 조건을 구성하는 값에 대한 유효성 검사가 수행되지 않습니다. 복합 FOREIGN KEY 제약 조건의 모든 값에 대해 유효성을 검사하려면 관련된 모든 열에 NOT NULL을 지정합니다.