gnu

블로그 이미지
by 군우

TAG CLOUD

  • Total hit
  • Today hit
  • Yesterday hit



1. 데이터베이스의 개념

1. 정보시스템


자료(Data): 현실 세계에서 관찰이나 측정을 통해 얻은 단순한 사실이나 결과값

정보(Information): 의사결정에 도움을 주는 유용한 형태로, 자료의 가공처리를

통해 얻어진다.


정보시스템

조직체에 필요한 data를 저장하고 수집하고 필요시 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단이다.

 정보시스템 안에 자료 처리 시스템이 있다.


자료 처리시스템 3가지

1.일괄 처리 시스템: 시스템의 효율성을 높이기 위해, 일정시간, 일정량을 모아서 한번에 처리하는 시스템이다.

-일괄처리 시스템은 시스템 중심의 자료처리방법 이다.

-반환시간(Turn around time)이 늦지만 하나의 작업이 모든 자원을 독점하므로

 CPU유휴시간이 줄어든다.

-테이프와 같은 순차 접근 방법을 사용하는 업무에 적합하다.

-단위 시간당 처리하는 작업수가 많아, 시스템 성능은 높다.

-트랜잭션당 처리 비용이 적다.

-급여 계산, 회계 마감 업무, 세무 처리, 요금 처리, 연말 결산등의 업무에 사용된다.

-사용자가 목적하는 값

- 의사결정을 위한 값 이라고 해도 됨.


2.온라인 실시간 처리 시스템

데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하도록 하는 방식이다.

-사용자 중심의 처리 방식이다.

-처리 시간이 단축되고, 처리비용이 절감된다.

-우주선 운행이나. 레이더 추적기, 핵 물리학 실험 및 데이터 수집, 전화교환망등 시간을 제한을 두고 하는 업무에 사용된다.


3.분산 처리 시스템

지리적으로 분산 되어 있는 여러대의 컴퓨터(프로세서)의 통신 회선으로 연결하여 논리적으로 하나의 시스템을 사용하는 것 처럼 운영하는 방식이다.

-각 단말이나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있다.

-시스템 구축이나 운영이 복잡하지만, 신뢰성이 높고 확장이 용이하다.


데이터웨어하우스(Datawarehouse)

조직이나 기업체가 중심이되는 주요 업무시스템에서 추출되어 새로 생성된 데이터베이스로 의사결정지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체를 말한다.

데이터웨어의 기본적인연산:OLAP(on line analytical): roll-up, dicing, drill-down


내가푼 기출문제 따라잡기

2 3 3 4 4 4

2 3 3 4 4 4

암기해야 할 것

자료와 정보의 차이

정보시스템> 자료시스템

자료시스템의 3가지 특징별로.



2.데이터 베이스의 개념

데이터베이스의 정의: 특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 모임이다. 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료로서 지역적이 아닌, 전역적으로 유지되어야 한다.


1.통합된 데이터(Integraged Data): 자료의 중복을 배제한 데이터의 모임이다.★

2.저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 매체이다.

3.운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는데 존재 가치가  확실하고 없어서는 안 될 반드시 필요한 자료이다.

4.공용데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다.


데이터베이스의 특징

-실시간 접근성(Real-time Accessibility): 수시적이고 비형정ㄱ인 질의에 대하여 실시간 처리에 의한 응답이 가능해야한다.

-계속적인 변화(continuous Evolution): 데이터베이스의 상태는 동적이다. 즉 새로운 데이터의 삽입,삭제, 갱신으로 최신의 데이터를 유지해야한다.

-동시공용(concurrent sharing): 데이터 베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.

-내용에 의한 참조(content Reference): 데이터베이스에 있는 데이터를 ㅈ참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.


데이터베이스 설명: 자료를 세분화해서 세밀히 기억하기 위한 것이다.

자료를 기억시키는 장치의 종류에 제한을 없애기 위한것이다.

단위프로그램의 자료를 독립적으로 관리하기 위한것이아님-> 파일시스템


데이터베이스 시스템

데이터베이스 시트템이란, 데이터베이스를 이용하여 자료를 저장하고 관리하여 정보를 얻어내는데 필요한 컴퓨터 중심의 시스템.

구성요소: 데이터베이스, 스키, dbms, 데이터베이스언어, 디비컴퓨터,디비 사용자


1-26따라잡기 내가푼 답:

4

 4

 2


DBMS(data base management system)의 정의

사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어이다.

dbms는 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기위해 제안된 시스템으로 , 모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해 준다.


종래의 파일처리방식

단점: 데이터 중복성, 데이터 종속성이 존재한다.

-종속성으로인한 문제점: 응용 프로그램과 데이터 파일이 상호 의존적인 관계에서는 데이터 파일이 보조 기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때 응용 프로그램도 같이 변경되어야한다. 

-중복성으로 인한 문제점

--일관성: 중복된 데이터간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어진다.

--보안성: 중복되어 있는 모든 데이터에 동등한 보안수준을 유지하기 어렵다.

--경제성: 저장공간의 낭비와 동일한 데이터의 반복 작업으로 비용이 증가한다.

--무결성: 제어의 분산으로 데이터의 정확성을 유지할 수 없다.

단, 처리속도가 느리지 않다! 


DBMS의 필수 기능

-정의기능(Definition): 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 Type과 구조에 대한 정의, 이용 방식, 제약 조건등을 명시하는 기능이다.

데이터와 데이터의 관계를 명확하게 명세할 수 있어야 한다.

-조작기능(Manipulation): 데이터 검색,갱식, 삽입, 삭제등 을 체계적으로 처리 하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능이다.

-제어기능(Control): 데이터베이스를 접근하는 갱신, 삽입등이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 한다.

정당한 사용자가 허가된 데이터에 접근할 수 있도록 Security를 유지하고 권한(Authority)검사를 할 수 있어야 한다.

-여러 사용자가 데이터 베이스를 동시에 접근하여 데이터를 처리 할 때 처리 결과가 항상 정확성을 유지하도록 병행제어(Concurrency Control)할 수 있어야 한다.


DBMS의 장단점

장점

-데이터의 논리적. 물리적 독립성이 보장된다.

-데이터의 중복을 피할 수 있어 기억공간이 절약된다.

-저장된 자료를 공동으로 이용할 수있다.

-데이터 일관성을 유지할 수 있다.

-데이터 무결성을 유지할 수 있다.

-보안을 유지할 수 있다.

-데이터를 표준화 할 수 있다.

-데이터를 통합하여 관리 할 수 있다.

-항상 최신의 데이터를 유지한다.

-데이터의 실시간 처리가 가능하다.

단점

-데이터베이스의 전문가가 부족하다.

-전산화 비용이 증가한다.

-대용량 디스크로의 집중적인 Access로 과부화(overhead)가 발생한다.

-파일의 예비(Back up)과 회복(Recovery)이 어렵다.

-시스템이 복잡하다.


데이터 독립성

데이터 종속성에 대비되는 말로 DBMS의 궁극적 목표이다.

-논리적 독립성: 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변하지 않는다.

-물리적 독립성: 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써 데이터베이스 시스템 성능향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향이 없고 데이터의 물리적 구조만 변경한다.

1-30 따라잡기 문제


4. 스키마(Schema)

스키마의 정의

스키마는 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세(specification)를 기술(desciption)한 메타데이터(meta-data)의 집합이다.

스키마는 데이터베이스를 구성하는 데이터 개체(entity),속성(attribute).관계(relationship) 및 데이터 조작시 데이터 값들이 갖는 제약 조건등에 관해 전박으로 정의한다.

외부스키마, 내부스키마, 개념스키마로 나누어 져있다.


스키마의 특징

-스키마는 데이터 사전(data dictionary)에 저장되며, 다른 이름으로 메타 데이터라고도 한다.

-스키마는 현실세계의 특정한 한 부분의 표현으로 특정 데이터 모델을 이용해서 만들어진다.

-스키마는 시간에 따라 불변인 특성을 갖는다.

-스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.


*인스턴스: 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는 것을 말함.

*메타데이터: 데이터 의 데이터가 저장된것 데이터 사전이라고 도한다.


인터페이스 ; 외부->개념  => 외부 인터페이스

개념 ->내부 => 저장 인터페이스


스키마의 3계층

 데이터 베이스 관리 시스템은 외부적 스키마에 따라 명시도니 사용자의 요구를 개념적 스키마에 적합합 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환 한다.


-외부스키마(external schema)=서브 스키마=사용자 뷰(view)

--외부 스키마는 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터 베이스의 논리적 구조를 정의 한것이다.

--전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 sub라고도 한다.

--하나의 데이터베이스에는 여러개의 외부 스키마가 존재 할 수 있으며, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.

--같은 데이터베이스에 대해서도 서로 다른 관점을 정의 할 수 있도로 허용한다.

--일반 사용자는 질의어(SQL)를 이용하여 db를 쉽게 사용할 수 있다.

--응용 프로그래머는 COBOL,C등 언어 쓴다.


-개념 스키마(Conceptual schema) = 전체적인 뷰

--개념 스키마는 데이터베이스의 전체적인 논리 구조로서 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.

--개체 간의 관계와 제약 조건을 나타내고 데이터 베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.

--데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념스키마를 의미 한다.

--기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.

--데이터베이스 관리자에 의해 구성된다


-내부 스키마(Internal schema) = 저장 스키마(storage schema)

--내부스키마는 물리적 저장 장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.

--실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.

--시스템프로그래머나, 시스템설계자가 보는 관점의 스키마이다.

--저장된 레코드 및 필드의 순서. 색인, 해시주소, 포인터 등에 대해서 상세히 기술한다.


 1

 1

4


5.데이터베이스 언어

데이터베이스를 구축하고 이용하기위한 데이터베이스 시스템과이 통신수단이다.


데이터 정의 언어(DDL: Data Definition Language)

-ddl은 db구조 데이터형식, 접근 방식등 db를 구축하거나 수정할 목적으로 사용하는 언어이다.

-번역한 결과가 데이터 사전이라는 특별한 파일에 여러개의 테이블로서 저장됨


데이터 정의언어의 기능

-외부 스키마 명세를 정의한다.

-데이터베이스의 논리적, 물리적 구조 및 구조 간의 사상을 정의 한다.

-스키마에 사용되는 제약 조건에 대한 명세를 정의한다.

-데이터의 물리적 순서를 규정한다.


데이터 조작어(DML: Data Manipulation Language)= 서브 언어

데이터 조작언어는 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로써 사용자(응용 프로그램)와 dbms간의 인터페이스를 제공한다.

응용프로그램을 통해서 사용자가 db의 데이터를 실질적으로 조작할 수있도록 하기위해 cobal등의 호스트 언어에 db기능을 추가해 만든 언어 이다.

대표적인 dml에는 질의어가 있다. 질의어는 비절차적 데이터 언어이다.

데이터조작어의 형태

-절차적 조작언어: 사용자가 어떤 데이터가 필요하면 필요한 데이터를 어떻게 구하는지 절차에 맞게 구체적으로 명시하는 언어

-비절차적 조작 언어: 사용자가 어떤 데이터가 필요한지만을 명시하고 어떻게 구하는지 명시하지 않는 언어로서, 배우기 쉽고 사용하기 쉬우나 코드의 효율성 면에서 비효율 적이다.

데이터조작어의 조건

-사용하기 쉽고 자연 언어에 가까워야 한다,

-데이터에 대한 연산뿐만아니라 뷰 내의 데이터나 데이터 간의 관계를 정확하고 완전하게 명시 할 수 있어야 한다.

-데이터 언어의 효율 적인 구현을 지원해야한다. 즉 데이터언어의 구문이 dbms가 제공하는 기본적인 연산과 관련을 갖도록 해야 한다.


데이터 제어 언어(DCL: Data Control Language)

-데이터 제어언어는 무결성,보안. 권한제어, 회복등을 하기위한 언어이다.

데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.

데이터 언어의 기능

1.불법적인 사용자로부터 데이터를 보호하기 위한 데이터보안

2.데이터 정확성을 위한 무결성 유지

3.시스템 장애에 대비한 데이터 회복과 병행수행 제거

 4


6. 데이터베이스 사용자

DBA(DataBase Administrator)

데이터베이스 시스운영에 대한 책임을 지고 있는 사람이나 그룹

디비 설계와 조직에대한 책임

-무결성을 위한 제약 조건의 지정

-데이터 사전의 구성과 유지

- 시스템을 감시

- 단, 사용자를 감시하지는 않음. 

-사용자에 접근권한부여를 함.

응용프로그래머

