1006.pkt


개요


 6. 액세스리스트

  1) 액세스 리스트란?

  2) 액세스 리스트의 사용 목적

  3) 액세스 리스트의 적용 대상

  4) 액세스 리스트의 규칙

  5) 액세스 리스트의 종류

   (1) Standard Access List

   (2) Extended Access List

   (3) Wildcard Mask

  6) 액세스 리스트 관련 명령어

  7) 액세스 리스트 사용 방법

  8) 액세스 리스트 실습


6. 엑세스리스트(Access List, Access Control List, ACL)

 1) 엑세스 리스트란?

    • 네트워크의 문지기
    • 라우터 등의 장비에서 패킷 필터링, 패킷 분류를 결정짓는 일련의 규칙 목록들


 2) 액세스 리스트의 사용 목적

    • 트래픽 제어
      • 가장 일반적인 용도, 어떤 인터페이스를 통과(in, out)하는 패킷 Traffic을 제어
    • 보안용
    • 패킷의 식별용 등

 3) 액세스 리스트 적용 대상
    • Interface에 적용 -> Access Group
      • 이 경우의 Access List는 입력 또는 출력 인터페이스에 적용
    • Proticol에 적용 -> Distribute List
    • 입력/출력 인터페이스 및 프로토콜 각각에 하나의 ACL만 적용 가능

 4) 액세스 리스트의 규칙 **
  1. access-list 윗줄부터 하나씩 차례로 수행된다.
  2. 엑세스 리스트의 맨 마지막에 Line에 "permit any"를 넣지 않을 경우에는 default로, 
    어느 엑세스 리스트와 match되지 않은 나머지 모든 addressdeny 된다.
    • 즉, access-list의 맨 마지막 줄에는, default 값으로 deny all (deny any)이 지정되어있는 것으로 간주
  3. 엑세스 리스트의 새로운 line 은 항상 맨 마지막으로 추가되므로 access-list line의 선택적 추가(selective add)나 제어(remove)가 불가능하다.
    • access-list를 수정할 수 없고, 처음 초기 세팅부터 다시 시작해야 함
  4. Interface에 대한 access list의 정의(define)가 되지 않은 경우
    (즉, Interface에 access-group 명령이 들어있지 않은 경우)
    결과는 permit any가 된다.
    • 즉, access list가 정의 되지 않은 interface는 default값으로 permit any가 된다.

 5) 엑세스 리스트의 종류

 

  (1) Standard ACL (표준 액세스 리스트)

    • 출발지 IP 주소만으로 검사
      • IP 주소 및 네트워크 주소로 필터링
    • Access-List-Number (표준 ACL 번호)
      • 1 ~ 99 또는 1300 ~ 1999 (IP)
      • 300 ~ 399 (DECnet),
      • 800 ~ 899 (IPX),
      • 1000 ~ 1099 (IPX SAP) 등
    • 사용문법 : access-list access-list-number {permit | deny} source-address [wildcard-mask]
    • 사용예시 : access-list 1 permit 210.130.50.2
    • 사용위치 : 최대한 목적지에 가깝게 설정

  - Inbound Access List & Outbound Access List


  (2) Extended ACL (확장 액세스 리스트)

    • 목적지 및 출발지의 주소, 프로토콜, 포트번호 등을 모두 검사 (폭넓은 확장 가능)
      • IP 주소 뿐만아니라 TCPUDP의 포트 번호도 검사하여 제어
      • ICMP code 및 type 등
    • Access-list-number (Extended ACL 번호)
      • 100 ~ 199 또는 2000 ~ 2699(IP)
      • 900 ~ 999 (IPX) 등
    • 사용문법 : access-list access-list-number {permit | deny} protocol source-addess source-wildcard-mask destination-address destination-wildcard-mask operator port
    • 사용예시 : access-list 101 permit tcp 210.70.20.230 0.0.0.0 210.70.10.33 0.0.0.0 eq www
    • 사용위치 : 최대한 출발지에 가깝게 설정

  - Extended Access List의 동작



 6) Wildcard Mask
    • IP 주소에서 비트 단위의 마스크를 의미
      • '0'은 해당 비트 위치에서 정해진 비트 값과 정확하게 일치해야 함 (검사 필요)
      • '1'은 해당 비트 위치에서 어떠한 비트 값과도 일치 할 수 있음 (검사 불필요)
        • 즉, 비트 '1'값이면, 0 또는 1 모두 허용
    • 예시) 192.168.30.0 에서, Wildcard Mask가 0.0.0.255일 때 허용 가능한 IP 주소
      • 192.168.30.0 ~ 192.168.30.255 까지 모두 가능함을 의미
        (255는 2진수로 1111 1111)
      • 192.168.0.1 0.0.0.0, host 192.168.0.1은 호스트 주소 192.168.0.1 하나 만을 대상으로 함
      • 0.0.0.0 255.255.255.255, any는 모든 호스트를 대상으로 함

 7) Access-List 관련 명령어 
    • ACL 설정 명령어 
      • access-list
    • ACL 활성화 명령
      • access-group
    • ACL를 설정한 내용확인 명령어
      • show ip access-list

 8) 사용 방법
    • access-list 정의 생성 -> Interface별 , protocol별로 각각 정의된 access-list 적용(access-group)
      1. ACL 설정
      2. ACl 적용할 인터페이스 선택
      3. 선택한 인터페이스에서 ACL 활성화
    • 적어도 1이상의 '허용' 구문을 포함해야함
      • 그렇지 않으면 모든 패킷을 차단하게 됨


   (1) Access-list 정의 생성

    ① Standard ACL 

    • Router(config)# access-list access-list-number { permit | deny } source [source-wildcard]

      • access-list-number

        • ACL의 종류를 구분하기 위한 것 1 ~ 99(Standard), 100 ~ 199(Extended)

      • { permit | deny }

        • Access-list의 조건에 일치 할 경우 'permit' 또는 'deny'를 수행하도록 함

      • source

        • 출발지 IP 주소

      • source-wildcard

        • 해당 network의 prefix를 제한해 주는 역할 

    • source [source-wildcard]
      • Any
        • 0.0.0.0 255.255.255.255의 역할을 대신 함
        • 모든 IP address를 다 포함
      • Host
        • 192.168.30.2 0.0.0.0를 host 192.168.30.2로 줄여 쓸 수 있다.
        • 해당 IP에만 조건을 적용
   ② Extended ACL
    • Router(config)# access-list access-list-number {permit | deny}
      source [source-wildcard] destination [destination-wildcard]
      operator established port
      • access-list-number
        • Extended ACL에서는 100 ~ 199까지 사용
      • { permit | deny }
        • Access-list의 조건에 일치 할 경우 'permit' 또는 'deny'를 수행하도록 함
      • protocol
        • IP와 ICMP, IGRP, TCP, UDP등의 프로토콜
      • source
        • 출발지 IP 주소
      • source-wildcard
        • 해당 network의 prefix를 제한해 주는 역할
      • destination
        • 목적지 IP 주소
      • destination-wildcard
        • 해당 network의 prefix를 제한해 주는 역할
      • operator
        • protocol에서 기입한 포트번호에 대한 비교 연산을 위한 것
          • gr (grater than)
          • lt (less than)
          • eq (equal)
          • neq (not equal)
      • established
        • TCP 데이터그램이 ACK나 RST bit이 set되어 들어오는 경우에만 match가 발생하게 된다.
        • 해당 네트워크에 있는 호스트들은 밖으로 나갈 수 있고, 밖에서는 해당 네트워크로 들어올 수 없게 하는 기능
      • port
        • 위의 프로토콜에 따른 port 분류 번호


   (2) Access-list 적용(Access-group)

    • Router(config-if)# ip access-group access-list-number { in | out }

    ① Standard ACL (Ex)

      • PC C를 제외한 210.240.100.0 네트워크의 모든 PC는 PC A를 접속 할 수 있다.

      • 210.240.150.0 네트워크에서는 PC B를 포함해서 나머지 모든 PC들이 PC A를 접속할 수 있다.

      • 인터넷의 모든 PC는 PC A를 접속할 수 있다.

      • access-list 1 deny 210.240.100.5

      • access-list 1 permit 210.240.100.0 0.0.0.255

      • access-list 1 permit 210.240.150.0 0.0.0.255

      • int fa 0

      • ip access-group 1 out



    ② Extended ACL (Ex)

      • 라우터 A를 기준 (Extended ACL 적용)

        • 내부 네트워크에서는 자유롭게 통신이 가능

        • 외부 네트워크에서 들어오는 웹서버를 허용

        • 210.70.10.32 ~ 210.70.10.63IP를 가진 호스트로의 통신은 차단

        • 나머지 허용

      • 라우터 B를 기준 (Extended ACL 적용)

        • 210.70.30.9로 가는 FTP 트래픽은 차단

        • 210.70.10.0으로 가는 ping 트래픽 차단

        • 나머지 허용

      • 라우터 C를 기준 (Standard ACL 적용)

        • 210.70.20.224 ~ 239 트래픽을 차단

        • 나머지 허용

