ERD 그리기 실습
ERD(Entity-Relationship Diagram) 란- DB의 구조를 시각적으로 표현- DB에 어떤 데이터가, 어떤 관계를 맺고 있는지 보여줌데이터가 어떻게 구조화되고 연관되는지를 시각적으로 표현한 다이어그램 📢실
koop.tistory.com
앞서 그렸던 ERD를 토대로, 새로 DB 및 테이블을 만들고 데이터 입력, 조회를 해보려고 한다.
/*
DB생성 - root 계정에서 생성
mysqlUser => 생성한 DB를 사용할수 있는 권한 부여
DB명 => school (student, attend, course 테이블 생성)
*/
--1. root 계정으로 접속
mysql -uroot -p비밀번호
--2. db생성
create database school;
--3. mysqlUser 권한 부여 => 권한 확정
grant all privileges on school.* to 'mysqlUser'@'localhost' with grant option;
flush privileges;
-- 여기서 첨에 grant * 하니까 에러가 났었다.. grant all 을 쓰니까 해결됨.
--4. mysqlUSer 계정으로 접속
mysql -umysqlUser -p비밀번호
--5. 테이블 3개 생성
create table student(
std_num varchar(10),
std_name varchar(20) not null,
std_major varchar(20),
std_term int,
std_point int,
primary key(std_num)
);
create table course(
co_code varchar(10),
co_name varchar(20) not null,
co_professor varchar(20),
co_point int default 3,
co_time int,
co_timetable varchar(40),
primary key(co_code)
);
create table attend(
at_num int auto_increment,
at_std_num varchar(10),
at_co_code varchar(10),
at_year int,
at_term int,
at_mid int default 0,
at_final int default 0,
at_attend int default 0,
at_hw int default 0,
at_repitition varchar(1) default 'n',
at_score varchar(4),
primary key(at_num)
);
--6. 외래키 지정
alter table attend add foreign key(at_std_num)
references student(std_num);
alter table attend add foreign key(at_co_code)
references course(co_code);
mysql> desc student;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| std_num | varchar(10) | NO | PRI | NULL | |
| std_name | varchar(20) | NO | | NULL | |
| std_major | varchar(20) | YES | | NULL | |
| std_term | int | YES | | NULL | |
| std_point | int | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql> desc course;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| co_code | varchar(10) | NO | PRI | NULL | |
| co_name | varchar(20) | NO | | NULL | |
| co_professor | varchar(20) | YES | | NULL | |
| co_point | int | YES | | 3 | |
| co_time | int | YES | | NULL | |
| co_timetable | varchar(40) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> desc attend;
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| at_num | int | NO | PRI | NULL | auto_increment |
| at_std_num | varchar(10) | YES | MUL | NULL | |
| at_co_code | varchar(10) | YES | MUL | NULL | |
| at_year | int | YES | | NULL | |
| at_term | int | YES | | NULL | |
| at_mid | int | YES | | 0 | |
| at_final | int | YES | | 0 | |
| at_attend | int | YES | | 0 | |
| at_hw | int | YES | | 0 | |
| at_repitition | varchar(1) | YES | | n | |
| at_score | varchar(4) | YES | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)
원하는 구조로 테이블 생성이 완료 되었으면, 워크벤치에서 자동으로 만들어주는 다이어그램을 통해 확인가능.
📢워크벤치에서 자동으로 만들어주는 다이어그램 보기

Navigator의 Schemas에서 다이어그램을 볼 DB를 더블클릭한다.
새로 만든 실습용 DB인 school 을 더블클릭.

상단의 Database => Reverse Engineer 클릭

Next를 클릭하면 root 비밀번호를 입력 후, Next 클릭

다이어그램 볼 DB 선택
계속해서 Next를 누르다가, Finish를 누르면 다이어그램을 볼 수 있음.

'백엔드 > MySQL' 카테고리의 다른 글
| MySQL JOIN(2) (0) | 2024.09.02 |
|---|---|
| MySQL JOIN(1) (0) | 2024.08.30 |
| ERD 그리기 실습 (0) | 2024.08.29 |
| MySQL generated columns 및 transaction (3) | 2024.08.29 |
| MySQL 내장함수 (0) | 2024.08.29 |