Skip to Content

데이터베이스

01 데이터베이스

  • 데이터베이스(DB) 개념: 여러 응용 시스템들이 공유하고 소유하고 유지하며 보수하는 공용 데이터를 말한다. 특징: 실시간으로 DB에 접근하여 공유할 수 있고, 독립적으로 데이터 관리를 할 수 있고 프로그램 개발 및 유지 보수가 용이하며, 데이터 중복의 최소화 및 일관성, 무결성을 유지할 수 있다. ★ 데이터가 중복되면 제어가 분산되어 데이터 무결성을 유지하기 어려워진다. 단점: 전문가 부족, 비용 증가, 복구가 어렵고 복잡하고 속도가 느리다. ★ Access 파일에 암호를 설정하는 방법: [단독으로 열기] 후 [파일]→ [정보]→ 데이터베이스 암호 설정]

  • 데이터베이스 관리 시스템(DBMS)

    • 데이터베이스를 생성, 관리 및 요구에 따라 정보를 생산하는 소프트웨어 이다.
    • 데이터의 중복성, 종속성 문제를 해결하기 위해 제안하며 중속성과 중복을 최소화 해야 한다.
    • 독시 접근이 가능하며 데이터를 공유하고 관리해 준다.
    • 백업과 회복 절차가 복잡하다.(단점)
    • 기능 3가지
      • 정의: 타입과 구조 이용 방법을 정의한다.
      • 조작: 검색, 갱신, 삽입, 삭제 처리에 대한 방법을 정의한다.
      • 제어: 정확성, 보안성, 무결성, 권한 검사, 병행 제어 기능을 정의한다.
    • 관계형(RDBMS): MS-SQL
  • 데이터베이스 언어

    • 데이터 정의어(DDL): 데이터를 생성, 수정할 때 사용, 관리자, 설계자가 사용한다. CREATE(테이블 생성), ALTER(테이블 정의(구조) 변경), DROP(테이블 삭제)
    • 데이터 조작어(DML): 저장된 데이터를 실질적으로 처리하는데 사용되는 언어, 검색, 삽입, 삭제, 변경, 절차식, 비절차식, 인터페이스제공, SELECT(검색), UPDATE(갱신), INSERT(삽입), DELETE(삭제)
    • 데이터 제어어(DCL): 보안, 무결성, 회복, 병행 제어 등을 정의할 때 사용, 데이터 관리를 목적으로 한다. COMMIT(반영), ROLLBACK(반영 안 함, 되돌리기), GRANT(허가), REVOKE(허가 취소)
  • 관계형 데이터베이스: 복잡한 구조를 단순화 시킨 모델

    • 계층 구조가 아니라 개체나 관계를 이용한 표로 정의 한다
    • 1:1, 1:다, 다:다 구조
    • 구성 형태
      • 테이블: 행과 열로 표현, 튜플(레코드)집합
      • 튜플: 행을 구성하는 개체(레코드)
      • 속성: 열을 구성하는 항목, 가장 작은 논리적 단위(필드, 애트리뷰트 Attribute)
      • 도메인: 하나의 애트리뷰트(속성)이 가질 수 있는 값의 범위를 말한다. ★ 애트리뷰트는 널(Null) 값을 가질 수 있다.차수(Degree): 애트리뷰트, 속성의 개수, 기수(Cardinality): 튜플의 개수
    • 특징
      • 유일하고 순서 제한이 없다. ★ 데이터가 계속적으로 변하며 순서는 중요하지 않다.
      • 속성의 이름은 유일하지만, 값은 유일하지 않을 수 있다.
      • 속성의 일부를 키로 정의한다(왜??: 구분하기 위해서)
  • 키의 종류

    • 기본키: 특정 레코드를 유일하게 구별할 수 있는 키, 널(Null)값을 가질 수 없음, 중복이 안 되며 후보키 중에서 선택한 주 키 이다.기본키는 여러 개 필드에 적용할 수 있다.
    • 후보키: 기본키로 사용될 수 있는 속성(유일성, 최소성)
    • 외래키: 관계가 성립된 테이블 A, B에서 A가 참조하고 있는 B의 기본키와 같은 속성을 갖는 A테이블의 속성
    • 대체키: 후보키중에서 기본키를 제외한 나머지 속성을 말한다.
    • 슈퍼키: 하나의 테이블에서 후보키가 하나도 없을 때 두 개 이상의 열을 연결한다. ★ 유일성은 만족하고, 최소성은 만족하지 않는다.
    • 개체 무결성: 기본키는 NULL값을 가지지 못한다.
    • 참조 무결성: 외래키 값은 기본키 값과 동일해야 된다.
  • 정규화

    • 테이블 조작 시 이상 현상이 발생하지 않도록 중복, 종속성을 배제하는 원칙이다. ★ 논리적 단계 에서 수행, 속성수가 적은 릴레이션으로 분할한다.
    • 종속성을 제거하는 과정이며 중복을 완벽하게 제거는 못한다.
    • 1정규형(1NF)~5정규형(5NF) 하위상위
  • 개체 관계 모델(ER): 피터첸이 제시했다.

    • 개체간의 관계를 표시, 특정 시스템을 고려하지 않는다.
    • 개념적으로 표시, 현실 세계를 논리 데이터로 표현한다.
    • 구성요소
      • 개체: 사람이 생각하는 개념, 정보 단위를 말한다.
      • 속성: 개체를 구성하는 요소, 필드에 해당한다.
      • 관계: 1:1, 1:다, 다:다 [표 형식] | 기호 | 의미 | |---|---| | 사각형 | 개체 | | 마름모 | 관계 | | 타원 | 속성 |
  • 스키마(ER) 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다.

    • 데이터베이스 관리 시스템이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.
    • 특징: 데이터 사전에 저장, 시간이 지나도 변하지 않는다, 현실 세계의 특정 부분을 모델로 만들고, 데이터 구조의 특성을 의미하며, 인스턴스에 의해 규정된다. | 개념스키마 | 데이터베이스 전체의 논리적인 구조를 보여준다. | |---|---| | 외부스키마 | 서브스키마라고도 하며 사용자가 사용하는 관점에서 본 논리적 구조이다. | | 내부스키마 | 물리적 저장장치(기계) 관점에서 본 구조 |

    데이터 사전은 데이터베이스 전반에 대한 정보를 제공하는 테이블 및 부들의 집합이다.인스턴스는 스키마에 대한 실제 데이터를 의미하며, 인스턴스들이 모여 데이터베이스의 상태가 된다.

  • 데이터 모델의 구성요소 | 개체(Entity) | 데이터베이스에 표현하려는 인간이 생각하는 개념, 정보 단위 같은 현실 세계의 대상체 | |---|---| | 속성(Attribute) | 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드 | | 관계(Relationship) | 개체 간의 관계 또는 속성 간의 논리적인 연결 |

