데이터 베이스 기본 (3)

관계형 데이터베이스는 RDB (Relational Data Base) 라고도 하며 여러 데이터베이스 시스템 중에 가장 널리 쓰이는 데이터베이스 개념 입니다. 페이스북이나 구글 처럼 초 빅데이터를 다루는 회사들 이라면 NoSQL같은 다른 데이터베이스를 쓰기도 하지만 거의 웬만한 회사에서 쓰는 데이터베이스는 이 RDB를 기본으로 하고 있으며 제가 앞으로 소개해 드릴 엑세스도 관계형 데이터베이스 관리 프로그램입니다. 데이터베이스가 일반 엑셀 테이블과 다른 점은 매우 구조적이고 정형화 되어 있으므로 그 개념을 제대로 이해 못하면 만들지도 못합니다. 엑셀 테이블처럼 내가 셀 테두리를 그리고 머리글 행을 추가하고 테이블 이라고 할 수 없는 것이 데이터베이스의 테이블 입니다.

  1. 데이터가 실제 저장 되는 공간 à 테이블

    모든 RDB에서 데이터가 저장되는 실제 공간을 테이블 이라고 합니다. 테이블은 우리가 흔히 아는 엑셀의 테이블과 비슷한 개념이라고 생각하면 됩니다. 행과 열로 구성되어 있고 비슷한 성질을 가지는 데이터의 종합 입니다. 이 데이터 테이블은 데이터베이스 시스템에 상관없이 항상 다른 프로그램으로 이동이 쉬워야 하고 업데이트가 쉬워야 합니다. 엑세스로 만든 테이블에 저장된 데이터를 전문 데이터베이스 서버인 오라클이나 MySQL등으로 이전이 가능해야 하고 혹은 로컬의 다른 공간에 테이블만 저장하여 데이터베이스 센터로 사용할 수 도 있어야 합니다. 그리고 하나의 테이블에는 절대 다른 테이블을 포함 할 수 없습니다. 엑셀의 하나의 시트에서 두 개의 테이블을 공간을 두고 만드는 것은 엑세스에서는 불가능 합니다.

     

    엑세스의 제품 이라는 테이블에는 제품에 관한 정보만 저장 됩니다.

     

     

    역시 제조 업체 테이블에는 제조업체에 관한 정보만 저장 됩니다.

     

  2. 데이터의 타입을 정하는 머리글 행 à 필드

    엑셀과 같은 스프레드 시트에서는 테이블을 만들 때 머리글 행의 필드 타입을 정해 주지 않습니다. 그러나 데이터베이스의 테이블에서는 머리글 행에 해당하는 필드에 반드시 필드 타입을 저장해 주어야 하고 이 필드 타입에 벗어나는 데이터 타입은 입력이 되질 않습니다. 엑세스의 테이블의 열은 항상 1가지 형태의 데이터 타입만을 가질 수 있고 이것을 엑세스에서는 필드라고 합니다.

     

    위의 테이블의 머리글 행은 모두 데이터 형식이라는 것을 가지고 있습니다. 예를 들어 데이터 형식이 숫자인 곳은 절대 텍스트나 첨부 파일 타입이 입력 될 수 없습니다.

     

  3. 항상 동일한 개체를 묶는 테이블 의 행 à 레코드

    엑셀에서는 적당한 간격을 두고 하나의 시트에 두 개의 테이블 배치가 가능합니다. 이 말은 하나의 행에 두 가지 성격의 객체가 놓일 수 있습니다. 그러나 엑세스와 같은 관계형 데이터베이스 프로그램에서는 하나의 행에 절대 다른 아이템의 정보를 기록하는 것이 불가능 합니다. 예를 들어 지금 제품의 테이블에 행 마다 하나의 제품 정보만 기록 되고 있습니다. 여기에 빈 열 하나를 배치하고 우측에 다른 제품 정보를 입력하는 것은 엑셀에서는 가능하지만 엑세스의 테이블 에서는 해서도 안되고 불가능 합니다. 엑세스에서는 반드시 하나의 행에 하나의 객체만 기록해야 하고 이것을 엑세스에서는 레코드 라고 합니다.

     

    엑세스 에서는 갤럭시 S6라는 제품 옆에 공간을 두고 다른 제품 정보를 입력하는 것이 불가능 합니다. 만약 그렇게 보이고 싶다면 가능하지만 그것은 RDB 데이터베이스의 테이블의 개념에 어긋나게 되고 데이터베이스 시스템을 구축 할 수 없습니다.

     

    저의 데이터베이스 예제에서 제품 정보, 브랜드, 구매처 등은 모두 각각의 다른 테이블에 저장 되고 있습니다. 그러나 내가 가지고 있는 제품의 이름을 입력하면 거기에 관계된 모든 제품들의 정보를 다른 테이블로부터 알 수 있습니다. 이것을 가능하게 하는 것이 관계형 데이터베이스의 테이블 관계 설정에 의한 것이고 엑세스의 테이블을 엑셀의 데이터와 구분 짓는 가장 중요한 요소인 기본 키(Primary Key) 를 통해 주로 다른 테이블과 관계를 맺게 됩니다.

+ Recent posts