본문 바로가기
[파이썬]/데이터베이스

[MariaDB] 테이블의 개념 및 특징 (+ERD)

by sung min_Kim 2023. 11. 20.
Table, 테이블


데이터를 저장할 수 있는 공간



· 테이블(Table)을 사용하는 이유는 ?


 사용자는 데이터베이스의 테이블(Table)을 생성하여 데이터를 저장하고, 필요한 시점에 해당 데이터를 조회하거나 수정 및 삭제한다. 이러한 기능을 수행하기 위해 데이터베이스의 테이블을 생성하여 조작한다.

 


· 테이블(Table)의 개념 및 특징

 
 테이블은 데이터베이스에서 데이터를 저장하는 기본 단위이다. 테이블은 열(Column)과 행(Row)으로 구성되어 있으며, 이는 각 각 필드와 레코드를 나타낸다.


  • 필드(Field) : 필드는 테이블의 열을 의미한다. 각 필드는 테이블에서 특정 카테고리의 정보를 나타내며, 고유한 이름과 데이터 타입을 가진다. 각 필드는 특정한 타입의 데이터(문자열, 숫자, 날짜 등)만을 저장할 수 있으며, 이는 필드를 정의할 때 지정된다.


  • 레코드(Record): 레코드는 테이블의 행을 의미한다. 각 레코드는 테이블에서 하나의 항목 또는 개체를 나타낸다. 각 레코드는 여러 개의 필드 값을 가지며, 이는 각 각의 필드에 대한 정보를 나타낸다.


  • Primary Key(PK, 기본 키) : 각 테이블은 하나 이상의 기본 키를 가질 수 있다. 기본 키는 각 테이블에서 각 레코드(행)를 고유하게 식별하는 역할을 수행한다. 기본 키의 값은 고유한 값을 유지하며, 고유한 값에 대한 중복을 허용하지 않는다.


  • Foreign Key(FK, 외래 키) : 한 테이블의 필드(열)가 다른 테이블의 기본 키를 참조하는 경우를 가리킨다. 이를 통해 두 테이블 간의 관계를 정의하고, 데이터의 일관성을 유지할 수 있다.


  • Normalization(정규화) : 데이터베이스 설계에서는 정규화라는 과정을 거친다. 이는 데이터 중복을 최소화하고, 데이터의 일관성을 유지하기 위한 것이다. 정규화를 통해 테이블은 여러 개의 테이블로 분리되며, 각 테이블은 특정 주제나 목적에 집중하게 된다.


  • Schema(도식 또는 틀) : 데이터베이스의 구조와 특성을 정의한 설계 도면이라고 할 수 있다. 이는 테이블, 필드, 데이터 타입, 관계, 제약 조건 등 테이블의 구조와 특성을 정의한다. 이를 통해 데이터베이스는 어떤 형태로 데이터를 저장하고, 어떻게 관리할지를 결정한다.

 


· 'ERD'를 통한 테이블 살펴보기


 'ERD'(Entity Relationship Diagram)는 데이터베이스의 구조를 시각적으로 표현하는데 매우 유용한 도구이다. 이를 통해 테이블의 구조와 역할 및 관계에 대해 살펴보도록 하자.
(아래의 ERD 그림을 참고하실 분들은 첨부 파일을 확인하시길)

ERD.jpg
0.25MB



ERD

테이블(Tabel)

 - 각 각의 테이블은 행(필드)과 열(레코드)로 구성되어 있다.

 - 위 ERD에서 각 각의 테이블을 가리킨다.

  ex) BUYER(거래처정보), LPROD(상품분류정보), PROD(상품정보),
      BUYPROD(입고상품정보), CART(장바구니정보), MEMBER(회원정보)

 

필드(Field)  = 테이블의 열(Column)

 - 필드는 테이블의 각 열을 가리키며, 테이블의 특정 카테고리 또는 속성을 나타낸다.

 - LPROD(상품분류정보) 테이블을 예로 들면, LPROD_GU(순서), LPROD_ID(상품분류
   코드), LPROD_NM(상품분류명)에 대한 각 카테고리의 정보를 필드가 나타낸다.

 

 레코드(Record) = 테이블의 행(Row)

 - 레코드는 테이블의 각 행을 가리키며, 각 필드에 대한 특정 데이터 값을 모두 포함한다.

 - PROD(상품) 테이블을 예로 들면, 한 상품의 상품코드, 상품명, 상품분류, 공급업체 등 등의 정보가 하나의 레코드를 구성한다. 첫 번째 레코드는 첫 번째 상품의 상품코드, 상품명, 상품분류, 공급업체 등의 정보를 모두 담고 있다.
 
 - 즉, 레코드는 특정 카테고리에 대한 모든 정보를 포함하는 것을 나타낸다.

 

Primary Key(PK, 기본 키)

 - 각 레코드를 고유하게 식별한다.

 - PROD(상품) 테이블 예로 들면, 첫 번째 카테고리인 '상품코드(PROD_ID)'가 기본 키로 지정되어 있다.

 - 따라서 '상품코드'는 테이블 내에서 고유한 값을 가져야 한다.

 - '상품코드'를 통해 각 레코드에 대한 정보를 정확하게 식별하고 찾을 수 있다. 

 

Foreign Key(FK, 외래 키) 

 - 한 테이블의 필드가 다른 테이블의 필드를 참조하고 있는 상태이다.

 - PROD(상품) 테이블을 예로 들면, 상품분류 테이블의 LPROD_GU(순서) PK 필드와 공급업체 테이블의 BUYER_Id(거래처코드) PK 필드를 외래 키(KF)로 지정하여 참조하고 있다. 

 - 이로써 상품 테이블의 레코드는 참조하고 있는 상품분류와 공급업체에 대한 행 데이터를 포함한다.

 - 위 ERD의 경우, 1(상품분류, 공급업체) : N(상품정보) 일대 다 관계가 성립한다.

 - 일대 다 관계에서 '일'은 ' | ' 작대기 표시로 표현하고, '다'는 '삼발이' 표시로 표현한다.

 

Normalization(정규화)

 - 데이터베이스의 데이터 중복 및 일관성을 위해 각 테이블은 특정 주제나 목적에 알맞게 설정된다.

 - 예를 들면, 상품정보 테이블은 상품정보에 국한하여 각 카테고리를 선별하고, 카테고리 별 적합한 데이터를 기입하게 된다.

 - 이로써 각 테이블은 필요한 카테고리와 데이터만을 포함하며, 데이터의 중복이나 불필요한 데이터를 제거하게 됨으로써 데이터의 관리를 효율적으로 수행할 수 있다.

 

Schema(도식 또는 틀)

 - 스키마는 데이터베이스의 모든 구조적 특징을 설명한다.

 -  ERD는 스키마를 시각적으로 표현한 것이다.

 - 각 테이블과 필드, 그리고 테이블 간의 관계를 통해 데이터베이스의 전체적인 구조와 각 테이블이 어떻게 연결되어 있는지 파악할 수 있다.

 



테이블에 관하여 살펴보았다.

테이블은 데이터베이스의 중심이다.

테이블은 정보를 구조적으로 표현하며, 이를 통해 데이터를 효율적으로 관리하고 활용할 수 있다.

각 테이블은 고유한 기본 키를 가지며, 외래 키를 통해 다른 테이블과 연결(참조)된다.

이는 복잡한 데이터 사이의 관계를 명확하게 표현하고, 빠르고 정확한 데이터의 검색을 가능하게 한다.

따라서 테이블은 데이터베이스의 핵심이며, 이를 잘 활용하는 것이 매우 중요하겠다.