02 테이블

  • 테이블

    • 작성 방법: 만들기→ [테이블], [테이블 디자인], [SharePoint 목록], 외부 데이터→ [새 데이터 원본] ★ 데이터시트 보기: 데이터를 입력 하면서 테이블을 작성할 수 있다.
    • 필드 이름: 64자 까지 입력, 첫 문자를 공백으로 사용 못 함, 필드 크기는 복제 ID 16 바이트로 변경할 수 있다.
    • 테이블명과 필드명은 같을 수 있다. 필드 이름은 중복될 수 없다.
    • 테이블명과 쿼리명은 같을 수 없다. ★ 데이터시트 보기에서는 필드와 레코드를 삭제할 수 있다.필드를 삭제 시 필드에 있는 자료는 모두 지워지고 되돌리기(실행취소)가 안 된다.[디자인 보기][필드 목록]여러 개 필드를 한 번에 추가 할 수 있다.필드(Attribute, 속성): 데이터베이스를 구성하는 가장 작은 논리적 단위를 말한다.
  • 데이터 형식

    • 데이터 형식에 따라 필드의 속성을 각각 다르다.
    • 디자인 보기: 데이터 형식을 지정하고 확인할 수 있다. → ★ 삭제된 일련번호는 다시 부여되지 않는다. | 텍스트 | 글자, 숫자 입력 가능, 255자 | 일련번호 | 1,2,3,4 차례 순차적으로 표현, ★ 업데이트/수정이 불가능 | |---|---|---|---| | 메모 | 65,535자 입력가능(긴 텍스트) | YES/NO | 둘 중에 하나의 값을 취함, 남(-1), 여(0) 1bit | | | 기본적으로 정수형(2Byte, 4Byte(기본)), | OLE 개체 | 다른 프로그램의 개체(그림)를 입력, 1Gbyte | | | 실수형(4Byte(소수7자리), | 하이퍼링크 | 웹사이트나 특정 위치로 이동할 수 있는 기능 | | 숫자 | 8Byte(소수15자리)) | 첨부파일 | 파일을 첨부할 수 있는 기능 | | | #,##0[녹색] ; #,##0[빨강] ;“0”; “NULL” | 계산 | 수식의 계산 결과를 표시할 수 있는 기능 | | | 양수 ; 음수 ; 0 ; 널값 | | | | 통화 | 8Byte, 소수4자리까지 표현 | 날짜/시간 | 정해진 형식 사용가능, 8Byte |

    데이터 사전(Data Dictionary): 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지 관리하는 시스템이다. (메타 데이터, 시스템 카탈로그)

  • **테이블 구조 ** (행 선택기를 이용하여 삽입, 삭제, 이동이 가능하다.)

    • 필드 삽입: 새로운 필드 추가, 디자인 보기에서 수행, Insert
    • 필드 삭제: 기존의 필드를 제거하며 복구는 불가능, Delete
    • 필드 이동: 원하는 위치로 드래그, Ctrl+X > Ctrl+V필드의 설명에 입력된 내용은 테이블 구조에 전혀 영향을 끼치지 않고 상태 표시줄에 설명에 입력된 내용이 표시 된다.
  • 입력 마스크 입력 시 신속하고 정확하게 입력 할 수 있게 한다. [이미지 내용]

    • 기호도 저장 0000-00-0000 ; 0 ; _ 입력할 때 숫자4자리-숫자2자리-숫자4자리 필수 입력 입력할 때 입력할 자리에 _ 표시가 나온다.
  • 입력 마스크 기호 | 0 ✓ | 숫자 필수 | + - 기호 사용할 수 없음 | |---|---|---| | 9 ✓ | 숫자 선택 | + - 기호 사용할 수 없음 | | # | 숫자, 공백 선택 | + - 기호 사용할 수 있음 |

L문자 필수
?문자 선택
&모든 문자나 공백 필수
C모든 문자나 공백 선택
A문자, 숫자 필수
a문자, 숫자 선택
<모두 소문자로
>모두 대문자로
  • 필드 속성
    • 형식: 간단한 날짜, 통화, 표준, 백분율 등등,
    • 캡션: 필드 이름을 다른 이름으로 표시될 글자를 말한다.
    • 기본값: 필드에 자동으로 입력되는 값을 지정한다.
    • 유효성 검사 규칙: 필드에 입력될 데이터의 종류나 범위지정 정확한 값을 입력하기 위해서 사용한다.
      • 일련번호, OLE 개체 에서는 사용할 수 없다.
    • 유효성 검사 텍스트: 규칙에 어긋날 경우 나타날 메시지 ★ LIKE: 사용자가 지정한 패턴과 일치하는 데이터를 찾을 때 예: A 를 포함하는 → LIKE “A

Instr(“ABCDE EFG”, ” ”) 공백의 위치는 ? 6 in(“서울”,“대전”,“대구”) 서울, 대전, 대구 중의 하나 Between 10 And 20 10 에서 20 사이 Between #2024/03/01# And #2024/05/31#2024년 3월 1일부터 2024년 5월 31일 까지

  • 필드 조회 속성

    • 컨트롤 표시: 텍스트 상자, 콤보 상자, 목록 상자
    • 행 원본 유형: 테이블/쿼리, 값 목록, 필드 목록값 목록으로 설정하면 직접 입력한 값을 원본으로 사용할 수 있다.
    • 바운드 열: 여러 개 열 중 저장되는 열 번호
    • 열 개수: 표시되는 열의 개수, ■ 열 이름: 열의 제목 표시 여부
    • 열 너비: 열이 표시될 크기지정, 여러 개일 경우 세미콜론(;)
    • 목록 너비: 목록 너비를 지정, 콤보 상자에만 적용한다.열 너비가 1cm, 5cm일때 열 너비 1 ; 5 목록 너비 6목록 값만 허용: 지정된 값 이외를 입력할 수 있는지 여부를 정함. 콤보 상자 에서만 할 수 있다.
  • 기본키: 열쇠 모양의 아이콘 [기본키 아이콘 이미지]

    • 고유해야 되며 유일해야 되고 중복된 값, 널(NULL) 값이 될 수 없다.
    • OLE, 메모, 첨부파일은 기본키가 될 수 없다.
    • 인덱스 속성은 예(중복 불가능)
    • 여러 개 필드를 기본키로 정할 수 있고, 중복되면 오류 메시지가 뜬다.
  • 인덱스 검색이나 그룹화 작업의 속도 향상을 위해서 설정하는 기능이다.

    • 32개까지 생성 가능, 디자인 보기에서 작업, OLE는 색인을 설정할 수 없다.
    • 옵션 3가지: 아니오, 예(중복 가능), 예(중복 불가능)기본키는 자동으로 인덱스가 되며 저장할 때 만들어지고 레코드 작업 시 자동으로 업데이트 된다.양이 많을수록 인덱스의 효과를 볼 수 있지만 데이터 추가나 변경 시 갱신 속도는 느려진다.
  • 관계 설정

    • 쿼리, 폼, 보고서에서 편리하게 사용할 수 있다.
    • 테이블이 열려 있으면 관계를 설정할 수 없다.(닫혀 있어야 가능하다.)
    • 기본키 필드와 외래키 필드의 형식은 같아야 하며 같은 정보가 있어야 한다. [관계 편집 대화상자 이미지] 테이블/쿼리(T): 거래 테이블/쿼리(B): 거래물품 ▼ 거래정보 ▼ 상품번호상품번호참상 참조 무결성 유지(E)거래물품 테이블에 없는 상품번호를 거래정보 테이블에 생성할 수 없도록 한다.관련 필드 모두 업데이트(U)관련 레코드 모두 삭제(D)거래물품 테이블에서 상품번호가 바뀔 때마다 거래정보 테이블의 상품번호도 같이 바뀌도록 한다. 관계 종류: 일대다 관계 거래물품 테이블에서 레코드가 삭제되면 거래정보 테이블의 관련 레코드들이 삭제되도록 한다.관계의 종류(1:1, 1:다, 다:다)는 선택하는 것이 아니라 관계를 구성하는 테이블 간의 기본키 와 외래키를 설정하고, 상태에 따라 자동으로 설정된다.

    관계 예시 [관계 다이어그램 이미지] 주문 테이블:

    • 🔑 주문번호
    • 재품번호
    • 회원번호
    • 주문수량
    • 주문날짜
    • 포인트 재품 테이블:
    • 🔑 재품번호
    • 재품명
    • 재고수량
    • 단가
    • 물품재조회사 회원 테이블:
    • 🔑 회원번호
    • 회원명
    • 전화번호
    • 성별 ① [재품]과 [주문]은 1:다 관계[회원]과 [주문]은 1:다 관계[재품]과 [회원]은 다:다 관계연결된 테이블을 삭제하더라도 원본 데이터에는 아무런 영향을 주지 않는다.관계가 설정된 테이블의 기본키 설정을 해제하려면 먼저 설정된 관계를 제거해야 한다.
  • 참조 무결성: 실수로 삭제, 변경하지 않도록, 관계를 유지하도록 하는 기능

    • 조건: 기본키, 고유 인덱스 설정, 동일한 형식, 액세스 테이블
    • 강화규칙
      • 기본 테이블의 기본키 필드에 존재하지 않는 데이터는 관계가 설정된 테이블의 외래키 필드 값으로 입력할 수 없다.
      • 기본 테이블과 관계가 설정된 테이블에 일치하는 레코드가 존재할 때는 기본 테이블에서 레코드를 삭제할 수 없다.
      • 기본 테이블과 관계가 설정된 테이블에 일치하는 레코드가 존재할 때는 기본 테이블에서 기본키를 바꿀 수 없다.
      • 기본 테이블의 기본키 필드 값이 바뀌면 자동으로 관계가 설정 된 테이블의 관련 필드의 값이 모두 수정되도록 설정할 수 있다.
      • 기본 테이블에서 레코드를 삭제하면 자동으로 관계가 설정된 테이블의 관련 레코드가 모두 삭제되도록 설정할 수 있다.
  • 참조 무결성의 예 [다이어그램] [학과] 테이블 ✓ 와 [학생] 테이블 ✓ | 학과코드 | 학과명 | |---|---| | A | 정치외교 | | B | 수학교육 | | C | 기계설계 | | D | 물리교육 |

