728x90

개방형 시스템 open system

- 서로 다른 시스템간 통신 기능 제공

- osi 모델은 개방형 시스템으로 상호 연동이 가능한 네트워크 구조를 이해하고 설계하기 위한 모델 구조

 

프로토콜 계층 구조 예시

- iso의 osi 7계층

- ietf의 tcp/ip 계층

- atm 프로토콜 계층

- isdn 프로토콜 계층

 

 

osi 7계층

- 서로 다른 시스템간 통신을 하기 위한 프로토콜

1. 물리 계층

2. 데이터 링크 계층

3. 네트워크 계층

4. 전송 계층

5. 세션 계층

6. 표현 계층

7. 응용 계층

 

 

 

1. 물리 계층 physical layer

 - 네트워크에서 노드 간 물리적 연결을 위한 프로토콜 규정

 - 물리적 회선 종류 : 유선 - 꼬임선 케이블, 동축 케이블, 광케이블 , 무선 - 주파석 대역

   ex) a라는 시스템은 광케이블 사용. b 시스템은 동축 케이블 사용 연결 불가.

 - 회선 커넥터 모양, 회선 개수 등 물리적 기능

 - 어느선이 전원선, 접지, 신호선인지 규정

 - 비트 스트림을 어떻게 표현할것인지 규정

 - 장비 : 리피터, 허브

=> 눈에 보이는 선

비트 스트림 형태

 

2. 데이터 링크 계층 data link layer

 - 링크 : 노드와 노드를 연결한 논리적 회선

 - 논리적 회선 : 물리적 회선이 아니라 시간 분할/주파수 분할 등으로 구분할 수 있는 회선

 - 링크 사이에서 데이터를 어떻게 잘 전달하는지를 규정

   => 잘 전달한다 = 신뢰성있게 전달-> 링크 상 프레임 구조, 오류 제어, 흐름 제어, 접근제어 등을 규정

 * 접근제어 : 여러 장치가 연결되면 우선순위 제어

=> 논리적 회선(링크)

 ex) 트럭 비유시 :  프레임은 트럭, 데이터는 짐

 

HDLC 프레임 구조

3. 네트워크 계층 network layer

 - 수신측 주소로 경로 설정

  - 네트워크 계층에서의 데이터 구조 : 패킷

 ex) 편지 비유 : 패킷 = 편지, 패킷헤더 = 편지봉투, 프레임 = 편지지

 - 송수신 측의 논리적 주소(ip) 설정

 - 경로 지정을 통한 트레픽 제어

목적지로 경로 설정

 

 

4. 전송계층 transport layer

 - end-to-end 간 전송 제어 방법 규정(어떻게 전송할지)

 - 전송 제어 방법 : 연결형, 비연결형 

 - 연결형 : 콜을 설정, 데이터 전송, 콜을 끊음 (전화) -> 흐름 제어, 오류 제어

 - 비연결형 : 브로드케스트(TV)

- 전송 계층에서 데이터 구조 : 연결형 - 세그먼트 segment, 비연결형 - 데이터그램 datagram

 

 

5. 세션 계층 session

 - 송신단과 수신단 사이 세션 채널(대화 채널) 규정 <- 전송 계층에서 연결 확인

 - 멀티미디어 환경에서 오디오 채널, 비디오 채널, 텍스트 채널

 - 대화 전송 모드 : 전이중, 반이중, 단방향

 - 동기화 기능 : 데이터 스트림에 동기점 추가  

세션 계층

 

6. 표현 계층

 - 데이터 부호화/복호화

 - 데이터 암호화/ 복호화

 - 데이터 압축 방법

표현 계층 예시

7. 응용 계층

 - 어떤 응용서비스를 할 것인가

 - 사용자 인터페이스 제공

 

 

 

 

 

 

 

TCP//IP 프로토콜

- 1973년 미국서 개발

- 인터넷 망에서 데이터를 주고받기위한 인터넷 표준 프로토콜

- 4계층 구성 

 1. 네트워크 액세스 계층

 2. 네트워크 계층

 3. 전송 계층

 4. 응용 계층

 

OSI 7계층과 TCP/IP프로토콜 4계층 구조

 

 

1. 네트워크 액세스 계층

 - osi 7계층의 물리 계층과 데이터 링크 계층의 기능 의미

 - 통신 단위 : 프레임 

   -> ex) MAC 프레임, ethernet 프레임, iee 802.15.4 프레임, 와이파이 프레임, 지그비 프레임 등

 - 담당 장비 : 허브, 중계기, 스위치, 브리지

네트워크 액세스 계층

 

 

 

2. 네트워크 계층

 - ip 주소(ipv4, ipv6)로 경로 설정

 - 데이터 구조 : 패킷, 통신 단위 : 데이터 그램

 - 네트워크 계층 프로토콜

  IP internet protocol, ICMP internet control message protocol, ARP address resolution protocol, RARP reverse ARP

 - 네트워크 계층 지원 장비 : 라우터 

 

 

 

3. 전송 계층

 - end-to-end 간 전송 제어 방법 규정

 - 송신 단말 프로세스와 수신 단말 프로세스간 통신 방법 규정

 - 전송 계층 프로토콜 : TCP(연결형), UDP(비연결형)

 - 통신 단위 : TCP-> 세그먼트 , UDP-> 데이터그램

 

 

4. 응용 계층

 - 전송 계층을 이용하여 다양한 인터넷 응용서비스 제공

 - 통신 단위 : 메시지

 - TCP 지원 프로토콜 : HTTP, FTP, TELENET, SMTP 등

 - UDP 지원 프로토콜 : DNS, TFTP, SNMP 등

 

 

TCP/IP 프로토콜 계층 별 주소 지정

1. 응용 계층 - url, 메일 주소

2. 전송 계층 - 전송 포트

3. 네트워크 계층 - 논리적 주소(ip 주소)

4. 네트워크 액세스 계층 - 물리적 주소(mac 주소)

 

TCP/IP 계층 별 데이터 형테

1. 응용 계층 : 메시지

2. 전송 계층 : TCP -> 세그먼트, UDP -> 데이터 그램

3. 네트워크 계층 : 패킷(IP 패킷)