Access-list 설정.pkt


 9) Standard Access List와 Extended Access List의 차이점
    • Standard ACL은 출발지 주소(Source Address)만을 제어하는 반면, Extended ACL은 출발지 주소와 목적지 주소(Destination) 모두 제어할 수 있다.

    • Standard ACL은 전체 TCP/IP에 대한 제어만을 하는 반면, Extended ACL은 IP, TCP, UDP, ICMP 등 특정 프로토콜을 지정해서 제어 할 수 있다.

    • Standard ACL은 1 ~ 99까지의 숫자를 Access-list 번호로 사용하고, Extended ACL은 100 ~ 199까지의 숫자를 Access-list 번호로 사용한다.



  * 중요 TCP / UDP 포트 번호

Protocol

option 

port

Protocol 

option 

port

TCP

telnet

23

UDP

tftp

69

 

www(http)

80

 

 domain(dns)

53

 

ftp

21

 

 snmp

161

 

 smtp

25 

   

ICMP 

echo(ping)

7

 IP

 

 

 

 

 

 igrp

 

9


'학업' 카테고리의 다른 글

[컴퓨터네트워크설계] 7. 2계층 스위치 개요  (0) 2016.11.15
[File IO]  (0) 2016.10.24
[C Study] 함수  (0) 2016.10.01
스터디 OT  (0) 2016.09.21
[데이터베이스 설계 및 구축] 02. 데이터 베이스 개요  (0) 2016.09.08