학번학생명학과
240531조나단A
240606한경주C
241034유지현C
231105다니엘D
240705지민A

학과 테이블의 학과코드 필드는 기본키로 설정되어 있고 학생 테이블의 학과 필드는 학과 테이블의 학과코드 필드를 참조하는 외래키이다. [학생] 테이블의 ‘지민’ 학생의 학과를 E로 바꾸면 참조 무결성은 위배된다. [학과] 테이블의 ‘학과코드’ B를 삭제해도 참조 무결성은 유지된다. [학생] 테이블의 ‘한경주’ 학생 레코드를 삭제해도 참조 무결성은 유지된다.참조 무결성에 위배: 다른 테이블에 의해 참조되는 테이블의 레코드를 삭제시 발생 ★ 다른 테이블을 참조하는 테이블의 레코드를 삭제는 참조 무결성에 위배되지 않는다.

  • 레코드 작업
    • 추가: 항상 마지막에 추가된다.(자료의 순서는 상관이 없다), Ctrl + +
    • 삭제: 복구할 수 없다. 여러 개 레코드를 동시에 삭제가 가능하다. Ctrl + 또는 Del
  • 외부 데이터
    • 가져오기: 텍스트, 스프레드시트, 데이터베이스를 액세스 테이블로 만드는 작업이다.
      • 새 테이블로 생성, 기존 테이블에 추가 가능 (원본은 변경되지 않는다.)
    • 연결하기
      • 양쪽에서 데이터를 입력과 편집이 가능하다.
      • 연결된 테이블을 변경시 원본도 자동으로 변경된다.
      • 연결된 테이블 삭제시 원본 데이터는 영향이 없다.
    • 내보내기: 저장 / 출력
      • Access개체, Excel, Word RTF, 텍스트, XML, ODBC, HTML, SharePoint, PDF, XPS, Word 형식으로 내보낼 수 있다.
      • 데이터, 구조, 서식 등은 내보낼 수 있지만 제약조건, 관계, 인덱스 같은 속성은 내보낼 수 없다.액셀 파일을 가져오는 경우 한 번에 한 개 워크시트만 가져올 수 있어서 두 개 이상 워크시트를 가져을 때는 가져오기 명령을 반복해야 된다.
    • 양쪽에서 데이터를 입력과 편집이 가능하다.
    • 연결된 테이블을 변경시 원본도 자동으로 변경된다.
    • 연결된 테이블 삭제시 원본 데이터는 영향이 없다. ■ 내보내기: 저장 / 출력
    • Access개체, Excel, Word RTF, 텍스트, XML, ODBC, HTML, SharePoint, PDF, XPS, Word 형식으로 내보낼 수 있다.
    • 데이터, 구조, 서식 등은 내보낼 수 있지만 제약조건, 관계, 인덱스 같은 속성은 내보낼 수 없다.액셀 파일을 가져오는 경우 한 번에 한 개 워크시트만 가져올 수 있어서 두 개 이상 워크시트를 가져을 때는 가져오기 명령을 반복해야 된다.엑셀에서 정의된 이름의 영역을 액세스의 기존 테이블이나 또는 새 테이블로 만들 수 있다.외부 데이터 파일을 가져올 때 데이터를 수정하면서 가져올 수 없다.외부 데이터를 가져올 때 원본 열 개수는 255개를 초과하지 않아야 된다.(255개 까지 가능)
  • 데이터베이스 OX 퀴즈

문제

  1. 데이터베이스는 여러 응용 시스템들이 공유하고 소유하고 유지하며 보수하는 공용 데이터를 말한다.
  2. 데이터가 중복되면 제어가 분산되어 데이터 무결성을 유지하기 쉬워진다.
  3. Access 파일에 암호를 설정하려면 [단독으로 열기] 후 [파일]→ [정보]→ [데이터베이스 암호 설정]을 선택한다.
  4. DBMS의 3가지 기능은 정의, 조작, 제어이다.
  5. 데이터 정의어(DDL)에는 SELECT, UPDATE, INSERT, DELETE가 포함된다.
  6. 데이터 조작어(DML)에는 CREATE, ALTER, DROP이 포함된다.
  7. 데이터 제어어(DCL)에는 COMMIT, ROLLBACK, GRANT, REVOKE가 포함된다.
  8. 관계형 데이터베이스는 복잡한 구조를 단순화 시킨 모델이다.
  9. 테이블에서 행을 구성하는 개체를 속성(Attribute)이라고 한다.
  10. 애트리뷰트는 널(Null) 값을 가질 수 있다.
  11. 차수(Degree)는 튜플의 개수를 의미한다.
  12. 기수(Cardinality)는 튜플의 개수를 의미한다.
  13. 기본키는 NULL값을 가질 수 있다.
  14. 기본키는 여러 개 필드에 적용할 수 있다.
  15. 외래키 값은 기본키 값과 동일해야 된다.
  16. 정규화는 테이블 조작 시 이상 현상이 발생하지 않도록 중복, 종속성을 배제하는 원칙이다.
  17. 정규화는 논리적 단계에서 수행되며 속성수가 적은 릴레이션으로 분할한다.
  18. 정규화는 상위에서 하위로 진행된다.
  19. 개체 관계 모델(ER)은 피터첸이 제시했다.
  20. ER 다이어그램에서 사각형은 관계를, 마름모는 개체를 나타낸다.
  21. 개념스키마는 데이터베이스 전체의 논리적인 구조를 보여준다.
  22. 외부스키마는 서브스키마라고도 하며 사용자가 사용하는 관점에서 본 논리적 구조이다.
  23. 내부스키마는 물리적 저장장치(기계) 관점에서 본 구조이다.
  24. 인스턴스는 스키마에 대한 실제 데이터를 의미한다.
  25. 테이블을 작성할 때 데이터를 입력하면서 테이블을 작성할 수 있는 방법은 데이터시트 보기이다.
  26. 필드 이름은 64자까지 입력 가능하다.
  27. 테이블명과 필드명은 같을 수 없다.
  28. 데이터시트 보기에서는 필드와 레코드를 삭제할 수 있다.
  29. 필드를 삭제 시 필드에 있는 자료는 모두 지워지고 되돌리기(실행취소)가 가능하다.
  30. 데이터 형식에 따라 필드의 속성을 각각 다르게 설정할 수 있다.
  31. 일련번호는 업데이트/수정이 가능하다.
  32. 삭제된 일련번호는 다시 부여되지 않는다.
  33. YES/NO 데이터 형식은 1bit 크기이다.
  34. OLE 개체의 크기는 1Gbyte이다.
  35. 통화 데이터 형식은 8Byte이며 소수 4자리까지 표현한다.
  36. 날짜/시간 데이터 형식은 8Byte이다.
  37. 입력 마스크에서 ‘0’은 숫자 필수이며 + - 기호를 사용할 수 있다.
  38. 입력 마스크에서 ‘9’는 숫자 선택이며 + - 기호를 사용할 수 없다.
  39. 입력 마스크에서 ‘L’은 문자 필수를 의미한다.
  40. 입력 마스크에서 ’<‘는 모두 대문자로 변환한다.
  41. 유효성 검사 규칙은 일련번호, OLE 개체에서도 사용할 수 있다.
  42. LIKE 연산자에서 A를 포함하는 조건은 LIKE “A”이다.
  43. Between 10 And 20은 10에서 20 사이의 값을 의미한다.
  44. 컨트롤 표시에는 텍스트 상자, 콤보 상자, 목록 상자가 포함된다.
  45. 값 목록으로 설정하면 직접 입력한 값을 원본으로 사용할 수 있다.
  46. 목록 값만 허용은 텍스트 상자에서만 설정할 수 있다.
  47. 기본키는 고유해야 되며 유일해야 되고 중복된 값과 널(NULL) 값이 될 수 없다.
  48. OLE, 메모, 첨부파일은 기본키가 될 수 있다.
  49. 인덱스는 최대 32개까지 생성 가능하다.
  50. 기본키는 자동으로 인덱스가 되며 저장할 때 만들어진다.
  51. 데이터 양이 많을수록 인덱스의 효과를 볼 수 있지만 데이터 추가나 변경 시 갱신 속도는 느려진다.
  52. 관계를 설정하려면 테이블이 열려 있어야 한다.
  53. 테이블이 열려 있으면 관계를 설정할 수 없다.
  54. 기본키 필드와 외래키 필드의 형식은 달라도 된다.
  55. 참조 무결성의 ‘참조 필드 모두 업데이트’는 기본 테이블의 기본키가 변경되면 관련 테이블의 외래키도 자동으로 변경되는 기능이다.
  56. 참조 무결성의 ‘관련 레코드 모두 삭제’는 기본 테이블의 레코드가 삭제되면 관련 테이블의 레코드도 자동으로 삭제되는 기능이다.
  57. 관계의 종류(1:1, 1:다, 다:다)는 사용자가 직접 선택한다.
  58. 연결된 테이블을 삭제하면 원본 데이터도 삭제된다.
  59. 관계가 설정된 테이블의 기본키 설정을 해제하려면 먼저 설정된 관계를 제거해야 한다.
  60. 참조 무결성 설정 조건은 기본키, 고유 인덱스 설정, 동일한 형식, 액세스 테이블이다.
  61. 기본 테이블의 기본키 필드에 존재하지 않는 데이터는 관계가 설정된 테이블의 외래키 필드 값으로 입력할 수 있다.
  62. 기본 테이블과 관계가 설정된 테이블에 일치하는 레코드가 존재할 때는 기본 테이블에서 레코드를 삭제할 수 있다.
  63. 다른 테이블을 참조하는 테이블의 레코드를 삭제하는 것은 참조 무결성에 위배되지 않는다.
  64. 레코드 추가는 항상 마지막에 추가된다.
  65. 삭제된 레코드는 복구할 수 있다.
  66. 가져오기를 하면 원본이 변경된다.
  67. 연결된 테이블을 변경하면 원본도 자동으로 변경된다.
  68. 연결된 테이블을 삭제하면 원본 데이터도 삭제된다.
  69. 데이터, 구조, 서식 등은 내보낼 수 있지만 제약조건, 관계, 인덱스 같은 속성은 내보낼 수 없다.
  70. 액셀 파일을 가져오는 경우 한 번에 여러 개 워크시트를 가져올 수 있다.