4. 네트워크 액세스 계층 : 프레임(MAC 프래임, 지그비 프레임, HDLC 프레임)

 

 

 

 

각 계층별 장비

1. 물리 계층 장비

- 중계기, 리피터 : 물리적 회선 연장, 신호 증폭

- 허브 : 멀티포트 중계기능

 

2. 데이터 링크 장비

- 브리지 : 네트워크 세그먼트간 연결

- 스위치 : PC와 스위치, 액세스 포인트를 연결

 

3. 네트워크 계층 장비

- 라우터 : 네트워크에서 경로 설정, 보안

- L3 스위치 : 라우터 기능

 

4. ~ 응용 계층까지

 게이트웨이 : 다른 프로토콜을 사용하는 망을 연결

 ex) 전화망-게이트웨이-인터넷망

 

 

 

300x250
728x90

네트워크

- 송수신자 연결하는 망

- 연결에 따른 분류 : 유선, 무선, 유무선 네트워크

- 구조에 따른 분류 : 스타, 버스, 트리, 링, 그물망 구조

- 범위에 따른 분류 : 개인단위, 기관단위, 도시단위, 국가단위

- 용도에 따른 분류 : 공중, 사설, 데이터벡업, 보안 네트워크

 

 

 

 

 

 

음성 통신 네트워크

1. 전화기 : 아날로그 전화기, 디지털 전화기

2. 전송/교환장비 : 전화 교환기, 디지털 전송장비

3. 전송장비

 - 다중화 장비(mutlplexer) : dso(64kbps) -> t1(1.544mbps), e1(2.048bps)

 - 고속 광 전송장비(sdh, dacs) : stm-1(155mbps) -> stm-4(622mbps) -> stm-16(2.5gbps)

 

 

이동 통신 네트워크

1. 이동 단말

2. 이동 통신 기지국

3. 이동 전화 교환장비

4. 이동 전화 전송장비

 

이동통신 네트워크

 

인터넷 네트워크

1. 단말 장치 - pc

2. 유/무선 중계기 - ap(공유기)

3. 교환 장비 - switch

4. 경로 설정 장비 - router

5. 게이트웨이 - 서로 다른 망(프로토콜) 연결(ex. 전화망-인터넷망)

6. 전송장비

7. 네트워크 케이블

 

 

유선 네트워크 구조 topology

1. 스타구조 star topology : 중앙제어장치가 교환, 관리 담당. 1:1 연결. 유지 용이. 중앙 장치 장애발생시 전체 장애발생

2. 버스 구조 bus topology

 - 이더넷(csma/cd방식)서 사용. 백본케이블에 모든장치 연결. 새로운 노드추가용이. 노드증가시 속도 저하

3. (역)트리 구조 tree topology

 - 스타와 버스구조 결합. 노드간 신호이동거리 증가. 건물내 층간 네트워크 구성 용이. 허브 연결끊어질시 하부단말장애

4. 링구조 ring topology 

5. 그물망 구조 mesh topology : 모든 노드 서로 연결. 장애 신뢰성 높음. 많은 비용

 

유선 네트워크 구조

 

 

 

 

 

 

무선 랜 네트워크 구조

- 유선에다가 ap 연결해서 사용하는 방법 -> 유선랜 하부 인프라 구조

- ap없이 단말간 상호연결을 통한 통신 -> 애드훅 구조

1. 유선 랜 하부 인프라 구조

 - 유선 랜 스위치에 무선랜 중계기를 유선으로 접속

 - 무선 랜 중계기 AP와 무선 단말 구간을 무선 접속

유선랜 하부 인프라 구조

2. 애드훅 ad hoc 구조

 - 액세스포인트(랜 중계기) 없이 무선 단말간 상호 연결을 통한 통신

 

애드훅 구조

 

 

 

 

 

유무선 혼합 네트워크 구조

1. 캠퍼스 네트워크

 - 유무선 랜 결합 구조 : 유선랜 - 건물 내 교실/사무실, 무선랜 -복도, 계단 등

 

 

 

네트워크 구조

1. 인터넷 네트워크 기본 구조

 - PC -> 스위치 -> 라우터 -> 외부 네트워크

2. 유선 네트워크 구조

 - 스타 토폴로지, 버스 토폴로지, 트리 토폴로지, 매시 토폴로지

3. 무선 네트워크 구조

 - 유선 랜 하부 구조, 애드훅 구조

 

 

 

 

네트워크 서비스 대상에 따른 분류

1. 공중 네트워크

 - isp 네트워크

 ex) kt, lg, skt

2. 사설 네트워크

 - 기업이나 기관 lan, 인트라넷

 - 가상 사설 네트워크 vpn

 - 가상 lan

 

 

보안 범위에 따른 분류

1. 가상 사설 네트워크 vpn

- 공중망 통신자원으로 기업/기관 본사와 자사를 사설망으로 구성

2. 가상 lan(vlan)

 - 동일한 lan에서 보안 목적으로 lan 내부에 가상적으로 구성한 세부 내트워크

 

 

 

네트워크 개념

- 2개 이상의 노드와 노드간 논리적 회선(링크)로 연결하여 통신

- 노드 : 장비, 단말, 시스템

- 링크 : 노드와 노드간 논리적인 회선

 

 

네트워크 구성요소

- 리피터 : 통신 거리를 늘려주는 중계기

- 허브/공유기 : 회선 중계하고, 여러 단말을 접속하는 장비

- 브리지/스위치 : 단말 접속 교환 기능, 물리적 주소인 mac주소로 동작

- 라우터 : 네트워크 경로 제어

- 게이트웨이 : 이종 네트워크간 상호접속 하는 장비

- 광전속장비 : 광대역 데이터 전송 장비

- 무선 인터넷 중계기 ap : 무선 접속

 

 

 

네트워크 케이블

1. 꼬임선 twist pair cable

-일반적인 랜케이블

- 비차폐 꼬임선(utp : unshielded twist pair)

 cat-3 : 10mbps

 cat-5 : 100mbps

 cat-6 : 1gbps

- 차폐된 꼬임선(stp : shielded twist pair)