함수(Function)

  1. 함수의 목적
    • 프로그래밍 시 값만 바뀔 뿐 같은 코드가 반복되는 경우
    • 함수(function)라는 기능을 통해 특정 용도의 코드들을 한 곳에 모아 처리
    • 예 ) printf, scanf
  2. 함수의 정의
  3. 반환값자료형 함수이름()
    {
     코드;
    }
  4. 함수의 호출
    • 함수는 main 함수 밖에서 작성해야 한다.
    // 반환값 없는 hello 함수 정의
    void hello() {
    	// Hello, World ! 출력
    	printf("Hello, World !\n");
    }
    
    main() {
    	// 함수의 호출
    	hello();
    }
    
  5. 함수의 실행
    1. main함수의 시작
    2. main함수 절차적 실행
    3. add 함수의 호출
    4. add 함수의 실행
    5. add 함수의 반환

  6. 함수의 선언
    • 사용자 정의 함수가 main 함수보다 아래에 있을 경우
main() {
	// 함수의 호출
	hello();
}

// 반환값 없는 hello 함수 정의
void hello() {
	// Hello, World ! 출력
	printf("Hello, World !\n");
}
    • C언어 컴파일러는 위에서 아래로 소스 코드를 해석하는데 main 함수 부분에서 hello 함수에 대한 정보가 없기 때문에 에러발생
    • 어떤 함수가 있다는 사실을 알려주려면 함수 선언(function declaration)을 해주어야 한다.


출처 - 한국성서대학교 - 매일의 성경


9월 26일 (월) / 에스겔 2:1 - 3:21 절, 열왕기하 24:20 - 25:3 절, 예레미야 52:3 - 6 절, 10:17 - 25 절, 21:1 - 22:9 절

질문: 여호와는 무엇을 행하고 무엇을 행하지 말라고 하시는가?

답변: 

 예레미야 22 장

  3. 여호와께서 이와 같이 말씀하시되 너희가 정의와 공의를 행하여 탈취 당한 자를 압박하는 자의 손에서 건지고 이방인과 고아와 과부를 압제하거나 학대하지 말며 이 곳에서 무죄한 피를 흘리지 말라

(feat. 컴소 LSE)


9월 27일 (화) / 예레미야 34 장, 46:13 - 28절, 30 장, 37장

질문: 누가 시드기야를 고니야의 뒤를 이어 왕으로 삼았는가?

답변:

 예레미야 37 장

  1. 요시야의 아들 시드기야가 여호야김의 아들 고니야의 뒤를 이어 왕이 되었으니 이는 바벨론의 느부갓네살 왕이 그를 유다 땅의 왕으로 삼음이었더라


9월 28일 (수) / 예레미야 31 ~ 33 장

질문: 여호와께서 이스라엘 집과 유다 집에 세울 새 언약의 내용은 무엇인가?

답변:

 예레미야 31 장

  31. 여호와의 말씀이니라 보라 날이 이르리니 내가 이스라엘 집과 유다 집에 새 언약을 맺으리라

  33. 그러나 그 날 후에 내가 이스라엘 집과 맺을 언약은 이러하니 곧 내가 나의 법을 그들의 속에 두며 그들의 마음에 기록하여 나는 그들의 하나님이 되고 그들은 내 백성이 될 것이라 여호와의 말씀이니라

  

9월 29일 (목) / 예레미야 23:1 - 8 절, 역대하 36:13 - 16 절, 에스겔 8 ~ 9 장

질문: 다윗에게 한 의로운 가지가 즉 왕이 행할 일은 무엇인가?