정답 및 해설

  1. O - 데이터베이스의 정의이다.
  2. X - 데이터가 중복되면 제어가 분산되어 데이터 무결성을 유지하기 어려워진다.
  3. O - Access 파일 암호 설정 방법이다.
  4. O - DBMS의 3가지 기능은 정의, 조작, 제어이다.
  5. X - SELECT, UPDATE, INSERT, DELETE는 **데이터 조작어(DML)**이다.
  6. X - CREATE, ALTER, DROP은 **데이터 정의어(DDL)**이다.
  7. O - DCL의 명령어들이다.
  8. O - 관계형 데이터베이스의 특징이다.
  9. X - 행을 구성하는 개체는 **튜플(레코드)**이며, 속성은 을 의미한다.
  10. O - 애트리뷰트는 널(Null) 값을 가질 수 있다.
  11. X - 차수(Degree)는 애트리뷰트(속성)의 개수를 의미한다.
  12. O - 기수(Cardinality)는 튜플의 개수를 의미한다.
  13. X - 기본키는 NULL값을 가질 수 없다.
  14. O - 기본키는 여러 개 필드에 적용할 수 있다.
  15. O - 참조 무결성의 규칙이다.
  16. O - 정규화의 정의이다.
  17. O - 정규화는 논리적 단계에서 수행된다.
  18. X - 정규화는 하위에서 상위로 진행된다.
  19. O - 피터첸이 제시했다.
  20. X - 사각형은 개체를, 마름모는 관계를 나타낸다.
  21. O - 개념스키마의 정의이다.
  22. O - 외부스키마(서브스키마)의 정의이다.
  23. O - 내부스키마의 정의이다.
  24. O - 인스턴스는 스키마에 대한 실제 데이터를 의미한다.
  25. O - 데이터시트 보기에서 데이터를 입력하면서 테이블을 작성할 수 있다.
  26. O - 필드 이름은 64자까지 입력 가능하다.
  27. X - 테이블명과 필드명은 같을 수 있다.
  28. O - 데이터시트 보기에서 필드와 레코드를 삭제할 수 있다.
  29. X - 필드 삭제 시 되돌리기(실행취소)가 불가능하다.
  30. O - 데이터 형식에 따라 필드의 속성이 다르다.
  31. X - 일련번호는 업데이트/수정이 불가능하다.
  32. O - 삭제된 일련번호는 다시 부여되지 않는다.
  33. O - YES/NO는 1bit이다.
  34. O - OLE 개체는 1Gbyte이다.
  35. O - 통화는 8Byte, 소수 4자리까지이다.
  36. O - 날짜/시간은 8Byte이다.
  37. X - ‘0’은 숫자 필수이며 + - 기호를 사용할 수 없다.
  38. O - ‘9’는 숫자 선택이며 + - 기호를 사용할 수 없다.
  39. O - ‘L’은 문자 필수이다.
  40. X - ’<‘는 모두 소문자로 변환하고, ’>‘가 모두 대문자로 변환한다.
  41. X - 유효성 검사 규칙은 일련번호, OLE 개체에서 사용할 수 없다.
  42. O - LIKE “A”는 A를 포함하는 조건이다.
  43. O - Between 10 And 20의 의미이다.
  44. O - 컨트롤 표시의 종류이다.
  45. O - 값 목록의 특징이다.
  46. X - 목록 값만 허용은 콤보 상자에서만 설정할 수 있다.
  47. O - 기본키의 특징이다.
  48. X - OLE, 메모, 첨부파일은 기본키가 될 수 없다.
  49. O - 인덱스는 최대 32개까지 생성 가능하다.
  50. O - 기본키는 자동으로 인덱스가 된다.
  51. O - 인덱스의 특징이다.
  52. X - 관계를 설정하려면 테이블이 닫혀 있어야 한다.
  53. O - 테이블이 열려 있으면 관계를 설정할 수 없다.
  54. X - 기본키 필드와 외래키 필드의 형식은 같아야 한다.
  55. O - ‘참조 필드 모두 업데이트’의 기능이다.
  56. O - ‘관련 레코드 모두 삭제’의 기능이다.
  57. X - 관계의 종류는 기본키와 외래키 설정 상태에 따라 자동으로 설정된다.
  58. X - 연결된 테이블을 삭제해도 원본 데이터는 영향을 받지 않는다.
  59. O - 관계를 먼저 제거해야 기본키 설정을 해제할 수 있다.
  60. O - 참조 무결성 설정 조건이다.
  61. X - 참조 무결성 규칙에 의해 입력할 수 없다.
  62. X - 참조 무결성 규칙에 의해 삭제할 수 없다.
  63. O - 다른 테이블을 참조하는 테이블의 레코드 삭제는 참조 무결성에 위배되지 않는다.
  64. O - 레코드는 항상 마지막에 추가된다.
  65. X - 삭제된 레코드는 복구할 수 없다.
  66. X - 가져오기는 원본을 변경하지 않는다.
  67. O - 연결된 테이블을 변경하면 원본도 자동으로 변경된다.
  68. X - 연결된 테이블을 삭제해도 원본 데이터는 영향을 받지 않는다.
  69. O - 내보내기의 제한사항이다.
  70. X - 액셀 파일을 가져올 때는 한 번에 한 개 워크시트만 가져올 수 있다.