2. 동축 케이블 coaxial cable

 - 안테너선

 - 얇은 케이블 thin cable : 100 base 2 . 100mbps baseband 200m전송

 - 굵은 케이블 thick cable : 100 base 5. 100mbps baseband 500m 전송

 

 

광 케이블 fiber optic cable

- 빛으로 데이터 전송

 

 

프로토콜

- 데이터 전송을 위한 통신 규약으로 데이터를 주고받는 정보의 형식과 절차 규정

 

프로토콜 구성요소

- 구문 syntax : 데이터 구조, 형식, 표현순서

- 의미 semantics : 각 비트 영역별 의미

- 시기 timing : 언제, 어느속도로 전송

 

통신 프로토콜 계층구조

- 네트워크에서 프로토콜도 여러가지 각 기능에 대한 규칙이 필요

- ISO의 OSI 7계층 구조

- IETF의 TCP/IP 계층 구조

- ISDN 프로토콜 계층 구조

300x250
728x90

통신 communication

- 송수신자간 의사소통

 

 

 

 

 

 

네트워크 기본 용여

- 노드 : 네트워크 장비, 단말, 시스템

- 링크 : 노드와 노드간 논리적인 회선

- 라우팅 : 네트워크에서 경로 설정

- 서버 : 서비스 제공하는 시스템

- 클라이언트 : 서비스 제공받는 시스템

 

 

 

 

 

다중화와 역다중화

- 다중화 multiplexing : 송신측에서 하나의 회선을 시간, 주파수, 코드로 나누어 많은 데이터를 싣는 것

- 역다중화 demultiplexing : 수신측에서 하나의 회선에 다중화되어온 데이터를 각 채널로 분리시키는것

다중화와 역다중화

 

 

캡슐화 encapsulation

- 송신측에서 데이터에 제어정보 추가

디캡슐화 decapsulation

- 수신측에서 데이터에 제어정보를 제거

 

 

 암호화

- 암호화 키를 이용해 평문을 암호문으로 만드는 것

복호화

- 복호화 키로 암호문을 평문으로 복구하는 것

 

 

 

 

 

대칭키

- 암호화 키와 복호화키가 같음

- 암호화키 = 복호화키. 간단. 암호/복호화 속도가 빠름. 키 관리 불편. 보안 취약

비대칭키

- 암호화 키와 복호화키가 별도로 존재

- 암호화키 != 복호화키. 복잡. 키 관리 용이. 암호/복호화 느림. 안전

 

 

 

 

 

데이터 전달 방식

1. 유니케스팅 unicasting

- 하나 수신자에게 전송

2. 멀티 캐스팅 multicasting

- 등록된 특정 다수 수신자에게 전송

3. 브로드캐스팅 broadcasting

- 불특정 다수 수신자에게 전송

 

 

 

 

데이터 전송 방식

- 동기식 전송  synchronous : 송수신간 타이밍 맞춰 전송

- 비동기식 전송 asynchronous : 송수신간 타이밍 맞추지 않고 전송

 

 

 

 

오류 제어 방식

- 오류 검출 : 패리티, CRC

- 오류 무시

- 오류 정정 ( 해밍코드)

- 재전송

 

패리티를 통한 오루 검출 예

- 짝수 패리티 even parity : 1의 개수가 짝수개여야 함. 홀수개라면 오류

- 홀수 패리티 odd parity : 1의 개수가 홀수여야 함. 짝수개라면 오류

패리티를 통한 오류 검출 예시

 

 

 

흐름제어 방법

- 송수신간 데이터 처리 속도 차이로 발생하는 문제 해결하기위한 방법

ex)

 a에서 100mbps로 보내는데 b에서는 10mbps속도로 받음 -> 90mbps 손실

-> a에서 10mbps만 보내도록 수정 => 흐름 제어

- x-on/off : 패킷 보내고 ack, 다음 보내기

- 슬라이드 윈도우 : 수신측 버퍼 여유를 송신측에 전달해서 전송

 

 

신호 전송 기술

1. 베이스벤드 baseband

- 신호 변조하지 않고 직접 전송. 근거리에서 사용. ex) LAN

- 100 base T(100mbps baseband twist cable 꼬임선 케이블)

- 100 base 5(100mbps baseband 500m 동축 케이블)

- 100 base Fx(100mbps baseband 광케이블)

베이스밴드 전송

 

2. 브로드밴드 broadband

- 신호를 변조하여 전송. 아날로그 신호로 변조. 넓은대역으로보냄.

- 실무에서는 베이스밴드를 주로 사용

브로드밴드 전송

 

 

 

 

신호 전송 방식

- 단방향 전송 : 송신측은 보내기만하고 수신측은 수신만 가능 ex) tv, 라디오

- 반이중방식 : 하나의 채널로 동시 송수신안되고, 한쪽에서 송신시 상대는 수신만 가능. ex) 무전기

- 전이중방식 : 채널이 2개로 동시 송수신 가능. ex) 일반 전화, 휴대폰

 

 

 

 

 

네트워크 기본 개념

1. 노드(장비), 링크(노드 연결)

2. 다중화(여러 신호를 하나의 회선으로)/역다중화(한 회선에서 여러 신호)

3. 캡슐화(제어,주소정보 추가)/디캡슐화(제어, 주소정보 꺼냄)

4. 암호화(평문->암호문), 복호화(암호화 -> 복호화) - 대칭키(암호키=복호화키), 비대칭키(암호키!=복호화키)

5. 동기식(송수신측 타이밍 맞춤)/비동기식(속수신 타이밍x맞춤)

 

 

 

네트워크 구성 요소

- 네트워크 장비 : 리피터, 허브, 스위치, 라우터, 게이트웨이

- 서버 장비 : 웹/메일/웹하드 서버, DNS/DHCP 서버, 그룹웨어 서버

- 보안 장비 : 방화벽, 보안서버

- 네트워크 케이블 : tp 케이블(꼬임선 케이블), 동축 케이블, 광케이블

 

네트워크 장비

- 허브 : 백본에서 100m연결시 호스트들이 대역폭을 나눠서 사용

- 스위치 : 백본에서 100m 연결시 호스트들이 같은 대역폭으로 사용