일반 호스트언어로 프로그램을 작성할때, 데이터 조작어를 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람이다.

응용프로그래머는 c, cobol,등의 호스트언어와 dbms가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가이다.


일반사용자

보통 터미널을을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람.

dba와 응용프로그래머, 일반사용자의 역할을 차이를 기억해야함.


1-38 따라잡기

 3

 1


예상문제은행1-42

 1

4^24 

`3 

3

 3


2.데이터 모델링 및 설계

7.데이터 모델의 개념

데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형이다.

데이터모델은 데이터 데이터의 관계. 의미 ,및 일관성, 제약조건등을 기술하귀 위한 개념적 도구들의 모임이다.

현실 세계를 데이터 베이스에 표현하는 중간 과정, 데이터의 구조를 논리적으로 표현하는 데 사용하는 도구


개념적 데이터모델

현실세계에  존재하는 개체를 인간이 이해할 수있는 정보로 구조로 표현하는 정보 모델이다. 

e-r모델등.


논리적 데이터 모델

개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리 할 수있는 컴퓨터 환경에 맞도록 변환 하는 과정이다.

관계형, 계층형, 네트워크형 모델 등


데이터모델에 표시할 요쇼

구조(Structure): 논리적으로 표현된 개체타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현.

연산(Operation): 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본도구,

제약조건(Constraint): 데이터베이스에 저장될 수있는 실제 데이터의 논리적인 제약 조건이다.


데이터모델의 구성요소

개체(entity): 개체는 데이터 베이스에 표현하려는 것으로. 사람이 생각하는 개념이나 정보 단위가 같은 현실세계의 대상체이다. 레코드에 대응하는것

속성 (attribute):데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당한다.

관계(relationship):  개체간의 관계

 1


8.개체-관계 모델

er모델에서는 데이터를 개체, 관계, 속성으로 묘사 한다.


ER다이어그램

 2


9.관계형데이터모델

계층 모델과 망 모델의 복잡한 구조를 단순화 시킨 모델이다.

1:1  a의 기본키를 b의 외래키로 추가하거나, b를 a의 외래키로

둘중하나의 기본키로두고 밑에 줄없는 b의기본키들고오기.

1;n  a의 기본키를 b의 외래키로 추가하거나, 별도의 테이블로 표현

새로만들경우 a는기본키하고 b의기본키를 밑줄없이 새로만

n:n  a와 b의 기본키를 모두 포함한 별도의 테이블로 변환.

4


10.계층형 데이터 모델

계층형은  트리형이다,  개체가 트리노드를 구성하는 형태

 틀림: 계층적 그래프 구조로 표현한다는 말은 틀린말이다.

계층형db를 구성하는유형 2가지

-속성관계: 세그먼트(개체)를 구성하는 속성들의 관계

-개체 관계: 개체와 개체간의 관계를 링크로 표시한다.

특징

1:다의 관계만 존재한다.    

개체 삭제시 연쇄삭제된다.  상위트리지우면 하위트리도 지워진다는말

사이클허용되지 않는다. 당연, 사이클생기려면 트리가 돌아가야됨

대표적 dbms는 IMS

계층형 데이터모델의 장점

1.구조가 간단, 판독이 용이

2.구현, 수정, 검색이 용이함.

3.데이터 독립성 보장

계층형 데이터모델의 단점

1.상호간의 유연성 부족함.

2.검색경로가 한정됨

3.삽입과 삭제 연산이 매우 복잡하다.

4.다 대 다 관계가 구현하기 힘들다.  

따라잡기59

 2

3

4

 2


11.망 (네트워크)형  데이터 모델

망형 데이터모델(Network Data Model)

CODASYL DBTG모델이라고도 한다.

그래프를 이용해서 데이터 논리구조를 표현한다.

상위와 하위 레코드사이에서 다:다 관계를 만족함

레코드 타입 간의 관계는 1:1~다:다 다가능.

대표적이 사용하는 dbms: DBTG,  EDBS, TOTAL

망형 데이터 모델의 표현

Entity군 동종의 entity 그룹

Entity SET:  주종 관계에 있는 Entity 군들의 그룹

SET Membership Type: 일대 다 관계에 연관된 레코드 타입들을 각각 오너 . 멤버라고 부른다. 

망형 데이터모델의 특징

1. 레코드 타입과 링크들의 집합으로 구성된다

2.레코드 타입의 집합이 있다.

3.타입들을 연결하는 링크들의 집합이 있다.

4.자기 자신으로의 링크는 없다.

5.오너와 멤버 레코드 타입은 서로 동일한 형태가 될 수 없다

따라잡기 1-62

2 ,4

ER 모델링은 다른 관계형,계층형, 망형 과 다르게  개념적 모델링이다. 


12. 데이터베이스 설계

설계순서 : 요구 분석- > 개념적 설계 -> 논리적설계-> 물리적 설계 -> 구현

설계시 고려사항

-무결성: 삽입삭제등 연산후에도 데이터 베이스에 저장된 데이터가 정해진 제약조건을 만족해야함

-일관성: 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야함

-회복: 시스템 장애시  장애전으로 복구 할 수 있어야함

-보안:  노출과 데이터 손실을 막을 수 있어야함.

-효율성: 응답시간의 단축 시스템의 생산성, 저장 공간의 최적화 등이 가능해야함

-데이터베이스 확장:  데이터 베이스 운영에 영향을 주지않으면서 데이터추가가능


1.요구조건 분석

2.개념적설계( 정보 모델링, 개념화)  

현실세계의 무한성과 계속성을 이해하고, 추상적 개념으로 표현하는 과정

개념스키마 모델링과 트랜잭션 모델링을 병행 수행한다.

개념적 스키마를 설계하는 단계


3.논리적 설계(데이터 모델링)

현실세계에서 발생한 자료를  컴퓨터 가이해하고 처리할 수있는 물리적 저장장치에 저장 할 수 있도록 변환하는 것

개념세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델링한다.

개념적 스키마를 평가, 정제하고 논리적 스키마를 설계하는 단계

관계형 데이터베이스의 경우 테이블을 설계하는 단계

4. 물리적 설계(데이터구조화)

디스크등의 물리적 저장장치에 저장할 수있는 물리적 구조의 데이터로 변환하는 과정

꼭 포함되야할 것: 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계 등이 있다.

물리적 데이터베이스 구조의  기본적인 데이터 단위는 저장 레코드 (Stored Record)이다. => 저장 레코드의 집합  시스템에 중대한 영향을 미친다.

고려사항: 인덱스의 구조, 레코드의  크기 파일에 존재하는 레코드 개수 , 파일에 대한 트랜잭션의 갱신과 참조 성향

설계옵션 선택시 고려사항: 3가지 

반응시간(Response Time): 트랜잭션 수행을 요구한 시점부터 처리결과를 얻을 때까지의 경과시간

공간활용도(Space Utilization): 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장 공간의 양

트랜잭션 처리량(Transaction Throughput): 단위 식간동안 데이터베이스 시스템에 의해 처리 될 수 있는 트랜잭션의 평균 개수

5.데이터베이스 구현

논리적 ,물리적 설계단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 단계

DDL을 사용하여 데이터베이스 스키마를 기술한 후 컴파일 하여 빈 데이터베이스 파일을 생성

빈데이터베이스파일에 데이터 입력

응용 프로그램을 위한 트랜잭션 작성

응용프로그램을 작성한다.

따라하기1-66

 1

11 4 

틀림:

개념적모델링에서 트랜잭션 모델링을하고

논리적 모델링에서  트랜잭션 인터페이스를 설게한다.

논리적 설계단계에서 목표 DBMS에 독립적인 논리 스키마 설계하는 것이 아니고 종속적인 논리 스키마를 설정하는 단계이다.

목표 DBMS에 맞는 스키마 설계는 논리가 맞다. 

저장레코드는  물리적 데이터모델링에서 기본단위이다 잊지말자

물리적 데이터베이스 설계수행중에도, 성능향상을 위한 개념 스키마의 변경여부를 검토할 수 있다. 스키마설계는 아니다.


 

 4

`4

1``

2

3

2

1

`3

1

3

 4

4

4

2

1

2

4

3

1

3

2

3

2`

4

4

4`

3

`3`

4

3

 2

3

3

4

4

4

2

1

4

3

4````3

4

1

2

4``

 2``

2

3

 4

 4

 4

4

4

3

1

2

2

3

2

4

1`

3

2

3

 

 

 

 

 

 

3

3

3

3

 

 

 

 

 

 

틀림: 

3.캡슐화,상속, 다형성 등은 객체 지향 프로그램언어들의 특징이다 이러한 것들은 객체지향 데이터 모델이다. 

5.개체는  파일시스템의 레코드에 대앙하는 것으로 어떤 정보를 제공하는 역할

그리고 컴퓨터가 취급하는 파일의 레코드에 대응한다는 말과 같다.

13.entity는 가상세계가 아니라 실제세계를 가져온것 

16. 관계형 DBMS:SQL, OLACLE,dBASE3

계층형 DBMS: IMS

망형DBMS: DBGT,EDBS,TOTAL

17. 테이블은 관계형데이터모델이다 

18. 개체는 종속적인 관계가 아니라 독립적인 관계로 표현한다.

23.레코드: 파일 시스템에서 개체를 나타내는 용어

튜플: 관계 DB에서 개체를 나타내는 용어

세그먼트: 계층DB에서 개체를 나타내는 용어

속성: 개체를 구성하는항목

25.

실제의미 

관계형 

계층형 

망형 

관계성표현구조 

테이블 

트리 

그래프 

개체의 관계성 

 내부상관관계성

부모자식 

오너멤버 

개체 집합 

테이블 

세그먼트타입 

레코드타입 

개체 

튜플 

세그먼트오커런 

레코드오커런스 

항목 

속성 

필드 

데이터항목 

 항목값

속성값 

필드값 

데이터항목값 

29. 개념적모델링 =high-level data model=semantic data model= conceptual data model

33. 데이터베이스 구현단계는  논리적 물리적 설계에서 도출된 스키마를 파일로 생성하는 단계이다, ddl로 스키마를 기술한 후!!  응용프로그램을 작성한다!




3.관계 데이터베이스 모델과 언어

13.관계형 데이터베이스의 구조

릴레이션에서 속성 튜플 

튜플: 릴레이션을 구성하는 가각의 행을 말함.

속성의 모임으로 구성되어 있음.

파일 구조에서 레코드와 같은 의미

튜플의 수 = 카디 널리티= 기수= 대응 수

속성: 데이터베이스를 구성하는 가장 작은 논리적 단위

파일 구조상의 데이터 항목 또는ㄴ 데이터 필드에 해당

개체의 특성을  기술함

속성의 수 = 디그리 = 차수

도메인: 하나의 속성이취할 수 있는 같은 타입의 원자 값들의 집합

도메인은 실제 애트리 뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데 이용된다.


릴레이션의 특징

-한 릴레이션에는 똑같은 튜플이 포함될 수 없으므로 릴레이션에 포함된 튜플은 모두 상이하다.

-튜플 사이에는 순서가 없다.

-튜플들의 삭ㅂ입 등의 작업으로  시간에 따라 변한다.

-릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.

-속성은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.

따라잡기74

 1

틀림

2.차수= 디그리= 속성의 수 =열의 수

기수 =카디널리티=튜플의 수=행의 수

8. 릴레이션인스턴스가 값이고 스키마가 속성들을말한 것이다.


14.관계형 데이터베이스의 제약 조건

후보키

릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합, 기본키로 사용할 수 있는 속성들을 말한다.

-하나의 릴레이션 내에서는 중복된 튜플이 있을 수 없으므로 반드시 하나 이상의 후보키가 존재 한다.

-후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 한다.

유일성: 하나의 키값으로 하나의 튜플만을 유일하게 식별할 수 있어야한다

최소성: 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성만 구성


기본키

-기본키는 후보키 중에서 선택한 주키 이다.

-한 릴레이션에서 특정 튜플을 유일하게 구별 할 수있는 속성이다.

-Null값을 가질 수 없다.

-기본키로 정의된 속성에는 동일한 값이 중복되어 저장 될 수 없다.


대체키(Alternate Key)

후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말한다.

보조키라고도 한다 


슈퍼키

-한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.

-슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못한다.


외래키

-관계를 맺고 있는 릴레이션 r1, r2에서 릴레이션 r1이 참조 하고 있는 r2의 기본키와 같은 r1릴레이션의 속성을 외래키라고 한다

-외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션간에 참조 관계를 표현하는데 중요한 ㄷ구이다.

-참조 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구 있다

