
★특정 대상만 공부한다는 생각을 버릴것
파트1.알고리즘
단순 합/사이 정수합/가장 큰 또는 작은값/팩토리얼/반복구문 함수호출/재귀 함수호출
유클리드 호제법에 의한 최대공약수+결과추론[누산]
알고리즘의 이해,처리조건&표기형태와 변수 적용,대칭구조,변수를 쓴 이유추론
선택정렬:1번자리 리더/버블정렬:인접돌리기/삽입정렬:인접돌리기+Back/병합:일반
퀵정렬:?/이분검색
반드시 디버깅(>,<,==,>=,<=)
챕터7.알고리즘과 소프트웨어 개발
1.소프트웨어 생명주기
타당성 검토-계획 수립-요구수항 분석-SW 설계-SW구현-테스트-운용-유지보수
2.소프트웨어 관리
요구관리:고객의 요구를 정확하게 추출하고 이를 문서화하며 고객과 개발자가 상호 동의하는 과정에 대한 관리
형상관리:소프트웨어를 개발하는 전체 과정에서나 유지보수 과정 중에서 발생하는
각종 산출물들을 중심으로 시간 흐름에 따라 시스템 형상을 만들어 가면서
소프트웨어 버전을 체계적으로 관리
유지관리:소프트웨어가 개발되어 고객이 사용하는 과정 중에서 변경 사항이 발생할 경우
이를 수용하여 소프트웨어를 수정함으로써 고객이 소프트웨어를
지속적으로 잘 사용하도록 하는 소프트웨어 관리
품질관리:개발된 소프트웨어가 원래의 개발 목적에 부합하며 요구를 만족하는지 검증
3.소프트웨어 품질관리
기능성:요구기능 제공하는가?
사용성:인터페이스/사용하기에 어렵지 않는가?
신뢰성:크고 작은 오류가 발생하지 않는가?
유지보수성:업그레이드가 꾸준히 제공되는가?
이식성:시스템 환경르 바꾸어도 소프트웨어는 여전히 운용될 수 있는가?
효율성:반응시간/소비하는 컴퓨팅 자원이 효율적인가?
4.알고리즘의 효율성
공간 효율성:알고리즘을 실행하는 동안 알고리즘이 필요로 하는 메모리공간의 효율성
시간 효율성:알고리즘을 실행하여 종료하기까지 걸리는 시간의 효율성
실행 시간의 효율성[빅오 표기법]:어떤 알고리즘이 처리할 입력 값의 개수가 점차 커지면
커질수록 실행시간이 어떤 형태로 늘어나는지를 가지고 측정
ex)로그n n n*로그n n² 2ⁿ
5.소프트웨어 아키텍쳐:개발하려는 소프트웨어의 전체 골격에 대한 논리적 구조
6.MVC 구조(어플리케이션 개발 모델 유형1)
구현하려는 전체 어플리케이션을 Model,View,Control로 구분하여
사용자 인터페이스와 비즈니스 로직을 상호 분리하여 개발하는 구조
*인터페이스와 논리를 상호 독립적으로 구성요소를 변경할 수 있음
7.C/S 구조(어플리케이션 개발 모델 유형2)
서비스를 요구하는 클라이언트와 서비스를 제공하는 서버로 구성
8.다층 구조(어플리케이션 개발 모델 유형3)
클라이언트/서버 구조의 단점을 극복하기 위하여,클라이언트에 해당하는
최상위 계층과 서버에 해당하는 최하위 계층 사이에 비즈니스 로직을 전담하는
중간계층을 둠으로써 비즈니스 로직을 완전히 분리시켰다.
*중간계층은 데이터베이스 서버의 다단계 처리를 지원하거나,또 다른 어플리케이션 프로그램을 실행시켜주며,클라이언트의 다양한 요구에 대한 분산처리를 지원할 수 있다.
9.저장소 구조(어플리케이션 개발 모델 유형4)
소프트웨어 아키텍쳐가 다수의 서브 시스템들로 구성되어 있을떄,
특정한 서브시스템에 공유저장소를 두고 나머지 서브시스템들이
이곳을 통해 데이터를 공유하며 효율적으로 관리하고 서비스를 제공하는 구조
10.객체지향설계의 개념과 원리
객체-현실 세계에 독립적으로 존재하는 사물 또는 대상
속성-객체가 가지고 있는 특징이나 성질
클래스-같은 속성을 갖는 객체들의 집합
분류화-비슷한 객체들을 묶어내는 작업
캡슐화-정보은닉
추상화-객체가 어떤 기능을 수행할 것인지를 생각하여
중요하다고 판단하는 속성이나 연산만을 추출해내고 복잡한 내부는 감추는 작업
일반화-같은 속성을 가지고 있는 유사한 클래스들을 분류하여 새로운 클래스를 정의하는 작업
상위클래스&하위 클래스:일반화를 통하여 새로 생긴 클래스,일반화를 통하여 묶인 기존의 클래스들
상속:하위클래스들의 공통된 속성과 연산은 일반화를 통하여 상위클래스의 속성과 연산으로 표시
다형성:여러 클래스들이 공통으로 가지고 있는 동일한 이름의 연산이 각 클래스에 따라 다르게 동작
동적바인딩:실행시간에 하위클래스의 객체 타입에 따라서 하위 클래스의 적합한 동작이 자동으로정해짐
소프트웨어 디자인 패턴:소프트웨어를 설계할 때 특정상황에서
자주 사용하는 패턴 또는 반복되는 솔루션을 일정한 양식으로 형식화
리팩토링:소프트웨어의 수행 결과를 그대로 유지하면서도 소프트웨어를 구성하는
내부코드의 구조를 재조정하는 행위
11.SOLID 객체지향설계의 5대 원칙(로버트 마틴)
단일 책임 원식:하나의 클래스는 하나의 책임을 갖는다
개방 폐쇄 원칙:변경/소프트웨어의 각 요소는 확장에 열려있고 변경에는 닫혀 있어야 한다
리스코프 교환 법칙:상속은 다형성을 통하여 확정성을 극대화
인터페이스 분리 원칙:필요한 메스드만 인터페이스로 제공하고 사용하지 않는 메서드와는
연결 관계를 제공하지 말아야한다
의존관계 역전 원칙:구체적인 클래스에 의존하지 말고,추상화된 것에 의존하여 설계
12.소프트웨어 테스트기법
화이트박스 | 블랙박스 |
소스코드 기반 | 요구명세서 기반 |
단위 테스트 | 시스템 테스트 |
정적 분석과 동적 분석 | 요구사항 명세와 외부 인터페이스 |
구조적 기법과 루프테스트 | 동등 분할,경계 값 분석,경험기반오류예측, 원인과 결과 그래프 |
13.소프트웨어 검증과 확인
검증:개발 규격과 요구를 충족하는지를 입증
확인:사용자의 요구를 제대로 반영하였음을 입증
14.소프트웨어 3R
재공학:기존 소프트웨어의 데이터와 기능들을 변경하거나 계산하는 작업
역공학:현재 운영중인 소프트웨어를 분석하여 소프트웨어 생명 주기 앞 단계의 산출물을
최대한 추정하여 만들어내는 작업
재사용:소프트웨어 개발 지식을 표준화함으로써 이미 개발한 소프트웨어를
나중에 반복하여 다시 사용할 수 있도록 함
15.소프트웨어 개발 프로젝트 방법론
폭포수 방법론:처음부터 완벽하게 프로젝트 일정계획을 수립
애자일 방법론:고객중심으로 계획을 융통성 있게 변경
16.스크럼-소프트웨어 개발 프로젝트 방법론1
경험적 관리기법의 일종
제품 백로그,스크럼(개발팀),스프린트,스프린트 백로그,소멸 차트
17.XP-소프트웨어 개발 프로젝트 방법론2
최대한 단순하고 명확한 설계를 추구
객체.length
파트2.데이터베이스(페이지345)
챕터1.데이터베이스의 개요
섹션01.데이터베이스 개념
1.데이터베이스의 정의
특정 조직의 응용 시스템들이 공유하여 사용할 목적으로 통합,저장,관리,운영되는 데이터의 집합
Integrated Data:하나의 주제에 따라 중복을 최소화한 데이터의 집합
Stored Data:사용자나 응용 시스템이 필요시 언제든지 이용할 수 있도록 저장된 데이터의...
Shared Data:여러 사용자와 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합
Operational Data:중복을 최소화하고 여러 사람이 공유함에 있어 문제가 발생하지 않도록 관리를 필요로 하는 데이터로 이용가치가 있는 데이터의 집합
2.데이터베이스의 특징
계속적인 변화:항상 최신 정보를 유지할 수있도록 삽입,삭제,갱신
동시 공유:여러 사용자가 동시에 접근하여 이용
실시간 접근성:질의에 대한 실시간 처리 및 응답
내용에 의한 참조:데이터의 물리적 주소나 위치에 의하지않고 사용자가 요구하는 데이터 내용으로 검색
데이터 중복의 최소화:동일 데이터의 중복성을 최소화
3.데이터베이스의 구성요소
개체:사람이 생각하는 개념이나 정보 단위와 같은 현실 세계의 대상체
속성:데이터베이스를 구축하는 가장 작은 논리적 단위로 개체의 특성이나 혹은 상태 기술
관계:두 개 이상의 개체 사이 또는 속성 간의 상호 연관성
1:1 1:N N:M
*시스템 카탈로그
데이터베이스에 저장되어 있는테이블,인덱스,뷰,제약조건,사용자 등 개체들에 대한 정보와 정보들 간의 관계를 저장한 것
-데이터사전
-시스템 카탈로그에 저장된 데이터를 메타 데이터
섹션02.데이터베이스 관리 시스템
1.DBMS(DataBase Management System):사용자와 데이터베이스 간의 중계역할
2.DBMS의 구조
일반 사용자 응용프로그래머 데이터베이스 관리자
질의어 응용프로그램/DML 스키마/DDL
질의어처리기 DML 컴파일러 DDL컴파일러
트랜잭션 관리자 런타임 DB처리기
저장 데이터 관리자
데이터 사전 데이터베이스
3.DBMS의 필수 기능
정의 기능
저장될 데이터의 형태,구조 등 데이터베이스의 저장에 관한 여러 가지 사항을 정의하는 기능
조작 기능
데이터테이스의 자료를 사용자가 이용할 수 있도록 요구에 따라 검색,갱신,삽입,삭제등을 지원하는 기능
제어 기능
데이터의 정확성과 안정성 유지를 위한 관리 기능으로
데이터의 무결성 유지,보안,병행 수행 제어 등을 제공
*무결성:데이터베이스의 자료가 오류 없이 정확성과 안정성을 유지하기 위한 제약조건&성질
4.DBMS의 장점
데이터의 중복성과 종속성을 최소화/데이터의 일관성과 무결성 유지
많은 운영비,자료 처리 복잡
5.데이터베이스 언어
정의어 DDL:데이터베이스 구조를 정의,수정,삭제 등을 위해 사용되는 언어
CREATE,DROP,ALTER
조작어 DML:데이터베이스 내의 자료를 검색,삽입,갱신,삭제하기 위해 사용되는 언어
SELECT,INSERTMUPDATE,DELETE
제어어 DCL:데이터베이스의 데이터에 대해 무결성 유지,병행 수행 제어,보호와 관리를 위한..
COMMIT,ROLLBACK,GRANT,REVOKE
섹션03.데이터베이스 구조(스키마)
1.데이터베이스의 표현
논리적 구조:사용자 관점에서 본 구조를 나타내며 사용자가 이해하고 생각하는 것을 나타내는
물리적 구조:저장 장치 관점에서 본 구조를 나타내며 기계 처리에 맞는 형태
2.스키마:데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술⦁정의한 것
내부 스키마:물리적 저장 장치 관점에서 본 데이터베이스의 물리적 구조
개념 스키마:논리적관점에서 본 전체적인 데이터 구조
외부 스키마:전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리적 구조(=서브스키마)
3.데이터베이스 관리자
데이터베이스 시스템과 관련된 모든 자원에 대해 기획,통제를 하며,데이터베이스 언어를 통해 DBMS를 거쳐 데이터베이스 시스템의 전체적인 관리 운영에 책직음 지는 사람이나 집단
-데이터베이스 구소 요소를 결정,저장 구조와 접근 방법을 선정,스키마를 정의
응용 프로그래머:데이터베이스의 내용을 일반 사용자가 사용할 수 있도록 프로그램을 개발
일반 사용자:데이터베이스의 내용을 실제 사용하는 사람이나 집단
데이터 관리자:기업이나 조직 내에서 데이터 정의와 체계화,감독 및 보안 업무를 담당
-----------------------------------------------------------------------------
챕터2.데이터 모델링
섹션01.데이터베이스 설계
1.데이터베이스 설계:데이터베이스의 스키마를 정의하고,데이터베이스를 구현
요구 조건 분석-설계(개념적,논리적,물리적)-구현-운영 및 개선
개념적 설계:구축하고자 하는 데이터베이스를 개념적으로 표현(E-R 모델)
논리적 설계:개념적 설계에서 만들어진 구조를 논리적으로 구현 가능한 데이터 모델로 변환
물리적 설계:논리적 데이터베이스 구조를 실제 기계가 처리하기에 알맞도록
내부 저장 장치 구조와 접근 경로 등을 설계
데이터 아키텍쳐:기업의 데이터 측면에서 기업 시스템을 처음부터 끝까지
시스템의 본질인 데이터를 구조적⦁체계적으로 관리하고 설계하는 모든 과정
섹션02.개체-관계 모델
1.개체-관계 모델(E-R Model)
데이터베이스에서 사용되는 개체,속성,개체와 개체 간의 관계 등을 약속된 기호로 이용하여 표현함으로써 데이터베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델
2.E-R Model의 기호
사각형:개체
타원:속성
마름모:관계
타원의 밑줄:키본키
사각형-마름모-사각형:개체와 개체 간의 관계 구조
작은 타원 여러개와 큰 타원:복합 속성
5.데이터베이스 모델:논리적 설계 단계에서 사용되는 모델
관계 데이터 모델:2차원 구조의 표 형태
네트워크 데이터 모델(망 데이터 모델):레코드 타입 간 관계를 도형으로 표현
계층 데이터 모델(트리 데이터 모델):부모-자식 관계,즉 1:N 관계를 타나낸다.
섹션03.관계 데이터 모델
1.관계 데이터 모델:자료의 저장 형태를 2차원 구조의 표로 표현하는 방법
릴레이션:자료 저장의 형태가 2차원 구조의 테이블로 표현
속성:릴레이션을 구성하는 각 열(칼럼,항목)
튜플:릴레이션의 한 행을 구성하는 속성들의 집합(튜플,행,레코드)
도메인;하나의 속성이 가질 수 있는 값들의 범위
릴레이션 스키마:릴레이션의 이름과 속성의 이름 집합
릴레이션 인스턴스:릴레이션에서 어느 시점까지 입력된 튜플들의 집합
차수:릴레이션을 구성하는 속성의 수[열수]
카디널리티:릴레이션에 입력된 튜플의 수[행수<제목제외>]
릴레이션의 특징
튜플들은 모두 상이
튜플들은 유일하며 순서에는 의미없음
속성들 간의 순서는 의미없음
속성값은 원자값으로 구성되며 분해가 불가능
Mapping Rule:개념적 데이터베이스 모델링 결과를 관계형 데이터베이스 이론에 근거하여
데이터베이스 구조를 변환하는 과정
교차 엔티티:N:M관계의 E-R Model을 릴레이션으로 표현하는 경우 보다
정확한 상호 참조를 위해 하나의 릴레이션을 더 만듦
섹션04.키와 무결성 제약조건
2.키의 종류
키:관계 데이터베이스에서 튜플을 식별하기 위해 사용하는 속성이나 속성의 집합
1)후보키:릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
2)기본키:후보키 중에서 튜플을 식별하기 위해 특별히 선택된 키
3)대체키:후보키 중에서 기본키를 제외한 속성
4)외래키:하나의 테이블에서 원하는 자료를 얻지 못하는 경우
다른 테이블을 참조하기 위해 사용되는 속성
*식별 관계와 비식별 관계:외래키가 기본키인 경우와 일반 속성인 경우
5)슈퍼키;릴레이션 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합
3.무결성 제약조건:데이터베이스 자료의 오류 없는 정확성과 안정성
1)개체 무결성:기본키는 널값이올수없으며,중복될 수 없음을 나타내는 제약조건(튜플유일식별)
2)참조 무결성:외래키는 널 값이 올 수 있으며,참조 릴레이션의 기본키와 같아야하는 제약조건으로 테이블 참조 시 오류가 없도록 하기 위한 제약조건
섹션05.관계 데이터 연산:데이터베이스 구조에서 사용되는 연산
1.관계 대수:릴레이션에서 사용자가 원하는 결과를 얻기 위해 연산자를 표현하는 방법
[순수 관계 연산자와 일반 집합 연산자]
(1)셀렉트(Select,σ):릴레이션에서 조건을 만족하는 수평적 부분 집합을 구하기 위한 연산
σ<선택조건>(테이블 이름)
(2)프로젝트(Project,π):릴레이션에서 수직적 부분 집합을 구하는 연산으로 속성 추출
π<추출 속성리스트>(테이블 이름)
응용) π<추출 속성리스트>( σ<선택조건>(테이블 이름) )
(3)조인(Join,⋈):두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여
하나의 테이블로 만드는 연산(동일 조인,자연조인,외부조인,세타조인등)
테이블1⋈<조인 조건>테이블2
동일조인:가장 기본이 되는 조인
자연조인:동일 조인한 결과에서 중복되는 속성을 제거하여 표현
외부 조인:조건에 맞지 않는 튜플도 결과 테이블에 포함 NULL
세타조인:세타 연산자 중 ‘=’외의 연산자를 이용해 조건 수식을 표현하여 조인
두 테이블의 모든 속성을 합한 하나의 테이블 구조로 만들어짐
(4)디비전(Division,÷)
테이블1(테이블1속성÷테이블2속성)테이블2
2.관계해석:릴레이션에서 결과를 얻기 위한 과정을 표현하는 것을
연산자 없이 정의하는 방법을 이용하는 비절차적인 언어
{결과값 | 조건}
-----------------------------------------------------------------------------
챕터3.관계 데이터베이스 언어(SQL):관계 데이터베이스에서 사용하는 언어
섹션01.SQL 정의어(DDL)
CREATE TABLE 테이블_이름
({속성_이름 데이터_타입 [NOT NULL],}
[PRIMARY KEY(속성_이름),]
[UNIQUE(속성_이름),] //대체키
[FOREIGN KEY(속성_이름) REFERENCES 참조테이블(속성_이름)]
[ON DELETE CASCADE | SET NULL | SET DEFAULT | NO ACTION]
[ON UPDATE CASCADE | SET NULL | SET DEFAULT | NO ACTION],
[CONSTRAINT 제약조건_이름 CHECK(속성_이름=범위값)]
);
CREATE TABLE 테이블명
(학번 INT, //속성명 데이터타입(크기)
성명 CHAR(5) NOT NULL,
학과 CHAR(10),
학년 INT,
학점 CHAR(1),
PRIMARY KEY(학번),
FOREIGN KEY(학과) REFERENCES 수강(학과) //refer ences
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT hak CHECK(학년 <=4)
);
ALTER:기존에 만들어진 테이블에 새로운 속성을 추가하거나 기존 속성을
변경,삭제할 때 사용하는 명령어
ALTER TABLE 테이블이름 <ADD/ALTER/DROP> 속성이름 데이터타입
이후 옵션은 <디폴트,셋 디폴트,연쇄|비연쇄>
DROP:기존에 사용되던 테이블,스키마,도메인,인덱스,뷰,제약조건 등을 제거할 때 사용하는 명령어
DROP TABLE 테이블_이름 [CASCADE |RESTRICT];
DROP SCHEMA 스키마_이름 [CASCADE |RESTRICT];
DROP DOMAIN 도메인_이름 [CASCADE |RESTRICT];
DROP VIEW 뷰_이름 [CASCADE |RESTRICT];
DROP INDEX 인덱스_이름
DROP CONSTRAINT 제약조건_이름
섹션02.SQL 조작어(DML):데이터 검색,삽입,수정,삭제
1.SELECT [DISTINCT] 속성_이름
FROM 테이블_이름
[WHERE 조건]
[GROUP BY 속성_이름 [HAVING 그룹조건]]
[ORDER BY 속성_이름 [ASC | DESC];
//집계함수를 이용한 검색문 [DISTINCT 위치에 삽입] AS 이름 //유도될 속성이름
//부속(하위) 질의문 ~={ } 하나이상을 원하면 IN사용
//부분매치 LIKE 김% 김_
//NULL값 비교 IS와 IS NOT
//JOIN 질의문 FORM 테이블이름 JOIN 조인될 이름 ON(조인속성1=조인속성2)
2.INSERT INTO 테이블_이름[(속성_이름)] VALUES (자료);
3.UPDATE 테이블_이름 SET 속성_이름=변경내용 [WHERE 조건];
4.DELETE FROM 테이블_이름 [WHERE 조건];
섹션03.SQL 제어어(DCL)
1)COMMINT 데이터베이스 내의 연산이 성공적으로 종료되어
연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어
2)ROLLBACK 데이터베이스 내의 연산이 비정상적을 종료되어나 정상적으로 수행이
되었다 하더라도 수행되기 이전 상태로 되돌리기 위해
연산 내용을 취소할 때 사용하는 명령어
3)GRANT 관리자가 사용자에게 데이터베이스에 대한 권한을 부여
GRANT 권한 내용 ON 테이블_이름 TO 사용자 [WITH GRANT OPTION]; //권한이전 옵션
4)REVOKE 관리자가 사용자에게 부여했던 권한을 취소하기 위해 사용되는 명령어
REVOKE 권한 내용 ON 테이블_이름 FROM 사용자 [CASCADE];
섹션04.뷰와 시스템 카탈로그
1.뷰
하나 이상의 테이블부터 유도되어 만들어진 가상 테이블
CREATE VIEW 뷰_이름[(뷰_속성이름)]
AS SELECT 기본테이블의 속성_이름
FROM 기본테이블_이름
[WHERE 조건]
[WITH CHECK OPTION]; //조건 불만족시에는 수행안함
DROP VIEW 뷰_이름 [RESTRICT | CASCADE];
2.시스템 카탈로그
데이터베이스에 저장되어 있는 테이블,인덱스,뷰,제약조건,사용자 등
개체들에 대한 정보와 정보들 간의 관계를 저장한 것
-----------------------------------------------------------------------------
챕터4.정규화
섹션01.이상과 함수적 종속
1.이상(Anomaly):데이터베이스의 논리적 설계 시 하나의 릴레이션에 많은 속성들이 존재하여,
데이터의 중복과 종속으로 인해 발생되는 문제점
1)삭제이상:테이블에서 하나의 자료를 삭제하고자 하는 경우 그 자료가 포함된
튜플이 삭제됨으로 인해 원하지 않는 자료까지 함께 삭제가 이루어져 발생하는 문제점
2)삽입이상:삽입하는 과정에서 원하지 않는 자료가 삽입된다든지 또는 삽입하는데
자료가 부족해 삽입이 되지 않아 발생하는 문제점
3)갱신이상:관계 데이터베이스의 자료를 갱신하는 과정에서 정확하지 않거나
일부의 튜플만 갱신됨으로 인해 정보가 모호해지거나 일관성이 없어져
정확한 정보의 파악이 안되는 현상
2.함수적 종속 A->B 결정자와 종속자
어떤 릴레이션에서 속성 A,B가 있을 때, 임의 튜플에서 A의 값이 B값을 함수족으로 결졍
1)완전 함수 종속과 부분 함수 종속
릴레이션에서 한 속성이 오직 기본키에만 종속이 되는 경우(기본키로 구분 가능)
릴레이션에서 한 속성이 기본키가 2개 이상 합성키로 구성된 경우(기본키 일부로 구분 가능)
2)이행적 함수 종속
릴레이션에서 A,B,C 세 가지 속성 간의 종속이 A->B,B->C,A->C가 성립이 되는 경우
섹션02.정규화
1.정규화
논리적 설계 단계에서 발생할 수 있는 종속으로 인한 이상현상의 문제점을 해결하기 위해,
속성들 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정
2.정규형의 종류
제1정규형:한 릴레이션을 구성하는 모든 도메인이 원자값만을 구성되도록 하는 정규형
제2정규형:릴레이션에 존재하는 부분 함수 종속을 제고하고 모든 속성이 기본키에 완전 함수..
제3정규형:릴레이션을 구성하는 속성들 간에 이행적 함수 종속 관계를 분행하여..
BCNF:릴레이션에서 모든 결정자가 후보키가 되도록 하는 과정
제4정규형:릴레이션에서 다치 종속 관계가 성립되는 경우 분해하는 정규형
제5정규형:릴레이션에 존재하는 조인 종속이 후보키를 통해서만 성립이 되도록 하는 정규형
섹션3.역정규화:정규화된 릴레이션을 물리적 데이터 모델링 과정에서 성능을 향상시키기 위해
중복을 허용하고라도 다시 통합하거나 분할하여 구조를 재조정하는 것
-----------------------------------------------------------------------------
챕터5.기타 데이터베이스 실무 응용
섹션01.내장 SQL과 커서
1)내장SQL:일반 응용 프로그램에 SQL을 삽입하여 데이터베이스 자료를 이용하고
다양한 조작을 할 수 있도록 한 것
2)커서:내장 SQL에 의해 얻은 값은 하나의 자료 단위로 처리되며
여러 개의 자료를 그룹으로 처리하기 위해 이용 [DECLARE,OPEN,FETCH,CLOSE]
3.스토어드 프로시저:자주 수행해야 할 SQL 처리과정을 미니 하나의 작은 프로그램으로
작성하여 데이터베이스에 저장해 두었다가 필요한 경우
호출하여 사용하기 위해 만들어 놓은 프로그램
섹션02.트랙잭션:데이터베이스 내에서 한꺼번에 모두 수행되어야 할 연산들의 집합[ACID]
원자성:트랜잭션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 않을 경우 모두 수행되지 않아야함
일관성:트랜잭션이 정상적으로 완료된 후
언제나 일관성 있는 데이터베이스 상태가 되어야하며,결과에 모순이 생겨서는 안됨
격리성:하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없고 각각의 트랜잭션은 독립적
영속성:트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함
1)COMMINT 데이터베이스 내의 연산이 성공적으로 종료되어
연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어
2)ROLLBACK 데이터베이스 내의 연산이 비정상적을 종료되어나 정상적으로 수행이
되었다 하더라도 수행되기 이전 상태로 되돌리기 위해
연산 내용을 취소할 때 사용하는 명령어
트랜잭션 스케줄 :여러 개의 트랜잭션들이 병행 실행되는 경우
트랜잭션의 연산들이 실행되는 순서를 의미
1)직렬 스케줄:각 트랜잭션별로 구분하여 한 트랙잰션을 구성하는 연산들을
연속적으로 모두 실행하고 다른 트랜잭션을 수행하는 방식의 스케줄 기법
2)비직렬 스케줄:트랜잭션들을 병행하여 수행하는 방법으로 인터러브 실행 기법을 이용하여
각 트랜잭션의 연산들을 번갈아가면서 병행 실행하는 방법
섹션03.회복 기법과 병행 제어
1.회복 REDO 재수행과 UNDO 취소
<데이터베이스 수행 시 발생되는 장애의 유형>
트랜잭션 장애:하나의 트랜잭션이 수행되는 과정에서 발생하는 오류
시스템 장애:트랜잭션 장애들로 인해 시스템상의 문제가 발생하여 트랜잭션이 수행되는 못..
미디어 장애:하드웨어적으로 하드디스크 등이 손상되는 경우
2.병행제어
동시에 여러 개의 트랜잭션이 실행되는 경우를 병행 실행
병행 실행 시 트랜잭션 간의 격리성을 유지하여 트랜잭션 수행에 문제가 발생되지 않도록
제어하는 것을 병행제어(로킹 기법)
-로킹:트랜잭션의 병행 실행 시 하나의 트랜잭션이 사용하는
데이터베이스 내의 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
접근허용:공유 락(읽기만 허용) ,배타 락(모두 불가능)
2단계 로킹 기법
확장 단계:락을 설정
축소 단계:락을 해제
타임스탬프:각 드랜잭션이 데이터에 접근할 시간을 미리 지정하여 기억시킨 뒤
그 시간의 순서에 따라 순서대로 데이터에 접근하여 수행하는 방법
*병행제어를 하지 않았을 때의 문제점:갱신분실,모순성,연쇄 복귀,비완료 의존성
섹션04.인덱스:수 많은 데이터 중에서 원하는 자료를 빠르고 효율적으로 검색하기 위해서..
인덱스 구조)
B-트리:자료의 구조를 균형 있는 트리 구조로 나타내는 방법
B⁺-트리:b트리의 변형으로 인덱스 세트와 순차 세트로 구성
인덱스 기타유형)
클러스터드 인덱스:테이블에서 하나의 속성을 기준으로 정렬시킨 후,
테이블을 재구성하여 인덱스를 만드는 방법
넌 클러스터드 인덱스:테이블을 재구성하지 않고,
데이터 주소를 이용하여 인덱스를 만들어 주소값을 이용하여 검색
섹션05.객체 지향 데이터베이스(OODB)
1)객체:유형이나 무형으로 현실 세계에 존재하는 개체를 추상화 한 것
2)속성:객체의 특성이나 상태
3)메소드:객체에 어떤 처리를 하도록 지시하는 명령
4)클래스:유사한 성격과 공통적인 특성을 갖는 객체들의 모임
5)캡슐화:다른 객체와 정보은페가 이루어지도록 하는 것
6)상속:클래스의 계층구조에서 상위 클래스의 특징과 정보 등을
하위 클래스에서 그대로 재사용할 수 있는 개념
7)다형성:동일한 객체더라도 경우에 따라 다른 의미의 연산으로 사용될 수 있는 개념
섹션06.보안
정보보안의 목표
기밀성:허락되지 않은 사용자나 대상이 정보의 내용을 알 수 없도록 하는 것
무결성:허락되지 않은 사용자나 대상이 정보를 함부로 수정 및 삭제 등 변경할 수 없도록..
가용성:허락된 사용자나 대상이 정보에 접근하고자 할 때 방해받지 않도록 하는 것
대칭키 시스템과 비대칭키[=공개키] 시스템
섹션07.기타 데이터베이스 용어
1.개체의 종류:독립개체와 종속개체 //다른 개체에 종속관계 유무
2.속성의 종류:단순 속성,복합 속성,결합 속성,설계 속성 //더 작은 단위로 나눌수있는지
3.관계의 종류:중복 관계,재귀 관계 //참조가 2개 이상의 속성으로 참조/자기자신
4.분산 데이터베이스:수평 분산과 수직 분산 //여러 대의 컴퓨터에 데이터를 분산
5.튜닝:데이터베이스의 성능 향상과 사용자의 요구에 따라 빠른 검색을 통한 신속한 서비스 제공,
저장 공간의 효율을 향상시키는 등 데이터베이스 시스템을 최적화하기 위해 재조정하는 것
6.CRUD 매트릭스:수행할 프로세스와 프로세스 수행에 사용된 개체 간의
상관관계를 분석하기 위해 2차원 구조의 행렬 구조로 표현
7.트리거:참조 관계에 있는 두 테이블에서 하나의 테이블에 삽입,삭제,갱신 등의 연산을
테이블의 내용이 바뀌었을 떄 데이터의 일관성과 무결성 유지를 위해
이와 연관된 테이블도 연쇄적으로 변경이 이루어질 수 있도록 하는 것
8.행 이주와 행 연결
9.기타 데이터베이스 용어
데이터 웨어하우스:한 조직이나 사용자의 의사 결정에 도움을 주기 위하여,
기간 내의 저장된 대량의 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스
데이터 마트:데이터의 한 부분에서 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모..
데이터 마이닝:대량의 데이터에서 실제로 존재하지 않는 정보를 얻어내기 위해
각 데이터의 상관관계를 통계적 분석,인공지능 기법등을 통해 규칙이나 패턴찾음
OLAP:사용자가 직접 데이터베이스 검색과 분석을 통해 문제점이나 해결책을 찾도록 해주는
분석형 애플리케이션[MOLAP—다차원,ROLAP-관계형DB,HOLAP-다차원&관계형DB]
스타스키마)OLAP와 같은 다차원 분석을 지원하기 위한 데이터 모델링 기법
*사용자가 직접 검색할 수 있음
OLTP:중앙 컴퓨터와 통신회선으로 접속되어 있는 다수의 사용자 단말기에서
요청한 트랜잭션의 처리를 중앙 컴퓨터에서 처리하여 그 처리된 결과를
즉시 사용자 단말측으로 되돌려 보내 주는 처리 형태
'IT' 카테고리의 다른 글
정보처리 산업기사 이론(4과목,5과목) (0) | 2018.06.07 |
---|---|
정보처리 산업기사 이론(1과목,2과목,3과목) (0) | 2018.06.07 |