- 라우터 : 경로 설정, 흐름제어

- 게이트웨이 : 프로토콜이 다른 네트워크 연결. ex) 전화망-인터넷망 연결

 

 

인터넷 역사

69 : 국방부에서 알파넷 연결

73 : tcp/ip 프로토콜 개발

83 : tcp/ip가 알파넷 공식 프로토콜로 채택

86 : nsf-net : 미국 전역에 t1 백본 연결

90초 : isp를 통한 상용 인터넷 서비스 제공

 

 

300x250

'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글

네트워크 - 3 TCP/IP 프로토콜  (0) 2020.05.18
네트워크 - 2 네트워크 구조  (0) 2020.05.17
데이터교환방식과 라우팅  (0) 2020.05.15
TCP/IP와 프로토콜  (0) 2020.05.15
네트워크 장비  (0) 2020.05.15
728x90

갱신 이상 update anomaly

- 데이터 중복으로 발생하는 문제

- 삽입 이상 : 불필요한 데이터를 삽입하지 않으면 데이터 삽입이 안되는 이상

- 수정 이상 : 중복데이터 중 일부만 수정되어 데이터 불일치 발생

- 삭제 이상 : 유용한 데이터도 같이 삭제되는 문제

 

교수 릴레이션 - 기본키 : 학번, 교과목 번호

 

- 학번에 학년 정보가 중복되어 있음

- 삽입 이상 : 600번 학생. 2학년 삽입 시 교과목 번호가 없으면 삽입 x

- 수정 이상 : C312 수강한 400번 학생 학년을 4 -> 3학년으로 변경시 나머지 데이터 학년과 불일치

- 삭제 이상 : 200번 학생 삭제시 3학년 정보도 사라짐

->속성간 종속성 고려가 불충분해서 발생

=> 릴레이션 분해해서 하나의 종속관계를 하나의 릴레이션으로 표현해야함 => 릴레이션 정규화

 

 

함수적 종속 functional dependency : fd

- 정규화 핵심 개념으로 릴레이션의 갱신 이상을 발견하는 방법.

- 속성 간 관계에 대한 제약조건에 해당

- 속성 y는 속성 x에 함수적으로 종속 : x -> y

 

사원 릴레이션의 함수적 종속 관계 표현

1. 사원번호 -> 사원 이름, 주소, 전화번호 : 사원번호를 알면 이름, 주소, 전화번호알수있음

2. 부서번호 -> 부서이름 : 부서번호를 알면 부서이름 알수있음

3. 부서이름 -> 부서번호 :부서이름을 알면 부서번호알수있음

4. {사원번호, 부서번호} -> 직책 : 사원번호, 부서번호를 알아야 직책을 알수있음

5. x : 사원이름이나 부서번호, 주소등을 알아도 나머지 속성을 알수없음. 함수적으로 결정 x

 

함수적 종속 다이어그램 function dependency diagram fdd

- 함수적 종속 관계를 그림으로 표현

 

사원 릴레이션 함수적 종속 다이어그램

 

 

 

완전 함수적 종속 full functional dependency

- 복합속성 x -> y가 성립시

- 복합속성 {a,b}가 c의 결정자로 a나 b만으로 c를 결정 불가

완전 함수적 종속

부분 함수적 종속

- 복합 속성 x->y 성립시

- 복합 속성 {a, b} 중 b만으로 c를 결정

부분 함수적 종속

 

 

사원 릴레이션 함수적 종속 정리

함수적 종속 1. {사원번호, 부서번호} -> (직책, 사원이름, 주소, 전화번호, 부서이름) 성립

부분 함수적 종속 1.  {부서번호} -> (사원이름, 주소, 전화번호)

부분 함수적 종속 2  {사원번호} -> (부서이름)

완전 함수적 종속 1. {사원번호, 부서번호} -> (직책)

 

 

 

이행적 함수적 종속 transitive functional dependency

- 한 릴레이션 속성 a, b, c가 있을때 다음 필요충분조건 만족하는경우. 속성 c가 속성 a에 이행적 함수적종속

속성 c는 a에 이행적 함수적 종속

 

 

학생 릴레이션 예시

- 학생(학번, 교과목번호, 성적, 학과 이름, 학과 전화번호)

함수족 종속 

- 완전 함수적 종속 : {학번, 교과목 번호} -> 성적

- 부분 함수적 종속 : 학번 ->(학과이름, 학과전화번호)

- 완전 함수적 종속 : 학과이름->학과전화번호

학생 릴레이션 함수적 종속 다이어그램

학번 -> 학과명, 학과명-> 학과 전화번호

=> 학과 전화번호는 학번에 이행적 함수적 종속관계

 

 

정규화 normalization

- 데이터 중복을 제거하여 갱신 이상 제거. 논리적 데이터 모델 단순화 

* 많은 조인이 발생하여 질의 응답시간이 느려질수있음

 

정규형 normal form

- 데이터 중속 감소와 응답시간 단축하기위한 제약 조건을 만족하는 형태 

- 제약조건에 따라 제1 정규형 ~ 제 5정규형.

- 정규화 정도가 낮을수록 하나의 릴레이션에 많은 정보 포함

 

 

정규형 단계

1. 제 1정규형 1NF : 모든 속성 도메인이 원자값 -> 중복 속성 분리

2. 제 2정규형 2NF : 모든 속성이 기본키에 완전 함수적 종속 -> 기본키에 부분 함수적 종속 속성 분리

3. 제 3정규형 3NF : 이행적 함수적 종속 없어야함 -> 이행적 함수적 종속 속성 분리

4. 보이스/코드 정규형 BCNF

* 보통 제3정규형이나 보이스/코드 정규형까지 정규화 수행

 

3NF, BCNF가 최적인 이유

- 1NF, 2NF : 불필요한 데이터 중복, 공간 낭비

- 4NF, 5NF : 너무많은 릴레이션. 복잡한 종속성

 

 

정규화 단계

0. 비정규 릴레이션

1. 1NF <- 원자 값이 아닌 도메인 분해

2. 2NF <- 부분 함수적 종속 제거

3. 3NF <- 이행적 함수적 종속 제거