-기본키에 없는 값은 입력할 수 없다.


무결성

1.개체 무결성

릴레이션에서 기본키를 구성하는 속성은 널값이나 중복값을 가질수 없다


2.참조 무결성

외래키 값은 널이거나 참조 릴레이션의 기본키값과 동일해야한다. 즉 릴레이션은 참조할 수없는 외래키 값을 가 질 수 없다

-참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야한다.

따라잡기 77

 2

틀림:릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키는 ??  후보키는 둘다 만족한다.



15.관계대수 및 관계해석

관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.

릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다.

순수 관계연산자: Select, project, join, divison  기억해. 

일반 집합 연산자: union합집합, intersection교집합, difference차집합, cartesianproduct교차 곱


순수관계연산자

데이터베이스에 적용할 수 있도록 특별히 개발한 관계연산자


Select  

선택조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만듬

행에 해당하는 튜플 중에서 구하는 것이므로 수평연산이라고한다

기호는 시그마 6 <조건>(릴레이션 명)


Project

주어진 릴레이션에서 제시된 속성만 추출하는것

세로 연산이라고도 한다   

파이 ㅠ<속성리스트>(릴 명)


Join

공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드느는 연산

 나비넥타이 모양 사용함 


Division

r이 s를 다포함하는  릴레이션이 있을때  S랑 같은 속성 값을 가진 모든 튜플에서 속성을 제외한 속성을 구하는 연산 

기호는 나누기를 사용한다.


일반 집합 연산자

그중에서  합집합 ㄱ교집합 차집합 은 합병조건이 가능해야 사용

합병조건: 합병하려는 두 릴레이션 간에 ㅇ속성ㅅ가 같고 애트리뷰트가 취할  수 있는 도메인의 범위가 같아야한다.


관계해석

관계 데이터 모델의 제안자: 코드E.F.Codd

데이터 연산을 표현하는 방법으로 원하는 정보를 정의할 떼 계산 수식을 이용함

비절차적 특성. 

관계대수로 표현한 식은 관계해석으로 표현할 수 있다.

따라잡기82

틀림:교차곱을하면, 속성의 수는 더하게되고 튜플의수는 곱해야한다!!!

수평은 select 6 ,        수직은  projectㅠ


16.정규화

정규화란 함수적 종속성등의 종속성이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성으로 쪼개어 바람직한 스키마로 만드는 과정이다.

목적: 데이터 구조의 안정성을 최대화

데이터베이스 내에서 표현가능하게함

효과적인 검색 알고리즘 생성

중복을 배제 갱신이상 발생 방지

데이터 삽입시 릴레이션을 재구성할 필요성을 줄임


이상의 종류 (Anomaly) 언노말리 이상 anomaly

삽입이상insertion : 삽입할때 의도와 다른 값들도 삽입되는 현상

삭제이상deletion: 삭제할때  다른값도 삭제되는현상

갱신이상update: 릴레이션에서 튜플에 있는 속성값을 갱신할 때  일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상


중복성및 종속성을 배제시켜서 이상을 제거함


정규화과정

제1정규형 1NF: 릴레이션에 속한 모든 도메인이 원자값으로만 되어있는 릴레이션이다

제2정규형: 제1만족하고, 키가 아닌 모든 속성이 기보키에 대하여 완전 함수적 종속관계를 만족해야한다


#함수적 종속관계: 학번에 이름이 결정됬을때 관계없이 결정되므로  학번->이름


#완전 함수적 종속 관계: 속성에이가 다른 속성들의 집합 B에 전체에  대해서 함수적 종속관계를 갖지만 B의 진 부분집합에 대해서 종속관계를 갖지 않으면 완전 함수종속 관계라고한다,


제3정규형: 2정규형만족하고, 키가 아닌 모든 속성이 기본키에 대해 이행적 종속 관계를 이루지 않도록 제한한 관계형이다.

이행적종속관계: A->B  ,  B->C일때 A->C를 만족하는 거


BCNF정규형(BOYCE CODD 정규형): 결정자가 모두 후보키인 관계형이다.

 - 키가 아닌 모든 속성은 각 키에대하여 오나전 종속해야한다

 - 키가 아닌 모든 속성은 그 자신이  부분적으로 ㄷㄹ거가 있지 않은 모든 키에 대하여 완전 종속해야한다.

 - 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없다.


제4정규형: A가 B에 다치 종속하는 경우, R의 모든 속성이 A에 함수적 종속인경우

제5정규형: 모든 조인 종속성의 만족이 R의 후보키를 통해서만 만족될 때 PJ/NF에 속한다. 

도부이결다조  =  두부이겨다줘

 3

`1 

 4

*** 데이터의 종속때문에 이상이 일어나는것이아니라 속성간의 종속 혹은 데이터 튜플의 중복으로 인해 발생하는 것이다. 

도부이결다조 가 아주 중요했음. 다맞음


17. SQL의 개념

질의어 이지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의 데이터 조작 데이터  제어기능을 모두 갖추고 있다.

DDL 데이터 정의어

논리적, 물리적 데이터 구조의 사장을 정의한다. DBA나 DB설계자가 사용함.

CREATE: 정의한다   ,SCHEMA, DOMAIN, TABLE, VIEW, INDEX

ALTER: 변경한다,    TABLE에 대한 정의를 변경하는데 이용한다.

DROP: 삭제한다.    SCHEMA. DOMAIN, TABLE, VIEW, INDEX를 


DML 데이터 조작어

디비 사용자가 응용프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어이다.

SELECT: 튜플 검색

INSERT: 튜플 삽입

DELETE: 튜플 삭제

UPDATE: 튜플 변경


DCL 데이터 제어어

데이터의 보안, 무결성 회복, 병행 수행 제어등 을 정의하는데 사용되는 언어이다

데이터 베이스관리자가 데이터관리를 목적으로 사용한다.

COMMIT: 실제물리디스크로 저장하고, 완료를 관리자에게 알림

ROLLBACK: 데이터베이스 조작 작업이, 비정상적으로 종료되었을때 원래의 상태로 복구한다.

GRANT: 데이터베이스 사용자에게  권한을 부여한다.

REVOKE: 권한취소 

따라잡기 

데이터 정의어를 헷갈려함  정의어 CAD 카드 라고 외우니까 겹치는 D같은 단어들을 헷갈려함.  CREATE ALTER DROP ,    DELETE가 아님 

 

18.DDL

ddl로 정의한 내용은 meta 데이터가 되며  ㅅ시스템 카탈로그에 저장한다

시스템 카탈로그: 시스템 그 자체에 관련 있는 다양한객체들에 관한 정보를ㄹ 포함하는 시스템 데이터베이스테이블. 


create schema

테이블의 종류 : 

기본테이블 : 독자적으로 존재

뷰 테이블: 독자적으로 존재하지 못하고, 기본 테이블로부터 유도된 이름을 가진 가상 테이블임시 테이블: 질의문 처리 결과로 만들어진 테이블로서 이름 x


create SCHEMA

스키마 정의하는 명령문 


create domain

도메인 정의하는 명령문


create table

테이블을 정의하는 명령어

UNIQUE : 대체키로 사용할 속성명들을 지정한다.

참조무결성의 cascate 법칙: 참조하는 다른 모든개체를 같이 자동삭제됨.


create index  : 인덱스를 저으의하는 명령문

ASC: 오름차순

DESC : 내림차순 

CLUSTER : 동일 인덱스 값을 갖는 튜플들을 그룹으로 묶을때 사용.

ALTER TABLE:  테이블에 대한 정의를 변경하는 명령문

ADD: 새로운 속성 열을 추가 할때 사용한다.

ALTER: 특정 속성의 Default 값을 변경할 때 사용한다.

DROP :  특정 속성을 제거한다.

DROP: 삭제하는 명령어 

RESTRICTED: 참조중일 때 삭제 취소

따라하기 95

4` 

`3 

2

틀림,1. create table문은 기본  테이블을 최초로 생성하기 위해하 ㅎ사용하는 명ㄹ영문으로 테이블 변경하는 명령문은 사용할 필요없다. 

이런문제는 보기명령들 종류를 파악해야한다.

2.drop은 테이블에 포함된 레코드를 제거하는것이 아니고 테이블을 제거하는 며령문이다. 


19. DML- SELECT

형식 모두 암기해야한다.


SELECT Predicate [테이블명]속성명1,[테이블명]속성명2...    //이렇게 속성명할때 하나하나

FROM [테이블명], 테이블명2...

WHERE  조건

GROUP BY 속성명1, 속성명2...

HAVING 조건

ORDER BY 속성명[ASC| DESC]


Predicate 옵션

DISTINCT: 중복된튜플이 있으면 그중 첫 번째 한개만 검색하는 

DISTINCTROW: 중복된 튜플을 제거하고 ,  한 만 검색하지만, 속성이 아닌 튜플 전체를 대상으로 함.


조건연산자 ,, LIKE: 대표문자(*%,  ?_, #  같은 것들이용해 문자 패턴이 일치하는 튜플만 검색함. WHERE 이름 LIKE "김%";  >> 김씨인사람 튜플 검색함.


GROUP BY절

COUNT(속성명): 그룹별 튜플 수를 구하는 함수

MAX(속성명): 최대값을 구하는 함수

MIN

SUM(속성명): 그룹 합계 구함

AVG


HAVING: 그룹에 대한 조건을 지정함.

ORDER BY: 특정속성을 기준으로  검색할 때 사용, 

따라하기 103

 4

1 `

 `3

2

 3

 3

3. GROUO BY 절에  의해 선택된 그룹의 탐색조건은 HAVING 

6. 정렬은 ORDER BY   속성명 ASC 하거나 DSCE 이다 

통째로 같이 쓴다 기억하쇼 


20.DML-INSERT, DELETE UPDATE  


삽입문 

 INSERT INTO 테이블명(속성명,..)

VALUES(데이터1, 데이터2)

예) INSERT INTO 사원(이름,부서)  VALUES('가나다','인터넷')


DELETE

WHERE 절을 생략하면,  모든레코드가 사제된다.

레코드가 삭제되더라도 테이블구조는 남아 있기 때문에,DROP은 다삭제.


UPDATE 갱신문 이다.

UPDATE 사원

SET 주소 = '청룡동'

WHERE 이름 ='김길동'

따라잡   기108


21.내장 SQL

응용프로그램 내에 데이터 베이스에서 사용하는 데이터 를 정의하거나 질의하는 SQL문장을 내포하여 프로그램이 실행 될 때 함께 실행되도록 호스트 프로그램언어로 만든 프로그램에 삽입된 SQL이다

특징

1.내장 SQL 실행문은 호스트 언어에서 실행문이 나타날 수 잇는곳이면 프로그램어디서나 이용할 수 있다.

2.일반 SQL문은 수행 결과로 여러개의 튜플을 반환하는 반면에 이거는 하나다

3.일반병수를 사용하여 저장할 수잇다

4.호스트 변수와 데이터베이스 필드의 이름은 같아ㅏ도 된다

5.내장 SQL문에 사용된 호스트 변수의 데이터 타입은 이에 대응하는 데이어베이스 타입과 일치해야한다,


C/C++ 에서 내장 SQL문은 $와 세미콜론; 문자 사이에 기술 한다.

비쥬얼베이직에서는  EXEC SQL을 기술한다.

변수는 변수앞에 : 을 붙인다.


커서 : 내장SQL문의 수행결과로 반환 될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념이다.

커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있다.

커서를 사용하여 질의 결과로 반환 될 수이 잇는 튜플들을 한번에 하나 식차레로  처리 할수있다.

DECLARE:  커서를 정의하는 등 커서에 관련된 선언

OPEN: 질의결과의 첫 번재 튜플을 포인트하도록 설정하는 명령

FETCH: 질의 결과의 튜플들 중 현재의 다음 튜플로 커서를 이동시키는 명령

CLOSE: 질의 수행결과에 대한 처리 종료시 커서를 닫기 위해 사용하는 명령


기출따라잡기111


22.뷰

뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본테이블로부터 유도된 이름을 가지는 가상 테이블이다.

저장장치 내에 물리적으로 존재 하지 않지만 잇는 것처럼 사용자에게 간주

보정작업,처리과정시험, 등 임시적인 작업을 위한 용도로 활용된다,


특징

1.뷰튼 기본테이블로 부터 유도된 테이블 이기 땜ㄴ에 기본테이블과 같은 형태 구조를 사용하며, 조작도 기본테이블과 거의 같다.

2.뷰는  물리적으로 구현되어 잇지 않다,

3.데이터의 논리적 독립성을 제공할 수있다.

4.필요한 데이터만 뷰로 정의해서 처리하기때문에 관리가 용이

5.뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수있다.


장점: 논리적 데이터 독립성을 제공한다,

동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 준다


단점: 독립적인 인덱스를 가질 수 없다

ALTER VIEW문을 사용할 수없다., 즉 뷰의 정의를 바굴수 없다


뷰정의문

CREATE VIEW 부산고객(성명, 번호)

AS SELECT  성명, 번호

FROM 고객

WHERE 주소 ='부산시';


뷰삭제문

DROP VIEW  부산고객 RESTRICT .> 참조하는것도 같이 삭제하는것

CASCATDE ; 뷰를 참조하는 다른 뷰나 제약조건가지 모두삭제된단다,

따라잡기113

7틀림: 하나의 뷰를 삭제하면  그 뷰를 기초로 정의된 다른 뷰도 자동삭제된다.


23.시스템카탈로그

시스템카탈로그의 의미: 시스템 그자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다

시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템테이블이다. 

데이터 정의어의 결과로 구성되는 기본 테이블, 뷰 , 인덱스 , 패키지 ,접근 권한등의 데이터 베이스 구조 및 통계정보를 저장한다.

카탈로그들이 생성되면 자료 사전에 저장되므로 좁은의미의 자료사전이다

카탈로그에 저장된 정보를 메타 데이터라고 한다.


카탈로그 의 특징

카탈로그 자체도 시스템 테이블로 구성되어잇어 일반 사용자들도 SQL을 이용하여 검색해 볼수 있다

데이터베이스 시스템에 따라 상이한 구조를 갖는다.

DBMS가 스스로 생성하고 유지한다,

카탈로그의갱신: 사용자가 SQL문을 실행 시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신한다.

분산 시스템에서의 카탈로그: 보통의 릴레이션, 인덱스. 사용자, 등의 정보를 포함할 분 아니라 위치 투명성 및 중복 투명성을 제고하기 위해 필요한 모든 젱 정보를 가져야 한다.


시스템 카탈로그의 종류 

SYSTABLES

SYSCOLUMNS

SYSINDEX

SYSVIEW

SYSTABAUTH

STSCOLAUTH

SYSDEPEND

SYSUSERS

 이런것들이 있다



카탈로그/데이터 사전을 참조하기 위한 DBMS내의 모듈시스템

1.데이터 정의어 번역기 :DDL을 메타 데이터를 갖는 테이블로 변환하여 데이터 사전에 저장 시킨다.

2.데이터 조작어 번역기: 응용 프로그램에 삽입된 DML문을 주 언어로 표현한 프로시저 호출로 변환하여 질의 처리기와 상호 통신한다 .

3. 데이터 디렉털리 : 데이터 사전에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리 유지하는 시스템이다.

 - 시스템 ㅏ탈로그는 사용자와 시스템 모두 접근 할 수 있지만 데이터 디렉터리는 시스템만 접근 할  수있다.

질의 최적화기: 사용자의 요구를 효율적인 형태로 변환하고 질의를 처리하는 전략을 모색함

트랜잭션 처리기: 복수 사용자 환경에서 평행으로 동시에 일어나는 트랜잭션 문제를 해결하여, 각각 사용자가 데이터베이스 자원을 배타적으로 이요알 수 잇도록한다 .

따라히기117


예상문제은행118

 1

 2 4

 5

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

 1

`2 