03 쿼리(SQL)

SQL 질의어:

질문하면 대답해주는 언어

  • 대, 소문자 구분 안 함, 마지막에 세미콜론 ; 여러 개 필드는 쉼표 , 로 구분, 모든 필드 검색은 사용
  • DISTINCT: 중복되지 않게 검색한다.
  • DELETE에서 조건을 지정하지 않으면 전체 레코드가 삭제된다.
  • 삭제된 레코드는 복원할 수 없다.
  • WHERE, HAVING: 조건 ★ WHERE필드에 관한 조건을 지정하는 것이고, HAVING그룹에 대해 조건을 지정하는 것이다.
  • ORDER BY: 정렬 조건지정(ASC: 오름차순, DESC: 내림차순)
    • 정렬방식을 지정하지 않으면 오름차순
    • 오름차순 순서: 숫자, 한글, 영문(소문자, 대문자)
  • GROUP BY: SUM, AVG, COUNT와 같이 사용될 수 있다.(집계함수)고객코드 별로Group By 고객코드 반품 횟수가 3개 이상인 → Having Count([고객코드]) >=3
  • 선택 질의: 기본적인 쿼리로 하나 이상의 테이블, 쿼리의 조합에서 특정 조건에 맞는 자료를 추출할 수 있다.
  • 요약 질의: 집계 함수(SUM,AVG, COUNT, MAX, MIN 등)를 이용하여 그룹별 계산을 하기 위한 쿼리이다.
  • 크로스탭 질의: 특정 필드에 대한 요약 값을 표시한다, 그룹별로 한 집합은 **왼쪽(행)**에 또 하나는 **위쪽(열)**에 표시, 피벗 테이블과 유사, ★ 행 머리글 필드는 여러 개 사용(최대 3개), 열 머리글은 한 개만 사용할 수 있다.
  • 매개 변수 쿼리: 실행할 때 조건을 입력받아서 질의에 사용된다.(조건 데이터 0, 조건식 X) [매개 변수 값 입력 대화상자 이미지] 담당자를 입력하세요 [확인] [취소]
  • 통합(UNION) 쿼리: 유사한 2개의 테이블이나 질의 내용을 합쳐서 한 개의 테이블로 만들기 위한 질의를 말한다.
    • 같은 레코드는 한 번만 입력(중복된 레코드는 한 개만 입력된다.) ★ 열의 개수가 다르면 통합될 수 없다.
  • **조인: ** 2개 이상의 테이블을 1개의 테이블처럼 사용하기 위한 기능을 말한다.
    • 테이블명.필드명 으로 사용한다.
    • 관계가 설정되지 않아도 사용 가능하다.

내부 조인(INNER JOIN): 두 테이블에서 일치하는(공통적으로 존재하는) 레코드를 포함한다. ★ 외부 조인(OUTER JOIN): 두 테이블에 공통적으로 존재하지 않는 레코드도 포함한다. ★ 관계가 설정되어 있는 경우는 조인선이 자동으로 만들어진다.조인에 사용되는 필드 형식은 동일하거나 호환 되어야 한다.

  • 조인 속성 [조인 속성 대화상자 이미지] ○ 1: 두 테이블의 조인된 필드가 일치하는 행만 포함 ○ 2: ‘거래물품’에서는 모든 레코드를 포함하고 ‘거래정보’에서는 조인된 필드가 일치하는 레코드만 포함 ○ 3: ‘거래정보’에서는 모든 레코드를 포함하고 ‘거래물품’에서는 조인된 필드가 일치하는 레코드만 포함 [확인] [취소]

  • ★ 액세스 함수 정리* | SUM( ) | 합계 구하기 | DATEADD( ) | 날짜에 지정된 값의 년, 월, 일을 더해주기 | |---|---|---|---| | AVG( ) | 평균 구하기 | FORMAT( ) | 결과를 서식에 맞춰 표현하기 | | **COUNT()** | 레코드 개수 구하기 | SUBTOTAL( ) | 부분합 구하기 | | MAX( ) | 최대값 구하기 | ABS( ) | 절대값 구하기 | | MIN( ) | 최소값 구하기 | SIGN( ) | 부호 구하기 | | INSTR( ) | 문자열의 위치 구하기 | ROUND( ) | 반올림 구하기 | | LEN( ) | 문자열의 길이 구하기 | MOD( ) | 나머지 구하기 | | LEFT( ) | 문자열에서 왼쪽에서 개수만큼 가져오기 | MID( ) | 문자열에서 번째 부터 개수 만큼 가져오기 | | RIGHT( ) | 문자열에서 오른쪽에서 개수만큼 가져오기 | STR( ) | 숫자 형식을 문자 형식으로 바꿔주기 |

  • ★ SQL 예시 구문

회사 테이블에서 ‘부서’가 ‘영업부’인 직원의 ‘이름’, ‘직책’을 검색하시오.

Select 이름, 직책 From 회사 Where 부서 = "영업부";

부서별 ‘급여’ 합계가 10,000,000 이상인 회사 테이블에서 ‘부서’를 검색하시오.

Select 부서 From 회사 Group By 부서 Having Sum([급여]) >=10000000;

회사 테이블에서 ‘부서’가 ‘미래’로 시작하는 모든 데이터를 검색하시오.

Select * From 회사 Where 부서 Like '[미래]%';

회사 테이블에서 ‘부서’가 ‘A’, ‘B’, ‘C’로 시작하는 모든 데이터를 검색하시오.

Select * From 회사 Where 부서 Like '[A-C]%';

회사 테이블에서 부서가 ‘A’, ‘P’, ‘S’로 시작하지 않는 모든 데이터를 검색하시오.

Select * From 회사 Where 부서 Like '[!APS]%';

회사 테이블에서 부서가 ‘인사부’인 자료를 삭제하시오.

Delete * From 회사 Where 부서 = "인사부";

회사 테이블에서 ‘호봉’ 필드에 1, ‘급여’ 필드에 1,000,000 을 넣으시오

Insert Into 회사(호봉, 급여) Values ("1", 10000000);

급여 테이블에서 ‘기본급’을 20% 인상된 금액으로 갱신하시오

Update 급여 Set 기본급 = 기본급*1.2;

예) 20% 인하된 금액으로 기본급=기본급*0.8

학과 테이블에서 ‘학과코드’가 ‘AC’로 시작하는 두 글자 이상의 ‘학과코드’를 검색하시오.

Select 학과코드 From 학과 Where 학과코드 Like "Ac*";

삽입(INSERT) 구문은 여러 개의 레코드를 한 개의 테이블에 추가할 수 있지만 여러 테이블에는 추가할 수 없다.

