[정보처리기사] OSI 7계층 정리

 [정보처리기사] OSI 7계층 정리  7계층 - 응용계층 데이터 또는 프로그램 사용장비: 없음 6계층 - 표현계층 압축, 암호화 사용장비: 없음 5계층 - 세션계층 연결(로그인등) 사용장비: 없음 4계층 전송계층(트랜스포트 계층) 양종단간 신뢰성 전달 TCP/UDP 7,6,5 계층에서 내려온 데이터에 헤더를 붙이고 이것을 세그먼트라고 함 사용장비: 없음 3계층 네트워크계층 빠르게 연결 IP 세그먼트를 내려 받아서 헤더를 붙이고 이것을 패킷이라고 한다. 사용장비: 라우터(패킷을 목적지까지 최적의 경로를 통해 전달) 라우터 프로토콜의 종류 정적 라우터: 관리자가 직접 입력 동적 라우터  - IGP(내부 라우터) 거리 벡터 알고리즘(Distance Vector)          RIP: 벨만-포드 알고리즘 사용                  홉 수 기반 라우팅 프로토콜이며 최대 15홉수 지원 링크상태 알고리즘(Link-State Vector)         OSPF: 다익스트라 알고리즘 기반                    링크 상태 변화 시 라우팅 정보 전송 - EGP(외부 라우터)         BGP: 대규모 네트워크에 적합한 Path Vector 기반  2계층 - 데이터 계층 인접한 노드간에 신뢰성 전달 패킷을 내려 받아서 헤더를 붙이고 이것을 프레임이라고 한다. 사용장비: 스위칭허브(허브 기능에 스위치 기능 추가), 브리지(두 개 이상의 LAN을 연결하여 하나의 확장된 네트워크를 형성) 1계층 - 물리계층 데이터를 비트 형태로 바꿔서 전달 사용장비: NIC(랜카드), 더미허브(네트워크 내에 여러 노드를 연결), 리피터(증폭기) 7...

데이터베이스 정규화 과정

이미지
 데이터베이스 정규화 과정 정규화 함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되도록 릴레이션을 분해해서 이상현상이 발생하지 않는 바람직한 릴레이션으로 만들어가는 과정입니다. 작은 릴레이션으로 분해하는 과정은 함수 종속성을 제거하는 과정입니다. 정규화를 통해 릴레이션은 손실이 없는 무손실 분해가 되어야 합니다. 정규형(Normal Form) 릴레이션을 분해하는 각 단계를 거칠 때 마다 나타내지는 정규화의 형태 를 정규형이라고 합니다. 정규형은 릴레이션이 정규화가 된 정도(1정규형, 2정규형, ...)를 의미합니다. ※ 정규형의 정도(차수)가 높아질수록 릴레이션의 특성에 따라 요구되는 제약조건이 많아지고 엄격해짐 정규형의 종류 ※ 모든 정규형들은 비정규형 릴레이션의 부분집합의 형태 기본 정규형 제1정규형 - 릴레이션의 모든 속성이 더는  분해되지 않는 원자값만 가지면  제1정규형을 만족 - 제1규형을 만족해야 관계 데이터베이스의 릴레이션이 될 자격이 있음 - 하나의 속성에 여러개의 속성값이 아닌 하나의 속성값이여야 제1규형을 만족 이상현상이 발생하는 이유 - 기본키인 {고객아이디, 이벤트번호}에 완전 함수종속이 되지 못하고 부분집합의 일부분인 고객아이디에 종속되는 속성이 존재하기 때문에 이상현상이 발생 문제 해결 방법 - 부분 함수 종속이 제거되도록 릴레이션을 분해하면 분해된 릴레이션은 제2정규형 에 속하게 됨 제2정규형 - 제1정규형에서 부분 함수 종속을 제거하고 모든 함수 종속 관계에서 완전 함수 종속을 만족하면 제 1규형을 만족 - 완전 함수 종속만 가질 수 있도록 부분 함수 종속을 제거 ex) 고객릴레이션과 이벤트 참여 릴레이션으로 분해 이상현상이 발생하는 이유 - 이행적 함수 종속이 존재하기 때문 이행적 함수 종속: 3개의 속성간에 발생하는 문제 ※이행적 함수 종속이란? 릴레이션을 구성하는 속성들간에 가지는 관계입니다. 완전 함수 종속과 부분 함수 종속은 2개의 속성간에 이루어지는 관계 이지만 이행적 함수 종속은...