`1 

`2 

`1 

`4 

 2`

`2 

`3 

`3 

`1 

 1

 21

22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

 1

 `2

 1`

``3 

 1

 2

 41

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

60 

 `4

`1 

`3 

4` 

``4 

 1

`4 

 4

61 

62 

63 

64 

65 

66 

67 

68 

69 

70 

71 

72 

73 

74 

75 

76 

77 

78 

79 

80 

 1

 1

`2 

4

 1

 81

82 

83 

84 

85 

86 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4` 

     

 

 

 

 

 

 

 

 

 

 

 3

               

틀린문제풀이

2. 관계형 데이터베이스 관련 용어중 행은 튜플 이라고 불리고 , 열은 속성이라고 불린다. row가 가로이고,  column이 세로이다.  그리고 테이블은 릴레이션이다

컬럼 열 세로 를 컬럼 열쇠로 외워도됨

6.슈퍼키에대해서 더공부해야함.

 릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키가 맞음. 

8. 외래키의 속성들은 참조하려는 테이블의 기본키와 도메인이 동일 해야한다!

 하지만 외래키의 속성명과 참조하려는 테이블의 기본키의 속성명은 동일 할필요가 없다. 당연한건데 헷갈렷다 .기본키랑 외래키이름이 같으면안되지 .

10. 관계대수와 관계해석으 차이를 알아야하고

관계대수의 관계연산자 들을 모른다. Select시그마6, Project파이ㅠ, Join나비낵타이, Division 나누기 .

11.두릴레이션의 카디널리티로 표현한것알아야함

r,s의교집합 = MIN{R,S}

R,S의 합집합 = R+S

R 차집합S = R

R,S의카티션프로덕트 = R X S

13. 관계대수는 절차적이고

관계해석은 비절차적

14. 외연의 의미, 사물의 전범위

18. atomic attribute 원자적 속성이다 외워라 ..

26. bcnf설명중  복합속성을 허용한다.

   완전함수적 종속성개념에 기반을두지 않았다.

   모든 결정자가 후보키에 기반을 두었다.

32 sql에서 사용하는 테이블 종류

기본테이블: 독자적으로 존재함 이름가짐

뷰테이블: 독자적으로 존재못함, 유도된이름가지는 가상테이블

가상테이블: 뷰테이블

임시테이블 질의문 처리결과로 만들어지는테이블, 이름 x

35. 스키마 정의할 때는 define이 아니고 create 임..

39. 일반적으로 테이블 생성 명령어에 스키마를 생성하지 않으면 현재명령어가 실행되는환경의 스키마가 적용된다.

43. 동일 인덱스값을 갖는 튜플들은 그룹으로 묶을때 사용하는 명령어절은

cluster  이다.

51. insert  into 이다 into 가같이온다

55.그룹화 속성의 명시할때는 group by를 사용한다 ,

60. update  set 은 set 따라온다.

insert into

delete from 

69.. view 도  define이아니고 create로 정의한다.

75. 스키마를 정의하는 언어는 ddl이다 .. 데이터사전에 저장된다

77.시스템카탈로그는  시스템의 사용자들에관한 정보도 포함한다

79.

85. 카탈로그에 저장된 정보들을 메타데이터라고한다.  




4.데이터베이스 고급기능


24. 트랜잭션의 개념


정의

1.트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 연산들을 의미한다.

2. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 이다.

3. 사용자가 시스템에 대한 서비스요구시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위이다.


특성 .  데이터의 무결성을 보장하기위해 dbms 트랜잭션이 가져야 할 특성

1. Atomicity 원자성

 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료 되던지 아니면 전혀 반영되 지 않도록 롤백 복구해야한다,

트랜잭션 내의 모든 명령은 반드시 수행되어야하며, 하나라도 오류가 나면 전부 취소가 되어야한다

2. consistency 일관성

트랜잭션이 그 실행을 성공적으로 완료하면, 언제나 일관성 있는 데이터베이스 상태로 변환한다.

시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 수행후 완료 상태가 같아야 한다.

3. isolation 독립성, 격리성, 순차성

 둘이상의 트랜잭션이  동시에 병행 실행되는 경우  어느 하나의 트랜잭션이 실행중에 끼어 들수 없다.

4. Durability 영속성, 지속성

성공적으로 오나료된 트랜잭션의 결과는 시스템이고장나더라도 영구적으로 반영되어야 한다


Commit , Rollback 연산

Commit연산 은  한개의 작업이 성공적으로 끝났고 데이터 베이스가 다시 일관된 상태에 있을때 이 트랜잭션이 행한 갱신 연산이 완료 된 것을 트랜잭션 관리자에게 알려주는 연산이다.


Rollback은 비정상적으로 종료되어 일관성을 해쳤을때 , 일부가 정상처리되도  원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소하는 연산이다.

재시작하거나 폐기해서 돌린다.


트랜잭션의 상태 

1.Active 활동: 트랜잭션이 실행중인 상태

2.실패Fail:  트랜잭션 실행에 오류가 발생하여 중단된 상태

3.철회Aborted: 트랜잭션이 비정상적으로 종료되어   rollback연산을 한 상태

4.부분완료 Partially Committed  : 트랜잭션이 마지막 연산까지 실행했지만 ,  commit연산 실행되기 직전의 상태

5. 완료(Commit):  트랜잭션이 성공적으로 종료되어 commit연산 실행후 상태


따라잡기130

 1

10 

11 

12 

13 

4


4.분리성도 원자성에 포함된다고 볼수 있기 때문에 

분리성과 원자성둘중 헷갈린다면 원자성이 맞다.

9. 취소하고 이전의 상태로 돌려서 문제강 ㅓㅄ게하는것은 원자성이다 

원자성은 전부처리하던지 전부 안하던지 라는 특성이다.


25. 회복

회복의정의 회복이란 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터 베이스가 손상되엇을때,  손상되기 이전의 정상상태로 복구하는 작업이다.


장애의유형;

-트랜잭션장애: 입력데이터 오류, 시스템 자원요구의 과다 로 프로그램중지

-시스템장애: 데이터베이스에 손상을 입히지는 않으나 하드웨어 오동작, 소프트웨어의 손상, 교착상태등에 의해 모든 트랜잭션의 연속적인 수행에 장애를 주는 현상

-미디어 장애: 저장장치인 디스크 블록의 손상이나 디스크 헤드의 충돌등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상된 상태


회복관리기(recovery management)

dbms의 구성요소이다

트랜잭션 실행이 성공적으로 완료되지 못하면, 트랜잭션이 데이터베이스에 생성했던 모든 변화를 undo하고 트랜잭션 수행 이전의dㅝㄴ래상태로 복구하는 역할을 담당한다.

메모리 덤프, 로그 를 이용하여 회복한다.

덤프: 주기적으로 데이터베이스전체를 복사해두는 것

로그 : 갱신되기 전후의 내용을 기록하는 별도의 파일 =저널. journal


회복기법

연기갱신기법 : 트랜잭션이 성공적으로 완료될때까지 데이터베이스에대한 실질적인 갱신을 연기하는 방법이다.

redo작업만 가능하다


즉각생신 기법(immediate update): 트랜잭션이 부분완료 전이라도 즉각 실제 데이터베이스에 반영하는 방법이다.

redo와 undo 모두 가능


그림자 페이지 대체기법

갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여, 각페이지마다 복사본인 그림자 페이지로 별도 보관해 놓고 실제 페이지를 대상으로 트랜잭션에 의한 갱신 작업을 하다가 자아애가 발생하여 트랜잭션작업을 롤백 시킬 때 갱신된 이후의 실제 페이지 부분에 그림자 페이지를 대체하여 회복하는 기법이다.


검사점 기법

특정단계에서 재실행할 수 있도록  검사점을 로그에 보관해놓고 전체를 철회하지 않고 검사점부터 회복작업을하여 회복시간을 절약하는 방법.

따라잡기


26. 병행제어 concurrency control

다중프로그램의 이점을 활용하여 여려개의 트랜잭션을 수행할때 동시에 실행되는 트랜잭션들이 일관성을 파괴하지않도록 제어하는 것이다.

목적: 1. 데이터베이스의 공유를 최대화한다,

2.시스템의 활용도를 최대화한다

3. 데이터베이스의 일관성을 유지한다,

4. 사용자에 대한 응답시간을 최소화 한다.


병행수행 문제점

1.갱신분실(lost update): 두 개이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상

2.비완료 의존성(uncommitted Dependency): 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상

임시 갱신이라고도 한다

3.모순성(inconsistency): 두 개의 트랜잭션이 병행 수행될 때 원치 않는 자료를ㄹ 이용함으로써 발생하는 문제. 불일치 분석이라고도한다

4.연쇄복귀(Cascading rollback): 병행수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 롤백 하는 경우 다른 트랜잭션도 함께 롤백되는 현상


병행제어 기법의 종류

1.로킹(LOCKING)

잠금을 요청해서 허락되어야만 접근이 되도록하는거

로킹단위는 한꺼번에 로킹할 수있는 객체의 크기

로킹단위가 크면 로크수가 작아 고나리하기가 쉽지만 병행성 수준이 낮아진다.


로킹의 종류

: 공유로크, 배타로크, 의도로크, 의도공유로크, 배타의도로크 ㅡ, 공유의도독점로크


