Coding 공부/MYSQL

[MYSQL] MYSQL설치하기, 환경 변수 설정, 스키마 만들기, 테이블 만들기, Digram만들기, 외래키와 기본키, 모델링, 스키마

CBJH 2024. 3. 28.
728x90
반응형

1. MYSQL 설치하기

 

  • 다운로드 후 Next를 눌러 설치
  • 비밀번호만 기억하기

  • 설치된 폴더(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MySQL)에 MySQL Workbench 8.0 CE를 눌러 실행한다.
  • Connections에 +를 눌러 커넥션을 추가한다.
  • 커넥션 네임은 구분을 할 뿐 앞으로 중요하지 않으므로 아무거나 입력해주고 Test Connection을 누른다.

  • 설치할 때 설정했던 비밀번호를 누른 후 ok를 누른다.
  • 추가된 Connection을 더블클릭해서 실행한다.

 

2. MySQL Workbench 실행

누르면 윈도우가 변경되어 필요한 것만 열어 사용할 수 있다.

 

edit >> Preferences 클릭

 

SQL Editor눌러서 밑에 Safe Updates 체크 해제한다>> Update 나 DELTE할 때 조건을 길게 안써도된다.

 

3. 환경변수 path 설정

찾기에 시스템 환경 변수 편집을 검색한다.

C:\Program Files\MySQL\MySQL Server 8.0\bin

Path를 추가해주는 이유 : 콘솔에서 호출할 때 편의성을 제공한다.(어느 경로에서던지 sql plus를 입력하면 spl에 연결되는 것과 같은 원리이다) 

 

 

 

명령 프롬프트 관리자권한으로 실행하기

d:
cd employees
mysql -u root -p  //mysql로 접속하는 명령어
password입력 //설치할 때 입력했던 비밀번호 입력
source employees.sql; // mysql 명령어로 바뀐다)

show databases;
exit

exit명령어를 입력하면 mysql의 접속이 끝난다.

 

 

 

3. MYSQL Data 저장 경로 확인

C:\ProgramData\MySQL\MySQL Server 8.0\Data

사용자가 저장한 Data가 이 경로에 있다.

 

4. MYSQL로 스키마 만들기

  • MySQL workbench 실행 후 Schemas 탭을 누른다.

  • 왼쪽 창 위에 마우스를 올려두고 우클릭 >> Create Schema를 누른다.

  • Name을 입력하고 aplly를 누른다.

  • apply를 누른다

 

5. MYSQL Table 만들기

  • 생성한 스키마를 눌러 Table 아이콘을 우클릭 >> Create Table을 누른다.

  • Table Name을 입력한다.
  • Collum Name을 마우스 왼쪽 더블클릭해서 값을 수정한다. pk 값인지 null값을 허용하는지 체크하고 datatype도 설정해준다.
  • 컬럼을 모두 추가한 후 Apply를 누른다.

 

 

6. 새로운 스키마를 Diagram으로 만들기

    • File -> New Model을 눌러 스키마 모델을 만든다.
    •  

    • mydb 아이콘을 눌러 Name을 수정하면 스키마 이름을 수정 할 수 있다.
    • Add table을 누르면 테이블을 추가할 수 있고, 밑에 컬럼을 추가하거나 수정할 수 있는 창이 나온다.
    • Add Diagram을 눌러 다이어그램 창을 열자.

    • EER Diagram이 새로 생성되었다.
    •  

    • 첫번째 표 모양의 아이콘을 누르고 마우스로 오른쪽 공백을 좌클릭하면 테이블이 생성된다.

    • 생성된 테이블을 더블클릭하면 밑에 새로운 창이 나오고 테이블 이름을 수정할 수 있다.
    • column도 추가하거나 datatype을 바꾸는 등 자료를 입력한다..

    • 같은 요령으로 테이블을 하나 더 만든다.
    • 1:n 가지를 누른다.
    • n이 될 테이블 먼저 클릭 후 Primary key가 있는 메인 테이블을 클릭한다.(순서 중요)

    • 가지가 연결된다.

    • 새로 만든 스키마 모델을 추가하기 위해 Database탭의 Forward Engineer을 누른다.

    • 어떤 Connection에 넣을지 선택한 후 hostname과 port번호를 확인하고 next를 누른다.
    • next를 한번 더 누른다.

    • 설치했을 때 입력한 비밀번호를 누른다.
    • Total Objects(내가 Diagram에서 새로 만든 테이블들)를 확인하고 테크한 후 Next를 누른다.
    • next를 두번 더 누른다.

    • 비밀번호를 입력한다.
    • 모두 체크박스가 체크되며 스키마 생성이 적용되면 close를 누른다.

    • MYSQL00 Collection 탭에 돌아와서 SCHEMAS 옆에 새로고침 버튼을 누른다.

  • 스키마 모델에서 Diagram으로 만들었던 testchema0328이 보이고, table들이 추가 된 것을 볼 수 있다.