답변:

 예레미야 23 장

  5. 여호와의 말씀이니라 보라 때가 이르리니 내가 다윗에게 한 의로운 가지를 일으킬 것이라 그가 왕이 되어 지혜롭게 다스리며 세상에서 정의와 공의를 행할 것이며


9월 30일 (금) / 에스겔 10 장 ~ 11장, 13장

질문: 여호와는 자기 심령에 따라 예언하는 어리석은 선지자를 황무지에 있는 무엇과 같다고 했는가?

답변:

 에스겔 13 장

  4. 이스라엘아 너의 선지자들은 황무지에 있는 여우 같으니라


10월 1일 (토) / 에스겔 14 ~ 16 장

질문: 예루살렘의 아버지와 어머니는 누구인가?

답변:

 에스겔 16 장

  3. 이르기를 주 여호와께서 예루살렘에 관하여 이같이 말씀하시되 네 근본과 난 땅은 가나안이요 네 아버지는 아모리 사람이요 네 어머니는 헷 사람이라


10월 2일 (일) / 에스겔 17 ~ 18 장, 20 장

질문: 여호와는 어떤 사람이 살 것이라고 말하는가?

답변:

 에스겔 18 장

  19. 그런데 너희는 이르기를 아들이 어찌 아버지의 죄를 담당하지 아니하겠느냐 하는도다 아들이 정의와 공의를 행하며 내 모든 율례를 지켜 행하였으면 그는 반드시 살려니와

  21. 그러나 악인이 만일 그가 행한 모든 죄에서 돌이켜 떠나 내 모든 율례를 지키고 정의와 공의를 행하면 반드시 살고 죽지 아니할 것이라


지난주 차 > 2016 - 2학기 묵상지 4주차

다음주 차 > 2016 - 2학기 묵상지 6주차

스터디 OT

 1. 스터디의 목적


 1.1. C언어를 배우는 이유

 1.1.1 학교 커리 큘럼

  - 1학년

컴퓨터프로그래밍기초

C언어 


  - 2학년

객체지향프로그래밍 

Java 

Database 

 

자료구조 

C언어 


  - 3학년

 네트워크 프로그래밍

Java 

데이터베이스 설계 및 실습 

 

모바일프로그래밍

Android(Java) 

고급 윈도우 프로그래밍

C++

웹 시스템 설계 및 개발

JSP 


  - 4학년

고급시스템프로그래밍

Linux 


 1.2. 어떻게 C언어를 배울 것인가?

  - 개인 학습이후 몇 가지 개념이 들어가는 과제 수준의 프로그래밍


 1.3. 각자 동아리에 대해 이루고자 하는 목표

  -  


< 참고 사이트 >

SoEn: 소프트웨어 공학 연구소

코딩 도장

한빛미디어 이것이 C언어다


SoEn의 목차


제 1장 프로그래밍 입문

제 2장 첫 번째 예제

제 3장 변수

제 4장 제어문

제 5장 연산자

제 6장 함수

제 7장 기억 부류

제 8장 표준 함수

제 9장 배열

제 10장 포인터

제 11장 배열과 포인터

제 12장 문자열 함수

제 13장 구조체

제 14장 C언어 실습

제 15장 포인터 고급

제 16장 함수 고급

제 17장 파일 입출력

제 18장 C언어 고급 문법

제 19장 자료구조

제 20장 알고리즘

부록


출처 - 한국성서대학교 - 매일의 성경


9월 19일 (월) / 예레미야 8:4 ~ 9 장, 16 ~ 17 장

질문: 여호와는 무엇을 자랑하라 했는가?

답변:

 예레미야 9 장

  24. 자랑하는 자는 이것으로 자랑할지니 곧 명철하여 나를 아는 것나 여호와는 사랑과 정의와 공의를 땅에 행하는 자인 줄 깨닫는 것이라 나는 이 일을 기뻐하노라 여호와의 말씀이니라


9월 20일 (화) / 예레미야 10:1 - 16 절, 18:19 ~ 19 장, 23:9 - 40 절, 35 장, 열왕기하 24:1 - 4 절

질문: 선지자들이 말하는 묵시는 어디에서 말미암은 것인가?

답변:

 예레미야 23 장

  16. 만군의 여호와께서 이와 같이 말씀하시되 너희에게 예언하는 선지자들의 말을 듣지 말라 그들은 너희에게 헛된 것을 가르치나니 그들이 말한 묵시는 자기 마음으로 말미암은 것이요 여호와의 입에서 나온것이 아니니라


9월 21일 (수) / 예레미야 13:15 - 27 절, 20 장, 22:18 - 30 절, 24 장, 열왕기하 24:5 - 17 절

질문: 예레미야 당시 여호와의 성전의 총 감독은 누구인가?

