자바스크립트를 사용하여 슬라이딩이 되는 숫자 퍼즐 게임입니다.퍼즐은 사용자가 행과 열의 크기를 입력받아 생성할 수 있습니다.'섞기' 버튼을 누를 경우에 랜덤하게 퍼즐의 위치가 섞입니다.'리셋' 버튼을 누를 경우에 초기에 생성한 퍼즐의 위치로 돌아갑니다.HTML, CSS를 제외한 JAVASCRIPT 코드에는 주석이 달려있습니다.
Chapter 022.1 파일 시스템의 장단점을 설명하라.데이터 정의가 응용 프로그램에 내포되어 있으며, 프로그램에서 데이터를 접근하고 조작하는 것 이외에 별도의 제어가 없다는 것이 장점이며, 단점으로는 데이터 공용을 할 수 없기에 데이터 종속성과 데이터 중복성이 발생한다는 것이다.2.2 데이터 종속성을 설명하고, 그 문제점과 해결책을 설명해 보라.데이터 종속성이란 응용 프로그램과 데이터 간의 상호 의존 관계를 말한다. 데이터의 구성 방법이나 접근 방법을 변경할 때에 자연히 이것을 기초로 하는 응용 프로그램도 같이 변경되어야 하는 문제점이 발생한다. 이러한 문제를 해결하기 위하여 DBMS라 불리우는 데이터베이스 관리 시스템을 사용하여 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리하게 한다.2.3 데이터의 중복성이 문제가 되는 이유를 설명하고 그 해결책을 설명해 보라.프로그램마다 같은 정보를 중복해서 저장하는 경우가 많으면, 이는 저장공간의 낭비이기도 하지만, 데이터를 관리하는 측면에서 보면, 같은 정보를 여러 곳에서 보관하면 수정 시에 모든 데이터를 수정해야 하는 문제가 발생하기 때문이다. 데이터 종속성과 같이 DBMS를 사용하여 해결한다.2.4 DBMS가 갖추어야 될 필수 기능은 어떤 것인가를 설명하라.첫 번째로 정의 기능이다. 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스를 할 수 있는 방법을 제공하는 것이다. 구현된 하나의 물리적 구조의 데이터베이스로 여러 사용자들의 다양한 형태의 데이터 요구를 지원해 줄 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수 있는 기능을 말한다.두 번째로 조작 기능이다. 사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다. DBMS는 데이터베이스를 이용하는 사용자의 요구에 따라 체계적으로 데이터베이스를 접근하고 조작할 수 있어야 한다.세 번째로 제어 기능이다. 공용 목적으로 관리되는 데이터베이스의 내용에 대해 항상 정확성과 안전성을 유지할 수 있는 기능을 가져야 한다. 정확성과 안정성은 데이터 공용의 기본적인 가정이며, 관리의 제약 조건이 된다.2.5 DBMS를 사용할 때의 장단점을 설명하라.DBMS를 사용할 때의 장점으로는 각 응용 프로그램마다 자신의 데이터 파일이 개별적으로 관리 유지되는 중복을 사전에 통제할 수 있는 데이터 중복의 최소화, 같은 내용의 데이터를 여러 가지 구조로 지원해 줄 수 있는 데이터의 공용, 데이터가 모순성을 가지지 못하게 하는 데이터의 일관성 유지, 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 말하는 데이터 무결성 유지, 데이터베이스의 관리 및 접근을 효율적으로 제어할 수 잇는 데이터의 보안 보장, 필수적인 데이터 제어 기능을 통해 데이터의 형식, 내용, 처리 방식, 문서화 양식 등에 관한 표준화, 전체 데이터 요구의 조정 등이 있다.단점으로는 DBMS는 고가의 소프트웨어 제품이기 때문에 운영비의 증대가 발생한다는 것, 상이한 여러 유형의 데이터가 서로 관련되어 있기 때문에 특정 응용 프로그램의 복잡화, 구조가 복잡하고 여러 사용자가 동시에 공용하기 때문에 장애가 일어났을 때 정확한 이유나 상태를 파악하기가 쉽지 않은 복잡한 백업과 회복, 통합된 시스템이기 때문에 그 일부에 장애가 일어날 경우 전체 시스템을 정지시켜 시스템 신뢰성과 가용성을 저해할 수 있는 시스템의 취약성 등이 있다.2.6 데이터의 중복성은 완전히 제거되어야 하는가? 그렇지 않다면 그 이유는 무엇인가?통합 데이터베이스 환경에서는 성능 향상의 이유로 데이터의 중복이 필요할 때가 있다. 하지만 이런 중복은 시스템이 어떤 데이터가 어디에 중복되어 있는지를 알고 있기 떼문에 제어된 중복이라고 하며, 제어된 중복은 불가피하다.2.7 데이터의 무결성이 유지되지 않았을 경우의 파급 효과를 설명하라.파일 중심의 데이터 처리 시스템에서는 어느 한 프로그램이 하나의 파일을 개방하여 사용하면 그 프로그램의 실행이 모두 끝나 다시 폐쇄할 때 까지 다른 프로그램은 이 파일화 접근할 수가 없다. 즉 데이터의 동시 공용을 지원하지 못한다.2.8 데이터 독립성을 설명하고, 왜 중요한 것인가를 설명하라.데이터 독립성이란 하위 단계의 데이터 구조가 변경되더라도 상위 단계에 영향을 미치지 않는 속성이다. 데이터가 독립되면 수정을 해야 될 부분이 최소화가 되고, 수정하기에 용이해져서 최종적으로 유지보수 비용이 감소되는 효과가 있으며, 구조를 재개선하게 되어 복잡성과 중복성이 줄어드는 효과가 있으며, 데이터가 독립이 되면 유지보수에 대한 처리가 수월하기에 요구사항 대응을 향상 시킬 수 있다.2.9 데이터베이스 관리 시스템과 파일 관리 시스템을 비교 설명하라.DBMS는 데이터를 정의, 저장할 때에 DBMS와 데이터베이스를 사용하지만, 파일 시스템은 정의할 때는 응용 프로그램, 저장할 때는 파일 시스템을 사용한다. 접근 방법으로 DBMS는 응용 프로그램이 DBMS에 파일 접근을 요청하며, 파일 시스템은 응용 프로그램이 파일에 직접 접근을 한다. DBMS는 DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성이 낮으며, 중복의 제거로 데이터의 일관성 또한 유지된다. 하지만 파일 시스템은 데이터를 파일 단위로 저장하기에 중복이 가능하며, 중복이 가능하기에 데이터가 중복 저장되어 일관성이 결여된다. 데이터 독립성에 대해 DBMS는 데이터 정의와 프로그램의 독립성 유지가 가능하며, 파일 시스템은 데이터 정의와 프로그램의 독립성 유지가 불가능하다.2.10 DBMS는 무엇이며 왜 필요한가?데이터베이스 관리 시스템이라 하며 파일 시스템에서 야기된 데이터 종속성과 중복성의 문제를 해결하기 위해 고안된 시스템이다. 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어 시스템을 말한다. 응용 프로그램들이 데이터베이스를 이용하기 위해서는 데이터베이스 관리 시스템을 통해서만 가능하기에 데이터베이스의 구성, 접근 방법, 관리 유지에 대한 모든 책임을 지니고 있으며, 파일들의 효과적인 관리와 이용을 하기 위해 필요하다.2.11 현재 사용되고 있는 DBMS들을 살펴보고, 각각 정의 기능, 조작 기능, 제어 기능에 대해 알아보라.주로 사용되는 4세대 관계형 RDBMS인 Oracle이 있다. 전 세계적으로 가장 많이 활용되는 관계형 데이터베이스 시스템이며, 오라클 사에서 서비스하고 있으며 대부분의 OS를 지원한다. 데이터베이스 관리에 있어서 자원의 확장성과 장애에 대한 대처가 유연하다.또 썬 마이크로시스템즈에서 개발한 관계형 데이터베이스 시스템인 MySQL 도 있다. 유닉스나 리눅스, 윈도우 운영 체제 등에서 사용할 수 있으며 오픈소스의 장점으로 일반적인 웹 개발에 널리 이용되고 있다.정의 기능은 응용 프로그램과 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다. 조작 기능은 데이터의 접근 지원 능력(검색, 갱신, 삽입, 삭제)으로 사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다. 제어 기능은 데이터의 정확성과 안정성을 유지하는 기능(무결성, 보안, 병행 수행 제어, 회복)을 제공한다.
Chapter 011.1 정보와 데이터가 어떻게 다른가를 설명해 보라.정보는 어떤 상황에 대한 적절한 결정을 할 수 있게 하는 지식이지만, 데이터는 현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값을 말한다.1.2 정보 시스템이란 무엇이며, 유용성을 유지하기 위해서는 어떤 성질을 가지고 하는가?정보 시스템이란 한 조직체의 활동에 필요한 데이터를 수집, 조직, 저장해 두었다가 필요시에 처리해서 의사 결정에 유효한 정보를 생성하여 분배하는 수단을 말한다. 의사 결정에 유용한 정보는 데이터를 유효하게 처리해서 얻는데, 조직체의 활동에 필요한 데이터를 수집, 조직, 저장해 두었다가 필요시에 처리한다.1.3 경영 정보 시스템과 의사 결정 지원 시스템을 비교 설명해 보라.경영 정보 시스템은 기업 업무의 기획, 운영, 통제에 필요한 의사 결정을 위하여 가장 정확하고 최신의 정보를 제공하는 수단으로 사용되는 정보 시스템이며, 오늘날 대부분의 기업체가 확보하고 있는 가장 보편적인 정보 시스템이다.의사 결정 지원 시스템은 하나의 전문적인 목적보다는 여러 가지 복합적이고 광범위한 의사 결정 목적을 위해 통합적인 기능을 수행하는 정보 시스템으로 구축할 수 있는 시스템을 말한다.1.4 응용 시스템이란 무엇이며, 정보 시스템과 어떤 관계를 가지고 있는지 설명해 보라.사실 검색, 브리핑, 계획, 설계, 업무 집행과 같은 기능을 수행하기 위하여 범 기관적으로 이용되고 있는데, 한 조직체는 그 조직체의 궁극적인 목적을 달성하기 위하여 필요한 기능들을 여러 부서로 분할하여 효과적으로 수행하는 것이 보통이다. 이러한 상황에서 한 부서가 필요로 하는 정보를 제공하여 주는 서브 시스템, 즉 정보 시스템의 일부를 응용 시스템이라 한다.1.5 데이터 처리 시스템과 정보 처리 시스템을 구분하여 설명해 보라.데이터 처리 시스템은 보통 컴퓨터에 의한 자동 처리를 말한다.정보 처리 시스템은 컴퓨터를 중심으로 하는 정보를 수집하고 유용한 정보로 변환시키고 저장하는 등의 일련의 작업을 처리하는 괄 처리, 온라인 처리, 분산 처리 시스템으로 구분할 수 있다.1.7 온라인 처리 시스템은 무엇이고, 그 장단점은 무엇인지 설명해 보라.온라인 처리 시스템은 일괄 처리 방식이 필요로 했던 사전 준비 작업 없이 곧바로 데이터를 처리하는 방식을 말한다. 데이터 처리를 위한 대기 시간이 없기 때문에 사용자로서는 아주 편리하며, 데이터의 입력이 일반 현지 요원에 의해 그 생성 출처에서 바로 이루어지므로 데이터 오류도 입력 시에 즉시 발견, 교정할 수 있어서 데이터 처리의 회전 주기를 단축시킨다. 하지만 응답 시간을 최소화해야 되는 필수 조건과 입출력에 편중되는 특성 때문에 작업량이 많지 않은 경우에 효율성이 낮아지며, 작업 당 처리 비용이 높게 든다.1.8 일괄 처리 시스템은 무엇이고, 그 장단점은 무엇인지 설명해 보라.일괄 처리 시스템은 데이터를 수집해서 분류하고 정렬시킨 다음에 일괄 처리하는 데이터 처리 방법을 말한다. 여러 가지 트랜잭션들을 한데 모아 일괄적으로 처리하기 때문에 각 트랜잭션 당 처리 비용이 적게 들고, 단위 시간당 처리되는 작업 수가 많게 되어 시스템 성능이 높다. 하지만 데이터가 즉시 처리되지 않기 때문에 개인적인 처리 결과를 위해서는 대기해야 하며, 여러 가지 사전 준비 작업을 거쳐야 한다는 단점도 있다.1.9 분산 처리 시스템에서 데이터베이스의 중요성을 설명하라.데이터베이스는 데이터가 지리적 분산된 형태의 데이터베이스, 각 시스템이 별개로 독립, 분할 통제되는 것이 아니라 각 시스템, 보안성, 데이터 접근, 노드들 간의 데이터 또는 프로그램의 전송, 자원의 전송, 처리 절차, 데이터 베이스 정의 등은 범 시스템적으로 통제되는 것이다.1.10 데이터 처리 시스템에서 데이터베이스의 중요성을 설명해 보라.데이터 처리 시스템에서 각각의 데이터를 처리하지만 이것은 독립적인 자료가 아니라, 전체적으로 통일성 있게 연관된 하나의 자료이다. 그렇기 때문에 데이터베이스를 통하여 자료가 중복되지 않고 형식을 통일시켜주는 등의 체계가 필요하다.1.11 분산 시를 취할 수 있고, 업무에 대한 책임 구분이 명확하며, 지속적으로 확장해 나갈 수 있고, 지리적으로 떨어져 있는 곳에서도 하나의 시스템을 같이 사용할 수 있으며, 컴퓨터의 과부하를 줄일 수 있고, 조직 전체의 융통성 및 유연성이 향상된다. 하지만 시스템의 설계가 쉽지 않고, 보안 문제가 발생할 수 있다는 단점이 있다.1.12 전산화, 사무 자동화, 정보 각각 설명하고, 이들이 서로 어떻게 연관되는가를 논의해 보라.전산화란 사무원의 편리를 위해 처리 기술을 컴퓨터를 통하여 자동적으로 이루어지게 하는 것이고, 사무 자동화란 생산성 향상을 목적으로 하여 사무원이 편리하게 사용할 수 있도록 사무 기능을 자동화한 시스템이다. 정보란 어떤 상황에 대한 적절한 결정을 할 수 있게 하는 지식을 말한다.사무자동화는 전산화를 통해 구축될 수 있으며, 이러한 과정을 거치면서 정보를 효율적으로 얻고 공유할 수 있어 정보화가 실현될 수 있다.1.13 데이터베이스를 정의하고 그 의미를 간단히 설명하라.데이터베이스란 어느 한 조직의 여러 응용 시스템들이 공용할 수 있도록 통합, 저장된 운영 데이터의 집합이라고 정의할 수 있으며 통합 데이터, 저장 데이터, 운영 데이터, 공용 데이터의 의미를 담고 있다.1.14 데이터베이스의 특성을 설명하라.첫 번째로 실시간 접근성이 있다. 생성된 데이터를 즉시 컴퓨터에 보내어 그 처리 결과를 보고 다음 의사 결정에 바로 반영할 수 있게 하는 처리 방식이다.두 번째로 계속적인 변화이다. 어느 한 시점에 데이터베이스가 저장하고 있는 내용은 곧 그 데이터베이스의 한 상태를 나타내는 것을 의미한다. 그런데 이 데이터베이스의 상태는 동적이기 때문에 새로운 데이터의 삽입, 기존 데이터의 삭제, 갱신으로 항상 그 내용이 변할 뿐 아니라 이러한 변화 속에서 현재의 정확한 데이터를 유지하게 된다.세 번째로 동시 공용이다. 데이터베이스는 서로 다른 목적을 가진 응용들이 공용할 수 있도록 하기 위한 것이기 때문에 여러 사용자가 동시에 자기가 원하는 데이터에 접근하여 이용할장되어 있는 데이터 레코드들의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용, 즉 데이터가 가지고 있는 값에 따라 참조된다.1.15 데이터베이스의 개념적 구성요소를 설명하라.데이터베이스는 개념적으로 개체와 관계로 구성되어 있다. 개체는 현실 세계에 대해 사람이 생각하는 개념이나 정보의 단위로서 의미를 가지고 있다. 하나의 개체는 하나 이상의 속성, 즉 애트리뷰트로 구성되고 각 속성은 그 개체의 특성이나 상태를 기술해 준다. 관계는 개체들을 서로 연관시켜 어떤 의미를 나타내어 개체와 다름이 없다. 그러나 보통 무형적이고 다루기가 아주 복잡하다는 의미에서 별개 요소로 취급한다.1.16 개체와 속성을 구분해서 설명하라.예를 들어서 개체는 학생이라는 개체는 학번, 이름, 학과라는 3개의 속성들로 구성되어 있다. 여기서 학번, 이름, 학과는 학생이라는 개체가 가지고 있는 특성을 나타내고 있는 것이다. 이와 같이 속성, 즉 애트리뷰트라고 하는 것은 이름을 가진, 데이터의 가장 작은 논리적 단위가 되며, 정보의 측면에서 볼 때 이 속성은 그 자체만으로는 중요한 의미를 표현하지 못하기 때문에 단독으로는 존재하지 못하며, 이것이 개체와 구별되는 성질이다.1.17 레코드 타입과 레코드 인스턴스를 설명하고 그 예를 들어 보라.레코드 타입은 필드 이름으로만 표현된 레코드 정의를 말하며, 레코드 인스턴스는 실제 필드 값으로 표현된 레코드를 말한다. 예를 들려면 개체 타입과 개체 인스턴스를 설명해야 하는데 개체 타입이란 학번, 이름, 학과와 같은 속성 이름들 로만 기술된 개체의 정의이며, 개체 인스턴스란 한 학생 개체를 나타내는 학생 개체의 한 값으로 볼 수 있는데 이것을 개체 인스턴스라 한다. 레코드 타입과 레코드 인스턴스 또한 처음에 말했던 것처럼 같은 의미라 할 수 있다.1.18 개체 관계와 속성 관계의 차이점을 설명하고 그 예를 들어 보라.개체 관계는 개체 집합과 개체 집합 사이의 관계를 나타내는 것을 말하며, 속성 관계란 어느 한 개체를 기술하는 속성들 간의 학번, 이름, 학과 등의 관계를 나타낸다.1.19 데이터베이스의 논리적 구조와 물리적 구조를 설명하고 이들의 관계를 설명하라.논리적 구조는 사용자가 생각하는 데이터의 논리적 표현이다. 즉, 데이터를 이용하는 일반 사용자나 응용 프로그래머의 입장에서 보는 데이터베이스 구조로서 데이터가 배치되어 있다고 간주하는 가상적인 구조를 말한다.물리적 구조는 디스크나 테이프와 같은 저장 장치 위에 물리적으로 저장되어 있는 데이터의 실제 구조를 말한다.사용자가 생각하는 논리적 구조에서는 하나의 데이터베이스를 표현하는 논리적 구조와 물리적 구조는 당연히 서로 대응 관계를 가져야만 되고 또 그렇게 함으로써 동등성을 유지할 수 있다.1.20 데이터베이스의 대한 내용에 의한 참조와 주소에 의한 참조를 설명하고 일반 사용자의 입장에서 평가해 보라.내용에 의한 참조란 데이터의 참조가 저장되어 있는 데이터 레코드들의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용, 데이터가 가지고 있는 값에 따라 참조되는 것을 말한다. 주소에 의한 참조란 전통적인 컴퓨터 시스템에서 모든 데이터가 주소로 참조되는 것이다.주소에 의한 참조가 사용자가 주소를 통해 참조를 할 수 있는 대에 비해 내용에 의한 참조는 사용자가 참조하기를 원하는 데이터의 특성이나 조건을 명세하면 이 조건을 만족하는 모든 레코드들이 그 위치가 어디에 있던지 간에 하나의 논리적 단위로 취급되고 접근되는 것이다.1.21 물리적 데이터베이스와 논리적 데이터베이스를 구분하여 고려할 때 얻을 수 있는 이점은 무엇인가?사용자가 원하는 정보를 구분하여 얻을 수 있다.1.22 데이터 공용을 할 때 얻는 이점과 단점을 설명하고, 단점을 보완하기 위한 대책을 설명해 보라.데이터 공용을 하면 여러 사람들이 접근할 수 있고, 이를 통해서 많은 자료가 모이고 실시간으로 처리되기 때문에 유연성과 확장성이 커진다. 하지만 여러 사람들이 공용하는 만큼 데이터의 보안이 문제가 되기도 하고 데이터에 문제가 생겼을 때에는 그 피해가 더 커질 수 있다. 다.
Chapter 088.1 데이터 모델은 무엇인가? 그 구성요소를 중심으로 설명하라.데이터 모델이란 컴퓨터에 저장할 데이터의 구조를 논리적으로 표현하기 위해 사용하는 지능적 도구를 말한다. 데이터 모델은 구성요소를 추상적 개념으로 하느냐 또는 논리적 개념으로 하느냐에 따라 개념적 데이터 모델과 논리적 데이터 모델로 구분할 수 있다. 개념적 데이터 모델은 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이고, 논리적 데이터 모델은 데이터 필드로 기술된 레코드 타입과 이 레코드 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.8.2 개념적 데이터 모델과 논리적 데이터 모델, 그리고 물리적 데이터 구조와의 관계를 설명해 보라.개념적 데이터 모델은 개체 하나하나를 이용하여 모델링을 한 것이고 논리적 데이터 모델은 개체가 모인 필드를 이용하여 모델링을 한 것이다. 이렇게 논리적 데이터 구조까지 결정되면 컴퓨터가 접근할 수 있는 저장 장치 위에 데이터가 표현될 수 있도록 데이터 구조화 하는데 이 과정이 물리적 데이터 구조로 변환시켜 주는 것이다.8.3 다음을 간단히 설명하라.1) 개체 타입복잡한 현실 세계를 모델링 하는데 가장 중요한 추상화 개념으로서 그 이름과 애트리뷰트들로 정의되고 애트리뷰트들은 그 개체의 특성을 기술한다.2) 개체 인스턴스데이터베이스에 저장된 구체적인 객체.3) 개체 집합어느 특정 개체 타입에 대한 인스턴스들의 집합.4) 관계 타입개체 타입의 모든 인스턴스들, 즉 개체 집합들 사이의 대응, 즉 사상을 말한다.5) 관계 집합개체 집합과 개체 집합 간에 실제로 나타나 있는 관계 인스턴스를 총칭.6) 널 애트리뷰트널 값을 갖는 애트리뷰트.7) 개체 관계기본적으로 개체 타입과 이들 간의 관계 타입을 이용해서 현실 세계를 개념적으로 표현하는 방법.8) 복합 애트리뷰트몇 개의 기본적인 단순 애트리뷰트들로 분해할 수 있는 애트리뷰트.9) 약한 개체 타입자기 자신의 애트리뷰트만으로는 키를 명세할 수 없는 개체 타입.10) 존재 종속어떤 개체 B의 존재가 개체 A의 존재에 달려 있다면 B는 A에 존재 종속.11) 전체 참여개체 집합 A와 정의된 A-B 관계에서 개체 집합 A의 모든 개체가 A-B 관계에 참여하게 되는 것.12) 부분키약한 개체타입에서 약한 개체들을 구별할 수 있게 해주는 구별자.13) 구별자주 개체가 주어졌을 때 이와 연관 된 종속 개체들을 서로 구별할 수 있게 하는 애트리뷰트.14) 식별 관계 타입약한 개체를 강한 개체에 연관시켜 주는 관계.8.4 E-R 다이어그램과 데이터 구조도의 차이점을 기술해 보라. 또 스키마 다이어그램은 무엇인가?E-R 다이어그램은 개체 타입과 이들 간의 관계 타입을 이용해서 현실 세계를 개념적으로 표현한 것으로, 관계를 일 대 일, 일 대 다, 다 대 다 관계를 모두 표현할 수 있다. 데이터 구조도는 레코드 타입과 레코드 타입 간의 관계를 표현하는 것으로, 타입을 나타내는 사각형과 일 대 다 의 관계를 표현하는 화살표로 구성되는 그래프이다. 하지만 데이터 구조도는 E-R 다이어그램과 달리 속성을 표현하지 못하기 때문에 관계의 속성을 표현하지 못하고, 다 대 다의 관계도 표현하지 못한다.데이터베이스의 논리적 구조를 명세한 것이 데이터베이스 스키마이고, 이 데이터베이스 스키마를 데이터 구조도로 표현한 것이 스키마 다이어그램이다.8.5 “관계 데이터 모델에서 개체와 관계를 표현하는 방법이 같다.” 라는 말을 예를 들어 설명해 보라.개체와 관계를 모두 릴레이션으로 표현한다는 의미인데 E-R 다이어그램을 관계 데이터 모델로 표현하면 개체로 있는 것들과 관계로 존재하는 것들도 모두 릴레이션으로 표현된다.8.6 E-R(Entity Relationship) Model의 기본 개념을 설명해 보라. 그리고 다음과 같은 현실 세계를 E-R 다이어그램으로 표현해 보라.개체 타입과 이들 간의 관계 타입을 이용해서 현실 세계를 개념적으로 표현하는 방법이다. 개체 타입을 표현하는 사각형, 개체 타입 간의 관계 타입을 나타내는 다이아몬드, 개체나 관계의 속성을 나타내는 타원, 그리고 이들을 연결하는 링크로 구성된다.8.7 부모-자식 관계와 오너-멤버 관계에서 함수성(functionality)을 정의하라. 레코드 인스턴스에 어떤 영향을 주는가?오너-멤버 관계는 일 대 다 관계에 연관된 두 레코드 타입들을 각각 오너, 멤버라고 한다. 하나의 레코드 타입은 멤버로서 여러 개의 상이한 오너-멤버 관계에 참여할 수 있고 또 오너 레코드 타입으로서 여러 개의 상이한 오너-멤버 관계에 참여할 수도 있다. 부모-자식 관계는 일 대 다 관계를 맺고 있는 두 레코드 타입들을 각각 부모 레코드 타입, 자식 레코드 타입이라 한다. 물론 계층 데이터 모델에서 각 레코드 타입은 하나의 부모 레코드 타입만 가질 수 있다. 그러나 부모 레코드 타입으로서는 여러 개의 자식 레코드 타입과 연결하여 각각 별개의 부모-자식 관계를 만들 수 있다.8.8 관계, 계층, 네트워크 데이터 모델의 차이점과 장단점을 설명하라.관계 데이터 모델은 일반 사용자로 하여금 데이터베이스가 릴레이션, 즉 테이블의 집합으로 되어 있다고 생각하게 된다. 특히 데이터베이스를 구성하는 개체와 관계가 모두 통일적으로 테이블로 표현된다는 특성을 가지고 있다. 장점으로는 안정적이며, 사용자는 데이터 저장의 물리적 구조로부터 자유롭다는 점이 있다. 단점으로는 데이터 스키마가 사전에 계획되어 있어야 하며, 성능 문제가 발생할 수 있다는 점이다. 계층 데이터 모델은 스키마 다이어그램, 즉 데이터베이스의 논리적 구조를 표현한 데이터 구조도가 트리 형태인 것이다. 장점으로는 대용량 데이터베이스 처리에 강력하며, 무결성 조건에 대해 좋은 관리가 가능하다는 점이 있다. 단점으로는 구조 변경이 어렵다는 점이 있다. 네트워크 데이터 모델은 스키마 다이어그램, 즉 데이터베이스의 논리적 구조를 표현한 데이터 구조도 형태가 네트워크, 즉 그래프라는 것이다. 장점으로는 계층 구조에 링크를 추가하여 접근성이 우수하다는 점이고, 단점은 구조 변경 시 참조하는 모든 레코드에 수정이 필요하다는 점이다.
Chapter 044.1 다음 용어를 간단히 설명하라.1) 릴레이션같은 성격의 데이터들의 집합, 흔히 테이블이라고 말하는 용어와 같은 의미로 이론적인 용어, 릴레이션은 튜플과 애트리뷰트로 데이터를 정렬하여 관리한다.2) 도메인하나의 애트리부트가 취할 수 있는 같은 타입의 모든 원자 값들의 집합을 그 애트리뷰트이 도메인이라 한다. 속성이 가질 수 있는 값의 집합.3) 카디널리티튜플들의 수를 말한다.4) 릴레이션 스키마릴레이션에 어떤 정보가 담길지를 정의하는 것.5) 릴레이션 인스턴스릴레이션 스키마에 실제로 저장된 데이터의 집합. 단순히 릴레이션 또는 릴레이션 외연이라고도 한다.6) 정규 릴레이션반복 그룹을 애트리뷰트 값으로 포함하지 않는 릴레이션7) 릴레이션 차수속성의 개수8) 투플릴레이션의 각 행을 의미하며, 일반적으로 레코드와 로우와 같은 의미로 사용한다.4.2 릴레이션에서 투플은 왜 순서가 없는가?튜플의 무순서성이라 하는데, 릴레이션은 본질적으로 집합이라는 것을 생각하면 된다. 한 집합의 원소 사이에는 순서가 없는데, 릴레이션은 바로 튜플을 원소로 하는 집합이기 때문에 이 튜플 사이에는 순서가 없다.4.3 릴레이션에서 같은 투플은 왜 중복될 수 없는가?튜플의 유일성이라 하는데, 두 개의 똑 같은 튜플은 한 릴레이션에 포함될 수 없다. 릴레이션이 튜플을 원소로 갖는 집합이라는 정의에서 나오는 당연한 성질이기 때문이다. 수학적인 의미의 집합은 분별할 수 있는 원소의 수집이기 때문에 한 집합에 분별할 수 없는 똑 같은 원소가 중복해서 포함될 수 없는 것이다.4.4 릴레이션의 특성을 설명해 보라.릴레이션의 특성에는 4.2와 4.3에서 말했던 튜플의 유일성, 튜플의 무순서성이 있고, 한 릴레이션을 구성하는 애트리뷰트 사이에는 순서가 없다는 애트리뷰트의 무순서성, 모든 애트리뷰트 값은 원자 값이라고 하는 애트리뷰트의 원자성이 있다.4.5 릴레이션에서 애트리뷰트 사이에 순서가 없다고 하는 것은 어떤 뜻이며 또 어떻게 이것을 구현할 수 있는가를 설명해 보라.애트리뷰트의 무순서성이라 하는데, 이 성질은 한 릴레이션의 스키마가 일정 수의 애트리뷰트 집합으로 정의되는 데서 나오는 결과이다. 일반적으로 릴레이션의 정의는 n개의 애트리뷰트로 구성된다는 것을 정의한 것이지, 애트리뷰트의 물리적인 위치나 상대적 위치, 즉 나열 순서까지 정의한 것은 아니다. 따라서 A라는 릴레이션 안에 a, b, c, d라는 애트리뷰트가 있다 치면, a라는 애트리뷰트는 A 릴레이션에 속하는 애트리뷰트일 뿐, 제일 먼저 기술되어 있다고 해서 첫 번째 애트리뷰트라는 것은 아니다. 따라서 릴레이션을 나타내는 열 이름들은 릴레이션 스키마의 한 표현이다. 이를 구현하기 위해서는 애트리뷰트를 릴레이션 내의 상대적 순서보다는 애트리뷰트 자체의 명칭에 의해 식별이 가능하게 만들면 된다. 앞서 말했듯이 테이블의 맨 위에 있는 열 이름은 릴레이션 스킴의 한 표현으로 볼 수 있으므로 튜플은 쌍의 집합으로 표현하면 충분하고, 이 쌍들 간에 어떤 순서가 존재하는 것은 아니다.4.6 릴레이션을 보통 테이블로 표현하는데 이것은 컴퓨터 내부에 저장된 릴레이션을 표현한 것인가? 만일 아니라면 컴퓨터 외부에서의 릴레이션과 내부에서의 릴레이션 표현과의 관계를 설명해 보고 왜 서로 달라도 되는가를 설명해 보라.테이블 표현은 컴퓨터 내부에 저장된 릴레이션을 표현한 것이 아니다. 릴레이션과 테이블의 차이는 추상적 개념과 이를 나타내는 구체적 표현의 차이인데 릴레이션은 추상적 개념이고 테이블은 이 릴레이션을 기술하는 하나의 구체적 표현일 뿐이다. 사실상 하나의 릴레이션은 여러 가지 형태의 테이블로 표현될 수 있는데 이와 같이 하나의 개념을 설명하는 표현 방법 즉 구현 방법은 항상 여러 가지가 있을 수 있다. 따라서 외부에서의 릴레이션이 반드시 동일한 구조를 갖는 내부 릴레이션으로 관리될 필요는 없으며 내부 릴레이션은 데이터베이스 설계 과정에서 물리적 설계 측면의 고려사항을 반영하여 독립적인 표현구조를 가질 수 있다. 그리고 이러한 외부 릴레이션과 내부 릴레이션 간의 사상은 DBMS가 제공하는 물리적 데이터 독립성에 의해 지원된다.4.7 키를 정의하고, 그 특성을 설명하라. 또한 널 값과 키의 특성과는 어떤 관계가 있는지 설명해 보라.튜플을 유일하게 식별할 수 있는 애트리뷰트 집합을 그 릴레이션의 키라고 한다. 키의 특성에는 유일성과 최소성이 있다. 유일성은 릴레이션에 있는 모든 튜플에 대해 K(={Ai, Aj, …, Ak})의 값 는 모두 상이하고 유일하다라는 특성이고, 최소성은 유일성을 가진 K가 둘 이상의 애트리뷰트로 구성되어 있을 때 어느 한 애트리뷰트라도 제외시키는 경우에는 튜플의 유일성이 깨어진다. 즉 K는 모든 튜플들을 유일하게 식별하는 데 꼭 필요한 애트리뷰트들로만 구성된다라는 특성이다. 릴레이션에서 기본적으로 튜플을 식별하기 위한 도구로 데이터베이스 설계자가 지정한 하나의 후보 키를 기본 키라고 하는데, 이것으로 지정된 애트리뷰트들은 모든 튜플에 대해 어느 때고 널 값을 가질 수 없다는 제약을 갖는다.4.8 키에는 어떤 종류가 있고, 그들 간에는 어떤 관계가 있는가를 설명하라. 또 슈퍼 키와 후보 키의 차이점을 설명해 보라.키에는 기본 키, 슈퍼 키, 대체 키, 외래 키가 있다. 슈퍼 키와 후보 키의 차이점은 슈퍼 키는 유일성은 만족하지만, 최소성은 만족하지 않는다. 하지만 후보 키는 유일성과 최소성을 둘 다 만족한다. 관계로는 슈퍼 키가 가장 넓은 범위를 가지고 있다고 생각하면 된다. 슈퍼 키 안에 후보 키가 속해 있으며, 후보 키 안에 기본 키와 기본 키로 지정되지 않는 나머지 후보 키들인 대체 키가 존재한다.4.9 외래 키란 무엇이며 왜 중요한 지를 설명해 보라.외래 키란 관계형 데이터베이스에서 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키를 말한다. 이래 키는 참조하는 테이블에서 1개의 키에 해당하고, 참조하는 측의 관계 변수는 참조되는 측의 테이블의 키를 가리킨다. 데이터베이스의 목적은 많은 데이터들을 관리하기 위해 있는 것이기에, 무엇보다 중요한 것은 데이터의 무결성이다. 이 데이터 무결성을 보장하기 위하여 외래 키가 중요한데, 외래 키가 항상 기본 키를 참조하여, 유일 인덱스가 아닌 데이터를 매번 조회하게 되면 문제가 발생할 수 있으므로, 올바른 데이터가 들어가 있는지 자동화하여 주는 외래 키가 중요하다.4.10 다음과 같은 S, P, SP, 릴레이션 스키마가 있다.1) 릴레이션 S에서 슈퍼 키의 예를 하나 들어보라. 그리고 개체 무결성 제약을 설명해 보라.S 릴레이션에서 한 튜플은 한 납품업자를 나타내고, 모든 납품업자는 고유의 번호를 가지고 있다면, 속성 Sno는 튜플들을 유일하게 식별하는 데 사용되므로, 이 번호는 이 릴레이션의 후보 키이다. 또한 이름과 도시를 통해 튜플을 식별할 수 있다고 하면 이 속성 집합 또한, 릴레이션의 후보 키가 된다. 만일 이름만으로 모든 튜플들을 식별할 수 있다면 이 집합은 후보 키가 되지 못한다. 유일성을 만족하지 못하기 때문이다. 그렇기에 이런 집합들을 슈퍼 키라 하며, 번호와 이름으로 튜플들을 유일하게 식별할 수 있다고 가정할 때 이 집합은 슈퍼 키가 될 수 있다.개체 무결성 제약이란 기본 키에 속해 있는 애트리뷰트는 언제 어느 때고 널 값을 가질 수 없다는 것을 말한다.2) 위에 명세한 릴레이션 스키마를 예로 들어 참조 무결성 제약을 설명해 보라.참조 무결성 제약이란 릴레이션은 참조할 수 없는 외래 키 값을 가져서는 안 된다는 것을 말한다. 만약 릴레이션 S의 기본 키를 Sno라고 가정하면, 기본 키 Sno를 참조하면 외래 키가 릴레이션 P에 있다면 이 FK의 값은 반드시 S에 나타나 있는 기본 키 Sno의 어떤 값과 같든지 아니면 널이어야 한다. 만일 참조할 수 없는 외래 키 값이 존재한다면 피 참조 릴레이션에 실제로 존재하지도 않는 튜플을 참조한다는 의미가 되므로 모순이다. 이때 릴레이션 P와 릴레이션 S는 반드시 서로 다른 릴레이션이 되어야 하는 것은 아니다.4.11 데이터베이스 상태란 무엇이며, 어떤 의미를 가지고 있는가? 또 이들은 데이터베이스 연산과 어떤 관계를 가지고 있는지 설명해 보라.데이터베이스 상태란 어느 일정 시점의 데이터베이스 인스턴스를 말하는 것으로 그 시점의 현실 세계를 반영한 것이다. 데이터베이스 상태는 데이터베이스가 처음 설계, 구현되어 데이터가 적재된 초기상태 이후 삽입, 삭제, 변경 등의 연산을 통하여 한 상태에서 다른 상태로 변이 된다. 이때 이전상태는 물론 연산 이후 상태도 무결성 제약을 만족하는 정확한 상태여야 한다.4.12 무결성 제약은 어떤 면에서 시간에 독립적이다. 데이터베이스의 내용이 변해 가는 과정에서 무결성 제약 조건을 유지해 나갈 수 있는 기법과 구현 방법을 설명해 보라.무결성 제약을 유지하기 위해서는 데이터베이스에 대한 삽입, 삭제, 갱신 등의 연산이 적용될 때마다 무결성 제약의 만족 여부를 검사해야 한다. 이 기능을 구현하기 위해서는 스키마에 포함된 무결성 규정들을 데이터 사전 등에 보관하고 데이터 변경 연산이 실행될 때 마다 이 규정을 변경된 데이터에 적용하여 무결성의 유지 여부를 검사해야 한다.4.13 모든 릴레이션은 반드시 후보 키를 가지고 있다고 볼 수 있다. 그 이유를 설명하라.릴레이션의 정의에 의하면 릴레이션은 튜플들의 집합이다. 따라서 한 릴레이션 내에는 중복된 튜플들이 존재하지 않으므로 그 릴레이션의 애트리뷰트 전부를 조합하면 후보 키가 된다.4.14 기본 키의 유일성 조건과 개체 무결성 조건을 비교 설명해 보라.개체 무결성 조건이란 기본 키에 속해 있는 애트리뷰트는 언제 어느 때고 널 값을 가질 수 없다는 것을 말한다. 릴레이션의 기본 키가 바로 이 튜플들을 유일하게 식별하는 기능들을 가지고 있는데 만일 이 기본 키 값의 전부 또는 일부가 널이 된다면 결과적으로 튜플들을 유일하게 식별할 수 없게 되어 기본 키 정의에 위반된다. 튜플들을 유일하게 식별할 수 없게 되면 서로 구별할 수 없는 개체가 존재한다는 의미가 되므로 개체의 정의 모순이 되며, 기본 키는 유일한 식별성을 잃게 하는 널 값을 포함해서는 안 된다.