7. 테이블에 컬럼 추가하기 & 수정하기 & 지우기

  • 컴럼을 추가할 테이블을 우클릭하여 Select Rows - Limit 1000을 누른다.
  • 컬럼을 수정하거나 추가하거나 삭제한다.
  • Apply를 누른다.
  • 수정한 내용이 쿼리문으로 작성된 것을 확인하고 Apply를 누른다.

  6.1 쿼리문으로 테이블 만들기

  • SCHEMAS 탭에 원하는 스키마를 더블클릭해 bold체로 바뀌게한다.
  • 쿼리문 탭이 열리면 SQL명령어를 작성한다.
  • CREATE TABLE table3(col1 int, col2 char(3)); 마우스커서가 있을 때 번개표시를 누르면 해당 쿼리문이 실행된다.
  • 새로고침을 누르면 테이블이 추가된 것을 확인할 수 있다.

 

  6.2 쿼리문으로 테이블 삭제하기

  • 쿼리문에 DROP TABLE table3;를 입력한다.
  • 번개표시에 I가 적혀잇는 아이콘을 클릭하면 커서가 있는 쿼리문만 실행된다.
  • 테이블이 삭제된 것을 확인할 수 있다.

 

 

7. 외래키(FK)와 기본키(PK)

기본키 (Primary Key)

  • 정의: 테이블의 각 행(row)을 고유하게 식별하는 열(column) 또는 열의 집합입니다. 기본키로 지정된 필드는 테이블 내에서 유일한 값을 가져야 하며, NULL 값을 가질 수 없습니다.
  • 역할:
    • 데이터의 유일성(Unique)을 보장합니다.
    • 테이블의 각 행을 구별하기 위한 기준을 제공합니다.
  • 특징:
    • 한 테이블에는 오직 하나의 기본키만 존재할 수 있습니다.
    • 기본키는 다른 테이블에서 외래키로 사용될 수 있습니다.

외래키 (Foreign Key)

  • 정의: 다른 테이블의 기본키를 참조하는 열 또는 열의 집합입니다. 외래키는 한 테이블의 데이터가 다른 테이블의 행과 어떻게 관련되어 있는지 정의합니다.
  • 역할:
    • 두 테이블 간의 관계를 설정합니다.
    • 참조 무결성을 유지하도록 도와주며, 즉 참조되는 테이블의 기본키와 일치하는 값을 외래키가 가져야 합니다.
  • 특징:
    • 하나의 테이블에 여러 외래키가 존재할 수 있습니다.
    • 외래키는 NULL 값을 가질 수 있으며, 이는 참조하는 테이블과의 관계가 선택적임을 의미할 수 있습니다.
    • 외래키는 참조 무결성 제약 조건을 통해 데이터의 일관성과 정확성을 보장합니다.

차이점

  • 목적: 기본키는 테이블 내에서 각 행의 고유성을 보장하는 반면, 외래키는 테이블 간의 관계를 정의하고 참조 무결성을 유지하는 데 사용됩니다.
  • 유일성: 기본키는 테이블 내에서 고유한 값을 가져야 하지만, 외래키는 반복될 수 있으며 참조하는 테이블의 기본키 값을 중복해서 가질 수 있습니다.
  • NULL 가능성: 기본키는 NULL 값을 허용하지 않지만, 외래키는 NULL 값을 허용할 수 있습니다.

 

 

8. 모델

 

DBMS(Database Management System) 모델링은 데이터를 구조화, 저장, 관리하기 위한 프로세스입니다. 이는 데이터의 논리적 구조를 설계하여 정보 시스템 내에서 데이터를 효율적으로 활용할 수 있도록 하는 것을 목표로 합니다. 데이터 모델링은 일반적으로 세 가지 주요 단계를 포함하는데, 개념적 모델링, 논리적 모델링, 그리고 물리적 모델링이 그것입니다. 각 단계는 데이터와 데이터 간의 관계를 다른 수준의 추상화에서 정의합니다.

1. 개념적 모델링

  • 목적: 가장 높은 수준의 추상화를 제공합니다. 이 단계에서는 시스템 전체의 데이터 요구 사항을 이해하고 정의합니다. 이 과정에서 중요한 엔티티(Entity)와 이들 간의 관계(Relationship)를 식별합니다.
  • 도구: 개념적 모델링에서는 주로 ER 다이어그램(Entity-Relationship Diagram)을 사용합니다. ER 다이어그램은 엔티티, 엔티티 간의 관계, 그리고 속성(Attributes)을 시각적으로 표현합니다.

