상세 컨텐츠

본문 제목

[개미의 걸음 3과목 데이터베이스 일반] DB구축① 테이블 생성

자격증/컴활 1급

by IT개미 데이터 2020. 9. 7. 23:23

본문

728x90

데이터베이스

특정 조직의 기능을 수행하는데 필요한 상호 관련된 데이터들의 모임

  • 하나의 응용 프로그램이나 응용 시스템을 위한 데이터가 아니라, 한 조직에 있는 여러 응용 시스템들이 공용으로 소유하고 유지하며 이용하는 공통 데이터

데이터 베이스의 특징

① 통합된 데이터[Integrated Data]

  동일한 내용의 데이터가 중복되어 있지 않다는 것을 의미

  데이터 중복은 관리상의 부작용을 초래

② 저장된 데이터[Stored Data]

  자기 디스크나 자기 테이프 등과 같이 컴퓨터가 접근할 수 있는 저장매체에 저장되는 것을 의미

  일반적으로는 컴퓨터에 저장된 데이터는 저장 주소를 알아야 검색이 가능

  하지만 데이터베이스는 저장된 주소나 위치가 아닌 데이터의 내용, 즉, 값으로 참조 가능

  [대이터 내용에 관한 조건만 맞는다면 서로 다른 위치에 저장되어 있어도 모두 검색 가능]

 데이터 베이스는 기본적으로 컴퓨터 기술을 바탕으로 한다.

③ 공용 데이터[Shared Data]

  여러 사용자가 서로 다른 목적으로 데이터를 공동으로 이용한다는 의미

  데이터베이스가 동시 공유의 개념을 지원하도록 조직하고 관리하는 것은 어려움

  특히, 같은 데이터를 동싱에 사용하기 위해서는 더욱 까다로운 처리가 필요

  대용량화되고 구조가 복잡한 것이 보통

④ 변화되는 데이터[Changable Data]

  데이터베이스에 저장된 내용은 데이터베이스의 현시점에서의 상태를 나타냄

  데이터베이스는 조직을 운영하고 조직의 주요기능을 수행하기 위해 꼭 필요한 운영 데이터

  다만, 이 상태는 새로운 데이터의 삽입, 기존 데이터의 삭제*갱신을 통해 항상 변화하면서도 현재의 정확한 데이터를 지속적으로 유지해야한다.  (→ 고정된 데이터 X)

 

⑤ 실시간 접근[Real-time accessibility]

  데이터베이스는 사용자에게 실시간으로 데이터를 제공할 수 있어야 함

  사용자의 개인 특성이나 제공되는 서비스 유형에 따라 허용되는 응답시간이 다르지만 대개 몇 초 이내에 제공

 

 

데이터베이스 장점과 단점

장    점 단    점
데이터의 중복성 최소화
데이터의 공유
데이터의 일관성/무결성/보안성 유지
데이터의 논리적*물리적 독립성
애플리케이션 개발 및 유지보수 용이
데이터베이스 전문가의 부족
전산화 비용 증가
데이터 유실 시 파일 회복이 어려움
시스템의 복잡화
처리속도가 느림

 

데이터베이스 언어

데이터 정의어
[DDL]
데이터베이스를 생성하거나 수정하는데 사용되는 언어
데이터베이스 관리자나 데이터베이스 설계자가 사용함
데이터베이스의 논리적 구조와 물리적 구조를 정의할 수 있음
    ex> CREATE, ALTER, DROP
데이터 조작어
[DML]
사용자가 응용 프로그램을 통해 DB에 저정된 데이터를 실질적으로 처리하는데 사용되는 언어
데이터 처리는 데이터의 검색, 삽입, 삭제, 변경 등을 말함
사용자와 데이터베이스 관리 시스템간의 인터페이스를 제공함
절차적 조작언어와 비절차적 조작언어로 분류됨
    ex> SELECT, UPDATE, INSERT, DELETE
데이터 제어어
[DCL]
데이터 보안, 무결성, 데이터 회복, 병행수행 제어 등을 정의하는데 사용되는 언어
데이터베이스 관리자가 데이터 관리를 목적으로 사용함
    ex> COMMIT, ROLLBACK, GRANT, REVOKE

 

관계형 데이터 베이스

데이터를 단순하고 이해하기 쉬운 2차원 표 형식으로 관리하는 데이터베이스[2세대 DBMS]

     → 계층 구조가 아닌 단순한 표[Table]을 이용해 데이터의 상호관게를 정의하는 DB구조

     → 데이터를 Column과 row를 이루는 하나 이상의 테이블로 정리해 Primary key가 각 row를 식별

     → row는 레코드나 튜플로 부르며, 일반적으로 각테이블[관계]는 하나의 엔티티 타입을 대표

         Column은 엔티티 종류의 인스턴스의 속성이 되는 값을 대표

     → 현재 가장 주류를 이루고 있는 데이터 베이스

     → 1:1, 1:N, M:N관계를 자유롭게 표현 가능