데이터베이스 함수종속

이미지
 데이터베이스 함수종속 함수 종속 이상현상을 해결해나가는 과정을 정규화 라고 합니다. 정규화는 여러가지 단계에 걸쳐서  정규화 과정을 거치게 되는데, 이 때 각각의 단계를 정규형 이라고 합니다. 각각의 정규형들은 특정 함수 종속들을 제거하는것으로 정규화 과정을 진행합니다. 종속된다는 것은 하나의 속성이 다른 하나의 속성을 결정한다는 의미 입니다. "X가 Y를 함수적으로 결정한다" - Y의 값은 X에 값에 의해서 결정됨 - "Y가 X에 함수적으로 종속되어 있다"와 같은 의미 - X → Y 로 표현 ( X는 결정자, Y는 종속자 ) 고객 릴레이션에 존재하는 함수 종속 관계 ※ 고객아이디가 기본키(PK: 프라이머리 키) 고객아이디  → 고객이름 고객아이디  → 등급 고객아이디  → (고객이름, 등급) 고객아이디는 고객이름과 등급 속성을 결정 or 고객이름과 등급 속성은 고객아이디에 종속  함수 종속 다이어그램 함수 종속 관계를 E-R 다이어그램으로 도식화하여 표현한것입니다. 화살표를 받는 쪽이 종속자 이고 화살표가 시작하는 부분이 결정자 입니다. 함수 종속을 판단 할 때에는 한 릴레이션을 구성하고 있는 여러 속성들 중에서 속성 자체에서 가지는 특성이나 의미를 기반 으로  함수 종속성을 판단해야 합니다. 속성값은 계속 변할 수 있기 때문에 현재 릴레이션에 포함된 속성 값만으로 판단하면 안됩니다. 일반적으로 기본키와 후보키 는 릴레이션의 다른 모든 속성들을 함수적으로 결정합니다. 혹은 기본키나 후보키가 아니어도 다른 속성 값을 유일하게 결정하는 속성도 함수 종속 관계에서 결정자가 될 수 있습니다. 완전 함수 종속(Full Function Dependency) 함수 종속 관계를 가지고 있는 복합 속성일 때에만 대한 것입니다. 복합속성으로 집합을 이루고 있을 때 가지는 종속 관계가 집합을 이루지 않았을 때에는 성립되지 않는다는 성질을 완전 함수 종속이라고 합니다. 당첨 여부는 {고객아이디, 이벤트번호}에 완전 ...

데이터베이스 이상현상과 정규화

이미지
 데이터베이스 이상현상과 정규화 이상현상과 정규화의 개념 데이터베이스가 특정 현상에서  발생하는 오류현상을 이상현상 이라 하고 이상현상을 해결하기 위해 거쳐야 하는 단계를 정규화 라고 합니다. 이상현상은 삽입이상, 갱신이상, 삭제이상이 있습니다. 이 이상현상을 발생시키는 특정요인들을 함수종속 이라고 합니다. 이상현상 - 정상적이지 않은 동작 - 불필요한 데이터 중복 으로 인해 데이터들이 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용 이상현상의 종류 삽입 이상(insertion anomaly): 새로운 데이터(튜플)를 삽입하기 위해 내가 원하지 않는 불필요한 데이터(튜플)도 함께 삽입 해야 하는 문제 ex) 이벤트 당첨여부에 속성값이 Y, N만 존재 할 때 이벤트에 참여하지 않은 고객은 불필요한 NULL 값이 들어가거나 삽입하지 못하는 이상현상 갱신(수정)이상(update anomaly): 중복되는 튜플 중 일부만 변경하여 똑같은 데이터 임에도 데이터가 불일치하게 되는 모순의 문제 ex) 여러번 이벤트에 참여한 홍길동 고객의 등급이 'gold'에서 'vip'로 변경 되었는데 일부 튜플에 대해서만 등급이 수정된다면 홍길동은 'gold'와 'vip'등급을 둘 다 가지게 되는 모순이 발생 삭제 이상(deletion anomaly): 필요 없는 튜플을 삭제하면 내가 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실 의 문제 ex) 홍길동 고객이 이벤트를 참여 했기 때문에 발생했던 데이터들이 이벤트 참여를 취소해 이벤트 참여와 관련이 없는 반드시 필요한 고객아이디, 고객이름, 등급 데이터까지 모두 손실되는 문제 정규화 - 이상현상을 발생시키는 요인들을 제거 하고 이상현상이 일으키는 잘못된 에러 과정들을 일으키지 않도록 데이터베이스를 올바르게 다시 설계해 나가는 과정 - 이상현상이 발생하지 않도록 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 관련이 있는 속성들로만 구성하기 위해서 중복되어...