2. 논리적 모델링

  • 목적: 데이터 모델을 특정 DBMS에 종속되지 않는 형태로 정의합니다. 이 단계에서는 데이터 모델의 구조를 더욱 상세하게 정의하여, 데이터 타입, 기본 키(Primary Key), 외래 키(Foreign Key) 등의 정보를 명시합니다.
  • 도구: 논리적 모델링에서는 테이블 구조를 정의하고, 각 테이블 내의 컬럼과 데이터 타입, 테이블 간의 관계 등을 명세합니다. 논리적 모델은 DBMS의 구체적 구현 방식과는 독립적입니다.

3. 물리적 모델링

  • 목적: 실제 DBMS에서 데이터가 어떻게 저장될지를 결정합니다. 이 단계에서는 특정 데이터베이스 시스템의 성능, 저장, 접근 방식 등을 고려하여 데이터 모델을 최적화합니다.
  • 도구: 물리적 모델링에서는 데이터 파일의 저장 구조, 인덱스의 사용, 데이터 접근 방법, 네트워크 요구 사항 등을 정의합니다. 이는 데이터베이스의 성능과 직결되는 부분으로, 실제 데이터베이스 구현과 밀접하게 관련됩니다.

 

9. 스키마 

 

스키마(schema)란 데이터베이스의 구조와 제약 조건에 관한 명세를 의미합니다. 간단히 말해, 데이터베이스에서 데이터가 어떻게 저장되고, 조직되며, 관계를 맺는지에 대한 설계도라고 볼 수 있습니다. 스키마는 데이터베이스의 뼈대를 형성하며, 테이블, 열, 데이터 타입, 관계 등을 정의합니다.

1. 외부 스키마 (External Schema)

  • 정의: 사용자 또는 사용자 그룹의 관점에서 데이터베이스의 일부를 정의합니다. 이는 사용자가 실제로 상호작용하게 되는 데이터의 뷰(view)를 나타냅니다. 즉, 데이터베이스의 특정 부분에 대한 사용자의 관점을 정의합니다.
  • 역할: 외부 스키마는 다양한 사용자가 데이터베이스에 접근할 때 필요로 하는 데이터를 어떻게 보여줄지를 결정합니다. 사용자마다 보게 되는 데이터의 구조가 다를 수 있으며, 이는 사용자 인터페이스나 애플리케이션을 통해 구현됩니다.
  • 예시: 한 데이터베이스에 여러 사용자가 있을 경우, 회계 담당자는 재무 관련 데이터만 접근할 수 있는 뷰를 가지고, 인사 담당자는 직원 관련 정보만을 다루는 뷰를 가집니다.

2. 개념 스키마 (Conceptual Schema)

  • 정의: 데이터베이스의 전체적인 구조와 정책을 나타내는 단계로, 데이터베이스의 모든 데이터 항목과 그 관계를 포괄하는 수준입니다. 이는 데이터베이스의 전체적인 설계도와 같으며, 모든 사용자가 공유하는 데이터베이스의 구조를 정의합니다.
  • 역할: 개념 스키마는 데이터베이스의 논리적 구조를 정의하며, 데이터와 데이터 간의 관계, 데이터의 속성, 제약 조건 등을 포함합니다. 이는 데이터베이스 관리 시스템(DBMS)의 중심이 되는 스키마로, 데이터베이스의 구조를 변경하지 않고도 다양한 외부 뷰를 지원할 수 있습니다.
  • 예시: 학교 데이터베이스에서 개념 스키마는 학생, 교수, 과목 등의 엔티티와 이들 간의 관계를 정의합니다.

3. 내부 스키마 (Internal Schema)

  • 정의: 데이터베이스가 실제로 저장장치에 어떻게 저장되는지에 대한 구조를 정의합니다. 이는 데이터베이스의 물리적 저장 구조를 나타내며, 데이터가 실제로 디스크나 다른 저장 매체에 어떻게 배치되는지를 설명합니다.
  • 역할: 내부 스키마는 데이터의 물리적 저장 방식, 인덱싱 방법, 데이터 액세스 경로 등을 정의합니다. 이는 데이터의 효율적인 저장과 접근을 위한 기술적 세부 사항을 다룹니다.
  • 예시: 내부 스키마는 데이터가 클러스터, B-트리, 해시 테이블 등을 사용하여 어떻게 저장되는지, 레코드의 물리적 순서, 사용되는 데이터 압축 기법 등을 정의할 수 있습니다.

이 세 가지 스키마는 데이터베이스 설계의 다양한 측면을 나타내며, 각각의 스키마는 데이터베이스의 특정 추상화 수준을 대표합니다. 이들은 서로 독립적으로 존재하며, 데이터베이스 관리 시스템(DBMS)은 이러한 다양한 스키마 간의 변환을 관리하여 사용자와 애플리케이션에 데이터를 효율적으로 제공합니다.

댓글