4. BCNF <- 결정자가 후보키가 아닌 함수적 종속 제거

5. 4NF <- 다치 종속성 제거

6. 5NF <- 조인 종속성 제거

 

 

- 비정규 릴레이션 예시 : 동아리가 다중치 속성

학생1 릴레이션 - 비정규 릴레이션

 

(1) 제1 정규형

- 릴레이션 속성은 원자값만 가져야함. 학생 2 새 릴레이션 생성(기본키 : {학번, 동아리})

학생2 릴레이션 - 제 1정규형, 1NF

 

- 그러나 학번, 이름, 학과가 중복된 데이터 발생 -> 2개의 새 릴레이션(제 1 정규형 만듬)

- 학생 3 릴레이션(1NF) : 학번 -> (이름, 학과)

- 학생 4 릴레이션(1NF) : {학번, 동아리}

학생 3 릴레이션 - 제1정규형, 1NF
학생 4 릴레이션 - 제1 정규형, 1NF

 

(2) 제 2정규형

- 제1 정규형은 기본키에 부분적 함수적 종속으로 갱신 이상 발생

-> 릴레이션을 분해하여 부분적 함수적 종속 제거하여 제 2정규형 만듬

 

수강지도 릴레이션 분해

- 수강지도(학번, 교과목번호, 지도교수, 학과, 성적)

- 기본키 : {학번, 교과목번호}

- 함수적 종속

 학번 -> (지도교수, 학과)

 {학번, 교과목번호} -> 성적

 지도교수 -> 학과

수강지도 릴레이션 1NF

 

수강 릴레이션 2NF, 지도 릴레이션 2NF

- 학번 -> (지도교수, 학과)로 부분적 함수적 종속 발생

=> 수강 릴레이션과 지도 릴레이션으로 분해

지도(학번, 지도교수, 학과)

수강(학번, 교과목 번호, 성적)

지도 릴레이션 2NF

 

수강 릴레이션 2NF

 

 

(2) 제 3 정규형

- 제 2정규형은 이행적 함수적 종속관계가 존재시 갱신 이상 발생

-> 이행적함수적 종속 제거하여 제3정규형 만듬

 

 

지도 릴레이션 2NF

- 지도(학번, 지도교수, 학과)

- 기본키 : 학번

학번 ->(지도교수, 학과)

지도교수 -> 학과

=> 학과는 학번에 이행적 종속관계

지도 릴레이션 2NF

 

 

지도 릴레이션 분해 3NF

- 지도릴레이션을 학생지도와 교수소속 3NF 릴레이션으로 분해

학생지도(학번, 지도교수)

교수소속(지도교수, 학과)

학생지도 3NF
교수소속 3NF

 

보이스 코드 정규형 BCNF

- 제3 정규형은 후보키가 아닌 결정자가 존재시 갱신 이상 발생

-> 모든 결정자가 후보키가되는 BCNF 만듬

 

수강과목 3NF 릴레이션

- 수강과목 : (학번, 교과목, 교수)

- 기본키 : {학번, 교과목}

- 후보키 : {학번, 교과목}, {학번, 교수}

{학번, 교과목} -> 교수

교수 -> 교과목

-> 교수 속성이 후보키가 아닌데도 결정자 역활 수행

수강과목 3NF 릴레이션

 

수강과목 3NF 릴레이션 분해

- 교수과목(교수, 교과목) BCNF 릴레이션

- 수강교수(학번, 교수(FK)) BCNF 릴레이션

교수과목 BCNF

 

수강교수 BCNF

 

역정규화 denormalization

- 성능 개선을위해 데이터 중복과 갱신 이상이 생기더라도 낮은 정규형으로 되돌아감

 

300x250
728x90

테이블과 릴레이션 차이

- 테이블 : 릴레이션 표현하는 구채적인 방법

- 릴레이션 : 추상적인 개념 중복 허용 x

 

 

논리적 설계

- 개념적 데이터 모델을 DBMS가 지원하는 논리적 데이터 모델(릴레이션=릴레이션 인스턴스 + 릴레이션 스키마) 설계

- 논리적 모델링 : 개념적 스키마를 논리적 스키마(릴레이션 스키마)로 변환, 정규화 수행, 무결성 제약조건 정의

- 트랜젝션 인터페이스 설계 : 트랜젝션 모델링을 기초로 인터페이스 설계

 

릴레이션 스키마

- 관계 데이터 모델의 기본이 되는 릴레이션을 구성하는 속성들의 집합

- 릴레이션 이름과 속성들로 표현

1. erd 개체와 관계를 릴레이션 스키마로 변경 ->  릴레이션명(속성1, 속성2)

2. 기본키에 밑줄 표기

3. 스키마 단순화 - 1:1, 1:n 관계 유형 단순화

4. 정규화로 적합한 릴레이션 형태로 변환

개체 관계 모델을 릴레이션 스키마로 변환

 

튜플 tuple : 관계 데이터 모델의 한 행으로 개념 데이터 모델의 엔티티에 대응

속성 attribute : 관계 데이터 모델 의 열

도메인 domain : 속성이 가질수 있는 값의 영역

카디널리티 cardinality : 릴레이션이 가지는 튜플의 갯수

차수 degree : 릴레이션이 가지는 속성의 개수

릴레이션 인스턴스 relation instance : 튜플들의 집합

릴레이션 스키마 relation schema : 속성들의 집합

릴레이션 relation : 릴레이션 인스턴스 + 스키마

키 key : 유일하게 식별할수 있는 속성이나 속성 집합

후보키 : 유일성, 최소성 만족하는 속성 집합

슈퍼키 : 유일성만 만족하는 속성 집합

대체키 : 기본키가 아닌 후보키들

기본키 : 후보키중 가장 적합한 키, not null, unique

외래키 : 타 릴레이션의 기본 키를 참조하는 키

 

무결성 제약 조건 integrity constraints

- 정확성과 일관성 유지를 위해 db가 만족해야하는 조건

1. 개체 무결성 :기본키는 구분가능한 유일한 값으로, null값을 가져선 안됨

2. 참조 무결성 : 외래키는 null이나 기본키값을 가져야함