04 폼

  • **폼 ** → 입력, 수정, 삭제, 검색 작업을 편리하게 할 수 있는 화면을 말한다.
    • 레코드 원본: 테이블 또는 쿼리를 원본으로 지정할 수 있다.(입력, 수정, 삭제를 하면 원본이 변경된다.)
    • 필터: 특정 조건(기준)에 따른 필터를 설정할 수 있다. ★ 필터 기능은 [폼 보기] 또는 [데이터시트 보기]에서 사용할 수 있다.
    • 폼에 원하는 데이터만 표시 할 수 있다보안성이 높아진다.
    • 종류 (열, 테이블, 데이터시트, 맞춤)
      • 바운드 폼: 테이블에 있는 데이터가 연결된 폼, - 언바운드 폼: 아직 연결되지 않은 폼
    • 자동 폼: 폼, 폼 분할(2개로 나누어짐), 여러 항목
      • : 열 형식의 폼이 작성되고, 관계가 설정된 테이블이 있을 경우 하단에 데이터시트 보기 형태로 표시된다. ★ 폼 분할: 상단에는 열 형식으로, 하단에는 데이터시트 형식으로 2개의 폼이 한 화면에 작성된다. 기본적으로 레이아웃 보기 형태로 표시되고 컨트롤의 크기 조정 및 이동, 필드 추가가 가능.
      • ‘데이터시트 보기’와 ‘폼 보기’ 형식을 동시에 표시할 수 있지만 1:다 관계는 화면에 표시할 수는 없다.
      • 여러 항목: 테이블 형식의 폼이 작성된다.
    • 폼 머리글 / 폼 바닥글: 폼 보기에서는 상단/하단에 매번 표시된다. 미리보기에서는 첫 페이지에 상단 / 마지막 페이지 하단에 표시된다.
    • 페이지 머리글 / 바닥글: 매 페이지 상단/하단에 표시된다.
    • 폼 머리글 / 폼 바닥글: 폼 보기에서는 상단/하단에 매번 표시된다. 미리보기에서는 첫 페이지에 상단 / 마지막 페이지 하단에 표시된다.
    • 페이지 머리글 / 바닥글: 매 페이지 상단/하단에 표시된다.
  • 폼 속성
    • 캡션: 제목 표시줄 입력되는 글자, 속성에 &T 글자를 포함하면: Alt+T를 눌렀을 때 단추 클릭과 동일한 효과
    • 기본 보기: 단일 폼(폼의 분문 영역이 한 개), 연속 폼(폼의 분문 영역이 여러 개)
    • 테투리 스타일: 가늘게(폼의 크기를 조정하지 못 하게)
    • 레코드 잠금: 2명 이상의 사용자가 동시에 같은 레코드를 편집 하려고 할 때 잠금 방법 지정 ★ 모달: (현재 폼을 끄기 전까지는 다른 폼을 선택할 수 없다.)
  • 컨트롤 종류
    • 바운드 컨트롤: 테이블 쿼리의 필드가 연결된 컨트롤
      • 텍스트 상자(계산식), 옵션 그룹, 옵션 단추(여러 개 중 한 개만 선택, 무조건 1개는 선택), 확인란(여러 개를 선택할 수 있고 모두 선택하지 않을 수 있고), 콤보 상자, 목록 상자
      • 계산 컨트롤에 값을 입력해도 연결된 원본에는 변함이 없다.(계산 컨트롤은 식만 작성해야 됨, 입력하면 안 됨)
    • 언바운드 컨트롤: 연결되지 않은 컨트롤
      • 레이블, 명령 단추
    • 계산 컨트롤: 식을 사용하는 컨트롤, = 기호를 입력하고 식을 작성함. ★ 텍스트 상자는 가능, 레이블은 불가능
    • 하위 폼 보고서: 폼 안에 또 다른 폼이나 보고서, 일 대 다 관계에 있는 데이터를 효과적으로 표시한다.
  • 하위 폼
    • 하위 폼은 연속 폼으로 표시할 수 있지만 기본 폼은 연속 폼으로 표시할 수 없다.(기본 폼은 단일 폼) 하위 폼은 별도의 폼으로 존재하기 때문에 단독으로 열 수 있다.
    • 일 대 다 관계에 있는 테이블이나 쿼리를 표시 ‘일’은 기본 폼, ‘다’는 하위 폼관계가 설정되어 있어야 하지만 관계가 설정되어 있지 않아도 하위 폼을 설정할 수 있다.
      • 기본 폼의 기본키 필드와 같거나 호환되는 데이터 형식을 가진 필드가 포함된 테이블을 사용할 경우 하위 폼을 생성할 수 있다.
  • 컨트롤 조정
    • 선택: 한 개 선택(클릭), 연속으로 선택(드래그), 비연속으로 선택(Shift 누른채 클릭), 모두 선택(Ctrl+A)
    • 컨트롤 위치를 세밀하게 이동하려면 Ctrl을 이용하고 컨트롤 크기를 세밀하게 조정하려면 Shift를 이용한다.
    • 크기 조정: 여러 개 선택 후 가장 긴 길이에, 가장 넓은 너비에, 왼쪽, 위쪽
    • 그룹화: [크기 및 순서 조정]→[크기/공간]→[그룹]/[그룹 해제]
    • 특수 효과: 볼록, 오목, 새김(사방) ★ 중복 내용 숨기기: 보고서에서 사용, 동일한 데이터가 나올 경우 표시 여부를 지정하는 기능
    • 확장/축소 가능: 모두 볼 수 있게 세로 길이의 확장/축소 여부를 지정한다.
  • 데이터 컨트롤 속성
    • 컨트롤 원본: 문자는 큰 따옴표(” ”), 필드명은 대괄호([ ])
    • 기본값: 기본으로 입력되는 값, 잠금: 편집 여부를 지정 ★ 사용 가능: 포커스(커서)가 이동될 지 여부를 지정
    • 행 원본 유형: 콤보 상자, 목록 상자에서 사용할 데이터 지정 (테이블/쿼리, 필드 목록, 값 목록)
    • 행 원본: 데이터를 지정, 바운드 열: 저장되는 열 번호를 지정한다.
    • 목록 값만 허용: 목록 값 이외의 값을 사용할지 여부를 지정한다.
  • 기타 / 탭 순서
    • IME모드: [한/영] 키를 사용하지 않고도 데이터 입력 시의 한글이나 영문 입력 상태를 정할 수 있는 필드 속성
    • 컨트롤 팁 텍스트: 마우스를 이동했을 때 스크린 팁(도움말)을 말한다. ★ 탭 정지: 탭()키를 눌렀을 때 이동시킬 수 있는지 여부, 기본 값은 예
      • 폼 컨트롤에만 적용되고 보고서 컨트롤에는 적용되지 않음
    • 탭 순서: 탭()키를 누를때 순서를 설정, ★ 레이블 컨트롤/이미지 컨트롤: 탭 순서에서 제외된다!!!
      • 기본적인 탭 순서는 개체들의 만들어진 순서대로 정해지고 ‘아니오’를 선택 시 탭 순서에서 제외된다.
  • 폼의 탐색 단추

💡 [탐색 단추 이미지] 레코드: |◀ ◀ 3/4 ▶ ▶| ▶※

① ⊖ 첫 레코드로 이동한다. ② ⊖ 이전 레코드로 이동한다. ③ ⊖ 마지막 레코드로 이동한다. ④ ⊖ 빈 레코드로 이동한다.

  • 조건부 서식
    • [디자인 보기]→[폼/보고서 디자인 도구]→[형식]→[컨트롤 서식]→[조건부 서식]
    • 폼이나 보고서에 조건에 맞는 특정 컨트롤에 서식을 적용, 조건에 만족하지 않으면 적용된 서식은 해제된다.
    • 종류: 필드값 이, 식 이, 필드에 포커스가 있음
    • 조건은 50개까지 지정 가능하다.
    • 여러 개가 조건에 만족하면 첫 번째 조건으로 지정된다.
  • 도메인 계산 함수 도메인 함수( “필드명”, “테이블명”, “조건”)
    • 조건에 맞는 계산 결과를 구해준다.
    • 각 인수는 큰 따옴표 ” ” 로 묶어준다.
    • 문자를 연결할 시 & 기호를 사용한다.
    • DSUM: 조건 합계, DAVG: 조건 평균, DMAX: 조건에 맞는 최대값, DLOOKUP: 조건에 맞는 데이터 표시
  • 폼 예시

💡 [폼 디자인 화면 이미지] 제품정보 창 표시:

  • ① 번 영역: 폼 머리글 (2020년 제품 정보)
  • ② 번 영역: 자품번호, 제품명, 물품제조회사, 단가, 재고수량 필드
  • ③ 번 영역: 본문 (제품번호, 제품명, 물품제조회사, 단가, 재고수량)
  • ④ 번 영역: 폼 바닥글

번에서 마우스 우측 클릭폼 보기, 레이아웃 보기, 디자인 보기번을 더블 클릭폼의 [속성 시트] 창이 나타나고 마우스 우측 클릭이벤트 작성, 탭 순서번 눈금자를 클릭본문의 모든 컨트롤이 선택번을 더블 클릭폼의 [속성 시트] 창이 나타난다.

  • 계산식 예시 ‘학교’ 테이블에서 ‘학번’의 개수를 구하시오 ‘수능점수’ 필드가 90 이상인 경우 (숫자 데이터인 경우)