이단계로킹규약: 질렬성을 보장하는 대표적인 로킹규약이다,

 새로운 LOCK은 수행할 수있지만 UNLOCK은 수행 할 수없는 확장단계와  새로운 UNLOCK은 수행할 수 있지만 LOCK은 수행 할 수 없는 축소 단계가 있다,

교착상태를 예방하지 못한다,


2. 타임스태프 순서(TIME stamp ordering)

직렬성 순서를 결정하기 위해서 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법이다

트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표를 부여하여 부여된 시간에 따라 트랜잭션 수행하는기법이며 

교착상태가 발생하지 않는다


3. 최적병행수행( 검증기법, 확인기법, 낙관적기법)

판독 전용(read only)일경우 트랜잭션간의 충돌률이 낮아서 사용하지않고 실행되어도 이 중 많은 트랜잭션은 시스템의 상태를 일관성있게 유지한다는 점을 이용한 기법이다/


4. 다중 버전기법

-타입스태프의 개념을 이요하는 기법으로, 다중버전타임스태프기법이라고도한다

타임스태프는 데이터들이 이용될때 시간을 시간표로 관리하지만 다중버전기법은 갱신 될때마다 버전을 부여해 관리한다.

따라하기136

 2


1.제어 없이 트랜잭션들이 데이터베이스를 동시 접근하도록 허용할경우  일어나는는 문제들은 , 갱신분실, 무순성, 연쇄복귀 들이이 있지만

교착상태는 동시접근과 상관없다.

4, 로킹방법으로  교착상태가 발생한다.

7,  순서를 미리정하는 방법이 타임스태프기법이다.


27.무결성 Integrity 

데이터베이스에 저장된 데이터 값과 그것이 표현한 현실세계의 실제값이 일치하는 정확성을 의미한다.


무결성 제약조건: 데이터베이스에 들어있는 데이터의 정확성 보장하기 위해 부정확한 자료가 데이터 베이스 내에 저장되는것을 방지하기 위한 제약 조건을 말한다.


유지하는 방법: 데이터 갱신 

 여러 검증단계를 거쳐 갱신처리를한다,

-규정 이름: 무결성 규정을 참조할 때 사용하는 식별자

-트리거 조건: 트랜잭션의 접근 유형 및 데이터 검사할 시기 명시

-프레디킷: 무결성을 위한 검사조건

-위반 조치: 검사 결과 무결성 위반이 발견되었을 때 처리할 조치


무결성의 종류

-널 무결성 : 특정 속성이 null이 되지 못하도록함

- 고유 무결성: 특정 속성에 대해서 각 튜플이 갖는 값들이 서로 달라야 한다는 규정

- 참조 무결성: 외래키값은  null이거나 참조 릴레이션의 기본키 값과 동일 해야한다는 규정

-도메인 무결성:  도메인안에 속성의 값이 속해야함

- 키 무결성이 하나의 테이블에는 적도오 하나의 키가 존재해야 한다는 규정

-관계무결성: 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적저성 여부를 지정한 규정

-개체 무결성: 기본 테이블의 ㄱ기본키를 구성하는 어떤 속성도 null 값이나 중복값을 가질 수 없다는 규정

따라잡기138


4.  속성의 도메인이 속 해야하는데 단어만 바꿔서 속성을  튜플로 바꿈 

단어하나만 바꾸는 낚시도 조심해야함,


28.보안

데이터베이스 보안이란 데이터베이스의 일부분 또는 전체 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술이다.


보안과 무결성의 차이!

무결성은 권한이 있는 사용자로 부터 데이터베이스를 보호하는 것이고,

보안은 권한이 없는 사용자로 부터 데이터베이스를 보호하는 것이다,

보안은 사용자들이 사용하고 싶을때 언제든지 사용할 수 있도록 보장하는 것이고 무결성은 정확하게 사용할 수 있도록 보장하는 것이다.


암호화 기법

과정 평문-> 암호화알고리즘-> 암호문->해독자->복호화알고리즘(복호키) -> 평문

개인키 암호 방식(private key encryption) = 비밀키 암호 방식

암호키가  복호키가 같은 방식이다.  단일키 암호화 방식이라고도 한다

!종류: 전위 기법, 대체 기법, 대수 기법, 합성기법(DES,LUGIFER)

장점: 암호화 복호화 속도가 빠르고 , 알고리즘이 단순하고 파일크기가 작다

단점: 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많아진다,


공개키 암호 방식(PUBLIC key encryption) = 공중키!

암호키와 복호키가 다른다.   그래서 비대칭 암호 방식이라고도 한다

종류 : RSA(Rivest Shamir Adleman)

장점: 키의 분배가 용이하고, 관리해야할 키의 갯수가 적다

단점: 암호화 , 복호화 속도가 느리고, 알고리즘이 복잡하고, 파일의 크기가 커진다


권한 부여기법

뷰 기법: 뷰에대한 권한을 명시하는 기법


GRANT, REVOKE 기법: DBA가 하는 거임


사용자 등급의 종류

DBA: 데이터베이스 관리자

RESOURCE: 데이터베이스 및 테이블 생성 가능자

CONNECT: 단순 사용자


권한종류

WITH GRANT OPTION: 부여받은 권한을ㄹ 다른사용자에게 다시부여하는 권한을 줌

GRANT OPTION FOR: 다른사용자에게 권한을 부여할 수 있는 권한을 취소한다

CASCADE: 권한 해제시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 해제한다,

EX) REVOKE GRANT OPTION FOR UPDATE ON 고객  FROM JULIA;

JULIA의 UPDATE 권한을 해제하는 것이 아니고  부여하는 UPDATE 권한을 해제함.


따라ㅈ잡기141

 1`

1. 키의 종류를 알아야함 공중키와,  개인키  다른 방법으로 말할 수 있으ㅡㅁ.

DES가  64,56비트인 개인키고

RSA가  공개키방식이다.


29. 분산 데이터베이스

구성요소

분산처리기:  자체적으로 능력을 가짐, 분산되어있는 컴퓨터 시스템

분산 데이터베이스: 

통신 네트워크:


분산 데이터베이스 설계시 고려사항:

-작업부하의 노드별 분산 정책

-지역의 자치성 보장 정책

-데이터의 일관성 정책

-사이트나 회선이 고장으로 부터의 회복 가능

-통신 네트워크를 통한 원격 접근 가능


분산데이터베이스의 목표

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

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

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

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

위치,중복,병행,장애 4가지  중복을 복제라고하기도한다..


-분산데이터베이스 장점

지역 자치성이 높다

자료의 공유성

분산 제어

시스템 성능 향상

점진적 시스템용량확장이 용이


-분산데이터베이스의 단점

DBMS가 수행할 기능이 복잡하다

데이터베이스 설계가 어렵다

소프트웨어 개발 비용이 증가

처리 비용 증가

잠재적 오류가 ㅈㅇ가


*미들웨어 Middle Ware

분산 환경에서 구성원들을 연결하고 구성원들 간의 차이를 극복하도록 범용으로 개발된 솦트웨어

종류: NOS(Network Operationg System)

데이터베이스 미들웨어 ODBC

분산 객체 미드웰어 : CORBA, DCOM


따라잡기144

1. 중복을 복제라고 하기도 한다. 

 

예상문제은행147  13개틀림/  35/48   =72.9점

 1

10 

 4

3` 

 4

1

 11

12 

13 

14 

15 

16 

17 

18 

19 

20 

 3

`3 

 3

 21

22 

23 

24 

25 

26 

27 

28 

29 

30 

 3

`3 

`2 

`1 

2 `

3

 31

32 

33 

34 

35 

36 

373 

38 

39 

40 

 3`

1 `

23 

2 `

1 `

 4

1

 41

42 

43 

44 

45 

46 

47 

48 

49 

50 

 3

`1 

`4 

4` 

  

 3

  

7. atomicity 의특성의 ㅇ의미를 계속 까먹네 , 원자성은 전부다하던지 전부안하던지 라는 의미이다.  

 commit과 rollback명령을 통해 보장받는 트랜잭션으 특성중하나이다.

9. 로킹은 병행제어문제를 해결하기 위한 방법이다.

  무결성 - 기본키

  일관성 - 외래키

  보안 - 뷰!!!!   

16. 그림자페이징 기법은 장애가 발생하여 롤백할때  그림자에 복사하는것이다

실행시작할때 복사하는 것이아니다. 

로그도 이용하지 않는다.

데이터단편화 문제가 발생할 수있다.

18. 직렬화 가능성 : 병행수행된 각각의 트랜잭션 결과가 각 트랜잭션들을 독자적으로 수행ㅣ켰을 때의 결과와 같아지는 성질.

22. 2단계 로킹은  직렬성을 보장하는 것이지 교착상태가 일어난다

31. define permit  권한부여기법도 있다.

35.  분산데이터베이스 목적으로 보안성이 될수 없다.

36.  분산데이터베스하면 교착상태와 회복, 보안이 문제가 될수 있지만 

신뢰성은 높아진다. . 

39. 분산 데이터베이스 시스ㅡ템인것. SDD, R. 

통신미들웨어 :: NOS (네트워크 오퍼레이트 시스템)

데이터베이스 미들웨어: ODBC

분산객체 미들웨어 2가지: CORBA, DCOM


5. 자료규조의 기본

30. 자료 구조의 개념

자료구조는 프로그램에서 사용하기 ㅜ이한 자료를 기억장치의 공간 내에 저장하는 방법과 저장된 그룹내에 존재하는 자료 간의 관계, 처리 방법등을 분석하는 것을 말한다.


자료구조를 선형구조와 비선형 구조로 구분하는 것이 중요하다.

선형구조

1.리스트( 선형리스트. 연결리스트)

2. 스택

3. 큐

4.데크(Deque)


비선형구조

1. 트리

2. 그래프


이용하는 방법 4가지

Sort,  Search, 파일편성(자료를 매체에 저장할때의 구조), 인덱스( 특정 자료를 찾기위한 색인표)

따라잡기153

 2

2. 연결리스트는  순차적인 선형 구조가 아님, 자료를 연속된 공간이 아닌 임의의 공간에 저장시키고, 포인터를 따라 순차적으로 접근하기 때문에 선형구조이기는 하지만 순차적인 선형 구조가 아니다.


31.리스트

선형 리스트 (Linear List) = 연접 리스트(Dense List) = 축차구조(Sequential Striucture)

배열과 같이 연속되는 기억장소에 저장되는 리스트 = 배열


-특징

가장 간단한 자료구조 이다

접근 속도가 빠르다

중간에 자료를 삽입하기 위해서는 빈공간이 필요하다

기억장소 효율이 좋다

자료의 개수가 n개 일때  삽입시 평균이동은 (n+1)/2 이다. 삭제시 (n-1)/2이다

삽입삭제시 자료의 이동이 필요하기 때문에 작업이 번거롭다,


연결 리스트(Linked List)   -> 트리

자료들을 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨다,


-특징

노드의 삽입, 삭제 작업이 용이하다,

기억공간이 연속적으로 놓여 있지 않아도 저장이 가능하다.

링크(포인터) 부분이 필요하기 때문에 순차 리스트에 비해 기억공간 효율이 좋지 않다.

연결을 위한 포인터를 찾는 시간이 필요하기 때문에 접근 속도가 느리다.

중간 노드 연결이 끊어지면 그다음 노드를찾기 힘들다.

희소 행렬을 링크드 리스트로 표현하면 기억장소가 절약된다.

트리를 표현할 때 적합한 구조다


따라잡기 156


32.스 택

스택은 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조이다.

스택은 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출 LIFO 방식

PUSH  

POP: 자료의 삭제  pop up

TOP: 가장 마지막에 삽입된 자료가 기억된 위치를 가리키는 요소로

스택 포인터라고도한다 SP

Bottom: 스택의 가장 밑 바닥


오버플로우: 스택으로 할당받은 메모리 부분의 마지막 주소가 m번지라고 할때 탑 포인터 값이 m보다 커지면 스택의 모든 기억장소가 꽉채워져 있는 ㅏㅇ태이

므로 더이상 자료를 삽입할 수없기 때문에 오버플로우를 발생한다.


언더플로우:  탑 포인터가 주소 0 을가지고 있다면 스택에는 삭제할 자료가 없으므로 underflow를 발생시킨다,


스택의 응용분야

부 프로그램 호출시 복귀주소를ㄹ 저장할때

함수 호출의 순서 제어

인터럽트가 발생하여 복귀 주소를 저장할 때