Oracle, MS SQL Server, Access, Informix, MySQL 등이 대표적인 관계형 데이터베이스

관계형 데이터베이스 구조 설    명
테이블 데이터들을 행과 열로 표현한 것으로 튜플(레코드)의 집합(릴레이션)
튜플[Tuple] 테이블의 행을 구성하는 개체(레코드)로, 여러 속성들의 묶음
속성[Attribute] 테이블의 열을 구성하는 항목(필드)으로, 개체의 특성이나 상태를 기술함
데이터의 가장 작은 논리적 단위
도메인[Domain] 하나의 속성에서 취할 수 있는 값의 범위
릴레이션 인스턴스
[Relation Instance]
데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 갖고 있는 것
차수[Degree] 속성의 개수
기수[Cardinality] 튜플의 개수

 

키의 종류와 제약 조건

키의 종류 설    명
후보키 테이블을 구성하는 속성들 중에서 레코드(튜플)을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
기본키로 사용할 수 있는 속성
기본키 후보키 중에서 선택한 주키
Null값을 가질 수 없음
한 릴레이션에서 특정 레코드를 유일하게 구별할 수 있는 속성
기본키로 정의된 필드(속성)에는 동일한 값이 중복되어 저장될 수 없음
외래키
[외부키]
관계를 맺고 있는 테이블 R1, R2에서 테이블 R1이 참조하고 있는 테이블 R2의 기본키와 같은 R1 테이블의 속성을 외래키라고 함
하나의 테이블에는 여러 개의 외래키가 존재할 수 있음
외래키로 지정된 필드에는 Null값이나 중복된 값을 입력할 수 있음
대체키 후보키 중 기본키를 제외한 나머지 속성을 말함
슈퍼키 한 테이블 내에 있는 속성들의 집합으로 구성된 키
테이블을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
테이블을 구성하는 모든 튜플에 대한 유일성은 만족시키지만 최소성은 만족시키지 못함

제약 조건

개체 무결성 기본키는 NULL값을 가질 수 없음
참조 무결성 외래키 값은 참조 테이블의 기본키 값과 동일해야 함

 

 

예제 문제

출처 : 대한상공회의소 홈페이지

 

0. 들어가기 전..

  • 해당 테이블 더블 클릭시 테이블 내용이 나타남
  • 해당 테이블 우측 클릭 후, 디자인 보기에서 작업

1. 필드 추가 및 데이터 형식 지정

  • 행 추가를 눌린 후 '통행번호'필드 추가
  • 데이터 형식을 '일련번호'로 지정
  • 텍스트는 255자까지 지원
    메모는 63,999자까지 지원
  • 사진 형식의 경우 데이터 형식은 'OLE 개체'

 

2. 기본키 지정

  • '통행번호' 앞의 회색 부분을 오른쪽 클릭하여 기본키 설정하거나
    디자인 탭의 도구에서 기본키 선택
  • 기본키가 두 개인 경우, [Ctrl]키를 눌린채 두 행을 선택한 후 작업
  • 기본키를 관계설정을 참고하여 설정해야되는 경우 [데이터베이스 도구 → 관계 → 관계]에서 확인 후 설정
    외래키를 기본키로 설정!!

 

2. 입력 마스크 설정[입력형식; 문자저장여부,기본값]

  • 행 선택 후 아래의 필드 속성에서 입력 마스크 설정
  • 입력마스크를 통해 한글*영문 글자 수, 대소문자를 지정
      필 수 선택(공백 가능)
    숫자[기호 안됨] 0 9
    영문자, 한글 L ?
    영어, 한글, 숫자 A a
    모든문자, 공백 & C
    대문자 >
    소문자 <
    선택요소, 숫자, 공백, 덧셈뺄샘기호 가능
    [단, 공백은 저장되지 않음!]
    #
  • 입력형식;문자저장여부;기본값의 형식을 가짐!
  • 영문 대문자가 여러번 나타날 때는 >한번만 입력
        ex> 영문 대문자 2글자, 숫자 3글자 반드시 표기 
    →  >LL000
        ex> "A-B77"형태, 영문 대문자 2글자*숫자 2글자 반드시 표기, 공백 허용 → >L-L00;1
        ex> "A77B"형태, 영어 대문자 2글자*숫자 2글자 반드시 표기, 공백 허용 → >L00L
  • 문자를 저장할 때는 뒤에 ;0를 붙인다! [반드시 영문1글자,-,숫자 3글자 반드시 표시 → L-000;0]
       입력된 데이터만 저장['-'를 저장하지 않을 때]할 때는 ;1이나 공백을 붙인다!
  • 기본값을 설정할 때는 뒤에 ;기본값을 붙인다! [기본값으로 * 표시 →L-000;0;*]
  • 기존 데이터 뿐만 아니라 모든 데이터가 '*'형태로 표시할 때는 'Password' 입력
  • 일부 값들을 '*'형태로 나타낼 때는 "*"를 사용. [앞의 한글자 숫자, 뒤의 2글자 *로 표시 → 0"**";0]

 

 