=Dcount("[학번]", "학교", "[수능점수]>=90")

‘학교’ 테이블에서 ‘학번’의 개수를 구하시오, ‘학과’ 필드가 ‘Txt학과’ 랑 일치할 경우 (문자 데이터인 경우)

=Dcount("[학번]", "학교", "[학과]= ' " & [Txt학과] & " '")

현재 폼에서 ‘Txt합계’ 컨트롤이 표시되지 않도록 하는 이벤트 프로시저

Me.[Txt합계].Visible = False 또는 Me![Txt합계].Visible = False

계산 컨트롤을 작성할 때는 해당 컨트롤의 컨트롤 원본 속성에 = 을 입력한 후 식을 작성한다. 오늘 날짜가 9월 5일 이면

컨트롤 원본결과
=Format(Now(),“m-d”)9-5
=Format(Now(),“mm-dd”)09-05
=Format(Now(),“mmm-d”)Sep-5

학생 폼에 있는 총점 필드→ [Forms]![학생]![총점] ★ [폼]에서 특정 개체의 내용을 수정할 수 없도록 하기 위해서는 [잠금] 속성을 ‘예’로 설정한다. ★ [폼 속성]→ [자동 크기 조정]: 레코드를 모두 표시할 수 있도록 폼 의 크기를 자동으로 조절 유무를 정한다. 연속 폼은 각각의 폼 창에 폼 머리글과 폼 바닥글이 표시된다. ★ [폼 실행]→ [모달] 대화 상자: 사용자가 직접 어떤 동작을 수행해야 다음 작업이 가능한 대화상자로 모달 대화상자가 실행된 상태에서는 다른 폼이나 개체를 선택할 수 없다. [확인]/[취소] 버튼이 자동으로 생성된다. ★ [폼] 또는 [보고서]를 다른 파일 형식으로 출력하거나 내보내면 기존에 설정된 조건부 서식은 해제된다. ★ 하위 폼, 하위 보고서는 테이블, 쿼리, 폼, 다른 보고서를 이용하여 작성할 수 있다.

05 보고서

  • 보고서

    • 결과가 나온 자료를 바탕으로 종이에 출력하기 위한 양식을 말한다.
    • 디자인 보기 상태에서 만들거나 수정이 가능하다.
    • 인쇄 미리 보기에서 전체 모양을 확인할 수 있다.
    • 레이아웃 보기: 실제 출력되는 데이터 내용을 보면서 보고서를 수정할 수 있다.
    • 보고서 머리글(로고, 보고서 제목, 날짜): 첫 페이지에 상단에 표시한다. 보고서 바닥글(보고서 총계, 안내 문구): 맨 마지막 페이지 하단에 표시한다.
    • 그룹 머리글 / 그룹 바닥글: 그룹의 요약 정보를 상단 / 하단에 반복적으로 표시 집계 정보를 표시할 수 있다.‘Σ 요약’ 기능은 보고서에서 사용할 수가 없다.(테이블, 폼, 쿼리에서는 가능) ★ [요약 옵션]은 숫자 필드만 표시할 수 있다. 문자 필드는 안 된다.
    • 페이지 머리글(열 제목) / 바닥글(날짜, 페이지 번호): 매 페이지 상단/ 매 페이지 하단에 표시한다. ★ 집계 정보(합계, 평균)를 표시할 수 없다!!
    • 본문: 실제 데이터가 표시되는 부분
    • 보기: 인쇄 미리 보기/ 보고서 보기(화면 출력용)/ 레이아웃 보기(보면서 크기 및 위치 수정)/ 디자인 보기(수정할 때) ★ 보고서에서 입력, 수정, 삭제 작업은 할 수 없다. (폼 에서 가능) ★ 폼 처럼 보고서 에서도 이벤트 프로시저(On Click, On Dbl Click) 를 사용할 수 있다.
  • [인쇄 미리 보기]→[페이지 설정] | 페이지 | 용지 방향, 용지 크기, 프린터 유형을 선택 | |---|---| | | 눈금 설정과 열 크기에서 설정한 것보다 페이지의 너비가 좁은 경우 설정된 크기 까지만 보인다. | | | [본문과 같게] → 열의 너비와 높이를 본문의 너비와 높이에 맞춰 인쇄한다. | | 인쇄 옵션 | 레이블, 컨트롤, 테두리, 눈금선, 선, 상자 같은 그래픽을 제외하고 인쇄되도록 설정할 수 있다. |

    인쇄 옵션: 여백, 보기, 데이터만 인쇄(그래픽 출력여부), 분할표시 폼(데이터시트만 인쇄/폼만 인쇄 중 선택) ★ 페이지 설정은 보고서마다 다르게 설정할 수 있다.

  • 보고서 속성

    • 테이블, 쿼리, SQL문을 레코드 원본으로 사용한다.
    • 필터: 추출 조건 입력한다., 정렬 기준: 정렬 기준을 설정한다.
    • 반복 실행 구역: 그룹 머리글 속성, 해당 머리글을 매 페이지에 표시할지 여부를 설정한다. (예: 매 페이지에 반복: 반복 실행 구역→ 예)
    • 기본 보기: 보고서 보기 / 인쇄 미리 보기중 하나를 선택한다. ★ [보고서 보기]는 페이지 구분 없이 보고서를 모두 표시해 준다.
  • 정렬 및 그룹화: 특정 필드를 기준으로 데이터를 구분해서 표시할 수 있는 기능이다.

    • [디자인]→[그룹화 및 요약]→[그룹화 및 정렬]
    • 기본값은 오름차순이며 필드나 식으로 그룹화 할 수 있다.(그룹은 10개까지 그룹화할 수 있다.) ★ 그룹은 머리글 또는 바닥글 중 한 개는 반드시 선택해야 한다.
    • 그룹이 삭제되면 그 안에 있는 모든 컨트롤이 모두 삭제된다.
    • 날짜 그룹 종류: 연도별, 분기별, 월별, 주별, 일별 문자열 그룹화: 첫 문자, 처음 두 문자, 사용자 지정 문자
  • 보고서 종류

    • 차트 보고서: 쿼리를 원본으로 차트를 작성할 수 있다. 레이블 보고서: 우편 발송용 레이블을 만드는 기능이다.(최대 필드 수는 10개) ★ 우편 레이블 보고서 작성시 [사용자 지정]단추를 이용하여 직접 레이블을 만들 수 있다.
    • 업무 문서 양식 보고서: 거래 명세서, 세금 계산서 등 양식에 맞게 출력하는 보고서를 말한다.
    • 크로스탭 보고서: 크로스탭 쿼리를 레코드 원본으로 하는 보고서를 말한다.
    • 하위 보고서: 보고서 안에 또 하나의 보고서**(일 대 다)**, 일: 주 보고서, 다: 하위 보고서
    • 하위 보고서의 개수는 제한이 없다. 7단계까지 중첩할 수 있다.주 보고서와 하위 보고서는 모두 그룹화 및 정렬 기능을 사용할 수 있다.
  • 요약 정보 그룹 바닥글 영역에 표시

    • 현재 페이지: [Page], 전체 페이지: [Pages], 연결자: &
    • Format(인수, 형식): 인수를 형식에 맞게 출력한다. ★ 예: 전체 5쪽중 1쪽“전체 ” &[Pages]& “쪽중 ” &[Page]& “쪽”
    • ‘금액’ 필드의 합계: =SUM([금액]), ★ ‘금액’ 필드의 누적 합계: =SUM([금액]), 데이터→ 누적 합계→ 그룹
    • 누적 합계 → 모두: 그룹에 관계 없이 끝까지 누적된다. ★ 일련번호 설정: 컨트롤 원본: =1, 누적 합계 → 그룹
    • Count(*) NULL을 포함한 그룹별 개수를 표시하고 Count(필드명): 해당 필드에 NULL이 포함된 경우 NULL을 제외한 개수가 계산된다.