답변:

 예레미야 20 장

  1. 임멜의 아들 제사장 바스훌은 여호와의 성전의 총감독이라 그가 예레미야의 이 일 예언함을 들은지라


9월 22일 (목) / 다니엘 1 ~ 3 장

질문: 느부갓세살이 본 큰 신상을 부서뜨린 것은 무엇인가?

답변:

 다니엘 2 장

  34. 또 왕이 보신즉 손대지 아니한 돌이 나와서 신상의 쇠와 진흙의 발을 쳐서 부서뜨리매


9월 23일 (금) / 다니엘 4 장, 예레미야 52:1 - 2 절, 27 ~ 28 장, 열왕기하 24:18 - 19 절, 역대하 36:11 - 12 절

질문: 예레미야의 목에 있는 멍에를 꺾고 이년 안에 돌아올 것이라고 거짓 예언을 했다고 죽은 사람은 누구인가?

답변:

 예레미야 28 장

  11. 모든 백성 앞에서 하나냐가 말하여 이르되 여호와께서 이와 같이 말씀하시니라 내가 이년 안에 모든 민족의 목에서 바벨론의 왕 느부갓네살의 멍에를 이와 같이 꺾어 버리리라 하셨느니라 하매 선지자 예레미야가 자기의 길을 가니라


9월 24일 (토) / 예레미야 25:15 - 38 절, 29 장, 48 ~ 49 장

질문: 여호와는 엘람의 무엇을 꺾을 것이라고 했는가?

답변:

 예레미야 49 장

  35. 만군의 여호와가 이같이 말하노라 보라 내가 엘람의 힘의 으뜸가는 활을 꺾을 것이요


9월 25일 (일) / 예레미야 50 - 51 장, 에스겔 1 장

질문: 예레미야는 바벨론에 대해 기록한 말씀을 누구에게 읽은 후 책에 돌을 매어 유브라데에 던지라고 했는가?

답변:

 예레미야 51 장

  61. 스라야에게 말하기를 너는 바벨론에 이르거든 삼가 이 모든 말씀을 읽고

  62. 말하기를 여호와여 주께서 이 곳에 대하여 말씀하시기를 이 땅을 멸하여 사람이나 짐슴이 거기에 살지 못하게 하고 영원한 폐허가 되리라 하셨나이다 하라 하니라

  63. 는 이 책 읽기를 다한 후에 책에 돌을 매어 유브라데 강 속에 던지며

  64. 말하기를 바벨론이 나의 재난 때문에 이같이 몰락하여 다시 일어서지 못하리니 그들이 피폐하리라 하라 하니라 예레미야의 말이 이에 끝나니라


지난주 차 > 2016 - 2학기 묵상지 3주차

다음주 차 > 2016 - 2학기 묵상지 5주차

출처 - 한국성서대학교 - 매일의 성경


9월 12일 (월) / 예레미야 1 ~ 2장, 나훔 3 장

질문: 유다 백성이 행한 두 가지 악은 무엇인가?

답변:

 예레미야 2 장

  13. 내 백성이 두 가지 악을 행하였나니 곧 그들이 생수의 근원되는 나를 버린 것스스로 웅덩이를 판 것인데 그것은 그 물을 가두지 못할 터진 웅덩이들이니라


9월 13일 (화) / 예레미야 3 ~ 5장

질문: 여호와는 무엇으로 여호와의 삶을 두고 맹세하면 나라들이 자랑할 것이라고 말하는가?

답변:

 예레미야 4 장

  2. 진실정의공의로 여호와의 삶을 두고 맹세하면 나라들이 나로 말미암아 스스로 복을 빌며 나로 말미암아 자랑하리라

  

9월 14일 (수) / 예레미야 22:10 - 17 절, 열왕기하 23:28 - 35절, 역대하 35:20 ~ 36:4 절

질문: 예루살렘에서 석 달간 다스리다가 여호와 보시기에 악을 행하여 하맛 땅 립나로 잡혀 간 사람은 누구인가?

답변:

 열왕기하 23 장

  31. 여호아하스가 왕이 될 때에 나이가 이십삼 세라 예루살렘에서 석 달간 다스리니라 그의 어머니의 이름은 하무달이라 립나 예레미야의 딸이더라

  32. 여호아하스가 그의 조상들의 모든 행위대로 여호와 보시기에 악을 행하였더니

  33. 바로 느고가 를 하맛 땅 립나에 가두어 예루살렘에서 왕이 되지 못하게 하고 또 그 나라로 은 백 달란트와 금 한 달란트를 벌금으로 내게 하고


9월 15일 (목) / 예레미야 26:1 - 6 절, 열왕기하 23:35 - 37 절, 하박국 1 ~ 3 장