3. 기본값 설정

  • 해당 필드 선택 후 now()를 사용해 기본적으로 시스템의 오늘 날짜와 시간 입력
    date()함수 사용시 시스템의 오늘 날짜만 표시됨

 

4. 유효성 검사 규칙

  • 유효성 검사 규칙은 지정한 글자 전체가 성립해야 입력됨
  • '경차할인' or '출퇴근할인' or '화물차심야할인'
        = In('경차할인', '출퇴근할인', '화물차심야할인')
        ※ AND 조건일 경우 : '경차할인' AND '출퇴근할인' AND '화물차심야할인'
  • 사이의 값을 구할 때는 (>=A and <=B)이나 (between A and B)를 사용(단, A와 B는 숫자)
  • 77을 초과하는 숫자가 입력될 수 없도록 유효성 검사
        <=77
  • 특정 문자가 포함되도록 할 때는 (Like "*포함될 문자*")를 사용
        * 는 모든 이라는 의미로 앞 뒤로 아무문자나 들어갈 수 있다는 의미
  • 필드에 공백이 입력되지 않도록 하기[InStr을 통해 찾은 공백이 없으면 0]
        InStr(시작위치, [필드명], "찾을문자")   [단, 찾을 문자가 없는 경우 0을 출력]
        즉, InStr([필드명]," ")=0은 공백이 없는 데이터만 입력 가능하다는 의미
  • 유효성 검사 규칙 안에 필드명이 들어가는 경우 ( [필드명] )처럼 대괄호를 해줌!
  • 유효성 검사 테스트를 사용하면 지정하지 않은 글자가 들어갔을 때 출력되는 텍스트를 설정 가능
        ex> '경차할인', '출퇴근할인', '화물차심야할인' 중 하나만 입력하시오
  • 여러 필드에 대해 유효성검사를 할 경우 [디자인 → 표시/숨기기 → 속성검사]에서 설정
  • '주민등록번호'필드는 7번째에 -가 입력되게 하고, 뒤의 7글자는 필수입력하도록 유효성 검사를 실시
        Like "??????-???????"
        Instr([주민등록번호],"-")=7 AND Len([주민등록번호])-Instr([주민등록번호],"-")=7
* 글자 수 제한없이 조건 검색
ex> 피보험자의 이름이 '신'으로 시작  신*
? 글자 수 1개만 조건 검색
ex> 피보험자의 이름 두번째 글자가 '자' → ?자*

 

 

 

 

* 기타 설정

필드크기 - 글자수가 제한이 있는 경우 사용
  ex>  숫자 데이터 형식의 필드 크기
    바이트 : 0~255(1바이트)
    정수 : -32,768~32768(2바이트)
    정수(LONG) : -2,147,483,648 ~ 2,147,483,648
형식 - 원하는 데이터의 형식이 있을 경우 사용
    ex> "07월 07일"형식으로 표현  →  mm"월" dd"일"
필수 - 더블클릭하면 예/아니오 변경 가능
    예 : 값이 반드시 입력되어야함
    아니오 : 값이 입력되지 않아도 됨
빈 문자열 허용 - 더블클릭하면 예/아니오 변경 가능
    예 : 빈 문자열 입력 가능
    아니오 : 빈 문자열 입력되지 않음
인덱스 - 더블클릭하면 예/아니오 변경 가능
    예(중복가능) : 색인(중복가능)
    예(중복불가능) : 색인(중복불가능)

    아니오 : 색인 없음
- 인덱스의 고유 설정
IME 모드 - 필드로 포커스 이동 시 설정될 한글 입력기의 상태를 지정
- 현재상태유지, 한글, 한글전자, 여웃자저자, 영숫자 반자 등을 사용 가능

 

5. 조회

  • 조회 속성을 이용해 값 목록으로 '남,여'를 가지는 목록 상자
        → 필드 속성의 조회에서 콤보상자 선택
            → 행 원본 유지 : 값목록
                행 원본       : 남;여

 

6. 저장하기

  • 저장하면 '데이터의 일부가 손실되었습니다.'라고 뜨는데 '예'를 눌림

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

관련글 더보기

댓글 영역