데이터베이스 관계데이터 모델의 키

이미지
 데이터베이스 관계데이터 모델의 키 관계모델의 키 키(key)는 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합 입니다. 모든 키는 유일성을 만족해야 합니다. 키의 특성 유일성: 릴레이션에서 모든 투플은 다른 키 값을 가져야 함 최소성: 꼭 필요한 최소한의 속성들로만 키를 구성 5가지 키의 종류 수퍼키(super key) - 나를 식별할 수 있는 모든 조합 - 유일성을 만족하는 속성이거나 속성들의 집합(복합 속성) - 유일성 ex) 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등 괄호()는 복합 속성 후보키(candidate key) - 유일성과 최소성을 만족하는 속성 또는 속성들의 집합 - 수퍼키에 고객아이디가 중복되어 있지만 후보키에서는 중복이 필요없음 - 유일성, 최소성 ex) 고객아이디, (고객이름, 주소) 등 기본키(primary key) - 후보키 중에서 가장 기본적으로 1순위로 사용하기 위해 선택한 키 - 하나의 릴레이션에서 가장 중요한 정보를 기본키로 지정 - 후보키 중에서 단일 애트리뷰트(단일 속성)를 기본키로 지정 - 속성명에 밑줄로 표시 - NULL값 허용 안함 - 중복 허용 안함 - 유일성, 최소성 ex) 고객아이디 대체키(alternate key) - 기본키로 선택되지 못한 나머지 후보키 - 유일성, 최소성 ex) (고객이름, 주소) 외래키(foreign key) - 다른 릴레이션(테이블)의 기본키를 참조하는 속성 또는 속성들의 집합 - 다른 릴레이션에서 기본키를 빌려오는 키 - 다른 릴레이션들 간의 관계를 표현 -  참조되는 릴레이션의 기본키와 참조하는 릴레이션의 외래키 속성의 이름은 달라도 되지만 도메인(타입)은 같아야함 - 하나의 릴레이션에 외래키가 여러개 존재 할 수 있고 외래키를 기본키로 사용할 수 있음 참조하는 릴레이션: 외래키를 가진 릴레이션 참조되는 릴레이션: 기본키를 다른 릴레이션에 빌려주는 릴레이션 ex) 고객 릴레이션(참조되는 릴레이션) 고객아이디(기본키) , 고객이름,...

데이터베이스 데이터 조작어(DML) - 데이터 삽입, 수정, 삭제