06 데이터베이스 프로그래밍

  • 매크로

    • 반복적인 작업을 할 경우, 일련의 명령으로 저장하여 필요한 작업을 수행 시 간단하게 처리하는 기능이다.
    • 테이블, 쿼리, 폼, 보고서 등 각 개체들을 자동으로 처리할 수 있게 사용할 수 있다. ★ 바로가기 키를 이용할 수 있다.
    • 매크로 함수는 컨트롤의 이벤트 속성에 연결한다.(On Click)
    • 여러 개를 묶어놓은 그룹 매크로에서는 가장 처음에 지정된 매크로부터 순서대로 실행한다. ★ 각각의 매크로를 마침표(.)로 구분한다.
    • 하나의 매크로에 여러 개 매크로 함수를 사용할 수 있다. 조건에 맞을 때 실행하게 할 수 있다.
    • 이름 앞에 AutoExec를 입력하면 데이터베이스 파일이 열릴 때 자동으로 실행이 된다. ★ 자동 실행 매크로가 실행되지 않게 하려면 Shift 키를 누른 채 데이터베이스 파일을 연다.
  • 매크로 종류 | 일반 매크로 | 하나의 매크로 함수로 구성된 매크로 | 조건 매크로 | 조건식을 사용한 매크로 | |---|---|---|---| | 하위 매크로 | 여러 개의 매크로 함수로 구성된 매크로 | ★ 한 단계식 매크로 실행: Ctrl+Break | |

  • 매크로 함수 | ApplyFilter | 레코드를 필터링함(조건에 맞을 때) | OpenForm | 폼을 열기(디자인 보기, 데이터시트 보기) | |---|---|---|---| | CancelEvent | 이벤트를 취소(인수가 없다.) | OpenQuery | 질의를 실행한다. | | CopyObject | 데이터베이스 개체를 복사한다. | OpenReport | 작성된 보고서를 열기 | | EMailDatabaseObject | 전자우편 메시지에 첨부 | MessageBox | 메시지 상자를 표시한다. | | ExportWithFormatting | 개체를 내보내기(저장), rtf, txt, xls, xlsx, html, pdf, xps, rtf, pdf, snp | | | | FindNextRecord | 조건에 맞는 레코드의 바로 다음 조건에 만족하는 레코드를 검색한다. | | | | FindRecord | 조건에 맞는 첫 번째 레코드 검색한다. | RunMacro | 매크로를 실행한다. | | GoToControl | 커서를 특정한 컨트롤로 이동한다. | RunSQL | SQL문을 실행한다. | | GoToPage | 커서를 페이지의 첫 번째 컨트롤로 이동 | RunApplication | 응용 프로그램을 실행한다. | | GoToRecord | 레코드 포인터를 이동한다. | QuitAccess | 액세스를 종료한다. |

GoToControl커서를 특정한 컨트롤로 이동한다.RunSQLSQL문을 실행한다.
GoToPage커서를 페이지의 첫 번째 컨트롤로 이동RunApplication응용 프로그램을 실행한다.
GoToRecord레코드 포인터를 이동한다.QuitAccess액세스를 종료한다.
CloseWindow폼, 테이블, 쿼리 등 활성화되어 있는 데이터베이스 개체를 닫는다.
ImportExportData다른 데이터베이스 파일과의 내보내기, 가져오기, 연결 작업을 한다.
ImportExportSpreadsheet스프레드시트 파일과의 내보내기, 가져오기, 연결 작업을 한다.
ImportExportText텍스트 파일과의 내보내기, 가져오기, 연결 Requery컨트롤 원본을 업데이트(갱신)
RunMenuCommand액세스 내부 명령어를 실행 (SortAscending: 오름차순, SortDescending: 내림차순)

Requery: 원본 데이터를 다시 읽어서 업데이트(갱신) 한다. ★ Refresh: 데이터 원본으로 사용하는 레코드를 즉시 업데이트 한다.

  • 데이터 이벤트 | AfterInsert | 새 레코드가 추가된 후에 | BeforeInsert | 레코드가 입력되기 전에 | |---|---|---|---| | AfterUpdate | 개체(컨트롤/레코드)가 업데이트된 후에 | BeforeUpdate | 개체(컨트롤/레코드)가 업데이트되기 전에 | | Change On Change | 콤보 상자 텍스트가 바뀔 때 | DblClick On Dbl Click | 마우스 왼쪽단추로 더블 클릭할 때 | | Click On Click | 마우스 왼쪽 단추로 클릭할 때 | Delete On Delete | 레코드를 삭제할 때 | | Current On Current | 포커스가 있는 현재 레코드 일 때 | MouseDown On Mouse Down | 마우스 왼쪽 단추를 누를 때 발생 |

  • 창 이벤트 | Close / On Close | 폼이나 보고서를 종료할 때 | |---|---| | Load / On Load | 폼을 열어 레코드들이 표시 될 때, Current 이벤트 전에 발생, Open 이벤트 후에 발생 | | Open / On Open | 폼을 열어 레코드가 처음 표시 될 때, 보고서를 열어 인쇄하기 전에 | | Resize / On Resize | 폼의 크기가 바뀔 때, 폼이 처음으로 표시될 때 | | Unload / On Unload | 폼이 닫힐 때, 폼이 사라지기 전에 |

  • 포커스 이벤트 | Activate / On Activate | 활성화 될 때 | GotFocus / On Got Focus | 포커스를 받을 때 | |---|---|---|---| | Deactivate / On Deactivate | 비활성화 될 때 | LostFocus / On Lost Focus | 포커스를 잃을 때 | | Enter / On Enter | 포커스가 실제로 옮겨질 때 | Exit / On Exit | 다른 컨트롤로 포커스가 이동되기 전에 | | | | | |

  • Docmd 개체: 매크로 함수를 실행하기 위한 개체 | OpenReport | 보고서를 열기 | OpenQuery | 쿼리를 열기 | |---|---|---|---| | OpenForm | 폼을 열기 | RunSQL | SQL문을 실행하기 | | RunMacro | 매크로를 실행하기 | Close | 개체를 닫기 | | Quit | 종료 | OutputTo | 내보내기 | | RunCommand | 액세스 내부에서 제공하는 명령을 실행 | | | | Requery | 수정 후 갱신하기 | | |

  • Recordset 개체: 기본 테이블, 실행된 명령 결과로부터 얻은 자료를 임시로 저장해 두는 레코드 집합

    • 언제나 현재 레코드의 설정 내에서 단일 레코드만 참조한다.
    • 공급자의 데이터를 조작할 수 있다.
    • ADO를 사용할 때 Recordset 개체를 사용하여 거의 대부분의 데이터를 조작한다.
    • 레코드(행)와 필드(열)를 사용한다.
    • 데이터베이스 공급자가 지원하는 기능에 따라 Recordset의 일부 메서드나 속성을 사용할 수 있다.
  • Recordset 개체: 기본 테이블, 실행된 명령 결과로부터 얻은 자료를 임시로 저장해 두는 레코드 집합

    • 언제나 현재 레코드의 설정 내에서 단일 레코드만 참조한다.
    • 공급자의 데이터를 조작할 수 있다.
    • ADO를 사용할 때 Recordset 개체를 사용하여 거의 대부분의 데이터를 조작한다.
    • 레코드(행)와 필드(열)를 사용한다.
    • 데이터베이스 공급자가 지원하는 기능에 따라 Recordset의 일부 메서드나 속성을 사용할 수 없다.
  • Recordset의 속성 | ActiveConnection | 현재 실행되는 Connection개체 | |---|---| | CursorType | 커서의 유형 | | LockType | 잠금 유형 | | RecordCount | 레코드 수 | | BOF / EOF | 현재 레코드 위치가 Recordset 개체의 첫째/마지막 레코드 앞/뒤에 온다는 것을 나타냄 |

  • Recordset의 주요 메서드 | Open | 연결된 레코드셋을 열기 | Delete | 레코드나 레코드 그룹을 삭제한다. | |---|---|---|---| | Close | 관련된 개체를 모두 닫기 | Find | 레코드를 차례대로 검색한다. | | Update | 개체의 변경 사항을 업데이트 | Seek | 검색해서 위치를 해당 레코드로 변경 | | AddNew | 새 레코드 만들기 | | |

    모듈(Module): 매크로의 한계를 해결, 프로그램을 직접 만들 수 있는 개체, VBA 코드로 작성된다.