후위 표기법으로 표현된 수식을 연산 할 때

0주소지정방식 명령어의 자료 저장소

재귀 프로그램의 순서 제어

컴파일러를 이용한 언어번역시


따라잡기158

11 

 

53


33.큐와 데크  queue and deque

큐: 선형 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료

FIFO 방식이다.

시작과 끝을 가리키는 포인터가 있다.


프런트 포인터 Front 포인터 : 시작 포인터.  삭제작업시 이용

리어 포인터  Rear 포인터 : 끝 포인터. 삽입 삭제시 이용


ㅇㅇ용분야: 운영체제의 작업 스케줄링에 사용한다.

    창구 업무나 택시 정거장처럼 순서를 기다리는 대기행렬의 처리에 사용한다.


데크(Deque)

삽입과 삭제가 리스트의 양 쪽 끝에서 모두 할 수있다

스택과 큐의 장점만 따서 구성한 것


양쪽에서 다되는데 한쪽만 막는방식 2가지 .

입력제한 데크 : Scroll

출력제한 데크 : Shelf


따라잡기161

 3



34.트리

정점 node와 선분 branch 를 이용하여 사이클을 이루지 않도록 구성한 graph의 특수한 형태이다.

가족의 계보, 연산 수식, 회사 조직 구조도. 히프 등을표현하기에 적합하다.


근노드 = 뿌리노드 

노드: 트리의 기본 요소로서  자료 항목과 다른 항목에 대한 가지를 합친 것

디그리: ㄱ각 노드에서 뻗어 나온 가지의 수

터미널 노드= 단말노드: 자식이 하나도 없는 노드, 즉 degree가 0인 노드

비단말 노드: 자식이 하나라도 있는 노드, 즉 Degree가  0 이 아닌 노드

조상 노드(Ancestors Node):  임의의 노드에서 뿌리노드 사이의 노드

형제노드

자식노드

부모 노드

깊이: depth: 트리에서 노드가 가질수 잇는 최대 레벨

숲: 여러개의 트리가 모여 있는 것

트리의 디그리: 노드들의 디그리중에서 가장 많은 것


따라작기 163

 3

`1 


2. 터미널노드는 단말 노드를 말한다. 

   트리의 차수 트리의 디그리를 구할때 뿌리부터 갯수를 새야한다.



35.이진트리

이진트리는  차수가 2이하인 노드로 구성된것


 최대 노드의 수는  레벨이 i 일때  2의  i-1승이다.


 단말노드의수 = 차수가2인 노드의 수 +1 이다


정이진 트리(full binary tree)  자식이 꽉찬 트리를 말함


 전이진트리(complete binary tree) :  노드의 갯수가 n개 일ㄸ/ㅐ 정이진 트리의 각 노드에 붙인 1~n의 일련번호와 1:1 대응되는 트리.

 중간에 빈 부분이 있으면 전이진 트리가 될 수 없다. 


사향 이진 트리(skewed binary tree) : 사향 이진 트리는  루트 노드로 부터 왼쪽 또는 오른쪽으로만 기울어진 트리, 즉 왼 쪽 또는ㄴ 오른쪽 자식이 없는 노들로만 구성된 트리


따라잡기 165

 2

틀림.

  널포인터,

 이진트리 의 의미  이진트리는  정이진트리를 말하는 것이아니다

leaf의 의미 : 단말노드임.  

2.  또 틀림  이진트리에서 차수가 2인거 샐때 뿌리노드를 안샛음

3.  나뭇잎 노드의 의미.  단말노드.

4. 널포인터는 아무것도 가리키지않는  포인터인데  

트리에서 연결리스트로 표현했을때  단말노드는 2개의 널포인터가 생기는것이다


36.이진트리의 운행법

3가지


Preorder 운행: root =>왼쪽 -> 오른쪽 순

  루트에서 시작해서 왼쪽으로 쭉가서 하나하나들림


Inorder 운형 : 왼쪽 => root => 오른쪽

    왼쪽말단부터  시작함  

postorder 운행: 왼쪽  > 오른쪽> root

  왼쪽말단 둘다하고  부모로 올라감  루트는 맨마지막


수식의 표기법

전위표기법 PreFix: 연산자 - 왼쪽 - 오른쪽             +ab

중위 표기법 InFix:  왼쪽- 연산자 - dㅗ른쪽            a+b

후위 표기법: postFix  왼쪽  오른쪽 연산자    


x = a/b*(c+d)+e 이거를 변환하기

preFiX >>  +*AB/(+CD)E    틀림  =X+*/AB+CDE 이게답

POSTFIX >>  AB/(CD+)*E+   틀림 [XAB/CD+*E+=  ] 이게답


POST를  딴걸로 바꾸기

ABC-/DEF+*+ 

IN>>  (ABC-/) +(DEF+*) >> (A/BC-)+(D*EF+)>> A/(B-C)+D*(E+F)

PRE >> +(ABC-/)(DEF+*)>> +(/A(-BC))(*D(-EF)


스레드 이진 트리

이진트리에서 발생하는  NuLL 링크를 트리운행에 필요한 다른 노드의 포인터로 사용하도록 고안한 트리이다

이중 연결 리스트로 표현할 때 임의의 노드에 대한 자식 노드가 없는 부분의 링크 포인터로  NIL Pointer를 기억 시키게된다.

- 왼쪽 링크포인터가 nil  이면 그 노드의 직전에 검사된 노드를 가리키는 포인터로 사용하고  오른 쪽링크포인터가 nil이면 그 노드의 직후에 검사될 노드를 가리키는 포인터로 사용한다.


따라잡기  169



37.그래프

 정점Vertex와 간선 Edge 의 두집합으로 이루어진다

통신망 Network, 교통망, 이항관계 , 연립방정식, 화학구조식 등에 응용됨

tree는 사이클이 없는 그래프


Loop: 한 정점에서 그 자신에 이어지는 간선 루프

차수Degree : 정점에 연결된 간선의수

방향그래프에서 차수: 

  - 진입차수(indegree): 한정점에서 도착하는 방향간선의수 

  - 진출차수(outdegree): 한 정점에서 출발하는 방향 간선의 수

 - 차수 = 진입차수+ 진출 차수


무방향에서 최대 간선의수 n(n-1)/2


경로 path

 경로길이: 경로상에 있는 간선의수

단순경로 : 한 경로상에 있는 모든 간선이 서로 다를 때의 경로, 즉 같은 간선을 두번 이상지나지 않는 경로

사이클cycle:  같은 정점에서 시작과 끝이 이루어지는 경로

최대 사이클: 사이클을 이루는 경로중  최대경로의 길이


연결 요소 Connected Component:  무방향 그랲에서의 최대 연결 서브 그래프

    무방향인거에서 최대연결되어있는거 말하는것같음

강력 연결요소 : 방향 그래프에서 두 정점 사이의 간선이 양방향으로 서로 강력하게 연결되어  ㅆㄴㄴ 요소 , 즉 두 정점사이에 방향사이클이 이루어지는 요소.


인접행렬(Adjacency Matrix): 이용한 그래프의 표현 방법

방향 그래프에서 방향간선이 있으면  1 , 없으면 0 

그러므로 대각선을 기준으로 대칭이다.


ㅌㄱ수그래프 

최소 비용 신장 트리(MST, Minimum-Cost Spanning Tree)

최소 비용 신장 트리는 가중치 가 가장 작은 간선들을 사이클을 이루지 않도록 연결 시켜 만든 그래프이다.

  가중치 작은 간선들만  걍이어서 노드 다연결시키면됨


간선작업 네트워크(AOE Network)

 간선 작업 네트워크는 프로젝트 해결을 위해 수행되는 작업 순서를 나타내는 방향 그래프 이다.

간선은  작업과 작업 시간을 나타내고, 정점이 공정 을 나타낸다.

임계 경로(critical Path): 최장길이 경로


따라하기 175

 3

틀림

1. 신장트리 ?: 간선들이 사이클을 이루지 않도록 연결시켜만든그래프이다.


38. 정렬의 개요


내부 정렬과 외부정렬

내부는 소량의 데이터에 대하여 주기억장치에 기억시켜서 정렬 하는거

외부는 대량의 데이터에 대하여 보조ㄱ장치에 기억시켜서 정렬하는 방식ㅇ로 대부분 병합정렬 방식


-내부정렬

선택법: 히프정렬

삽입법: 삽입 정렬, 쉘 정렬

교환법: 버블정렬, 선택정렬, 퀵 정렬

병합법(합병법): 2 way merge sort

분배법(분산법): 기수정렬 radix sort


-외부정렬

밸런스 병합정렬

캐스케이드 병합 정렬

폴리파즈 병합정렬

오실레이팅 병합 정렬

이거 헷갈리게  병합빼고 잘나옴. 


정렬시 고려사항

데이터의 양

초기 데이터의 배열상태

키 값들의 분포 상태

소요공간 및 작업 시간

사용  컴퓨터 시스템의 특성


따라잡기 176



39. 내부정렬

삽입정렬(insertion sort)

첫키와 두번째 비교 , 1,2키와 3번째와 비교, 123이랑 4키랑비교 이런시긍로함

평균:시간복잡도  n제곱

최악 : 같다.


쉘정렬(Shell Sort)

입력파일을 어던 매개변수의 값으로 서브파일을 구성하고 각 서브파일을 삽입정렬방식으로 배열하는 과정을 반복하는 정렬방시이다

평규수행시간은 n의 1.5 제곱이고

최악은 n제곱이다, 

입력 파일이 부분적으로 정렬되어 있는 경우에 유리한 방식이다.


선택정렬(Selecttion sort):  n개의 레코드 중에서 최소값을 찾아 첫 번째 레코드 

위치에 놓고 나머지 n-1개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식이다. 

평균과 최악  시간복잡도:  n제곱이다. 

정렬할것 처음것부터 찾고  그다음것찾는 방식이다. 


버블벙렬(bouble sort)

주어진 파일에서 인접한 두 개레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식이다. 

평균최악: n제곱

두개씩 바꾸는 정렬이다.


퀵정렬

레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가며서 정렬하는 방법으로 키를 기준으로 작은 값은 왼쪽에, 큰값에 오른쪽 서브파일로 분해해서 정렬하는 방식이고

기준값: 피봇 pivot

분할 , 정복(conquer): 부분집합의 원소들 중 피봇 보다 작은 원소들은 왼쪽 피봇보다 크면 오른쪽 

평균: n logn

최악 : n제곱


힙정렬(heap sort)

 전이진 트리를 이용한 정렬 방식이다

구성된 전 이진 트리를 힙트리로 ㅈ변환하여 정렬한다

평균최악:  nlogn이다

전이진트리로 구성해서,  밑에서부터 자식노드와 부모노드를 비교해서 큰값을 올림.


2-way 합병정렬( Merge Sort)

이미 정렬되어있는 두개의 파일을 한개의 파일로 합병하는 방식이다,

최악평균 ; nlogn이다

2개씩묶고  4개씩묶고 이런식으로 정렬함


기수정렬(Radix Sort)= Bucket Sort

기수정렬은 큐를 이용하여 자릿수별로 정렬하는 방식이다.

레코드의 키값을 분석하여 같은 수 또는 같은 문자끼리  그순서에 맞는 버킷에 분배하였다가 버킷의 순서대로 레코드를 꺼내어 정렬

시간복잡도 평균최악: dn이다.


따라잡기180

 1

4`` 

`2 

6틀림

전이진트리를 만들때 그냥 위세서부터 순서대로  레벨1 레벨2 끊으면됨

7.2way합병정렬 merge정렬은  이미 정렬된 각 쌍의 키들을 합병하여 하나의 정렬된 서브리스트 이다!



검색

선형검색(Linear Search)

순차적으로 검색하는 방식으로 처음부터한다.  순차검색


제어검색  control search

반드시 순서화된 파일이어야한다.  한번 비교한후 다음에 비교할 대상을 찾을때 기준으로 활용한다.

 - 이분검색 ( 이진검색)

  전체 파일을 두개의 서브파일로 분리해 가면서 키값을 검색하는 방식이며, 비교횟수를 거듭할 때마다 검색대상의 수가 절반으로 줄어 시간이 적게 걸린다. 

- 피보나치검색

  피보나치수열에 따라  가감산

- 보간검색(interpolation search)

 찾으려는 레코드가 있음직한 부분의 키를 택하여 검색

 선정 레코드번호는 찾으려는 키값- 최소키값 / 최대키값-최소키값  의 곱하기 레코드수다

  예측해야하므로 프로그래밍 불가