질문: 여호와께서 하박국에게 무엇을 기록하라고 했는가?

답변:

 하박국 2 장

  2. 여호와께서 내게 대답하여 이르시되 너는 이 묵시를 기록하여 판에 명백히 새기되 달려가면서도 읽을 수 있게 하라 


9월 16일 (금) / 예레미야 7:1 ~ 8:3 절, 11 - 12 절, 26: 7 - 24 절

질문: 유다 사람들이 힌놈이 골짜기에 건축한 사당은 무엇인가?

답변:

 예레미야 7 장

  31. 힌놈의 아들 골짜기에 도벳 사당을 건축하고 그들의 자녀들을 불에 살랐나니 내가 명령하지 아니하였고 내 마음에 생각하지도 아니한 일이니라


9월 17일 (토) / 예레미야 13:1 - 14 절, 18:1 - 17절, 45 장, 46:1 - 12 절, 47 장

질문: 여호와 하나님은 예레미야에게 유다와 예루살렘의 무엇이 썩은 베띠처럼 썩게 될 것이라고 했는가?

답변:

 예레미야 13 장

  9. 여호와께서 이와 같이 말슴하시니라 내가 유다의 교만예루살렘의 큰 교만을 이같이 썩게 하리라


9월 18일 (일) / 예레미야 14 ~ 15 장, 25:1 -14 절, 36 장

질문: 여호와는 누구와 누가 내 앞에 섰다 할지라도 자신의 마음이 이 백성을 향할 수 없다고 했는가?

답변:

 예레미야 15 장

  1. 여호와께서 내게 이르시되 모세사무엘이 내 앞에 섰다 할지라도 내 마음은 이 백성을 향할 수 없나니 그들을 내 앞에서 쫓아 내보내라


지난주 차 > 2016 - 2학기 묵상지 2주차

다음주 차 > 2016 - 2학기 묵상지 4주차

1. 데이터베이스의 역사

1.1. 파일 시스템(File System)

 : '파일(File)' 개념은 자료를 저장하는 기본적인 방법으로 사용

 : 파일에 기초하여 자료나 정보를 처리하는 시스템

 : 파일 시스템에서는 개별 응용프로그램이 직접 파일에 접근하여 기록, 갱신, 삭제를 할 수 있으며, 파일에 있는 데이터의 올바른 관리 여부는 전적으로 응용프로그램에 달려 있다.


[파일 시스템의 문제점]

1.1.1. 데이터 종속성(data dependency)

 : 데이터를 사용하는 프로그램의 구조가 데이터 구조(파일 구조)의 영향을 받는다.

 : 개발과 유지보수가 어려워진다.

1.1.2. 데이터 무결성(data integrity)의 침해

 : 저장된 데이터의 내용이 본래 의도했던 데이터의 형식, 범위를 준수해야 한다.

 : 응용프로그램에서 사용자가 데이터를 올바르게 입력했는지 검사하는 기능을 구현해야 한다.

1.1.3. 데이터 중복성(data redundancy)

 : 같은 내용의 데이터가 여러 곳에 중복하여 저장되는 것을 의미한다.

 : 데이터가 중복 저장되면 저장 공간의 낭비라는 문제 외에도 다음에 설명할 데이터의 불일치, 보안의 어려움과 같은 문제들이 발생할 수 있다.

1.1.4. 데이터 불일치(data inconsistency)

 : 중복 저장된 데이터들이 서로 일치하지 않는 것을 의미한다.

1.1.5. 데이터 표준화(data standard)의 어려움

 : 많은 수의 개발자들이 협력 작업을 하는 작업환경에서 개발자들간의 코딩 방식이나 변수 선언에서 차이점이 생겨 제 3자가 프로그램에 대한 이해가 어려워지고 두 응용프로그램 간의 호환성에 문제가 생긴다.

1.1.6. 데이터 보안성(data security)의 결여

 : 데이터가 저장되어 있는 파일은 그 내용이 Text 형식이나 잘 알려진 형식으로 저장되기 때문에 보안을 유지하기가 어렵다.




1.2. 데이터 베이스의 등장

  - 데이터베이스

   : 모아놓은 데이터의 집합

  - 데이터베이스 관리 시스템

   : 데이터를 관리 하는 S/W

  - 데이터베이스 시스템

   : 데이터베이스에 기초해서 데이터나 정보를 처리하는 체제

1.2.1. 데이터 독립성(independency) 지원

 : 사용자 또는 응용프로그램이 직접 데이터베이스에 접근할 수 없고 반드시 DBMS를 통해서만 접근이 가능하다.

 : DBMS는 데이터베이스 내에 있는 데이터의 물리적, 논리적 변화가 응용 시스템에 영향을 미치지 않도록 함으로써 데이터 독립성을 보장한다.

