MySQL 연구 노트 05 [다중 테이블 작업, 세 가지 패러다임, 데이터베이스 백업 및 복원]

  • MySQL Document-Dark Horse 프로그래머 (Tencent Weiyun) : https://share.weiyun.com/RaCdIwas
  • 1-MySQL Foundation.pdf, 2-MySQL 제약 조건 및 design.pdf, 3-MySQL 다중 테이블 쿼리 및 트랜잭션 작업 .pdf
  1. MySQL 연구 노트 01 [데이터베이스 개념, MySQL 설치 및 사용] [day01]
  2. MySQL 연구 노트 02 [SQL 기본 개념 및 일반 문법, 데이터베이스 CRUD 작업] [day01]
  3. MySQL 연구 노트 03 [데이터베이스 테이블의 CRUD 작업, 데이터베이스 테이블에 기록 된 기본 작업, 클라이언트 측 그래픽 인터페이스 도구 SQLyog] [day01]

  4. MySQL 연구 노트 04 [데이터베이스 쿼리 작업, 테이블 제약] [day01, day02]

  5. MySQL 연구 노트 05 [다중 테이블 작업, 세 가지 패러다임, 데이터베이스 백업 및 복원] [day02]

  6. MySQL 연구 노트 06 [다중 테이블 쿼리, 하위 쿼리, 다중 테이블 쿼리 연습] [day03]

  7. MySQL 연구 노트 07 [트랜잭션, 사용자 관리 및 권한 관리] [day03]

목차

09 다중 테이블 작업

다중 테이블 관계 소개

다중 테이블 관계 _ 일대 다 관계 구현

다중 테이블 관계 _ 다 대다 관계 실현

다중 테이블 관계 _ 일대일 관계 실현

다중 테이블 relationship_case

10 세 가지 패러다임

패러다임 개요

세 가지 패러다임에 대한 자세한 설명

11 데이터베이스 백업 및 복원

명령 줄

그래픽 도구


09 다중 테이블 작업

다중 테이블 관계 소개

데이터베이스 설계 -1. 여러 테이블 간의 관계

1. 분류 :
    1. 일대일 (이해) :
        * 예 : 사람과 신분증
        * 분석 : 한 사람은 하나의 ID 만 가지고 있고 하나의 ID는 한 사람에게만 대응할 수 있습니다.
    2. 일대 다 (다 대일) :
        * 예 : 부서 및 직원
        * 분석 : 한 부서에 여러 직원이 있으며 한 직원은 한 부서에만 대응할 수 있습니다.
    3. 다 대다 :
        * 예 : 학생 및 코스
        * 분석 : 학생은 많은 코스를 선택할 수 있으며 코스는 많은 학생이 선택할 수 있습니다.

다중 테이블 관계 _ 일대 다 관계 구현

데이터베이스 설계 -1. 여러 테이블 간의 관계

1. 분류 :
    1. 일대일 (이해) :
        * 예 : 사람과 신분증
        * 분석 : 한 사람은 하나의 ID 만 가지고 있고 하나의 ID는 한 사람에게만 대응할 수 있습니다.
    2. 일대 다 (다 대일) :
        * 예 : 부서 및 직원
        * 분석 : 한 부서에 여러 직원이 있으며 한 직원은 한 부서에만 대응할 수 있습니다.
    3. 다 대다 :
        * 예 : 학생 및 코스
        * 분석 : 학생은 많은 코스를 선택할 수 있으며 코스는 많은 학생이 선택할 수 있습니다.

    2. 관계 실현 :
        1. 일대 다 (다 대일) :
            * 예 : 부서 및 직원
            * 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .

다중 테이블 관계 _ 다 대다 관계 실현

    2. 관계 실현 :
        1. 일대 다 (다 대일) :
            * 예 : 부서 및 직원
            * 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .
        2. 다 대다 :
            * 예 : 학생 및 코스
            * 구현 모드 : 다 대다 관계를 실현하려면 세 번째 중간 테이블의 도움이 필요합니다. 중간 테이블에는 두 개 이상의 필드가 포함되어 있으며이 두 필드는 세 번째 테이블의 외래 키로 사용되며 각각 두 테이블의 기본 키를 가리 킵니다.
        3. 일대일 (이해) :
            * 예 : 사람과 신분증
            * 구현 : 일대일 관계가 실현되고, 고유 한 외래 키가 양쪽에 추가되어 기본 키를 가리킬 수 있습니다. 다른 쪽.