이미지
데이터베이스 데이터 조작어(DML) 데이터 삽입, 수정, 삭제 데이터 직접 삽입 테이블에 튜플을 입력하는 것입니다. SELECT INTO 테이블명[(속성명1, 속성명2, ...)] VALUES (속성값1, 속성값2, ...); 대괄호[]는 생략가능 INTO 키워드: 튜플을 삽입할 테이블의 이름과 속성의 이름을 나열하고,  테이블명은 반드시 있어야 하지만 속성명은 생략이 가능 합니다. 속성명이 생략 되었을 때에는 내가 생성해 놓은 속성의 순서대로 값이 삽입 이 됩니다. VALUES 키워드: 삽입할 속성의 값들을 나열합니다. ※ 속성 값은 나열한 속성명의 순서대로 입력, 1:1로 대응 INSERT INTO 고객(고객아이디, 고객이름, 나이) VALUES('hong', '홍길동', '30'); 고객테이블에 고객아이디가 hong, 고객이름이 홍길동, 나이가 30인 새로운 고객의 정보를 삽입 - 모르는 속성 값은 속성명과 속성값을 넣지 않아도 되고,  모르는 속성값이 존재 할 경우에는 null값이 삽입이 됨 INSERT INTO 고객 VALUES('hong', '홍길동', 30); 테이블명 뒤에 속성명을 나열하지 않았을 경우에는 고객 테이블에 정의되어 있는 순서대로 1:1로 대응해서 삽입 - 모르는 속성값이 존재 할 경우에는 고객 테이블에 정의 되어 있는 순서대로 1:1로 대응해서 삽입해야하기 때문에 고객 테이블에 정의되어있는 순으로 반드시 NULL값을 입력 부속 질의문을 이용한 데이터 삽입 VALUES 키워드 대신 SELECT문을 이용해 다른 테이블에서 검색한 데이터를 삽입하는 것입니다. INSERT INTO 롯데제품(제품명, 재고량, 단가) SELECT 제품명, 재고량, 단가 FROM 제품 WHERE 제조업체 = '롯데'; 제품 테이블에서 제조업체가 롯데인 업체의 제품명, 재고량, 단가를 검색하여 롯데제품 테이블에 삽입  데이터 수정 튜플에 있는 값을 내가 원하는 값으로 수정하는 ...

데이터베이스 데이터 조작어(DML) - 집계함수 검색, 조인 검색

이미지
데이터베이스 데이터 조작어(DML) 집계함수 검색, 조인 검색 집계함수 검색 내가 원하는 값들을 통계적으로 계산한 결과를 검색하기 위해 사용합니다. 열 함수(column function)라고도 하고 개수, 합계, 평균, 최대값, 최소값의 계산 기능을 제공합니다. ※ NULL 속성값은 제외하고 계산 집계 함수는 WHERE절에서는 사용할 수 없고 SELECT절이나 HAVING 절에서만 사용 이 가능합니다. 숫자데이터에서만 사용 가능한 함수 SUM: 속성 값의 합계 AVG: 속성 값의 평균 모든 데이터에서 사용 가능한 함수 COUNT: 속성값의 갯수 MAX: 속성값의 최대값 MIN: 속성값의 최소값 1. 기본 집계 함수 검색 SELECT AVG(단가) FROM 제품; 제품 테이블에서 모든 제품의 단가 평균을 검색 SELECT SUM(재고량) AS 재고량 합계 FROM 제품 WHERE 제조업체 = '롯데'; 제품 테이블에서 제조업체가 롯데인것만 속성명 재고량을 재고량 합계로 변경후 재고량을 합해서 검색  SELECT COUNT(고객아이디) AS 고객수 FROM 고객; 고객 테이블에서 고객이 몇명 등록이 되어있는지 검색하고 속성명 고객아이디를 고객수로 변경 ※ 널 값은 제외하고 튜플을 세기 때문에 정확한 튜플의 수를 셀 때에는 속성명에 * (아스타리크)를 사용하거나 기본키 속성을 사용 (기본키는 널값을 허용하지 않기 떄문에) SELECT COUNT(DISTINCT 제조업체) AS '제조업체수' FROM 제품; 제품 테이블에서 속성명 제조업체를 제조업체수로 변경하고 튜플의 중복을 없애고 제조업체의 수를 검색 2. 그룹별 검색 SELECT [ALL | DISTINCT] 속성명 FROM 테이블명 [WHERE 조건] [GROUP BY 속성명 [HAVING 조건]] [ORDERBY 속성명 [ASC | DESC]; 대괄호[] 안에 있는 키워드는 필요없으면 생략 가능 GROUP BY 키워드를 이용해 특정 속성의 값이 같은 튜플을 모아 그룹을 만들고 ...

이 블로그의 인기 게시물

[정보처리기사] OSI 7계층 정리

블로그스팟 상위노출 시작하기

데이터베이스 데이터 정의어(DDL), 자료형(데이터 타입)