3. 도메인 무결성 : 미리 정해진 도메인 값을 가져야함

- 기본키와 외래키는 개체 무결성과 참조 무결성은 묵시적으로 정의됨

- not null, unique, check 는 논리적 모델링 단계에서 명시적으로 정의

300x250
728x90

개념적 설계 conceptual design

- 요구 분석 명세서를 토대로 DBMS와 무관한 추상적 형태로 요구사항 표현

- 개념적 모델링 : 데이터 중심 DB 설계. 데이터 요구분석 명세서로 ER 모델 도출 -> ERD로 표현

- 트랜잭션 모델링 : 처리 중심 DB 설계. 트랜젝션 요구분석 명세서를 기초로 업무 단위 유형별 트랜잭션 설계

 

 

데이터 요구 분석 명세서 -> 개념적 모델링 -> ER 모델

- 목표 : 주요 개체와 관계를 식별

1. 핵심 개체 타입 식별

2. 관계 타입 식별

3. 관계 타입 유형과 카디널리티(옵션, 최소 최대범위) 설정

4. 개체 타입 속성 식별

5. 개체 타입 식별자 결정

6. 관계 타입 속성 식별

7. ERD 표현

8. 검증

 

개체 entity

- db가 표현하려는 정보로 구별될수 있는 요소

 

개체 타입 entity type

- 테이블

 

관계 relation

- 개체간 의미있는 연결, 연관성

 

속성 attribute

- 개체의 특성. 정보의 가장 작은 단위

- 개체 설명하는 명사 -> 개체의 속성, 관계 설명하는 명사 -> 관계의 속성

 

차수 degree

- 관계에 연결된 개체 타입의 수

 

카디널리티 cardinality

- 관계에 대한 개체 최소, 최대 범위. 옵션

 

ERD entity relation diagram

- 개체 관계 모델을 표현하는 방법

1. 개체 타입 표시 - 사각형. 이름

2. 개체 타입 간 관계 표시 - 가능한 동사

3. 관계 타입 유형 표시 : 1:1, 1:N, N:M

4. 관계 타입 카디널리티 표시 : (최소, 최대) 옵션

5. 개체 타입 속성 표시 : 최소 한개의 식별자(기본키). 식별자는 밑줄, 동그라미. 최소 2개이상

6. 관계 타입 속성 표시 : 속성이 있는 경우

 

 

300x250
728x90

데이터베이스 라이프사이클

1. 요구사항분석 : 저장할 데이터 범위 결정을 위해 요구사항 분석

2. 설계 : 개념적설계, DBMS 선정, 논리적설계, 물리적설계 수행

3. 구현 : 설계된 DB 스키마를 기초로 생성, 데이터 저장, 프로그램 개발

4. 운영 : 서비스 제공

5. 감시 및 개선 : db 성능 향상, 새 요구조건에 대응

 

DB 구축시 고려사항

- 무결성

- 일관성

- 회복

- 보안

-효율성

- 확장

 

1. 요구사항 수집 및 분석

- 정보 내역 수집 분석 -> 개념적 설계에 필요한 요구 분석 명세서 작성

2. 개념적 설계

- 요구 분석 명세서를 기초로 DBMS와 무관한 추상적 형태로 사용자 요구 표현.

- 미처 수집되지 않은 새로운 요구사항 발견

- 개념적 모델링(데이터 중심) + 트랜젝션 모델링(데이터 처리 중심)

3. DBMS 선정

- 논리적 데이터모델, 운영환경, 경제성을 고려하여 선정

4. 논리적 설계

- 개념적 데이터 모델(개념적 스키마)를 DBMS가 지원하는 논리적 데이터 모델(논리적 스키마)로 변환

- ERD를 논리적 데이터 모델(관계 데이터 모델)- 릴레이션 스키마, 무결성 제약조건으로 변환.

- 정규화로 보다 적합한 형태로 변환.

- 요구 분석 명세서를 기초로 제약조건 정의

5. 물리적 설계

- 논리적 스키마(릴레이션 스키마와 무결성 제약조건)을 기초로 내부 스키마(물리적 데이터 구조)로 변환

- 내부 스키마( 저장 레코드 양식), 뷰와 인덱스 설계, 트렌젝션 분석 및 인터페이스 설계

- 릴레이션스키마,무결성 제약조건 -> 내부 스키마(DDL), 뷰, 인덱스 정의

- 릴레이션은 테이블로, 속성은 칼럼, 관련성은 외부키,  데이터 타입과 크기 제약조건 등 표현

6. 구현 및 테스트

- DBMS로 DB 생성 , 프로그램 개발, 테스트

 

 

 

 

(1) 요구사항 수집 및 분석

1) 요구 분석 명세서

 - 요구 사항 수집 분석해서 요구분석 명세서 작성 - 데이터 요구 분석 명세서와 트랜젝션 요구 분석 명세서

- 데이터 요구 분석 명세서 : 데이터 분석 결과

 ex) 종업원은 유일한 사원번호를 가지며 이름, 급여, 입사일, 부서 정보기 필요. 종업원은 정규직과 계약직으로 구분.

- 트랜젝션 요구 분석 명세서 : 데이터 처리 과정 중심

 ex) 새 종업원 정보를 삽입, 기존 종업원 급여 변경, 기존 종업원 부서 정보 변경, 퇴직한 종업원 정보 삭제

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

데이터베이스 6 - 논리적 설계  (0) 2020.05.17
데이터베이스 5 - 개념적 설계  (0) 2020.05.17
데이터베이스 3 - SQL  (0) 2020.05.17
요구사항 2 - UML  (0) 2020.05.16
데이터베이스 2 - 데이터 모델링  (0) 2020.05.16
728x90

db 다운

mysql community

https://dev.mysql.com/downloads/workbench/

 

 

DDL 데이터 정의어

- DB 구조 정의

 

테이블 생성

create table 테이블이름

(

  속성명 데이터타입 [not null] [default] [primary key],

   foreign key(속성명) references 참조테이블명(속성명),

   primary key(속성명),

   unique(속성명),

   constraint 제약조건명 check(조건),,

  [on delete 옵션],

  [on update 옵션]

);