1.2.2. 데이터 무결성 유지

 : DBMS는 데이터베이스 내에 저장될 데이터에 대하여 데이터의 타입(type), 길이, 값의 범위 등에 대한 정보를 가지고 있다.

 : 위반하는 데이터가 들어올 경우 처리를 거절함으로써 데이터의 무결성을 지원

1.2.3. 데이터 중복성 및 불일치 최소화

 : 데이터베이스를 공용하는 조직 전체의 관점에서 관리한다.

 : 중복성을 방지하며 그 결과로서 중복된 데이터 간의 불일치 문제를 해결한다.

1.2.4. 데이터 표준화의 용이성

 : 데이터베이스 관리자(DBA)가 존재

 : DBA는 데이터베이스의 설계과정을 주도함으로써 부서 간 이해를 조정하고 관리될 데이터를 표준화 시킬수 있다.

 : DBMS는 데이터의 구조에 관한 정보를 가지고 있으며 응용프로그램에서 데이터에 접근하기 위해서 DBMS가 가지고 있는 구조 정보에 따라야 하기 때문에 자연스럽게 표준화가 이루어질 수 있다.

1.2.5. 높은 데이터 보안성

 : 데이터에 대한 접근을 제한 할 수 있다.

 : 저장된 데이터베이스는 일반적으로 DBMS를 통하지 않고는 외부에서 내용을 알아내기 매우 어렵기 때문에 데이터가 보호될 수 있다.

1.2.6. 데이터 공유(data sharing)의 용이성

 : 데이터를 통합 관리하고 DBMS를 통해 여러 사용자의 요구를 동시적으로 처리할 수 있는 능력을 가지고 있으며 데이터를 쉽게 이용할 수 있는 수단을 제공한다.




1.3. 관계형 데이터베이스 모델

 - 데이터베이스의 모델

 : 계층형 모델

 : 네트워크 모델

 : 관계형 모델

  : 데이터가 테이블 형태로 표현

  : 민감한 데이터에 대한 엑세스 제어를 구현하기 쉬움

  : 데이터베이스의 간결성(Clarity)와 가시성(Visibility)이 증진됨 ( 표 형식의 데이터 요소 탐색 )

  : 사용자가 데이터를 쉽게 다룰 수 있도록 해주는 질의어(SQL)가 제공된다. 




2. 관계형 데이터베이스 용어

2.1. 릴레이션(Relation), 테이블(Table), 관계 

 : 지금까지 테이블이라고 지칭했던 것으로 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위.

 : 서로 구분할 수 있는 이름을 갖는다.

 : 동일한 데이터베이스 내에서는 같은 이름을 가진 릴레이션이 존재할 수 없다.

2.2. 속성(Attribute), 열(Column)

 : 객체가 지닌 구체적인 정보의 항목에 해당하는 것.

 : 관리해야 할 필요가 있는 속성들의 집합.

2.3. 튜플(Tuple), 행(Row), 레코드(Record)

 : 값의 나열(리스트), 테이블의 행.

 : 개체에 속한 구성원들 개개의 정보를 표현.

2.4. 도메인(Domain), 타입(Type)

 : 하나의 속성이 취할 수 있는 허가된 값의 집합.

 : 테이블에 포함된 각각의 속성(열)들이 가질 수 있는 값들의 집합.

 : 테이블에 저장되는 데이터 값들이 본래 의도했던 값들만 저장되고 관리되도록 하기 위함.




3. 기본키와 외래키

 - 키의 필요성

  : 관계형 데이터베이스에서는 중복된 튜플(행, 레코드)의 삽입을 막아야 할 필요가 있다.

3.1. 기본키(Primary key)

 : 튜플(행, 레코드)를 구분하는 기준으로 사용되는 키

 : 기본적으로 데이터의 길이가 짧은 것을 기본 키로 정한다.

3.2. 후보키(Candidate key)

 : 레코드의 중복 여부를 확인

 - 후보키의 속성

  : 최소성, 유일성

 - 후보키의 개념

  : 테이블에서 각 튜플(행, 레코드)를 구별하는데 기준이 되는 하나 혹은 그 이상의 컬럼들의 집합

  (후보키는 테이블에 있는 각 튜플을 고유하게 식별할 수 있어야 한다.)

3.3. 대체키(Alternate key)

 : 선택되지 않은 후보키

3.4. 복합키(Composite key)

 : 두 개 이상의 속성, 열이 모여 키의 역할을 하는 경우