-블록검색

  파일을 구성하는 레코드들을 여러개의 블록으로 분할 하여 블록단ㅇ위는 순서화 시키고 블록내의 자료는 순서화와 관계없이 저장 시킨다.

인데스를 이용하여 찾고자하는 레코드가 어느 블록에 속하는지 먼저 검색후 그안에서 선형검색한다.

-이진 트리검색

 이진검색트리fㅗ ㄱ구성하여 검색하는 방식이다.

  루트랑비교해서 크면  오른쪽 작은면 왼쪽 이런식이다. 널일경우 레코드가없다


따라잡기184 

 2

틀림 

2. 

3. 이진검색은 자료가   정렬되어잇어야함.  짝수랑은 상관없다.



검색-해싱(Hashing)  = 키-주소 변환 방법이라고도 한다.

해싱은 hash Table 이라는 기억공간을 할당하고, 해시 함수를 이용하여 레코드 키에 대한  해쉬테이블 내의 home address를 계산한 후 주어진 레코드를 해당 기억 장소에 저장하거나 검색 작업을 수행하는 방식이다.

 해싱은 DAM(직접접근) 파일을 구성할때 사용하며, 접근 속도는 바르나 기억공간이 많이 요구된다.

 검색속도가 가장 빠르다.

삽입,, 삭제,.작업빈도가 많은 경우 유리하다. 


해시 테이블(hash table, 해시표)

레코드를 한개 이상 보관할 수있는 bucket 들로 구성된 기억공간으로 , 보조 기억장치에 구성할 수도있고  주기억장치에 구성할 수도 잇다.

Bucket : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기가 같은 주소에 포함될 수 잇는 레코드 수를 의미한다.

Slot: 한개의 레코드를 저장할 수 잇는 공간으로, n개의 슬롯이 모여 하나의 버킷을 형성한다.

Collision(출돌현상): 서로 다른 두 개이상의 레코드가 같은 주소를 갖는 현상

Synonym( 동의어): 충돌로 인해 같은 Home Address 를 갖는 레코드 들의 집합이다.

Overflow: 계산된 Home Address의 Bucket내에 저장할 기억공간이 없는 상태로

버킷을 구성하는 슬롯이 여러개 이때 Collision 은발생해도 오버플로우는 바생하지 않을 수있다.

하나의 주소=버킷> 슬롯


해싱 함수(Hashing Function)

-제산법: Division은 레코드 키를 해쉬표의 크기보다 큰 수 중에서 가장 작은 소수로 나눈 나머지를 홈 주소로 삼는 방식.


-제곱법Mid Square: 레코드 키값을 제곱한 후 그 중간 부분의 값을 홈 주소로 삼는 방식이다.


-폴딩법: 레코드 키값을 여러부분으로 나눈후 각 부분의 값을 더하거나  XOR배타적 논리합한 값을 홈 주소로 삼는 방식이다.

---Shift Folding: 각 부분의 값들을 왼쪽 또는 오른족 끝자리에 맞추어 계산

---Fold Boundary: 경계지점을 접엇을때 마주치는 자리 그대로 계산


-기수(radix)변환법: 키 숫자의 진수를 다른 진수로 변호나시켜 주소 크기를 초과한 높은 자리수는 절단하고, 이를 다시 주소에 맞게 조장하는 방법이다.


대수적 코딩법; 키 값을 이루고 있는 각 자리의 비트수를 한 다항식의 계수로 간주하고 이 다항식을 해시표의 크기에 의해 정의된 다항식으로 나누어 얻은 ㅇ나머지다항식의 계수를 홈주소로 삼는 방식이다.


계수 분석법(숫자분석법): 키 값을 이루는 숫자ㄷ의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 택해서 홈주소로 삼는 방식이다.


-무작위 법: 난수발생


Overflow 해결방법

1.개방주소법(open addressing): 선형 방법(linear method)라고도 하는 충돌이 발생햇을때 순차적으로 그 다음 빈 버킷을 찾아 저장하는 방법


2.폐쇄 주소법(close address): 오버플로우된 레코드들을 별도의 오버플로우 영역에 저장하고  Chain(pointer)로 홈버튼에 연결한다

  - Direct Chaining: 해쉬표 내의 빈자리에 오버플로우레코드를 저장한다,

  - Indirect Chaining: 해시표와는 별도의 기억공간에  overflow레코드를 보관한다.


3. 재해싱

충돌이 발생하면 새로운 해싱 함수로 새로운 홈주소를 구하는 방식이다.


따라잡기187

 3

4`` 

`3 


4. bucket을 구성하는 slot이 여러개 일대 충돌은 발생해도 오버플로우는 발생핮 않을 수 잇다.

4.1 버킷의 크기는  주소에포함될 수있는 레코드의 수이다. 레코드가 슬로인듯

5. folding법:xor , 여러부분나눠서 xor하는 연산 생각해

9. 서로 다른 두 개 이상의 레코드가 동일한 주소를 갖는 현상은 충돌이고

 그 집합이  synonym 동의어 이다. 심놈


42.인덱스 구조


-인덱스의 개념

 레코드를 빠르게 접근하기 위해서 구성하는것

데이터가 저장된 물리적 구조와 밀접한 고나계가 있다.

물리적 구조에 접근하는 방법을 제공한다

인덱스를 통해서 파일의 레코드에 대한 ㅇ접근을 빠르게 수행할 수 있다

삽입과 삭제가 빉번할 경우 인덱스 개수를 최소화해야함


-m-원 검색 트리 (m-way search tree)

한 노드가 최대 m-1개의 키와 m개의 서브tree를 갖도록 구성된것

키값의 일부분이 동일한 문자열이나 숫자로 구성된 자료를 표현하는ㄷ ㅔ 효율적

이진 검색 트리에 비해 트리가  낮아져 특정 노드의 검색시간이 감소된다

삽입 삭제시, 트리 균현을 유지하기 위하여 복잡한 연산이 필요해지는 단점


-B트리

인덱스를 구성하는 방법으로 가장 많이 사용되는 균현된 M원 검색트리이다.

루트와 단말을 제외한 모든 노드는   최소 M/2,  최대 M개의 서브트리를 갖는다. 즉 각 노드의 포인터는 적어도 반이상이 차 있어야한다.

루트는 단말이 아닌이상 적어도 두개의 가지가 잇다.

모든 단말은 같은 레벨에 있다.  밑이 일정하네.

단말노드가 아닌 노드의 키값 수는 그 노드의 서브트리 수보다 한개 적으며, 각 단말노드수는 최소 M/2-1개 최대M-1개의 키값들을 갖는다.

한 노드 안에 키값들은 오름차순을 유짛애한다.

루트부터 추가 삭제가 시작된다


- B+ 트리  

루트는 0,2 또는 M/2에서 M개 사이의 서브트리를 갖는다.


- 트라이(Trie)색인

 탐색을 위한 키 값을 직접 표현하지 않고 키를 구성하는 문자나 숫자 자체의 순서로 키 값을 구성하는 구조 이다.

 키 값이 문자열 도는 숫자일 경우 일련의 키값들에 댛 ㅐ 일부분이 같은 무자나 숫자로 구성되어잇을대 적합하다.

 가변 길이의 키값을 효과적으로 나타낼 수있다.

삽입 삭제시 노드의 분열과 병합이덦다.

트라이의 차수는 키 값을 표현하기 위해사용하는 문자의 수 radix에 의해 결정된다.

키 값의 분포를 미리 예측할 수 있다면 기억장소를 절약할 수 있다.

트라이의 크기는 나타내려고 하는 키 값의 기수와 키 필드 길이에 의해 결정된다 


따라잡기191

`4 

2` 

`2 

틀림

6.트라이 색인은 탐색을 위한 키값을 직접표현하지 않고, 키를 구성하는 문자나 숫자 자체의 순설로 키값을 구성하는 구조이다.

 탐색을 위해 키값을 직접 표현한다고하면 틀린 것

키값의 분포를 미리 예측할 수있다면 기억장소를 절약할수 있다.



43.파일편성


순차파일 sequential file 순서파일

입력되는 데이터들을 논리적인 순서에 다라 물리적 연속공간에 순차적으로 기록하는 방식 

- 급여관리 등   변동사항이 크지않고 기간별로 일괄처리하는 경우 적합  자기테이프

장점

- 기록 밀ㄷ도가 높아 기억공간ㅇㄴ 효율적으로 사용

- 매체변환이 쉬워 어떠한 매체도 적용ㅇ가능

- 레코드가 키순서대로 편성되어 취급이 용이

- 속도가 빠르다


단점

- 삽입 삭재하는 경우 파일 재구성을 위해 전첼ㄹ 복사ㅏ해야하므로 시간이 ㅏ많이 소요된다

- 데이터 검색시 처음부터 순파검색하므로 검색효율이 낮고, 응답시간이 ㄵ다


색인순차파일(indexed sequential file)

레코드들을 키 값 순으로 정렬시켜 기록하고 레코드의 키 항목만을 모은 색인을 구성하여 편성하는 방식이다.

 색일을 이용한 순차적인 접근 방법을 제공해서 ISAM(Index Sequential Acess Method) f라고한다 ,

-  색인이 가리키는 포인터 주소를 사용하여 직접 참조 할 수있다

자기 테이프에서는 사용할 수 없다, 일반적으로  자기디스크에 사용된다

구성; 기본구역, 색인구역, 오버플로 구역 3가지로 구성됨

1. 기본 구역(prime area): 실제 레코드를 기록하는 부분,  키값 순으로 저장된다


2.색인구역(index area): 기본 구역의 레코드들의 위치를 찾아가는 색인이 기록된곳으로 3가지로 또 나누어져잇다 정적인댁스이다 


 - 트랙 색인구역:최대 키 값과 주소가 기록되는 색인으로, 한 실링더당 하나씩 잇다 ,    처리할 레코드가 실제로 어느 트랙에 기록되어 있는지를 판별할수잇다

(레코드 중 최대 키값)


- 실린더색인구역(cylinder index area): 트랙 색인의 최대키 값과 해당 레코드가 기록된 실린더의 정보가 기록되는 색인으로 한파일당 하나씩

(트랙색인의 최대 키값)


-마스터 색인구역: 실린더 색인 구역의 정보가 많을 경우 그것을 일정한 크기의 블록으로 구성하는데이때 해당 레코드가 어느 실린더 구역에 기록되엇는지를 ㄱㅈ기록하는 색인이다 .


3.오버플로 구여기 기본 구역에 빈공간이 없어서 새로운 레ㄷ코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분이다,

-실린더 오버플로구역: 각 실린더마다 만들어지는 오버플로 구역, 실린더의 기본 구역에서 오버플로된 데이터를 기록한다

-독립 오버플로구역(independent overflow area): 실린더 오버플로 구역에 더이상 기록할 수없을ㄸ때 사용할수 잇는 예비 공간으로 별도로 만들어짐.


색인 순차 파일의 장점

-순차처리와 랜덤처리가 모두 가능하므로, 목적에따라 융통성있게 처리가능

- 효율적인 검색,  삽입 삭제갱신이 용이

- 레코드를 추가 삽입하는경우 전체 복사를 할 필용가 없다.


색인순차파일의 단점

- 색인구역과 오버플로 구역을 구성하기 위한 새로운 기억공간이 필요로하다.

- 오버플로 레코드가 많아지면  파일을 재편성해야함

- vㅏ일이 정렬되어있어야하므로 추가 삭제가 많으면 효율이 덜어짐

-접근시간이 편성파일보다 느림


VSAM 파일

virtual storage access method 동적인덱스이다.

-구성

