데이터베이스 모델링 - 5

목차

    데이터베이스 모델링

    1. 시나리오

    장부에 고객 방문기록과 구매 이력 남기기

    시나리오 1

    • 고객에 방문 기록과 방문한 사람이 어떤 상품을 구매 하였는지 기록을 남겨 보자.

     

    시나리오 2

    • 구매를 상태와 비 구매 상태 구분하기 → L 자 모양으로 만들어지게 된다

     

    시나리오 3

    • 데이터 베이스에 고객 테이블과 구매 테이블 만들어서 불필요 공간 없애기

     

    시나리오 4

    • 고객 테이블에 중복 회원(중복 없애기) --> 고객 이름에 PK(기본키 설정)

     

    시나리오 5

    • 구매 테이블에 고객명을 추가 하기
      ( 배달을 해야한다고 가정하면 구매 고객이름으로 고객 테이블에 접근해서 고객에 주소나 전화번호를 알 수 있다)

     

    시나리오 6

    • PK : FK 관계 만들기 (Foreign Key : 한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을 식별할 수 있는 키)
    • 중요 : 현실세계를 모델링할때 아주 많이 사용되는 설계 1: N 관계
    • 학생 : 성적 1 : N
    • 직원 : 급여 1 : N

    시나리오 7

    • 테이블 설계 단계

    2. 시나리오 코드

    -- 데이터 집합 생성
    -- create database db_denco_market;
    create database db_denco_market;
    
    -- 사용
    -- use db_denco_market;
    use db_tenco_market;
    
    -- db 삭제 명령어
    -- drop database db_denco_market;
    
    -- 사전 기반 지식 : mysql은 대소문자를 구별하지 않습니다.
    -- 단, 구분하는 RDBMS도 있습니다.
    
    -- 테이블 설계 하기
    
    -- 고객 테이블 생성
    create table userTBL(
    	userName char(3) not null primary key,
        birthYear int not null,
        addr char(2) not null,
        mobile char(12)
    );
    
    show tables;
    select * from userTBL;
    desc userTBL;
    
    -- 구매 테이블 생성
    create table buyTBL(
    	id int not null auto_increment,
        userName char(3) not null,
        prodName char(3) not null,
        price int not null,
        amount int,
        primary key(id),
        foreign key(userName) references userTBL(userName)
    );
    
    show tables;
    select * from buyTBL;
    desc buyTBL;

     

    FK는 MUL으로 표현됨

    1. foreign key (userName) references userTBL(userName) :
      • 이 구문은 외래 키(foreign key)를 정의하는 데 사용.
      • 외래 키는 한 테이블의 열에 대해 다른 테이블의 열을 참조하는데 사용. 이를 통해 테이블 간의 관계를 설정하고 데이터 무결성을 유지할 수 있다.
      • 예를 들어, 위의 구문은 현재 테이블의 userName 열을 외래 키로 정의하고, 이 외래 키가 userTBL 테이블의 userName 열을 참조하도록 설정한다. 이는 현재 테이블의 userName 열이 userTBL 테이블의 userName 열에 있는 값 중 하나여야 한다는 의미.
    데이터 무결성

    데이터가 전송, 저장되고 처리되는 모든 과정에서 변경되거나 손상되지 않고 완전성, 정확성, 일관성을 유지함을 보장하는 특성
    1. auto_increment :
      • 이는 열에 대한 속성으로, 해당 열의 값이 자동으로 증가하도록 한다.
      • 보통 이 속성은 주로 기본 키(primary key) 열에 사용되며, 새로운 레코드가 삽입될 때마다 자동으로 값이 증가하여 고유한 식별자를 생성한다.
      • 일반적으로 auto_increment 속성은 정수 데이터 타입에만 사용하고, 대표적으로 INT나 BIGINT와 같은 정수형 데이터 타입과 함께 사용된다.
      • 예를 들어, id INT AUTO_INCREMENT PRIMARY KEY와 같이 정의하면 id 열은 자동으로 1씩 증가하는 고유한 값을 가지게 되고. 새로운 레코드가 삽입될 때마다 자동으로 증가하는 식별자가 생성된다.

    MySQL 기본 목차로 돌아가기

     

    'MySQL > 정리' 카테고리의 다른 글

    테이블 생성과 제약 사항 연습 - 7  (0) 2024.05.30
    테이블에 데이터 입력 - 6  (0) 2024.05.29
    데이터베이스 구축 절차 - 4  (0) 2024.05.28
    샘플 데이터 구축하기 - 3  (0) 2024.05.28
    데이터베이스란 - 2  (0) 2024.05.28