데이터베이스
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 퀴즈
문제
- 데이터베이스는 여러 응용 시스템들이 공유하고 소유하고 유지하며 보수하는 공용 데이터를 말한다.
- 데이터가 중복되면 제어가 분산되어 데이터 무결성을 유지하기 쉬워진다.
- Access 파일에 암호를 설정하려면 [단독으로 열기] 후 [파일]→ [정보]→ [데이터베이스 암호 설정]을 선택한다.
- DBMS의 3가지 기능은 정의, 조작, 제어이다.
- 데이터 정의어(DDL)에는 SELECT, UPDATE, INSERT, DELETE가 포함된다.
- 데이터 조작어(DML)에는 CREATE, ALTER, DROP이 포함된다.
- 데이터 제어어(DCL)에는 COMMIT, ROLLBACK, GRANT, REVOKE가 포함된다.
- 관계형 데이터베이스는 복잡한 구조를 단순화 시킨 모델이다.
- 테이블에서 행을 구성하는 개체를 속성(Attribute)이라고 한다.
- 애트리뷰트는 널(Null) 값을 가질 수 있다.
- 차수(Degree)는 튜플의 개수를 의미한다.
- 기수(Cardinality)는 튜플의 개수를 의미한다.
- 기본키는 NULL값을 가질 수 있다.
- 기본키는 여러 개 필드에 적용할 수 있다.
- 외래키 값은 기본키 값과 동일해야 된다.
- 정규화는 테이블 조작 시 이상 현상이 발생하지 않도록 중복, 종속성을 배제하는 원칙이다.
- 정규화는 논리적 단계에서 수행되며 속성수가 적은 릴레이션으로 분할한다.
- 정규화는 상위에서 하위로 진행된다.
- 개체 관계 모델(ER)은 피터첸이 제시했다.
- ER 다이어그램에서 사각형은 관계를, 마름모는 개체를 나타낸다.
- 개념스키마는 데이터베이스 전체의 논리적인 구조를 보여준다.
- 외부스키마는 서브스키마라고도 하며 사용자가 사용하는 관점에서 본 논리적 구조이다.
- 내부스키마는 물리적 저장장치(기계) 관점에서 본 구조이다.
- 인스턴스는 스키마에 대한 실제 데이터를 의미한다.
- 테이블을 작성할 때 데이터를 입력하면서 테이블을 작성할 수 있는 방법은 데이터시트 보기이다.
- 필드 이름은 64자까지 입력 가능하다.
- 테이블명과 필드명은 같을 수 없다.
- 데이터시트 보기에서는 필드와 레코드를 삭제할 수 있다.
- 필드를 삭제 시 필드에 있는 자료는 모두 지워지고 되돌리기(실행취소)가 가능하다.
- 데이터 형식에 따라 필드의 속성을 각각 다르게 설정할 수 있다.
- 일련번호는 업데이트/수정이 가능하다.
- 삭제된 일련번호는 다시 부여되지 않는다.
- YES/NO 데이터 형식은 1bit 크기이다.
- OLE 개체의 크기는 1Gbyte이다.
- 통화 데이터 형식은 8Byte이며 소수 4자리까지 표현한다.
- 날짜/시간 데이터 형식은 8Byte이다.
- 입력 마스크에서 ‘0’은 숫자 필수이며 + - 기호를 사용할 수 있다.
- 입력 마스크에서 ‘9’는 숫자 선택이며 + - 기호를 사용할 수 없다.
- 입력 마스크에서 ‘L’은 문자 필수를 의미한다.
- 입력 마스크에서 ’<‘는 모두 대문자로 변환한다.
- 유효성 검사 규칙은 일련번호, OLE 개체에서도 사용할 수 있다.
- LIKE 연산자에서 A를 포함하는 조건은 LIKE “A”이다.
- Between 10 And 20은 10에서 20 사이의 값을 의미한다.
- 컨트롤 표시에는 텍스트 상자, 콤보 상자, 목록 상자가 포함된다.
- 값 목록으로 설정하면 직접 입력한 값을 원본으로 사용할 수 있다.
- 목록 값만 허용은 텍스트 상자에서만 설정할 수 있다.
- 기본키는 고유해야 되며 유일해야 되고 중복된 값과 널(NULL) 값이 될 수 없다.
- OLE, 메모, 첨부파일은 기본키가 될 수 있다.
- 인덱스는 최대 32개까지 생성 가능하다.
- 기본키는 자동으로 인덱스가 되며 저장할 때 만들어진다.
- 데이터 양이 많을수록 인덱스의 효과를 볼 수 있지만 데이터 추가나 변경 시 갱신 속도는 느려진다.
- 관계를 설정하려면 테이블이 열려 있어야 한다.
- 테이블이 열려 있으면 관계를 설정할 수 없다.
- 기본키 필드와 외래키 필드의 형식은 달라도 된다.
- 참조 무결성의 ‘참조 필드 모두 업데이트’는 기본 테이블의 기본키가 변경되면 관련 테이블의 외래키도 자동으로 변경되는 기능이다.
- 참조 무결성의 ‘관련 레코드 모두 삭제’는 기본 테이블의 레코드가 삭제되면 관련 테이블의 레코드도 자동으로 삭제되는 기능이다.
- 관계의 종류(1:1, 1:다, 다:다)는 사용자가 직접 선택한다.
- 연결된 테이블을 삭제하면 원본 데이터도 삭제된다.
- 관계가 설정된 테이블의 기본키 설정을 해제하려면 먼저 설정된 관계를 제거해야 한다.
- 참조 무결성 설정 조건은 기본키, 고유 인덱스 설정, 동일한 형식, 액세스 테이블이다.
- 기본 테이블의 기본키 필드에 존재하지 않는 데이터는 관계가 설정된 테이블의 외래키 필드 값으로 입력할 수 있다.
- 기본 테이블과 관계가 설정된 테이블에 일치하는 레코드가 존재할 때는 기본 테이블에서 레코드를 삭제할 수 있다.
- 다른 테이블을 참조하는 테이블의 레코드를 삭제하는 것은 참조 무결성에 위배되지 않는다.
- 레코드 추가는 항상 마지막에 추가된다.
- 삭제된 레코드는 복구할 수 있다.
- 가져오기를 하면 원본이 변경된다.
- 연결된 테이블을 변경하면 원본도 자동으로 변경된다.
- 연결된 테이블을 삭제하면 원본 데이터도 삭제된다.
- 데이터, 구조, 서식 등은 내보낼 수 있지만 제약조건, 관계, 인덱스 같은 속성은 내보낼 수 없다.
- 액셀 파일을 가져오는 경우 한 번에 여러 개 워크시트를 가져올 수 있다.
정답 및 해설
- O - 데이터베이스의 정의이다.
- X - 데이터가 중복되면 제어가 분산되어 데이터 무결성을 유지하기 어려워진다.
- O - Access 파일 암호 설정 방법이다.
- O - DBMS의 3가지 기능은 정의, 조작, 제어이다.
- X - SELECT, UPDATE, INSERT, DELETE는 **데이터 조작어(DML)**이다.
- X - CREATE, ALTER, DROP은 **데이터 정의어(DDL)**이다.
- O - DCL의 명령어들이다.
- O - 관계형 데이터베이스의 특징이다.
- X - 행을 구성하는 개체는 **튜플(레코드)**이며, 속성은 열을 의미한다.
- O - 애트리뷰트는 널(Null) 값을 가질 수 있다.
- X - 차수(Degree)는 애트리뷰트(속성)의 개수를 의미한다.
- O - 기수(Cardinality)는 튜플의 개수를 의미한다.
- X - 기본키는 NULL값을 가질 수 없다.
- O - 기본키는 여러 개 필드에 적용할 수 있다.
- O - 참조 무결성의 규칙이다.
- O - 정규화의 정의이다.
- O - 정규화는 논리적 단계에서 수행된다.
- X - 정규화는 하위에서 상위로 진행된다.
- O - 피터첸이 제시했다.
- X - 사각형은 개체를, 마름모는 관계를 나타낸다.
- O - 개념스키마의 정의이다.
- O - 외부스키마(서브스키마)의 정의이다.
- O - 내부스키마의 정의이다.
- O - 인스턴스는 스키마에 대한 실제 데이터를 의미한다.
- O - 데이터시트 보기에서 데이터를 입력하면서 테이블을 작성할 수 있다.
- O - 필드 이름은 64자까지 입력 가능하다.
- X - 테이블명과 필드명은 같을 수 있다.
- O - 데이터시트 보기에서 필드와 레코드를 삭제할 수 있다.
- X - 필드 삭제 시 되돌리기(실행취소)가 불가능하다.
- O - 데이터 형식에 따라 필드의 속성이 다르다.
- X - 일련번호는 업데이트/수정이 불가능하다.
- O - 삭제된 일련번호는 다시 부여되지 않는다.
- O - YES/NO는 1bit이다.
- O - OLE 개체는 1Gbyte이다.
- O - 통화는 8Byte, 소수 4자리까지이다.
- O - 날짜/시간은 8Byte이다.
- X - ‘0’은 숫자 필수이며 + - 기호를 사용할 수 없다.
- O - ‘9’는 숫자 선택이며 + - 기호를 사용할 수 없다.
- O - ‘L’은 문자 필수이다.
- X - ’<‘는 모두 소문자로 변환하고, ’>‘가 모두 대문자로 변환한다.
- X - 유효성 검사 규칙은 일련번호, OLE 개체에서 사용할 수 없다.
- O - LIKE “A”는 A를 포함하는 조건이다.
- O - Between 10 And 20의 의미이다.
- O - 컨트롤 표시의 종류이다.
- O - 값 목록의 특징이다.
- X - 목록 값만 허용은 콤보 상자에서만 설정할 수 있다.
- O - 기본키의 특징이다.
- X - OLE, 메모, 첨부파일은 기본키가 될 수 없다.
- O - 인덱스는 최대 32개까지 생성 가능하다.
- O - 기본키는 자동으로 인덱스가 된다.
- O - 인덱스의 특징이다.
- X - 관계를 설정하려면 테이블이 닫혀 있어야 한다.
- O - 테이블이 열려 있으면 관계를 설정할 수 없다.
- X - 기본키 필드와 외래키 필드의 형식은 같아야 한다.
- O - ‘참조 필드 모두 업데이트’의 기능이다.
- O - ‘관련 레코드 모두 삭제’의 기능이다.
- X - 관계의 종류는 기본키와 외래키 설정 상태에 따라 자동으로 설정된다.
- X - 연결된 테이블을 삭제해도 원본 데이터는 영향을 받지 않는다.
- O - 관계를 먼저 제거해야 기본키 설정을 해제할 수 있다.
- O - 참조 무결성 설정 조건이다.
- X - 참조 무결성 규칙에 의해 입력할 수 없다.
- X - 참조 무결성 규칙에 의해 삭제할 수 없다.
- O - 다른 테이블을 참조하는 테이블의 레코드 삭제는 참조 무결성에 위배되지 않는다.
- O - 레코드는 항상 마지막에 추가된다.
- X - 삭제된 레코드는 복구할 수 없다.
- X - 가져오기는 원본을 변경하지 않는다.
- O - 연결된 테이블을 변경하면 원본도 자동으로 변경된다.
- X - 연결된 테이블을 삭제해도 원본 데이터는 영향을 받지 않는다.
- O - 내보내기의 제한사항이다.
- 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 | 커서를 특정한 컨트롤로 이동한다. | RunSQL | SQL문을 실행한다. |
|---|---|---|---|
| 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 코드로 작성된다.