다중 테이블 관계 _ 일대일 관계 실현

    2. 관계 실현 :
        1. 일대 다 (다 대일) :
            * 예 : 부서 및 직원
            * 구현 방법 : 여러 측면에 외래 키를 설정하여 한 쪽의 기본 키를 가리 킵니다. .
        2. 다 대다 :
            * 예 : 학생 및 코스
            * 구현 모드 : 다 대다 관계를 실현하려면 세 번째 중간 테이블의 도움이 필요합니다. 중간 테이블에는 두 개 이상의 필드가 포함되어 있으며이 두 필드는 세 번째 테이블의 외래 키로 사용되며 각각 두 테이블의 기본 키를 가리 킵니다.
        3. 일대일 (이해) :
            * 예 : 사람과 신분증
            * 구현 : 일대일 관계가 실현되고, 고유 한 외래 키가 양쪽에 추가되어 기본 키를 가리킬 수 있습니다. 다른 쪽.

다중 테이블 relationship_case

-- 创建旅游线路分类表 tab_category
-- cid 旅游线路分类主键,自动增长
-- cname 旅游线路分类名称非空,唯一,字符串 100
CREATE TABLE tab_category (
  cid INT PRIMARY KEY AUTO_INCREMENT,
  cname VARCHAR (100) NOT NULL UNIQUE
) ;

-- 创建旅游线路表 tab_route
/*
rid 旅游线路主键,自动增长
rname 旅游线路名称非空,唯一,字符串 100
price 价格
rdate 上架时间,日期类型
cid 外键,所属分类
*/
CREATE TABLE tab_route (
  rid INT PRIMARY KEY AUTO_INCREMENT,
  rname VARCHAR (100) NOT NULL UNIQUE,
  price DOUBLE,
  rdate DATE,
  cid INT,
  FOREIGN KEY (cid) REFERENCES tab_category (cid)
) ;

/*创建用户表 tab_user
uid 用户主键,自增长
username 用户名长度 100,唯一,非空
password 密码长度 30,非空
name 真实姓名长度 100
birthday 生日
sex 性别,定长字符串 1
telephone 手机号,字符串 11
email 邮箱,字符串长度 100
*/
CREATE TABLE tab_user (
  uid INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR (100) UNIQUE NOT NULL,
  PASSWORD VARCHAR (30) NOT NULL,
  NAME VARCHAR (100),
  birthday DATE,
  sex CHAR(1) DEFAULT '男',
  telephone VARCHAR (11),
  email VARCHAR (100)
) ;

/*
创建收藏表 tab_favorite
rid 旅游线路 id,外键
date 收藏时间
uid 用户 id,外键
rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次
*/
CREATE TABLE tab_favorite (
  rid INT, -- 线路id
  DATE DATETIME,
  uid INT,
  -- 用户id
  -- 创建复合主键
  PRIMARY KEY (rid, uid),
  -- 联合主键
  FOREIGN KEY (rid) REFERENCES tab_route (rid),
  FOREIGN KEY (uid) REFERENCES tab_user (uid)
) ;

10 세 가지 패러다임

패러다임 개요

2. 데이터베이스 설계 패러다임

    * 개념 : 데이터베이스를 설계 할 때 따라야 할 몇 가지 사양. 뒤에있는 패러다임 요구 사항을 따르려면 먼저 전면의 모든 패러다임 요구 사항을 따라야합니다.

        관계형 데이터베이스를 설계 할 때는 서로 다른 사양에 따라 합리적인 관계형 데이터베이스를 설계해야합니다. 이러한 서로 다른 사양을 서로 다른 패러다임이라고합니다. 다양한 패러다임을 하위 표준으로 제시합니다. 패러다임이 높을수록 데이터베이스의 중복성이 낮아집니다.

        관계형 데이터베이스에는 현재 6 개의 패러다임이 있습니다 : 제 1 정규형 (1NF), 제 2 정규형 (2NF), 제 3 정규형 (3NF), Bath-Cord 정규형 (BCNF), 제 4 정규형 (4NF) 및 제 5 정규형 ( 완벽한 패러다임이라고도하는 5NF).

    * 분류 :
        1. First Normal Form (1NF) : 각 열은 분할 할 수없는 원자 데이터 항목입니다.
        2. 2NF (Second Normal Form) : 1NF를 기반으로 비 코드 속성은 코드에 완전히 의존해야합니다 (1NF를 기반으로 기본 코드에 대한 비 기본 속성의 부분적인 기능 의존성이 제거됨).
        3. 제 3 정규형 (3NF) : 2NF를 기반으로, 모든 비 기본 속성은 다른 비 기본 속성에 의존하지 않습니다 (2NF를 기반으로 한 전 이적 의존성 제거).

