[정보처리기사_필기] 데이터 베이스 <2>
- Life Logs/Study Notes
- 2014. 2. 1. 10:10
■SQL(StructionQueryLanguage)
✔질의어(QueryLanguage)
-DBMS에서DB로부터데이터를뽑아내어보여주는툴,함수
✔DDL(정의어):DB생성,삭제
-Create:생성(정의),Table,Schema,Vier,Domain등을생성
-Alter:수정,(Add,Drop,Alter)옵션사용
-Drop:삭제,Cascade(참조된모든테이블삭제),Restrict(연결테이블이있으면취소)
✔DCL(제어어):권한,보안
-Commit:연산완료
-Rollback:연산취소
-Grant:권한수여
➤Grant권한ontable_nametouser_name(withgrantoption);
➤권한:All,Insert,Delete,Update,Select
➤(withgrantoption):사용자가받은권한을다른사용자에게부여
-Revoke:권한몰수
➤Revoke권한ontable_namefromuser_name(cascade);
➤(cascade):사용자가부여한권한도함께몰수
✔DML(조작어):데이터검색,입력,삭제
-Select:튜플선택
➤Select*(all)fromtable_name:중복튜플도그대로보여준다
➤Select*disinctfromtable_name:중복튜플은한번만보여준다
➤whereAttribute='a':속성값이a인것만보여준다
➤whereAttribute='김%':속성값이김으로시작하는것을보여준다.
➤whereAttribute='김__':속성값이김으로시작하고3글자인것을보여준다.
➤whereAtbbetween30and90=whereAtb>=30andAtb<=90
➤whereAttributeisnotnull:속성값이널이아닌것을보여준다.
➤GroupbyAttribute:속성값별로묶어서보여준다.
➤Having조건:Groupby의조건(count,avg,sum,max,min)
➤Orderby:정렬,Asc-오름차순,Desc-내림차순
-Insert(into):튜플삽입
➤Insertintotable_name(atb1,atb2,atb3......)values(a,b,c.....);
=테이블안에atb1에a,atb2에b,atb3에c를입력
-Delete(from):튜플삭제
➤Deletefromtable_namewhereAttribute='a'
=속성값이a인튜플을삭제
-Update(set):튜플수정
➤Updatetable_nameSetAttribute1='a'whereAttribute2='b';
=속성2가b인튜플의속성1을a로바꾼다
✔내장(삽입)SQL
-응용프로그램내에SQL문장이내포되어프로그램실행시함께수행
■시스템카탈로그와뷰
✔시스템카탈로그:데이터사전(MetaData)
-객체들에관한정보를포함하는파일시스템
-일반사용자들도SQL검색으로사용가능
-시스템카탈로그갱신은자동수행
-데이터디렉토리
➤데이터사전에수록된데이터를실제접근하는데필요한정보를관리
➤시스템만접근가능
-메타데이터:데이터를관리하기위한데이터(시스템카탈로그에저장된내용)
✔뷰(view)
-실제테이블에서만들어지는가상테이블
-삽입,갱신,삭제연산에는제약이따른다
-보안에용이하다.
✔트랜잭션
-데이터베이스응용프로그램에서수행되는연산의집합
-속성
➤원자성(atomicity):allornothing
➤일관성(consistency):트랜잭션실행시데이터베이스의일관성유지
➤독립성(isolation):independency(x)트랜잭션끼리영향받아선안된다
➤영속성(durability):트랜잭션수행후값이유지되어야한다.
■데이터베이스제어
✔보안
-전체또는부분적제어가가능
✔병행제어
-로킹:트랙잭션의독립성을유지시키는방법
■분산데이터베이스
✔장점:성능이향상,시간이단축
✔단점:보안이어렵다,복잡하다,비용증가,일관성유지가어렵다.
✔미들웨어:서로다른DBMS를연결
■자료구조
✔선형구조-리스트
-스택
-큐
-데크
✔비선형구조-트리
-그래프
✔선형구조
-리스트
➤선형리스트:연속적(배역)
>장점:저장효율이좋다,접근속도빠름
>단점:삽입과삭제가불리
➤연결리스트:비연속적(포인터)
>데이터와링크정보를가짐
>장점:삽입과삭제에용이,비연속적데이터
>단점:접근속도가느림
포인터정보를위한추가공간필요->저장효율
>종류:단순연결리스트
이중연결리스트
단순환영연결리스트
-스택
➤Top에서삽입과삭제가수행
➤Toppointer가현재의저장위치알려줌
➤PUSH:삽입명령
➤POP:삭제명령
➤OVERFLOW:스택의크기를Toppointer가넘어서는현상
➤용도
>인터럽트처리
>수식계산
>서브루틴복귀주소저장
-큐
➤한쪽(Front)에서는삽입,반대쪽(Rear)에서는출력되는질서구조
➤운영체제의작업스케줄링에사용
-데크
➤양쪽끝에서입출력이가능
➤Scroll:입력을한쪽끝으로제한
➤Shelf:출력을한쪽끝으로제한
✔비선형구조
-트리(비순환계층구조)
➤용어정리
>최상위노드:근노드(Rootnode)
>차수(Degree):특정노드에연결된자식노드의수
>트리의차수:트리의노드중가장큰차수
>깊이(Level):트리의최대레벨
>단노드(Terminalorleaf노드):하위노드가없는노드
➤운행법
>Preorder->Prefix:연산자가처음에위치Root->L->R
>Inorder->Infix:연산자가중간에위치L->Root->R
>Postorder->Postfix:연산자가마지막에위치L->R->Root
➤수식의표기법
>중위표기법:
>후위표기법:
=> =>
>전위표기법:
=> =>
➤종류
>이진트리:차수가2이하로구성(최대노스수=)
>B트리:한노드안에있는키값을오름차순으로유지->검색속도향상
-그래프(망형)
■정렬(Sort)
✔내부정렬(InternalSort)
-내부기억장치(주기억장치)에데이터저장
-속도빠르다,데이터양은적다
-종류
➤선택정렬:앞자리부터최소값을찾아결정해가는방식
➤버블정렬:인접한두키를비교한결과로정렬
➤삽입정렬:하나의데이터를앞에서부터비교하여자기자리를찾는다.
➤퀵정렬
✔외부정렬(ExternalSort)
-외부기억장치(보조기억장치)에데이터저장
-속도빠르다,데이터양은적다
-종류
➤오실리에이팅
➤폴리페이즈
➤밸런스드머지
➤캐스케이드
✔정렬알고리즘선택시고려사항
-작업시간
-기억공간의크기
-초기데이터배열상태
■검색
✔검색기법종류
-이진검색(Binarysearch)
➤자료가미리정렬되어있어야함
➤자료를2그룹으로나눠서찾아가는방식
-보간검색:추정하여검색
✔해싱
-연산으로주소를저장해놓는다->저장효율은안좋다,고속검색
-동일주소를갖는데이터(동의어(synonym))들의충돌현상(Collision)이일어난다
■파일조직기법
✔인덱스
-검색효율을위한보조데이터
✔파일편성종류
-순차파일:저장효율이좋다,속도는느리다,간단하다.
-직접파일:해싱함수를이용하여저장위치결정,저장효율이안좋다,속도빠르다
-인덱스순차파일
➤기본구역(Primedataarea)
➤색인구역(Indexarea)
>Master
>Cylinder
>Track
➤오버플로구역(Overflowarea)