- on delete/on update : 삭제나 업데이트시 옵션 지정 가능

 

create table option

- set null : 널 설정

- cascade : 관련 데이터 삭제

- no action : 조치 x

- set default : 디폴트값 설정

 

테이블 생성 예시
기본키, 고유키 등록 예시

 

외래키 등록 예시

 

제약조건 등록 예시

 

테이블 삭제 drop table

- drop table 테이블명 {restrict | cascade};

- restrict :참조하는 뷰나 제약조건 있을 시 삭제 불가

- cascade : 참조하는 뷰나 제약조건 있을시 그것들도 같이 삭제

ex) "취미'라는 이름의 테이블 삭제 참조하는 뷰나 제약조건이 있을 경우 삭제

 

기존 테이블 변경 alter table

alter table 테이블이름

[add 열이름 데이터타입] [default 값] |

[drop 열이름] [무결성제약조건] [restrict | cascade]

[modify 열이름 [데이터타입] (drop default | set default 값)];

1. 열추가/기본값 설정

2. 열 삭제

3. 열 변경

4. 열 변경/기본값 설정

 

스키마 생성

- create 스키마명 authorization 사용자아이디;

 

뷰 생성

- 뷰를 정의

- create view 뷰명[속성명 ...] as select문

 

DCL 데이터 제어어

- 권한 제어/데이터 복원 적용 등

- GRANT 권한 부여, REVOKE 권한 회수

 

1. 테이블 권한 부여

  -> grant 권한 on 테이블명 to 사용자계정명 [with grant option]

  -> revoke [grant option for] 권한 on 테이블명 from 사용자

- 권한 종류 : all, select, insert, delete, update, alter

- with grant option :  타 사용자에게 재부여

 

2. 사용자 등급 지정 및 해제

- 사용자 등급 : dba, resource db와 테이블 생성 가능자, connect 일반 사용자

- grant 사용자등급 to 사용자 [identified by 암호];

- revoke 사용자등급 from 사용자

 

 

 

commit

- 데이터베이스 변경사항 반영 명령

- commit;

 

rollback

- commit 하기전 변경사항 취소

- robback [to 세이브포인트지점];

 

savepoint

- 롤백할 지점 설정

- savepoint [세이브포인트명];

0. 오토커밋부터 끄기 - 커밋 시 세이브 포인트가 사라지고, 롤백할수없으므로 우선 오토커밋 설정부터끈다.

1. 사원 행 추가, 세이브포인트 s1 지정

2. 1번 사원 호봉 15로 변경

 

3. savepoint s1로 롤벡 -> 호봉이 12로 돌아옴

 

 

데이터 조작어

- db 사용자가 데이터 사용하는 언어. 검색, 삽입, 삭제, 수정 등

- select [* or 속성명] from 테이블/뷰명 where 조건

- update 테이블명 set 속성=값 where 조건

- delete from 테이블명 where 조건

- insert into 테이블명[(속성들)] values(값들);

 

1. select 명령

select [all|distinct] [열 목록 as 새이름] from 테이블 목록

[where 조건]

[group by 열목록]

[having 그룹 조건]

[order by 열목록 [asc|desc]];

- all : 중복되는 행 그대로 표시

- distinct : 중복되는행 삭제 표시

- as : 열 이름을 새이름으로 대치

- asc : 오름차순 (기본값)

- desc : 내림차순 (지정해야함)

 

조건 1. 호봉 20보다 큰경우

조건 2. 이름이 길동으로 끝나는 사람

조건 3. 이름이 김으로 시작하는사람

 

조건 4. 호봉으로 그룹

 

조건 5. 그룹핑 조건

조건 6. 호봉이 11보다 크고 30보다 작은 사람

조건 7. 호봉이 null 인 경우

 

as - 열대치

distinct - 호봉 열 데이터의 중복된 행 제거

 

정렬 - 호봉 내림차순 정렬

특정 튜플 갱신 update

 

 

 

집계함수*그룹 함수)

- count(속성명) : 해당 그룹 속성 개수

- sum(속성명) : 해당 그룹 속성 합

- avg(속성명) : 해당 그룹 속성 평균 

- max(속성명)

- stddev(속성명)

- variance(속성명)

 

 

호봉 그룹별 인원 수

 

인원이 2이상인 호봉 그룹 사원 수

300x250
728x90

UML

- Unified Modelinig Language

- 개발자와 고객 등 의사소통을 원할하게 하기 위해 표준화한 객체지향 모델링 언어

- 사물, 관계, 다이어그램 구성

- 사물 : 기본 요소. 구조 사물 - 클래스, 유스케이스, 컴포넌트, 노드, 행동 사물, 그룹 사물 - 패키지, 주해 - 노트

- 다이어그램 : 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램, 시퀀스 다이어그램, 상태 다이어그램

 

연관 관계

- (양방향 관계)실선으로 연결하여 표현, 방향성은 화살표

- 1 : 1개 객체가 연관

- n : n개 객체가 연관

- 0..1 : 없거나 1만 존재

- 0..* or * : 없거나 다수 존재

- n..* : 적어도 n개 이상

- n..m : 연관된 객체가 n에서 m개

 

예시

- 교수와 학생은 양방향 상담 관계

- 학생과 휴대폰은 1:1 단방향 소유 관계

 

집합 관계

- 포함하고 포함되는쪽이 독립적인 관계

- 실선 마름모

 

포함 관계

- 포함하는/되는 쪽이 독립적일수 없이 포함하는 관계

- 실선 찬 마름모

의존 관계

- 필요한 관계

- 점선 화살표

일반화 관계

- 일반적인지 표현

- 실선 삼각형

 

실체화 관계

- 기능으로 그룹화 할수 있는 관계

- 점선, 삼각형

300x250
728x90

데이터 모델링

- 데이터를 DB로 표현하기 위한 모델링 과정

1. 개념적 모델링 : 현실 데이터를 추상화하여 개념적 데이터로 표현. ER 모델 이용하여 ERD로 표현

2. 논리적 모델링 : 개념적 모델을 DBMS에서 사용하는 논리적 데이터 모델로 변환. 2차원 테이블 형태로 릴레이션 표현