3.5. 외래키(Foreign Key)

 : 테이블 간의 데이터의 일치와 무결성을 보증해주는 수단

 * 무결성이 깨어지게 되면 이를 막기 위한 DBMS의 조치

  - 제한(restricted)

   : 삭제하려는 레코드의 부서번호값을 사원 테이블에서 가지고 있는 레코드가 있으면 삭제 연산 거절

  - 연쇄(cascade)

   : 삭제 연산을 수행한 뒤 삭제된 부서번호 값을 갖는 사원 테이블의 레코드도 함께 삭제

  - 널값으로 대체(nullify)

   : 삭제 연산을 수행한 뒤 삭제된 부서번호 값을 갖는 사원 테이블의 레코드에서 부서번호를 null값으로 바꾼다.

 



4. 뷰

 - 가상 테이블

  : 데이터를 바라볼 수 있도록 해주는 수단

  : 데이터베이스 관리자는 사용자에 따라 필요에 맞는 뷰를 생성하여 제공할수 있다.

  * 전체 조직 관점에서의 테이블

  * 다양한 관점에서의 세 가지 뷰

 - 일반 테이블과 뷰의 차이점

  : 일반 테이블이 실제로 물리적인 데이터를 갖고 있는 반면에 뷰는 물리적인 데이터를 갖고 있지 않다.

  : 뷰는 정의된 일반 테이블로부터 데이터를 가져다 보여주는것이다. 따라서 뷰는 일반 테이블이 있어야 정의 가능하다.


 - 뷰를 정의 하는 SQL 명령문

CREATE VIEW view_emp1
AS SELECT   empid, ename, hire_date, salary
FROM        emp;
CREATE VIEW high_salary
AS SELECT   empid, ename, dept, salary
FROM        emp
WHERE       salary >= 350;

 - 뷰 high_salary에 대한 질의

SELECT empid, ename, salary
FROM   high_salary
WHERE  dept = '영업부';

 - DBMS의 일반테이블에 대한 질의

SELECT empid, ename, salary
FROM   emp
WHERE  salary >= 350
AND    dept = '영업부';

 - 뷰의 목적

  : 하나의 테이블에 대한 여러 관점으로 보는 것이 필요 할 때

  : 일반 사용자에게 감추어야 할 컬럼이 있을 때, 그것을 제외한 뷰를 만든다.


 - 뷰에 대한 튜플의 삽입

  : 튜플의 삽입 가능 여부는 null 값이 저장될 컬럼들이 null값을 허용하는 가에 달려있다.


5. SQL 언어

 - 비절차적 언어(non-procedural language), 사용자는 자신이 원하는 것만을 명시

5.1. SELECT

 : 테이블에 저장된 정보를 조회하는 데 사용한다.

 - 사원에 대한 모든 정보를 보이시오.

 - 곽희준 사원의 담당업무는 무엇인가?

 - 급여가 300을 넘고 담당업무가 영업관리인 사원의 모든 정보를 보이시오.

 - 모든 사원의 이름과 급여를 보이되 사원 이름을 가나다순으로 보이시오.

 - 부서번호와 그 부서에 속한 사원들의 급여액 합계를 보이시오.

 - 가장 많은 급여를 받는 사원의 급여액과 가장 적은 급여를 받는 사원의 급여액을 보이시오.

 - 가장 많은 급여를 받는 사원의 이름을 보이시오.

 - 사원들의 현재 급여와 급여를 10% 인상했을 때의 예상 급여를 보이시오.

 - 모든 사원들의 이름과 부서 이름을 보이시오.

 - 곽희준 사원이 속한 부서의 예산은 얼마인가?

 - 사원의 이름과 그 사원의 상사(manager) 이름을 보이시오.


5.2. INSERT

 : 테이블에 레코드를 삽입할 때 사용한다.

 : 기본적으로 INSERT문은 한번에 하나의 레코드를 삽입할 수 있다.


5.3. UPDATE

 : 테이블에 저장되어 있는 튜플의 값을 변경할 때 사용한다.

 - 홍성길 사원의 부서번호를 400으로, 급여를 500으로 변경하시오.

 - 영업부에 속한 사업의 급여를 20%인상하시오.



5.4. DELETE

 : 테이블에 있는 레코드를 삭제할 때 사용한다.

 - 홍성길 사원의 정보를 사원 정보에서 삭제하시오.

 - 모든 사원의 정보를 사원 정보에서 삭제하시오.


5.5. CREATE

 : 테이블, 뷰, 사용자 등 데이터베이스 내의 객체들을 생성하는 데 사용된다.

 - dept, emp 테이블을 생성하는 문장

 - dept, emp 테이블을 연결하여 뷰를 만드는 문장


5.6. DROP

 : 데이터베이스 내의 객체를 제거하는 역할

 - dept 테이블과 뷰 new_emp를 제거하는 문장


세성 중간.hwp

세성 중간.hwp

세성 중간 문제.hwp

세계문명과 성경2 기말고사.hwp



+ Recent posts