[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 101 ~ 150 오답정리

102. GoF의 디자인 패턴

  • 소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해법과 작명법을 제안한 책
  • 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재, 이를 처리하는 해결책 사이에서도 공통점이 있는데 이러한 유사점을 패턴이라 함
  • 패턴의 역할 : 공통의 언어 생성, 팀원 사이의 의사소통 원활
  • 패턴의 종류
    • 생성 패턴
      • Factory method 
        • 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브 클래스가 내리도록 함
        • 다른 이름 : Virtual Constructor
      • Singleton
        • 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점 제공
      • Abstract factory
        • 상세화된 서브 클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공
        • 다른 이름 : 키트 (Kit)
      • Builder
        • 인스턴스를 생성자를 통해 직접 생성하지 않고, 빌더라는 내부 클래스를 통해 간접적으로 생성
      • Prototype
        • 원본을 만들어놓고 원본 객체를 복사하여 사용
    • 구조 패턴
      • Adapter
        • 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응 (변환)
        • 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작
        • 다른 이름 : 래퍼 (Wrapper)
      • Bridge
        • 구현에서 추상을 분리하여 각자 독립적으로 다양성을 가질 수 있도록 함
        • 다른 이름 : 핸들 / 구현부 (Handle / Body)
      • Composite
        • 부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성
        • 사용자가 개별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 하는 패턴
      • Decorator
        • 객체에 동적으로 새로운 책임을 추가할 수 있게 함
        • 기능을 추가하려면, 서브 클래스를 생성하는 것보다 융통성 있는 방법을 제공
      • Facade
        • 서브 시스템에 있는 인터페이스 집합에 통합된 하나의 인터페이스를 제공 (의사소통 및 종속성 최소화 목표)
        • 서브 시스템을 좀 더 쉽게 사용하기 위해 상위수준 인터페이스 정의
      • Flyweight
        • 객체의 내부에서 참조하는 객체를 직접 만드는 것이 아니라, 없다면 만들고, 만들어져 있다면 객체를 공유하는 식으로 객체를 구성하는 방법
      • Proxy
        • 실제 기능을 수행하는 객체 대신 가상의 객체를 사용해 로직의 흐름을 제어
        • 다른 이름 : 대리자
    • 행위 패턴
      • Template method
        • 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 명세를 변경
      • Interpreter
        • 주어진 언어에 대해서 문법을 위한 표현 수단을 정의하고, 해당 언어로 된 문장을 해석하는 해석기를 사용하는 패턴
      • Interator
        • 내부 표현부를 노출하지 않고 어떤 객체 집합의 원소들을 순차적으로 접근하는 방법을 제공하는 패턴
        • 다른 이름 : 커서 
      • Command
        • 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스 설계 패턴
        • 다른 이름 : 작동, 트랜잭션
      • Chain of Responsibility
        • 요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴
        • 요청을 받는 객체를 연쇄적으로 묶고 객체를 처리할 수 있을 때까지 요청을 전달
      • State
        • 객체의 내부 상태에 따라 객체의 행위 내용을 변경
        • 다른 이름 : 상태 표현 객체
      • Strategy
        • 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해줌
        • 다른 이름 : 정책
      • Mediator
        • 한 집합에 속해 있는 객체들의 상호작용을 캡슐화하는 객체를 정의하는 패턴
        • 중개자는 객체들이 직접 서로 참조하지 않도록 함으로써 객체 간의 느슨한 연결을 촉진하며 객체들의 상호작용을 독립적으로 다양화시킬 수 있도록 해줌
      • Memento
        • 객체의 상태 정보를 저장, 사용자의 필요에 따라 원하는 시점의 데이터를 복원할 수 있는 패턴
        • 다른 이름 : 토큰
      • Visitor
        • 객체 구조를 이루는 원소에 대해 수행할 연산을 표현
        • 방문자는 연산에 적용할 원소의 클래스를 변경하지 않고 새로운 연산을 재정의할 수 있음
      • Observer
        • 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성
        • 다른 이름 : 종속자, 게시-구독

 

103. 럼바우의 객체 지향 분석 방법

  • 가장 일반적으로 사용되는 방법
  • 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행하는 방법
  • 모든 소프트웨어 구성 요소를 그래픽 표기법을 활용하여 모델링하는 기법
  • 객체지향 분석의 순서 : 객체 모델링 → 동적 모델링 → 기능 모델링
    • 객체 모델링
      • 객체 다이어그램 이용
      • 정보 모델링
      • 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정
      • 가장 중요하며 가장 선행되는 단계 
    • 동적 모델링
      • 상태도를 이용
      • 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현
    • 기능 모델링
      • 자료 흐름도 (DFD) 를 이용
      • 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
      • 어떤 데이터를 입력하면 어떤 결과를 구할 것인지 표현

 

106. 시퀀스 다이어그램

  • 문제해결을 위한 객체를 정의하고 객체 간 상호작용 메시지를 흐름으로 나타냄
  • 구성 요소 : 생셩선, 활성객체, 메시지, 활성박스
  • 가장 기본적인 메시지 유형
    • 동기 : 요청 후 응답 대기
    • 비동기 : 요청만 표시
    • 자체 : 객체 자신에 요청
    • 반환 : 응답(회신) 메시지
  • UML 다이어그램에서 확장이 사용되는 다이어그램 : 유스케이스 다이어그램
    • 확장 관계 (Extend) : 하나의 유스케이스로부터 다른 유스케이스로 기능이 확장될 수 있다는 의미
    • 포함 관계 (Include) : 하나의 유스케이스가 다른 유스케이스를 항상 포함한다는 의미

 

108. GoF의 디자인 패턴

목적   생성 패턴 (Creation Pattern) 구조 패턴 (Structural Pattern) 행위 패턴 (Behavioral Pattern)
의미   객체의 생성 방식을 결정하는 패턴 객체를 조직화하는데 유용한 패턴 객체의 행위를 조직, 관리, 연합하는데 사용하는 패턴
범위 클래스 Factory method Adapter Template method, Interpreter
객체 Singleton
Abstract factory
Builder
Prototype
Bridge
Composite
Decorator
Facade
Fly weight
Proxy
Iterator
Command
Chain of Responsibility
State
Strategy
Mediator
Memento
Visitor
Observer

 

113. 객체지향 기법

  • 객체지향 기법의 구성 요소
    • 클래스 
      • 공통된 속성과 연산을 갖는 객체의 집합으로 객체의 일반적인 타입을 의미
      • 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
      • 클래스에 속한 각각의 객체를 인스턴스라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화라고 함
      • 동일 클래스에 속한 각각의 객체 (인스턴스)들은 공통된 속성과 행위를 가지고 있으면서, 그 속성에 대한 정보가 서로 달라서 동일 기능을 하는 여러 가지 객체를 나타내게 됨
      • 최상위 클래스는 상위 클래스를 갖지 않는 유일한 클래스를 의미
      • 슈퍼 클래스는 특정 클래스의 상위 (부모) 클래스이고, 서브 클래스는 특정 클래스의 하위 (자식) 클래스를 의미
    • 객체
      • 데이터와 데이터를 처리하는 함수를 묶어놓은 캡슐화한 하나의 소프트웨어 모듈
        • 데이터
          • 객체가 가지고 있는 정보로 속성이나 상태, 분류 등을 나타냄
          • 속성, 상태, 변수, 상수, 자료 구조 
        • 함수
          • 객체가 수행하는 기능
          • 객체가 갖는 데이터를 처리하는 알고리즘
          • 객체의 상태를 참조하거나 변경하는 수단이 되는 것을 메소드, 서비스, 동작, 연산이라고도 함
          • 기존의 구조적 기법에서의 함수, 프로시저에 해당하는 연산 기능
      • 상태와 행위를 가지고 있음
      • 다른 객체들과 구별될 수 있는 이름을 갖고 있으며, 일정한 기억 장소를 가지고 있음
      • 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 수행
    • 메시지
      • 객체들 간에 상호작용을 하는데 사용되는 수단
      • 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항
      • 메시지의 구성 요소 : 메시지를 받는 객체의 이름, 객체가 수행할 메소드 이름, 메소드를 수행할 때 필요한 인자 (속성값)
      • 인자는 옵션, 즉 필요할 때만 사용
      • 메시지를 받은 수신 객체는 요구된 메소드를 수행하여 결과를 반환하게 됨
  • 객체지향 기법의 특징
    • 구조적 기법의 문제점으로 인한 소프트웨어 위기 해결책으로 채택되어 사용
    • 소프트웨어의 재사용 및 확장을 용이하게 하여 고품질의 소프트웨어를 빠르게 개발할 수 있으며 유지보수가 쉬움
    • 복잡한 구조를 단계적, 계층적으로 표현하고 멀티미디어 데이터 및 병렬 처리를 지원
    • 현실 세계를 모형화하여 사용자와 개발자가 쉽게 이해 가능
    • 객체 지향 기법의 구성 요소 : 객체, 클래스, 메시지

 

117. 객체지향 설계 원칙

  • 리스코프 교체의 원칙 (LSP)
    • 부모 클래스와 자식 클래스 사이의 행위가 일관성이 있어야 함
    • 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램의 의미는 변화되지 않음
    • 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙
  • 단일 책임 원칙 (SRP)
    • 클래스의 메서드가 해야 하는 것, 할 수 있는 것, 해야 하는 것을 잘할 수 있는 것으로 여러 개의 작업을 많이 할당하지 많아야 한다는 원칙
    • 객체는 주어진 작업을 다른 객체가 아닌 자신만이 수행할 수 있어야 함
    • 해당 원칙을 준수하게 되면 응집도는 높아지고, 결합도는 낮아짐
  • 의존 역전 원칙 (DIP)
    • 의존 관계를 맺을 때, 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하게 함
    • 자주 변경하는 구체 클래스 대신 인터페이스나 추상 클래스에 의존하도록 함
  • 인터페이스 분리 원칙 (ISP)
    • 인터페이스를 클라이언트에 특화도되록 분리시키고 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 됨

 

119. CASE

  • CASE의 개념
    • 계획수립에서부터 요구분석, 설계, 개발, 유지보수에 이르는 소프트웨어 생명주기 전 과정을 자동화할 수 있도록 지원하는 자동화 도구
    • 1970년대부터 현재까지 지속적으로 발전하고 있음
    • 등장 배경
      • 소프트웨어 산업 측면 :  소프트웨어 위기 극복 방안으로 등장
      • 정보시스템 관리 측면 : 요구사항의 관리 효과 극대화, 재사용성 및 생산성 확대를 위해 등장
  • CASE 도구의 분류
    • Upper CASE : 계획수립, 요구분석, 기본설계 단계를 지원하고 이를 다이어그램으로 표현
    • Middle CASE : 상세설계 작업을 지원, 화면, 출력 등의 작성을 지원
    • Lower CASE : 시험, 유지보수 작업 지원, 소스코드와 시스템 명세서를 획득
    • I- CASE : 위 세 가지를 통합한 것, Rational ROSE, COOL 등이 국내에서 사용 중
  • CASE 도구의 구성
    • Diagram 작성 도구 : 소프트웨어 명세서 정의, 설계 결과의 표현
    • 설게 분석기 : 설계 명세서의 정확성, 일치성, 모호성에 대한 검사
    • 코드 생성기 : 명세서로부터 프로그래밍 언어로 된 모듈의 코드 생성
    • Repository : CASE 도구의 중심, SDLC 동안 정보를 저장
    • 프로젝트 관리 지원 도구 
    • 재공학 도구 : 기존 시스템의 설계 명세서 작성 지원
    • Prototyping 도구 : 초기 UI 작성 지원

 

120. 인터페이스 요구사항 검토 방법

  • 동료검토 : 프로젝트 수행 과정에서 각 단계별 산출물과 제품에 대해 동료들이 상호 교차하여 검토를 수행하는 활동
    • 절차
      • 계획 : 관련 자료 수집, 구성원 역할 배정
      • 사전 준비 : 검토 항목, 범위 설정, 검토 설명
      • 개별 검토 : 개별적 산출물 검토 진행
      • 검토 회의 : 산출물 오류, 결함, 조치 사항 회의
      • 재작업 : 오류, 결함 사항 분석, 조치
      • 후속 조치 : 저자가 작성 내용 반영 여부 판별
    • 구성요소
      • 관찰 대상 범위 : SDLC 단계 별 산출물 범위 확인
      • 참여자 구성원 : 중재자, 검토자, 저자, 기록자 등
      • 체크리스트 : 산출물의 추적도, 설계 구현 내용
  • 인스펙션 : 프로그램을 실행하지 않고 개발 단계에서 산출되는 결과물을 공식적 자리에서 검토 및 결함을 발견하는 기법, 수행절차가 동료검토와 동일, 공식적인 자리에서 결함 보고 및 후속 조치를 함
    • 이해관계자 : 개발된 시스템 사용을 위한 담당자 참여
    • 중재자 : 계획 작성, 모임 개체, 주행 절차 중재
    • 독자 : 산출물 확인, 결함 도출 전문가 집단
    • 기록자 : 공식적인 결함 문서화, 다수 중재자 겸임

 

122. 네트워크 영역에 적용되는 보안 프로토콜

  • IPSec
    • 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트
    • 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리
  • SSL
    • 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
    • 인터넷 같이 TCP / IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송 계층 종단간 보안과 데이터 무결성을 확보해줌
    • 3.0 버전부터 TLS로 표준화
  • S-HTTP
    • 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나

 

123. 제품 소프트웨어의 형상관리

  • 형상관리의 개념
    • 소프트웨어 형상 관리는 소프트웨어 개발 과정에서 발생하는 변경을 관리하는 활동
    • 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보장하는 것을 목적으로 함
  • 형상 관리 대상
    • 소스 코드와 실행 파일 (바이너리 파일), 그리고 각종 설계 문서
    • 각종 프로그램 개발과 관련된 회의록 등의 문서화된 자료
  • CCB : 형상 관리를 위하여 구성된 팀

 

126. McCabe의 cyclomatic

  • 프로그램의 복잡도를 나타내는데 사용되는 척도
  • 회전 복잡도, 순환 복잡도 등
  • 회전 복잡도 계산 방법
    • Edge 수 - Node 수 + 2P
      • P는 단일 프로그램일 때 항상 1
    • 분기수 + 1
      • 그래프를 그리기 힘들어 프로그램 상에서 파악할 때 사용
    • 폐구간 수 + 1
      • 폐구간 : Edge로 사방이 막힌 영역

 

131. DRM 기술

  • 암호화 (Encryption)
    • 컨텐츠 및 라이선스를 암호화, 전자 서명을 하는 기술
    • PKI, Symmetric / Asymmetric Encryption, Digital Signature
  • 키 관리 (Key Management)
    • 컨텐츠를 암호화한 키에 대한 저장 및 배포 기술
    • Centralized, Enveloping
  • 암호화 파일 생성 (Packager)
    • 컨텐츠를 암호화된 컨텐츠로 생성하기 위한 기술
    • Pre-packaging, On-thefly Packaging
  • 식별 기술 (Idendification)
    • 컨텐츠에 대한 식별 체계 표현 기술
    • DOI, URI
  • 저작권 표현 (Right Expression)
    • 라이선스의 내용 표현 기술
    • XrML/MPEG-21 REL, ODRL
  • 정책 관리 (Policy management)
    •  라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
    • XML, Contents Management System
  • 크랙 방지 (Tamper Resistance)
    • 크랙에 의한 컨텐츠 사용 방지 기술
    • Code Obfuscation, Kernel Debugger Detection, Module Certification
    • Secure DB, Secure Time Management, Encryption
  • 인증 (Authentication)
    • 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

 

133. 소프트웨어 품질 목표 - ISO/IEC 9126 품질 특성

  • 기능성
    • 명시된 요구와 내재된 요구를 만족하는 기능을 제공하는 소프트웨어 제품 능력
    • 적절성, 정호가성, 상호운용성, 보안성, 준수성 
  • 신뢰성
    • 규정된 조건에 사용될 때 규정된 성능 수준을 유지할 수 있는 능력
    • 사용자가 오류를 방지할 수 있도록 하는 sW 제품의 능력
    • 성숙성, 결함수용성, 복구용이성, 준수성
  • 사용성
    • 사용자에 의해 쉽게 이해되고 학습되며 선호할 수 있게 하는 SW 제품의 능력
    • 이해용이성, 학습성, 운영성, 기호성, 준수성
  • 효율성
    • 투입된 자원에 대하여 제공되는 성능의 정도
    • 요구되는 기능을 수행하기 위해 필요한 지원의 소요 정도
    • 시간 효율성, 자원 효율성, 준수성
  • 유지보수성
    • 운영 환경과 요구 사항 및 기능적 사양에 따른 SW의 수정, 개선 등 변경될 수 있는 능력
    • 분석성, 변경성, 안전성, 시험성, 준수성
  • 이식성
    • SW가 다른 HW, SW 등의 환경으로 옮겨질 수 있는 능력
    • 다른 환경으로 이전되는 SW 능력의 정도
    • 환경적응성, 설치용이성, 치환성, 상호공존성, 준수성

 

140. 알고리즘 설계 기법의 유형

  • 분할 정복 (Divide and Conquer) : 문제를 쪼개서 각각 해결
    • 나폴레옹이 오스트리아 러시아 동맹군을 반으로 분리시켜 각각 정복한 전술
    • 복잡한 문제를 분할하여 각각 해결, 이를 결합하여 문제를 해결하는 Top-Down 기법
    • 분할 정복의 절차
      • 분할 (Divide) : 문제를 분할이 가능한 부분까지 분할
      • 정복 (Conquer) : 분할된 문제를 각각 해결 (정복)
      • 결합 (Combine) : 정복된 문제를 모두 취합 (결합)
    • 관련 알고리즘 : 퀵 정렬, 병합 정렬
  • 동적 계획법 (Dynamic Programming) : 작은 문제들을 이용해 큰 문제 해결
    • 어려운 문제를 여러 개의 하위 문제로 쪼갠 후, 하위 문제들을 먼저 해결(점화식)하고, 풀린 작은 문제들을 이용해서 더 큰 문제들을 풀어나가는 Bottom-Up 방식
    • 분할 정복과 다른 점은 작게 나눈 문제가 반복적으로 일어난다는 점
    • 메모이제이션이라는 개념을 사용하여 이미 해결된 값을 저장하여 재사용하기도 함
    • 관련 알고리즘 : A* 알고리즘, 피보나치 수열 (효율적)
  • 탐욕법 (Greedy Algorithm) : 매 단계 최선의 선택, 최적해 보장 못함
    • 매 단계에서 최적의 선택을 함으로써, 최종적으로도 최적의 선택을 할 수 있게 하는 알고리즘 설계 기법
    • 각 단계의 최선의 값을 택하기 때문에 전체적 관점에서는 최적해를 보장하지 못함
    • 관련 알고리즘 : 거스름돈 문제, 최소 신장 트리, 다익스트라, 크루스컬, 허프만 코딩 등
  • 백트랭킹 (Backtracking) : 모든 경로 탐색, 막히면 돌아가서 다시 탐
    • 가능한 모든 경로를 탐색하는 방식
    • 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법
    • 최적화 문제와 결정 문제를 푸는 방법
    • 관련 알고리즘 : DFS(깊이 우선 탐색)

 

142. 정규화

  • 제1정규형 (1NF) : 릴레이션 R의 모든 속성 값이 원자값을 가지는 릴레이션
  • 제2정규형 (2NF) : 릴레이션 R이 제1정규형이고 기본 키가 아닌 속성이 기본 키에 완전 함수 종속일 때
  • 제3정규형 (3NF) : 릴레이션 R이 제2정규형이고 기본 키가 아닌 속성이 기본 키에 비이행적 non-transitive으로 종속할 때 (직접 종속)
  • 보이스/코드 정규형 (BCNF) : 릴레이션 R에서 함수 종속성 X →Y가 성립할 때 모든 결정자 X가 후보키 일 때
  • 제4정규형 (4NF)  : 릴레이션 R에서 MVD A → B가 존재할 때 R의 모든 애트리뷰트들이 A에 함수종속(FD)이면 R은 4NF(즉 R의 모든 애트리뷰트 X에 대해 A→X 이고 A가 후보키)
  • 제정규형 (5NF) : 릴레이션 R에 존재하는 모든 조인 종속이 R의 후보키를 통해 성립되면, R은 5NF

 

144. 이상 현상

  • 정규화를 거치지 않으면 데이터베이스의 데이터들이 불필요하게 중복되어 릴레이션 조작 시 문제가 발생하는 것
  • 이상현상의 종류 
    • 삽입 이상 : 불필요한 데이터를 함께 삽입하지 않으면 데이터를 삽입하는 것이 불가능
    • 수정(갱신) 이상 : 중복된 데이터 가운데 일부만 수정되어 데이터의 불일치가 발생
    • 삭제 이상 : 어떤 데이터를 삭제하면 유용한 데이터도 함께 삭제가 됨

 

145. 관계 데이터 모델

  • 데이터베이스의 테이블(릴레이션)들의 집합(모임)으로 표현
    • 테이블 : 튜플 (행, 레코드) 들의 집합으로 표현
    • 튜플 : 어트리뷰트 (컬럼, 필드, 혹은 속성)들로 구성
  • 관계 데이터 모델 용어
    • 속성 (Attributes)
      • 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부 정보의 관리 요소로서 개체를 구성하는 항목
    • 튜플 (Tuple)
      • 릴레이션의 행을 구성하는 속성 값들의 집합
      • 행, 레코드와 같은 개념
    • 차수 (Degree)
      • 속성들의 수
    • 카디널리티 (Cardinality)
      • 튜플들의 수
    • 도메인 (Domain)
      • 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합
      • 표현되는 속성 값의 범위
    • 릴레이션 인스턴스 (Relation Instance)
      • 릴레이션의 어느 시점에 들어 있는 튜플들의 집합 (동적인 성질)
      • 튜플들의 집합으로 현재 들어가 있는 실제 데이터를 지칭

 

146. BETWEEN ~ AND

  • 수치 데이터 또는 날짜 데이터에 대해 범위를 검색하고자 할 때 사용하는 명령어

 

148. 무결성의 종류

  • 개체(엔티티) 무결성 (Entity Integrity)
    • 기본키는 반드시 값을 가짐 : NULL허용 안함
    • 유일성을 보장하는 최소한의 집합
    • 제약조건 : Primary Key, NOT NULL
  • 참조 무결성 (Referential Integrity)
    • 외래키 속성은 참조할 수 없는 값을 지닐 수 없음
    • 그 외래키가 기본키로 사용된 릴레이션의 기본키 값이거나 NULL 값일 것
    • 제약조건 : Foreign Key
  • 속성 무결성 (Attribute Integrity)
    • 컬럼은 지정된 데이터 형식을 반드시 만족하는 값만 포함
    • 제약 조건 : Character, Date, LONG, VARCHAR2, NUMBER
  • 키 무결성 (Key Integrity)
    • 한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안 됨
    • 제약 조건 : Primary Key, Unique Index
  • 사용자 정의 무결성 (User Defined Integrity)
    • 모든 데이터는 업무 규칙을 준수해야 함
    • 제약 조건 : Trigger, User Define, Data Type, Check, DEFAULT Value
  • 도메인 무결성 (Domain Integrity)
    • 특정 속성값이 미리 정의된 도메인 범위에 속해야 함
    • 제약 조건 : CHECK, DEFAULT

 

149. SQL 명령어의 종류

  • 데이터 질의어 (DQL)
    • 데이터베이스에 저장된 데이터를 검색하는데 사용하는 질의어
    • 명령어 : SELECT
  • 데이터 조작어 (DML)
    • 데이터베이스에 저장된 데이터를 수정, 삭제, 추가하는 명령어
    • 명령어 : INSERT, UPDATE, DELETE
  • 데이터 정의어 (DDL)
    • 데이터베이스 객체를 생성, 수정, 삭제하는 명령어
    • 데이터베이스의 스키마를 정의, 스키마에 대한 명세는 시스템 카탈로그에 저장
    • 명령어 : CREATE, ALTER, DROP
  • 데이터 제어어 (DCL)
    • 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어
    • 사용자 권한 부여 / 취소, 트랜잭션 제어
    • 명령어 : GRANT, REVOKE, COMMIT, ROLLBACK