제어구간(Control interval: 데이터 레코드가 저장되는 부분

제어 구역(control area): 몇 개의 제어구간을 모아 놓은 것

순차세트: 제어 구역에 대한 인덱스를 저장한 것

인덱스 세트(index set):  순차세트의 상위 인덱스

기본구역과 오버플로 구역을 구분하지 않는다.

ㄹ코드를 삭재하면 그공간을 재사용한다

가변 길이 레코드를 쉽게 수용할 수 있다.


직접파일(direct file)

파일을 구성하는 레코드들을 특정 순서없이 임의의 물리적 저장고간에 기록하는 것으로 랜덤파일  DAM파일이라고도한다


레코드에 특정 기준으로 키가 할당되며  해쉬함수를 이용하여 이키에대한 보조 기억장치의 물리적 상대 레코드 주소를 계산후 해당하는 주소에 레코드를 저장한다.

 레코드는 해시 함수에 의해 계산된 물리적 주소를 통해 접근할 수 있다.

임의 접근이 가능한 자기 디스크드럼을 사요한다.

-장점

직접 접근 기억장치의 물리적 주소를 통하여 파일이 각 레코드에 직접 접근 하거나 기록할 수 있으며, 접근 및 기록 순서에는 제약이 없다.

접근시간이 빠르고 레코드의 삽입 삭제 갱신이 용이하다

어떤래코드라도 평균 접근 시간 내에 검색이 가능하다.


단점

- 레코드의 주소 변환 과정이필요하며, 시간이 소요된다

- 기억공간의 효율이 낮다

- 기억공간의 물리적 구조에 대한 지식이 필요하고 , 프로그래밍이 복잡하다.

- 충돌이 발생할 수 있으므로 기억공간확보가 필요하다.


역파일(INVERTED FILE)

- 특정 필드를 여러개의 색인으로 만들어 항목별 특성에 맞게 작업 할 수 있도록 한파일로 다중 키 파일에 속한다. 여러개의 접근 방법을 지원함

- 하나 또는 몇 개의 색인값을 결합하여 레코드의 주소를 결정할 수 있다,

- 각 응용마다 적합한 색인을 별도로 구현할 수 있따,

- 데이터 파일에 접근하지 않아 질의 응답시간이 줄얻ㄹ고 , 처리가 비교적 쉽다.

- 질의를 만족하는 레코드 검색시 한번만 접근하면 된다.

-색인의 각 항목들의 길이가 가변적이다.


다중 리스트파일

- 다중키 파일의 한 종류로, 각 키에 대하여 색인을 만든 다음 각 데이터 레코드들 간에 다중 리스트를 구축하여 구성한 파일

-색인은 동일한 키 값을 갖는 레 데이터 레코드중 하나의 레코드에 대한 포인터만 을 갖고 후속데이터는 포인터로 추적하도록 구성

- 항목들의 길이가 고정적이므로 관리가 용이하며 , 수정 , 삭제 , 전체 검색이 효율적이다,


다중링 파일

- 같은 특성을 가진 레코드들을 일련의 포인터로 연결하여 구성한 것

- 같은 항목값을 가진 레코드들 처리에 효과적

- 기억장소 절약

- 레코드 형식이 달라도 가능


정리하면

순차파일:         :변동적고 기간별, 물리적공간에 순차적 기록, 기록밀도높다.

색인 순차파일:   기본,색인,오버플로구역, 순차랜덤처리 둘다 정렬해서기록

- 트랙색인구역: 레코드 중의 최대 키값과 주소 기록

- 실린더색인    : 각 트랙 색인의 최대키 값, 한파일당 한번

- 마스터 색인구역: 실린더색인 많을경우 블록으로구성하는 구역

VSAM 파일: 동적인덱스,  기본구역오버플로구역 구분하지않음.

직접파일 : 해시 함수이용, DAM, 자기 드럼,디스크

역 파일: 항목을 여러개의 색인으로 항목별 특성, 다중키파일

다중 리스트파일: 다중키 파일, 각 키에대하여 색인을 만든후 다중리스트구축

다중 링 파일: 같은 특성을 가진 레코드, 한꺼번에 처리하는데 효과


따라하기196

 4

3` 

`4 

1

2


틀림

3. ISAM은  트랙 인덱스 실런더 마스터 이느덱스로 구성된다,!!!

7.색인순차파일은 3개의 색인구역이랑 2개이 오버플로 구역이있다.

8.VSA 파일은 데이터영역과 오버플로 구역을 구분하지 않는다.

10. 색인순차파일은   색인 또는 오벞ㄹ로를 윟한공간이필요하고 오버플로레코드가 많아지면 재편성해야한다. 

11. 키와 보조기억장치사이 의 물리적 주소로바꾸는 사상함수잇는것은 직접파일이다.

12 직접접근 방식은 기억ㅇ간 효율이 안좋다.




예상문제은행198   56  27개틀림.   51점임 

 1

 5

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

 3`

3` 

`4 

 1

 3

`1 

 2

 21

22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

 1

 3

 3

`1 

 2

`2 

2` 

`2 

 1

 41

42 

43 

44 

45 

46 

47 

48 

49 

50 

51 

52 

53 

54 

55 

56 

57 

58 

59 

 

`3

`4 

`1 

`1 

`2 

`1 

 ``4

``4


   

 3

24 

    


16.전이진 정이진

17, 분할 원소

18. 쓰레드 2진트리

20. AVL 트리

23. PREFIX방식을 고치는거 

 =X-5+3*+/4256

 X =(-5+3*+/4256)

X= -5+3(( (4/2)+5)*6)

X = 5 - (3+ (( (4/2)+5)*6))

24. (A*(B-C))+(D/E)

51. X=ABC/^DE*+AC*-

          ((ABC/^) -(DE*+AC*))                          

         ((A^(B/C)) -(DE*+AC*))                          

         ((A^(B/C)) -((DE*+A)*C))                          

#          ((ABC/^DE*+) -(AC*))                          

          (((ABC/^)+(DE*)) -(AC*))                          

55.  -/*A+BCDE

1. -/*A(B+CDE)

2. ((/*A+BCD)-E)

2. (((*A+BC)/D)-E)

2. (A+B)*C/D-E)

3. (AB+)C*D/E-

4. (/*A+BCDE)-

51. 

틀림 정리!

1. 배열은 선형구조로써 연속적으로 저장되므로  Sequential Memory allocation가 가장 적합하다.

3. 분할과 정복(divide and conquer는  퀵정렬이다. 

  삽입정렬은 , 이미 순서화된 파일에 새로운하나의 레코드를 순서에 맞게 삽입시켜 정렬함

 버블 정렬:  인접한 두개를 비교

 힙정렬: 전 이진트리를 이용

5. 연결리스트에서 노드는  데이터부분과 링크부분으로 구성됨

7. 스택의 응용분야

 - 복귀주소를 저장할 때 

 - 인터럽트가 발생하여 복귀 주소를 저장할때 

 - 후위 표기법으로 표현된 산술 식을  연산할 때

 - 0주소 지정방식 명령어의 자료 저장소

- 재귀

 - 스풀은 아니다. 스프ㅜㄹ은 큐, 작업이 할당된 자료를 먼저 처리하는것

- 중위표기식의 후위 표기 변환, 함수 호출과 리턴

 - 이진트리의 중위 순회 

9. 스택 pop연산의 순서

  빈 상태인지 먼저 검사함,  

포인터가 가리키는 원소를 제거함

  스택포인터 감소

  수행결과가 빈자리이면  nil로 포인터를 바꿈

 11. Deque: 스택과 큐의 복합형태로 선형구조중 가장일반적인형태고, 

   스크롤과 셰프 두종류가잇다,  스콜은 입력제한데크, 셰프는 출력제한 데크

한방에 ㅚ워,  Deque Scroll Shelf

15. 문제가 이진트리의 레벨n에서 의 노드 최대수를물엇는데 

나는 대충보고 이진트리의 n의최대 갯수를생각함

 대입해서풀어보자  2승  n-1이다

16. 전이진트리는(complete 바이너리트리): 순서대로 들어온트리로 정이진이 되는트리이고 ,

  정이진트리는:  전체 꽉찬 ㅌ리말하는거

  사향이지느리(skewed ):  왼쪽이나 오른쪽으로 기울어진 트리말함

17. 퀵정렬은    임의의키로 분할해서 오른쪽 왼쪽나눌수있다. 

18, 쓰레드 2진트리는 닐포인터를 트리운행해사용한다

25 . 인오더와 프리오더운행이 결과가 같으려면 한쪽으로 츼우쳐진 사향이진트리어야한다.

28.  Radix Sort 기수정렬: 정렬할 데이터의 키워드를사용하여 정렬

    기억좡소가 충분할경우 최고 속도라고한다 라딕스 솔트 기수정렬  

29. 외부정렬: 정렬gㅏㄹ 데이터가 많아 모두 주기억장치에 올려질수 없는경우에 유리함. 

내부정렬: 정렬할 모든데이터를 주기억장치에 올려넣는방식

31. 컨트롤 키중심으로 좌우데ㅌ이터 교환: 퀵정렬이다

32. 문제보기보면  가운데에 제어키가 하나씩잇다 이런거를 퀵정렬이라고한다

33.  이분탐색의 특징,  데이터가 정렬되잇어야함

35. 제어검색에속하지 않는것을 골라라햇는데 피보나치골랏다 제어랑 솽관없는거같은데 제어란,  순서화 된파일이어야 검색할 수 잇는거이다. 선형검색= 순차검색의 반대라고 생각하면된다.  피보나치수열은 수열에 맞게 정렬되어잇어야하기 때문이다.  제어(이진=이분검색, 피보나치검색, 보간 검색, 블록검색, 이진 트리검색 등잇다.)

38.해싱기법이란, 해쉬 테이블이라는 기억공간을 할당하고, 해시함수를 사용하여 레코드 키에 대한 해쉬 테이블 내의 홈주소를계산한후 주어진 레코드를 해당기억장소에 저장하거나 작업을 수행하는방식이다.

damㅇ파일을 구성할ㄸ 해싱이 사용되며,  접근은 빠르나 기억공간이 많이 ㅇ요구된다. 검색 속도가 가장 빠르다.

39.충돌해결방법들 : 이중해싱은 충돌이 발생시 다른해싱함수를 사용하는것을 말함, 체이닝: 식별자가 삽입되는 버킷에 이미 다른 식별자들의 리스트가 존재하면 새로삽입된거는 맨마지막위칭 삽입함., 선형검색: 꽉찰시 가장 가까운 버킷에 삽입함.

40. 선형개방주소법

44.  inverted file = 역파일이다.

 인덱스와 함께 키가 같이 저장되는 구조= 인덱스만으로 레코드접근

46.  직접접그ㅡㄴ파일이 가장ㄷ좋은 경우. 동시에처리할때 직접접근이 좋다

47. 멀티리스트파일ㅈ이 장ㄷ단ㄴ점 장점: 인덱스의 길이가 고정되어있으며, 수정, 삭제 , 검색작업을 효율적으로 처리함.

3ㅏㄴ점: 인덱스만 가지고는  모든레코드를 접근할 수 없음

50. 임계경로란 시작점에서 가장 긴 종료점까지의 길이다.

51. 1.13-9-10-3  =35      2. 8-9-11-3=31   3. 13-11-10-14=48 4.7- 4 -9-11-3

 임계경로 135 라고하는데 

 135 =37

 145 =27

 235 =25

 35 = 22

  보니까  가능경우의 수 목적지 마다마다  최소의 경우로가야되서 4번으로 갈수 가업슨ㄷ듯

53. 파일조직방법중 선택하는데 영향을 주는것들은 1, 사용할 보조기억장치의 유형 2, 파일연산의 유형 , 3. 파일활동비율 , 4, 트랜잭션이나 검색에 응답시간이 영향을 미친다.

51. X= ABC/^DE*+AC*-

 PRE= [(A(BC/)^)+(D*E)] -[A*C]


55. -/*A+BCDE

 중위: -/*A(B+C)DE     {[A*(B+C)]/D}-E

 후위식: [{A(BC+)*}D/]-E



틀린문제

 27-8

 33-2

33-11 

 36-3

 38-5

 42-1

42-2 

42-3 

14 

18 

23 

24 

25 

34 

35 

38 

40 

 47-3

 47-7

47-11 

 57-3

57-4 

 66-4

66-5 

66-6 

 68-3

68-5

68-7

 13

17

18

23

24

25

29

31

33

 78-10

78-12 

 103-3

103-4 

 111-4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Data

Information

Turn around time

Datawarehouse

Integraged Data

Stored Data

Operational Data

Shared Data

Real-time Accessibility

continuous Evolution

concurrent sharing

content Reference

dbms

data base management system

Manipulation

Definition

Authority

Security

Control

Concurrency Control

desciption

specification

meta-data

Access

Back up

overhead

Recovery

redundancy can be reduced

consistency can be avoided

the data can be shared

security restrictions can be applied

maintain  유지 하다 


'Study > 정보처리기사 필기' 카테고리의 다른 글

전자계산기 구조[자료의 표현]2  (0) 2018.02.05
전자계산기 구조[논리회로]1  (0) 2018.02.02
AND

ARTICLE CATEGORY

분류 전체보기 (197)
C (0)
HTML (7)
C# (88)
Python (27)
IT (0)
Android (2)
Java (65)
Study (5)
JavaScript (1)
JSP (2)

RECENT ARTICLE

RECENT COMMENT

CALENDAR

«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

ARCHIVE

LINK