3. 물리적 모델링 : 논리적 데이터 모델을 물리적 데이터(디스크에 저장)로 변환 

 

데이터 모델

- 데이터를 기술하는 개념적 도구

- 개념적 데이터 모델 : 개체와 관계라는 개념으로 구성 -> ER 모델

- 논리적 데이터 모델 : 레코드와 관계라는 개념으로 구성 -> 관계형 데이터 모델

* 데이터 모델은 일반적으로 논리적 데이터 모델 지칭

 

 

개념적 데이터 모델

- 현실 세계를 개념적 모델링하여 얻을 수있는 데이터 구조. 개체와 관계로 구성된 데이터 모델 ex) ER 모델

- Entity Relation Model : ERD로 표현

 

논리적 데이터 모델

- 개념적 데이터 모델을 DBMS에서 사용가능한 논리적 데이터 모델. 레코드와 관계 개념으로 구성

- 관계 데이터 모델 : DB를 릴레이션(테이블 집합)으로 모델링한 구조

 

ER 모델 관련 용어

 

개체 entity

- DB가 표현하려는 정보, 서로 구별될수 있는 요소

- 파일 시스템의 레코드에 대응

- 둘 이상의 속성으로 구성

 

속성 attribute

- 개체 특성을 나타내는 요소. 가장 작은 논리적단위 열

 

도메인 domain

- 속성이 가질수 있는 값의 범위

- ex) : 성별 속성의 도메인 "남, 여"

 

개체 타입 entity type

- 속성들을 포함한 개체 정의

 

개체 인스턴스 entity instance

- 행 하나 값들의 집합

 

관계 relation

- 개체들관 의미있는 연결

- 1:1, 1:N, N:M 관계

 

카디널리티 cardinality

- 관계에 대응하는 개체 수

- (min, max)로 표현 . (1, 3) 해당 개체는 최소 1개서 3개까지 대응

- 아래의 예시서 학생은 최소 1개서 7개의 교과목 수강. 교과목은 최소 1, 최대 7명 학생이 수강

 

차수 degree

- 관계에 연결된 개체 타입 개수

- 개체 타입 개수에 따라 1진, 2진, N진 관계로 구분

 

 

 

 

관계 데이터 모델

- DB를 2차원 테이블, 릴레이션 집합으로 모델링하는 논리적 데이터 구조

- ER 모델을 관계 데이터 모델로 바꾸기 쉬움

- 사원 개체를 표현한 개체 관계 데이터 모델

 

테이블과 릴레이션 차이

- 테이블 : 릴레이션을 표현하는 구체적인 표현 방법. 중복 행 허용

- 릴레이션 : 추상적 개념. 중복행 허용 x

 

관계 데이터 모델 관련 용여

- 튜플 tuple : 관계 데이터 모델 하나의 행. 엔티티에 대응

- 속성 attribute : 관계 데이터 모델 하나의 열

- 도메인 domain : 속성이 가질수 있는 값의 범위

- 기수 cadinality : 릴레이션이 갖는 튜플의 갯수

- 차수 degree : 릴레이션이 갖는 속성의 갯수

- 릴레이션 스키마 relation scehema : 속성들의 집ㅎ바

- 릴레이션 인스턴스 relation instance : 튜플들의 집합

- 릴레이션 relation : 행과 열의 2차원 구조로 릴레이션 스키마와 릴레이션 인스턴스의 합한 개념

- 키 key : 튜플을 유일하게 식별할수 있는 속성, 속성 집합

* 개체 관계 모델과 관계 데이터 모델의 카디널리티와 차수의 개념은 조금씩 다르다

 

 

관계형 데이터베이스

- 릴레이션(테이블)의 집합으로 테이블 형태로 표현

 

관계형 데이터베이스 스키마

- 릴레이션 스키마와 무결성 제약조건으로 정의

 

릴레이션 스키마 :  속성들의 집합

릴레이션 인스턴스 : 튜플들의 집합

릴레이션 : 릴레이션 스키마 + 인스턴스

 

- 릴레이션을 구성하는 튜플들을 식별하는 속성, 속성들의 집합

- 후보키 : 유일성과 최소성을 만족하는 속성들의 집합

- 슈퍼키 : 유일성은 만족하나 최소성이 만족하지 않는 속성 집합

- 기본키 : 후보키 중 가장 적합한 하나의 키. not null. 중복 불가

- 대체키 : 기본 키를 제외한 나머지 후보키

- 외래키 :하위(참조) 릴레이션이 상위(피참조) 릴레이션의 기본키를 외래키로 가짐

 

유일성 : 각 튜플을 유일하게 식별

최소성 : 각 튜플들을 유일하게 식별한는데 필요한 최소 속성만 포함

 

후보키 candidate key

- 사번, 이름, 입사일, 호봉, 휴대폰 속성

- 사번, 휴대폰만 후보키 가능

- 이름, 입사일, 호봉은 유일하지 않음

- {사번, 이름}, {사번, 호봉} -> 최소성을 만족하지 않음

 

외래키 foreign key

- 하위-참조 릴레이션이 상위-피참조 릴레이션의 기본키(or null)를 참조하는 속성을 외래키

 

무결성 제약조건 integrity

- 데이터 정확성 일관성 유지를 위해 DB가 만족해야하는 조건

- 개체 무결성 entitiy integrity : 튜플 유일하게 식별하도록 기본키는 반드시 값을 가져야함. 기본키는 not null

- 참조 무결성 referencial integrity : 외래키는 피참조 릴레이션의 기본키나 널값을 가짐

- 도메인 무결성 domain integrity : 미리 정해진 값을 가져야함

 

무결성 제약 조건

- 기본키와 외래키는 개체 무결성과 참조 무결성이 묵시적으로 정의

- not null

- unique

- check 

300x250

'컴퓨터과학 > SW, DB' 카테고리의 다른 글

데이터베이스 3 - SQL  (0) 2020.05.17
요구사항 2 - UML  (0) 2020.05.16
데이터베이스 1 - 데이터베이스 관리 시스템  (0) 2020.05.16
보안 점검 항목  (0) 2020.05.16
암호 알고리즘  (0) 2020.05.16

+ Recent posts