세 가지 패러다임에 대한 자세한 설명

2. 데이터베이스 설계 패러다임

    * 개념 : 데이터베이스를 설계 할 때 따라야 할 몇 가지 사양. 뒤에있는 패러다임 요구 사항을 따르려면 먼저 전면의 모든 패러다임 요구 사항을 따라야합니다.

        관계형 데이터베이스를 설계 할 때는 서로 다른 사양에 따라 합리적인 관계형 데이터베이스를 설계해야합니다. 이러한 서로 다른 사양을 서로 다른 패러다임이라고합니다. 다양한 패러다임을 하위 표준으로 제시합니다. 패러다임이 높을수록 데이터베이스의 중복성이 낮아집니다.

        관계형 데이터베이스에는 현재 6 개의 패러다임이 있습니다 : 제 1 정규형 (1NF), 제 2 정규형 (2NF), 제 3 정규형 (3NF), Bath-Cord 정규형 (BCNF), 제 4 정규형 (4NF) 및 제 5 정규형 ( 완벽한 패러다임이라고도하는 5NF).

    * 분류 :
        1. First Normal Form (1NF) : 각 열은 분할 할 수없는 원자 데이터 항목입니다.
        2. 2NF (Second Normal Form) : 1NF를 기반으로 비 코드 속성은 코드에 완전히 의존해야합니다 (1NF를 기반으로 기본 코드에 대한 비 기본 속성의 부분적인 기능 의존성이 제거됨).

            * 몇 가지 개념 :
                1. 기능적 종속성 : A-> B. 속성 A (속성 그룹)의 값을 사용하여 고유 속성 B의 값을 결정할 수있는 경우 B는 A에 종속됩니다.
                    예 : 학생 ID-> 이름. (학생 번호, 코스 이름)-> 점수
                2. 완전한 기능적 종속성 : A-> B. A가 속성 그룹 인 경우 B의 속성 값 결정은 속성의 모든 속성 값에 의존해야합니다. 그룹 A.
                    예 : (학생 ID, 코스 이름)-> 점수
                3. 부분적 기능 의존성 : A-> B, A가 속성 그룹 인 경우 B의 속성 값 결정은 일부 값에만 의존하면됩니다. 속성 그룹 A에서, 즉 할 수 있습니다.
                    예 : (학생 ID, 코스 이름)-> 이름
                4. 전달 함수 종속성 : A-> B, B-> C. 속성 A (속성 그룹)의 값을 사용하여 고유 B 속성의 값을 판별 할 수 있고 속성 B (속성 그룹)의 값을 사용하여 고유 C 속성의 값을 판별 할 수있는 경우 C 전달 함수는 A에 의존한다고합니다.
                    예 : 학생 ID-> 부서 이름, 부서 이름-> 부장
                5. 코드 : 속성 또는 속성 그룹이 테이블의 다른 모든 속성에 완전히 종속 된 경우이 속성 (속성 그룹)을 The 테이블의 코드.
                    예 : 테이블의 코드는 다음과 같습니다. (학생 ID, 코스 이름)
                    * 기본 속성 :
                    코드 속성 그룹의 모든 속성 * 기본이 아닌 속성 : 코드 속성 그룹을 제외한 속성
        3. 제 3 정규형 (3NF) : 2NF를 기반으로, 모든 비 기본 속성은 다른 비 기본 속성에 의존하지 않습니다 (2NF를 기반으로 한 전 이적 의존성 제거).

  

11 데이터베이스 백업 및 복원

1. 명령 줄 :
    * 구문 :
        * 백업 : mysqldump -u 사용자 이름 -p 암호 데이터베이스 이름> 저장된 경로
        * 복원 :
            1. 데이터베이스에 로그인
            2. 데이터베이스 생성
            3. 데이터베이스 사용
            4. 파일을 실행합니다. 소스 파일 경로
2. 그래픽 도구

명령 줄

  

  

그래픽 도구

  

    

추천

출처blog.csdn.net/weixin_44949135/article/details/113660255